RE: [staging:staging-next 151/175] drivers/staging/comedi/drivers/ni_pcimio.c:1105:42: error: macro "writew" passed 3 arguments, but takes just 2

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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


--
To unsubscribe from this list: send the line "unsubscribe linux-ia64" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Kernel]     [Sparc Linux]     [DCCP]     [Linux ARM]     [Yosemite News]     [Linux SCSI]     [Linux x86_64]     [Linux for Ham Radio]

  Powered by Linux