public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* pci_map_rom bug?
@ 2005-02-17  0:00 Jesse Barnes
  2005-02-17 16:29 ` Jon Smirl
  0 siblings, 1 reply; 4+ messages in thread
From: Jesse Barnes @ 2005-02-17  0:00 UTC (permalink / raw)
  To: Linux Kernel list, jonsmirl

Jon, it looks like the loop at the bottom of pci_map_rom is busted?

        do {
                void __iomem *pds;
                /* Standard PCI ROMs start out with these bytes 55 AA */
                if (readb(image) != 0x55)
                        break;
                if (readb(image + 1) != 0xAA)
                        break;
                /* get the PCI data structure and check its signature */
                pds = image + readw(image + 24);
                if (readb(pds) != 'P')
                        break;
                if (readb(pds + 1) != 'C')
                        break;
                if (readb(pds + 2) != 'I')
                        break;
                if (readb(pds + 3) != 'R')
                        break;
                last_image = readb(pds + 21) & 0x80;
                /* this length is reliable */
                image += readw(pds + 16) * 512;
        } while (!last_image);

It looks like it's trying to verify all the ROMs on a given PCI device rather 
than just the one we just ioremap'd above.  Should this check just be inline 
and the loop deleted?  In that case, all of the breaks would turn into return 
NULLs (though the code should probably be refactored to make that a little 
clearer) along with an iounmap?

Thanks,
Jesse

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2005-02-17 17:33 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-02-17  0:00 pci_map_rom bug? Jesse Barnes
2005-02-17 16:29 ` Jon Smirl
2005-02-17 17:14   ` Jesse Barnes
2005-02-17 17:32     ` Jon Smirl

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox