Messages in this thread | | | From | "Tung, Chien Tin" <> | Date | Mon, 7 Dec 2009 09:38:55 -0700 | Subject | RE: [PATCH 3/5] drivers/infiniband: correct size computation |
| |
>> > /* Remap the PCI registers in adapter BAR0 to kernel VA space */ >> >- mmio_regs = ioremap_nocache(pci_resource_start(pcidev, BAR_0), sizeof(mmio_regs)); >> >+ mmio_regs = ioremap_nocache(pci_resource_start(pcidev, BAR_0), >> >+ sizeof(*mmio_regs)); >> > if (mmio_regs == NULL) { >> > printk(KERN_ERR PFX "Unable to remap BAR0\n"); >> > ret = -EIO; >> >> mmio_regs is initialized to NULL at the top of the function so >> *mmio_regs wouldn't be a good idea. Instead of sizeof(*mmio_regs) use >> pci_resource_len(pcidev, BAR_0). If you can recreate the patch with >> this change I will ack it. > >When you say that it isn't a good idea, do you mean that the result is >wrong, or that it looks odd? I didn't think sizeof looked at the value, >but only at the type?
I misspoke on the problem. Mmio_regs is declared as a void pointer:
void __iomem *mmio_regs = NULL;
Thus pci_resource_len(pcidev, BAR_0) is the correct fix.
Chien
| |