Re: [PATCH v2] staging: gpib: Fix i386 build issue

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

 



On 12/2/24 09:33, Dave Penkler wrote:
Both drivers cast resource_type_t to void * causing the build to fail.

With CONFIG_X86_PAE enabled the resource_size_t type is a 64bit unsigned int
which cannot be cast to a 32 bit pointer.

Use ioremap() instead of pci_resource_start()

Reported_by: Guenter Roeck <linux@xxxxxxxxxxxx>
Link: https://lore.kernel.org/all/f10e976e-7a04-4454-b38d-39cd18f142da@xxxxxxxxxxxx/
Fixes: bb1bd92fa0f2 ("staging: gpib: Add ines GPIB driver")
Fixes: e1339245eba3 ("staging: gpib: Add Computer Equipment Corporation GPIB driver")

Signed-off-by: Dave Penkler <dpenkler@xxxxxxxxx>
---
v1 -> v2 changed pci_resource_start to pci_resource_len for second parameter of ioremap

Sorry, there are some more.

drivers/staging/gpib/tnt4882/tnt4882_gpib.c: In function ‘ni_isa_attach_common’:
drivers/staging/gpib/tnt4882/tnt4882_gpib.c:1430:26: error: cast to pointer from integer of different size [-Werror=int-to-pointer-cast]

drivers/staging/gpib/cb7210/cb7210.c: In function 'cb_pci_attach':
drivers/staging/gpib/cb7210/cb7210.c:974:36: error: cast to pointer from integer of different size

Not sure if that really fixes the problem though, since there is other code
which maps the void * back to phys_addr_t (or, rather, to unsigned long).
It might be better to work around the problem for now by disabling support
for platforms where sizeof(phys_addr_t) > sizeof(void *).

Guenter





[Index of Archives]     [Linux Driver Development]     [Linux Driver Backports]     [DMA Engine]     [Linux GPIO]     [Linux SPI]     [Video for Linux]     [Linux USB Devel]     [Linux Coverity]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux