Re: HEADSUP: disk_*(9) API change mega-patch

From: Pawel Jakub Dawidek <pjd_at_FreeBSD.org>
Date: Fri, 6 Feb 2004 13:12:44 +0100
On Thu, Feb 05, 2004 at 11:02:47AM +0100, Poul-Henning Kamp wrote:
+> This is a mostly mechanical and largely untested patch, so please test
+> carefully if you have the necessary hardware.
+> 
+> Kernel patch:
+> 	http://phk.freebsd.dk/patch/disk.patch
+> 
+> Man-page update:
+> 	http://phk.freebsd.dk/patch/disk_man.patch
+> 
+> Patch version: 2004-02-05.1
+> 
+> This patch changes the disk_*(9) API so that ownership of the "struct
+> disk" is moved from the device drivers to GEOM.  This removes a lot
+> of trouble from the disk_destroy(9) handling, which should be robust
+> with this patch.
+> 
+> After this change the API works as follows:
+> 
+> 	allocated struct disk with disk_alloc(), store pointer in softc.
+> 	populate fields, including d_unit and d_flags which were
+> 	previous arguments to disk_create().
+> 	call disk_create() with the pointer.
+> 
+> 	call disk_destroy() to signal that the device has disappeared.
+> 	NB: do not access struct disk in the driver anymore!
+> 	return any outstanding requests with suitable error.
+> 
+> At the same time: eliminate unused arguments from disk_create(9)
+> 
+> Reverse sense of DISKFLAG_NOGIANT, to DISKFLAG_NEEDSGIANT.
+> 
+> Two weeks review

It panics my system when I'm booting it with USB bar inserted or
when I insert it after boot:

Memory modified after free 0xc4174300(124) val=deadc0dd _at_ 0xc4174334
panic: Most recently used by devbuf

-- 
Pawel Jakub Dawidek                       http://www.FreeBSD.org
pjd_at_FreeBSD.org                           http://garage.freebsd.pl
FreeBSD committer                         Am I Evil? Yes, I Am!

Received on Fri Feb 06 2004 - 03:10:43 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:37:41 UTC