All of lore.kernel.org
 help / color / mirror / Atom feed
From: Zhou Wang <wangzhou1@hisilicon.com>
To: Brian Norris <computersforpeace@gmail.com>
Cc: kbuild test robot <fengguang.wu@intel.com>,
	linux-mtd@lists.infradead.org, kbuild-all@01.org
Subject: Re: [next:master 8896/9415] drivers/mtd/nand/hisi504_nand.c:375:26: sparse: cast removes address space of expression
Date: Sat, 28 Feb 2015 13:57:23 +0800	[thread overview]
Message-ID: <54F158C3.7020301@hisilicon.com> (raw)
In-Reply-To: <20150212213645.GZ18140@ld-irv-0074>

On 2015/2/13 5:36, Brian Norris wrote:
> + linux-mtd
> 
> Hi,
> 
> On Wed, Feb 11, 2015 at 03:49:56PM +0800, kbuild test robot wrote:
>> tree:   git://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
>> head:   5721f7f0f14b682d2e86e9a4aa9025acaf69399d
>> commit: 54f531f6e332875bd8a604871532f7f1174adc0e [8896/9415] mtd: hisilicon: add a new NAND controller driver for hisilicon hip04 Soc
>> reproduce:
>>   # apt-get install sparse
>>   git checkout 54f531f6e332875bd8a604871532f7f1174adc0e
>>   make ARCH=x86_64 allmodconfig
>>   make C=1 CF=-D__CHECK_ENDIAN__
>>
>>
>> sparse warnings: (new ones prefixed by >>)
>>
>>>> drivers/mtd/nand/hisi504_nand.c:375:26: sparse: cast removes address space of expression
>>>> drivers/mtd/nand/hisi504_nand.c:380:26: sparse: cast removes address space of expression
>>    drivers/mtd/nand/hisi504_nand.c:490:28: sparse: incorrect type in argument 1 (different address spaces)
>>    drivers/mtd/nand/hisi504_nand.c:490:28:    expected void *s
>>    drivers/mtd/nand/hisi504_nand.c:490:28:    got void [noderef] <asn:2>*mmio
>>    drivers/mtd/nand/hisi504_nand.c:502:28: sparse: incorrect type in argument 1 (different address spaces)
>>    drivers/mtd/nand/hisi504_nand.c:502:28:    expected void *s
>>    drivers/mtd/nand/hisi504_nand.c:502:28:    got void [noderef] <asn:2>*mmio
>>    drivers/mtd/nand/hisi504_nand.c:625:20: sparse: incorrect type in argument 1 (different address spaces)
>>    drivers/mtd/nand/hisi504_nand.c:625:20:    expected void *s
>>    drivers/mtd/nand/hisi504_nand.c:625:20:    got void [noderef] <asn:2>*mmio
>>    drivers/mtd/nand/hisi504_nand.c:890:1: sparse: symbol '__UNIQUE_ID_author__COUNTER__' has multiple initializers (originally initialized at drivers/mtd/nand/hisi504_nand.c:889)
>>
>> vim +375 drivers/mtd/nand/hisi504_nand.c
>>
>>    369	static uint8_t hisi_nfc_read_byte(struct mtd_info *mtd)
>>    370	{
>>    371		struct nand_chip *chip = mtd->priv;
>>    372		struct hinfc_host *host = chip->priv;
>>    373	
>>    374		if (host->command == NAND_CMD_STATUS)
>>  > 375			return *(uint8_t *)(host->mmio);
> 
> Yeah, this probably should be readb() or __raw_readb().
> 
> Zhou, why did you change this, again? I believe you made this change
> somewhere in the several revisions of your driver. I'm inclined to patch
> this before sending a pullreq to Linus.

Hi Brian,

Very sorry for late.

host->mmio there refers to the NAND controller hardware buffer which is mapped
to a chunk of RAM. For simple, I just used the way above. I do not know if it
is better to use readb() or __raw_readb() there. Do you mean that: it should use
readb() or __raw_readb() for host->mmio, and for host->buffer which is a chunk of
memory allocated by kernel it can directly get the value by
"*(uint8_t *)(host->buffer + host->offset - 1)"?

For the sparse warnings, there misses "__iomem". Am I right?

Thanks,
Zhou Wang

> 
>>    376	
>>    377		host->offset++;
>>    378	
>>    379		if (host->command == NAND_CMD_READID)
>>  > 380			return *(uint8_t *)(host->mmio + host->offset - 1);
> 
> Same here.
> 
>>    381	
>>    382		return *(uint8_t *)(host->buffer + host->offset - 1);
>>    383	}
>>
> 
> Brian
> 
> .
> 

      reply	other threads:[~2015-02-28  5:58 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <201502111555.q8V9IcSN%fengguang.wu@intel.com>
2015-02-12 21:36 ` [next:master 8896/9415] drivers/mtd/nand/hisi504_nand.c:375:26: sparse: cast removes address space of expression Brian Norris
2015-02-28  5:57   ` Zhou Wang [this message]

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=54F158C3.7020301@hisilicon.com \
    --to=wangzhou1@hisilicon.com \
    --cc=computersforpeace@gmail.com \
    --cc=fengguang.wu@intel.com \
    --cc=kbuild-all@01.org \
    --cc=linux-mtd@lists.infradead.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.