All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mathias Nyman <mathias.nyman@linux.intel.com>
To: Baolin Wang <baolin.wang@linaro.org>
Cc: Lu Baolu <baolu.lu@linux.intel.com>,
	Mathias Nyman <mathias.nyman@intel.com>,
	Greg KH <gregkh@linuxfoundation.org>,
	USB <linux-usb@vger.kernel.org>,
	LKML <linux-kernel@vger.kernel.org>,
	Mark Brown <broonie@kernel.org>, "Lu, Baolu" <baolu.lu@intel.com>
Subject: Re: [PATCH 2/2] usb: host: xhci: Handle the right timeout command
Date: Mon, 2 Jan 2017 16:57:37 +0200	[thread overview]
Message-ID: <586A6A61.8040902@linux.intel.com> (raw)
In-Reply-To: <CAMz4kuKnTQtM243ke0VJgEOsqWbRnR9_BvsWXB-PcXndgQ8Vmg@mail.gmail.com>

On 27.12.2016 05:07, Baolin Wang wrote:
> Hi,
>
> On 21 December 2016 at 21:00, Mathias Nyman
> <mathias.nyman@linux.intel.com> wrote:
>> On 21.12.2016 04:22, Baolin Wang wrote:
>>>
>>> Hi Mathias,
>>>
>>> On 20 December 2016 at 23:13, Mathias Nyman
>>> <mathias.nyman@linux.intel.com> wrote:
>>>>
>>>> On 20.12.2016 09:30, Baolin Wang wrote:
>>>> ...
>>>>
>>>> Alright, I gathered all current work related to xhci races and timeouts
>>>> and put them into a branch:
>>>>
>>>> git://git.kernel.org/pub/scm/linux/kernel/git/mnyman/xhci.git
>>>> timeout_race_fixes
>>>>
>>>> Its based on 4.9
>>>> It includes a few other patches just to avoid conflicts and  make my life
>>>> easier
>>>>
>>>> Interesting patches are:
>>>>
>>>> ee4eb91 xhci: remove unnecessary check for pending timer
>>>> 0cba67d xhci: detect stop endpoint race using pending timer instead of
>>>> counter.
>>>> 4f2535f xhci: Handle command completion and timeout race
>>>> b9d00d7 usb: host: xhci: Fix possible wild pointer when handling abort
>>>> command
>>>> 529a5a0 usb: xhci: fix possible wild pointer
>>>> 4766555 xhci: Fix race related to abort operation
>>>> de834a3 xhci: Use delayed_work instead of timer for command timeout
>>>> 69973b8 Linux 4.9
>>>>
>>>> The fixes for command queue races will go to usb-linus and stable, the
>>>> reworks for stop ep watchdog timer will go to usb-next.
>>>
>>>
>>> How about applying below patch in your 'timeout_race_fixes' branch?
>>> [PATCH] usb: host: xhci: Clean up commands when stop endpoint command is
>>> timeout
>>> https://lkml.org/lkml/2016/12/13/94
>>>
>>
>> usb_hc_died() should eventyally end up calling xhci_mem_cleanup()
>> which will cleanup the command queue. But I need to look into that
>
> usb_hc_died() did not call xhci_mem_cleanup() to clean up command
> queue, it just disconnects all children devices attached on the dying
> hub. I did not find where it will clean up the command queue when
> issuing usb_hc_died(). Also before issuing usb_hc_died() in
> xhci_handle_command_timeout(), we will call
> xhci_cleanup_command_queue(). I think it should same as in
> xhci_stop_endpoint_command_watchdog().
>

You're right, it doesn't call xhci_mem_cleanup.
Need to look at this after getting first series of fixes to usb-linus

-Mathias

  reply	other threads:[~2017-01-02 14:56 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-12-05  7:51 [PATCH 1/2] usb: host: xhci: Fix possible wild pointer when handling abort command Baolin Wang
2016-12-05  7:51 ` [PATCH 2/2] usb: host: xhci: Handle the right timeout command Baolin Wang
2016-12-12 15:52   ` Mathias Nyman
2016-12-13  3:21     ` Baolin Wang
2016-12-19 10:33       ` Mathias Nyman
2016-12-19 11:34         ` Baolin Wang
2016-12-19 12:13           ` Mathias Nyman
2016-12-20  3:23             ` Baolin Wang
2016-12-20  4:29             ` Lu Baolu
2016-12-20  6:06               ` Baolin Wang
2016-12-20  6:39                 ` Lu Baolu
2016-12-20  6:46                   ` Baolin Wang
2016-12-20  7:18                     ` Lu Baolu
2016-12-20  7:30                       ` Baolin Wang
2016-12-20 15:13                         ` Mathias Nyman
2016-12-21  2:22                           ` Baolin Wang
2016-12-21 13:00                             ` Mathias Nyman
2016-12-27  3:07                               ` Baolin Wang
2017-01-02 14:57                                 ` Mathias Nyman [this message]
2017-01-03  6:20                                   ` Baolin Wang
2016-12-21  6:17                           ` Lu Baolu
2016-12-21 12:48                             ` Mathias Nyman
2016-12-21 14:10                               ` OGAWA Hirofumi
2016-12-21 15:04                                 ` Mathias Nyman
2016-12-21 15:18                                   ` OGAWA Hirofumi
2016-12-22  1:46                                     ` Lu Baolu
2016-12-23 12:54                                       ` Mathias Nyman
2016-12-22  1:43                               ` Lu Baolu
2016-12-21  6:57                           ` Lu Baolu
2016-12-21 12:57                             ` Mathias Nyman
2016-12-22  1:39                               ` Lu Baolu
2016-12-05 14:08 ` [PATCH 1/2] usb: host: xhci: Fix possible wild pointer when handling abort command Mathias Nyman

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=586A6A61.8040902@linux.intel.com \
    --to=mathias.nyman@linux.intel.com \
    --cc=baolin.wang@linaro.org \
    --cc=baolu.lu@intel.com \
    --cc=baolu.lu@linux.intel.com \
    --cc=broonie@kernel.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-usb@vger.kernel.org \
    --cc=mathias.nyman@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.