Re: [PATCH] drivers: scsi: scsi_lib.c: add prefix "SCSILIB_" to macro "SP"

James Bottomley
2013-12-02T00:49:52Z

On Mon, 2013-12-02 at 08:34 +0800, Chen Gang wrote:
> On 12/02/2013 12:17 AM, Bart Van Assche wrote:
> > On 11/27/13 03:29, Chen Gang wrote:
> >> the macro "SP" is too common to make conflict with some architectures,
> >> so recommend to add prefix for it.
> >>
> >> The related warning (with allmodconfig for hexagon):
> >>
> >> CC [M] drivers/scsi/scsi_lib.o
> >> drivers/scsi/scsi_lib.c:46:0: warning: "SP" redefined [enabled by default]
> >> arch/hexagon/include/uapi/asm/registers.h:9:0: note: this is the location of the previous definition
> >>
> >>
> >> Signed-off-by: Chen Gang <gang.chen.5i5j@gmail.com>
> >> ---
> >> drivers/scsi/scsi_lib.c | 16 ++++++++--------
> >> 1 files changed, 8 insertions(+), 8 deletions(-)
> >>
> >> diff --git a/drivers/scsi/scsi_lib.c b/drivers/scsi/scsi_lib.c
> >> index 7bd7f0d..f78e21b 100644
> >> --- a/drivers/scsi/scsi_lib.c
> >> +++ b/drivers/scsi/scsi_lib.c
> >> @@ -43,28 +43,28 @@ struct scsi_host_sg_pool {
> >> mempool_t *pool;
> >> };
> >>
> >> -#define SP(x) { x, "sgpool-" __stringify(x) }
> >> +#define SCSILIB_SP(x) { x, "sgpool-" __stringify(x) }
> >> #if (SCSI_MAX_SG_SEGMENTS < 32)
> >> #error SCSI_MAX_SG_SEGMENTS is too small (must be 32 or greater)
> >> #endif
> >> static struct scsi_host_sg_pool scsi_sg_pools[] = {
> >> - SP(8),
> >> - SP(16),
> >> + SCSILIB_SP(8),
> >> + SCSILIB_SP(16),
> >> #if (SCSI_MAX_SG_SEGMENTS > 32)
> >> - SP(32),
> >> + SCSILIB_SP(32),
> >> #if (SCSI_MAX_SG_SEGMENTS > 64)
> >> - SP(64),
> >> + SCSILIB_SP(64),
> >> #if (SCSI_MAX_SG_SEGMENTS > 128)
> >> - SP(128),
> >> + SCSILIB_SP(128),
> >> #if (SCSI_MAX_SG_SEGMENTS > 256)
> >> #error SCSI_MAX_SG_SEGMENTS is too large (256 MAX)
> >> #endif
> >> #endif
> >> #endif
> >> #endif
> >> - SP(SCSI_MAX_SG_SEGMENTS)
> >> + SCSILIB_SP(SCSI_MAX_SG_SEGMENTS)
> >> };
> >> -#undef SP
> >> +#undef SCSILIB_SP
> >>
> >> struct kmem_cache *scsi_sdb_cache;
> >
> > Sorry but the "SCSILIB_SP" name doesn't look very descriptive to me.
> > There are probably better choices possible. How about using e.g.
> > SG_POOL() instead ?
> >
>
> That sounds good to me, I will send patch v2, tomorrow (today I have
> to do some another urgent things, if this patch is also urgent, please
> help send). :-)

No, this is the wrong thing to do. Exported headers should be namespace
protected, so the thing wrong is what's exporting the problem to us,
namely hexagon.

James