On Mon, Dec 02, 2024 at 09:48:49AM -0800, Guenter Roeck wrote: > 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 *). I think it is dealt with in v3. - Dave