Re: Spinlock Related Debug Messages in Block Driver

From: Srinivas Ganji
Date: Tue Jul 11 2006 - 03:40:56 EST


On 7/11/06, Jens Axboe <axboe@xxxxxxx> wrote:
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

Dear Jen,

Thanks for your reply.
I used the spin_lock_init API before blk_init_queue API. Even though I
got the error.

Is there any other reason for gertting the error messages?

Thanks and Regards,
Srinivas G
-
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/