diff options
author | bz <bz@FreeBSD.org> | 2016-06-29 05:21:25 +0000 |
---|---|---|
committer | bz <bz@FreeBSD.org> | 2016-06-29 05:21:25 +0000 |
commit | 2acea814a2b1bf204fbd8bcd23c9225528a02bf1 (patch) | |
tree | 8c7e091987548ca5983e8fe10f155ec14443566e /sys/dev/usb/quirk/usb_quirk.c | |
parent | 1e1f5317b73b45be67126beb4388fb4e8d6a6649 (diff) | |
download | FreeBSD-src-2acea814a2b1bf204fbd8bcd23c9225528a02bf1.zip FreeBSD-src-2acea814a2b1bf204fbd8bcd23c9225528a02bf1.tar.gz |
Several device drivers call if_alloc() and then do further checks and
will cal if_free() in case of conflict, error, ..
if_free() however sets the VNET instance from the ifp->if_vnet which
was not yet initialized but would only in if_attach(). Fix this by
setting the curvnet from where we allocate the interface in if_alloc().
if_attach() will later overwrite this as needed. We do not set the home_vnet
early on as we only want to prevent the if_free() panic but not change any
of the other housekeeping, e.g., triggered through ifioctl()s.
Reviewed by: brooks
Approved by: re (gjb)
MFC after: 2 weeks
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D7010
Diffstat (limited to 'sys/dev/usb/quirk/usb_quirk.c')
0 files changed, 0 insertions, 0 deletions