From peterjeremy@optushome.com.au  Mon Dec 31 20:55:58 2007
Return-Path: <peterjeremy@optushome.com.au>
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id A16E516A417
	for <FreeBSD-gnats-submit@freebsd.org>; Mon, 31 Dec 2007 20:55:58 +0000 (UTC)
	(envelope-from peterjeremy@optushome.com.au)
Received: from turion.vk2pj.dyndns.org (c220-239-20-82.belrs4.nsw.optusnet.com.au [220.239.20.82])
	by mx1.freebsd.org (Postfix) with ESMTP id E87AD13C467
	for <FreeBSD-gnats-submit@freebsd.org>; Mon, 31 Dec 2007 20:55:56 +0000 (UTC)
	(envelope-from peterjeremy@optushome.com.au)
Received: from turion.vk2pj.dyndns.org (localhost.vk2pj.dyndns.org [127.0.0.1])
	by turion.vk2pj.dyndns.org (8.14.2/8.14.2) with ESMTP id lBVKtuxo003756;
	Tue, 1 Jan 2008 07:55:56 +1100 (EST)
	(envelope-from peter@turion.vk2pj.dyndns.org)
Received: (from peter@localhost)
	by turion.vk2pj.dyndns.org (8.14.2/8.14.2/Submit) id lBVKtuKf003755;
	Tue, 1 Jan 2008 07:55:56 +1100 (EST)
	(envelope-from peter)
Message-Id: <200712312055.lBVKtuKf003755@turion.vk2pj.dyndns.org>
Date: Tue, 1 Jan 2008 07:55:56 +1100 (EST)
From: Peter Jeremy <peter@rulingia.com>
Reply-To: Peter Jeremy <peter@rulingia.com>
To: FreeBSD-gnats-submit@freebsd.org
Subject: [patch] Add generic support for disabling devices
X-Send-Pr-Version: 3.113
X-GNATS-Notify:

>Number:         119202
>Category:       kern
>Synopsis:       [kernel] [patch] Add generic support for disabling devices
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    eadler
>State:          closed
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Mon Dec 31 21:00:02 UTC 2007
>Closed-Date:    Sun Oct 14 18:07:33 UTC 2012
>Last-Modified:  Sun Oct 14 18:07:33 UTC 2012
>Originator:     Peter Jeremy
>Release:        FreeBSD 6.3-PRERELEASE amd64
>Organization:
n/a
>Environment:
System: FreeBSD turion.vk2pj.dyndns.org 6.3-PRERELEASE FreeBSD 6.3-PRERELEASE #31: Wed Dec 26 09:23:54 EST 2007 root@turion.vk2pj.dyndns.org:/usr/obj/usr/src/sys/turion amd64

>Description:
	FreeBSD supports a device.unit.disabled boot variable but this
	is only supported for some devices.  By adding the test into
	the generic device probing code, it is possible to disable any
	device.

>How-To-Repeat:
	Code inspection.
>Fix:
Index: sys/kern/subr_bus.c
===================================================================
RCS file: /usr/ncvs/src/sys/kern/subr_bus.c,v
retrieving revision 1.184.2.6
diff -u -r1.184.2.6 subr_bus.c
--- sys/kern/subr_bus.c	5 Nov 2007 11:49:44 -0000	1.184.2.6
+++ sys/kern/subr_bus.c	25 Dec 2007 20:41:41 -0000
@@ -1722,7 +1722,10 @@
 			resource_int_value(dl->driver->name, child->unit,
 			    "flags", &child->devflags);
 
-			result = DEVICE_PROBE(child);
+			if (resource_disabled(dl->driver->name, child->unit))
+				result = ENXIO;
+			else
+				result = DEVICE_PROBE(child);
 
 			/* Reset flags and devclass before the next probe. */
 			child->devflags = 0;
@@ -1805,7 +1808,8 @@
 			 * A bit bogus. Call the probe method again to make
 			 * sure that we have the right description.
 			 */
-			DEVICE_PROBE(child);
+			if (!resource_disabled(best->driver->name, child->unit))
+				DEVICE_PROBE(child);
 #if 0
 			child->flags |= DF_REBID;
 #endif
>Release-Note:
>Audit-Trail:
Responsible-Changed-From-To: freebsd-bugs->eadler 
Responsible-Changed-By: eadler 
Responsible-Changed-When: Sun Mar 25 03:34:54 UTC 2012 
Responsible-Changed-Why:  
I don't see anything obviously wrong with the idea of generic disabling 
- but this would require some discussion; take until I could deal with 
it 

http://www.freebsd.org/cgi/query-pr.cgi?pr=119202 

From: dfilter@FreeBSD.ORG (dfilter service)
To: bug-followup@FreeBSD.org
Cc:  
Subject: Re: kern/119202: commit references a PR
Date: Tue,  2 Oct 2012 03:33:57 +0000 (UTC)

 Author: eadler
 Date: Tue Oct  2 03:33:41 2012
 New Revision: 241119
 URL: http://svn.freebsd.org/changeset/base/241119
 
 Log:
   Provide a generic way to disable devices at boot time
   
   PR:		kern/119202
   Requested by:	peterj
   Reviewed by:	sbruno, jhb
   Approved by:	cperciva
   MFC after:	1 week
 
 Modified:
   head/sys/kern/subr_bus.c
 
 Modified: head/sys/kern/subr_bus.c
 ==============================================================================
 --- head/sys/kern/subr_bus.c	Tue Oct  2 00:30:26 2012	(r241118)
 +++ head/sys/kern/subr_bus.c	Tue Oct  2 03:33:41 2012	(r241119)
 @@ -2762,6 +2762,13 @@ device_attach(device_t dev)
  {
  	int error;
  
 +	if (resource_disabled(dev->driver->name, dev->unit)) {
 +		device_disable(dev);
 +		if (bootverbose)
 +			 device_printf(dev, "disabled via hints entry\n");
 +		return (ENXIO);
 +	}
 +
  	device_sysctl_init(dev);
  	if (!device_is_quiet(dev))
  		device_print_child(dev->parent, dev);
 _______________________________________________
 svn-src-all@freebsd.org mailing list
 http://lists.freebsd.org/mailman/listinfo/svn-src-all
 To unsubscribe, send any mail to "svn-src-all-unsubscribe@freebsd.org"
 
State-Changed-From-To: open->closed 
State-Changed-By: eadler 
State-Changed-When: Sun Oct 14 18:07:32 UTC 2012 
State-Changed-Why:  
Committed. Thanks! 

http://www.freebsd.org/cgi/query-pr.cgi?pr=119202 
>Unformatted:
