Re: [PATCH] pcmcia/cm4000: remove useless variable tmp

From: Greg Kroah-Hartman
Date: Tue Jan 21 2020 - 11:25:04 EST


On Tue, Jan 21, 2020 at 05:53:53PM +0800, Alex Shi wrote:
>
>
> å 2020/1/21 äå5:08, Arnd Bergmann åé:
> > On Tue, Jan 21, 2020 at 9:50 AM Alex Shi <alex.shi@xxxxxxxxxxxxxxxxx> wrote:
> >>
> >> No one care the value of 'tmp' in func cmm_write. better to remove it.
> >
> > Hi Alex,
> >
> >> @@ -1146,7 +1145,7 @@ static ssize_t cmm_write(struct file *filp, const char __user *buf,
> >> set_cardparameter(dev);
> >>
> >> /* dummy read, reset flag procedure received */
> >> - tmp = inb(REG_FLAGS1(iobase));
> >> + inb(REG_FLAGS1(iobase));
> >
> > I think this may cause warnings on some architectures, when inb() is a macro
> > that just turns into a pointer dereference. You could write it as
> >
> > (void)inb(REG_FLAGS1(iobase));
> >
> > which would not warn anywhere.
> >
> > Arnd
> >
>
> Thanks a lot Arnd!
>
>
> >From 9e54770c6911ae7da7d2f74774bbef019e459bc9 Mon Sep 17 00:00:00 2001
> From: Alex Shi <alex.shi@xxxxxxxxxxxxxxxxx>
> Date: Fri, 17 Jan 2020 09:10:47 +0800
> Subject: [PATCH v2] pcmcia/cm4000: remove useless variable tmp
>
> No one care the value of 'tmp' in func cmm_write. better to remove it.
>
> Arnd Bergmann pointed just remove may cause warning in some arch where
> inb is macro, and suggest add a cast '(void)' for this. Thanks!
>
> Signed-off-by: Alex Shi <alex.shi@xxxxxxxxxxxxxxxxx>
> Cc: Harald Welte <laforge@xxxxxxxxxxxx>
> Cc: Arnd Bergmann <arnd@xxxxxxxx>
> Cc: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
> Cc: linux-kernel@xxxxxxxxxxxxxxx
> ---
> drivers/char/pcmcia/cm4000_cs.c | 3 +--
> 1 file changed, 1 insertion(+), 2 deletions(-)
>
> diff --git a/drivers/char/pcmcia/cm4000_cs.c b/drivers/char/pcmcia/cm4000_cs.c
> index 15bf585af5d3..0f55bed6c71f 100644
> --- a/drivers/char/pcmcia/cm4000_cs.c
> +++ b/drivers/char/pcmcia/cm4000_cs.c
> @@ -1048,7 +1048,6 @@ static ssize_t cmm_write(struct file *filp, const char __user *buf,
> struct cm4000_dev *dev = filp->private_data;
> unsigned int iobase = dev->p_dev->resource[0]->start;
> unsigned short s;
> - unsigned char tmp;
> unsigned char infolen;
> unsigned char sendT0;
> unsigned short nsend;
> @@ -1146,7 +1145,7 @@ static ssize_t cmm_write(struct file *filp, const char __user *buf,
> set_cardparameter(dev);
>
> /* dummy read, reset flag procedure received */
> - tmp = inb(REG_FLAGS1(iobase));
> + (void)inb(REG_FLAGS1(iobase));

That's horrid, just keep tmp :)