lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAGp9LzrzfAO0_Tejjg=NLBbq-TLC7JV=e05m9t97X1wbgxZ8+w@mail.gmail.com>
Date:   Wed, 31 Aug 2022 16:15:17 -0700
From:   Sean Wang <sean.wang@...nel.org>
To:     luiz.dentz@...il.com
Cc:     marcel@...tmann.org, johan.hedberg@...il.com,
        Sean Wang (王志亘) <sean.wang@...iatek.com>,
        Soul Huang <Soul.Huang@...iatek.com>,
        YN Chen <YN.Chen@...iatek.com>,
        Leon Yen <Leon.Yen@...iatek.com>,
        Eric-SY Chang <Eric-SY.Chang@...iatek.com>,
        Deren Wu <Deren.Wu@...iatek.com>, KM Lin <km.lin@...iatek.com>,
        Robin Chiu <robin.chiu@...iatek.com>, Eddie.Chen@...iatek.com,
        CH Yeh <ch.yeh@...iatek.com>, Posh Sun <posh.sun@...iatek.com>,
        ted.huang@...iatek.com, Stella Chang <Stella.Chang@...iatek.com>,
        Tom.Chou@...iatek.com, steve.lee@...iatek.com, jsiuda@...gle.com,
        frankgor@...gle.com, abhishekpandit@...gle.com,
        michaelfsun@...gle.com, mcchou@...omium.org, shawnku@...gle.com,
        linux-bluetooth@...r.kernel.org,
        "moderated list:ARM/Mediatek SoC support" 
        <linux-mediatek@...ts.infradead.org>,
        lkml <linux-kernel@...r.kernel.org>,
        Jing Cai <jing.cai@...iatek.com>
Subject: Re: [PATCH v5] Bluetooth: btusb: mediatek: fix WMT failure during
 runtime suspend

Hi Luiz,

If the patch looks good to you, could you help apply the patch to
bluetooth.git? It can fix the issue present in the stable kernel, I
would like to backport it earlier once it appears in the Linus tree.

Sean

On Wed, Aug 10, 2022 at 5:59 PM <sean.wang@...iatek.com> wrote:
>
> From: Sean Wang <sean.wang@...iatek.com>
>
> WMT cmd/event doesn't follow up the generic HCI cmd/event handling, it
> needs constantly polling control pipe until the host received the WMT
> event, thus, we should require to specifically acquire PM counter on the
> USB to prevent the interface from entering auto suspended while WMT
> cmd/event in progress.
>
> Fixes: a1c49c434e15 ("Bluetooth: btusb: Add protocol support for MediaTek
>  MT7668U USB devices")
> Co-developed-by: Jing Cai <jing.cai@...iatek.com>
> Signed-off-by: Jing Cai <jing.cai@...iatek.com>
> Signed-off-by: Sean Wang <sean.wang@...iatek.com>
> ---
> v2:
> 1. move usb_autopm_[get, put]_interface to btusb_mtk_hci_wmt_sync whenever
> wmt cmd is invoked.
> 2. add the explanation why we needed the specific
> usb_autopm_[get, put]_interface there.
>
> v3: correct the version and there is no logic changed
> v4: fix GitLint fail due to Title exceeds max length
> v5: rebase to fix patches does not apply
> ---
>  drivers/bluetooth/btusb.c | 14 ++++++++++++++
>  1 file changed, 14 insertions(+)
>
> diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c
> index 30dd443f395f..70d61bb4a053 100644
> --- a/drivers/bluetooth/btusb.c
> +++ b/drivers/bluetooth/btusb.c
> @@ -2480,15 +2480,29 @@ static int btusb_mtk_hci_wmt_sync(struct hci_dev *hdev,
>
>         set_bit(BTUSB_TX_WAIT_VND_EVT, &data->flags);
>
> +       /* WMT cmd/event doesn't follow up the generic HCI cmd/event handling,
> +        * it needs constantly polling control pipe until the host received the
> +        * WMT event, thus, we should require to specifically acquire PM counter
> +        * on the USB to prevent the interface from entering auto suspended
> +        * while WMT cmd/event in progress.
> +        */
> +       err = usb_autopm_get_interface(data->intf);
> +       if (err < 0)
> +               goto err_free_wc;
> +
>         err = __hci_cmd_send(hdev, 0xfc6f, hlen, wc);
>
>         if (err < 0) {
>                 clear_bit(BTUSB_TX_WAIT_VND_EVT, &data->flags);
> +               usb_autopm_put_interface(data->intf);
>                 goto err_free_wc;
>         }
>
>         /* Submit control IN URB on demand to process the WMT event */
>         err = btusb_mtk_submit_wmt_recv_urb(hdev);
> +
> +       usb_autopm_put_interface(data->intf);
> +
>         if (err < 0)
>                 goto err_free_wc;
>
> --
> 2.25.1
>

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ