mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-28 02:32:09 -04:00
treewide: kzalloc() -> kcalloc()
The kzalloc() function has a 2-factor argument form, kcalloc(). This
patch replaces cases of:
kzalloc(a * b, gfp)
with:
kcalloc(a * b, gfp)
as well as handling cases of:
kzalloc(a * b * c, gfp)
with:
kzalloc(array3_size(a, b, c), gfp)
as it's slightly less ugly than:
kzalloc_array(array_size(a, b), c, gfp)
This does, however, attempt to ignore constant size factors like:
kzalloc(4 * 1024, gfp)
though any constants defined via macros get caught up in the conversion.
Any factors with a sizeof() of "unsigned char", "char", and "u8" were
dropped, since they're redundant.
The Coccinelle script used for this was:
// Fix redundant parens around sizeof().
@@
type TYPE;
expression THING, E;
@@
(
kzalloc(
- (sizeof(TYPE)) * E
+ sizeof(TYPE) * E
, ...)
|
kzalloc(
- (sizeof(THING)) * E
+ sizeof(THING) * E
, ...)
)
// Drop single-byte sizes and redundant parens.
@@
expression COUNT;
typedef u8;
typedef __u8;
@@
(
kzalloc(
- sizeof(u8) * (COUNT)
+ COUNT
, ...)
|
kzalloc(
- sizeof(__u8) * (COUNT)
+ COUNT
, ...)
|
kzalloc(
- sizeof(char) * (COUNT)
+ COUNT
, ...)
|
kzalloc(
- sizeof(unsigned char) * (COUNT)
+ COUNT
, ...)
|
kzalloc(
- sizeof(u8) * COUNT
+ COUNT
, ...)
|
kzalloc(
- sizeof(__u8) * COUNT
+ COUNT
, ...)
|
kzalloc(
- sizeof(char) * COUNT
+ COUNT
, ...)
|
kzalloc(
- sizeof(unsigned char) * COUNT
+ COUNT
, ...)
)
// 2-factor product with sizeof(type/expression) and identifier or constant.
@@
type TYPE;
expression THING;
identifier COUNT_ID;
constant COUNT_CONST;
@@
(
- kzalloc
+ kcalloc
(
- sizeof(TYPE) * (COUNT_ID)
+ COUNT_ID, sizeof(TYPE)
, ...)
|
- kzalloc
+ kcalloc
(
- sizeof(TYPE) * COUNT_ID
+ COUNT_ID, sizeof(TYPE)
, ...)
|
- kzalloc
+ kcalloc
(
- sizeof(TYPE) * (COUNT_CONST)
+ COUNT_CONST, sizeof(TYPE)
, ...)
|
- kzalloc
+ kcalloc
(
- sizeof(TYPE) * COUNT_CONST
+ COUNT_CONST, sizeof(TYPE)
, ...)
|
- kzalloc
+ kcalloc
(
- sizeof(THING) * (COUNT_ID)
+ COUNT_ID, sizeof(THING)
, ...)
|
- kzalloc
+ kcalloc
(
- sizeof(THING) * COUNT_ID
+ COUNT_ID, sizeof(THING)
, ...)
|
- kzalloc
+ kcalloc
(
- sizeof(THING) * (COUNT_CONST)
+ COUNT_CONST, sizeof(THING)
, ...)
|
- kzalloc
+ kcalloc
(
- sizeof(THING) * COUNT_CONST
+ COUNT_CONST, sizeof(THING)
, ...)
)
// 2-factor product, only identifiers.
@@
identifier SIZE, COUNT;
@@
- kzalloc
+ kcalloc
(
- SIZE * COUNT
+ COUNT, SIZE
, ...)
// 3-factor product with 1 sizeof(type) or sizeof(expression), with
// redundant parens removed.
@@
expression THING;
identifier STRIDE, COUNT;
type TYPE;
@@
(
kzalloc(
- sizeof(TYPE) * (COUNT) * (STRIDE)
+ array3_size(COUNT, STRIDE, sizeof(TYPE))
, ...)
|
kzalloc(
- sizeof(TYPE) * (COUNT) * STRIDE
+ array3_size(COUNT, STRIDE, sizeof(TYPE))
, ...)
|
kzalloc(
- sizeof(TYPE) * COUNT * (STRIDE)
+ array3_size(COUNT, STRIDE, sizeof(TYPE))
, ...)
|
kzalloc(
- sizeof(TYPE) * COUNT * STRIDE
+ array3_size(COUNT, STRIDE, sizeof(TYPE))
, ...)
|
kzalloc(
- sizeof(THING) * (COUNT) * (STRIDE)
+ array3_size(COUNT, STRIDE, sizeof(THING))
, ...)
|
kzalloc(
- sizeof(THING) * (COUNT) * STRIDE
+ array3_size(COUNT, STRIDE, sizeof(THING))
, ...)
|
kzalloc(
- sizeof(THING) * COUNT * (STRIDE)
+ array3_size(COUNT, STRIDE, sizeof(THING))
, ...)
|
kzalloc(
- sizeof(THING) * COUNT * STRIDE
+ array3_size(COUNT, STRIDE, sizeof(THING))
, ...)
)
// 3-factor product with 2 sizeof(variable), with redundant parens removed.
@@
expression THING1, THING2;
identifier COUNT;
type TYPE1, TYPE2;
@@
(
kzalloc(
- sizeof(TYPE1) * sizeof(TYPE2) * COUNT
+ array3_size(COUNT, sizeof(TYPE1), sizeof(TYPE2))
, ...)
|
kzalloc(
- sizeof(TYPE1) * sizeof(THING2) * (COUNT)
+ array3_size(COUNT, sizeof(TYPE1), sizeof(TYPE2))
, ...)
|
kzalloc(
- sizeof(THING1) * sizeof(THING2) * COUNT
+ array3_size(COUNT, sizeof(THING1), sizeof(THING2))
, ...)
|
kzalloc(
- sizeof(THING1) * sizeof(THING2) * (COUNT)
+ array3_size(COUNT, sizeof(THING1), sizeof(THING2))
, ...)
|
kzalloc(
- sizeof(TYPE1) * sizeof(THING2) * COUNT
+ array3_size(COUNT, sizeof(TYPE1), sizeof(THING2))
, ...)
|
kzalloc(
- sizeof(TYPE1) * sizeof(THING2) * (COUNT)
+ array3_size(COUNT, sizeof(TYPE1), sizeof(THING2))
, ...)
)
// 3-factor product, only identifiers, with redundant parens removed.
@@
identifier STRIDE, SIZE, COUNT;
@@
(
kzalloc(
- (COUNT) * STRIDE * SIZE
+ array3_size(COUNT, STRIDE, SIZE)
, ...)
|
kzalloc(
- COUNT * (STRIDE) * SIZE
+ array3_size(COUNT, STRIDE, SIZE)
, ...)
|
kzalloc(
- COUNT * STRIDE * (SIZE)
+ array3_size(COUNT, STRIDE, SIZE)
, ...)
|
kzalloc(
- (COUNT) * (STRIDE) * SIZE
+ array3_size(COUNT, STRIDE, SIZE)
, ...)
|
kzalloc(
- COUNT * (STRIDE) * (SIZE)
+ array3_size(COUNT, STRIDE, SIZE)
, ...)
|
kzalloc(
- (COUNT) * STRIDE * (SIZE)
+ array3_size(COUNT, STRIDE, SIZE)
, ...)
|
kzalloc(
- (COUNT) * (STRIDE) * (SIZE)
+ array3_size(COUNT, STRIDE, SIZE)
, ...)
|
kzalloc(
- COUNT * STRIDE * SIZE
+ array3_size(COUNT, STRIDE, SIZE)
, ...)
)
// Any remaining multi-factor products, first at least 3-factor products,
// when they're not all constants...
@@
expression E1, E2, E3;
constant C1, C2, C3;
@@
(
kzalloc(C1 * C2 * C3, ...)
|
kzalloc(
- (E1) * E2 * E3
+ array3_size(E1, E2, E3)
, ...)
|
kzalloc(
- (E1) * (E2) * E3
+ array3_size(E1, E2, E3)
, ...)
|
kzalloc(
- (E1) * (E2) * (E3)
+ array3_size(E1, E2, E3)
, ...)
|
kzalloc(
- E1 * E2 * E3
+ array3_size(E1, E2, E3)
, ...)
)
// And then all remaining 2 factors products when they're not all constants,
// keeping sizeof() as the second factor argument.
@@
expression THING, E1, E2;
type TYPE;
constant C1, C2, C3;
@@
(
kzalloc(sizeof(THING) * C2, ...)
|
kzalloc(sizeof(TYPE) * C2, ...)
|
kzalloc(C1 * C2 * C3, ...)
|
kzalloc(C1 * C2, ...)
|
- kzalloc
+ kcalloc
(
- sizeof(TYPE) * (E2)
+ E2, sizeof(TYPE)
, ...)
|
- kzalloc
+ kcalloc
(
- sizeof(TYPE) * E2
+ E2, sizeof(TYPE)
, ...)
|
- kzalloc
+ kcalloc
(
- sizeof(THING) * (E2)
+ E2, sizeof(THING)
, ...)
|
- kzalloc
+ kcalloc
(
- sizeof(THING) * E2
+ E2, sizeof(THING)
, ...)
|
- kzalloc
+ kcalloc
(
- (E1) * E2
+ E1, E2
, ...)
|
- kzalloc
+ kcalloc
(
- (E1) * (E2)
+ E1, E2
, ...)
|
- kzalloc
+ kcalloc
(
- E1 * E2
+ E1, E2
, ...)
)
Signed-off-by: Kees Cook <[email protected]>
This commit is contained in:
parent
6da2ec5605
commit
6396bb2215
484 changed files with 1177 additions and 977 deletions
|
|
@ -2018,10 +2018,10 @@ static int dib7000pc_detection(struct i2c_adapter *i2c_adap)
|
|||
};
|
||||
int ret = 0;
|
||||
|
||||
tx = kzalloc(2*sizeof(u8), GFP_KERNEL);
|
||||
tx = kzalloc(2, GFP_KERNEL);
|
||||
if (!tx)
|
||||
return -ENOMEM;
|
||||
rx = kzalloc(2*sizeof(u8), GFP_KERNEL);
|
||||
rx = kzalloc(2, GFP_KERNEL);
|
||||
if (!rx) {
|
||||
ret = -ENOMEM;
|
||||
goto rx_memory_error;
|
||||
|
|
|
|||
|
|
@ -4271,12 +4271,12 @@ static int dib8000_i2c_enumeration(struct i2c_adapter *host, int no_of_demods,
|
|||
u8 new_addr = 0;
|
||||
struct i2c_device client = {.adap = host };
|
||||
|
||||
client.i2c_write_buffer = kzalloc(4 * sizeof(u8), GFP_KERNEL);
|
||||
client.i2c_write_buffer = kzalloc(4, GFP_KERNEL);
|
||||
if (!client.i2c_write_buffer) {
|
||||
dprintk("%s: not enough memory\n", __func__);
|
||||
return -ENOMEM;
|
||||
}
|
||||
client.i2c_read_buffer = kzalloc(4 * sizeof(u8), GFP_KERNEL);
|
||||
client.i2c_read_buffer = kzalloc(4, GFP_KERNEL);
|
||||
if (!client.i2c_read_buffer) {
|
||||
dprintk("%s: not enough memory\n", __func__);
|
||||
ret = -ENOMEM;
|
||||
|
|
|
|||
|
|
@ -2381,12 +2381,12 @@ int dib9000_i2c_enumeration(struct i2c_adapter *i2c, int no_of_demods, u8 defaul
|
|||
u8 new_addr = 0;
|
||||
struct i2c_device client = {.i2c_adap = i2c };
|
||||
|
||||
client.i2c_write_buffer = kzalloc(4 * sizeof(u8), GFP_KERNEL);
|
||||
client.i2c_write_buffer = kzalloc(4, GFP_KERNEL);
|
||||
if (!client.i2c_write_buffer) {
|
||||
dprintk("%s: not enough memory\n", __func__);
|
||||
return -ENOMEM;
|
||||
}
|
||||
client.i2c_read_buffer = kzalloc(4 * sizeof(u8), GFP_KERNEL);
|
||||
client.i2c_read_buffer = kzalloc(4, GFP_KERNEL);
|
||||
if (!client.i2c_read_buffer) {
|
||||
dprintk("%s: not enough memory\n", __func__);
|
||||
ret = -ENOMEM;
|
||||
|
|
|
|||
|
|
@ -217,14 +217,14 @@ static int au0828_init_isoc(struct au0828_dev *dev, int max_packets,
|
|||
dev->isoc_ctl.isoc_copy = isoc_copy;
|
||||
dev->isoc_ctl.num_bufs = num_bufs;
|
||||
|
||||
dev->isoc_ctl.urb = kzalloc(sizeof(void *)*num_bufs, GFP_KERNEL);
|
||||
dev->isoc_ctl.urb = kcalloc(num_bufs, sizeof(void *), GFP_KERNEL);
|
||||
if (!dev->isoc_ctl.urb) {
|
||||
au0828_isocdbg("cannot alloc memory for usb buffers\n");
|
||||
return -ENOMEM;
|
||||
}
|
||||
|
||||
dev->isoc_ctl.transfer_buffer = kzalloc(sizeof(void *)*num_bufs,
|
||||
GFP_KERNEL);
|
||||
dev->isoc_ctl.transfer_buffer = kcalloc(num_bufs, sizeof(void *),
|
||||
GFP_KERNEL);
|
||||
if (!dev->isoc_ctl.transfer_buffer) {
|
||||
au0828_isocdbg("cannot allocate memory for usb transfer\n");
|
||||
kfree(dev->isoc_ctl.urb);
|
||||
|
|
|
|||
|
|
@ -1034,7 +1034,7 @@ int cx231xx_init_isoc(struct cx231xx *dev, int max_packets,
|
|||
dma_q->partial_buf[i] = 0;
|
||||
|
||||
dev->video_mode.isoc_ctl.urb =
|
||||
kzalloc(sizeof(void *) * num_bufs, GFP_KERNEL);
|
||||
kcalloc(num_bufs, sizeof(void *), GFP_KERNEL);
|
||||
if (!dev->video_mode.isoc_ctl.urb) {
|
||||
dev_err(dev->dev,
|
||||
"cannot alloc memory for usb buffers\n");
|
||||
|
|
@ -1042,7 +1042,7 @@ int cx231xx_init_isoc(struct cx231xx *dev, int max_packets,
|
|||
}
|
||||
|
||||
dev->video_mode.isoc_ctl.transfer_buffer =
|
||||
kzalloc(sizeof(void *) * num_bufs, GFP_KERNEL);
|
||||
kcalloc(num_bufs, sizeof(void *), GFP_KERNEL);
|
||||
if (!dev->video_mode.isoc_ctl.transfer_buffer) {
|
||||
dev_err(dev->dev,
|
||||
"cannot allocate memory for usbtransfer\n");
|
||||
|
|
@ -1169,7 +1169,7 @@ int cx231xx_init_bulk(struct cx231xx *dev, int max_packets,
|
|||
dma_q->partial_buf[i] = 0;
|
||||
|
||||
dev->video_mode.bulk_ctl.urb =
|
||||
kzalloc(sizeof(void *) * num_bufs, GFP_KERNEL);
|
||||
kcalloc(num_bufs, sizeof(void *), GFP_KERNEL);
|
||||
if (!dev->video_mode.bulk_ctl.urb) {
|
||||
dev_err(dev->dev,
|
||||
"cannot alloc memory for usb buffers\n");
|
||||
|
|
@ -1177,7 +1177,7 @@ int cx231xx_init_bulk(struct cx231xx *dev, int max_packets,
|
|||
}
|
||||
|
||||
dev->video_mode.bulk_ctl.transfer_buffer =
|
||||
kzalloc(sizeof(void *) * num_bufs, GFP_KERNEL);
|
||||
kcalloc(num_bufs, sizeof(void *), GFP_KERNEL);
|
||||
if (!dev->video_mode.bulk_ctl.transfer_buffer) {
|
||||
dev_err(dev->dev,
|
||||
"cannot allocate memory for usbtransfer\n");
|
||||
|
|
|
|||
|
|
@ -415,7 +415,7 @@ int cx231xx_init_vbi_isoc(struct cx231xx *dev, int max_packets,
|
|||
for (i = 0; i < 8; i++)
|
||||
dma_q->partial_buf[i] = 0;
|
||||
|
||||
dev->vbi_mode.bulk_ctl.urb = kzalloc(sizeof(void *) * num_bufs,
|
||||
dev->vbi_mode.bulk_ctl.urb = kcalloc(num_bufs, sizeof(void *),
|
||||
GFP_KERNEL);
|
||||
if (!dev->vbi_mode.bulk_ctl.urb) {
|
||||
dev_err(dev->dev,
|
||||
|
|
@ -424,7 +424,7 @@ int cx231xx_init_vbi_isoc(struct cx231xx *dev, int max_packets,
|
|||
}
|
||||
|
||||
dev->vbi_mode.bulk_ctl.transfer_buffer =
|
||||
kzalloc(sizeof(void *) * num_bufs, GFP_KERNEL);
|
||||
kcalloc(num_bufs, sizeof(void *), GFP_KERNEL);
|
||||
if (!dev->vbi_mode.bulk_ctl.transfer_buffer) {
|
||||
dev_err(dev->dev,
|
||||
"cannot allocate memory for usbtransfer\n");
|
||||
|
|
|
|||
|
|
@ -1579,7 +1579,7 @@ int go7007_construct_fw_image(struct go7007 *go, u8 **fw, int *fwlen)
|
|||
GO7007_FW_NAME);
|
||||
return -1;
|
||||
}
|
||||
code = kzalloc(codespace * 2, GFP_KERNEL);
|
||||
code = kcalloc(codespace, 2, GFP_KERNEL);
|
||||
if (code == NULL)
|
||||
goto fw_failed;
|
||||
|
||||
|
|
|
|||
|
|
@ -2413,7 +2413,7 @@ struct pvr2_hdw *pvr2_hdw_create(struct usb_interface *intf,
|
|||
|
||||
hdw->control_cnt = CTRLDEF_COUNT;
|
||||
hdw->control_cnt += MPEGDEF_COUNT;
|
||||
hdw->controls = kzalloc(sizeof(struct pvr2_ctrl) * hdw->control_cnt,
|
||||
hdw->controls = kcalloc(hdw->control_cnt, sizeof(struct pvr2_ctrl),
|
||||
GFP_KERNEL);
|
||||
if (!hdw->controls) goto fail;
|
||||
hdw->hdw_desc = hdw_desc;
|
||||
|
|
|
|||
|
|
@ -361,7 +361,7 @@ struct v4l2_standard *pvr2_std_create_enum(unsigned int *countptr,
|
|||
std_cnt);
|
||||
if (!std_cnt) return NULL; // paranoia
|
||||
|
||||
stddefs = kzalloc(sizeof(struct v4l2_standard) * std_cnt,
|
||||
stddefs = kcalloc(std_cnt, sizeof(struct v4l2_standard),
|
||||
GFP_KERNEL);
|
||||
if (!stddefs)
|
||||
return NULL;
|
||||
|
|
|
|||
|
|
@ -439,14 +439,14 @@ int stk1160_alloc_isoc(struct stk1160 *dev)
|
|||
|
||||
dev->isoc_ctl.buf = NULL;
|
||||
dev->isoc_ctl.max_pkt_size = dev->max_pkt_size;
|
||||
dev->isoc_ctl.urb = kzalloc(sizeof(void *)*num_bufs, GFP_KERNEL);
|
||||
dev->isoc_ctl.urb = kcalloc(num_bufs, sizeof(void *), GFP_KERNEL);
|
||||
if (!dev->isoc_ctl.urb) {
|
||||
stk1160_err("out of memory for urb array\n");
|
||||
return -ENOMEM;
|
||||
}
|
||||
|
||||
dev->isoc_ctl.transfer_buffer = kzalloc(sizeof(void *)*num_bufs,
|
||||
GFP_KERNEL);
|
||||
dev->isoc_ctl.transfer_buffer = kcalloc(num_bufs, sizeof(void *),
|
||||
GFP_KERNEL);
|
||||
if (!dev->isoc_ctl.transfer_buffer) {
|
||||
stk1160_err("out of memory for usb transfers\n");
|
||||
kfree(dev->isoc_ctl.urb);
|
||||
|
|
|
|||
|
|
@ -567,8 +567,9 @@ static int stk_prepare_sio_buffers(struct stk_camera *dev, unsigned n_sbufs)
|
|||
if (dev->sio_bufs != NULL)
|
||||
pr_err("sio_bufs already allocated\n");
|
||||
else {
|
||||
dev->sio_bufs = kzalloc(n_sbufs * sizeof(struct stk_sio_buffer),
|
||||
GFP_KERNEL);
|
||||
dev->sio_bufs = kcalloc(n_sbufs,
|
||||
sizeof(struct stk_sio_buffer),
|
||||
GFP_KERNEL);
|
||||
if (dev->sio_bufs == NULL)
|
||||
return -ENOMEM;
|
||||
for (i = 0; i < n_sbufs; i++) {
|
||||
|
|
|
|||
|
|
@ -507,7 +507,7 @@ static struct urb *usbtv_setup_iso_transfer(struct usbtv *usbtv)
|
|||
ip->pipe = usb_rcvisocpipe(usbtv->udev, USBTV_VIDEO_ENDP);
|
||||
ip->interval = 1;
|
||||
ip->transfer_flags = URB_ISO_ASAP;
|
||||
ip->transfer_buffer = kzalloc(size * USBTV_ISOC_PACKETS,
|
||||
ip->transfer_buffer = kcalloc(USBTV_ISOC_PACKETS, size,
|
||||
GFP_KERNEL);
|
||||
if (!ip->transfer_buffer) {
|
||||
usb_free_urb(ip);
|
||||
|
|
|
|||
Loading…
Reference in a new issue