Messages in this thread | | | Subject | Re: [2.6.26] kobject_add_internal failed for 2:0 with -EEXIST / unable to handle kernel NULL pointer dereference in sysfs_create_link | From | Peter Zijlstra <> | Date | Mon, 03 Nov 2008 12:55:35 +0100 |
| |
On Mon, 2008-11-03 at 12:53 +0100, Kay Sievers wrote: > On Fri, Oct 31, 2008 at 10:28, Peter Zijlstra <a.p.zijlstra@chello.nl> wrote: > > On Fri, 2008-10-31 at 00:23 +0100, Kay Sievers wrote: > > > >> Peter, it looks like bdi does not work for devices which share a single queue. > >> If I add: > >> --- a/mm/backing-dev.c > >> +++ b/mm/backing-dev.c > >> @@ -184,6 +184,8 @@ int bdi_register(struct backing_dev_info *bdi, > >> struct device *parent, > >> goto exit; > >> } > >> > >> + printk("XXXXXXX old bdidev is %p\n", bdi->dev); > >> + printk("XXXXXXX new bdidev is %p\n", dev); > >> bdi->dev = dev; > >> bdi_debug_register(bdi, dev_name(dev)); > >> > >> I get: > >> $ modprobe floppy > >> Floppy drive(s): fd0 is 1.44M, fd1 is 1.44M > >> FDC 0 is a S82078B > >> XXXXXXX old bdidev is 0000000000000000 > >> XXXXXXX new bdidev is ffff88001f20cd10 > >> XXXXXXX old bdidev is ffff88001f20cd10 > >> XXXXXXX new bdidev is ffff88001f20de30 > >> > >> which very much looks like bdi will not remove any earlier registered > >> device, only the last one, right? > > > > Sharing a bdi is odd to begin with, let me poke at this a little. > > Yeah, it's odd, but I'm not sure if you want to touch floppy.c. :) > Any objection to this patch, until you possible fix it differently? > http://marc.info/?l=linux-kernel&m=122541569310798&w=4
Non at all, touching floppy.c is dangerous, folks might assume you know something about it ;-)
| |