* [PATCH 00/22] Add and use pci_zalloc_consistent
@ 2014-06-23 13:41 Joe Perches
2014-06-23 13:41 ` [PATCH 07/22] media: Use pci_zalloc_consistent Joe Perches
` (3 more replies)
0 siblings, 4 replies; 10+ messages in thread
From: Joe Perches @ 2014-06-23 13:41 UTC (permalink / raw)
To: linux-kernel
Cc: linux-atm-general, netdev, iss_storagedev, linux-crypto,
dri-devel, linux-rdma, linux-media, linux-wireless, linux-scsi,
linux-eata, devel, linux-arch
Adding the helper reduces object code size as well as overall
source size line count.
It's also consistent with all the various zalloc mechanisms
in the kernel.
Done with a simple cocci script and some typing.
Joe Perches (22):
pci-dma-compat: Add pci_zalloc_consistent helper
atm: Use pci_zalloc_consistent
block: Use pci_zalloc_consistent
crypto: Use pci_zalloc_consistent
infiniband: Use pci_zalloc_consistent
i810: Use pci_zalloc_consistent
media: Use pci_zalloc_consistent
amd: Use pci_zalloc_consistent
atl1e: Use pci_zalloc_consistent
enic: Use pci_zalloc_consistent
sky2: Use pci_zalloc_consistent
micrel: Use pci_zalloc_consistent
qlogic: Use pci_zalloc_consistent
irda: Use pci_zalloc_consistent
ipw2100: Use pci_zalloc_consistent
mwl8k: Use pci_zalloc_consistent
rtl818x: Use pci_zalloc_consistent
rtlwifi: Use pci_zalloc_consistent
scsi: Use pci_zalloc_consistent
staging: Use pci_zalloc_consistent
synclink_gt: Use pci_zalloc_consistent
vme: bridges: Use pci_zalloc_consistent
drivers/atm/he.c | 31 ++++++++---------
drivers/atm/idt77252.c | 15 ++++----
drivers/block/DAC960.c | 18 +++++-----
drivers/block/cciss.c | 11 +++---
drivers/block/skd_main.c | 25 +++++---------
drivers/crypto/hifn_795x.c | 5 ++-
drivers/gpu/drm/i810/i810_dma.c | 5 ++-
drivers/infiniband/hw/amso1100/c2.c | 6 ++--
drivers/infiniband/hw/nes/nes_hw.c | 12 +++----
drivers/infiniband/hw/nes/nes_verbs.c | 5 ++-
drivers/media/common/saa7146/saa7146_core.c | 15 ++++----
drivers/media/common/saa7146/saa7146_fops.c | 5 +--
drivers/media/pci/bt8xx/bt878.c | 16 +++------
drivers/media/pci/ngene/ngene-core.c | 7 ++--
drivers/media/usb/ttusb-budget/dvb-ttusb-budget.c | 11 ++----
drivers/media/usb/ttusb-dec/ttusb_dec.c | 11 ++----
drivers/net/ethernet/amd/pcnet32.c | 16 ++++-----
drivers/net/ethernet/atheros/atl1e/atl1e_main.c | 7 ++--
drivers/net/ethernet/cisco/enic/vnic_dev.c | 8 ++---
drivers/net/ethernet/marvell/sky2.c | 5 ++-
drivers/net/ethernet/micrel/ksz884x.c | 7 ++--
.../net/ethernet/qlogic/netxen/netxen_nic_ctx.c | 4 +--
drivers/net/ethernet/qlogic/qlge/qlge_main.c | 11 +++---
drivers/net/irda/vlsi_ir.c | 4 +--
drivers/net/wireless/ipw2x00/ipw2100.c | 16 +++------
drivers/net/wireless/mwl8k.c | 6 ++--
drivers/net/wireless/rtl818x/rtl8180/dev.c | 11 +++---
drivers/net/wireless/rtlwifi/pci.c | 17 +++------
drivers/scsi/3w-sas.c | 5 ++-
drivers/scsi/a100u2w.c | 8 ++---
drivers/scsi/be2iscsi/be_main.c | 10 +++---
drivers/scsi/be2iscsi/be_mgmt.c | 3 +-
drivers/scsi/csiostor/csio_wr.c | 8 +----
drivers/scsi/eata.c | 5 ++-
drivers/scsi/hpsa.c | 8 ++---
drivers/scsi/megaraid/megaraid_mbox.c | 16 ++++-----
drivers/scsi/megaraid/megaraid_sas_base.c | 8 ++---
drivers/scsi/mesh.c | 6 ++--
drivers/scsi/mvumi.c | 9 ++---
drivers/scsi/pm8001/pm8001_sas.c | 5 ++-
drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 15 +++-----
drivers/staging/rtl8192ee/pci.c | 37 +++++++-------------
drivers/staging/rtl8821ae/pci.c | 36 +++++++------------
drivers/staging/slicoss/slicoss.c | 9 ++---
drivers/staging/vt6655/device_main.c | 40 +++++++---------------
drivers/tty/synclink_gt.c | 5 ++-
drivers/vme/bridges/vme_ca91cx42.c | 6 ++--
drivers/vme/bridges/vme_tsi148.c | 6 ++--
include/asm-generic/pci-dma-compat.h | 8 +++++
49 files changed, 209 insertions(+), 354 deletions(-)
--
1.8.1.2.459.gbcd45b4.dirty
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH 07/22] media: Use pci_zalloc_consistent
2014-06-23 13:41 [PATCH 00/22] Add and use pci_zalloc_consistent Joe Perches
@ 2014-06-23 13:41 ` Joe Perches
2014-06-27 8:20 ` Hans Verkuil
2014-06-23 17:25 ` [PATCH 00/22] Add and use pci_zalloc_consistent Luis R. Rodriguez
` (2 subsequent siblings)
3 siblings, 1 reply; 10+ messages in thread
From: Joe Perches @ 2014-06-23 13:41 UTC (permalink / raw)
To: linux-kernel; +Cc: Hans Verkuil, Mauro Carvalho Chehab, linux-media
Remove the now unnecessary memset too.
Signed-off-by: Joe Perches <joe@perches.com>
---
drivers/media/common/saa7146/saa7146_core.c | 15 ++++++---------
drivers/media/common/saa7146/saa7146_fops.c | 5 +++--
drivers/media/pci/bt8xx/bt878.c | 16 ++++------------
drivers/media/pci/ngene/ngene-core.c | 7 +++----
drivers/media/usb/ttusb-budget/dvb-ttusb-budget.c | 11 +++--------
drivers/media/usb/ttusb-dec/ttusb_dec.c | 11 +++--------
6 files changed, 22 insertions(+), 43 deletions(-)
diff --git a/drivers/media/common/saa7146/saa7146_core.c b/drivers/media/common/saa7146/saa7146_core.c
index 34b0d0d..97afee6 100644
--- a/drivers/media/common/saa7146/saa7146_core.c
+++ b/drivers/media/common/saa7146/saa7146_core.c
@@ -421,23 +421,20 @@ static int saa7146_init_one(struct pci_dev *pci, const struct pci_device_id *ent
err = -ENOMEM;
/* get memory for various stuff */
- dev->d_rps0.cpu_addr = pci_alloc_consistent(pci, SAA7146_RPS_MEM,
- &dev->d_rps0.dma_handle);
+ dev->d_rps0.cpu_addr = pci_zalloc_consistent(pci, SAA7146_RPS_MEM,
+ &dev->d_rps0.dma_handle);
if (!dev->d_rps0.cpu_addr)
goto err_free_irq;
- memset(dev->d_rps0.cpu_addr, 0x0, SAA7146_RPS_MEM);
- dev->d_rps1.cpu_addr = pci_alloc_consistent(pci, SAA7146_RPS_MEM,
- &dev->d_rps1.dma_handle);
+ dev->d_rps1.cpu_addr = pci_zalloc_consistent(pci, SAA7146_RPS_MEM,
+ &dev->d_rps1.dma_handle);
if (!dev->d_rps1.cpu_addr)
goto err_free_rps0;
- memset(dev->d_rps1.cpu_addr, 0x0, SAA7146_RPS_MEM);
- dev->d_i2c.cpu_addr = pci_alloc_consistent(pci, SAA7146_RPS_MEM,
- &dev->d_i2c.dma_handle);
+ dev->d_i2c.cpu_addr = pci_zalloc_consistent(pci, SAA7146_RPS_MEM,
+ &dev->d_i2c.dma_handle);
if (!dev->d_i2c.cpu_addr)
goto err_free_rps1;
- memset(dev->d_i2c.cpu_addr, 0x0, SAA7146_RPS_MEM);
/* the rest + print status message */
diff --git a/drivers/media/common/saa7146/saa7146_fops.c b/drivers/media/common/saa7146/saa7146_fops.c
index eda01bc..a776a80 100644
--- a/drivers/media/common/saa7146/saa7146_fops.c
+++ b/drivers/media/common/saa7146/saa7146_fops.c
@@ -520,14 +520,15 @@ int saa7146_vv_init(struct saa7146_dev* dev, struct saa7146_ext_vv *ext_vv)
configuration data) */
dev->ext_vv_data = ext_vv;
- vv->d_clipping.cpu_addr = pci_alloc_consistent(dev->pci, SAA7146_CLIPPING_MEM, &vv->d_clipping.dma_handle);
+ vv->d_clipping.cpu_addr =
+ pci_zalloc_consistent(dev->pci, SAA7146_CLIPPING_MEM,
+ &vv->d_clipping.dma_handle);
if( NULL == vv->d_clipping.cpu_addr ) {
ERR("out of memory. aborting.\n");
kfree(vv);
v4l2_ctrl_handler_free(hdl);
return -1;
}
- memset(vv->d_clipping.cpu_addr, 0x0, SAA7146_CLIPPING_MEM);
saa7146_video_uops.init(dev,vv);
if (dev->ext_vv_data->capabilities & V4L2_CAP_VBI_CAPTURE)
diff --git a/drivers/media/pci/bt8xx/bt878.c b/drivers/media/pci/bt8xx/bt878.c
index d0c281f..1176583 100644
--- a/drivers/media/pci/bt8xx/bt878.c
+++ b/drivers/media/pci/bt8xx/bt878.c
@@ -101,28 +101,20 @@ static int bt878_mem_alloc(struct bt878 *bt)
if (!bt->buf_cpu) {
bt->buf_size = 128 * 1024;
- bt->buf_cpu =
- pci_alloc_consistent(bt->dev, bt->buf_size,
- &bt->buf_dma);
-
+ bt->buf_cpu = pci_zalloc_consistent(bt->dev, bt->buf_size,
+ &bt->buf_dma);
if (!bt->buf_cpu)
return -ENOMEM;
-
- memset(bt->buf_cpu, 0, bt->buf_size);
}
if (!bt->risc_cpu) {
bt->risc_size = PAGE_SIZE;
- bt->risc_cpu =
- pci_alloc_consistent(bt->dev, bt->risc_size,
- &bt->risc_dma);
-
+ bt->risc_cpu = pci_zalloc_consistent(bt->dev, bt->risc_size,
+ &bt->risc_dma);
if (!bt->risc_cpu) {
bt878_mem_free(bt);
return -ENOMEM;
}
-
- memset(bt->risc_cpu, 0, bt->risc_size);
}
return 0;
diff --git a/drivers/media/pci/ngene/ngene-core.c b/drivers/media/pci/ngene/ngene-core.c
index 970e833..37dc149 100644
--- a/drivers/media/pci/ngene/ngene-core.c
+++ b/drivers/media/pci/ngene/ngene-core.c
@@ -1078,12 +1078,11 @@ static int AllocCommonBuffers(struct ngene *dev)
dev->ngenetohost = dev->FWInterfaceBuffer + 256;
dev->EventBuffer = dev->FWInterfaceBuffer + 512;
- dev->OverflowBuffer = pci_alloc_consistent(dev->pci_dev,
- OVERFLOW_BUFFER_SIZE,
- &dev->PAOverflowBuffer);
+ dev->OverflowBuffer = pci_zalloc_consistent(dev->pci_dev,
+ OVERFLOW_BUFFER_SIZE,
+ &dev->PAOverflowBuffer);
if (!dev->OverflowBuffer)
return -ENOMEM;
- memset(dev->OverflowBuffer, 0, OVERFLOW_BUFFER_SIZE);
for (i = STREAM_VIDEOIN1; i < MAX_STREAM; i++) {
int type = dev->card_info->io_type[i];
diff --git a/drivers/media/usb/ttusb-budget/dvb-ttusb-budget.c b/drivers/media/usb/ttusb-budget/dvb-ttusb-budget.c
index f8a60c1..0d3194a 100644
--- a/drivers/media/usb/ttusb-budget/dvb-ttusb-budget.c
+++ b/drivers/media/usb/ttusb-budget/dvb-ttusb-budget.c
@@ -804,11 +804,9 @@ static int ttusb_alloc_iso_urbs(struct ttusb *ttusb)
{
int i;
- ttusb->iso_buffer = pci_alloc_consistent(NULL,
- ISO_FRAME_SIZE *
- FRAMES_PER_ISO_BUF *
- ISO_BUF_COUNT,
- &ttusb->iso_dma_handle);
+ ttusb->iso_buffer = pci_zalloc_consistent(NULL,
+ ISO_FRAME_SIZE * FRAMES_PER_ISO_BUF * ISO_BUF_COUNT,
+ &ttusb->iso_dma_handle);
if (!ttusb->iso_buffer) {
dprintk("%s: pci_alloc_consistent - not enough memory\n",
@@ -816,9 +814,6 @@ static int ttusb_alloc_iso_urbs(struct ttusb *ttusb)
return -ENOMEM;
}
- memset(ttusb->iso_buffer, 0,
- ISO_FRAME_SIZE * FRAMES_PER_ISO_BUF * ISO_BUF_COUNT);
-
for (i = 0; i < ISO_BUF_COUNT; i++) {
struct urb *urb;
diff --git a/drivers/media/usb/ttusb-dec/ttusb_dec.c b/drivers/media/usb/ttusb-dec/ttusb_dec.c
index 29724af..15ab584 100644
--- a/drivers/media/usb/ttusb-dec/ttusb_dec.c
+++ b/drivers/media/usb/ttusb-dec/ttusb_dec.c
@@ -1151,11 +1151,9 @@ static int ttusb_dec_alloc_iso_urbs(struct ttusb_dec *dec)
dprintk("%s\n", __func__);
- dec->iso_buffer = pci_alloc_consistent(NULL,
- ISO_FRAME_SIZE *
- (FRAMES_PER_ISO_BUF *
- ISO_BUF_COUNT),
- &dec->iso_dma_handle);
+ dec->iso_buffer = pci_zalloc_consistent(NULL,
+ ISO_FRAME_SIZE * (FRAMES_PER_ISO_BUF * ISO_BUF_COUNT),
+ &dec->iso_dma_handle);
if (!dec->iso_buffer) {
dprintk("%s: pci_alloc_consistent - not enough memory\n",
@@ -1163,9 +1161,6 @@ static int ttusb_dec_alloc_iso_urbs(struct ttusb_dec *dec)
return -ENOMEM;
}
- memset(dec->iso_buffer, 0,
- ISO_FRAME_SIZE * (FRAMES_PER_ISO_BUF * ISO_BUF_COUNT));
-
for (i = 0; i < ISO_BUF_COUNT; i++) {
struct urb *urb;
--
1.8.1.2.459.gbcd45b4.dirty
^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH 00/22] Add and use pci_zalloc_consistent
2014-06-23 13:41 [PATCH 00/22] Add and use pci_zalloc_consistent Joe Perches
2014-06-23 13:41 ` [PATCH 07/22] media: Use pci_zalloc_consistent Joe Perches
@ 2014-06-23 17:25 ` Luis R. Rodriguez
2014-06-23 19:13 ` Joe Perches
2014-06-23 21:49 ` David Miller
2014-06-25 19:41 ` John W. Linville
3 siblings, 1 reply; 10+ messages in thread
From: Luis R. Rodriguez @ 2014-06-23 17:25 UTC (permalink / raw)
To: Joe Perches
Cc: linux-kernel, devel, linux-arch, linux-scsi, iss_storagedev,
linux-rdma, netdev, linux-atm-general, linux-wireless, dri-devel,
linux-crypto, linux-eata, linux-media
On Mon, Jun 23, 2014 at 06:41:28AM -0700, Joe Perches wrote:
> Adding the helper reduces object code size as well as overall
> source size line count.
>
> It's also consistent with all the various zalloc mechanisms
> in the kernel.
>
> Done with a simple cocci script and some typing.
Awesome, any chance you can paste in the SmPL? Also any chance
we can get this added to a make coccicheck so that maintainers
moving forward can use that to ensure that no new code is
added that uses the old school API?
Luis
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 00/22] Add and use pci_zalloc_consistent
2014-06-23 17:25 ` [PATCH 00/22] Add and use pci_zalloc_consistent Luis R. Rodriguez
@ 2014-06-23 19:13 ` Joe Perches
2014-06-23 23:27 ` Julian Calaby
0 siblings, 1 reply; 10+ messages in thread
From: Joe Perches @ 2014-06-23 19:13 UTC (permalink / raw)
To: Luis R. Rodriguez, Arnd Bergmann
Cc: linux-kernel, devel, linux-arch, linux-scsi, iss_storagedev,
linux-rdma, netdev, linux-atm-general, linux-wireless, dri-devel,
linux-crypto, linux-eata, linux-media
On Mon, 2014-06-23 at 10:25 -0700, Luis R. Rodriguez wrote:
> On Mon, Jun 23, 2014 at 06:41:28AM -0700, Joe Perches wrote:
> > Adding the helper reduces object code size as well as overall
> > source size line count.
> >
> > It's also consistent with all the various zalloc mechanisms
> > in the kernel.
> >
> > Done with a simple cocci script and some typing.
>
> Awesome, any chance you can paste in the SmPL? Also any chance
> we can get this added to a make coccicheck so that maintainers
> moving forward can use that to ensure that no new code is
> added that uses the old school API?
Not many of these are recent.
Arnd Bergmann reasonably suggested that the pci_alloc_consistent
api be converted the the more widely used dma_alloc_coherent.
https://lkml.org/lkml/2014/6/23/513
> Shouldn't these drivers just use the normal dma-mapping API now?
and I replied:
https://lkml.org/lkml/2014/6/23/525
> Maybe. I wouldn't mind.
> They do seem to have a trivial bit of unnecessary overhead for
> hwdev == NULL ? NULL : &hwdev->dev
Anyway, here's the little script.
I'm not sure it's worthwhile to add it though.
$ cat ./scripts/coccinelle/api/alloc/pci_zalloc_consistent.cocci
///
/// Use pci_zalloc_consistent rather than
/// pci_alloc_consistent followed by memset with 0
///
/// This considers some simple cases that are common and easy to validate
/// Note in particular that there are no ...s in the rule, so all of the
/// matched code has to be contiguous
///
/// Blatantly cribbed from: scripts/coccinelle/api/alloc/kzalloc-simple.cocci
@@
type T, T2;
expression x;
expression E1,E2,E3;
statement S;
@@
- x = (T)pci_alloc_consistent(E1,E2,E3);
+ x = pci_zalloc_consistent(E1,E2,E3);
if ((x==NULL) || ...) S
- memset((T2)x,0,E2);
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 00/22] Add and use pci_zalloc_consistent
2014-06-23 13:41 [PATCH 00/22] Add and use pci_zalloc_consistent Joe Perches
2014-06-23 13:41 ` [PATCH 07/22] media: Use pci_zalloc_consistent Joe Perches
2014-06-23 17:25 ` [PATCH 00/22] Add and use pci_zalloc_consistent Luis R. Rodriguez
@ 2014-06-23 21:49 ` David Miller
2014-06-25 19:41 ` John W. Linville
3 siblings, 0 replies; 10+ messages in thread
From: David Miller @ 2014-06-23 21:49 UTC (permalink / raw)
To: joe
Cc: linux-kernel, linux-atm-general, netdev, iss_storagedev,
linux-crypto, dri-devel, linux-rdma, linux-media, linux-wireless,
linux-scsi, linux-eata, devel, linux-arch
From: Joe Perches <joe@perches.com>
Date: Mon, 23 Jun 2014 06:41:28 -0700
> Adding the helper reduces object code size as well as overall
> source size line count.
>
> It's also consistent with all the various zalloc mechanisms
> in the kernel.
>
> Done with a simple cocci script and some typing.
For networking bits:
Acked-by: David S. Miller <davem@davemloft.net>
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 00/22] Add and use pci_zalloc_consistent
2014-06-23 19:13 ` Joe Perches
@ 2014-06-23 23:27 ` Julian Calaby
2014-06-24 11:32 ` Johannes Berg
0 siblings, 1 reply; 10+ messages in thread
From: Julian Calaby @ 2014-06-23 23:27 UTC (permalink / raw)
To: Joe Perches
Cc: Luis R. Rodriguez, Arnd Bergmann, linux-kernel@vger.kernel.org,
devel@driverdev.osuosl.org, linux-arch, linux-scsi,
iss_storagedev, linux-rdma, netdev, linux-atm-general,
linux-wireless, dri-devel, linux-crypto, linux-eata, linux-media
Hi Joe,
On Tue, Jun 24, 2014 at 5:13 AM, Joe Perches <joe@perches.com> wrote:
> On Mon, 2014-06-23 at 10:25 -0700, Luis R. Rodriguez wrote:
>> On Mon, Jun 23, 2014 at 06:41:28AM -0700, Joe Perches wrote:
>> > Adding the helper reduces object code size as well as overall
>> > source size line count.
>> >
>> > It's also consistent with all the various zalloc mechanisms
>> > in the kernel.
>> >
>> > Done with a simple cocci script and some typing.
>>
>> Awesome, any chance you can paste in the SmPL? Also any chance
>> we can get this added to a make coccicheck so that maintainers
>> moving forward can use that to ensure that no new code is
>> added that uses the old school API?
>
> Not many of these are recent.
>
> Arnd Bergmann reasonably suggested that the pci_alloc_consistent
> api be converted the the more widely used dma_alloc_coherent.
>
> https://lkml.org/lkml/2014/6/23/513
>
>> Shouldn't these drivers just use the normal dma-mapping API now?
>
> and I replied:
>
> https://lkml.org/lkml/2014/6/23/525
>
>> Maybe. I wouldn't mind.
>> They do seem to have a trivial bit of unnecessary overhead for
>> hwdev == NULL ? NULL : &hwdev->dev
>
> Anyway, here's the little script.
> I'm not sure it's worthwhile to add it though.
>
> $ cat ./scripts/coccinelle/api/alloc/pci_zalloc_consistent.cocci
> ///
> /// Use pci_zalloc_consistent rather than
> /// pci_alloc_consistent followed by memset with 0
> ///
> /// This considers some simple cases that are common and easy to validate
> /// Note in particular that there are no ...s in the rule, so all of the
> /// matched code has to be contiguous
> ///
> /// Blatantly cribbed from: scripts/coccinelle/api/alloc/kzalloc-simple.cocci
>
> @@
> type T, T2;
> expression x;
> expression E1,E2,E3;
> statement S;
> @@
>
> - x = (T)pci_alloc_consistent(E1,E2,E3);
> + x = pci_zalloc_consistent(E1,E2,E3);
> if ((x==NULL) || ...) S
> - memset((T2)x,0,E2);
I don't know much about SmPL, but wouldn't having that if statement
there reduce your matches?
Thanks,
--
Julian Calaby
Email: julian.calaby@gmail.com
Profile: http://www.google.com/profiles/julian.calaby/
.Plan: http://sites.google.com/site/juliancalaby/
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 00/22] Add and use pci_zalloc_consistent
2014-06-23 23:27 ` Julian Calaby
@ 2014-06-24 11:32 ` Johannes Berg
0 siblings, 0 replies; 10+ messages in thread
From: Johannes Berg @ 2014-06-24 11:32 UTC (permalink / raw)
To: Julian Calaby
Cc: Joe Perches, Luis R. Rodriguez, Arnd Bergmann,
linux-kernel@vger.kernel.org, devel@driverdev.osuosl.org,
linux-arch, linux-scsi, iss_storagedev, linux-rdma, netdev,
linux-atm-general, linux-wireless, dri-devel, linux-crypto,
linux-eata, linux-media
On Tue, 2014-06-24 at 09:27 +1000, Julian Calaby wrote:
> > - x = (T)pci_alloc_consistent(E1,E2,E3);
> > + x = pci_zalloc_consistent(E1,E2,E3);
> > if ((x==NULL) || ...) S
> > - memset((T2)x,0,E2);
>
> I don't know much about SmPL, but wouldn't having that if statement
> there reduce your matches?
Code that matched without the if statement would be buggy, since it
wouldn't be checking the pci_zalloc_consistent return value properly.l
johannes
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 00/22] Add and use pci_zalloc_consistent
2014-06-23 13:41 [PATCH 00/22] Add and use pci_zalloc_consistent Joe Perches
` (2 preceding siblings ...)
2014-06-23 21:49 ` David Miller
@ 2014-06-25 19:41 ` John W. Linville
3 siblings, 0 replies; 10+ messages in thread
From: John W. Linville @ 2014-06-25 19:41 UTC (permalink / raw)
To: Joe Perches
Cc: linux-kernel, linux-atm-general, netdev, iss_storagedev,
linux-crypto, dri-devel, linux-rdma, linux-media, linux-wireless,
linux-scsi, linux-eata, devel, linux-arch
On Mon, Jun 23, 2014 at 06:41:28AM -0700, Joe Perches wrote:
> Adding the helper reduces object code size as well as overall
> source size line count.
>
> It's also consistent with all the various zalloc mechanisms
> in the kernel.
>
> Done with a simple cocci script and some typing.
>
> Joe Perches (22):
> ipw2100: Use pci_zalloc_consistent
> mwl8k: Use pci_zalloc_consistent
> rtl818x: Use pci_zalloc_consistent
> rtlwifi: Use pci_zalloc_consistent
Sure, fine by me.
--
John W. Linville Someday the world will need a hero, and you
linville@tuxdriver.com might be all we have. Be ready.
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 07/22] media: Use pci_zalloc_consistent
2014-06-23 13:41 ` [PATCH 07/22] media: Use pci_zalloc_consistent Joe Perches
@ 2014-06-27 8:20 ` Hans Verkuil
2014-06-27 10:55 ` Mauro Carvalho Chehab
0 siblings, 1 reply; 10+ messages in thread
From: Hans Verkuil @ 2014-06-27 8:20 UTC (permalink / raw)
To: Joe Perches, linux-kernel; +Cc: Mauro Carvalho Chehab, linux-media
Hi Joe,
For the media subsystem:
Acked-by: Hans Verkuil <hans.verkuil@cisco.com>
Regards,
Hans
On 06/23/2014 03:41 PM, Joe Perches wrote:
> Remove the now unnecessary memset too.
>
> Signed-off-by: Joe Perches <joe@perches.com>
> ---
> drivers/media/common/saa7146/saa7146_core.c | 15 ++++++---------
> drivers/media/common/saa7146/saa7146_fops.c | 5 +++--
> drivers/media/pci/bt8xx/bt878.c | 16 ++++------------
> drivers/media/pci/ngene/ngene-core.c | 7 +++----
> drivers/media/usb/ttusb-budget/dvb-ttusb-budget.c | 11 +++--------
> drivers/media/usb/ttusb-dec/ttusb_dec.c | 11 +++--------
> 6 files changed, 22 insertions(+), 43 deletions(-)
>
> diff --git a/drivers/media/common/saa7146/saa7146_core.c b/drivers/media/common/saa7146/saa7146_core.c
> index 34b0d0d..97afee6 100644
> --- a/drivers/media/common/saa7146/saa7146_core.c
> +++ b/drivers/media/common/saa7146/saa7146_core.c
> @@ -421,23 +421,20 @@ static int saa7146_init_one(struct pci_dev *pci, const struct pci_device_id *ent
> err = -ENOMEM;
>
> /* get memory for various stuff */
> - dev->d_rps0.cpu_addr = pci_alloc_consistent(pci, SAA7146_RPS_MEM,
> - &dev->d_rps0.dma_handle);
> + dev->d_rps0.cpu_addr = pci_zalloc_consistent(pci, SAA7146_RPS_MEM,
> + &dev->d_rps0.dma_handle);
> if (!dev->d_rps0.cpu_addr)
> goto err_free_irq;
> - memset(dev->d_rps0.cpu_addr, 0x0, SAA7146_RPS_MEM);
>
> - dev->d_rps1.cpu_addr = pci_alloc_consistent(pci, SAA7146_RPS_MEM,
> - &dev->d_rps1.dma_handle);
> + dev->d_rps1.cpu_addr = pci_zalloc_consistent(pci, SAA7146_RPS_MEM,
> + &dev->d_rps1.dma_handle);
> if (!dev->d_rps1.cpu_addr)
> goto err_free_rps0;
> - memset(dev->d_rps1.cpu_addr, 0x0, SAA7146_RPS_MEM);
>
> - dev->d_i2c.cpu_addr = pci_alloc_consistent(pci, SAA7146_RPS_MEM,
> - &dev->d_i2c.dma_handle);
> + dev->d_i2c.cpu_addr = pci_zalloc_consistent(pci, SAA7146_RPS_MEM,
> + &dev->d_i2c.dma_handle);
> if (!dev->d_i2c.cpu_addr)
> goto err_free_rps1;
> - memset(dev->d_i2c.cpu_addr, 0x0, SAA7146_RPS_MEM);
>
> /* the rest + print status message */
>
> diff --git a/drivers/media/common/saa7146/saa7146_fops.c b/drivers/media/common/saa7146/saa7146_fops.c
> index eda01bc..a776a80 100644
> --- a/drivers/media/common/saa7146/saa7146_fops.c
> +++ b/drivers/media/common/saa7146/saa7146_fops.c
> @@ -520,14 +520,15 @@ int saa7146_vv_init(struct saa7146_dev* dev, struct saa7146_ext_vv *ext_vv)
> configuration data) */
> dev->ext_vv_data = ext_vv;
>
> - vv->d_clipping.cpu_addr = pci_alloc_consistent(dev->pci, SAA7146_CLIPPING_MEM, &vv->d_clipping.dma_handle);
> + vv->d_clipping.cpu_addr =
> + pci_zalloc_consistent(dev->pci, SAA7146_CLIPPING_MEM,
> + &vv->d_clipping.dma_handle);
> if( NULL == vv->d_clipping.cpu_addr ) {
> ERR("out of memory. aborting.\n");
> kfree(vv);
> v4l2_ctrl_handler_free(hdl);
> return -1;
> }
> - memset(vv->d_clipping.cpu_addr, 0x0, SAA7146_CLIPPING_MEM);
>
> saa7146_video_uops.init(dev,vv);
> if (dev->ext_vv_data->capabilities & V4L2_CAP_VBI_CAPTURE)
> diff --git a/drivers/media/pci/bt8xx/bt878.c b/drivers/media/pci/bt8xx/bt878.c
> index d0c281f..1176583 100644
> --- a/drivers/media/pci/bt8xx/bt878.c
> +++ b/drivers/media/pci/bt8xx/bt878.c
> @@ -101,28 +101,20 @@ static int bt878_mem_alloc(struct bt878 *bt)
> if (!bt->buf_cpu) {
> bt->buf_size = 128 * 1024;
>
> - bt->buf_cpu =
> - pci_alloc_consistent(bt->dev, bt->buf_size,
> - &bt->buf_dma);
> -
> + bt->buf_cpu = pci_zalloc_consistent(bt->dev, bt->buf_size,
> + &bt->buf_dma);
> if (!bt->buf_cpu)
> return -ENOMEM;
> -
> - memset(bt->buf_cpu, 0, bt->buf_size);
> }
>
> if (!bt->risc_cpu) {
> bt->risc_size = PAGE_SIZE;
> - bt->risc_cpu =
> - pci_alloc_consistent(bt->dev, bt->risc_size,
> - &bt->risc_dma);
> -
> + bt->risc_cpu = pci_zalloc_consistent(bt->dev, bt->risc_size,
> + &bt->risc_dma);
> if (!bt->risc_cpu) {
> bt878_mem_free(bt);
> return -ENOMEM;
> }
> -
> - memset(bt->risc_cpu, 0, bt->risc_size);
> }
>
> return 0;
> diff --git a/drivers/media/pci/ngene/ngene-core.c b/drivers/media/pci/ngene/ngene-core.c
> index 970e833..37dc149 100644
> --- a/drivers/media/pci/ngene/ngene-core.c
> +++ b/drivers/media/pci/ngene/ngene-core.c
> @@ -1078,12 +1078,11 @@ static int AllocCommonBuffers(struct ngene *dev)
> dev->ngenetohost = dev->FWInterfaceBuffer + 256;
> dev->EventBuffer = dev->FWInterfaceBuffer + 512;
>
> - dev->OverflowBuffer = pci_alloc_consistent(dev->pci_dev,
> - OVERFLOW_BUFFER_SIZE,
> - &dev->PAOverflowBuffer);
> + dev->OverflowBuffer = pci_zalloc_consistent(dev->pci_dev,
> + OVERFLOW_BUFFER_SIZE,
> + &dev->PAOverflowBuffer);
> if (!dev->OverflowBuffer)
> return -ENOMEM;
> - memset(dev->OverflowBuffer, 0, OVERFLOW_BUFFER_SIZE);
>
> for (i = STREAM_VIDEOIN1; i < MAX_STREAM; i++) {
> int type = dev->card_info->io_type[i];
> diff --git a/drivers/media/usb/ttusb-budget/dvb-ttusb-budget.c b/drivers/media/usb/ttusb-budget/dvb-ttusb-budget.c
> index f8a60c1..0d3194a 100644
> --- a/drivers/media/usb/ttusb-budget/dvb-ttusb-budget.c
> +++ b/drivers/media/usb/ttusb-budget/dvb-ttusb-budget.c
> @@ -804,11 +804,9 @@ static int ttusb_alloc_iso_urbs(struct ttusb *ttusb)
> {
> int i;
>
> - ttusb->iso_buffer = pci_alloc_consistent(NULL,
> - ISO_FRAME_SIZE *
> - FRAMES_PER_ISO_BUF *
> - ISO_BUF_COUNT,
> - &ttusb->iso_dma_handle);
> + ttusb->iso_buffer = pci_zalloc_consistent(NULL,
> + ISO_FRAME_SIZE * FRAMES_PER_ISO_BUF * ISO_BUF_COUNT,
> + &ttusb->iso_dma_handle);
>
> if (!ttusb->iso_buffer) {
> dprintk("%s: pci_alloc_consistent - not enough memory\n",
> @@ -816,9 +814,6 @@ static int ttusb_alloc_iso_urbs(struct ttusb *ttusb)
> return -ENOMEM;
> }
>
> - memset(ttusb->iso_buffer, 0,
> - ISO_FRAME_SIZE * FRAMES_PER_ISO_BUF * ISO_BUF_COUNT);
> -
> for (i = 0; i < ISO_BUF_COUNT; i++) {
> struct urb *urb;
>
> diff --git a/drivers/media/usb/ttusb-dec/ttusb_dec.c b/drivers/media/usb/ttusb-dec/ttusb_dec.c
> index 29724af..15ab584 100644
> --- a/drivers/media/usb/ttusb-dec/ttusb_dec.c
> +++ b/drivers/media/usb/ttusb-dec/ttusb_dec.c
> @@ -1151,11 +1151,9 @@ static int ttusb_dec_alloc_iso_urbs(struct ttusb_dec *dec)
>
> dprintk("%s\n", __func__);
>
> - dec->iso_buffer = pci_alloc_consistent(NULL,
> - ISO_FRAME_SIZE *
> - (FRAMES_PER_ISO_BUF *
> - ISO_BUF_COUNT),
> - &dec->iso_dma_handle);
> + dec->iso_buffer = pci_zalloc_consistent(NULL,
> + ISO_FRAME_SIZE * (FRAMES_PER_ISO_BUF * ISO_BUF_COUNT),
> + &dec->iso_dma_handle);
>
> if (!dec->iso_buffer) {
> dprintk("%s: pci_alloc_consistent - not enough memory\n",
> @@ -1163,9 +1161,6 @@ static int ttusb_dec_alloc_iso_urbs(struct ttusb_dec *dec)
> return -ENOMEM;
> }
>
> - memset(dec->iso_buffer, 0,
> - ISO_FRAME_SIZE * (FRAMES_PER_ISO_BUF * ISO_BUF_COUNT));
> -
> for (i = 0; i < ISO_BUF_COUNT; i++) {
> struct urb *urb;
>
>
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 07/22] media: Use pci_zalloc_consistent
2014-06-27 8:20 ` Hans Verkuil
@ 2014-06-27 10:55 ` Mauro Carvalho Chehab
0 siblings, 0 replies; 10+ messages in thread
From: Mauro Carvalho Chehab @ 2014-06-27 10:55 UTC (permalink / raw)
To: Hans Verkuil; +Cc: Joe Perches, linux-kernel, linux-media
Em Fri, 27 Jun 2014 10:20:33 +0200
Hans Verkuil <hverkuil@xs4all.nl> escreveu:
> Hi Joe,
>
> For the media subsystem:
>
> Acked-by: Hans Verkuil <hans.verkuil@cisco.com>
Err... I would rather prefer to apply this patch on our subsystem, in order
to avoid potential conflicts with other patches. Not really a big deal, as
those drivers aren't being touched for a while, but who knows what patches
may appear for them up to the next merge tree?
Regards,
Mauro
>
> Regards,
>
> Hans
>
> On 06/23/2014 03:41 PM, Joe Perches wrote:
> > Remove the now unnecessary memset too.
> >
> > Signed-off-by: Joe Perches <joe@perches.com>
> > ---
> > drivers/media/common/saa7146/saa7146_core.c | 15 ++++++---------
> > drivers/media/common/saa7146/saa7146_fops.c | 5 +++--
> > drivers/media/pci/bt8xx/bt878.c | 16 ++++------------
> > drivers/media/pci/ngene/ngene-core.c | 7 +++----
> > drivers/media/usb/ttusb-budget/dvb-ttusb-budget.c | 11 +++--------
> > drivers/media/usb/ttusb-dec/ttusb_dec.c | 11 +++--------
> > 6 files changed, 22 insertions(+), 43 deletions(-)
> >
> > diff --git a/drivers/media/common/saa7146/saa7146_core.c b/drivers/media/common/saa7146/saa7146_core.c
> > index 34b0d0d..97afee6 100644
> > --- a/drivers/media/common/saa7146/saa7146_core.c
> > +++ b/drivers/media/common/saa7146/saa7146_core.c
> > @@ -421,23 +421,20 @@ static int saa7146_init_one(struct pci_dev *pci, const struct pci_device_id *ent
> > err = -ENOMEM;
> >
> > /* get memory for various stuff */
> > - dev->d_rps0.cpu_addr = pci_alloc_consistent(pci, SAA7146_RPS_MEM,
> > - &dev->d_rps0.dma_handle);
> > + dev->d_rps0.cpu_addr = pci_zalloc_consistent(pci, SAA7146_RPS_MEM,
> > + &dev->d_rps0.dma_handle);
> > if (!dev->d_rps0.cpu_addr)
> > goto err_free_irq;
> > - memset(dev->d_rps0.cpu_addr, 0x0, SAA7146_RPS_MEM);
> >
> > - dev->d_rps1.cpu_addr = pci_alloc_consistent(pci, SAA7146_RPS_MEM,
> > - &dev->d_rps1.dma_handle);
> > + dev->d_rps1.cpu_addr = pci_zalloc_consistent(pci, SAA7146_RPS_MEM,
> > + &dev->d_rps1.dma_handle);
> > if (!dev->d_rps1.cpu_addr)
> > goto err_free_rps0;
> > - memset(dev->d_rps1.cpu_addr, 0x0, SAA7146_RPS_MEM);
> >
> > - dev->d_i2c.cpu_addr = pci_alloc_consistent(pci, SAA7146_RPS_MEM,
> > - &dev->d_i2c.dma_handle);
> > + dev->d_i2c.cpu_addr = pci_zalloc_consistent(pci, SAA7146_RPS_MEM,
> > + &dev->d_i2c.dma_handle);
> > if (!dev->d_i2c.cpu_addr)
> > goto err_free_rps1;
> > - memset(dev->d_i2c.cpu_addr, 0x0, SAA7146_RPS_MEM);
> >
> > /* the rest + print status message */
> >
> > diff --git a/drivers/media/common/saa7146/saa7146_fops.c b/drivers/media/common/saa7146/saa7146_fops.c
> > index eda01bc..a776a80 100644
> > --- a/drivers/media/common/saa7146/saa7146_fops.c
> > +++ b/drivers/media/common/saa7146/saa7146_fops.c
> > @@ -520,14 +520,15 @@ int saa7146_vv_init(struct saa7146_dev* dev, struct saa7146_ext_vv *ext_vv)
> > configuration data) */
> > dev->ext_vv_data = ext_vv;
> >
> > - vv->d_clipping.cpu_addr = pci_alloc_consistent(dev->pci, SAA7146_CLIPPING_MEM, &vv->d_clipping.dma_handle);
> > + vv->d_clipping.cpu_addr =
> > + pci_zalloc_consistent(dev->pci, SAA7146_CLIPPING_MEM,
> > + &vv->d_clipping.dma_handle);
> > if( NULL == vv->d_clipping.cpu_addr ) {
> > ERR("out of memory. aborting.\n");
> > kfree(vv);
> > v4l2_ctrl_handler_free(hdl);
> > return -1;
> > }
> > - memset(vv->d_clipping.cpu_addr, 0x0, SAA7146_CLIPPING_MEM);
> >
> > saa7146_video_uops.init(dev,vv);
> > if (dev->ext_vv_data->capabilities & V4L2_CAP_VBI_CAPTURE)
> > diff --git a/drivers/media/pci/bt8xx/bt878.c b/drivers/media/pci/bt8xx/bt878.c
> > index d0c281f..1176583 100644
> > --- a/drivers/media/pci/bt8xx/bt878.c
> > +++ b/drivers/media/pci/bt8xx/bt878.c
> > @@ -101,28 +101,20 @@ static int bt878_mem_alloc(struct bt878 *bt)
> > if (!bt->buf_cpu) {
> > bt->buf_size = 128 * 1024;
> >
> > - bt->buf_cpu =
> > - pci_alloc_consistent(bt->dev, bt->buf_size,
> > - &bt->buf_dma);
> > -
> > + bt->buf_cpu = pci_zalloc_consistent(bt->dev, bt->buf_size,
> > + &bt->buf_dma);
> > if (!bt->buf_cpu)
> > return -ENOMEM;
> > -
> > - memset(bt->buf_cpu, 0, bt->buf_size);
> > }
> >
> > if (!bt->risc_cpu) {
> > bt->risc_size = PAGE_SIZE;
> > - bt->risc_cpu =
> > - pci_alloc_consistent(bt->dev, bt->risc_size,
> > - &bt->risc_dma);
> > -
> > + bt->risc_cpu = pci_zalloc_consistent(bt->dev, bt->risc_size,
> > + &bt->risc_dma);
> > if (!bt->risc_cpu) {
> > bt878_mem_free(bt);
> > return -ENOMEM;
> > }
> > -
> > - memset(bt->risc_cpu, 0, bt->risc_size);
> > }
> >
> > return 0;
> > diff --git a/drivers/media/pci/ngene/ngene-core.c b/drivers/media/pci/ngene/ngene-core.c
> > index 970e833..37dc149 100644
> > --- a/drivers/media/pci/ngene/ngene-core.c
> > +++ b/drivers/media/pci/ngene/ngene-core.c
> > @@ -1078,12 +1078,11 @@ static int AllocCommonBuffers(struct ngene *dev)
> > dev->ngenetohost = dev->FWInterfaceBuffer + 256;
> > dev->EventBuffer = dev->FWInterfaceBuffer + 512;
> >
> > - dev->OverflowBuffer = pci_alloc_consistent(dev->pci_dev,
> > - OVERFLOW_BUFFER_SIZE,
> > - &dev->PAOverflowBuffer);
> > + dev->OverflowBuffer = pci_zalloc_consistent(dev->pci_dev,
> > + OVERFLOW_BUFFER_SIZE,
> > + &dev->PAOverflowBuffer);
> > if (!dev->OverflowBuffer)
> > return -ENOMEM;
> > - memset(dev->OverflowBuffer, 0, OVERFLOW_BUFFER_SIZE);
> >
> > for (i = STREAM_VIDEOIN1; i < MAX_STREAM; i++) {
> > int type = dev->card_info->io_type[i];
> > diff --git a/drivers/media/usb/ttusb-budget/dvb-ttusb-budget.c b/drivers/media/usb/ttusb-budget/dvb-ttusb-budget.c
> > index f8a60c1..0d3194a 100644
> > --- a/drivers/media/usb/ttusb-budget/dvb-ttusb-budget.c
> > +++ b/drivers/media/usb/ttusb-budget/dvb-ttusb-budget.c
> > @@ -804,11 +804,9 @@ static int ttusb_alloc_iso_urbs(struct ttusb *ttusb)
> > {
> > int i;
> >
> > - ttusb->iso_buffer = pci_alloc_consistent(NULL,
> > - ISO_FRAME_SIZE *
> > - FRAMES_PER_ISO_BUF *
> > - ISO_BUF_COUNT,
> > - &ttusb->iso_dma_handle);
> > + ttusb->iso_buffer = pci_zalloc_consistent(NULL,
> > + ISO_FRAME_SIZE * FRAMES_PER_ISO_BUF * ISO_BUF_COUNT,
> > + &ttusb->iso_dma_handle);
> >
> > if (!ttusb->iso_buffer) {
> > dprintk("%s: pci_alloc_consistent - not enough memory\n",
> > @@ -816,9 +814,6 @@ static int ttusb_alloc_iso_urbs(struct ttusb *ttusb)
> > return -ENOMEM;
> > }
> >
> > - memset(ttusb->iso_buffer, 0,
> > - ISO_FRAME_SIZE * FRAMES_PER_ISO_BUF * ISO_BUF_COUNT);
> > -
> > for (i = 0; i < ISO_BUF_COUNT; i++) {
> > struct urb *urb;
> >
> > diff --git a/drivers/media/usb/ttusb-dec/ttusb_dec.c b/drivers/media/usb/ttusb-dec/ttusb_dec.c
> > index 29724af..15ab584 100644
> > --- a/drivers/media/usb/ttusb-dec/ttusb_dec.c
> > +++ b/drivers/media/usb/ttusb-dec/ttusb_dec.c
> > @@ -1151,11 +1151,9 @@ static int ttusb_dec_alloc_iso_urbs(struct ttusb_dec *dec)
> >
> > dprintk("%s\n", __func__);
> >
> > - dec->iso_buffer = pci_alloc_consistent(NULL,
> > - ISO_FRAME_SIZE *
> > - (FRAMES_PER_ISO_BUF *
> > - ISO_BUF_COUNT),
> > - &dec->iso_dma_handle);
> > + dec->iso_buffer = pci_zalloc_consistent(NULL,
> > + ISO_FRAME_SIZE * (FRAMES_PER_ISO_BUF * ISO_BUF_COUNT),
> > + &dec->iso_dma_handle);
> >
> > if (!dec->iso_buffer) {
> > dprintk("%s: pci_alloc_consistent - not enough memory\n",
> > @@ -1163,9 +1161,6 @@ static int ttusb_dec_alloc_iso_urbs(struct ttusb_dec *dec)
> > return -ENOMEM;
> > }
> >
> > - memset(dec->iso_buffer, 0,
> > - ISO_FRAME_SIZE * (FRAMES_PER_ISO_BUF * ISO_BUF_COUNT));
> > -
> > for (i = 0; i < ISO_BUF_COUNT; i++) {
> > struct urb *urb;
> >
> >
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2014-06-27 10:55 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-06-23 13:41 [PATCH 00/22] Add and use pci_zalloc_consistent Joe Perches
2014-06-23 13:41 ` [PATCH 07/22] media: Use pci_zalloc_consistent Joe Perches
2014-06-27 8:20 ` Hans Verkuil
2014-06-27 10:55 ` Mauro Carvalho Chehab
2014-06-23 17:25 ` [PATCH 00/22] Add and use pci_zalloc_consistent Luis R. Rodriguez
2014-06-23 19:13 ` Joe Perches
2014-06-23 23:27 ` Julian Calaby
2014-06-24 11:32 ` Johannes Berg
2014-06-23 21:49 ` David Miller
2014-06-25 19:41 ` John W. Linville
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox