Re: [PATCH 3/5] staging: lustre: lustre: Remove unnecessary cast on void pointer

From: Joe Perches
Date: Thu Mar 02 2017 - 17:10:01 EST


On Fri, 2017-03-03 at 03:35 +0530, SIMRAN SINGHAL wrote:
> On Fri, Mar 3, 2017 at 3:29 AM, Joe Perches <joe@xxxxxxxxxxx> wrote:
> > On Fri, 2017-03-03 at 03:25 +0530, SIMRAN SINGHAL wrote:
> > > On Fri, Mar 3, 2017 at 3:13 AM, Joe Perches <joe@xxxxxxxxxxx> wrote:
> > > > On Fri, 2017-03-03 at 02:49 +0530, simran singhal wrote:
> > > > > The following Coccinelle script was used to detect this:
> > > > > @r@
> > > > > expression x;
> > > > > void* e;
> > > > > type T;
> > > > > identifier f;
> > > > > @@
> > > > > (
> > > > > *((T *)e)
> > > > > >
> > > > >
> > > > > ((T *)x)[...]
> > > > > >
> > > > >
> > > > > ((T*)x)->f
> > > > > >
> > > > >
> > > > > - (T*)
> > > > > e
> > > > > )
> > > >
> > > > NAK.
> > > >
> > > > Nice, but you still have to verify correctness
> > > > before submitting these patches.
> > > >
> > > > > diff --git a/drivers/staging/lustre/lustre/mgc/mgc_request.c b/drivers/staging/lustre/lustre/mgc/mgc_request.c
> > > >
> > > > []
> > > > > @@ -1034,7 +1034,7 @@ static int mgc_set_info_async(const struct lu_env *env, struct obd_export *exp,
> > > > > rc = sptlrpc_parse_flavor(val, &flvr);
> > > > > if (rc) {
> > > > > CERROR("invalid sptlrpc flavor %s to MGS\n",
> > > > > - (char *)val);
> > > > > + val);
> > > >
> > > > Try compiling this.
> > > >
> > >
> > > I compiled it before sending.
> >
> > Did you look at the warnings?
> >
> > CC [M] drivers/staging/lustre/lustre/mgc/mgc_request.o
> > drivers/staging/lustre/lustre/mgc/mgc_request.c: In function âmgc_set_info_asyncâ:
> > drivers/staging/lustre/lustre/mgc/mgc_request.c:1036:115: warning: format â%sâ expects argument of type âchar *â, but argument 3 has type âvoid *â [-Wformat=]
> > CERROR("invalid sptlrpc flavor %s to MGS\n",
> >
>
> I again compiled it and this is what I got :-
>
> CHK include/config/kernel.release
> CHK include/generated/uapi/linux/version.h
> CHK include/generated/utsrelease.h
> CHK include/generated/timeconst.h
> CHK include/generated/bounds.h
> CHK include/generated/asm-offsets.h
> CALL scripts/checksyscalls.sh
> CHK include/generated/compile.h
> LD arch/x86/boot/compressed/vmlinux
> ZOFFSET arch/x86/boot/zoffset.h
> AS arch/x86/boot/header.o
> LD arch/x86/boot/setup.elf
> OBJCOPY arch/x86/boot/setup.bin
> OBJCOPY arch/x86/boot/vmlinux.bin
> BUILD arch/x86/boot/bzImage
> Setup is 17500 bytes (padded to 17920 bytes).
> System is 7128 kB
> CRC 37713343
> Kernel: arch/x86/boot/bzImage is ready (#4)
> Building modules, stage 2.
> MODPOST 4541 modules
>
> I am not getting any warning.

Then you are likely not compiling the modified file.

try:

$ <git checkout latest-next>
$ make clean
$ make allyesconfig
<apply your patch>
$ make drivers/staging/lustre/lustre/mgc/mgc_request.o