From patchwork Tue Dec 7 01:30:27 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Eric Dumazet X-Patchwork-Id: 12660737 X-Patchwork-Delegate: kuba@kernel.org Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 862BCC433FE for ; Tue, 7 Dec 2021 01:31:43 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233706AbhLGBfC (ORCPT ); Mon, 6 Dec 2021 20:35:02 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33770 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S245069AbhLGBe1 (ORCPT ); Mon, 6 Dec 2021 20:34:27 -0500 Received: from mail-pj1-x102b.google.com (mail-pj1-x102b.google.com [IPv6:2607:f8b0:4864:20::102b]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E3F51C061746 for ; Mon, 6 Dec 2021 17:30:57 -0800 (PST) Received: by mail-pj1-x102b.google.com with SMTP id fv9-20020a17090b0e8900b001a6a5ab1392so1318572pjb.1 for ; Mon, 06 Dec 2021 17:30:57 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=CJJQGs2HcBmcq9pz1NYDogopjqgRXVFMWnUGx4H0oSU=; b=TiSvF5IYkqgRr0v6T/vs0BTBFvPSUen4ydKwL9/WFGW0a+Y7ssJvEE8rBr31MbBZSb ipmT4546xzCV0gW1QY8vkhVnGSXfC9kavC5Slr8auZqzNGIDRmGF2jBElcDisz4XzOfw uaXsoOS+lmttASGKhX1wIiuz1fB8Yysgk+Pf57qmQNxERdxqas1y3ibuH6xDzF0uvtew A7OeAE1Y2u//IfPoc7LawDUKSAAWH+82xJ2sVXmhQaXftzl8dLiStbu0d+ACpCZTMbOH 0rwO9+pLWm0y042GPOpy/bBSYnk5n6HvrFVmjvqy6D814+gDYUEwjcrg7nEgR7HRtuc9 YoXA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=CJJQGs2HcBmcq9pz1NYDogopjqgRXVFMWnUGx4H0oSU=; b=Mn8kEFajO9JZQLJkdulVwMbrOZZ+ZVcW+MS7vcoVYrDpDwrRp9+AYkbm4tzb24e5M+ IrxE6yUdGZW+L4FZydmH2Bw8uRFCYJT/18Wl4E7eQuobtd81M1nMEoCxx0ZdqfKUtMLO S2u0i/nb2Kdm06+Ap60bnIfmyKLk0JKGYLTfTFU9S+/D5D30ahxZ3r2BxY2sdcWgIXit A+Eab5icvRaj32BHxu5JNls5kvWuL3gTbhDQSUHUq2gtsV2QGbe87eGPS/8LrzgoanRi j7IWTZRxUUDg4h1Sv2lNnVTmHcGHRhtDqpmscg3i69TmPrB/hDMyJBp++NjhApSefY7s g/Eg== X-Gm-Message-State: AOAM530YvUESc2IY/uFdojXHsryGsMLFtC50W+rOuyOyNpSHGKc54fF7 FAe31Xm9GheyCnwYlqhXZEg= X-Google-Smtp-Source: ABdhPJx0yonqv/flNCwxoV7QAw8P2xm1VXmKV0DWTT5PBqaMVmU56qEN+lqhulWCgV705k9FOXA27A== X-Received: by 2002:a17:903:1c3:b0:142:3ae:5c09 with SMTP id e3-20020a17090301c300b0014203ae5c09mr46920179plh.52.1638840657558; Mon, 06 Dec 2021 17:30:57 -0800 (PST) Received: from edumazet1.svl.corp.google.com ([2620:15c:2c4:201:518c:39bf:c3e8:ffe2]) by smtp.gmail.com with ESMTPSA id u6sm13342907pfg.157.2021.12.06.17.30.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 06 Dec 2021 17:30:57 -0800 (PST) From: Eric Dumazet To: "David S . Miller" , Jakub Kicinski Cc: netdev , Eric Dumazet , Eric Dumazet Subject: [PATCH net-next 01/13] net: eql: add net device refcount tracker Date: Mon, 6 Dec 2021 17:30:27 -0800 Message-Id: <20211207013039.1868645-2-eric.dumazet@gmail.com> X-Mailer: git-send-email 2.34.1.400.ga245620fadb-goog In-Reply-To: <20211207013039.1868645-1-eric.dumazet@gmail.com> References: <20211207013039.1868645-1-eric.dumazet@gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org X-Patchwork-Delegate: kuba@kernel.org From: Eric Dumazet Signed-off-by: Eric Dumazet --- drivers/net/eql.c | 4 ++-- include/linux/if_eql.h | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/net/eql.c b/drivers/net/eql.c index 8ef34901c2d8eef46ade52600c31359042463297..1111d1f33865edc7f98e7057118c9e4b8c8d327b 100644 --- a/drivers/net/eql.c +++ b/drivers/net/eql.c @@ -225,7 +225,7 @@ static void eql_kill_one_slave(slave_queue_t *queue, slave_t *slave) list_del(&slave->list); queue->num_slaves--; slave->dev->flags &= ~IFF_SLAVE; - dev_put(slave->dev); + dev_put_track(slave->dev, &slave->dev_tracker); kfree(slave); } @@ -399,7 +399,7 @@ static int __eql_insert_slave(slave_queue_t *queue, slave_t *slave) if (duplicate_slave) eql_kill_one_slave(queue, duplicate_slave); - dev_hold(slave->dev); + dev_hold_track(slave->dev, &slave->dev_tracker, GFP_ATOMIC); list_add(&slave->list, &queue->all_slaves); queue->num_slaves++; slave->dev->flags |= IFF_SLAVE; diff --git a/include/linux/if_eql.h b/include/linux/if_eql.h index d984694c384d7dde37b7b1f9ac0a90e6ef7bb87f..d75601d613cc6859b692ab3a41b55893e5921dd9 100644 --- a/include/linux/if_eql.h +++ b/include/linux/if_eql.h @@ -26,6 +26,7 @@ typedef struct slave { struct list_head list; struct net_device *dev; + netdevice_tracker dev_tracker; long priority; long priority_bps; long priority_Bps; From patchwork Tue Dec 7 01:30:28 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Eric Dumazet X-Patchwork-Id: 12660733 X-Patchwork-Delegate: kuba@kernel.org Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 9B35FC433EF for ; Tue, 7 Dec 2021 01:31:20 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232470AbhLGBej (ORCPT ); Mon, 6 Dec 2021 20:34:39 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33780 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233139AbhLGBe2 (ORCPT ); Mon, 6 Dec 2021 20:34:28 -0500 Received: from mail-pj1-x102a.google.com (mail-pj1-x102a.google.com [IPv6:2607:f8b0:4864:20::102a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 856E7C061746 for ; Mon, 6 Dec 2021 17:30:59 -0800 (PST) Received: by mail-pj1-x102a.google.com with SMTP id n15-20020a17090a160f00b001a75089daa3so707170pja.1 for ; Mon, 06 Dec 2021 17:30:59 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=nDYVPuIEkV8eN9s9kPcAAJsWE+y2Z23XnE5mUhQWdCg=; b=aGu30ek36ZJ/yIxOnYnKDbkLpvh5PZbKwBwS6TDJGLwlXuTwrDAPNmKOJ3IQj8t+HG fj4B4HFY2Pr5Ik+gHX2kGNkJtLpXHW/oDe7LR1sSA8pGaByiogEwQk3IV/Nr3DT6p+H0 FhLQ7FNJwbxij1MUvBWpfVr8T1oMuYyCJJu1+rRMDlDLmUwWOWb+MfwaRYk73t2tFpG+ 9xLN5GZ3u/PtT2vdc+6Amc7zYIjKJRuZtYehc63vBMG+cdsvpTgxAQsdjM6hR9wsCRbP 4G2Z5SOTPwUeBryTwJJCrGe2tyvI31z96vMU0lRftPX9lj6/Tk/oRzBku0bsjzI00A2Z zm5Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=nDYVPuIEkV8eN9s9kPcAAJsWE+y2Z23XnE5mUhQWdCg=; b=Ov2BfVzP02Jg5yk0VBOQ3myTmCDzuSaYKdyqTyOzQl3nmHIJJ6ymGXMde1dcQrCXUD id74LHzwlwTcQQ57RplTW0fy5jpS1qHPOtMCtNAyD3LxYizzoZANKYRQz+i5gLxRlLYW T33CQF8tMeCQV8/TXjVxHVmqN3L2vJKKxC3mrBTlPwKf05yU+g5/LhVsq3wDxg4EaglI nWt5sMnrfQUqo5hFjZmR2B2Va62ZAF43jEEv1Z7qyLDDeacXAy5hw7shvgV3YK/dNT5H G9s14IlP1zjYCvD+GXAwCKK1ITud4fP1cwgvPqG64SiXDBqkd4o3guibVH1yKLh3EA61 hs+g== X-Gm-Message-State: AOAM531OVmVwhh4v1R+gtHy8BiQvy3fz3yvwWAj2ZMF5I4nxtJEzKXKq 4jbjdjw8j6aQma/P5+z+o1Q= X-Google-Smtp-Source: ABdhPJxKpEnBSq/f8dTgySs/4UdxCNxslqsOGnADuGBoi309ysvKKjk8jOTyISu89/1Q4cilk24OwQ== X-Received: by 2002:a17:90a:f2c2:: with SMTP id gt2mr2814596pjb.178.1638840659093; Mon, 06 Dec 2021 17:30:59 -0800 (PST) Received: from edumazet1.svl.corp.google.com ([2620:15c:2c4:201:518c:39bf:c3e8:ffe2]) by smtp.gmail.com with ESMTPSA id u6sm13342907pfg.157.2021.12.06.17.30.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 06 Dec 2021 17:30:58 -0800 (PST) From: Eric Dumazet To: "David S . Miller" , Jakub Kicinski Cc: netdev , Eric Dumazet , Eric Dumazet Subject: [PATCH net-next 02/13] vlan: add net device refcount tracker Date: Mon, 6 Dec 2021 17:30:28 -0800 Message-Id: <20211207013039.1868645-3-eric.dumazet@gmail.com> X-Mailer: git-send-email 2.34.1.400.ga245620fadb-goog In-Reply-To: <20211207013039.1868645-1-eric.dumazet@gmail.com> References: <20211207013039.1868645-1-eric.dumazet@gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org X-Patchwork-Delegate: kuba@kernel.org From: Eric Dumazet Signed-off-by: Eric Dumazet --- include/linux/if_vlan.h | 3 +++ net/8021q/vlan_dev.c | 4 ++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/include/linux/if_vlan.h b/include/linux/if_vlan.h index 41a518336673b496faf7ce0ea2a65068fe6814f2..8420fe5049272bbfa108df794bb351f7d87f7a5c 100644 --- a/include/linux/if_vlan.h +++ b/include/linux/if_vlan.h @@ -162,6 +162,7 @@ struct netpoll; * @vlan_id: VLAN identifier * @flags: device flags * @real_dev: underlying netdevice + * @dev_tracker: refcount tracker for @real_dev reference * @real_dev_addr: address of underlying netdevice * @dent: proc dir entry * @vlan_pcpu_stats: ptr to percpu rx stats @@ -177,6 +178,8 @@ struct vlan_dev_priv { u16 flags; struct net_device *real_dev; + netdevice_tracker dev_tracker; + unsigned char real_dev_addr[ETH_ALEN]; struct proc_dir_entry *dent; diff --git a/net/8021q/vlan_dev.c b/net/8021q/vlan_dev.c index 866556e041b729af5ebd5184fa3a90374fc3c244..26d031a43cc1a70aa94a5f3efe895efacb612cad 100644 --- a/net/8021q/vlan_dev.c +++ b/net/8021q/vlan_dev.c @@ -616,7 +616,7 @@ static int vlan_dev_init(struct net_device *dev) return -ENOMEM; /* Get vlan's reference to real_dev */ - dev_hold(real_dev); + dev_hold_track(real_dev, &vlan->dev_tracker, GFP_KERNEL); return 0; } @@ -848,7 +848,7 @@ static void vlan_dev_free(struct net_device *dev) vlan->vlan_pcpu_stats = NULL; /* Get rid of the vlan's reference to real_dev */ - dev_put(vlan->real_dev); + dev_put_track(vlan->real_dev, &vlan->dev_tracker); } void vlan_setup(struct net_device *dev) From patchwork Tue Dec 7 01:30:29 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Eric Dumazet X-Patchwork-Id: 12660743 X-Patchwork-Delegate: kuba@kernel.org Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id F0C0BC433F5 for ; Tue, 7 Dec 2021 01:33:36 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S245107AbhLGBfD (ORCPT ); Mon, 6 Dec 2021 20:35:03 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33782 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S245099AbhLGBea (ORCPT ); Mon, 6 Dec 2021 20:34:30 -0500 Received: from mail-pj1-x1031.google.com (mail-pj1-x1031.google.com [IPv6:2607:f8b0:4864:20::1031]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 2B286C061746 for ; Mon, 6 Dec 2021 17:31:01 -0800 (PST) Received: by mail-pj1-x1031.google.com with SMTP id np6-20020a17090b4c4600b001a90b011e06so1308798pjb.5 for ; Mon, 06 Dec 2021 17:31:01 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=zMLxuBkr1/zzwEczBt883CMhryMr7pdXtAV6W0rtThY=; b=SimEhnlujAR4s95i7KplsORdsSp0CTAhhOEIGYaM9vaQ1QamZVaSnbcSbHTBWyTccC GP7+yjgLxrl5NObI7BtfcZMTW5BwHkmWqjLxI75qqRvbQ5xA6SgJjNvu97hTjNFhLivc xxVAt2dP5RsIVJ1F1qwdWXSxIcN70475/sBlvBN5uGGRZxQCYES90L3AaZwh1G4Kgxl9 Ibi29OJ1C8IeIikEVyIEqjhdQwg3y+if3N8x7W3GhTZAnZa4KgEx14FxKvKh3NpQnIKM yiyFBhRXdqI9MWM77uh5TqvRkaYQtGN4SW+KpWXXPPXuhrnmxtTtqVv2qYQDOgagj5PO rxwg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=zMLxuBkr1/zzwEczBt883CMhryMr7pdXtAV6W0rtThY=; b=SiyUQPlnJp+algMGWenByXJON3/E91XEIGqk2evD17Dx57Gw8cgGNBHJNmQes9mUIF sB1FMGnsEegMxwK5Trxf2jtRuq/0eCpa4vTonZ4ZAvl/bNWYJjjw1lxpfrid65k46g2x 0SNYR4vETfubo/gnaJXAN/dzVEA4a10PUjIugoHWUISWkpaY0IJSxFeKeYRf8gkDBWwR 0kY10xVZZoygVybcfgp9xw6wOszCCSWsEOviH54DiNxUYP4e9eZDdw+o+/1wSsKDzSMx GbMg76W0HTT+iSHkKeMhneXyqegi0jTR5s9W3U1qR+TMcBQgSUP3SV5vpktc8cxlNaRu ZRYw== X-Gm-Message-State: AOAM530PWtHASBkOgNVX0/8a9kjvkVHvlW/k9Yy0KxHbxg0kajSEzY4J ZP6G1e3HYzOyeS0BZaf/ekVBhIC63Iw= X-Google-Smtp-Source: ABdhPJxhdXt++Nyn7WK/gd/bHeV6w/0InLD77gRod8Pu2uSOdmXTgKC8uGxyDCDF9ECbjJwpiWJNdA== X-Received: by 2002:a17:90b:3e85:: with SMTP id rj5mr2817776pjb.172.1638840660603; Mon, 06 Dec 2021 17:31:00 -0800 (PST) Received: from edumazet1.svl.corp.google.com ([2620:15c:2c4:201:518c:39bf:c3e8:ffe2]) by smtp.gmail.com with ESMTPSA id u6sm13342907pfg.157.2021.12.06.17.31.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 06 Dec 2021 17:31:00 -0800 (PST) From: Eric Dumazet To: "David S . Miller" , Jakub Kicinski Cc: netdev , Eric Dumazet , Eric Dumazet Subject: [PATCH net-next 03/13] net: bridge: add net device refcount tracker Date: Mon, 6 Dec 2021 17:30:29 -0800 Message-Id: <20211207013039.1868645-4-eric.dumazet@gmail.com> X-Mailer: git-send-email 2.34.1.400.ga245620fadb-goog In-Reply-To: <20211207013039.1868645-1-eric.dumazet@gmail.com> References: <20211207013039.1868645-1-eric.dumazet@gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org X-Patchwork-Delegate: kuba@kernel.org From: Eric Dumazet Signed-off-by: Eric Dumazet --- net/bridge/br_if.c | 6 +++--- net/bridge/br_private.h | 1 + 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/net/bridge/br_if.c b/net/bridge/br_if.c index 3915832a03c25e22ae2215ee93dceb0f8e5b5cc4..a52ad81596b72dde8e9a0affccd38c91ab59315d 100644 --- a/net/bridge/br_if.c +++ b/net/bridge/br_if.c @@ -274,7 +274,7 @@ static void destroy_nbp(struct net_bridge_port *p) p->br = NULL; p->dev = NULL; - dev_put(dev); + dev_put_track(dev, &p->dev_tracker); kobject_put(&p->kobj); } @@ -423,7 +423,7 @@ static struct net_bridge_port *new_nbp(struct net_bridge *br, return ERR_PTR(-ENOMEM); p->br = br; - dev_hold(dev); + dev_hold_track(dev, &p->dev_tracker, GFP_KERNEL); p->dev = dev; p->path_cost = port_cost(dev); p->priority = 0x8000 >> BR_PORT_BITS; @@ -434,7 +434,7 @@ static struct net_bridge_port *new_nbp(struct net_bridge *br, br_stp_port_timer_init(p); err = br_multicast_add_port(p); if (err) { - dev_put(dev); + dev_put_track(dev, &p->dev_tracker); kfree(p); p = ERR_PTR(err); } diff --git a/net/bridge/br_private.h b/net/bridge/br_private.h index c0efd697865abea651263fc5258715e50c151726..af2b3512d86c8bc0fe799d9d698fa9b6bf3cb94b 100644 --- a/net/bridge/br_private.h +++ b/net/bridge/br_private.h @@ -344,6 +344,7 @@ struct net_bridge_mdb_entry { struct net_bridge_port { struct net_bridge *br; struct net_device *dev; + netdevice_tracker dev_tracker; struct list_head list; unsigned long flags; From patchwork Tue Dec 7 01:30:30 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Eric Dumazet X-Patchwork-Id: 12660741 X-Patchwork-Delegate: kuba@kernel.org Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 4A918C433EF for ; Tue, 7 Dec 2021 01:33:36 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1351745AbhLGBfF (ORCPT ); Mon, 6 Dec 2021 20:35:05 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33804 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1351623AbhLGBee (ORCPT ); Mon, 6 Dec 2021 20:34:34 -0500 Received: from mail-pg1-x530.google.com (mail-pg1-x530.google.com [IPv6:2607:f8b0:4864:20::530]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 59105C061746 for ; Mon, 6 Dec 2021 17:31:05 -0800 (PST) Received: by mail-pg1-x530.google.com with SMTP id 133so12129242pgc.12 for ; Mon, 06 Dec 2021 17:31:05 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=FNVAspSEhGbEehGnStBkln/N3w3kgxxNgeXE1a+3uLA=; b=Um+1xewVcHNYQjyn5kbNndAxwMrjFnRc3JmwItJa5k8edFYAdrBlNYNHT1MK47zA5H dxQ7Pm4PH1sfzF3YqBxelIfgEhAR/iA37pB5E92mKVe60OT3dGkMsSW14FnorUBbYVtU aeMvRFBOZAVU3H3Lnx61HYegqFUXLhG981FRqMSsLRcgZvq0sMm5DRCabfXf3at7Zd6p pdq/ZfMfU31Adi6DfpWdWTRVKoyzSUp/LXaP2711rAWvuPI6c8SMk04zRRq3C7RAqUoM WqBUpCZ8YShfP1v3K9foWA0M3XaUy15YrZdhcY54W7ariyucS5q7hPbX29ZSi093Etlj MHyQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=FNVAspSEhGbEehGnStBkln/N3w3kgxxNgeXE1a+3uLA=; b=pVDLPv9hXAG4uM5Wu7Fmt5tMiW0GXbaSx9SfcF2pim/cazPuKj/oUgmKv7oRufNWLT zRV4E0hcMHdavseCVCIkT3irY3j0uIqrSbNCOXoVLOGJFRov6UNaBk0LfkSJsKN8oISI dJzWPf7yAzl3TrlDi5s9UT2Pz6XpRzT1sEDInjmv4JoprCg6+l5nAyzrFHGtxT9zekgb AeNFncM15ZPkh+XDN1QRyS9F3HR6jDItWRfCIs/UyrTrbn1pUsypbJj98oEeuc3QnqXr QCEAroH5upOwpTPasYiRuYEma2N3ulahcaCmqPzNbYxy1qUaL+h40XQiN+cDBZ2Q4AVi mg7A== X-Gm-Message-State: AOAM531NqVm+/VKgGtB5hnrtZ0I1WwWn9nCrV3MvioaJoM3sBNi+Mokj Ne2g97PO1UPKrhC616FiymQ= X-Google-Smtp-Source: ABdhPJzMIQPndCltU3Ifko+Gxqp26A6fRqOv5oj3MUNQKdYQWWJ1uy8qQFrJHcEu9v8Mp0mzD34m9w== X-Received: by 2002:a63:f252:: with SMTP id d18mr20532792pgk.191.1638840664969; Mon, 06 Dec 2021 17:31:04 -0800 (PST) Received: from edumazet1.svl.corp.google.com ([2620:15c:2c4:201:518c:39bf:c3e8:ffe2]) by smtp.gmail.com with ESMTPSA id u6sm13342907pfg.157.2021.12.06.17.31.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 06 Dec 2021 17:31:04 -0800 (PST) From: Eric Dumazet To: "David S . Miller" , Jakub Kicinski Cc: netdev , Eric Dumazet , Eric Dumazet Subject: [PATCH net-next 04/13] net: watchdog: add net device refcount tracker Date: Mon, 6 Dec 2021 17:30:30 -0800 Message-Id: <20211207013039.1868645-5-eric.dumazet@gmail.com> X-Mailer: git-send-email 2.34.1.400.ga245620fadb-goog In-Reply-To: <20211207013039.1868645-1-eric.dumazet@gmail.com> References: <20211207013039.1868645-1-eric.dumazet@gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org X-Patchwork-Delegate: kuba@kernel.org From: Eric Dumazet Add a netdevice_tracker inside struct net_device, to track the self reference when a device has an active watchdog timer. Signed-off-by: Eric Dumazet --- include/linux/netdevice.h | 2 ++ net/sched/sch_generic.c | 10 ++++++---- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h index 201d8c5be80685f89d7fdba4b61f83194beb9b13..235d5d082f1a446c8d898ffcc5b1983df7c04f35 100644 --- a/include/linux/netdevice.h +++ b/include/linux/netdevice.h @@ -1944,6 +1944,7 @@ enum netdev_ml_priv_type { * * @dev_addr_shadow: Copy of @dev_addr to catch direct writes. * @linkwatch_dev_tracker: refcount tracker used by linkwatch. + * @watchdog_dev_tracker: refcount tracker used by watchdog. * * FIXME: cleanup struct net_device such that network protocol info * moves out. @@ -2275,6 +2276,7 @@ struct net_device { u8 dev_addr_shadow[MAX_ADDR_LEN]; netdevice_tracker linkwatch_dev_tracker; + netdevice_tracker watchdog_dev_tracker; }; #define to_net_dev(d) container_of(d, struct net_device, dev) diff --git a/net/sched/sch_generic.c b/net/sched/sch_generic.c index 8c8fbf2e385679e46a1b7af47eeac059fb8468cc..b07bd1c7330f54a00c44ecd2e354af76f62b64e8 100644 --- a/net/sched/sch_generic.c +++ b/net/sched/sch_generic.c @@ -499,6 +499,7 @@ EXPORT_SYMBOL(netif_tx_unlock); static void dev_watchdog(struct timer_list *t) { struct net_device *dev = from_timer(dev, t, watchdog_timer); + bool release = true; spin_lock(&dev->tx_global_lock); if (!qdisc_tx_is_noop(dev)) { @@ -534,12 +535,13 @@ static void dev_watchdog(struct timer_list *t) if (!mod_timer(&dev->watchdog_timer, round_jiffies(jiffies + dev->watchdog_timeo))) - dev_hold(dev); + release = false; } } spin_unlock(&dev->tx_global_lock); - dev_put(dev); + if (release) + dev_put_track(dev, &dev->watchdog_dev_tracker); } void __netdev_watchdog_up(struct net_device *dev) @@ -549,7 +551,7 @@ void __netdev_watchdog_up(struct net_device *dev) dev->watchdog_timeo = 5*HZ; if (!mod_timer(&dev->watchdog_timer, round_jiffies(jiffies + dev->watchdog_timeo))) - dev_hold(dev); + dev_hold_track(dev, &dev->watchdog_dev_tracker, GFP_ATOMIC); } } EXPORT_SYMBOL_GPL(__netdev_watchdog_up); @@ -563,7 +565,7 @@ static void dev_watchdog_down(struct net_device *dev) { netif_tx_lock_bh(dev); if (del_timer(&dev->watchdog_timer)) - dev_put(dev); + dev_put_track(dev, &dev->watchdog_dev_tracker); netif_tx_unlock_bh(dev); } From patchwork Tue Dec 7 01:30:31 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Eric Dumazet X-Patchwork-Id: 12660747 X-Patchwork-Delegate: kuba@kernel.org Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 20FB2C43217 for ; Tue, 7 Dec 2021 01:33:37 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1351748AbhLGBfF (ORCPT ); Mon, 6 Dec 2021 20:35:05 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33814 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1351647AbhLGBeg (ORCPT ); Mon, 6 Dec 2021 20:34:36 -0500 Received: from mail-pg1-x533.google.com (mail-pg1-x533.google.com [IPv6:2607:f8b0:4864:20::533]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A8C3BC061746 for ; Mon, 6 Dec 2021 17:31:07 -0800 (PST) Received: by mail-pg1-x533.google.com with SMTP id r5so12155904pgi.6 for ; Mon, 06 Dec 2021 17:31:07 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=Tz9vHdqUZOf4v8FsLoZLubMjatviUY54HDUnECMUfwk=; b=ESHN0HD5jb8a83FszD8Y+MAcu/8QPWM8+4Tp5CcNP5YCiSJucZ9VX5GNQwAY9D3+wu hNq1o3S41uNQnMdTERp20PkHFz6QcwZVZ+jsUbgLz680GT+FOcVr0nFnOoSHC+ybYGIk PCyZXfF6Eevps2lOpk3t7xwGFRLBwEpfFyh6xoUYYRIYosVPHb/30iqs7nxz6H4FqXJT 9NLhmNWlOFoTL+K/CDn9FSrjTYcyjxosntn8Ci88mNvIFMck3Ey17ZkO+46bIFu8J7lh uFo+hMW+sGmL0tJ1T+53g763Cc2bMwyL5lMMzjTTpqBmqdejxrgScUVY/WHLfS2s1zou ldWw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=Tz9vHdqUZOf4v8FsLoZLubMjatviUY54HDUnECMUfwk=; b=XGA37p5XuWzAGn0qT8reQDfgkAcM8tl2FUytpx11nn9LQ1sVsoX2e4tpqhL8Z4F58M xHTXQ0sELWGOPVM0HqzRZm8ijloah9bF+pLF63VPoh5EzF76FCp1k1optW9z9+HU9Qfm bgy1VeasxNydltT6XtnJxCggk4ieW+Our0CMJuER+jNK3NlPRkjBQ9ARtvFDn4NJcKlq 5hjvo6gJNKVsSguWyo7y/GmIl381QgzKr0MQ+2FfMfCEBHUEMHjy9GiCVTg13meOgsUU 1HEs57WY0iXa8hCQTPjY8/k+/8t+tgjSB7/Kh02Gd22N2H8UQ8vBwhkz6nz2EsGerqY0 u1IQ== X-Gm-Message-State: AOAM533XFGghI/Da3FFux3RxPSfEzfbx+AETgnoY6eJA6nHLtkKhXO7T Qb7GW5ZJGRMoF05IfsvYHJA= X-Google-Smtp-Source: ABdhPJzfLnKtdxoHwJklraLzMYgUhOxlRDFAHbL8IAuKbmgTcZt0LMi0ltALJsJM1C2WgN3wiHVD/A== X-Received: by 2002:a05:6a00:808:b0:49f:f2c0:2c98 with SMTP id m8-20020a056a00080800b0049ff2c02c98mr40870153pfk.58.1638840667263; Mon, 06 Dec 2021 17:31:07 -0800 (PST) Received: from edumazet1.svl.corp.google.com ([2620:15c:2c4:201:518c:39bf:c3e8:ffe2]) by smtp.gmail.com with ESMTPSA id u6sm13342907pfg.157.2021.12.06.17.31.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 06 Dec 2021 17:31:07 -0800 (PST) From: Eric Dumazet To: "David S . Miller" , Jakub Kicinski Cc: netdev , Eric Dumazet , Eric Dumazet Subject: [PATCH net-next 05/13] net: switchdev: add net device refcount tracker Date: Mon, 6 Dec 2021 17:30:31 -0800 Message-Id: <20211207013039.1868645-6-eric.dumazet@gmail.com> X-Mailer: git-send-email 2.34.1.400.ga245620fadb-goog In-Reply-To: <20211207013039.1868645-1-eric.dumazet@gmail.com> References: <20211207013039.1868645-1-eric.dumazet@gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org X-Patchwork-Delegate: kuba@kernel.org From: Eric Dumazet Signed-off-by: Eric Dumazet --- net/switchdev/switchdev.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/net/switchdev/switchdev.c b/net/switchdev/switchdev.c index 83460470e88315f9bee59271b6955294d0b6f42a..b62565278faccfb7f96228a19304a9ec6c161655 100644 --- a/net/switchdev/switchdev.c +++ b/net/switchdev/switchdev.c @@ -28,6 +28,7 @@ typedef void switchdev_deferred_func_t(struct net_device *dev, struct switchdev_deferred_item { struct list_head list; struct net_device *dev; + netdevice_tracker dev_tracker; switchdev_deferred_func_t *func; unsigned long data[]; }; @@ -63,7 +64,7 @@ void switchdev_deferred_process(void) while ((dfitem = switchdev_deferred_dequeue())) { dfitem->func(dfitem->dev, dfitem->data); - dev_put(dfitem->dev); + dev_put_track(dfitem->dev, &dfitem->dev_tracker); kfree(dfitem); } } @@ -90,7 +91,7 @@ static int switchdev_deferred_enqueue(struct net_device *dev, dfitem->dev = dev; dfitem->func = func; memcpy(dfitem->data, data, data_len); - dev_hold(dev); + dev_hold_track(dev, &dfitem->dev_tracker, GFP_ATOMIC); spin_lock_bh(&deferred_lock); list_add_tail(&dfitem->list, &deferred); spin_unlock_bh(&deferred_lock); From patchwork Tue Dec 7 01:30:32 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Eric Dumazet X-Patchwork-Id: 12660735 X-Patchwork-Delegate: kuba@kernel.org Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id E3CEBC433F5 for ; Tue, 7 Dec 2021 01:31:31 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232745AbhLGBeu (ORCPT ); Mon, 6 Dec 2021 20:34:50 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33822 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231773AbhLGBej (ORCPT ); Mon, 6 Dec 2021 20:34:39 -0500 Received: from mail-pl1-x62d.google.com (mail-pl1-x62d.google.com [IPv6:2607:f8b0:4864:20::62d]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id EBF92C061746 for ; Mon, 6 Dec 2021 17:31:09 -0800 (PST) Received: by mail-pl1-x62d.google.com with SMTP id u11so8302574plf.3 for ; Mon, 06 Dec 2021 17:31:09 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=GzhZ/fGH2RAlWayhRGzZ0dPR1g0dvGblYFvD22Lbl/U=; b=qGzsf/ZKI60LV3A8/zyiTwCtYJUk5AlY75z15BQPScnwTKhOCsnCy16vTePjnAsAY9 UsEPrfSKsZW7qC5/owZyQrodVkhHvRw25ZF+YZPwwhoJZAOiG3z9AGu18jafGeZSP2vL JmX6pqNWyOmY6QvCskYg8DIQGePeksOIzwTK5Uxtyu78qtxNT5UjppU3rdelHsXG13Ie qee/sgiW1xrpOUcHZhNhwUz0fGPNaOwQekQzENXYtuFcef4Gk1Y5q67R1PxfonvzcqSA EnQzIGdToKnqop0D3fMGnqxIVk+i+L9hzfFEakFAcJcpRjMw57NqnbFEyyxxVx/Q2N7v 4GaA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=GzhZ/fGH2RAlWayhRGzZ0dPR1g0dvGblYFvD22Lbl/U=; b=sNZGsWiPdCckcGzkqsMgvS2fb9NCj6/MbBtOzexXlScnaKD4sepvVikppVSSP6+lP/ 6FY+Ypm1HXtTveHpQX89Q026/IJsGl94NyFqL2sdeQqGsPTldMaAhsCQaWyhxq92KtZL 57FvfOZVvJhw199hYYCWsHX3DeSUZbBWSi77vt/SLCRYYqkdPH11BOldbhBFdojr0Uml BKNlAmkoPaO71DQ2ObyvO9NYDeu2y/A7V9msSz6e7L141hVOSQI1Vc3JaJEcz3yEIuE0 COZtnNsO93wrF0D9J5CH369T27yEBTEOWi638yvY7QK/p+4EZewXpyu3jMLG9MTj0GXU 4H7w== X-Gm-Message-State: AOAM531KAva1joGmjypsFUWmGlHx6NW9Q3nhte3B7lIQcGvh7/VmvS/N PNDOurWq/ncg/4qdbrCt16U= X-Google-Smtp-Source: ABdhPJwszoQJ1zP/3kWJ+w56PiRb5NXlmXmfvqHFHvLt6Bz10ztPGnbuUt/9B+1AGZDZrY4hm1XNEg== X-Received: by 2002:a17:90a:b382:: with SMTP id e2mr2727133pjr.181.1638840669509; Mon, 06 Dec 2021 17:31:09 -0800 (PST) Received: from edumazet1.svl.corp.google.com ([2620:15c:2c4:201:518c:39bf:c3e8:ffe2]) by smtp.gmail.com with ESMTPSA id u6sm13342907pfg.157.2021.12.06.17.31.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 06 Dec 2021 17:31:08 -0800 (PST) From: Eric Dumazet To: "David S . Miller" , Jakub Kicinski Cc: netdev , Eric Dumazet , Eric Dumazet Subject: [PATCH net-next 06/13] inet: add net device refcount tracker to struct fib_nh_common Date: Mon, 6 Dec 2021 17:30:32 -0800 Message-Id: <20211207013039.1868645-7-eric.dumazet@gmail.com> X-Mailer: git-send-email 2.34.1.400.ga245620fadb-goog In-Reply-To: <20211207013039.1868645-1-eric.dumazet@gmail.com> References: <20211207013039.1868645-1-eric.dumazet@gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org X-Patchwork-Delegate: kuba@kernel.org From: Eric Dumazet Signed-off-by: Eric Dumazet --- include/net/ip_fib.h | 2 ++ net/ipv4/fib_semantics.c | 12 +++++++----- net/ipv6/route.c | 2 ++ 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/include/net/ip_fib.h b/include/net/ip_fib.h index 3417ba2d27ad6a1b5612a8855d2788f10d9fdf25..c4297704bbcbaac0ad5da1675ae47dee1e133df4 100644 --- a/include/net/ip_fib.h +++ b/include/net/ip_fib.h @@ -79,6 +79,7 @@ struct fnhe_hash_bucket { struct fib_nh_common { struct net_device *nhc_dev; + netdevice_tracker nhc_dev_tracker; int nhc_oif; unsigned char nhc_scope; u8 nhc_family; @@ -111,6 +112,7 @@ struct fib_nh { int nh_saddr_genid; #define fib_nh_family nh_common.nhc_family #define fib_nh_dev nh_common.nhc_dev +#define fib_nh_dev_tracker nh_common.nhc_dev_tracker #define fib_nh_oif nh_common.nhc_oif #define fib_nh_flags nh_common.nhc_flags #define fib_nh_lws nh_common.nhc_lwtstate diff --git a/net/ipv4/fib_semantics.c b/net/ipv4/fib_semantics.c index fde7797b580694bb3924c5c6e9560cf04fd67387..3cad543dc7477aa94140d240ecd2014093befddd 100644 --- a/net/ipv4/fib_semantics.c +++ b/net/ipv4/fib_semantics.c @@ -208,7 +208,7 @@ static void rt_fibinfo_free_cpus(struct rtable __rcu * __percpu *rtp) void fib_nh_common_release(struct fib_nh_common *nhc) { - dev_put(nhc->nhc_dev); + dev_put_track(nhc->nhc_dev, &nhc->nhc_dev_tracker); lwtstate_put(nhc->nhc_lwtstate); rt_fibinfo_free_cpus(nhc->nhc_pcpu_rth_output); rt_fibinfo_free(&nhc->nhc_rth_input); @@ -1006,7 +1006,7 @@ static int fib_check_nh_v6_gw(struct net *net, struct fib_nh *nh, err = ipv6_stub->fib6_nh_init(net, &fib6_nh, &cfg, GFP_KERNEL, extack); if (!err) { nh->fib_nh_dev = fib6_nh.fib_nh_dev; - dev_hold(nh->fib_nh_dev); + dev_hold_track(nh->fib_nh_dev, &nh->fib_nh_dev_tracker, GFP_KERNEL); nh->fib_nh_oif = nh->fib_nh_dev->ifindex; nh->fib_nh_scope = RT_SCOPE_LINK; @@ -1090,7 +1090,7 @@ static int fib_check_nh_v4_gw(struct net *net, struct fib_nh *nh, u32 table, if (!netif_carrier_ok(dev)) nh->fib_nh_flags |= RTNH_F_LINKDOWN; nh->fib_nh_dev = dev; - dev_hold(dev); + dev_hold_track(dev, &nh->fib_nh_dev_tracker, GFP_ATOMIC); nh->fib_nh_scope = RT_SCOPE_LINK; return 0; } @@ -1144,7 +1144,7 @@ static int fib_check_nh_v4_gw(struct net *net, struct fib_nh *nh, u32 table, "No egress device for nexthop gateway"); goto out; } - dev_hold(dev); + dev_hold_track(dev, &nh->fib_nh_dev_tracker, GFP_ATOMIC); if (!netif_carrier_ok(dev)) nh->fib_nh_flags |= RTNH_F_LINKDOWN; err = (dev->flags & IFF_UP) ? 0 : -ENETDOWN; @@ -1178,7 +1178,7 @@ static int fib_check_nh_nongw(struct net *net, struct fib_nh *nh, } nh->fib_nh_dev = in_dev->dev; - dev_hold(nh->fib_nh_dev); + dev_hold_track(nh->fib_nh_dev, &nh->fib_nh_dev_tracker, GFP_ATOMIC); nh->fib_nh_scope = RT_SCOPE_HOST; if (!netif_carrier_ok(nh->fib_nh_dev)) nh->fib_nh_flags |= RTNH_F_LINKDOWN; @@ -1508,6 +1508,8 @@ struct fib_info *fib_create_info(struct fib_config *cfg, err = -ENODEV; if (!nh->fib_nh_dev) goto failure; + netdev_tracker_alloc(nh->fib_nh_dev, &nh->fib_nh_dev_tracker, + GFP_KERNEL); } else { int linkdown = 0; diff --git a/net/ipv6/route.c b/net/ipv6/route.c index 8d834f901b483edf75c493620d38f979a4bcbf69..4d02a329ab6004169ebd31c5474ce8be5553d569 100644 --- a/net/ipv6/route.c +++ b/net/ipv6/route.c @@ -3628,6 +3628,8 @@ int fib6_nh_init(struct net *net, struct fib6_nh *fib6_nh, } fib6_nh->fib_nh_dev = dev; + netdev_tracker_alloc(dev, &fib6_nh->fib_nh_dev_tracker, gfp_flags); + fib6_nh->fib_nh_oif = dev->ifindex; err = 0; out: From patchwork Tue Dec 7 01:30:33 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Eric Dumazet X-Patchwork-Id: 12660751 X-Patchwork-Delegate: kuba@kernel.org Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 118F2C433FE for ; Tue, 7 Dec 2021 01:33:37 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1351750AbhLGBfG (ORCPT ); Mon, 6 Dec 2021 20:35:06 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33832 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S242801AbhLGBel (ORCPT ); Mon, 6 Dec 2021 20:34:41 -0500 Received: from mail-pl1-x636.google.com (mail-pl1-x636.google.com [IPv6:2607:f8b0:4864:20::636]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B5650C061746 for ; Mon, 6 Dec 2021 17:31:11 -0800 (PST) Received: by mail-pl1-x636.google.com with SMTP id y8so8309103plg.1 for ; Mon, 06 Dec 2021 17:31:11 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=KEBzCxUZxGrDGVJ+OdYncdD+kJPJ8PS+fS3F1qSzyJk=; b=eD1wOfeAp5vkKpeD//I1d1bwdtZhvn7wPrqj4cR+jCwLGNSgF7EcshaBxCt/EC0ANw 5oWRy02ulueRZJDcMuW9K/MSYuA4/Rm9n4S8dL0sbdZOCGnJIlHoYwNr+oK3OCNsax4Y tNBFydNGn+XpRtM3i4sP7pT3FfVfMLwSOgE2gYXhLa9Fe4Z86T3ZMJNBTFf1vjuScRos +YSubI1mETx12sec7rhPfq0AYNJ2OWgl9EmZiEvEViZ6LH+T84RQrkOlwf0jOtDxq3Ns MCzmS3sbMnO2DHjFNfndy/06DW4TwNXOUclfbLaxjpYAaQ8mdLa8eyaF+n6ovTdrX6g7 oDWg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=KEBzCxUZxGrDGVJ+OdYncdD+kJPJ8PS+fS3F1qSzyJk=; b=XpWHPUbIoVR14n7Dzap5guFf/yThH10vtIvqEe8M1BTnx2lHkc7rIGnEYM9vIFf+RK YUD0pXjnvnfVNUEs1rvnf3BSUFUCO9fAymKpGFjYJOaVhqKbwkCn38jVdgDha0FEjpXs A1wnC+SW3Zymr+dMqAct4b/lpueejPJaiy21mM7SBqN3buIpbsvSifTjxOuKU4VICqor I9VEdmdctb025JxthtRrhx0BQGBgMwlb5eL9jZnY9407ql8J9faL6muxl9d5o2sIPO9D nfC+0za0t5yI1Ig6IWX3n+qD7WynFWP4j03R9Ov7YONDky9PrsMfAId2AU9LLs7RvHUF o2YA== X-Gm-Message-State: AOAM531QsnN2zyuWQMvC6eDwu6xC0ZjDc0uB4F1nZlH0F7mkeHe++uwR lpqLsRvzqRcS0urZOJe+vJw= X-Google-Smtp-Source: ABdhPJw3BVbpamXAzsE/F59Wno145dup+eCWdgm85Qyk1LrANjQmUP/z/tGl9BLX6YSZlz10du+i+g== X-Received: by 2002:a17:90b:2290:: with SMTP id kx16mr2743228pjb.193.1638840671306; Mon, 06 Dec 2021 17:31:11 -0800 (PST) Received: from edumazet1.svl.corp.google.com ([2620:15c:2c4:201:518c:39bf:c3e8:ffe2]) by smtp.gmail.com with ESMTPSA id u6sm13342907pfg.157.2021.12.06.17.31.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 06 Dec 2021 17:31:10 -0800 (PST) From: Eric Dumazet To: "David S . Miller" , Jakub Kicinski Cc: netdev , Eric Dumazet , Eric Dumazet Subject: [PATCH net-next 07/13] ax25: add net device refcount tracker Date: Mon, 6 Dec 2021 17:30:33 -0800 Message-Id: <20211207013039.1868645-8-eric.dumazet@gmail.com> X-Mailer: git-send-email 2.34.1.400.ga245620fadb-goog In-Reply-To: <20211207013039.1868645-1-eric.dumazet@gmail.com> References: <20211207013039.1868645-1-eric.dumazet@gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org X-Patchwork-Delegate: kuba@kernel.org From: Eric Dumazet Signed-off-by: Eric Dumazet --- include/net/ax25.h | 3 +++ net/ax25/ax25_dev.c | 8 ++++---- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/include/net/ax25.h b/include/net/ax25.h index 03d409de61ad0e7d37ba0e805a07475e40bab478..526e49589197909b459de068222c4a9cf76050ba 100644 --- a/include/net/ax25.h +++ b/include/net/ax25.h @@ -229,7 +229,10 @@ struct ctl_table; typedef struct ax25_dev { struct ax25_dev *next; + struct net_device *dev; + netdevice_tracker dev_tracker; + struct net_device *forward; struct ctl_table_header *sysheader; int values[AX25_MAX_VALUES]; diff --git a/net/ax25/ax25_dev.c b/net/ax25/ax25_dev.c index d0a043a51848b3141a6e1f2a7b1ed53a51931ae3..256fadb94df3125ddc2f5ed5f8b1c91d6e243546 100644 --- a/net/ax25/ax25_dev.c +++ b/net/ax25/ax25_dev.c @@ -58,7 +58,7 @@ void ax25_dev_device_up(struct net_device *dev) dev->ax25_ptr = ax25_dev; ax25_dev->dev = dev; - dev_hold(dev); + dev_hold_track(dev, &ax25_dev->dev_tracker, GFP_ATOMIC); ax25_dev->forward = NULL; ax25_dev->values[AX25_VALUES_IPDEFMODE] = AX25_DEF_IPDEFMODE; @@ -114,7 +114,7 @@ void ax25_dev_device_down(struct net_device *dev) ax25_dev_list = s->next; spin_unlock_bh(&ax25_dev_lock); dev->ax25_ptr = NULL; - dev_put(dev); + dev_put_track(dev, &ax25_dev->dev_tracker); kfree(ax25_dev); return; } @@ -124,7 +124,7 @@ void ax25_dev_device_down(struct net_device *dev) s->next = ax25_dev->next; spin_unlock_bh(&ax25_dev_lock); dev->ax25_ptr = NULL; - dev_put(dev); + dev_put_track(dev, &ax25_dev->dev_tracker); kfree(ax25_dev); return; } @@ -188,7 +188,7 @@ void __exit ax25_dev_free(void) ax25_dev = ax25_dev_list; while (ax25_dev != NULL) { s = ax25_dev; - dev_put(ax25_dev->dev); + dev_put_track(ax25_dev->dev, &ax25_dev->dev_tracker); ax25_dev = ax25_dev->next; kfree(s); } From patchwork Tue Dec 7 01:30:34 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Eric Dumazet X-Patchwork-Id: 12660745 X-Patchwork-Delegate: kuba@kernel.org Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 382CBC4332F for ; Tue, 7 Dec 2021 01:33:37 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1351756AbhLGBfG (ORCPT ); Mon, 6 Dec 2021 20:35:06 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33834 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1351679AbhLGBem (ORCPT ); Mon, 6 Dec 2021 20:34:42 -0500 Received: from mail-pj1-x102f.google.com (mail-pj1-x102f.google.com [IPv6:2607:f8b0:4864:20::102f]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 53CD7C061746 for ; Mon, 6 Dec 2021 17:31:13 -0800 (PST) Received: by mail-pj1-x102f.google.com with SMTP id w33-20020a17090a6ba400b001a722a06212so992757pjj.0 for ; Mon, 06 Dec 2021 17:31:13 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=tFp3iCnBAeqbp2p9+t6Hx+bNUCDIXLv2nivTrYVAbTY=; b=ihzBWGfF68dd+iFvYKzUnaPPwCWl2nosR/jldU2BXnkMDLQifdn33ty67cBPeaFVF3 p6VJuXnPuDaHVy2Vd9GRiIiHgxUnVlTXqn5bXQAidW46waMSb5tJE1eWz5ISsp6TAHeO lWAJQoPknmaA/uYzizIYxRTmzmWEk6WS4mLMYTkqay1JM5SIKLa8hgn6PrRaTpmJjowj /SsOAWaCX2sWLzbPI71Ht5yfgd74G9RSvlyaeloPXr31v4DYcwWRFD/mhLz+uHMI2yAi c7J1HsT/jB3FILcQF3j1C2IMLXqJTk4luuD/3VjsbtUIoiDczwrTDZgLilyp1EPDDDZi Kj/A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=tFp3iCnBAeqbp2p9+t6Hx+bNUCDIXLv2nivTrYVAbTY=; b=rRkVl2nOYnZkUhcB4aoEFaxF0KW0AY5iUXbuaNipyJ3GqyAP37zLWDnUYEG2v5XJiB UxjRHPjDKYYFdhy9H7HFqD7CpsUdLu0Cj4nrsEBmv1CQKWof/7rCpWOZbaA/Gb3oWF4T sR+i2EPciSJDrLtYM+mu60E1BdlFY5DJfecKACqe5uaZBikaWiwiIMUE2t8T15Ov3fLr WxiCTZosNXeL/mx2cjzEpkDfyNs0VUivch2qymmFHr2+Qcxtliy69h84+HEJNOKv+FGo Rx5yprIcx8ISjlhlO9DU59URsR1rneiqzUnx3QDwZtVfMaGcolnEfrRNnEmZhoUYql84 bl8Q== X-Gm-Message-State: AOAM532kUV3PaKGKPKsoc4JQ+mWVpi/C2LY+QjmjSZu8PYBlhkUVmJcb 00KIK9T85w3PWlpO5fI5woo= X-Google-Smtp-Source: ABdhPJwvL1C5DecBSByU8PSJu4ctRb1ikHLkuIk+7kHR50TAi5a8cd7c6TmcVA0PohbOH6IfflNSxQ== X-Received: by 2002:a17:90b:4b0e:: with SMTP id lx14mr2842643pjb.160.1638840672987; Mon, 06 Dec 2021 17:31:12 -0800 (PST) Received: from edumazet1.svl.corp.google.com ([2620:15c:2c4:201:518c:39bf:c3e8:ffe2]) by smtp.gmail.com with ESMTPSA id u6sm13342907pfg.157.2021.12.06.17.31.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 06 Dec 2021 17:31:12 -0800 (PST) From: Eric Dumazet To: "David S . Miller" , Jakub Kicinski Cc: netdev , Eric Dumazet , Eric Dumazet Subject: [PATCH net-next 08/13] llc: add net device refcount tracker Date: Mon, 6 Dec 2021 17:30:34 -0800 Message-Id: <20211207013039.1868645-9-eric.dumazet@gmail.com> X-Mailer: git-send-email 2.34.1.400.ga245620fadb-goog In-Reply-To: <20211207013039.1868645-1-eric.dumazet@gmail.com> References: <20211207013039.1868645-1-eric.dumazet@gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org X-Patchwork-Delegate: kuba@kernel.org From: Eric Dumazet Signed-off-by: Eric Dumazet --- include/net/llc_conn.h | 1 + net/llc/af_llc.c | 5 +++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/include/net/llc_conn.h b/include/net/llc_conn.h index ea985aa7a6c5e64b6802c2399ad47db23fdbd9bf..2c1ea3414640523a3efc20ad626ae9896a418d1b 100644 --- a/include/net/llc_conn.h +++ b/include/net/llc_conn.h @@ -38,6 +38,7 @@ struct llc_sock { struct llc_addr laddr; /* lsap/mac pair */ struct llc_addr daddr; /* dsap/mac pair */ struct net_device *dev; /* device to send to remote */ + netdevice_tracker dev_tracker; u32 copied_seq; /* head of yet unread data */ u8 retry_count; /* number of retries */ u8 ack_must_be_send; diff --git a/net/llc/af_llc.c b/net/llc/af_llc.c index 3086f4a6ae683f1119d4813648bf9fd9ba215436..26c00ebf4fbae4d7dc1c27d180385470fa252be0 100644 --- a/net/llc/af_llc.c +++ b/net/llc/af_llc.c @@ -224,7 +224,7 @@ static int llc_ui_release(struct socket *sock) } else { release_sock(sk); } - dev_put(llc->dev); + dev_put_track(llc->dev, &llc->dev_tracker); sock_put(sk); llc_sk_free(sk); out: @@ -295,6 +295,7 @@ static int llc_ui_autobind(struct socket *sock, struct sockaddr_llc *addr) llc->dev = dev_getfirstbyhwtype(&init_net, addr->sllc_arphrd); if (!llc->dev) goto out; + netdev_tracker_alloc(llc->dev, &llc->dev_tracker, GFP_KERNEL); rc = -EUSERS; llc->laddr.lsap = llc_ui_autoport(); if (!llc->laddr.lsap) @@ -362,7 +363,7 @@ static int llc_ui_bind(struct socket *sock, struct sockaddr *uaddr, int addrlen) } else llc->dev = dev_getbyhwaddr_rcu(&init_net, addr->sllc_arphrd, addr->sllc_mac); - dev_hold(llc->dev); + dev_hold_track(llc->dev, &llc->dev_tracker, GFP_ATOMIC); rcu_read_unlock(); if (!llc->dev) goto out; From patchwork Tue Dec 7 01:30:35 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Eric Dumazet X-Patchwork-Id: 12660749 X-Patchwork-Delegate: kuba@kernel.org Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 556CCC43219 for ; Tue, 7 Dec 2021 01:33:37 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1351758AbhLGBfH (ORCPT ); Mon, 6 Dec 2021 20:35:07 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33842 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S245391AbhLGBeo (ORCPT ); Mon, 6 Dec 2021 20:34:44 -0500 Received: from mail-pg1-x52d.google.com (mail-pg1-x52d.google.com [IPv6:2607:f8b0:4864:20::52d]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 14B48C061746 for ; Mon, 6 Dec 2021 17:31:15 -0800 (PST) Received: by mail-pg1-x52d.google.com with SMTP id 133so12129612pgc.12 for ; Mon, 06 Dec 2021 17:31:15 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=YH+RsSde1TM6CkclceNFxgy6FRympODJPqt8rGVl5oo=; b=puR/+F8cssQG6twcVT5xwXfnE/j7VmHNgD+oNllHia38ilSEpogJnCg7/BA/InwriR OQTg4avqPN5qo3rtWUt4ytWgYt4XWldX8D6/7tZ02/pDeoWICay2inNwcUxCdIf1q9iO l1wucbGOIpbOihvhkIouBEtVy1TzRXf+W6Hf6C6e8i8lWd5xQRDrDK6p+l3PPyHLPiDe UmnSr7Jd63IFQKRreSKpUKjAUeVL4aFta3xjHpEH1/6tNELhAmm9OvVMRMnRWgasYMsy pShVknbRehVEprgBSTsfpV1GMJ2ofy0CZNwILw9jrplqGpN6ZSevFRGMOhQuPWsVt/4L xKdA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=YH+RsSde1TM6CkclceNFxgy6FRympODJPqt8rGVl5oo=; b=2ccvQOOQjjITaIVwmmqftkoUur2X/xgj7EN3wAAQRTcRVq/7QcbD32wVj7tYGQlmj+ /vbwOVVbI+jLuzkixZ20KdanSLfrrB5S+Uhlav3IiYWsQzFqlMl7wDLllNPC1IAhH11b qWzkWjEkAF9791Hgif0IrvXsaTAUYas96KSL66YA7MzTXzLqvp7/LEpEc1CQ9o/UuXvk yYpvs7VDhNfHqSV8MtDgjMi1fpsNRNWu71XjY6cbBeBODqTYua4cjLr1aB/BXjz15qC9 SMgKCM5RDNg2DMA41uTORz8VzomnvfJq0Cour7gb2dRjY0LKNpkLkU6T8ItD0zhNgM/D Hbaw== X-Gm-Message-State: AOAM533ICNQ0olNnVhK12wX4i1aeXvAavHhJCb1FJh4xX4vqkXx2WjXI 1WnO7nOZfohfY+KGngxkS4I= X-Google-Smtp-Source: ABdhPJwql0TauuR5Dfgq384FQJ+BdAuHem6NPrXDnnSimrTfSFXeUex2DCKdWROTNO4GSpRdF/YMjQ== X-Received: by 2002:a63:33c3:: with SMTP id z186mr13298419pgz.67.1638840674682; Mon, 06 Dec 2021 17:31:14 -0800 (PST) Received: from edumazet1.svl.corp.google.com ([2620:15c:2c4:201:518c:39bf:c3e8:ffe2]) by smtp.gmail.com with ESMTPSA id u6sm13342907pfg.157.2021.12.06.17.31.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 06 Dec 2021 17:31:14 -0800 (PST) From: Eric Dumazet To: "David S . Miller" , Jakub Kicinski Cc: netdev , Eric Dumazet , Eric Dumazet Subject: [PATCH net-next 09/13] pktgen add net device refcount tracker Date: Mon, 6 Dec 2021 17:30:35 -0800 Message-Id: <20211207013039.1868645-10-eric.dumazet@gmail.com> X-Mailer: git-send-email 2.34.1.400.ga245620fadb-goog In-Reply-To: <20211207013039.1868645-1-eric.dumazet@gmail.com> References: <20211207013039.1868645-1-eric.dumazet@gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org X-Patchwork-Delegate: kuba@kernel.org From: Eric Dumazet Signed-off-by: Eric Dumazet --- net/core/pktgen.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/net/core/pktgen.c b/net/core/pktgen.c index a3d74e2704c42e3bec1aa502b911c1b952a56cf1..560a5e712dc32fe4aa2cfaa751c3fe1e462c614f 100644 --- a/net/core/pktgen.c +++ b/net/core/pktgen.c @@ -410,6 +410,7 @@ struct pktgen_dev { * device name (not when the inject is * started as it used to do.) */ + netdevice_tracker dev_tracker; char odevname[32]; struct flow_state *flows; unsigned int cflows; /* Concurrent flows (config) */ @@ -2099,7 +2100,7 @@ static int pktgen_setup_dev(const struct pktgen_net *pn, /* Clean old setups */ if (pkt_dev->odev) { - dev_put(pkt_dev->odev); + dev_put_track(pkt_dev->odev, &pkt_dev->dev_tracker); pkt_dev->odev = NULL; } @@ -2117,6 +2118,7 @@ static int pktgen_setup_dev(const struct pktgen_net *pn, err = -ENETDOWN; } else { pkt_dev->odev = odev; + netdev_tracker_alloc(odev, &pkt_dev->dev_tracker, GFP_KERNEL); return 0; } @@ -3805,7 +3807,7 @@ static int pktgen_add_device(struct pktgen_thread *t, const char *ifname) return add_dev_to_thread(t, pkt_dev); out2: - dev_put(pkt_dev->odev); + dev_put_track(pkt_dev->odev, &pkt_dev->dev_tracker); out1: #ifdef CONFIG_XFRM free_SAs(pkt_dev); @@ -3899,7 +3901,7 @@ static int pktgen_remove_device(struct pktgen_thread *t, /* Dis-associate from the interface */ if (pkt_dev->odev) { - dev_put(pkt_dev->odev); + dev_put_track(pkt_dev->odev, &pkt_dev->dev_tracker); pkt_dev->odev = NULL; } From patchwork Tue Dec 7 01:30:36 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Eric Dumazet X-Patchwork-Id: 12660753 X-Patchwork-Delegate: kuba@kernel.org Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 46B60C4321E for ; Tue, 7 Dec 2021 01:33:37 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1351765AbhLGBfH (ORCPT ); Mon, 6 Dec 2021 20:35:07 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33852 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1351711AbhLGBeq (ORCPT ); Mon, 6 Dec 2021 20:34:46 -0500 Received: from mail-pf1-x42c.google.com (mail-pf1-x42c.google.com [IPv6:2607:f8b0:4864:20::42c]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id DB3ABC061746 for ; Mon, 6 Dec 2021 17:31:16 -0800 (PST) Received: by mail-pf1-x42c.google.com with SMTP id k26so7450633pfp.10 for ; Mon, 06 Dec 2021 17:31:16 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=tL5ZM2YXicjzNxI/doFLTFvFFTbP1t2rgiQqxkp+MnA=; b=DCtDii3Ny1cQrkS6Pxk3cIIAYamAVJROJauEcyXb1/oloX1kZF46//4YoMa3GFOBtA 4Z1Y9JRLTc1tR7nYsGBX0SnrJvFCutugeUDz3KGtXj9IGysRgdS4JONPpfgqnUxUlHwp NJrhi+MnL2b1O01qZt8Iydurv6yCNMRTkckPEcBSb7l8wUVWpYcLvnf+ofx5LbdjLpac exJ/3x17v4gQPHcKrrPPJ9K0mmofyQoOo/1+qpsE3US/Q7Y13NUcgSHAF5X1i11fbO93 HFQqmzflXjVDwZXBIsOD9NEE3hQ9p0rywCjU55uiFLeKog2gjmBE/tM1Cvw9ZwZ4whob ycUA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=tL5ZM2YXicjzNxI/doFLTFvFFTbP1t2rgiQqxkp+MnA=; b=KI6rkHB2sn51K04qmeper473PRd4J8AS3SEWIZiSp6LvMF5318ryV6Llx+gntfw9SC MTmaIVrdt6zof4AYYeLApAGKLH5+1YELgOzrDxNcAiLxsBCfJoj1TKbLkVhC6z35ttiR CTFsCyJAi/kqwVQcH00j4UVkCD9x5WM1zi9CmYxW+nxmkHJqZwwEXAM1/trk0qs+EEBE vDx2NKLfKGbs7lkXpViQSJUXH6gHWfBy95PHlMwKAhaAqfWylkVzcVNCaPk79AlzwtRX nY6grcfrIfNW5OPCmXPLaD6g5AwVS54UA4WxCR/JehOSRIyf21FP8iOBYzeyBzHs4oaS BJrw== X-Gm-Message-State: AOAM531mUQG9wk33GiSUpFa52P2seUWjCdOnGwDWFeY4ZyUhF7qur1LR O+uU/HcyN8wnbevYQPb65fU= X-Google-Smtp-Source: ABdhPJwrWimEtkzNOq/HFSb8tbUmJFfb4n8ChE1yoBDhLNxPDKsd/WU4T8eTAzHz5Yng79op/5s2YQ== X-Received: by 2002:a63:8ac1:: with SMTP id y184mr21560692pgd.523.1638840676311; Mon, 06 Dec 2021 17:31:16 -0800 (PST) Received: from edumazet1.svl.corp.google.com ([2620:15c:2c4:201:518c:39bf:c3e8:ffe2]) by smtp.gmail.com with ESMTPSA id u6sm13342907pfg.157.2021.12.06.17.31.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 06 Dec 2021 17:31:15 -0800 (PST) From: Eric Dumazet To: "David S . Miller" , Jakub Kicinski Cc: netdev , Eric Dumazet , Eric Dumazet Subject: [PATCH net-next 10/13] net/smc: add net device tracker to struct smc_pnetentry Date: Mon, 6 Dec 2021 17:30:36 -0800 Message-Id: <20211207013039.1868645-11-eric.dumazet@gmail.com> X-Mailer: git-send-email 2.34.1.400.ga245620fadb-goog In-Reply-To: <20211207013039.1868645-1-eric.dumazet@gmail.com> References: <20211207013039.1868645-1-eric.dumazet@gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org X-Patchwork-Delegate: kuba@kernel.org From: Eric Dumazet Signed-off-by: Eric Dumazet Acked-by: Karsten Graul --- net/smc/smc_pnet.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/net/smc/smc_pnet.c b/net/smc/smc_pnet.c index 67e9d9fde08540fe1e152b85c450a0165eb37747..e171cc6483f84aac0e3cf496079a7ca57807b991 100644 --- a/net/smc/smc_pnet.c +++ b/net/smc/smc_pnet.c @@ -64,6 +64,7 @@ struct smc_pnetentry { struct { char eth_name[IFNAMSIZ + 1]; struct net_device *ndev; + netdevice_tracker dev_tracker; }; struct { char ib_name[IB_DEVICE_NAME_MAX + 1]; @@ -119,7 +120,7 @@ static int smc_pnet_remove_by_pnetid(struct net *net, char *pnet_name) smc_pnet_match(pnetelem->pnet_name, pnet_name)) { list_del(&pnetelem->list); if (pnetelem->type == SMC_PNET_ETH && pnetelem->ndev) { - dev_put(pnetelem->ndev); + dev_put_track(pnetelem->ndev, &pnetelem->dev_tracker); pr_warn_ratelimited("smc: net device %s " "erased user defined " "pnetid %.16s\n", @@ -195,7 +196,7 @@ static int smc_pnet_add_by_ndev(struct net_device *ndev) list_for_each_entry_safe(pnetelem, tmp_pe, &pnettable->pnetlist, list) { if (pnetelem->type == SMC_PNET_ETH && !pnetelem->ndev && !strncmp(pnetelem->eth_name, ndev->name, IFNAMSIZ)) { - dev_hold(ndev); + dev_hold_track(ndev, &pnetelem->dev_tracker, GFP_ATOMIC); pnetelem->ndev = ndev; rc = 0; pr_warn_ratelimited("smc: adding net device %s with " @@ -226,7 +227,7 @@ static int smc_pnet_remove_by_ndev(struct net_device *ndev) write_lock(&pnettable->lock); list_for_each_entry_safe(pnetelem, tmp_pe, &pnettable->pnetlist, list) { if (pnetelem->type == SMC_PNET_ETH && pnetelem->ndev == ndev) { - dev_put(pnetelem->ndev); + dev_put_track(pnetelem->ndev, &pnetelem->dev_tracker); pnetelem->ndev = NULL; rc = 0; pr_warn_ratelimited("smc: removing net device %s with " @@ -368,7 +369,7 @@ static int smc_pnet_add_eth(struct smc_pnettable *pnettable, struct net *net, memcpy(new_pe->pnet_name, pnet_name, SMC_MAX_PNETID_LEN); strncpy(new_pe->eth_name, eth_name, IFNAMSIZ); new_pe->ndev = ndev; - + netdev_tracker_alloc(ndev, &new_pe->dev_tracker, GFP_KERNEL); rc = -EEXIST; new_netdev = true; write_lock(&pnettable->lock); From patchwork Tue Dec 7 01:30:37 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Eric Dumazet X-Patchwork-Id: 12660755 X-Patchwork-Delegate: kuba@kernel.org Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 6AA83C4167B for ; Tue, 7 Dec 2021 01:33:37 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234593AbhLGBfI (ORCPT ); Mon, 6 Dec 2021 20:35:08 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33860 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1351715AbhLGBes (ORCPT ); Mon, 6 Dec 2021 20:34:48 -0500 Received: from mail-pg1-x531.google.com (mail-pg1-x531.google.com [IPv6:2607:f8b0:4864:20::531]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 4D26AC061746 for ; Mon, 6 Dec 2021 17:31:18 -0800 (PST) Received: by mail-pg1-x531.google.com with SMTP id 71so12195797pgb.4 for ; Mon, 06 Dec 2021 17:31:18 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=2XuSUkbm1fTCzBJbnFIXzPvhUfQc2Hy2zzqnqNr8xYg=; b=D3qbzsFYA+ioCO1wJxv3VT/xDvJXEiCzI8xV1n3iouOU+33YTdXEtkohjQj9vzcNnV RvyvdJIl5AP233E5KICLp7KCRu6FBvvj++BMB7m6VHkw1dqnOTfFIptHRt2WGWjQy3fD WpPldDBV/NlblBChPpvH4Yqy036yTtpBThDlQFmyeGhuNaUs0fRpt9OkaUaiz/dst0Dj //qehCr5O36wNrSmPUshemxOmjFTU3g5BEOh12QfIMJD2gE3bWG8uiseH4zsLmWsX8AG ita305QK252XPTR/vq2+zctnaxnUiLIV7YpUMqYpOR5/Yh6TERrR/TFsHBNOqciDSO4l KfLg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=2XuSUkbm1fTCzBJbnFIXzPvhUfQc2Hy2zzqnqNr8xYg=; b=WA4pPldwU7UzUDLV8g7MCu/6YUBQF8mfQry0TCpyRgDcdCTIYFhhzAvSPWB3TDfvdm 629xZy/BwPWQUT+SovhJwuGCSmN08wI/aue9g2uZ/LQH3Jjn8lL7bL1Ummar48aXtxiJ ivUS11o/1L1tBdhbZQTQq8a2fkacnjqbv8NRnuUjg4ye/u706JZ9dsM7CC/XOIpbv0tD tsCbDFmJ25e4gYHnRpIPUB3IhbdPTOqiRoqp3hi8su3PuTBhfCcFYI9ZzLroY0Qy496H z3O0Daa4KlNkLTTHTk4qkjrAc2P2PV14DPw7xci+MZo7wx/o0fH09TMuHwU8tpfXqZLR 7TAw== X-Gm-Message-State: AOAM531AarAdfj6HyjqMnU9PgM796jhVfpWMnDX/tKi+c6/NsZdNqlRB GRCwedCwRY9E0uUOZH3h/Jc= X-Google-Smtp-Source: ABdhPJxcGN7VJlPnZ94e57ZYk6vwEiY9R5QmwWmcdtpZW4iLQAHwdqJL52EuUcfuzr19oP+K6edCvQ== X-Received: by 2002:a63:88c3:: with SMTP id l186mr21310642pgd.377.1638840677876; Mon, 06 Dec 2021 17:31:17 -0800 (PST) Received: from edumazet1.svl.corp.google.com ([2620:15c:2c4:201:518c:39bf:c3e8:ffe2]) by smtp.gmail.com with ESMTPSA id u6sm13342907pfg.157.2021.12.06.17.31.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 06 Dec 2021 17:31:17 -0800 (PST) From: Eric Dumazet To: "David S . Miller" , Jakub Kicinski Cc: netdev , Eric Dumazet , Eric Dumazet Subject: [PATCH net-next 11/13] netlink: add net device refcount tracker to struct ethnl_req_info Date: Mon, 6 Dec 2021 17:30:37 -0800 Message-Id: <20211207013039.1868645-12-eric.dumazet@gmail.com> X-Mailer: git-send-email 2.34.1.400.ga245620fadb-goog In-Reply-To: <20211207013039.1868645-1-eric.dumazet@gmail.com> References: <20211207013039.1868645-1-eric.dumazet@gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org X-Patchwork-Delegate: kuba@kernel.org From: Eric Dumazet Signed-off-by: Eric Dumazet Tested-by: Johannes Berg --- net/ethtool/netlink.c | 8 +++++--- net/ethtool/netlink.h | 2 ++ 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/net/ethtool/netlink.c b/net/ethtool/netlink.c index 38b44c0291b11af2c6d59c532c0c4ad4bba2ce27..eaa50af074be563cdac9d700cdb0f9d32a54252c 100644 --- a/net/ethtool/netlink.c +++ b/net/ethtool/netlink.c @@ -141,6 +141,7 @@ int ethnl_parse_header_dev_get(struct ethnl_req_info *req_info, } req_info->dev = dev; + netdev_tracker_alloc(dev, &req_info->dev_tracker, GFP_KERNEL); req_info->flags = flags; return 0; } @@ -399,7 +400,7 @@ static int ethnl_default_doit(struct sk_buff *skb, struct genl_info *info) ops->cleanup_data(reply_data); genlmsg_end(rskb, reply_payload); - dev_put(req_info->dev); + dev_put_track(req_info->dev, &req_info->dev_tracker); kfree(reply_data); kfree(req_info); return genlmsg_reply(rskb, info); @@ -411,7 +412,7 @@ static int ethnl_default_doit(struct sk_buff *skb, struct genl_info *info) if (ops->cleanup_data) ops->cleanup_data(reply_data); err_dev: - dev_put(req_info->dev); + dev_put_track(req_info->dev, &req_info->dev_tracker); kfree(reply_data); kfree(req_info); return ret; @@ -547,7 +548,7 @@ static int ethnl_default_start(struct netlink_callback *cb) * same parser as for non-dump (doit) requests is used, it * would take reference to the device if it finds one */ - dev_put(req_info->dev); + dev_put_track(req_info->dev, &req_info->dev_tracker); req_info->dev = NULL; } if (ret < 0) @@ -624,6 +625,7 @@ static void ethnl_default_notify(struct net_device *dev, unsigned int cmd, } req_info->dev = dev; + netdev_tracker_alloc(dev, &req_info->dev_tracker, GFP_KERNEL); req_info->flags |= ETHTOOL_FLAG_COMPACT_BITSETS; ethnl_init_reply_data(reply_data, ops, dev); diff --git a/net/ethtool/netlink.h b/net/ethtool/netlink.h index 490598e5eedd9a614bf64ced6be482523cad12cf..a779bbb0c524f00e7a798bc8448bebbd43b65488 100644 --- a/net/ethtool/netlink.h +++ b/net/ethtool/netlink.h @@ -222,6 +222,7 @@ static inline unsigned int ethnl_reply_header_size(void) /** * struct ethnl_req_info - base type of request information for GET requests * @dev: network device the request is for (may be null) + * @dev_tracker: refcount tracker for @dev reference * @flags: request flags common for all request types * * This is a common base for request specific structures holding data from @@ -230,6 +231,7 @@ static inline unsigned int ethnl_reply_header_size(void) */ struct ethnl_req_info { struct net_device *dev; + netdevice_tracker dev_tracker; u32 flags; }; From patchwork Tue Dec 7 01:30:38 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Eric Dumazet X-Patchwork-Id: 12660757 X-Patchwork-Delegate: kuba@kernel.org Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 88B44C4167E for ; Tue, 7 Dec 2021 01:33:37 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1351791AbhLGBfJ (ORCPT ); Mon, 6 Dec 2021 20:35:09 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33870 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1351719AbhLGBet (ORCPT ); Mon, 6 Dec 2021 20:34:49 -0500 Received: from mail-pg1-x532.google.com (mail-pg1-x532.google.com [IPv6:2607:f8b0:4864:20::532]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C68F5C061746 for ; Mon, 6 Dec 2021 17:31:19 -0800 (PST) Received: by mail-pg1-x532.google.com with SMTP id s137so12186167pgs.5 for ; Mon, 06 Dec 2021 17:31:19 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=5ugRFVe8tqZ8TG93H3WVUo6sMVqhA3hDza9SvXzL6EE=; b=YIiMjErUQuImCLb6v4ZU2iGnj+Zs9/oXrRdmPf/Up+NQFSuD5mc7gKRI9CjFKx/jkW 1Lz6JRFdqaLBBsBF8KhSQsUZ26cYHhtW0M2K57iRACMgEQW6GRrHueSesl9Ylne/3mrK Wu1FJ7e6YRhd8zCMjdw/XAgiQRpqRLWDiJPxf8sGe/flvyoJ/LktnpsxiU5nBFRFKvCC YPhdnj7W1ggpEo0Lh4UH5ILRHLbakca5pegUNtLUx3fSGF/VIe2uXTUiJcG+ulKSx+Sd Tj2xAi1eJwklgk/LnQRGERkBDh8CBS3bmIiMA3vG6ZP7apPSxqEtOUhhzjxeWkIdBORi HEew== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=5ugRFVe8tqZ8TG93H3WVUo6sMVqhA3hDza9SvXzL6EE=; b=Q6RH6XMmbB7OD336IqDG6liFhNdjAQWqcsr9vh8PmhRWWrW2eEyxoImWt9+L3zD/Do oEw0SE30g/S93L+2L2YYwy2Pmjzlaw2qfV/mbay9X5kcKIuAD4cvR2dsIqFyFfXJdXe3 uRhsK2rMwboEWX7kq6JyCflxlueh9FULQaUf+1ieBT5aUFlmaHi0ZrZe5leqxhTmQ4Jl aKZfOacAZWHXwDlW2JOYt6Ab+3FSC4ndq6QRXfElPla4azgWoHliqKuy6eXLqKxnRjD8 2zBMoJeeaTf9LclzBBvRltnD1Tp9Z1WYXTpxu9h+CTUAKVkY5mzYbyTxBMMxlOhs/2mq cC8A== X-Gm-Message-State: AOAM532Et4vyGkB/b0Tr7qhNyA9jvs5O9kzuwrJyjWqNvoGq/z77qask pkHPEO2PdIRmXCzY2RgXi4c= X-Google-Smtp-Source: ABdhPJw8jgBpdMqTxJjiVXiEhjWxo0oxNMz/ncAi3TB7G62G9Zcr8S0c6u+xv9e9+sBQ/Kefeqp+tQ== X-Received: by 2002:a05:6a00:2487:b0:4af:94c7:8aae with SMTP id c7-20020a056a00248700b004af94c78aaemr3026308pfv.31.1638840679337; Mon, 06 Dec 2021 17:31:19 -0800 (PST) Received: from edumazet1.svl.corp.google.com ([2620:15c:2c4:201:518c:39bf:c3e8:ffe2]) by smtp.gmail.com with ESMTPSA id u6sm13342907pfg.157.2021.12.06.17.31.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 06 Dec 2021 17:31:19 -0800 (PST) From: Eric Dumazet To: "David S . Miller" , Jakub Kicinski Cc: netdev , Eric Dumazet , Eric Dumazet Subject: [PATCH net-next 12/13] openvswitch: add net device refcount tracker to struct vport Date: Mon, 6 Dec 2021 17:30:38 -0800 Message-Id: <20211207013039.1868645-13-eric.dumazet@gmail.com> X-Mailer: git-send-email 2.34.1.400.ga245620fadb-goog In-Reply-To: <20211207013039.1868645-1-eric.dumazet@gmail.com> References: <20211207013039.1868645-1-eric.dumazet@gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org X-Patchwork-Delegate: kuba@kernel.org From: Eric Dumazet Signed-off-by: Eric Dumazet --- net/openvswitch/vport-netdev.c | 8 ++++---- net/openvswitch/vport.h | 2 ++ 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/net/openvswitch/vport-netdev.c b/net/openvswitch/vport-netdev.c index c1ad6699b1f89d9f00ba85a9f23c89b1661ec812..b498dac4e1e0046f6a325a1cdf0afa38c95ef722 100644 --- a/net/openvswitch/vport-netdev.c +++ b/net/openvswitch/vport-netdev.c @@ -82,7 +82,7 @@ struct vport *ovs_netdev_link(struct vport *vport, const char *name) err = -ENODEV; goto error_free_vport; } - + netdev_tracker_alloc(vport->dev, &vport->dev_tracker, GFP_KERNEL); if (vport->dev->flags & IFF_LOOPBACK || (vport->dev->type != ARPHRD_ETHER && vport->dev->type != ARPHRD_NONE) || @@ -115,7 +115,7 @@ struct vport *ovs_netdev_link(struct vport *vport, const char *name) error_unlock: rtnl_unlock(); error_put: - dev_put(vport->dev); + dev_put_track(vport->dev, &vport->dev_tracker); error_free_vport: ovs_vport_free(vport); return ERR_PTR(err); @@ -137,7 +137,7 @@ static void vport_netdev_free(struct rcu_head *rcu) { struct vport *vport = container_of(rcu, struct vport, rcu); - dev_put(vport->dev); + dev_put_track(vport->dev, &vport->dev_tracker); ovs_vport_free(vport); } @@ -173,7 +173,7 @@ void ovs_netdev_tunnel_destroy(struct vport *vport) */ if (vport->dev->reg_state == NETREG_REGISTERED) rtnl_delete_link(vport->dev); - dev_put(vport->dev); + dev_put_track(vport->dev, &vport->dev_tracker); vport->dev = NULL; rtnl_unlock(); diff --git a/net/openvswitch/vport.h b/net/openvswitch/vport.h index 8a930ca6d6b17d88c08536083c0d888cce3e99c2..9de5030d9801c7065a4cf5478cfc3778891a6535 100644 --- a/net/openvswitch/vport.h +++ b/net/openvswitch/vport.h @@ -58,6 +58,7 @@ struct vport_portids { /** * struct vport - one port within a datapath * @dev: Pointer to net_device. + * @dev_tracker: refcount tracker for @dev reference * @dp: Datapath to which this port belongs. * @upcall_portids: RCU protected 'struct vport_portids'. * @port_no: Index into @dp's @ports array. @@ -69,6 +70,7 @@ struct vport_portids { */ struct vport { struct net_device *dev; + netdevice_tracker dev_tracker; struct datapath *dp; struct vport_portids __rcu *upcall_portids; u16 port_no; From patchwork Tue Dec 7 01:30:39 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Eric Dumazet X-Patchwork-Id: 12660759 X-Patchwork-Delegate: kuba@kernel.org Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 9FE90C4167D for ; Tue, 7 Dec 2021 01:33:37 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1351784AbhLGBfI (ORCPT ); Mon, 6 Dec 2021 20:35:08 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33872 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231822AbhLGBeu (ORCPT ); Mon, 6 Dec 2021 20:34:50 -0500 Received: from mail-pf1-x431.google.com (mail-pf1-x431.google.com [IPv6:2607:f8b0:4864:20::431]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 2CB49C0613F8 for ; Mon, 6 Dec 2021 17:31:21 -0800 (PST) Received: by mail-pf1-x431.google.com with SMTP id 8so11836195pfo.4 for ; Mon, 06 Dec 2021 17:31:21 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=zBd5jniNUBoWcP1WUAWhYgrOff5AQ2Nwkrlj8LiKJvQ=; b=LasREC6htbu6VOqxLS01VFgT5iy4y9ahG8BSHMiFR9CqDYlFcoTLu0GyidTIZ+6ljk 19G0uT1oQveEVg6fnMbnbPvRMwZTH6iVC61yTCC9AVdcP62x/gnqlLNEby+HxNRhrU99 x4JfSnxuQbqPjfjJ/+6S8ivzR9ZeRG99FT4oUNAlXkGS3lw2ImvO3524u+7Wb5Adq6zo pKQmZg3QiKznKPGVqNNBH6f4/aSroo1n5hYk9yd4R6XUoAaZmdNUiK+zoq2SOD4Ga9Vp amAPX5mwn7IbNS1iYWso/41LV498dhz6VL8kJWEkTmMxHCSX0FTIsRVMkJZ/7Y+et3it 0nBA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=zBd5jniNUBoWcP1WUAWhYgrOff5AQ2Nwkrlj8LiKJvQ=; b=t9GwbegwIq2PWFkzGCxmvfB/CZ9KI/2cIWWFv7HMwZOcx0TizE/KXzcos55upm86yk NYf9dfGP7HqkvacVhrr9in95VgsibQT8bk5BzH+g867eP8n5mNqtyiSDWnk+Gp+lWjfL 6C2H5c1UJoLMcEDGxUuoxszSnfRYlzVB8IQhhiPZEdTdUQZIuHLoUbuw1T6Hk9k8o6RI lrqR3Ei3FzAk3+wy9Pm4sHDaNNJ+nPFsYfaDBnj59TDwcLe1cwYbgReoZrZef1AlbCNE zHt3j+sdfC+HVwi7cgRHVQbYKApgvMmLhzQ8hKh1hHaOKNhcZN0vT5A1uM5/9YNfqeIK BukQ== X-Gm-Message-State: AOAM533WHMFIgyb9Gs1iQ3mj0WXQoV1uI9Q4iVQKNErrgBmifnlPukyw Jp4ebJrmpcFfIE/JU/sCg+g= X-Google-Smtp-Source: ABdhPJz5kgsAVVmnhPIeiySCJO+cQDspf7hSdVkQAhvc3YWYNJZSN/NXHu1QMc8UTfaopywsa5CzQQ== X-Received: by 2002:a05:6a00:986:b0:4a2:c1fa:8899 with SMTP id u6-20020a056a00098600b004a2c1fa8899mr40399374pfg.61.1638840680726; Mon, 06 Dec 2021 17:31:20 -0800 (PST) Received: from edumazet1.svl.corp.google.com ([2620:15c:2c4:201:518c:39bf:c3e8:ffe2]) by smtp.gmail.com with ESMTPSA id u6sm13342907pfg.157.2021.12.06.17.31.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 06 Dec 2021 17:31:20 -0800 (PST) From: Eric Dumazet To: "David S . Miller" , Jakub Kicinski Cc: netdev , Eric Dumazet , Eric Dumazet Subject: [PATCH net-next 13/13] net: sched: act_mirred: add net device refcount tracker Date: Mon, 6 Dec 2021 17:30:39 -0800 Message-Id: <20211207013039.1868645-14-eric.dumazet@gmail.com> X-Mailer: git-send-email 2.34.1.400.ga245620fadb-goog In-Reply-To: <20211207013039.1868645-1-eric.dumazet@gmail.com> References: <20211207013039.1868645-1-eric.dumazet@gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org X-Patchwork-Delegate: kuba@kernel.org From: Eric Dumazet Signed-off-by: Eric Dumazet --- include/net/tc_act/tc_mirred.h | 1 + net/sched/act_mirred.c | 18 ++++++++++-------- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/include/net/tc_act/tc_mirred.h b/include/net/tc_act/tc_mirred.h index 1cace4c69e4450963e5392a555d7b3fd9f10456d..32ce8ea36950e86745cc1d31f49e69962ff2c6ee 100644 --- a/include/net/tc_act/tc_mirred.h +++ b/include/net/tc_act/tc_mirred.h @@ -10,6 +10,7 @@ struct tcf_mirred { int tcfm_eaction; bool tcfm_mac_header_xmit; struct net_device __rcu *tcfm_dev; + netdevice_tracker tcfm_dev_tracker; struct list_head tcfm_list; }; #define to_mirred(a) ((struct tcf_mirred *)a) diff --git a/net/sched/act_mirred.c b/net/sched/act_mirred.c index efc963ab995a333ab21ec3d00884097c6a10a2b4..952416bd65e6ae00fe048a32b37252d1ed13ef0a 100644 --- a/net/sched/act_mirred.c +++ b/net/sched/act_mirred.c @@ -79,7 +79,7 @@ static void tcf_mirred_release(struct tc_action *a) /* last reference to action, no need to lock */ dev = rcu_dereference_protected(m->tcfm_dev, 1); - dev_put(dev); + dev_put_track(dev, &m->tcfm_dev_tracker); } static const struct nla_policy mirred_policy[TCA_MIRRED_MAX + 1] = { @@ -101,7 +101,6 @@ static int tcf_mirred_init(struct net *net, struct nlattr *nla, bool mac_header_xmit = false; struct tc_mirred *parm; struct tcf_mirred *m; - struct net_device *dev; bool exists = false; int ret, err; u32 index; @@ -171,16 +170,19 @@ static int tcf_mirred_init(struct net *net, struct nlattr *nla, spin_lock_bh(&m->tcf_lock); if (parm->ifindex) { - dev = dev_get_by_index(net, parm->ifindex); - if (!dev) { + struct net_device *odev, *ndev; + + ndev = dev_get_by_index(net, parm->ifindex); + if (!ndev) { spin_unlock_bh(&m->tcf_lock); err = -ENODEV; goto put_chain; } - mac_header_xmit = dev_is_mac_header_xmit(dev); - dev = rcu_replace_pointer(m->tcfm_dev, dev, + mac_header_xmit = dev_is_mac_header_xmit(ndev); + odev = rcu_replace_pointer(m->tcfm_dev, ndev, lockdep_is_held(&m->tcf_lock)); - dev_put(dev); + dev_put_track(odev, &m->tcfm_dev_tracker); + netdev_tracker_alloc(ndev, &m->tcfm_dev_tracker, GFP_ATOMIC); m->tcfm_mac_header_xmit = mac_header_xmit; } goto_ch = tcf_action_set_ctrlact(*a, parm->action, goto_ch); @@ -400,7 +402,7 @@ static int mirred_device_event(struct notifier_block *unused, list_for_each_entry(m, &mirred_list, tcfm_list) { spin_lock_bh(&m->tcf_lock); if (tcf_mirred_dev_dereference(m) == dev) { - dev_put(dev); + dev_put_track(dev, &m->tcfm_dev_tracker); /* Note : no rcu grace period necessary, as * net_device are already rcu protected. */