Module Name: src Committed By: jakllsch Date: Sun Apr 10 15:02:01 UTC 2011
Modified Files: src/sys/dev/pci: viaide.c Log Message: Fix regression introduced in 1.72. (Attach arguments need to be copied before using the copy.) To generate a diff of this commit: cvs rdiff -u -r1.72 -r1.73 src/sys/dev/pci/viaide.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/dev/pci/viaide.c diff -u src/sys/dev/pci/viaide.c:1.72 src/sys/dev/pci/viaide.c:1.73 --- src/sys/dev/pci/viaide.c:1.72 Mon Apr 4 20:37:56 2011 +++ src/sys/dev/pci/viaide.c Sun Apr 10 15:02:01 2011 @@ -1,4 +1,4 @@ -/* $NetBSD: viaide.c,v 1.72 2011/04/04 20:37:56 dyoung Exp $ */ +/* $NetBSD: viaide.c,v 1.73 2011/04/10 15:02:01 jakllsch Exp $ */ /* * Copyright (c) 1999, 2000, 2001 Manuel Bouyer. @@ -26,7 +26,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: viaide.c,v 1.72 2011/04/04 20:37:56 dyoung Exp $"); +__KERNEL_RCSID(0, "$NetBSD: viaide.c,v 1.73 2011/04/10 15:02:01 jakllsch Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -914,11 +914,14 @@ struct pciide_channel *cp; struct ata_channel *wdc_cp; struct wdc_regs *wdr; - struct pci_attach_args pacopy, *pa = &pacopy; - pcireg_t interface = PCI_INTERFACE(pa->pa_class); + struct pci_attach_args pacopy, *pa; + pcireg_t interface; int channel; pacopy = *pa0; + pa = &pacopy; + interface = PCI_INTERFACE(pa->pa_class); + if (via_sata_chip_map_common(sc, pa) == 0) return; @@ -986,14 +989,17 @@ struct pciide_channel *cp; struct ata_channel *wdc_cp; struct wdc_regs *wdr; - struct pci_attach_args pacopy, *pa = &pacopy; - pcireg_t interface = PCI_INTERFACE(pa->pa_class); + struct pci_attach_args pacopy, *pa; + pcireg_t interface; int channel; pci_intr_handle_t intrhandle; const char *intrstr; int i; pacopy = *pa0; + pa = &pacopy; + interface = PCI_INTERFACE(pa->pa_class); + if (via_sata_chip_map_common(sc, pa) == 0) return;