Re: SCSI RAM driver ported to 3.3 kernel for file system and I/O testing

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, May 16, 2012 at 1:07 PM, Tim Chen <tim.c.chen@xxxxxxxxxxxxxxx> wrote:

> +       while (!kthread_should_stop()) {
> +               struct scsi_cmnd *cmnd;
> +               struct scsi_ram_cmnd *ram_cmnd;
> +
> +               spin_lock_irqsave(host->host_lock, flags);
> +               if (list_empty(&ram_device->commands)) {
> +                       set_current_state(TASK_INTERRUPTIBLE);

> +                       spin_unlock_irq(host->host_lock);

The spin_[un]lock/ variants don't match.


> +static int scsi_ram_queuecommand(struct Scsi_Host *shost, struct scsi_cmnd *cmnd)
....

> +       if (use_thread) {
> +               spin_lock_irqsave(shost->host_lock, flags);

> +               if (list_empty(&ram_device->commands))
> +                       wake_up_process(ram_device->thread);

Didn't look in detail but if the queue is empty then why would you
want to wake up the kthread? What if you just wake_up after
list_add_tail below?


> +               list_add_tail(&ram_cmnd->queue, &ram_device->commands);
> +               spin_unlock_irqrestore(shost->host_lock, flags);
> +       } else {
> +               scsi_ram_execute_command(cmnd);
> +       }


Chetan Loke
--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [SCSI Target Devel]     [Linux SCSI Target Infrastructure]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Samba]     [Device Mapper]
  Powered by Linux