public inbox for linux-ia64@vger.kernel.org
 help / color / mirror / Atom feed
* Re: [staging:staging-next 151/175] drivers/staging/comedi/drivers/ni_pcimio.c:1105:42: error: macro
@ 2014-06-19  1:14 Fengguang Wu
  2014-06-19 17:01 ` Hartley Sweeten
  0 siblings, 1 reply; 2+ messages in thread
From: Fengguang Wu @ 2014-06-19  1:14 UTC (permalink / raw)
  To: linux-ia64

On Wed, Jun 18, 2014 at 11:13:13PM +0000, Hartley Sweeten wrote:
> On Wednesday, June 18, 2014 3:44 PM, kbuild test robot wrote:
> > tree:   git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging.git staging-next
> > head:   98e11370052aa88a38c2d5d1693a5ec2966c4f81
> > commit: 9c340ac934dbbfd46e776465b08391baac32d486 [151/175] staging: comedi: ni_stc.h: add read/write callbacks to struct ni_private
> > config: make ARCH=ia64 allmodconfig
> >
> > All error/warnings:
> >
> >    drivers/staging/comedi/drivers/ni_pcimio.c: In function 'e_series_win_out':
> > >> drivers/staging/comedi/drivers/ni_pcimio.c:1105:42: error: macro "writew" passed 3 arguments, but takes just 2
> >    drivers/staging/comedi/drivers/ni_pcimio.c:1105:2: warning: statement with no effect [-Wunused-value]
> 
> [snip]
> 
> > vim +/writew +1105 drivers/staging/comedi/drivers/ni_pcimio.c
> >
> >   1099	static void e_series_win_out(struct comedi_device *dev, uint16_t data, int reg)
> >   1100	{
> >   1101		struct ni_private *devpriv = dev->private;
> >   1102		unsigned long flags;
> >   1103	
> >   1104		spin_lock_irqsave(&devpriv->window_lock, flags);
> > > 1105		devpriv->writew(dev, reg, Window_Address);
> 
> I don't get it... Why is the 'writew' above being treated as a macro in your build?
 
        wfg /c/linux% grep -r writew arch/ia64 
        arch/ia64/lib/io.c:#undef __ia64_writew
        arch/ia64/include/asm/io.h:#define __ia64_writew        ___ia64_writew
        arch/ia64/include/asm/io.h:__writew (unsigned short val, volatile void __iomem *addr)
=>     arch/ia64/include/asm/io.h:#define writew(v,a)  __writew((v), (a))
        arch/ia64/include/asm/io.h:#define __raw_writew writew

> I'm not seeing these errors in my build with the x86_64_defconfig.

Hartley, it's an error in ARCH=ia64 builds.

Thanks,
Fengguang

> I have some patches that get rid of these callbacks that I was holding until Greg
> got his staging tree caught up. I can post those, which should make this build
> error go away, but I'm not sure why it is happening on ia64.
> 
> Regards,
> Hartley

^ permalink raw reply	[flat|nested] 2+ messages in thread

* RE: [staging:staging-next 151/175] drivers/staging/comedi/drivers/ni_pcimio.c:1105:42: error: macro
  2014-06-19  1:14 [staging:staging-next 151/175] drivers/staging/comedi/drivers/ni_pcimio.c:1105:42: error: macro Fengguang Wu
@ 2014-06-19 17:01 ` Hartley Sweeten
  0 siblings, 0 replies; 2+ messages in thread
From: Hartley Sweeten @ 2014-06-19 17:01 UTC (permalink / raw)
  To: linux-ia64

On Wednesday, June 18, 2014 6:14 PM, Fengguang Wu wrote:
> On Wed, Jun 18, 2014 at 11:13:13PM +0000, Hartley Sweeten wrote:
>> On Wednesday, June 18, 2014 3:44 PM, kbuild test robot wrote:
>>> tree:   git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging.git staging-next
>>> head:   98e11370052aa88a38c2d5d1693a5ec2966c4f81
>>> commit: 9c340ac934dbbfd46e776465b08391baac32d486 [151/175] staging: comedi: ni_stc.h: add read/write callbacks to struct ni_private
>>> config: make ARCH=ia64 allmodconfig
>>>
>>> All error/warnings:
>>>
>>>    drivers/staging/comedi/drivers/ni_pcimio.c: In function 'e_series_win_out':
>>> >> drivers/staging/comedi/drivers/ni_pcimio.c:1105:42: error: macro "writew" passed 3 arguments, but takes just 2
>>>    drivers/staging/comedi/drivers/ni_pcimio.c:1105:2: warning: statement with no effect [-Wunused-value]
>> 
>> [snip]
>> 
>>> vim +/writew +1105 drivers/staging/comedi/drivers/ni_pcimio.c
>>>
>>>   1099	static void e_series_win_out(struct comedi_device *dev, uint16_t data, int reg)
>>>   1100	{
>>>   1101		struct ni_private *devpriv = dev->private;
>>>   1102		unsigned long flags;
>>>   1103	
>>>   1104		spin_lock_irqsave(&devpriv->window_lock, flags);
>>> > 1105		devpriv->writew(dev, reg, Window_Address);
>> 
>> I don't get it... Why is the 'writew' above being treated as a macro in your build?
>
>         wfg /c/linux% grep -r writew arch/ia64 
>         arch/ia64/lib/io.c:#undef __ia64_writew
>         arch/ia64/include/asm/io.h:#define __ia64_writew        ___ia64_writew
>         arch/ia64/include/asm/io.h:__writew (unsigned short val, volatile void __iomem *addr)
> =>     arch/ia64/include/asm/io.h:#define writew(v,a)  __writew((v), (a))
>        arch/ia64/include/asm/io.h:#define __raw_writew writew
>
>> I'm not seeing these errors in my build with the x86_64_defconfig.
>
> Hartley, it's an error in ARCH=ia64 builds.

Hmm.. I guess x86 does not use a macro for writew.

I was assuming it used the generic one in:

include/asm-generic/io.h:#define writew(b,addr) __raw_writew(__cpu_to_le16(b),addr)

Regardless, I will be posting some patches to Greg shortly that remove the
callbacks from struct ni_private. That should fix the problem.

Sorry for the trouble,
Hartley



^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2014-06-19 17:01 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-06-19  1:14 [staging:staging-next 151/175] drivers/staging/comedi/drivers/ni_pcimio.c:1105:42: error: macro Fengguang Wu
2014-06-19 17:01 ` Hartley Sweeten

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox