Messages in this thread | | | Date | Wed, 10 Aug 2005 13:11:53 +0200 (CEST) | From | Geert Uytterhoeven <> | Subject | Re: [PATCH] Fix ide-disk.c oops caused by hwif == NULL |
| |
On Tue, 9 Aug 2005, Linux Kernel Mailing List wrote: > tree 518f62158f0923573decb8f072ac7282fb7575cb > parent aeb3f76350e78aba90653b563de6677b442d21d6 > author Christoph Lameter <christoph@lameter.com> Wed, 10 Aug 2005 09:59:21 -0700 > committer Linus Torvalds <torvalds@g5.osdl.org> Wed, 10 Aug 2005 10:21:31 -0700 > > [PATCH] Fix ide-disk.c oops caused by hwif == NULL
How can this patch fix that? It still dereferences hwif without checking for a NULL pointer.
> 1. Move hwif_to_node to ide.h > > 2. Use hwif_to_node in ide-disk.c > > Signed-off-by: Christoph Lameter <clameter@sgi.com> > Signed-off-by: Linus Torvalds <torvalds@osdl.org> > > drivers/ide/ide-disk.c | 2 +- > drivers/ide/ide-probe.c | 9 --------- > include/linux/ide.h | 6 ++++++ > 3 files changed, 7 insertions(+), 10 deletions(-) > > diff --git a/drivers/ide/ide-disk.c b/drivers/ide/ide-disk.c > --- a/drivers/ide/ide-disk.c > +++ b/drivers/ide/ide-disk.c > @@ -1220,7 +1220,7 @@ static int ide_disk_probe(struct device > goto failed; > > g = alloc_disk_node(1 << PARTN_BITS, > - pcibus_to_node(drive->hwif->pci_dev->bus)); > + hwif_to_node(drive->hwif)); > if (!g) > goto out_free_idkp; > > diff --git a/drivers/ide/ide-probe.c b/drivers/ide/ide-probe.c > --- a/drivers/ide/ide-probe.c > +++ b/drivers/ide/ide-probe.c > @@ -960,15 +960,6 @@ static void save_match(ide_hwif_t *hwif, > } > #endif /* MAX_HWIFS > 1 */ > > -static inline int hwif_to_node(ide_hwif_t *hwif) > -{ > - if (hwif->pci_dev) > - return pcibus_to_node(hwif->pci_dev->bus); > - else > - /* Add ways to determine the node of other busses here */ > - return -1; > -} > - > /* > * init request queue > */ > diff --git a/include/linux/ide.h b/include/linux/ide.h > --- a/include/linux/ide.h > +++ b/include/linux/ide.h > @@ -1501,4 +1501,10 @@ extern struct bus_type ide_bus_type; > #define ide_id_has_flush_cache_ext(id) \ > (((id)->cfs_enable_2 & 0x2400) == 0x2400) > > +static inline int hwif_to_node(ide_hwif_t *hwif) > +{ > + struct pci_dev *dev = hwif->pci_dev; ^^^^^^^^^^^^^ > + return dev ? pcibus_to_node(dev->bus) : -1; > +} > + > #endif /* _IDE_H */
Gr{oetje,eeting}s,
Geert
-- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org
In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |