Make device_quiet() an attachment property.
In particular, reset the DF_QUIET flag when detaching from a device so that a driver that marks a device quiet doesn't dictate policy for a different driver that may claim the device in the future. Reviewed by: rpokala, wblock MFC after: 2 weeks Sponsored by: Chelsio Communications Differential Revision: https://reviews.freebsd.org/D7803
This commit is contained in:
parent
e0cfa1bc82
commit
71499f6a2d
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=305751
@ -28,7 +28,7 @@
|
|||||||
.\"
|
.\"
|
||||||
.\" $FreeBSD$
|
.\" $FreeBSD$
|
||||||
.\"
|
.\"
|
||||||
.Dd June 21, 1999
|
.Dd September 12, 2016
|
||||||
.Dt DEVICE_QUIET 9
|
.Dt DEVICE_QUIET 9
|
||||||
.Os
|
.Os
|
||||||
.Sh NAME
|
.Sh NAME
|
||||||
@ -49,16 +49,18 @@
|
|||||||
Each device has a quiet flag associated with it.
|
Each device has a quiet flag associated with it.
|
||||||
A device is
|
A device is
|
||||||
verbose by default when it is created but may be quieted to prevent
|
verbose by default when it is created but may be quieted to prevent
|
||||||
the device identification string to be printed during probe.
|
printing of the device identification string during attach
|
||||||
|
and printing of a message during detach.
|
||||||
To quiet a device, call
|
To quiet a device, call
|
||||||
.Fn device_quiet ,
|
.Fn device_quiet
|
||||||
to re-enable to probe message (to make the message appear again, for
|
during a device driver probe routine.
|
||||||
example after a
|
To re-enable probe messages,
|
||||||
.Xr device_detach 9 )
|
|
||||||
call
|
call
|
||||||
.Fn device_verbose .
|
.Fn device_verbose .
|
||||||
To test to see if a device is quieted, call
|
To test to see if a device is quieted, call
|
||||||
.Fn device_is_quiet .
|
.Fn device_is_quiet .
|
||||||
|
.Pp
|
||||||
|
Devices are implicitly marked verbose after a driver detaches.
|
||||||
.Sh SEE ALSO
|
.Sh SEE ALSO
|
||||||
.Xr device 9
|
.Xr device 9
|
||||||
.Sh AUTHORS
|
.Sh AUTHORS
|
||||||
|
@ -2145,6 +2145,12 @@ device_probe_child(device_t dev, device_t child)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Reset DF_QUIET in case this driver doesn't
|
||||||
|
* end up as the best driver.
|
||||||
|
*/
|
||||||
|
device_verbose(child);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Probes that return BUS_PROBE_NOWILDCARD or lower
|
* Probes that return BUS_PROBE_NOWILDCARD or lower
|
||||||
* only match on devices whose driver was explicitly
|
* only match on devices whose driver was explicitly
|
||||||
@ -2970,6 +2976,7 @@ device_detach(device_t dev)
|
|||||||
if (!(dev->flags & DF_FIXEDCLASS))
|
if (!(dev->flags & DF_FIXEDCLASS))
|
||||||
devclass_delete_device(dev->devclass, dev);
|
devclass_delete_device(dev->devclass, dev);
|
||||||
|
|
||||||
|
device_verbose(dev);
|
||||||
dev->state = DS_NOTPRESENT;
|
dev->state = DS_NOTPRESENT;
|
||||||
(void)device_set_driver(dev, NULL);
|
(void)device_set_driver(dev, NULL);
|
||||||
device_sysctl_fini(dev);
|
device_sysctl_fini(dev);
|
||||||
|
Loading…
Reference in New Issue
Block a user