Re: Logic errors involving QH_STATE_COMPLETING

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

 



On Thu, 23 Jul 2009, Alan Stern wrote:

> The case you just raised shows that rescanning has to be implemented in
> qh_completions(), not scan_async().  This is because a halted QH with
> queued URBs gets restarted before qh_completions() returns, and we want 
> the rescanning to occur before the restart.

Whoops!  That's not right.  A halted QH gets unlinked before 
qh_completions returns.  It helps to look at the code instead of 
relying on a faulty memory...

Still, as rescanning might be needed regardless of where qh_completions 
is called from, it makes sense to implement it in qh_completions rather 
than unlink_async.

BTW, qh_link_async does an apparently unnecessary check that
qh->qh_state == QH_STATE_IDLE.  Is there any reason for this?  It would 
be a bug if the state weren't IDLE.

Alan Stern

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

[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux