Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753016AbdCNO5L (ORCPT ); Tue, 14 Mar 2017 10:57:11 -0400 Received: from mail-it0-f43.google.com ([209.85.214.43]:37678 "EHLO mail-it0-f43.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752582AbdCNO5I (ORCPT ); Tue, 14 Mar 2017 10:57:08 -0400 MIME-Version: 1.0 In-Reply-To: References: <1489502504.28631.115.camel@edumazet-glaptop3.roam.corp.google.com> From: Eric Dumazet Date: Tue, 14 Mar 2017 07:56:56 -0700 Message-ID: Subject: Re: net: deadlock between ip_expire/sch_direct_xmit To: Dmitry Vyukov Cc: Eric Dumazet , David Miller , Cong Wang , Alexey Kuznetsov , James Morris , Hideaki YOSHIFUJI , Patrick McHardy , netdev , LKML , Jamal Hadi Salim , syzkaller Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 806 Lines: 22 On Tue, Mar 14, 2017 at 7:46 AM, Dmitry Vyukov wrote: > I am confused. Lockdep has observed both of these stacks: > > CPU0 CPU1 > ---- ---- > lock(&(&q->lock)->rlock); > lock(_xmit_ETHER#2); > lock(&(&q->lock)->rlock); > lock(_xmit_ETHER#2); > > > So it somehow happened. Or what do you mean? > Lockdep said " possible circular locking dependency detected " . It is not an actual deadlock, but lockdep machinery firing. For a dead lock to happen, this would require that he ICMP message sent by ip_expire() is itself fragmented and reassembled. This cannot be, because ICMP messages are not candidates for fragmentation, but lockdep can not know that of course...