MTD kobject warnings due to block layer changes

Previous thread: linux-next: Tree for August 28 by Stephen Rothwell on Thursday, August 28, 2008 - 1:33 am. (4 messages)

Next thread: [patch] sched: call resched_task() conditionally from new task wake up path. by Bharata B Rao on Thursday, August 28, 2008 - 2:12 am. (3 messages)
From: Manuel Lauss
Date: Thursday, August 28, 2008 - 1:46 am

Hello,

Todays -git spits out these wanings during boot, caused by
Commit abf5439370491dd6fbb4fe1a7939680d2a9bc9d4
( block: move cmdfilter from gendisk to request_queue ):

Using physmap partition information
Creating 3 MTD partitions on "physmap-flash":
0x00000000-0x01c00000 : "User FS"
0x01c00000-0x01c40000 : "booter"
kobject (8511c410): tried to init an initialized object, something is seriously wrong.
Call Trace:
[<8036644c>] dump_stack+0x8/0x34
[<8021f050>] kobject_init+0x50/0xcc
[<8021fa18>] kobject_init_and_add+0x24/0x58
[<8021d20c>] blk_register_filter+0x4c/0x64
[<8021c194>] add_disk+0x78/0xe0
[<8027d14c>] add_mtd_blktrans_dev+0x254/0x278
[<8027c8f0>] blktrans_notify_add+0x40/0x78
[<80279c00>] add_mtd_device+0xd0/0x150
[<8027b090>] add_mtd_partitions+0x568/0x5d8
[<80285458>] physmap_flash_probe+0x2ac/0x334
[<802644f8>] driver_probe_device+0x12c/0x244
[<8026465c>] __driver_attach+0x4c/0x84
[<80263c64>] bus_for_each_dev+0x58/0xac
[<802633ec>] bus_add_driver+0xc4/0x24c
[<802648e0>] driver_register+0xcc/0x184
[<80100460>] _stext+0x60/0x1bc

0x01c40000-0x01fe0000 : "vmlinux.elf"
kobject (8511c410): tried to init an initialized object, something is seriously wrong.
Call Trace:
[<8036644c>] dump_stack+0x8/0x34
[<8021f050>] kobject_init+0x50/0xcc
[<8021fa18>] kobject_init_and_add+0x24/0x58
[<8021d20c>] blk_register_filter+0x4c/0x64
[<8021c194>] add_disk+0x78/0xe0
[<8027d14c>] add_mtd_blktrans_dev+0x254/0x278
[<8027c8f0>] blktrans_notify_add+0x40/0x78
[<80279c00>] add_mtd_device+0xd0/0x150
[<8027b090>] add_mtd_partitions+0x568/0x5d8
[<80285458>] physmap_flash_probe+0x2ac/0x334
[<802644f8>] driver_probe_device+0x12c/0x244
[<8026465c>] __driver_attach+0x4c/0x84
[<80263c64>] bus_for_each_dev+0x58/0xac
[<802633ec>] bus_add_driver+0xc4/0x24c
[<802648e0>] driver_register+0xcc/0x184
[<80100460>] _stext+0x60/0x1bc

NAND device: Manufacturer ID: 0xec, Chip ID: 0xf1 (Samsung NAND 128MiB 3,3V 8-bit)
Scanning device for bad blocks
Creating 1 MTD partitions on ...
From: Jens Axboe
Date: Thursday, August 28, 2008 - 3:09 am

Tomo? I don't see how this is happening. The queue is properly zeroed,
so no chance ->state_initialized being crap.

-- 
Jens Axboe

--

From: FUJITA Tomonori
Date: Thursday, August 28, 2008 - 10:56 pm

On Thu, 28 Aug 2008 12:09:21 +0200

With MTD, multiple gendisks share a single request_queue?
--

From: Jens Axboe
Date: Thursday, August 28, 2008 - 11:29 pm

Irk, sure looks that way. I thougt we had disbanded with that years ago,
it's generally not a "supported" configuration.

-- 
Jens Axboe

--

From: FUJITA Tomonori
Date: Thursday, August 28, 2008 - 11:39 pm

On Fri, 29 Aug 2008 08:29:34 +0200

How about moving blk_register_filter(disk) from add_disk to sd.c and
sr.c, etc, which want the command filter support?
--

From: Jens Axboe
Date: Thursday, August 28, 2008 - 11:44 pm

Yeah, I think that's the quick'n dirty to fix this one.

-- 
Jens Axboe

--

From: FUJITA Tomonori
Date: Thursday, August 28, 2008 - 11:47 pm

On Fri, 29 Aug 2008 08:44:16 +0200

Ok, I'll send a patch shortly though it would be better to fix
'multiple gendisks share a single request_queue'...
--

From: Jens Axboe
Date: Thursday, August 28, 2008 - 11:50 pm

Naturally, but we can do that in 2.6.28.

-- 
Jens Axboe

--

From: FUJITA Tomonori
Date: Friday, August 29, 2008 - 12:56 am

On Fri, 29 Aug 2008 08:50:30 +0200

Yeah, here is a quick fix.

Manuel, really sorry about the bug and thanks a lot for the
investigation.

=
From: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
Subject: [PATCH] remove blk_register_filter and blk_unregister_filter in genhd.c

This patch remove blk_register_filter and blk_unregister_filter in
gendisk, and adds them to sd.c and sr.c.

The commit abf5439370491dd6fbb4fe1a7939680d2a9bc9d4 moved cmdfilter
from gendisk to request_queue. It turned out that in some subsystems
multiple gendisks share a single request_queue. So we can't call
blk_register_filter in add_disk. Otherwise we get:

Using physmap partition information
Creating 3 MTD partitions on "physmap-flash":
0x00000000-0x01c00000 : "User FS"
0x01c00000-0x01c40000 : "booter"
kobject (8511c410): tried to init an initialized object, something is seriously wrong.
Call Trace:
[<8036644c>] dump_stack+0x8/0x34
[<8021f050>] kobject_init+0x50/0xcc
[<8021fa18>] kobject_init_and_add+0x24/0x58
[<8021d20c>] blk_register_filter+0x4c/0x64
[<8021c194>] add_disk+0x78/0xe0
[<8027d14c>] add_mtd_blktrans_dev+0x254/0x278
[<8027c8f0>] blktrans_notify_add+0x40/0x78
[<80279c00>] add_mtd_device+0xd0/0x150
[<8027b090>] add_mtd_partitions+0x568/0x5d8
[<80285458>] physmap_flash_probe+0x2ac/0x334
[<802644f8>] driver_probe_device+0x12c/0x244
[<8026465c>] __driver_attach+0x4c/0x84
[<80263c64>] bus_for_each_dev+0x58/0xac
[<802633ec>] bus_add_driver+0xc4/0x24c
[<802648e0>] driver_register+0xcc/0x184
[<80100460>] _stext+0x60/0x1bc

In the long term, we need to fix such subsystems but we need a quick
fix now. This patch add the command filter support to only sd and sr
though it might be useful for other SG_IO users (like cciss).

Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
Reported-by: Manuel Lauss <mano@roarinelk.homelinux.net>
Cc: Jens Axboe <jens.axboe@oracle.com>
---
 block/cmd-filter.c |    3 ++-
 block/genhd.c      |    2 --
 drivers/scsi/sd.c  |    2 ++
 ...
From: Jens Axboe
Date: Friday, August 29, 2008 - 1:01 am

What about eg ide-cd?

-- 
Jens Axboe

--

From: FUJITA Tomonori
Date: Friday, August 29, 2008 - 1:19 am

On Fri, 29 Aug 2008 10:01:24 +0200

I'm always SCSI biased.


=
From: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
Subject: [PATCH] remove blk_register_filter and blk_unregister_filter in gendisk

This patch remove blk_register_filter and blk_unregister_filter in
gendisk, and adds them to sd.c, sr.c. and ide-cd.c

The commit abf5439370491dd6fbb4fe1a7939680d2a9bc9d4 moved cmdfilter
from gendisk to request_queue. It turned out that in some subsystems
multiple gendisks share a single request_queue. So we get:

Using physmap partition information
Creating 3 MTD partitions on "physmap-flash":
0x00000000-0x01c00000 : "User FS"
0x01c00000-0x01c40000 : "booter"
kobject (8511c410): tried to init an initialized object, something is seriously wrong.
Call Trace:
[<8036644c>] dump_stack+0x8/0x34
[<8021f050>] kobject_init+0x50/0xcc
[<8021fa18>] kobject_init_and_add+0x24/0x58
[<8021d20c>] blk_register_filter+0x4c/0x64
[<8021c194>] add_disk+0x78/0xe0
[<8027d14c>] add_mtd_blktrans_dev+0x254/0x278
[<8027c8f0>] blktrans_notify_add+0x40/0x78
[<80279c00>] add_mtd_device+0xd0/0x150
[<8027b090>] add_mtd_partitions+0x568/0x5d8
[<80285458>] physmap_flash_probe+0x2ac/0x334
[<802644f8>] driver_probe_device+0x12c/0x244
[<8026465c>] __driver_attach+0x4c/0x84
[<80263c64>] bus_for_each_dev+0x58/0xac
[<802633ec>] bus_add_driver+0xc4/0x24c
[<802648e0>] driver_register+0xcc/0x184
[<80100460>] _stext+0x60/0x1bc

In the long term, we need to fix such subsystems but we need a quick
fix now. This patch add the command filter support to only sd and sr
though it might be useful for other SG_IO users (such as cciss).

Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
Reported-by: Manuel Lauss <mano@roarinelk.homelinux.net>
Cc: Jens Axboe <jens.axboe@oracle.com>
---
 block/cmd-filter.c   |    3 ++-
 block/genhd.c        |    2 --
 drivers/ide/ide-cd.c |    2 ++
 drivers/scsi/sd.c    |    2 ++
 drivers/scsi/sr.c    |    2 ++
 5 files changed, 8 insertions(+), 3 deletions(-)

diff ...
From: Manuel Lauss
Date: Friday, August 29, 2008 - 1:34 am

Hello Fujita-san,


Thank you very much, works as advertised!

ManuelLauss
--

From: Jens Axboe
Date: Friday, August 29, 2008 - 2:45 am

Thanks, applied!

-- 
Jens Axboe

--

Previous thread: linux-next: Tree for August 28 by Stephen Rothwell on Thursday, August 28, 2008 - 1:33 am. (4 messages)

Next thread: [patch] sched: call resched_task() conditionally from new task wake up path. by Bharata B Rao on Thursday, August 28, 2008 - 2:12 am. (3 messages)