Linux ATA/IDE development
 help / color / mirror / Atom feed
From: Niklas Cassel <cassel@kernel.org>
To: Bart Van Assche <bvanassche@acm.org>
Cc: linux-ide@vger.kernel.org, Damien Le Moal <dlemoal@kernel.org>,
	Marco Elver <elver@google.com>, Frank Li <Frank.Li@nxp.com>,
	Sascha Hauer <s.hauer@pengutronix.de>,
	Viresh Kumar <vireshk@kernel.org>,
	Mikael Pettersson <mikpelinux@gmail.com>,
	Nathan Chancellor <nathan@kernel.org>
Subject: Re: [PATCH v3] ata: libata: Document when host->eh_mutex should be held
Date: Wed, 27 May 2026 22:55:38 +0200	[thread overview]
Message-ID: <ahdaSvf_ydZ8TdiR@ryzen> (raw)
In-Reply-To: <e95c0eb43a8297c9ab5e220341512882f8648512.1779913278.git.bvanassche@acm.org>

Hello Bart,

On Wed, May 27, 2026 at 01:25:20PM -0700, Bart Van Assche wrote:
> Annotate the following functions with __must_hold(&host->eh_mutex):
>  * All ata_port_operations.error_handler() implementations.
>  * ata_eh_reset() and ata_eh_recover() because these functions call
>    ata_eh_release() and ata_eh_acquire().
>  * All callers of ata_eh_reset() and ata_eh_recover().
> 
> Enable Clang's context analysis. This will cause the build to fail if
> e.g. a locking bug would be introduced in an error path. This patch
> should not affect the generated assembler code.
> 
> Note: although the Linux kernel documentation specifies 22 as minimal
> version for Clang for context analysis support, annotating function
> pointers is a Clang 23 feature. As one can see here, a patch has been
> queued that fixes the kernel documentation:
> https://lore.kernel.org/all/177926568868.711.3058599932884307249.tip-bot2@tip-bot2/
> 
> Signed-off-by: Bart Van Assche <bvanassche@acm.org>
> ---
> 
> Changes compared to v2:
>  - Instead of annotating only function declarations, annotate both function
>    declarations and function definitions.
>  - Changed __assume_ctx_lock() into lockdep_assert_held().
>  - Left out the host lock changes because there is no agreement about how to
>    annotate functions that expect that the host lock is held.

I am happy with this patch, and think that it is basically ready to be
merged as it is.

It only adds two lockdep_assert_held() calls, so that seems okay,
considering that it is not a crazy amount.


Now for ap->lock: It would be a shame if the work you did on ap->lock
annotations were to go to waste.

In:
https://lore.kernel.org/linux-ide/fcc80572-88da-4e16-ad09-69819f43cd73@acm.org/

You said that you would leave out the patches that adds an "ap" argument to
several functions. That sounds good.

If we go with the option to not add "ap" arguments everywhere, how many
lockdep_assert_held() calls would a patch that adds ap->lock annotations
need to add?

If it is not a crazy number, I think we should just do it.


Kind regards,
Niklas

  reply	other threads:[~2026-05-27 20:55 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-05-27 20:25 [PATCH v3] ata: libata: Document when host->eh_mutex should be held Bart Van Assche
2026-05-27 20:55 ` Niklas Cassel [this message]
2026-05-27 21:09   ` Bart Van Assche
2026-05-27 20:57 ` sashiko-bot
2026-05-28  6:57   ` Niklas Cassel
2026-05-27 22:28 ` Damien Le Moal
2026-05-28  6:58 ` Hannes Reinecke

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=ahdaSvf_ydZ8TdiR@ryzen \
    --to=cassel@kernel.org \
    --cc=Frank.Li@nxp.com \
    --cc=bvanassche@acm.org \
    --cc=dlemoal@kernel.org \
    --cc=elver@google.com \
    --cc=linux-ide@vger.kernel.org \
    --cc=mikpelinux@gmail.com \
    --cc=nathan@kernel.org \
    --cc=s.hauer@pengutronix.de \
    --cc=vireshk@kernel.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