NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

kern/48536: Modules need a ref-count mechanism external to the module



>Number:         48536
>Category:       kern
>Synopsis:       Modules need a ref-count mechanism external to the module
>Confidential:   no
>Severity:       serious
>Priority:       high
>Responsible:    kern-bug-people
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Mon Jan 20 15:05:00 +0000 2014
>Originator:     Paul Goyette
>Release:        NetBSD 6.99.28
>Organization:
-------------------------------------------------------------------------
| Paul Goyette     | PGP Key fingerprint:     | E-mail addresses:       |
| Customer Service | FA29 0E3B 35AF E8AE 6651 | paul at whooppee.com    |
| Network Engineer | 0786 F758 55DE 53BA 7731 | pgoyette at juniper.net |
| Kernel Developer |                          | pgoyette at netbsd.org  |
-------------------------------------------------------------------------
>Environment:
        
        
System: NetBSD screamer.whooppee.com 6.99.28 NetBSD 6.99.28 (WHOOPPEE (shared) 
2013-12-14 23:34:52) #13: Sat Dec 14 16:05:43 PST 2013 
paul%screamer.whooppee.com@localhost:/build/netbsd-local/obj/amd64/sys/arch/amd64/compile/WHOOPPEE
 amd64
Architecture: x86_64
Machine: amd64
>Description:
Device driver modules in particular require a ref-count mechanism to
determine whether or not it is safe for the driver to be unloaded.

Without this mechanism, a driver can be unloaded while the device is still
being accessed from user-land.  Additionally, the driver's detach code
can attempt to release other resources (memory, pools, mutex, etc.) which
are still in use.

See recent discussion on current-users and source-changes-d for more
context.

http://mail-index.netbsd.org/current-users/2014/01/19/msg024107.html
http://mail-index.netbsd.org/source-changes-d/2014/01/19/msg006440.html
        
>How-To-Repeat:
        
>Fix:
        

>Unformatted:
        
        


Home | Main Index | Thread Index | Old Index