Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/sys/arch/sparc/sparc When matching scsi disks, check for the...



details:   https://anonhg.NetBSD.org/src/rev/870a1c978a8c
branches:  trunk
changeset: 480434:870a1c978a8c
user:      pk <pk%NetBSD.org@localhost>
date:      Wed Jan 12 15:53:29 2000 +0000

description:
When matching scsi disks, check for the scsibus parent in the previous
entry in the boot path. Noted by Matthew Jacob.

diffstat:

 sys/arch/sparc/sparc/autoconf.c |  10 +++++++++-
 1 files changed, 9 insertions(+), 1 deletions(-)

diffs (38 lines):

diff -r b9d7a84f837f -r 870a1c978a8c sys/arch/sparc/sparc/autoconf.c
--- a/sys/arch/sparc/sparc/autoconf.c   Wed Jan 12 15:00:47 2000 +0000
+++ b/sys/arch/sparc/sparc/autoconf.c   Wed Jan 12 15:53:29 2000 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: autoconf.c,v 1.130 2000/01/12 14:53:17 mjacob Exp $ */
+/*     $NetBSD: autoconf.c,v 1.131 2000/01/12 15:53:29 pk Exp $ */
 
 /*
  * Copyright (c) 1996
@@ -1718,6 +1718,7 @@
                                strcpy(bootpath[nbootpath].name, "fd");
                                nbootpath++;
                        }
+                       bp->dev = dev;
                        bootpath_store(1, bp + 1);
                        return;
                }
@@ -1733,6 +1734,9 @@
                /*
                 * A SCSI disk or cd; retrieve target/lun information
                 * from parent and match with current bootpath component.
+                * Note that we also have look back past the `scsibus'
+                * device to determine whether this target is on the
+                * correct controller in our boot path.
                 */
                struct scsipibus_attach_args *sa = aux;
                struct scsipi_link *sc_link = sa->sa_sc_link;
@@ -1741,6 +1745,10 @@
                u_int target = bp->val[0];
                u_int lun = bp->val[1];
 
+               /* Check the controller that this scsibus is on */
+               if ((bp-1)->dev != sbsc->sc_dev.dv_parent)
+                       return;
+
                /*
                 * Bounds check: we know the target and lun widths.
                 */



Home | Main Index | Thread Index | Old Index