On Tue, 9 Aug 2005, Linux Kernel Mailing List wrote:
> tree 518f62158f0923573decb8f072ac7282fb7575cb
> parent aeb3f76350e78aba90653b563de6677b442d21d6
> author Christoph Lameter <[EMAIL PROTECTED]> Wed, 10 Aug 2005 09:59:21 -0700
> committer Linus Torvalds <[EMAIL PROTECTED]> 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 <[EMAIL PROTECTED]>
> Signed-off-by: Linus Torvalds <[EMAIL PROTECTED]>
> 
>  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 -- [EMAIL PROTECTED]

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 [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to