The following issues were found
drivers/i2c/busses/i2c-fsi.c
6 issues
Line: 295
Column: 6
CWE codes:
120
20
static int fsi_i2c_read_fifo(struct fsi_i2c_port *port, struct i2c_msg *msg,
u8 fifo_count)
{
int read;
int rc;
struct fsi_i2c_master *i2c = port->master;
int bytes_to_read;
int xfr_remaining = msg->len - port->xfrd;
u32 dummy;
Reported by FlawFinder.
Line: 309
Column: 34
CWE codes:
120
20
if (xfr_remaining) {
rc = fsi_device_read(i2c->fsi, I2C_FSI_FIFO,
&msg->buf[port->xfrd], read);
if (rc)
return rc;
port->xfrd += read;
xfr_remaining -= read;
Reported by FlawFinder.
Line: 313
Column: 18
CWE codes:
120
20
if (rc)
return rc;
port->xfrd += read;
xfr_remaining -= read;
} else {
/* no more buffer but data in fifo, need to clear it */
rc = fsi_device_read(i2c->fsi, I2C_FSI_FIFO, &dummy,
read);
Reported by FlawFinder.
Line: 314
Column: 21
CWE codes:
120
20
return rc;
port->xfrd += read;
xfr_remaining -= read;
} else {
/* no more buffer but data in fifo, need to clear it */
rc = fsi_device_read(i2c->fsi, I2C_FSI_FIFO, &dummy,
read);
if (rc)
Reported by FlawFinder.
Line: 318
Column: 11
CWE codes:
120
20
} else {
/* no more buffer but data in fifo, need to clear it */
rc = fsi_device_read(i2c->fsi, I2C_FSI_FIFO, &dummy,
read);
if (rc)
return rc;
}
bytes_to_read -= read;
Reported by FlawFinder.
drivers/hid/intel-ish-hid/ipc/ipc.c
6 issues
Line: 324
Column: 3
CWE codes:
120
Suggestion:
Make sure destination can always hold the source data
time_update.secondary_host_time = usec_utc;
time_update.sync_info = ts_format;
memcpy(r_buf, &time_update,
sizeof(struct ipc_time_update_msg));
}
for (i = 0, reg_addr = IPC_REG_HOST2ISH_MSG; i < length >> 2; i++,
reg_addr += 4)
Reported by FlawFinder.
Line: 336
Column: 3
CWE codes:
120
Suggestion:
Make sure destination can always hold the source data
if (rem > 0) {
uint32_t reg = 0;
memcpy(®, &r_buf[length >> 2], rem);
ish_reg_write(dev, reg_addr, reg);
}
ish_reg_write(dev, IPC_REG_HOST2ISH_DRBL, doorbell_val);
/* Flush writes to msg registers and doorbell */
Reported by FlawFinder.
Line: 402
Column: 2
CWE codes:
120
Suggestion:
Make sure destination can always hold the source data
ipc_link->ipc_send_compl = ipc_send_compl;
ipc_link->ipc_send_compl_prm = ipc_send_compl_prm;
ipc_link->length = length;
memcpy(ipc_link->inline_data, msg, length);
list_add_tail(&ipc_link->link, &dev->wr_processing_list);
spin_unlock_irqrestore(&dev->wr_processing_spinlock, flags);
write_ipc_from_queue(dev);
Reported by FlawFinder.
Line: 426
Column: 11
CWE codes:
119
120
Suggestion:
Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length
static int ipc_send_mng_msg(struct ishtp_device *dev, uint32_t msg_code,
void *msg, size_t size)
{
unsigned char ipc_msg[IPC_FULL_MSG_SIZE];
uint32_t drbl_val = IPC_BUILD_MNG_MSG(msg_code, size);
memcpy(ipc_msg, &drbl_val, sizeof(uint32_t));
memcpy(ipc_msg + sizeof(uint32_t), msg, size);
return write_ipc_to_queue(dev, NULL, NULL, ipc_msg,
Reported by FlawFinder.
Line: 429
Column: 2
CWE codes:
120
Suggestion:
Make sure destination can always hold the source data
unsigned char ipc_msg[IPC_FULL_MSG_SIZE];
uint32_t drbl_val = IPC_BUILD_MNG_MSG(msg_code, size);
memcpy(ipc_msg, &drbl_val, sizeof(uint32_t));
memcpy(ipc_msg + sizeof(uint32_t), msg, size);
return write_ipc_to_queue(dev, NULL, NULL, ipc_msg,
sizeof(uint32_t) + size);
}
Reported by FlawFinder.
Line: 430
Column: 2
CWE codes:
120
Suggestion:
Make sure destination can always hold the source data
uint32_t drbl_val = IPC_BUILD_MNG_MSG(msg_code, size);
memcpy(ipc_msg, &drbl_val, sizeof(uint32_t));
memcpy(ipc_msg + sizeof(uint32_t), msg, size);
return write_ipc_to_queue(dev, NULL, NULL, ipc_msg,
sizeof(uint32_t) + size);
}
#define WAIT_FOR_FW_RDY 0x1
Reported by FlawFinder.
drivers/gpu/drm/radeon/mkregtable.c
6 issues
Line: 188
Column: 8
CWE codes:
119
120
Suggestion:
Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length
return 0;
}
static char gpu_name[10];
static int parser_auth(struct table *t, const char *filename)
{
FILE *file;
regex_t mask_rex;
regmatch_t match[4];
Reported by FlawFinder.
Line: 194
Column: 2
CWE codes:
119
120
Suggestion:
Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length
FILE *file;
regex_t mask_rex;
regmatch_t match[4];
char buf[1024];
size_t end;
int len;
int done = 0;
int r;
unsigned o;
Reported by FlawFinder.
Line: 201
Column: 2
CWE codes:
119
120
Suggestion:
Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length
int r;
unsigned o;
struct offset *offset;
char last_reg_s[10];
int last_reg;
if (regcomp
(&mask_rex, "(0x[0-9a-fA-F]*) *([_a-zA-Z0-9]*)", REG_EXTENDED)) {
fprintf(stderr, "Failed to compile regular expression\n");
Reported by FlawFinder.
Line: 209
Column: 9
CWE codes:
362
fprintf(stderr, "Failed to compile regular expression\n");
return -1;
}
file = fopen(filename, "r");
if (file == NULL) {
fprintf(stderr, "Failed to open: %s\n", filename);
return -1;
}
fseek(file, 0, SEEK_END);
Reported by FlawFinder.
Line: 226
Column: 2
CWE codes:
120
Suggestion:
Check that the limit is sufficiently small, or use a different input function
/* first line will contain the last register
* and gpu name */
sscanf(buf, "%9s %9s", gpu_name, last_reg_s);
t->gpu_prefix = gpu_name;
last_reg = strtol(last_reg_s, NULL, 16);
do {
if (fgets(buf, 1024, file) == NULL) {
Reported by FlawFinder.
Line: 235
Column: 9
CWE codes:
126
fclose(file);
return -1;
}
len = strlen(buf);
if (ftell(file) == end)
done = 1;
if (len) {
r = regexec(&mask_rex, buf, 4, match, 0);
if (r == REG_NOMATCH) {
Reported by FlawFinder.
drivers/hid/hidraw.c
6 issues
Line: 323
Column: 15
CWE codes:
362
{
if (exists_bit) {
hidraw->exist = 0;
if (hidraw->open) {
hid_hw_close(hidraw->hid);
wake_up_interruptible(&hidraw->wait);
}
device_destroy(hidraw_class,
MKDEV(hidraw_major, hidraw->minor));
Reported by FlawFinder.
Line: 330
Column: 13
CWE codes:
362
device_destroy(hidraw_class,
MKDEV(hidraw_major, hidraw->minor));
} else {
--hidraw->open;
}
if (!hidraw->open) {
if (!hidraw->exist) {
hidraw_table[hidraw->minor] = NULL;
kfree(hidraw);
Reported by FlawFinder.
Line: 332
Column: 15
CWE codes:
362
} else {
--hidraw->open;
}
if (!hidraw->open) {
if (!hidraw->exist) {
hidraw_table[hidraw->minor] = NULL;
kfree(hidraw);
} else {
/* close device for last reader */
Reported by FlawFinder.
Line: 460
Column: 16
CWE codes:
126
}
if (_IOC_NR(cmd) == _IOC_NR(HIDIOCGRAWNAME(0))) {
int len = strlen(hid->name) + 1;
if (len > _IOC_SIZE(cmd))
len = _IOC_SIZE(cmd);
ret = copy_to_user(user_arg, hid->name, len) ?
-EFAULT : len;
break;
Reported by FlawFinder.
Line: 469
Column: 16
CWE codes:
126
}
if (_IOC_NR(cmd) == _IOC_NR(HIDIOCGRAWPHYS(0))) {
int len = strlen(hid->phys) + 1;
if (len > _IOC_SIZE(cmd))
len = _IOC_SIZE(cmd);
ret = copy_to_user(user_arg, hid->phys, len) ?
-EFAULT : len;
break;
Reported by FlawFinder.
Line: 478
Column: 16
CWE codes:
126
}
if (_IOC_NR(cmd) == _IOC_NR(HIDIOCGRAWUNIQ(0))) {
int len = strlen(hid->uniq) + 1;
if (len > _IOC_SIZE(cmd))
len = _IOC_SIZE(cmd);
ret = copy_to_user(user_arg, hid->uniq, len) ?
-EFAULT : len;
break;
Reported by FlawFinder.
drivers/hwmon/adm1021.c
6 issues
Line: 152
Column: 9
CWE codes:
120
Suggestion:
Use sprintf_s, snprintf, or vsnprintf
int index = to_sensor_dev_attr(devattr)->index;
struct adm1021_data *data = adm1021_update_device(dev);
return sprintf(buf, "%d\n", data->temp[index]);
}
static ssize_t temp_max_show(struct device *dev,
struct device_attribute *devattr, char *buf)
{
Reported by FlawFinder.
Line: 161
Column: 9
CWE codes:
120
Suggestion:
Use sprintf_s, snprintf, or vsnprintf
int index = to_sensor_dev_attr(devattr)->index;
struct adm1021_data *data = adm1021_update_device(dev);
return sprintf(buf, "%d\n", data->temp_max[index]);
}
static ssize_t temp_min_show(struct device *dev,
struct device_attribute *devattr, char *buf)
{
Reported by FlawFinder.
Line: 170
Column: 9
CWE codes:
120
Suggestion:
Use sprintf_s, snprintf, or vsnprintf
int index = to_sensor_dev_attr(devattr)->index;
struct adm1021_data *data = adm1021_update_device(dev);
return sprintf(buf, "%d\n", data->temp_min[index]);
}
static ssize_t alarm_show(struct device *dev, struct device_attribute *attr,
char *buf)
{
Reported by FlawFinder.
Line: 178
Column: 9
CWE codes:
120
Suggestion:
Use sprintf_s, snprintf, or vsnprintf
{
int index = to_sensor_dev_attr(attr)->index;
struct adm1021_data *data = adm1021_update_device(dev);
return sprintf(buf, "%u\n", (data->alarms >> index) & 1);
}
static ssize_t alarms_show(struct device *dev,
struct device_attribute *attr,
char *buf)
Reported by FlawFinder.
Line: 186
Column: 9
CWE codes:
120
Suggestion:
Use sprintf_s, snprintf, or vsnprintf
char *buf)
{
struct adm1021_data *data = adm1021_update_device(dev);
return sprintf(buf, "%u\n", data->alarms);
}
static ssize_t temp_max_store(struct device *dev,
struct device_attribute *devattr,
const char *buf, size_t count)
Reported by FlawFinder.
Line: 245
Column: 9
CWE codes:
120
Suggestion:
Use sprintf_s, snprintf, or vsnprintf
struct device_attribute *devattr, char *buf)
{
struct adm1021_data *data = adm1021_update_device(dev);
return sprintf(buf, "%d\n", data->low_power);
}
static ssize_t low_power_store(struct device *dev,
struct device_attribute *devattr,
const char *buf, size_t count)
Reported by FlawFinder.
drivers/i2c/busses/i2c-powermac.c
6 issues
Line: 275
Column: 2
CWE codes:
119
120
Suggestion:
Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length
struct device_node *node,
u32 addr, char *type, int type_size)
{
char tmp[16];
/*
* Note: we do _NOT_ want the standard i2c drivers to match with any of
* our powermac stuff unless they have been specifically modified to
* handle it on a case by case basis. For example, for thermal control,
Reported by FlawFinder.
Line: 39
Column: 32
CWE codes:
120
20
struct pmac_i2c_bus *bus = i2c_get_adapdata(adap);
int rc = 0;
int read = (read_write == I2C_SMBUS_READ);
int addrdir = (addr << 1) | read;
int mode, subsize, len;
u32 subaddr;
u8 *buf;
u8 local[2];
Reported by FlawFinder.
Line: 236
Column: 2
CWE codes:
120
struct i2c_board_info info = {};
struct i2c_client *newdev;
strncpy(info.type, type, sizeof(info.type));
info.addr = addr;
newdev = i2c_new_client_device(adap, &info);
if (IS_ERR(newdev))
dev_err(&adap->dev,
"i2c-powermac: Failure to register missing %s\n",
Reported by FlawFinder.
drivers/input/touchscreen/zforce_ts.c
6 issues
Line: 110
Column: 2
CWE codes:
119
120
Suggestion:
Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length
struct i2c_client *client;
struct input_dev *input;
const struct zforce_ts_platdata *pdata;
char phys[32];
struct regulator *reg_vdd;
struct gpio_desc *gpio_int;
struct gpio_desc *gpio_rst;
Reported by FlawFinder.
Line: 138
Column: 2
CWE codes:
119
120
Suggestion:
Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length
static int zforce_command(struct zforce_ts *ts, u8 cmd)
{
struct i2c_client *client = ts->client;
char buf[3];
int ret;
dev_dbg(&client->dev, "%s: 0x%x\n", __func__, cmd);
buf[0] = FRAME_START;
Reported by FlawFinder.
Line: 209
Column: 2
CWE codes:
119
120
Suggestion:
Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length
static int zforce_command_wait(struct zforce_ts *ts, u8 cmd)
{
struct i2c_client *client = ts->client;
char buf[3];
int ret;
dev_dbg(&client->dev, "%s: 0x%x\n", __func__, cmd);
buf[0] = FRAME_START;
Reported by FlawFinder.
Line: 230
Column: 2
CWE codes:
119
120
Suggestion:
Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length
static int zforce_resolution(struct zforce_ts *ts, u16 x, u16 y)
{
struct i2c_client *client = ts->client;
char buf[7] = { FRAME_START, 5, COMMAND_RESOLUTION,
(x & 0xff), ((x >> 8) & 0xff),
(y & 0xff), ((y >> 8) & 0xff) };
dev_dbg(&client->dev, "set resolution to (%d,%d)\n", x, y);
Reported by FlawFinder.
Line: 243
Column: 2
CWE codes:
119
120
Suggestion:
Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length
u16 stylus)
{
struct i2c_client *client = ts->client;
char buf[9] = { FRAME_START, 7, COMMAND_SCANFREQ,
(idle & 0xff), ((idle >> 8) & 0xff),
(finger & 0xff), ((finger >> 8) & 0xff),
(stylus & 0xff), ((stylus >> 8) & 0xff) };
dev_dbg(&client->dev,
Reported by FlawFinder.
Line: 258
Column: 2
CWE codes:
119
120
Suggestion:
Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length
static int zforce_setconfig(struct zforce_ts *ts, char b1)
{
struct i2c_client *client = ts->client;
char buf[7] = { FRAME_START, 5, COMMAND_SETCONFIG,
b1, 0, 0, 0 };
dev_dbg(&client->dev, "set config to (%d)\n", b1);
return zforce_send_wait(ts, &buf[0], ARRAY_SIZE(buf));
Reported by FlawFinder.
drivers/infiniband/hw/mlx5/devx.c
6 issues
Line: 2160
Column: 6
CWE codes:
362/367!
Suggestion:
Set up the correct permissions (e.g., using setuid()) and try to open the file directly
{
u64 addr;
size_t size;
u32 access;
int err;
if (uverbs_copy_from(&addr, attrs, MLX5_IB_ATTR_DEVX_UMEM_REG_ADDR) ||
uverbs_copy_from(&size, attrs, MLX5_IB_ATTR_DEVX_UMEM_REG_LEN))
return -EFAULT;
Reported by FlawFinder.
Line: 2167
Column: 28
CWE codes:
362/367!
Suggestion:
Set up the correct permissions (e.g., using setuid()) and try to open the file directly
uverbs_copy_from(&size, attrs, MLX5_IB_ATTR_DEVX_UMEM_REG_LEN))
return -EFAULT;
err = uverbs_get_flags32(&access, attrs,
MLX5_IB_ATTR_DEVX_UMEM_REG_ACCESS,
IB_ACCESS_LOCAL_WRITE |
IB_ACCESS_REMOTE_WRITE |
IB_ACCESS_REMOTE_READ);
if (err)
Reported by FlawFinder.
Line: 2175
Column: 41
CWE codes:
362/367!
Suggestion:
Set up the correct permissions (e.g., using setuid()) and try to open the file directly
if (err)
return err;
err = ib_check_mr_access(&dev->ib_dev, access);
if (err)
return err;
obj->umem = ib_umem_get(&dev->ib_dev, addr, size, access);
if (IS_ERR(obj->umem))
Reported by FlawFinder.
Line: 2179
Column: 52
CWE codes:
362/367!
Suggestion:
Set up the correct permissions (e.g., using setuid()) and try to open the file directly
if (err)
return err;
obj->umem = ib_umem_get(&dev->ib_dev, addr, size, access);
if (IS_ERR(obj->umem))
return PTR_ERR(obj->umem);
return 0;
}
Reported by FlawFinder.
Line: 1267
Column: 3
CWE codes:
120
Suggestion:
Make sure destination can always hold the source data
*dinlen = MLX5_ST_SZ_BYTES(detach_from_mcg_in);
MLX5_SET(detach_from_mcg_in, din, qpn,
MLX5_GET(attach_to_mcg_in, in, qpn));
memcpy(MLX5_ADDR_OF(detach_from_mcg_in, din, multicast_gid),
MLX5_ADDR_OF(attach_to_mcg_in, in, multicast_gid),
MLX5_FLD_SZ_BYTES(attach_to_mcg_in, multicast_gid));
MLX5_SET(detach_from_mcg_in, din, opcode,
MLX5_CMD_OP_DETACH_FROM_MCG);
MLX5_SET(detach_from_mcg_in, din, qpn, *obj_id);
Reported by FlawFinder.
Line: 2434
Column: 2
CWE codes:
120
Suggestion:
Make sure destination can always hold the source data
}
event_data->hdr.cookie = event_sub->cookie;
memcpy(event_data->hdr.out_data, data, sizeof(struct mlx5_eqe));
spin_lock_irqsave(&ev_file->lock, flags);
if (!ev_file->is_destroyed)
list_add_tail(&event_data->list, &ev_file->event_list);
else
Reported by FlawFinder.
drivers/infiniband/core/mad.c
6 issues
Line: 731
Column: 4
CWE codes:
120
Suggestion:
Make sure destination can always hold the source data
port_priv = ib_get_mad_port(mad_agent_priv->agent.device,
mad_agent_priv->agent.port_num);
if (port_priv) {
memcpy(mad_priv->mad, smp, mad_priv->mad_size);
recv_mad_agent = find_mad_agent(port_priv,
(const struct ib_mad_hdr *)mad_priv->mad);
}
if (!port_priv || !recv_mad_agent) {
/*
Reported by FlawFinder.
Line: 1395
Column: 4
CWE codes:
120
Suggestion:
Make sure destination can always hold the source data
if (ret)
goto error3;
}
memcpy((*vendor_table)->vendor_class[vclass]->oui[i],
mad_reg_req->oui, 3);
goto check_in_use;
}
}
dev_err(&agent_priv->agent.device->dev, "All OUI slots in use\n");
Reported by FlawFinder.
Line: 1894
Column: 3
CWE codes:
120
Suggestion:
Make sure destination can always hold the source data
return IB_SMI_DISCARD;
} else if (rdma_cap_ib_switch(port_priv->device)) {
/* forward case for switches */
memcpy(response, recv, mad_priv_size(response));
response->header.recv_wc.wc = &response->header.wc;
response->header.recv_wc.recv_buf.mad = (struct ib_mad *)response->mad;
response->header.recv_wc.recv_buf.grh = &response->grh;
agent_send_response((const struct ib_mad_hdr *)response->mad,
Reported by FlawFinder.
Line: 1921
Column: 3
CWE codes:
120
Suggestion:
Make sure destination can always hold the source data
if (recv_hdr->method == IB_MGMT_METHOD_GET ||
recv_hdr->method == IB_MGMT_METHOD_SET) {
memcpy(response, recv, mad_priv_size(response));
response->header.recv_wc.wc = &response->header.wc;
response->header.recv_wc.recv_buf.mad = (struct ib_mad *)response->mad;
response->header.recv_wc.recv_buf.grh = &response->grh;
resp_hdr->method = IB_MGMT_METHOD_GET_RESP;
resp_hdr->status = cpu_to_be16(IB_MGMT_MAD_STATUS_UNSUPPORTED_METHOD_ATTRIB);
Reported by FlawFinder.
Line: 1983
Column: 3
CWE codes:
120
Suggestion:
Make sure destination can always hold the source data
} else if (rdma_cap_ib_switch(port_priv->device)) {
/* forward case for switches */
memcpy(response, recv, mad_priv_size(response));
response->header.recv_wc.wc = &response->header.wc;
response->header.recv_wc.recv_buf.opa_mad =
(struct opa_mad *)response->mad;
response->header.recv_wc.recv_buf.grh = &response->grh;
Reported by FlawFinder.
Line: 2945
Column: 2
CWE codes:
119
120
Suggestion:
Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length
int ret, cq_size;
struct ib_mad_port_private *port_priv;
unsigned long flags;
char name[sizeof "ib_mad123"];
int has_smi;
if (WARN_ON(rdma_max_mad_size(device, port_num) < IB_MGMT_MAD_SIZE))
return -EFAULT;
Reported by FlawFinder.
drivers/iio/adc/ti_am335x_adc.c
6 issues
Line: 215
Column: 24
CWE codes:
120
20
{
struct iio_dev *indio_dev = private;
struct tiadc_device *adc_dev = iio_priv(indio_dev);
int i, k, fifo1count, read;
u16 *data = adc_dev->data;
fifo1count = tiadc_readl(adc_dev, REG_FIFO1CNT);
for (k = 0; k < fifo1count; k = k + i) {
for (i = 0; i < (indio_dev->scan_bytes)/2; i++) {
Reported by FlawFinder.
Line: 222
Column: 14
CWE codes:
120
20
for (k = 0; k < fifo1count; k = k + i) {
for (i = 0; i < (indio_dev->scan_bytes)/2; i++) {
read = tiadc_readl(adc_dev, REG_FIFO1);
data[i] = read & FIFOREAD_DATA_MASK;
}
iio_push_to_buffers(indio_dev, (u8 *) data);
}
tiadc_writel(adc_dev, REG_IRQSTATUS, IRQENB_FIFO1THRES);
Reported by FlawFinder.
Line: 451
Column: 27
CWE codes:
120
20
struct tiadc_device *adc_dev = iio_priv(indio_dev);
int ret = IIO_VAL_INT;
int i, map_val;
unsigned int fifo1count, read, stepid;
bool found = false;
u32 step_en;
unsigned long timeout;
if (iio_buffer_enabled(indio_dev))
Reported by FlawFinder.
Line: 495
Column: 12
CWE codes:
120
20
*/
for (i = 0; i < fifo1count; i++) {
read = tiadc_readl(adc_dev, REG_FIFO1);
stepid = read & FIFOREAD_CHNLID_MASK;
stepid = stepid >> 0x10;
if (stepid == map_val) {
read = read & FIFOREAD_DATA_MASK;
found = true;
Reported by FlawFinder.
Line: 499
Column: 11
CWE codes:
120
20
stepid = stepid >> 0x10;
if (stepid == map_val) {
read = read & FIFOREAD_DATA_MASK;
found = true;
*val = (u16) read;
}
}
am335x_tsc_se_adc_done(adc_dev->mfd_tscadc);
Reported by FlawFinder.