You are talking about -current. -current unhibernate has a shortcut where it skips attaching some devices in the bsd.booted "unhibernate" kernel.
7.0 does not have that change. Does 7.0 behave better? If 7.0 behaves better, are you able to backout the the diff which skips attaching devices, and try that, or do you need help.. Lucas <[email protected]> wrote: > Since I'm using a snapshot with this, almost everytime I unhibernate I > get a "false start": devices start to get enumerated and at one point, > the machine reboots and goes back to the POST screen. Most of the time, > the second time it boots normally. > > If it helps, most of the time there are around 8 hours between > hibernating and unhibernating, as I basically do it instead of powering > it off. > > dmesg below. It's worth noting that I *think* everytime it reboots after > printing the line following `pckbc0 at isa0 port 0x60/5 irq 1 irq 12`. > I still haven't managed to read if it prints `pckbd0 at pckbc0 (kbd > slot)` or something else. > > OpenBSD 7.0-current (GENERIC.MP) #72: Fri Nov 5 10:08:43 MDT 2021 > [email protected]:/usr/src/sys/arch/amd64/compile/GENERIC.MP > real mem = 12534018048 (11953MB) > avail mem = 12138131456 (11575MB) > random: good seed from bootblocks > mpath0 at root > scsibus0 at mpath0: 256 targets > mainbus0 at root > bios0 at mainbus0: SMBIOS rev. 2.7 @ 0xdae9d000 (70 entries) > bios0: vendor LENOVO version "G2ET33WW (1.13 )" date 07/24/2012 > bios0: LENOVO 2325BG4 > acpi0 at bios0: ACPI 4.0 > acpi0: sleep states S0 S3 S4 S5 > acpi0: tables DSDT FACP SLIC TCPA SSDT SSDT SSDT HPET APIC MCFG ECDT FPDT > ASF! UEFI UEFI POAT SSDT SSDT DMAR UEFI > acpi0: wakeup devices LID_(S4) SLPB(S3) IGBE(S4) EXP3(S4) XHCI(S3) EHC1(S3) > EHC2(S3) HDEF(S4) > acpitimer0 at acpi0: 3579545 Hz, 24 bits > acpihpet0 at acpi0: 14318179 Hz > acpimadt0 at acpi0 addr 0xfee00000: PC-AT compat > cpu0 at mainbus0: apid 0 (boot processor) > cpu0: Intel(R) Core(TM) i5-3320M CPU @ 2.60GHz, 1197.48 MHz, 06-3a-09 > cpu0: > FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE,SSE3,PCLMUL,DTES64,MWAIT,DS-CPL,VMX,SMX,EST,TM2,SSSE3,CX16,xTPR,PDCM,PCID,SSE4.1,SSE4.2,x2APIC,POPCNT,DEADLINE,AES,XSAVE,AVX,F16C,RDRAND,NXE,RDTSCP,LONG,LAHF,PERF,ITSC,FSGSBASE,SMEP,ERMS,MD_CLEAR,IBRS,IBPB,STIBP,L1DF,SSBD,SENSOR,ARAT,XSAVEOPT,MELTDOWN > cpu0: 256KB 64b/line 8-way L2 cache > cpu0: smt 0, core 0, package 0 > mtrr: Pentium Pro MTRR support, 10 var ranges, 88 fixed ranges > cpu0: apic clock running at 99MHz > cpu0: mwait min=64, max=64, C-substates=0.2.1.1.2, IBE > cpu1 at mainbus0: apid 2 (application processor) > cpu1: Intel(R) Core(TM) i5-3320M CPU @ 2.60GHz, 1197.29 MHz, 06-3a-09 > cpu1: > FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE,SSE3,PCLMUL,DTES64,MWAIT,DS-CPL,VMX,SMX,EST,TM2,SSSE3,CX16,xTPR,PDCM,PCID,SSE4.1,SSE4.2,x2APIC,POPCNT,DEADLINE,AES,XSAVE,AVX,F16C,RDRAND,NXE,RDTSCP,LONG,LAHF,PERF,ITSC,FSGSBASE,SMEP,ERMS,MD_CLEAR,IBRS,IBPB,STIBP,L1DF,SSBD,SENSOR,ARAT,XSAVEOPT,MELTDOWN > cpu1: 256KB 64b/line 8-way L2 cache > cpu1: smt 0, core 1, package 0 > ioapic0 at mainbus0: apid 2 pa 0xfec00000, version 20, 24 pins > acpimcfg0 at acpi0 > acpimcfg0: addr 0xf8000000, bus 0-63 > acpiec0 at acpi0 > acpiprt0 at acpi0: bus 0 (PCI0) > acpiprt1 at acpi0: bus -1 (PEG_) > acpiprt2 at acpi0: bus 2 (EXP1) > acpiprt3 at acpi0: bus 3 (EXP2) > acpiprt4 at acpi0: bus 4 (EXP3) > acpibtn0 at acpi0: LID_ > acpibtn1 at acpi0: SLPB > acpipci0 at acpi0 PCI0: 0x00000000 0x00000011 0x00000001 > acpicmos0 at acpi0 > tpm0 at acpi0 TPM_ 1.2 (TIS) addr 0xfed40000/0x5000, device 0x0000104a rev > 0x4e > acpibat0 at acpi0: BAT0 model "45N1029" serial 15304 type LION oem "LGC" > acpiac0 at acpi0: AC unit offline > acpithinkpad0 at acpi0: version 1.0 > "PNP0C14" at acpi0 not configured > "PNP0C14" at acpi0 not configured > acpicpu0 at acpi0: C3(200@87 mwait.1@0x30), C2(500@59 mwait.1@0x10), > C1(1000@1 mwait.1), PSS > acpicpu1 at acpi0: C3(200@87 mwait.1@0x30), C2(500@59 mwait.1@0x10), > C1(1000@1 mwait.1), PSS > acpipwrres0 at acpi0: PUBS, resource for XHCI, EHC1, EHC2 > acpitz0 at acpi0: critical temperature is 103 degC > acpidock0 at acpi0: GDCK not docked (0) > acpivideo0 at acpi0: VID_ > acpivout0 at acpivideo0: LCD0 > acpivideo1 at acpi0: VID_ > cpu0: using VERW MDS workaround (except on vmm entry) > cpu0: Enhanced SpeedStep 1197 MHz: speeds: 2601, 2600, 2500, 2400, 2300, > 2200, 2100, 2000, 1900, 1800, 1700, 1600, 1500, 1400, 1300, 1200 MHz > pci0 at mainbus0 bus 0 > pchb0 at pci0 dev 0 function 0 "Intel Core 3G Host" rev 0x09 > inteldrm0 at pci0 dev 2 function 0 "Intel HD Graphics 4000" rev 0x09 > drm0 at inteldrm0 > inteldrm0: msi, IVYBRIDGE, gen 7 > xhci0 at pci0 dev 20 function 0 "Intel 7 Series xHCI" rev 0x04: msi, xHCI 1.0 > usb0 at xhci0: USB revision 3.0 > uhub0 at usb0 configuration 1 interface 0 "Intel xHCI root hub" rev 3.00/1.00 > addr 1 > "Intel 7 Series MEI" rev 0x04 at pci0 dev 22 function 0 not configured > puc0 at pci0 dev 22 function 3 "Intel 7 Series KT" rev 0x04: ports: 16 com > com4 at puc0 port 0 apic 2 int 19: ns16550a, 16 byte fifo > com4: probed fifo depth: 0 bytes > em0 at pci0 dev 25 function 0 "Intel 82579LM" rev 0x04: msi, address > 3c:97:0e:31:1f:fa > ehci0 at pci0 dev 26 function 0 "Intel 7 Series USB" rev 0x04: apic 2 int 16 > usb1 at ehci0: USB revision 2.0 > uhub1 at usb1 configuration 1 interface 0 "Intel EHCI root hub" rev 2.00/1.00 > addr 1 > azalia0 at pci0 dev 27 function 0 "Intel 7 Series HD Audio" rev 0x04: msi > azalia0: codecs: Realtek ALC269, Intel/0x2806, using Realtek ALC269 > audio0 at azalia0 > ppb0 at pci0 dev 28 function 0 "Intel 7 Series PCIE" rev 0xc4: msi > pci1 at ppb0 bus 2 > sdhc0 at pci1 dev 0 function 0 "Ricoh 5U822 SD/MMC" rev 0x07: apic 2 int 16 > sdhc0: SDHC 3.0, 50 MHz base clock > sdmmc0 at sdhc0: 4-bit, sd high-speed, mmc high-speed, dma > ppb1 at pci0 dev 28 function 1 "Intel 7 Series PCIE" rev 0xc4: msi > pci2 at ppb1 bus 3 > iwn0 at pci2 dev 0 function 0 "Intel Centrino Advanced-N 6205" rev 0x34: msi, > MIMO 2T2R, MoW, address 60:67:20:82:85:c0 > ppb2 at pci0 dev 28 function 2 "Intel 7 Series PCIE" rev 0xc4: msi > pci3 at ppb2 bus 4 > ehci1 at pci0 dev 29 function 0 "Intel 7 Series USB" rev 0x04: apic 2 int 23 > usb2 at ehci1: USB revision 2.0 > uhub2 at usb2 configuration 1 interface 0 "Intel EHCI root hub" rev 2.00/1.00 > addr 1 > pcib0 at pci0 dev 31 function 0 "Intel QM77 LPC" rev 0x04 > ahci0 at pci0 dev 31 function 2 "Intel 7 Series AHCI" rev 0x04: msi, AHCI 1.3 > ahci0: port 0: 6.0Gb/s > scsibus1 at ahci0: 32 targets > sd0 at scsibus1 targ 0 lun 0: <ATA, CT480BX500SSD1, M6C> naa.0000000000000000 > sd0: 457862MB, 512 bytes/sector, 937703088 sectors, thin > ichiic0 at pci0 dev 31 function 3 "Intel 7 Series SMBus" rev 0x04: apic 2 int > 18 > iic0 at ichiic0 > spdmem0 at iic0 addr 0x50: 8GB DDR3 SDRAM PC3-12800 SO-DIMM > spdmem1 at iic0 addr 0x51: 4GB DDR3 SDRAM PC3-12800 SO-DIMM > isa0 at pcib0 > isadma0 at isa0 > pckbc0 at isa0 port 0x60/5 irq 1 irq 12 > pckbd0 at pckbc0 (kbd slot) > wskbd0 at pckbd0: console keyboard > pms0 at pckbc0 (aux slot) > wsmouse0 at pms0 mux 0 > pcppi0 at isa0 port 0x61 > spkr0 at pcppi0 > vmm0 at mainbus0: VMX/EPT > dt: 445 probes > uhub3 at uhub1 port 1 configuration 1 interface 0 "Intel Rate Matching Hub" > rev 2.00/0.00 addr 2 > uvideo0 at uhub3 port 6 configuration 1 interface 0 "Ricoh Company Ltd. > Integrated Camera" rev 2.00/0.11 addr 3 > video0 at uvideo0 > uhub4 at uhub2 port 1 configuration 1 interface 0 "Intel Rate Matching Hub" > rev 2.00/0.00 addr 2 > vscsi0 at root > scsibus2 at vscsi0: 256 targets > softraid0 at root > scsibus3 at softraid0: 256 targets > sd1 at scsibus3 targ 1 lun 0: <OPENBSD, SR CRYPTO, 006> > sd1: 457860MB, 512 bytes/sector, 937697393 sectors > root on sd1a (af42e96f6d19d2e8.a) swap on sd1b dump on sd1b > inteldrm0: 1366x768, 32bpp > wsdisplay0 at inteldrm0 mux 1: console (std, vt100 emulation), using wskbd0 > wsdisplay0: screen 1-5 added (std, vt100 emulation) > > Theo de Raadt <[email protected]> wrote: > > At the last hackathon I observed high elapsed time when the unhibernate > > bsd.booted kernel attaches unneccessary drivers, and then detatches a > > vast number of them when suspending to bounce to the old image. > > > > This diff skips attaching those devices. The current list is all tape > > and network devices (based upon DV_TAPE and DV_NET), plus vmm, azalia, > > and usb sub-devices (based upon a new CD_SKIPHIBERNATE flag). The usb > > sub-devices in particular make a big difference. Adding additional > > devices to the list only requires putting CD_SKIPHIBERNATE into struct > > cfdriver. > > > > To test, upgrade the bootblocks -- which must pass a new boothowto flag > > indicating the unhibernate operation -- previously the bsd.booted kernel > > was unaware of the circumstances until inspecting swap for a unhib > > signature, > > but this is too late (obviously it is after device configure): > > > > cd /usr/src/sys/arch/amd64/stand > > make && make install > > installboot -v sd0 (or whatever) > > > > Then install a new kernel, and perform an unhibernate cycle. > > > > Surface go2 has a pretty fast BIOS and many iic + usb devices, so this > > cuts unhibernate elapsed time by roughly a third. The other laptop I > > trialed this on, x1nano, has fewer devices to skip so the speedup is > > less dramatic. > > > > I had some weird experiences developing this. Consider reverting the > > sys/dev/usb subdirectory flagging before reporting a problem, because > > I suspect my weird problems came from those drivers. > > > > Index: kern/subr_autoconf.c > > =================================================================== > > RCS file: /cvs/src/sys/kern/subr_autoconf.c,v > > retrieving revision 1.94 > > diff -u -p -u -r1.94 subr_autoconf.c > > --- kern/subr_autoconf.c 30 Dec 2019 23:56:26 -0000 1.94 > > +++ kern/subr_autoconf.c 23 Oct 2021 20:42:16 -0000 > > @@ -51,6 +51,7 @@ > > #include <sys/queue.h> > > #include <sys/mutex.h> > > #include <sys/atomic.h> > > +#include <sys/reboot.h> > > > > #include "hotplug.h" > > #include "mpath.h" > > @@ -188,7 +189,7 @@ config_search(cfmatch_t fn, struct devic > > m.parent = parent; > > m.match = NULL; > > m.aux = aux; > > - m.indirect = parent && parent->dv_cfdata->cf_driver->cd_indirect; > > + m.indirect = parent && (parent->dv_cfdata->cf_driver->cd_mode & > > CD_INDIRECT); > > m.pri = 0; > > > > for (cf = cfdata; cf->cf_driver; cf++) { > > @@ -202,6 +203,14 @@ config_search(cfmatch_t fn, struct devic > > if (cf->cf_fstate == FSTATE_DNOTFOUND || > > cf->cf_fstate == FSTATE_DSTAR) > > continue; > > + if (boothowto & RB_UNHIBERNATE) { > > + if (cf->cf_driver->cd_mode & CD_SKIPHIBERNATE) > > + continue; > > + if (cf->cf_driver->cd_class == DV_IFNET) > > + continue; > > + if (cf->cf_driver->cd_class == DV_TAPE) > > + continue; > > + } > > for (p = cf->cf_parents; *p >= 0; p++) > > if (parent->dv_cfdata == &cfdata[*p]) > > mapply(&m, cf); > > @@ -237,7 +246,7 @@ config_scan(cfscan_t fn, struct device * > > void *match; > > int indirect; > > > > - indirect = parent && parent->dv_cfdata->cf_driver->cd_indirect; > > + indirect = parent && (parent->dv_cfdata->cf_driver->cd_mode & > > CD_INDIRECT); > > > > for (cf = cfdata; cf->cf_driver; cf++) { > > /* > > @@ -348,7 +357,7 @@ config_attach(struct device *parent, voi > > autoconf_attdet++; > > mtx_leave(&autoconf_attdet_mtx); > > > > - if (parent && parent->dv_cfdata->cf_driver->cd_indirect) { > > + if (parent && (parent->dv_cfdata->cf_driver->cd_mode & CD_INDIRECT)) { > > dev = match; > > cf = dev->dv_cfdata; > > } else { > > Index: sys/device.h > > =================================================================== > > RCS file: /cvs/src/sys/sys/device.h,v > > retrieving revision 1.55 > > diff -u -p -u -r1.55 device.h > > --- sys/device.h 10 Sep 2018 16:18:34 -0000 1.55 > > +++ sys/device.h 23 Oct 2021 20:42:16 -0000 > > @@ -136,11 +136,15 @@ struct cfattach { > > #define DETACH_FORCE 0x01 /* force detachment; hardware > > gone */ > > #define DETACH_QUIET 0x02 /* don't print a notice */ > > > > +/* For cd_mode, below */ > > +#define CD_INDIRECT 1 > > +#define CD_SKIPHIBERNATE 2 > > + > > struct cfdriver { > > void **cd_devs; /* devices found */ > > char *cd_name; /* device name */ > > enum devclass cd_class; /* device classification */ > > - int cd_indirect; /* indirectly configure subdevices */ > > + int cd_mode; /* device type subclassification */ > > int cd_ndevs; /* size of cd_devs array */ > > }; > > > > Index: sys/reboot.h > > =================================================================== > > RCS file: /cvs/src/sys/sys/reboot.h,v > > retrieving revision 1.19 > > diff -u -p -u -r1.19 reboot.h > > --- sys/reboot.h 23 May 2020 00:40:53 -0000 1.19 > > +++ sys/reboot.h 23 Oct 2021 20:42:16 -0000 > > @@ -58,6 +58,7 @@ > > #define RB_USERREQ 0x04000 /* boot() called at user request (e.g. > > ddb) */ > > #define RB_RESET 0x08000 /* just reset, no cleanup */ > > #define RB_GOODRANDOM 0x10000 /* excellent random seed loaded */ > > +#define RB_UNHIBERNATE 0x20000 /* unhibernate */ > > > > /* > > * Constants for converting boot-style device number to type, > > Index: stand/boot/boot.c > > =================================================================== > > RCS file: /cvs/src/sys/stand/boot/boot.c,v > > retrieving revision 1.54 > > diff -u -p -u -r1.54 boot.c > > --- stand/boot/boot.c 15 Jun 2020 14:43:57 -0000 1.54 > > +++ stand/boot/boot.c 24 Oct 2021 09:15:05 -0000 > > @@ -92,6 +92,7 @@ boot(dev_t bootdev) > > if (bootdev_has_hibernate()) { > > strlcpy(cmd.image, "/bsd.booted", sizeof(cmd.image)); > > printf("unhibernate detected: switching to %s\n", cmd.image); > > + cmd.boothowto |= RB_UNHIBERNATE; > > } > > #endif > > > > Index: arch/amd64/amd64/vmm.c > > =================================================================== > > RCS file: /cvs/src/sys/arch/amd64/amd64/vmm.c,v > > retrieving revision 1.293 > > diff -u -p -u -r1.293 vmm.c > > --- arch/amd64/amd64/vmm.c 13 Sep 2021 22:16:27 -0000 1.293 > > +++ arch/amd64/amd64/vmm.c 23 Oct 2021 20:42:16 -0000 > > @@ -260,7 +260,7 @@ const struct kmem_pa_mode vmm_kp_contig > > }; > > > > struct cfdriver vmm_cd = { > > - NULL, "vmm", DV_DULL > > + NULL, "vmm", DV_DULL, CD_SKIPHIBERNATE > > }; > > > > const struct cfattach vmm_ca = { > > Index: dev/pci/azalia.c > > =================================================================== > > RCS file: /cvs/src/sys/dev/pci/azalia.c,v > > retrieving revision 1.264 > > diff -u -p -u -r1.264 azalia.c > > --- dev/pci/azalia.c 9 Aug 2021 12:59:53 -0000 1.264 > > +++ dev/pci/azalia.c 23 Oct 2021 20:42:16 -0000 > > @@ -286,7 +286,7 @@ struct cfattach azalia_ca = { > > }; > > > > struct cfdriver azalia_cd = { > > - NULL, "azalia", DV_DULL > > + NULL, "azalia", DV_DULL, CD_SKIPHIBERNATE > > }; > > > > struct audio_hw_if azalia_hw_if = { > > Index: dev/isa/isa.c > > =================================================================== > > RCS file: /cvs/src/sys/dev/isa/isa.c,v > > retrieving revision 1.48 > > diff -u -p -u -r1.48 isa.c > > --- dev/isa/isa.c 7 Mar 2021 06:17:03 -0000 1.48 > > +++ dev/isa/isa.c 23 Oct 2021 20:42:16 -0000 > > @@ -77,7 +77,7 @@ struct cfattach isa_ca = { > > }; > > > > struct cfdriver isa_cd = { > > - NULL, "isa", DV_DULL, 1 > > + NULL, "isa", DV_DULL, CD_INDIRECT > > }; > > > > int > > Index: dev/isa/isadma.c > > =================================================================== > > RCS file: /cvs/src/sys/dev/isa/isadma.c,v > > retrieving revision 1.35 > > diff -u -p -u -r1.35 isadma.c > > --- dev/isa/isadma.c 7 Mar 2021 06:17:03 -0000 1.35 > > +++ dev/isa/isadma.c 23 Oct 2021 20:42:16 -0000 > > @@ -89,7 +89,7 @@ struct cfattach isadma_ca = { > > }; > > > > struct cfdriver isadma_cd = { > > - NULL, "isadma", DV_DULL, 1 > > + NULL, "isadma", DV_DULL, CD_INDIRECT > > }; > > > > int > > Index: dev/i2c/i2c.c > > =================================================================== > > RCS file: /cvs/src/sys/dev/i2c/i2c.c,v > > retrieving revision 1.16 > > diff -u -p -u -r1.16 i2c.c > > --- dev/i2c/i2c.c 14 Mar 2015 03:38:47 -0000 1.16 > > +++ dev/i2c/i2c.c 23 Oct 2021 20:42:16 -0000 > > @@ -63,7 +63,7 @@ struct cfattach iic_ca = { > > }; > > > > struct cfdriver iic_cd = { > > - NULL, "iic", DV_DULL > > + NULL, "iic", DV_DULL, CD_SKIPHIBERNATE > > }; > > > > int > > Index: dev/usb/ehci.c > > =================================================================== > > RCS file: /cvs/src/sys/dev/usb/ehci.c,v > > retrieving revision 1.214 > > diff -u -p -u -r1.214 ehci.c > > --- dev/usb/ehci.c 11 Jan 2021 14:41:12 -0000 1.214 > > +++ dev/usb/ehci.c 23 Oct 2021 20:42:16 -0000 > > @@ -78,7 +78,7 @@ > > #include <dev/usb/ehcivar.h> > > > > struct cfdriver ehci_cd = { > > - NULL, "ehci", DV_DULL > > + NULL, "ehci", DV_DULL, CD_SKIPHIBERNATE > > }; > > > > #ifdef EHCI_DEBUG > > Index: dev/usb/ohci.c > > =================================================================== > > RCS file: /cvs/src/sys/dev/usb/ohci.c,v > > retrieving revision 1.161 > > diff -u -p -u -r1.161 ohci.c > > --- dev/usb/ohci.c 3 Apr 2020 20:11:47 -0000 1.161 > > +++ dev/usb/ohci.c 23 Oct 2021 20:42:16 -0000 > > @@ -52,7 +52,7 @@ > > #include <dev/usb/ohcivar.h> > > > > struct cfdriver ohci_cd = { > > - NULL, "ohci", DV_DULL > > + NULL, "ohci", DV_DULL, CD_SKIPHIBERNATE > > }; > > > > #ifdef OHCI_DEBUG > > Index: dev/usb/uhci.c > > =================================================================== > > RCS file: /cvs/src/sys/dev/usb/uhci.c,v > > retrieving revision 1.152 > > diff -u -p -u -r1.152 uhci.c > > --- dev/usb/uhci.c 3 Apr 2020 20:11:47 -0000 1.152 > > +++ dev/usb/uhci.c 23 Oct 2021 20:42:16 -0000 > > @@ -55,7 +55,7 @@ > > /*#define UHCI_CTL_LOOP */ > > > > struct cfdriver uhci_cd = { > > - NULL, "uhci", DV_DULL > > + NULL, "uhci", DV_DULL, CD_SKIPHIBERNATE > > }; > > > > #ifdef UHCI_DEBUG > > Index: dev/usb/xhci.c > > =================================================================== > > RCS file: /cvs/src/sys/dev/usb/xhci.c,v > > retrieving revision 1.121 > > diff -u -p -u -r1.121 xhci.c > > --- dev/usb/xhci.c 24 Feb 2021 03:08:47 -0000 1.121 > > +++ dev/usb/xhci.c 23 Oct 2021 20:42:16 -0000 > > @@ -38,7 +38,7 @@ > > #include <dev/usb/xhcivar.h> > > > > struct cfdriver xhci_cd = { > > - NULL, "xhci", DV_DULL > > + NULL, "xhci", DV_DULL, CD_SKIPHIBERNATE > > }; > > > > #ifdef XHCI_DEBUG > >
