Linux-Tegra Archive mirror
 help / color / mirror / Atom feed
From: Dan Carpenter <dan.carpenter@linaro.org>
To: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
Cc: "Ricardo Ribalda" <ribalda@chromium.org>,
	"Martin Tuma" <martin.tuma@digiteqautomotive.com>,
	"Mauro Carvalho Chehab" <mchehab@kernel.org>,
	"Laurent Pinchart" <laurent.pinchart@ideasonboard.com>,
	"Hans Verkuil" <hverkuil-cisco@xs4all.nl>,
	"Hugues Fruchet" <hugues.fruchet@foss.st.com>,
	"Alain Volmat" <alain.volmat@foss.st.com>,
	"Maxime Coquelin" <mcoquelin.stm32@gmail.com>,
	"Alexandre Torgue" <alexandre.torgue@foss.st.com>,
	"Paul Kocialkowski" <paul.kocialkowski@bootlin.com>,
	"Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
	"Chen-Yu Tsai" <wens@csie.org>,
	"Jernej Skrabec" <jernej.skrabec@gmail.com>,
	"Samuel Holland" <samuel@sholland.org>,
	"Sakari Ailus" <sakari.ailus@linux.intel.com>,
	"Thierry Reding" <thierry.reding@gmail.com>,
	"Jonathan Hunter" <jonathanh@nvidia.com>,
	"Sowjanya Komatineni" <skomatineni@nvidia.com>,
	"Luca Ceresoli" <luca.ceresoli@bootlin.com>,
	"Matthias Brugger" <matthias.bgg@gmail.com>,
	"AngeloGioacchino Del Regno"
	<angelogioacchino.delregno@collabora.com>,
	"Hans Verkuil" <hverkuil@xs4all.nl>,
	"Sergey Kozlov" <serjk@netup.ru>,
	"Abylay Ospan" <aospan@netup.ru>,
	"Ezequiel Garcia" <ezequiel@vanguardiasur.com.ar>,
	"Dmitry Osipenko" <digetx@gmail.com>,
	"Stanimir Varbanov" <stanimir.k.varbanov@gmail.com>,
	"Vikash Garodia" <quic_vgarodia@quicinc.com>,
	"Bjorn Andersson" <andersson@kernel.org>,
	"Konrad Dybcio" <konrad.dybcio@linaro.org>,
	"Benjamin Mugnier" <benjamin.mugnier@foss.st.com>,
	"Sylvain Petinot" <sylvain.petinot@foss.st.com>,
	"Jacopo Mondi" <jacopo+renesas@jmondi.org>,
	"Kieran Bingham" <kieran.bingham+renesas@ideasonboard.com>,
	"Laurent Pinchart" <laurent.pinchart+renesas@ideasonboard.com>,
	"Niklas Söderlund" <niklas.soderlund+renesas@ragnatech.se>,
	"Pavel Machek" <pavel@ucw.cz>,
	linux-media@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-stm32@st-md-mailman.stormreply.com,
	linux-arm-kernel@lists.infradead.org,
	linux-staging@lists.linux.dev, linux-sunxi@lists.linux.dev,
	linux-tegra@vger.kernel.org, linux-mediatek@lists.infradead.org,
	linux-arm-msm@vger.kernel.org
Subject: Re: [PATCH 11/35] media: s2255: Use refcount_t instead of atomic_t for num_channels
Date: Tue, 23 Apr 2024 16:22:12 +0300	[thread overview]
Message-ID: <cf050593-44c2-4b4b-8198-215455c630f9@moroto.mountain> (raw)
In-Reply-To: <d13fd47e-1ecd-4aa8-844b-cd260e9fa437@linaro.org>

On Tue, Apr 23, 2024 at 01:43:49PM +0100, Bryan O'Donoghue wrote:
> On 15/04/2024 20:34, Ricardo Ribalda wrote:
> > Use an API that resembles more the actual use of num_channels.
> > 
> > Found by cocci:
> > drivers/media/usb/s2255/s2255drv.c:2362:5-24: WARNING: atomic_dec_and_test variation before object free at line 2363.
> > drivers/media/usb/s2255/s2255drv.c:1557:5-24: WARNING: atomic_dec_and_test variation before object free at line 1558.
> 
> Hmm, that commit log needs more detail.
> 
> "Convert from atomic_t to refcount_t because refcount_t has memory ordering
> guarantees which atomic does not, hence the WARNING for the free after the
> atomic dec."
> 

The memory ordering rules are the same.  They're basically identical.
The difference is that if you decrement a refcount_t past zero it will
trigger an error and refuse but atomic_t will merrily keep decrementing
forever.  With refcount_t you can still have a use after free bug but
afterward the double free will trigger a warning.

There are time where people use atomic_t to get unique number and don't
care about wrapping so that's fine.  But if it's reference counting then
use refcount_t.

There wouldn't be a Fixes tag in this case, because hopefully it's just
hardenning and not a bugfix.

regards,
dan carpenter

  reply	other threads:[~2024-04-23 13:22 UTC|newest]

Thread overview: 80+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-04-15 19:34 [PATCH 00/35] media: Fix coccinelle warning/errors Ricardo Ribalda
2024-04-15 19:34 ` [PATCH 01/35] media: pci: mgb4: Refactor struct resources Ricardo Ribalda
2024-04-16 11:30   ` Martin Tůma
2024-04-15 19:34 ` [PATCH 02/35] media: stb0899: Remove unreacheable code Ricardo Ribalda
2024-04-16  7:32   ` Dan Carpenter
2024-04-15 19:34 ` [PATCH 03/35] media: uvcvideo: Refactor iterators Ricardo Ribalda
2024-04-16  4:39   ` Sergey Senozhatsky
2024-04-16  5:08     ` Sergey Senozhatsky
2024-04-16  7:03   ` Markus Elfring
2024-04-16  7:15     ` Greg Kroah-Hartman
2024-04-18 11:04   ` Laurent Pinchart
2024-04-15 19:34 ` [PATCH 04/35] media: uvcvideo: Use max() macro Ricardo Ribalda
2024-04-15 21:06   ` Kieran Bingham
2024-04-16  4:41   ` Sergey Senozhatsky
2024-04-18 10:54   ` Laurent Pinchart
2024-04-15 19:34 ` [PATCH 05/35] media: go7007: Use min and max macros Ricardo Ribalda
2024-04-15 19:34 ` [PATCH 06/35] media: stm32-dcmipp: Remove redundant printk Ricardo Ribalda
2024-04-16  7:30   ` Dan Carpenter
2024-04-15 19:34 ` [PATCH 07/35] media: staging: sun6i-isp: " Ricardo Ribalda
2024-04-15 20:43   ` Jernej Škrabec
2024-04-16  7:37   ` Dan Carpenter
2024-04-15 19:34 ` [PATCH 08/35] media: dvb-frontends: tda18271c2dd: Remove casting during div Ricardo Ribalda
2024-04-15 19:34 ` [PATCH 09/35] media: v4l: async: refactor v4l2_async_create_ancillary_links Ricardo Ribalda
2024-04-16  7:44   ` Dan Carpenter
2024-04-15 19:34 ` [PATCH 10/35] staging: media: tegra-video: Use swap macro Ricardo Ribalda
2024-04-16  2:03   ` Luca Ceresoli
2024-04-15 19:34 ` [PATCH 11/35] media: s2255: Use refcount_t instead of atomic_t for num_channels Ricardo Ribalda
2024-04-23 12:43   ` Bryan O'Donoghue
2024-04-23 13:22     ` Dan Carpenter [this message]
2024-04-15 19:34 ` [PATCH 12/35] media: platform: mtk-mdp3: Use refcount_t for job_count Ricardo Ribalda
2024-04-23 12:46   ` Bryan O'Donoghue
2024-04-15 19:34 ` [PATCH 13/35] media: common: saa7146: Use min macro Ricardo Ribalda
2024-04-23 12:49   ` Bryan O'Donoghue
2024-04-15 19:34 ` [PATCH 14/35] media: dvb-frontends: drx39xyj: " Ricardo Ribalda
2024-04-23 16:40   ` Bryan O'Donoghue
2024-04-15 19:34 ` [PATCH 15/35] media: netup_unidvb: " Ricardo Ribalda
2024-04-15 19:34 ` [PATCH 16/35] media: au0828: " Ricardo Ribalda
2024-04-15 19:34 ` [PATCH 17/35] media: flexcop-usb: " Ricardo Ribalda
2024-04-15 19:34 ` [PATCH 18/35] media: gspca: cpia1: " Ricardo Ribalda
2024-04-15 19:34 ` [PATCH 19/35] media: stk1160: " Ricardo Ribalda
2024-04-23 16:42   ` Bryan O'Donoghue
2024-04-15 19:34 ` [PATCH 20/35] media: tegra-vde: Refactor timeout handling Ricardo Ribalda
2024-04-15 19:34 ` [PATCH 21/35] media: venus: Use div64_u64 Ricardo Ribalda
2024-04-16  7:57   ` Dan Carpenter
2024-04-15 19:34 ` [PATCH 22/35] media: i2c: st-mipid02: Use the correct div function Ricardo Ribalda
2024-04-17 12:55   ` Benjamin Mugnier
2024-04-15 19:34 ` [PATCH 23/35] media: dvb-frontends: tda10048: Use the right div Ricardo Ribalda
2024-04-16 10:10   ` Dan Carpenter
2024-04-16 10:27     ` Dan Carpenter
2024-04-23  9:55       ` Dan Carpenter
2024-04-29 11:39         ` Ricardo Ribalda
2024-04-16 10:39     ` Ricardo Ribalda
2024-04-16 10:56       ` Dan Carpenter
2024-04-15 19:34 ` [PATCH 24/35] media: tc358746: Use the correct div_ function Ricardo Ribalda
2024-04-15 19:34 ` [PATCH 25/35] media: venus: " Ricardo Ribalda
2024-04-17  8:36   ` Dan Carpenter
2024-04-15 19:34 ` [PATCH 26/35] media: venus: Refator return path Ricardo Ribalda
2024-04-23 16:49   ` Bryan O'Donoghue
2024-04-15 19:34 ` [PATCH 27/35] media: dib0700: " Ricardo Ribalda
2024-04-15 19:34 ` [PATCH 28/35] media: usb: cx231xx: " Ricardo Ribalda
2024-04-15 19:34 ` [PATCH 29/35] media: i2c: rdacm20: " Ricardo Ribalda
2024-04-15 19:34 ` [PATCH 30/35] media: i2c: et8ek8: " Ricardo Ribalda
2024-04-15 19:34 ` [PATCH 31/35] media: cx231xx: " Ricardo Ribalda
2024-04-15 19:34 ` [PATCH 32/35] media: si4713: " Ricardo Ribalda
2024-04-15 19:34 ` [PATCH 33/35] media: ttpci: " Ricardo Ribalda
2024-04-15 19:34 ` [PATCH 34/35] media: hdpvr: " Ricardo Ribalda
2024-04-15 19:34 ` [PATCH 35/35] media: venus: " Ricardo Ribalda
2024-04-15 19:53 ` [PATCH 00/35] media: Fix coccinelle warning/errors Laurent Pinchart
2024-04-15 19:58   ` Ricardo Ribalda
2024-04-15 20:33     ` Niklas Söderlund
2024-04-15 21:16       ` Ricardo Ribalda
2024-04-15 21:38         ` Niklas Söderlund
2024-04-16  7:08           ` Laurent Pinchart
2024-04-16  7:59             ` Julia Lawall
2024-04-16  8:47 ` Dan Carpenter
2024-04-17 15:51   ` Laurent Pinchart
2024-04-17 16:19     ` Ricardo Ribalda
2024-04-18 10:53       ` Laurent Pinchart
2024-04-18 14:51         ` Ricardo Ribalda
2024-04-18 15:46           ` Laurent Pinchart

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=cf050593-44c2-4b4b-8198-215455c630f9@moroto.mountain \
    --to=dan.carpenter@linaro.org \
    --cc=alain.volmat@foss.st.com \
    --cc=alexandre.torgue@foss.st.com \
    --cc=andersson@kernel.org \
    --cc=angelogioacchino.delregno@collabora.com \
    --cc=aospan@netup.ru \
    --cc=benjamin.mugnier@foss.st.com \
    --cc=bryan.odonoghue@linaro.org \
    --cc=digetx@gmail.com \
    --cc=ezequiel@vanguardiasur.com.ar \
    --cc=gregkh@linuxfoundation.org \
    --cc=hugues.fruchet@foss.st.com \
    --cc=hverkuil-cisco@xs4all.nl \
    --cc=hverkuil@xs4all.nl \
    --cc=jacopo+renesas@jmondi.org \
    --cc=jernej.skrabec@gmail.com \
    --cc=jonathanh@nvidia.com \
    --cc=kieran.bingham+renesas@ideasonboard.com \
    --cc=konrad.dybcio@linaro.org \
    --cc=laurent.pinchart+renesas@ideasonboard.com \
    --cc=laurent.pinchart@ideasonboard.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-media@vger.kernel.org \
    --cc=linux-mediatek@lists.infradead.org \
    --cc=linux-staging@lists.linux.dev \
    --cc=linux-stm32@st-md-mailman.stormreply.com \
    --cc=linux-sunxi@lists.linux.dev \
    --cc=linux-tegra@vger.kernel.org \
    --cc=luca.ceresoli@bootlin.com \
    --cc=martin.tuma@digiteqautomotive.com \
    --cc=matthias.bgg@gmail.com \
    --cc=mchehab@kernel.org \
    --cc=mcoquelin.stm32@gmail.com \
    --cc=niklas.soderlund+renesas@ragnatech.se \
    --cc=paul.kocialkowski@bootlin.com \
    --cc=pavel@ucw.cz \
    --cc=quic_vgarodia@quicinc.com \
    --cc=ribalda@chromium.org \
    --cc=sakari.ailus@linux.intel.com \
    --cc=samuel@sholland.org \
    --cc=serjk@netup.ru \
    --cc=skomatineni@nvidia.com \
    --cc=stanimir.k.varbanov@gmail.com \
    --cc=sylvain.petinot@foss.st.com \
    --cc=thierry.reding@gmail.com \
    --cc=wens@csie.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).