lkml.org 
[lkml]   [2005]   [Aug]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [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/

\
 
 \ /
  Last update: 2005-08-10 13:14    [W:0.044 / U:0.152 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site