On Mon, Apr 28, 2014 at 11:25 AM, Alan Stern <st...@rowland.harvard.edu> wrote:
> On Fri, 25 Apr 2014, Dan Williams wrote:
>
>> >> @@ -4892,11 +4897,17 @@ static void hub_events(void)
>> >>
>> >>               /* deal with port status changes */
>> >>               for (i = 1; i <= hdev->maxchild; i++) {
>> >> +                     struct usb_port *port_dev = hub->ports[i - 1];
>> >> +
>> >>                       if (!test_bit(i, hub->busy_bits)
>> >>                                       && (test_and_clear_bit(i, 
>> >> hub->event_bits)
>> >>                                               || test_bit(i, 
>> >> hub->change_bits)
>> >> -                                             || test_bit(i, 
>> >> hub->wakeup_bits)))
>> >> +                                             || test_bit(i, 
>> >> hub->wakeup_bits))) {
>> >
>> > Please add a comment here, explaining that this is to prevent any
>> > runtime suspends from powering-off the port while we're handling the
>> > events.
>> >
>>
>> Added:
>>                                 /*
>>                                  * The get_noresume and barrier ensures that 
>> if
>
> s/ensures/ensure/
>
>>                                  * the port was in the process of resuming we
>
> s/resuming/resuming,/
>
>>                                  * flush that work and keep the port active 
>> for
>>                                  * the duration of the port_event().  
>> However,
>>                                  * if the port is runtime pm suspended
>>                                  * (powered-off), we leave it in that state, 
>> run
>>                                  * an abbreviated port_event(), and move on.
>>                                  */
>
> Otherwise fine.
>

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

Reply via email to