From e15db2f2c40b5d172d6fe86dbbed086bf0537215 Mon Sep 17 00:00:00 2001 From: deraadt Date: Sun, 20 Jul 2014 19:47:53 +0000 Subject: [PATCH] look up correct dev_t. This matters for the case where a device is underlying softraid. ok mlarkin --- sys/arch/amd64/amd64/hibernate_machdep.c | 5 ++--- sys/arch/i386/i386/hibernate_machdep.c | 5 ++--- sys/arch/loongson/loongson/hibernate_machdep.c | 5 ++--- 3 files changed, 6 insertions(+), 9 deletions(-) diff --git a/sys/arch/amd64/amd64/hibernate_machdep.c b/sys/arch/amd64/amd64/hibernate_machdep.c index 5b7e148780f..be69a7ebb96 100644 --- a/sys/arch/amd64/amd64/hibernate_machdep.c +++ b/sys/arch/amd64/amd64/hibernate_machdep.c @@ -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 @@ -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) diff --git a/sys/arch/i386/i386/hibernate_machdep.c b/sys/arch/i386/i386/hibernate_machdep.c index 6b3bea40635..b9817d5e99d 100644 --- a/sys/arch/i386/i386/hibernate_machdep.c +++ b/sys/arch/i386/i386/hibernate_machdep.c @@ -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 @@ -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) diff --git a/sys/arch/loongson/loongson/hibernate_machdep.c b/sys/arch/loongson/loongson/hibernate_machdep.c index d95aee8ce7b..c7c9fc77002 100644 --- a/sys/arch/loongson/loongson/hibernate_machdep.c +++ b/sys/arch/loongson/loongson/hibernate_machdep.c @@ -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) -- 2.20.1