Re: Spinlock Related Debug Messages in Block Driver

From: Jens Axboe
Date: Tue Jul 11 2006 - 03:13:35 EST


On Tue, Jul 11 2006, Srinivas Ganji wrote:
> Dear All,
>
> I implemented the sample block driver for the removable devices and
> the code contains no statements related to the spin lock except a lock
> to the blk_init_queue API as shown below.
>
> spinlock_t qlock;
> gDisk->blkqueue = blk_init_queue(do_my_request, &gDisk->qlock);
>
> The kernel version is 2.6.10.
>
> Everything works fine but when I try to copy a file of huge size
> (about 100MB), the following debug messages are getting displayed on
> the console:
>
> Fc3: drivers/block/ll_rw_blk.c: 2351: spin_lock already locked by the
> drivers.
> Fc3: drivers/block/ll_rw_blk.c: 2468: spin_unlock not locked by the drivers.
>
> In spite of these debug messages; the file is getting copied successfully.
> I studied the Block driver 16th chapter in LDD third edition.
>
> Can any one provide a pointer to these debug messages. Do I need to
> implement any patches for the kernel.

You need to initialize the lock passed to blk_init_queue() first. See eg
spin_lock_init(), or one of the static initializers
(SPIN_LOCK_UNLOCKED).

--
Jens Axboe

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/