From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-1.1 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_PASS autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 98B8CC43381 for ; Mon, 4 Mar 2019 14:24:14 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 59359206BA for ; Mon, 4 Mar 2019 14:24:14 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=Mellanox.com header.i=@Mellanox.com header.b="gOj7MobX" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726750AbfCDOYN (ORCPT ); Mon, 4 Mar 2019 09:24:13 -0500 Received: from mail-eopbgr80053.outbound.protection.outlook.com ([40.107.8.53]:48384 "EHLO EUR04-VI1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726531AbfCDOYM (ORCPT ); Mon, 4 Mar 2019 09:24:12 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Mellanox.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=DThujtYqMmKv4q0yKdk4vr9wUSUFZ6uxEUEKLx1gRG0=; b=gOj7MobXa5xoVesVU75fzDYXnzEl8ME5RAnNQcmEMMHWxRnwMNHi8W7FAUYVQAT9vqjJvMl4VNoHUwos/u2GpNve2sTbLOjr2Lnl9yoUdud6a1I3t74QydA4Kzx/XdKyn5Uhk1F3Z7fWKvSrKtz71vJ0HxhjGFiDawBfhYs0ZSk= Received: from HE1PR0502MB3641.eurprd05.prod.outlook.com (10.167.127.11) by HE1PR0502MB3612.eurprd05.prod.outlook.com (10.167.126.158) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1665.19; Mon, 4 Mar 2019 14:24:06 +0000 Received: from HE1PR0502MB3641.eurprd05.prod.outlook.com ([fe80::b03d:8cd4:d259:f749]) by HE1PR0502MB3641.eurprd05.prod.outlook.com ([fe80::b03d:8cd4:d259:f749%6]) with mapi id 15.20.1665.019; Mon, 4 Mar 2019 14:24:06 +0000 From: Vlad Buslov To: Stefano Brivio CC: "netdev@vger.kernel.org" , "jhs@mojatatu.com" , "xiyou.wangcong@gmail.com" , "jiri@resnulli.us" , "davem@davemloft.net" Subject: Re: [PATCH net-next v2 04/12] net: sched: flower: track filter deletion with flag Thread-Topic: [PATCH net-next v2 04/12] net: sched: flower: track filter deletion with flag Thread-Index: AQHUzoT+U/1n2RaNME+/nbT3HRvgOKX3dlaAgAQYc4A= Date: Mon, 4 Mar 2019 14:24:05 +0000 Message-ID: References: <20190227101226.26196-1-vladbu@mellanox.com> <20190227101226.26196-5-vladbu@mellanox.com> <20190302005129.4d4508c9@redhat.com> In-Reply-To: <20190302005129.4d4508c9@redhat.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: LO2P265CA0346.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:d::22) To HE1PR0502MB3641.eurprd05.prod.outlook.com (2603:10a6:7:85::11) authentication-results: spf=none (sender IP is ) smtp.mailfrom=vladbu@mellanox.com; x-ms-exchange-messagesentrepresentingtype: 1 x-originating-ip: [37.142.13.130] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: cdd12f52-b1da-4826-f373-08d6a0ad0e76 x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0;PCL:0;RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600127)(711020)(4605104)(4618075)(2017052603328)(7153060)(7193020);SRVR:HE1PR0502MB3612; x-ms-traffictypediagnostic: HE1PR0502MB3612: x-microsoft-exchange-diagnostics: =?iso-8859-1?Q?1;HE1PR0502MB3612;23:Qg23OOCPFfSwCA3XSpqnxiYVXQz2vrGHJpD9i?= =?iso-8859-1?Q?Jj0ILg3zVfijHuqg9Q9304PPTu1q1fRMelazl9HWS5JkmQBqXQxv4IsstA?= =?iso-8859-1?Q?X3D58kGpb7dPFn+IQ8QqQ7ZVPEOFpugFNR1SvlYMqh/tgfzvETXsDipckj?= =?iso-8859-1?Q?kIQxFBCtHwaFYoCSI80qh7xC8g5vVaIC0TIMI73lSkxREpY1Y1WXvqlOHr?= =?iso-8859-1?Q?dotP8iIC25A/gqwqKbfSF4+xJ041tQnqHRdyRxk2T1G9NPezXdlMH2ovIT?= =?iso-8859-1?Q?l4XCT4RJuAMhmMopy5z0nqHCUABKPp2PMLtWe3KfY0F0IxPKjfHuaWf3WM?= =?iso-8859-1?Q?Nae3RSYnP/mb/1BlcY5jQf/qqbMTmToSjYXPvVdJuxNjGWQcH84wH1CuBu?= =?iso-8859-1?Q?5DsgskcCaBakNNzxQgBYY/eH7VJBUnPgHdfr+inJSaP+Owt+SdCcIfbMLA?= =?iso-8859-1?Q?17q641azaSOeDCeFOS7qrKmVh1nA4YzGlYy/4v76uYfnACEQPX2NyB2mn9?= =?iso-8859-1?Q?YGcMj4zXN1JC9ySG1XBlooKb3rgH1qMR2879stWjG738mNZVCsBuB80zLJ?= =?iso-8859-1?Q?7OlY/4js1Nt/n8fsWeEMo+NZf9FsOgXPfP98hkoip3CyUBHI2sAeSH6cs8?= =?iso-8859-1?Q?rfzgiRiCKyRRfT/YKh9p8YcYP2aee7pXkgSVDvmGj7+ZbjffOMvlLcRpG/?= =?iso-8859-1?Q?tLH39qNoCdm4fqwsiqNddCFZw2amCZjOL+pC6NRrd/V3Ro8omTVhARavJZ?= =?iso-8859-1?Q?Ejr1QgGqERw7KC2Avgdce6Ay9KpfYHvOysRa0w7pghnizhtj6v1pbfJCyj?= =?iso-8859-1?Q?O92wnjtgfP0bn63eW7TlifL+7MLKzBOgEG1/yXKbSrHpMcOQ8OvIP2lMez?= =?iso-8859-1?Q?GzC+YYD+Ksxw9xT5WyWuF+CvR3b6DqEgAd/jF68SSm3f2yxObBjE/BtISZ?= =?iso-8859-1?Q?ADynX3B10iLM66PU8lhcXoHA0pkho+0pOr4xkt7+qZ+gw1cPV6a6vu/QHz?= =?iso-8859-1?Q?340HJaKqOlcnBXyIat8skwwsDGBg69UyiPBY+AKnBTA2nae3pfxSOq5Sm5?= =?iso-8859-1?Q?uogV7KXMk1Hr5jEPh8PYti5gAlKFZxMmnkf6WulVOdPqw5K/gf5gdDcZLf?= =?iso-8859-1?Q?ycjxkmpBM8TC5uVIoJdo5pdlvJD0SC04gzlMEoKwPiVxKyxkRpfeJ0eIT9?= =?iso-8859-1?Q?lvdlyxk37NvxPNSGomxvnaGqVqHSh0GSYKj3rPxNvbwyewhMAKLMr4tcyV?= =?iso-8859-1?Q?QeXn0GyBvy7ShtNX8RQ3PdzhOw9ZtX4EkQUJ4wN1w=3D=3D?= x-microsoft-antispam-prvs: x-forefront-prvs: 09669DB681 x-forefront-antispam-report: SFV:NSPM;SFS:(10009020)(346002)(376002)(136003)(39860400002)(366004)(396003)(199004)(189003)(26005)(25786009)(486006)(476003)(2616005)(446003)(11346002)(99286004)(6116002)(3846002)(186003)(14454004)(478600001)(81166006)(81156014)(316002)(8676002)(76176011)(7736002)(6506007)(386003)(4326008)(106356001)(105586002)(53936002)(6512007)(6246003)(66066001)(52116002)(54906003)(305945005)(229853002)(6436002)(36756003)(102836004)(6486002)(8936002)(68736007)(71200400001)(97736004)(14444005)(86362001)(5660300002)(256004)(2906002)(71190400001)(6916009);DIR:OUT;SFP:1101;SCL:1;SRVR:HE1PR0502MB3612;H:HE1PR0502MB3641.eurprd05.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;A:1;MX:1; received-spf: None (protection.outlook.com: mellanox.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: 0rRqIVddii9p3/IzwiV3JaDriHtKKMa7a75OFMz3B0rV3+aR0MOZ4BPthO26N9zqIth35B3YKGD+pSY4QeMq3SmsWlTZrKJ6LMl9HJ+NlFsxkrKCrPKA5tHV9FqnY5+chqz4l7imEv9Le8jE/MQYF8dWlHXTZVVOvVLixa0aGCy1To1Fl1L0QlttseN+1OsBCLP0Tg3gwvIdiOukpl68chl24e48HQoH1QMR5gJhNwUyZDqgUcH8zX4SKrXJ6YBlBAImGAsiphun4P7yscC5Df8Uh4cRE15e/I/vHCe8pFXgL9d4lE1MbMaxe98yIwGJPMO6FR8aLnVKFc9P46vxtnsTuJXUuK+siuRy8Y4Tc5k5owshQN1EorWG52AJFr/ECn6opcrB+IvAL/51Cz+8o+Dc9R3I6H7MU5WRDmed9lM= Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-Network-Message-Id: cdd12f52-b1da-4826-f373-08d6a0ad0e76 X-MS-Exchange-CrossTenant-originalarrivaltime: 04 Mar 2019 14:24:05.5229 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR0502MB3612 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org On Fri 01 Mar 2019 at 23:51, Stefano Brivio wrote: > Hi Vlad, > > On Wed, 27 Feb 2019 12:12:18 +0200 > Vlad Buslov wrote: > >> -static bool __fl_delete(struct tcf_proto *tp, struct cls_fl_filter *f, >> - struct netlink_ext_ack *extack) >> +static int __fl_delete(struct tcf_proto *tp, struct cls_fl_filter *f, >> + bool *last, struct netlink_ext_ack *extack) >> { >> struct cls_fl_head *head =3D fl_head_dereference(tp); >> bool async =3D tcf_exts_get_net(&f->exts); >> - bool last; >> =20 >> + *last =3D false; >> + >> + if (f->deleted) >> + return -ENOENT; >> + >> + f->deleted =3D true; > > Now that I can read this more easily :) I have a doubt: you say this > flag "prevent[s] double deletion of filter by concurrent tasks". > > However, if this has no further protections (which I can't readily > see), I think this is racy: > > task 1 task 2 > if (f->deleted) [false] > if (f->deleted) [false] > f->deleted =3D true; f->deleted =3D true; > > what am I missing here? Of course! Lock is added in "[PATCH net-next v2 10/12] net: sched: flower: protect flower classifier state with spinlock". This is safe to do because everything is still protected by rtnl mutex until last patch in this series sets the TCF_PROTO_OPS_DOIT_UNLOCKED flag for flower.