From patchwork Sun Apr 22 07:57:29 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jiri Slaby X-Patchwork-Id: 902581 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=suse.cz Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 40TMQP2VDxz9s16 for ; Sun, 22 Apr 2018 17:57:49 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751428AbeDVH5f (ORCPT ); Sun, 22 Apr 2018 03:57:35 -0400 Received: from mail-wr0-f181.google.com ([209.85.128.181]:41675 "EHLO mail-wr0-f181.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751301AbeDVH5d (ORCPT ); Sun, 22 Apr 2018 03:57:33 -0400 Received: by mail-wr0-f181.google.com with SMTP id g21-v6so5503657wrb.8; Sun, 22 Apr 2018 00:57:32 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:to:cc:from:subject:openpgp:autocrypt:message-id :date:user-agent:mime-version:content-language :content-transfer-encoding; bh=Uel25QUR+KyaUoh23rL+ncS99g/BpRg8F6/OGaC0aGU=; b=ByX+JWf5gZRzrsCCEWcgFomRp+0gY2PaWPgbb+51fVP4yokJkrtyv2wjqduEwYqHBx nSiFGleS4KETonneAesZ/x97V7jeUWEf2as9eVzeCx+rK6yMdBpY8fOCkR/m+q/IDzIk nyMYUS/F8OWsNarZ3pd1FMImR32Hq5kcZd8NmKWVKS2QabMNfSMpLRg3p4Cg9GSfW/ws BGvOeBnYvxUZfXGOQQiF0Z3NrpQ9yP3Y1J8yXYis4HJ0K5LMppTQdX+Ju2CiXUdvlbjK Eouyl8+l84KYIwYS5H9H+0q4V9FxJNieRzNOR+ci5IMdDvf7jJCL+0T/hgydTt6dckfu EIPg== X-Gm-Message-State: ALQs6tA9GExTYWCDAOP2Rae4b52ZWdzlG/bV82erW+EDgvrZxgOCorfo aGKO7ERGQFVgbctuyYr1a6U+1w== X-Google-Smtp-Source: AIpwx48YexMzHw1jGiQZ5AsOF/Q2xBaOJ2IiGRdyvSuQEdahGgSy4/CwQBnLqlRS+TyGTHP1CZK98w== X-Received: by 2002:adf:8861:: with SMTP id e30-v6mr13246636wre.252.1524383851760; Sun, 22 Apr 2018 00:57:31 -0700 (PDT) Received: from [192.168.1.7] (adsl-d37.84-47-7.t-com.sk. [84.47.7.37]) by smtp.gmail.com with ESMTPSA id a13-v6sm9202962wrc.19.2018.04.22.00.57.30 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 22 Apr 2018 00:57:30 -0700 (PDT) To: Marcel Holtmann , Johan Hedberg Cc: BlueZ development , ML netdev From: Jiri Slaby Subject: Bluetooth/lock_sock: false positive "WARNING: possible recursive locking detected" Openpgp: preference=signencrypt Autocrypt: addr=jslaby@suse.cz; prefer-encrypt=mutual; keydata= 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 Message-ID: <695d5172-e7f8-9e44-b6ab-0ce1a9473f34@suse.cz> Date: Sun, 22 Apr 2018 09:57:29 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.7.0 MIME-Version: 1.0 Content-Language: en-GB Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Hi, I have just got this lockdep warning during suspend: > [ 2891.586061] ============================================ > [ 2891.586063] WARNING: possible recursive locking detected > [ 2891.586065] 4.16.2-10.ge881e16-default #1 Not tainted > [ 2891.586067] -------------------------------------------- > [ 2891.586068] kworker/u9:3/873 is trying to acquire lock: > [ 2891.586070] (sk_lock-AF_BLUETOOTH-BTPROTO_L2CAP){+.+.}, at: [<000000007b85e829>] bt_accept_enqueue+0x29/0x90 [bluetooth] > [ 2891.586086] > but task is already holding lock: > [ 2891.586088] (sk_lock-AF_BLUETOOTH-BTPROTO_L2CAP){+.+.}, at: [<0000000042f0b4a5>] l2cap_sock_new_connection_cb+0x18/0xa0 [bluetooth] > [ 2891.586109] > other info that might help us debug this: > [ 2891.586111] Possible unsafe locking scenario: > > [ 2891.586115] CPU0 > [ 2891.586116] ---- > [ 2891.586117] lock(sk_lock-AF_BLUETOOTH-BTPROTO_L2CAP); > [ 2891.586120] lock(sk_lock-AF_BLUETOOTH-BTPROTO_L2CAP); > [ 2891.586122] > *** DEADLOCK *** > > [ 2891.586125] May be due to missing lock nesting notation > > [ 2891.586127] 5 locks held by kworker/u9:3/873: > [ 2891.586128] #0: ((wq_completion)"%s"hdev->name#2){+.+.}, at: [<000000004aa1a273>] process_one_work+0x1e3/0x6a0 > [ 2891.586135] #1: ((work_completion)(&hdev->rx_work)){+.+.}, at: [<000000004aa1a273>] process_one_work+0x1e3/0x6a0 > [ 2891.586140] #2: (&conn->chan_lock){+.+.}, at: [<00000000fbad6c82>] l2cap_connect+0x88/0x540 [bluetooth] > [ 2891.586155] #3: (&chan->lock/2){+.+.}, at: [<000000007c38e27e>] l2cap_connect+0xa0/0x540 [bluetooth] > [ 2891.586170] #4: (sk_lock-AF_BLUETOOTH-BTPROTO_L2CAP){+.+.}, at: [<0000000042f0b4a5>] l2cap_sock_new_connection_cb+0x18/0xa0 [bluetooth] > [ 2891.586183] > stack backtrace: > [ 2891.586187] CPU: 2 PID: 873 Comm: kworker/u9:3 Not tainted 4.16.2-10.ge881e16-default #1 openSUSE Tumbleweed (unreleased) > [ 2891.586189] Hardware name: Dell Inc. Latitude 7280/0KK5D1, BIOS 1.9.3 03/09/2018 > [ 2891.586200] Workqueue: hci0 hci_rx_work [bluetooth] > [ 2891.586202] Call Trace: > [ 2891.586207] dump_stack+0x85/0xc5 > [ 2891.586211] __lock_acquire+0x6b4/0x1370 > [ 2891.586221] lock_acquire+0x9f/0x210 > [ 2891.586237] lock_sock_nested+0x5a/0x80 > [ 2891.586256] bt_accept_enqueue+0x29/0x90 [bluetooth] > [ 2891.586268] l2cap_sock_new_connection_cb+0x5d/0xa0 [bluetooth] > [ 2891.586280] l2cap_connect+0x126/0x540 [bluetooth] > [ 2891.586315] l2cap_sig_channel+0x443/0x13b0 [bluetooth] > [ 2891.586330] l2cap_recv_frame+0x1a4/0x300 [bluetooth] > [ 2891.586341] hci_rx_work+0x1c8/0x5c0 [bluetooth] > [ 2891.586345] process_one_work+0x269/0x6a0 > [ 2891.586350] worker_thread+0x2b/0x3d0 > [ 2891.586356] kthread+0x113/0x130 > [ 2891.586363] ret_from_fork+0x24/0x50 > [ 4954.622809] e1000e: eth0 NIC Link is Down > [ 4955.299532] PM: suspend entry (deep) > [ 4955.299538] PM: Syncing filesystems ... done. This is: lock_sock(sk); in bt_accept_enqueue nested in lock_sock(parent); in l2cap_sock_new_connection_cb So this looks like a false positive to me. So I believe this is a fix: if (sk_acceptq_is_full(parent)) { ? thanks, --- a/net/bluetooth/l2cap_sock.c +++ b/net/bluetooth/l2cap_sock.c @@ -1232,7 +1232,7 @@ static struct l2cap_chan *l2cap_sock_new_connection_cb(struct l2cap_chan *chan) { struct sock *sk, *parent = chan->data; - lock_sock(parent); + lock_sock_nested(parent, L2CAP_NESTING_PARENT); /* Check for backlog size */