All of lore.kernel.org
 help / color / mirror / Atom feed
From: Joe Perches <joe@perches.com>
To: "Luis R. Rodriguez" <mcgrof@do-not-panic.com>,
	Arnd Bergmann <arnd@arndb.de>
Cc: linux-kernel@vger.kernel.org, devel@driverdev.osuosl.org,
	linux-arch@vger.kernel.org, linux-scsi@vger.kernel.org,
	iss_storagedev@hp.com, linux-rdma@vger.kernel.org,
	netdev@vger.kernel.org, linux-atm-general@lists.sourceforge.net,
	linux-wireless@vger.kernel.org, dri-devel@lists.freedesktop.org,
	linux-crypto@vger.kernel.org, linux-eata@i-connect.net,
	linux-media@vger.kernel.org
Subject: Re: [PATCH 00/22] Add and use pci_zalloc_consistent
Date: Mon, 23 Jun 2014 12:13:29 -0700	[thread overview]
Message-ID: <1403550809.15811.13.camel@joe-AO725> (raw)
In-Reply-To: <20140623172512.GA1390@garbanzo.do-not-panic.com>

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);



WARNING: multiple messages have this Message-ID (diff)
From: Joe Perches <joe@perches.com>
To: "Luis R. Rodriguez" <mcgrof@do-not-panic.com>,
	Arnd Bergmann <arnd@arndb.de>
Cc: devel@driverdev.osuosl.org, linux-arch@vger.kernel.org,
	linux-scsi@vger.kernel.org, iss_storagedev@hp.com,
	linux-rdma@vger.kernel.org, netdev@vger.kernel.org,
	linux-atm-general@lists.sourceforge.net,
	linux-wireless@vger.kernel.org, linux-kernel@vger.kernel.org,
	dri-devel@lists.freedesktop.org, linux-crypto@vger.kernel.org,
	linux-media@vger.kernel.org, linux-eata@i-connect.net
Subject: Re: [PATCH 00/22] Add and use pci_zalloc_consistent
Date: Mon, 23 Jun 2014 12:13:29 -0700	[thread overview]
Message-ID: <1403550809.15811.13.camel@joe-AO725> (raw)
In-Reply-To: <20140623172512.GA1390@garbanzo.do-not-panic.com>

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);

  reply	other threads:[~2014-06-23 19:13 UTC|newest]

Thread overview: 68+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
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-23 13:41 ` [PATCH 01/22] pci-dma-compat: Add pci_zalloc_consistent helper Joe Perches
2014-06-23 13:53   ` Arnd Bergmann
2014-06-23 14:03     ` Joe Perches
2014-06-25 19:27   ` Andrew Morton
2014-06-25 21:51     ` Joe Perches
2014-06-25 21:57       ` Andrew Morton
2014-06-25 22:14         ` Joe Perches
2014-06-25 22:31       ` David Miller
2014-06-23 13:41 ` [PATCH 02/22] atm: Use pci_zalloc_consistent Joe Perches
2014-06-23 13:41 ` [PATCH 03/22] block: " Joe Perches
2014-06-23 13:41 ` [PATCH 04/22] crypto: " Joe Perches
2014-06-23 13:41 ` [PATCH 05/22] infiniband: " Joe Perches
     [not found]   ` <ed5fb1adbe665a8e4a4e18bc316bab261bc55556.1403530604.git.joe-6d6DIl74uiNBDgjK7y7TUQ@public.gmane.org>
2014-06-23 13:57     ` Steve Wise
2014-06-23 13:57       ` Steve Wise
2014-06-23 13:41 ` [PATCH 06/22] i810: " Joe Perches
2014-06-23 13:41   ` Joe Perches
2014-07-08 10:13   ` Daniel Vetter
2014-06-23 13:41 ` [PATCH 07/22] media: " Joe Perches
2014-06-27  8:20   ` Hans Verkuil
2014-06-27 10:55     ` Mauro Carvalho Chehab
2014-06-23 13:41 ` [PATCH 08/22] amd: " Joe Perches
2014-06-23 18:02   ` Don Fry
2014-06-23 19:15     ` Joe Perches
2014-06-23 21:05       ` [PATCH V2 " Joe Perches
2014-06-23 21:36         ` [PATCH] amd: Neaten and remove unnecessary OOM messages Joe Perches
2014-06-23 22:42           ` Don Fry
2014-06-25 23:32           ` David Miller
     [not found]           ` <20140625123523.b00c71c3a3f0a9129f9e6f3d@linux-foundation.org>
2014-06-25 23:40             ` [PATCH V2] checkpatch: Add test for blank lines after function/struct/union/enum declarations Joe Perches
2014-06-23 22:22         ` [PATCH V2 08/22] amd: Use pci_zalloc_consistent Don Fry
2014-06-25  4:49         ` Guenter Roeck
2014-06-25  4:59           ` Joe Perches
2014-06-25 23:55         ` [PATCH V2] pcnet32: Neaten and remove unnecessary OOM messages Joe Perches
2014-07-01 19:19           ` David Miller
2014-07-01 19:26             ` Joe Perches
2014-06-25 23:51       ` [PATCH V3 08/22] pcnet32: Use pci_zalloc_consistent Joe Perches
2014-06-23 13:41 ` [PATCH 09/22] atl1e: " Joe Perches
2014-06-23 13:41 ` [PATCH 10/22] enic: " Joe Perches
2014-06-26  6:27   ` Govindarajulu Varadarajan
2014-06-23 13:41 ` [PATCH 11/22] sky2: " Joe Perches
2014-06-23 13:41 ` [PATCH 12/22] micrel: " Joe Perches
2014-06-23 13:41 ` [PATCH 13/22] qlogic: " Joe Perches
2014-06-23 13:41 ` [PATCH 14/22] irda: " Joe Perches
2014-06-23 13:41 ` [PATCH 15/22] ipw2100: " Joe Perches
2014-06-23 13:41 ` [PATCH 16/22] mwl8k: " Joe Perches
2014-06-23 13:41 ` [PATCH 17/22] rtl818x: " Joe Perches
2014-06-23 13:41 ` [PATCH 18/22] rtlwifi: " Joe Perches
2014-06-23 13:41 ` [PATCH 19/22] scsi: " Joe Perches
2014-06-23 13:41 ` [PATCH 20/22] staging: " Joe Perches
2014-06-23 16:14   ` Greg Kroah-Hartman
2014-06-23 13:41 ` [PATCH 21/22] synclink_gt: " Joe Perches
2014-06-23 16:15   ` Greg Kroah-Hartman
2014-06-23 13:41 ` [PATCH 22/22] vme: bridges: " Joe Perches
2014-06-23 16:15   ` Greg Kroah-Hartman
2014-06-23 17:25 ` [PATCH 00/22] Add and use pci_zalloc_consistent Luis R. Rodriguez
2014-06-23 17:25   ` Luis R. Rodriguez
2014-06-23 19:13   ` Joe Perches [this message]
2014-06-23 19:13     ` Joe Perches
2014-06-23 23:27     ` Julian Calaby
2014-06-23 23:48       ` Joe Perches
2014-06-24  5:24         ` Julia Lawall
2014-06-24  7:15           ` Joe Perches
2014-06-24 12:11             ` Julia Lawall
2014-06-24 11:32       ` Johannes Berg
2014-06-23 21:49 ` David Miller
2014-06-23 21:49   ` David Miller
2014-06-25 19:41 ` John W. Linville

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1403550809.15811.13.camel@joe-AO725 \
    --to=joe@perches.com \
    --cc=arnd@arndb.de \
    --cc=devel@driverdev.osuosl.org \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=iss_storagedev@hp.com \
    --cc=linux-arch@vger.kernel.org \
    --cc=linux-atm-general@lists.sourceforge.net \
    --cc=linux-crypto@vger.kernel.org \
    --cc=linux-eata@i-connect.net \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-media@vger.kernel.org \
    --cc=linux-rdma@vger.kernel.org \
    --cc=linux-scsi@vger.kernel.org \
    --cc=linux-wireless@vger.kernel.org \
    --cc=mcgrof@do-not-panic.com \
    --cc=netdev@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.