look up correct dev_t. This matters for the case where a device is
authorderaadt <deraadt@openbsd.org>
Sun, 20 Jul 2014 19:47:53 +0000 (19:47 +0000)
committerderaadt <deraadt@openbsd.org>
Sun, 20 Jul 2014 19:47:53 +0000 (19:47 +0000)
underlying softraid.
ok mlarkin

sys/arch/amd64/amd64/hibernate_machdep.c
sys/arch/i386/i386/hibernate_machdep.c
sys/arch/loongson/loongson/hibernate_machdep.c

index 5b7e148..be69a7e 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: hibernate_machdep.c,v 1.27 2014/07/20 18:05:21 mlarkin Exp $  */
+/*     $OpenBSD: hibernate_machdep.c,v 1.28 2014/07/20 19:47:53 deraadt Exp $  */
 
 /*
  * Copyright (c) 2012 Mike Larkin <mlarkin@openbsd.org>
@@ -92,10 +92,9 @@ get_hibernate_io_function(dev_t dev)
                    vaddr_t addr, size_t size, int op, void *page);
                extern int sr_hibernate_io(dev_t dev, daddr_t blkno,
                    vaddr_t addr, size_t size, int op, void *page);
-               struct device *dv;
+               struct device *dv = disk_lookup(&sd_cd, DISKUNIT(dev));
 
 #if NAHCI > 0
-               dv = disk_lookup(&sd_cd, DISKUNIT(swdevt[0].sw_dev));
                if (dv && dv->dv_parent && dv->dv_parent->dv_parent &&
                    strcmp(dv->dv_parent->dv_parent->dv_cfdata->cf_driver->cd_name,
                    "ahci") == 0)
index 6b3bea4..b9817d5 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: hibernate_machdep.c,v 1.37 2014/07/20 18:05:21 mlarkin Exp $  */
+/*     $OpenBSD: hibernate_machdep.c,v 1.38 2014/07/20 19:47:53 deraadt Exp $  */
 
 /*
  * Copyright (c) 2011 Mike Larkin <mlarkin@openbsd.org>
@@ -90,10 +90,9 @@ get_hibernate_io_function(dev_t dev)
                    vaddr_t addr, size_t size, int op, void *page);
                extern int sr_hibernate_io(dev_t dev, daddr_t blkno,
                    vaddr_t addr, size_t size, int op, void *page);
-               struct device *dv;
+               struct device *dv = disk_lookup(&sd_cd, DISKUNIT(dev));
 
 #if NAHCI > 0
-               dv = disk_lookup(&sd_cd, DISKUNIT(swdevt[0].sw_dev));
                if (dv && dv->dv_parent && dv->dv_parent->dv_parent &&
                    strcmp(dv->dv_parent->dv_parent->dv_cfdata->cf_driver->cd_name,
                    "ahci") == 0)
index d95aee8..c7c9fc7 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: hibernate_machdep.c,v 1.6 2014/07/20 18:05:21 mlarkin Exp $   */
+/*     $OpenBSD: hibernate_machdep.c,v 1.7 2014/07/20 19:47:53 deraadt Exp $   */
 
 /*
  * Copyright (c) 2013 Paul Irofti.
@@ -77,10 +77,9 @@ get_hibernate_io_function(dev_t dev)
                    vaddr_t addr, size_t size, int op, void *page);
                extern int sr_hibernate_io(dev_t dev, daddr_t blkno,
                    vaddr_t addr, size_t size, int op, void *page);
-               struct device *dv;
+               struct device *dv = disk_lookup(&sd_cd, DISKUNIT(dev));
 
 #if NAHCI > 0
-               dv = disk_lookup(&sd_cd, DISKUNIT(swdevt[0].sw_dev));
                if (dv && dv->dv_parent && dv->dv_parent->dv_parent &&
                    strcmp(dv->dv_parent->dv_parent->dv_cfdata->cf_driver->cd_name,
                    "ahci") == 0)