media: don't do a 31 bit shift on a signed int
On 32-bits archs, a signed integer has 31 bits plus on extra bit for signal. Due to that, touching the 32th bit with something like: int bar = 1 << 31; has an undefined behavior in C on 32 bit architectures, as it touches the signal bit. This is warned by cppcheck. Instead, force the numbers to be unsigned, in order to solve this issue. Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
This commit is contained in:
@@ -353,7 +353,7 @@ static int friio_ext_ctl(struct dvb_usb_device *d,
|
||||
ret += i2c_transfer(&d->i2c_adap, &msg, 1);
|
||||
|
||||
/* send 32bit(satur, R, G, B) data in serial */
|
||||
mask = 1 << 31;
|
||||
mask = 1UL << 31;
|
||||
for (i = 0; i < 32; i++) {
|
||||
buf[1] = power | FRIIO_CTL_STROBE;
|
||||
if (sat_color & mask)
|
||||
|
@@ -660,7 +660,7 @@ static int ctrl_check_input(struct pvr2_ctrl *cptr,int v)
|
||||
{
|
||||
if (v < 0 || v > PVR2_CVAL_INPUT_MAX)
|
||||
return 0;
|
||||
return ((1 << v) & cptr->hdw->input_allowed_mask) != 0;
|
||||
return ((1UL << v) & cptr->hdw->input_allowed_mask) != 0;
|
||||
}
|
||||
|
||||
static int ctrl_set_input(struct pvr2_ctrl *cptr,int m,int v)
|
||||
@@ -2445,7 +2445,7 @@ struct pvr2_hdw *pvr2_hdw_create(struct usb_interface *intf,
|
||||
/* Ensure that default input choice is a valid one. */
|
||||
m = hdw->input_avail_mask;
|
||||
if (m) for (idx = 0; idx < (sizeof(m) << 3); idx++) {
|
||||
if (!((1 << idx) & m)) continue;
|
||||
if (!((1UL << idx) & m)) continue;
|
||||
hdw->input_val = idx;
|
||||
break;
|
||||
}
|
||||
@@ -2501,11 +2501,11 @@ struct pvr2_hdw *pvr2_hdw_create(struct usb_interface *intf,
|
||||
// Initialize control data regarding video standard masks
|
||||
valid_std_mask = pvr2_std_get_usable();
|
||||
for (idx = 0; idx < 32; idx++) {
|
||||
if (!(valid_std_mask & (1 << idx))) continue;
|
||||
if (!(valid_std_mask & (1UL << idx))) continue;
|
||||
cnt1 = pvr2_std_id_to_str(
|
||||
hdw->std_mask_names[idx],
|
||||
sizeof(hdw->std_mask_names[idx])-1,
|
||||
1 << idx);
|
||||
1UL << idx);
|
||||
hdw->std_mask_names[idx][cnt1] = 0;
|
||||
}
|
||||
cptr = pvr2_hdw_get_ctrl_by_id(hdw,PVR2_CID_STDAVAIL);
|
||||
@@ -4672,7 +4672,7 @@ static unsigned int print_input_mask(unsigned int msk,
|
||||
unsigned int idx,ccnt;
|
||||
unsigned int tcnt = 0;
|
||||
for (idx = 0; idx < ARRAY_SIZE(control_values_input); idx++) {
|
||||
if (!((1 << idx) & msk)) continue;
|
||||
if (!((1UL << idx) & msk)) continue;
|
||||
ccnt = scnprintf(buf+tcnt,
|
||||
acnt-tcnt,
|
||||
"%s%s",
|
||||
@@ -5099,7 +5099,7 @@ int pvr2_hdw_set_input_allowed(struct pvr2_hdw *hdw,
|
||||
break;
|
||||
}
|
||||
hdw->input_allowed_mask = nv;
|
||||
if ((1 << hdw->input_val) & hdw->input_allowed_mask) {
|
||||
if ((1UL << hdw->input_val) & hdw->input_allowed_mask) {
|
||||
/* Current mode is still in the allowed mask, so
|
||||
we're done. */
|
||||
break;
|
||||
@@ -5112,7 +5112,7 @@ int pvr2_hdw_set_input_allowed(struct pvr2_hdw *hdw,
|
||||
}
|
||||
m = hdw->input_allowed_mask;
|
||||
for (idx = 0; idx < (sizeof(m) << 3); idx++) {
|
||||
if (!((1 << idx) & m)) continue;
|
||||
if (!((1UL << idx) & m)) continue;
|
||||
pvr2_hdw_set_input(hdw,idx);
|
||||
break;
|
||||
}
|
||||
|
@@ -1003,7 +1003,7 @@ static int pvr2_v4l2_open(struct file *file)
|
||||
input_mask &= pvr2_hdw_get_input_available(hdw);
|
||||
input_cnt = 0;
|
||||
for (idx = 0; idx < (sizeof(input_mask) << 3); idx++) {
|
||||
if (input_mask & (1 << idx)) input_cnt++;
|
||||
if (input_mask & (1UL << idx)) input_cnt++;
|
||||
}
|
||||
fhp->input_cnt = input_cnt;
|
||||
fhp->input_map = kzalloc(input_cnt,GFP_KERNEL);
|
||||
@@ -1018,7 +1018,7 @@ static int pvr2_v4l2_open(struct file *file)
|
||||
}
|
||||
input_cnt = 0;
|
||||
for (idx = 0; idx < (sizeof(input_mask) << 3); idx++) {
|
||||
if (!(input_mask & (1 << idx))) continue;
|
||||
if (!(input_mask & (1UL << idx))) continue;
|
||||
fhp->input_map[input_cnt++] = idx;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user