From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jiri Pirko Subject: Re: [PATCH v3 08/11] net: sched: don't release reference on action overwrite Date: Mon, 28 May 2018 16:27:38 +0200 Message-ID: <20180528142738.GE2173@nanopsycho> References: <20180527175739.GA3337@nanopsycho> <1527455849-22327-1-git-send-email-vladbu@mellanox.com> <1527455849-22327-9-git-send-email-vladbu@mellanox.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: netdev@vger.kernel.org, jhs@mojatatu.com, xiyou.wangcong@gmail.com, davem@davemloft.net, ast@kernel.org, daniel@iogearbox.net, kliteyn@mellanox.com To: Vlad Buslov Return-path: Received: from mail-wm0-f44.google.com ([74.125.82.44]:35283 "EHLO mail-wm0-f44.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1165729AbeE1O2D (ORCPT ); Mon, 28 May 2018 10:28:03 -0400 Received: by mail-wm0-f44.google.com with SMTP id o78-v6so32673743wmg.0 for ; Mon, 28 May 2018 07:28:02 -0700 (PDT) Content-Disposition: inline In-Reply-To: <1527455849-22327-9-git-send-email-vladbu@mellanox.com> Sender: netdev-owner@vger.kernel.org List-ID: Sun, May 27, 2018 at 11:17:26PM CEST, vladbu@mellanox.com wrote: >Return from action init function with reference to action taken, >even when overwriting existing action. > >Action init API initializes its fourth argument (pointer to pointer to tc >action) to either existing action with same index or newly created action. >In case of existing index(and bind argument is zero), init function returns >without incrementing action reference counter. Caller of action init then >proceeds working with action, without actually holding reference to it. >This means that action could be deleted concurrently. > >Change action init behavior to always take reference to action before >returning successfully, in order to protect from concurrent deletion. > >Signed-off-by: Vlad Buslov Signed-off-by: Jiri Pirko