[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <7d7e65af-b818-45de-a92c-ee59a864dbdb@roeck-us.net>
Date: Sat, 30 Nov 2024 09:07:39 -0800
From: Guenter Roeck <linux@...ck-us.net>
To: Greg KH <gregkh@...uxfoundation.org>
Cc: Linus Torvalds <torvalds@...ux-foundation.org>,
Andrew Morton <akpm@...ux-foundation.org>,
Stephen Rothwell <sfr@...b.auug.org.au>, linux-kernel@...r.kernel.org,
linux-staging@...ts.linux.dev, Dave Penkler <dpenkler@...il.com>
Subject: Re: [GIT PULL] Staging driver changes for 6.13-rc1
On 11/30/24 08:15, Greg KH wrote:
> On Sat, Nov 30, 2024 at 08:10:55AM -0800, Guenter Roeck wrote:
>> Hi,
>>
>> On Fri, Nov 29, 2024 at 05:27:53AM +0100, Greg KH wrote:
>>> The following changes since commit 8cf0b93919e13d1e8d4466eb4080a4c4d9d66d7b:
>>>
>>> Linux 6.12-rc2 (2024-10-06 15:32:27 -0700)
>>>
>>> are available in the Git repository at:
>>>
>>> git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging.git tags/staging-6.13-rc1
>>>
>>> for you to fetch changes up to 114eae3c9fde35220cca623840817a740a2eb7b3:
>>>
>>> Staging: gpib: gpib_os.c - Remove unnecessary OOM message (2024-11-10 08:04:18 +0100)
>>>
>>> ----------------------------------------------------------------
>> [ ...]
>>
>>> Dave Penkler (33):
>>> staging: gpib: Add common include files for GPIB drivers
>>> staging: gpib: Add user api include files
>>> staging: gpib: Add GPIB common core driver
>>> staging: gpib: Add tms9914 GPIB chip driver
>>> staging: gpib: Add nec7210 GPIB chip driver
>>> staging: gpib: Add HP/Agilent/Keysight 8235xx PCI GPIB driver
>>> staging: gpib: Add Agilent/Keysight 82357x USB GPIB driver
>>> staging: gpib: Add Computer Boards GPIB driver
>>
>> I seem to be unable to find the patch introducing the problem (the link
>> provided with the patch is invalid), so I report it here.
>>
>> With i386 allmodconfig builds:
>>
>> Building i386:allyesconfig ... failed
>> --------------
>> Error log:
>> drivers/staging/gpib/cec/cec_gpib.c: In function 'cec_pci_attach':
>> drivers/staging/gpib/cec/cec_gpib.c:300:28: error: cast to pointer from integer of different size [-Werror=int-to-pointer-cast]
>> 300 | nec_priv->iobase = (void *)(pci_resource_start(cec_priv->pci_device, 3));
>> | ^
>> drivers/staging/gpib/ines/ines_gpib.c: In function 'ines_common_pci_attach':
>> drivers/staging/gpib/ines/ines_gpib.c:783:28: error: cast to pointer from integer of different size [-Werror=int-to-pointer-cast]
>> 783 | nec_priv->iobase = (void *)(pci_resource_start(ines_priv->pci_device,
>> | ^
>>
>> pci_resource_start() returns resource_size_t, which is not a pointer, and thus
>> can not be cast to one.
>
> This is odd, why hasn't 0-day or any other build testing found this?
Good question. Another good question is why I see this only with i386 builds,
but not with other 32-bit builds. It should be easy to reproduce, though.
make ARCH=i386 allmodconfig
make ARCH-i386 drivers/staging/gpib/cec/cec_gpib.o
does it for me, independent of gcc version (I tried 11.4 and 13.3).
I don't see it with clang.
Having said this, using the return value from pci_resource_start() directly as pointer
is quite unusual. Typically drivers use ioremap(), request_region(), pci_iomap(), or
a similar function on it to get a pointer.
Guenter
Powered by blists - more mailing lists