From: Alexandra Winter <wintera@linux.ibm.com>
To: netdev-bot+sashiko@kernel.org
Cc: alibuda@linux.alibaba.com, dust.li@linux.alibaba.com,
sidraya@linux.ibm.com, mjambigi@linux.ibm.com,
davem@davemloft.net, kuba@kernel.org, pabeni@redhat.com,
edumazet@google.com, andrew+netdev@lunn.ch,
tonylu@linux.alibaba.com, guwen@linux.alibaba.com,
netdev@vger.kernel.org, linux-s390@vger.kernel.org,
linux-kernel@vger.kernel.org, hca@linux.ibm.com,
gor@linux.ibm.com, agordeev@linux.ibm.com,
borntraeger@linux.ibm.com, svens@linux.ibm.com, horms@kernel.org
Subject: Re: [PATCH net-next] dibs: Avoid inconsistent lockstate warning in dibs_lo_move_data()
Date: Tue, 8 Sep 2026 19:04:36 +0200 [thread overview]
Message-ID: <a5ffb5d2-4509-4e73-af0d-aad4b1cc9412@linux.ibm.com> (raw)
In-Reply-To: <178887153533.219967.1817289806507440884@kernel.org>
On 08.09.26 14:45, netdev-bot+sashiko@kernel.org wrote:
> Thank you for your contribution! Sashiko AI review found 1 potential
> issue(s) to consider:
>
> Critical: 0 · High: 0 · Medium: 1 · Low: 0
>
> - [Medium] The patch fixes an observable lockdep "inconsistent lock
> state" splat produced by the plain spin_lock(&dibs->lock) in…
>
> --
>
> Here is the report.
>
> dibs: Avoid inconsistent lockstate warning in dibs_lo_move_data()
>
> This converts the plain spin_lock()/spin_unlock() around the
> dibs->subs[]->ops->handle_irq() call in dibs_lo_move_data() to
> spin_lock_irqsave()/spin_unlock_irqrestore(), because the same lock is
> also taken from hardirq context in ism_handle_irq(). The commit message
> notes this is not a real deadlock since dibs_lo devices have no interrupt
> context.
>
>> diff --git a/drivers/dibs/dibs_loopback.c b/drivers/dibs/dibs_loopback.c
>> index 649e4e375be33..44a2e74c2efcb 100644
>> --- a/drivers/dibs/dibs_loopback.c
>> +++ b/drivers/dibs/dibs_loopback.c
>
> [ ... ]
>
>> @@ -267,12 +268,12 @@ static int dibs_lo_move_data(struct dibs_dev *dibs, u64 dmb_tok,
>> if (!sf)
>> return 0;
>>
>> - spin_lock(&dibs->lock);
>> + spin_lock_irqsave(&dibs->lock, flags);
>> client_id = dibs->dmb_clientid_arr[sba_idx];
>> s_mask = ror16(0x1000, idx);
>> if (likely(client_id != NO_DIBS_CLIENT && dibs->subs[client_id]))
>> dibs->subs[client_id]->ops->handle_irq(dibs, sba_idx, s_mask);
>> - spin_unlock(&dibs->lock);
>> + spin_unlock_irqrestore(&dibs->lock, flags);
>
> [Severity: Medium]
> Should this carry a Fixes: tag? The lockdep splat quoted in the commit
> message is reproducible on shipped kernels, and git blame attributes the
> converted spin_lock()/spin_unlock() pair in dibs_lo_move_data() to:
>
> cc21191b584c6f ("dibs: Move data path to dibs layer")
>
> The hardirq-side acquisition of the same lock is in ism_handle_irq()
> (drivers/s390/net/ism_drv.c):
>
> spin_lock(&dibs->lock);
>
> which matches the {IN-HARDIRQ-W} registration in the report, so the
> warning can be hit by ordinary SMC traffic through
> smc_close_active()->smcd_cdc_msg_send()->smcd_tx_ism_write()->dibs_lo_move_data()
> on a lockdep-enabled kernel.
>
> The splat also ends with "INFO: lockdep is turned off", so further lock
> checking is lost for the rest of that boot on affected kernels.
>
> Would adding the following help backporters and stable tooling identify
> which trees need this change?
>
> Fixes: cc21191b584c6f ("dibs: Move data path to dibs layer")
>
As mentioned in the commit message the paths reported by lockdep belong to two
different device types (dibs-lo and ism). So not a real deadlock.
So unless lockdep-warnings by themselves warrant a Fixes-tag (?), I think net-next is correct here.
Paolo applied this already to net-next.
For the records: Sahiko identified the right patch to blame.
next prev parent reply other threads:[~2026-09-08 17:04 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-04 9:44 [PATCH net-next] dibs: Avoid inconsistent lockstate warning in dibs_lo_move_data() Alexandra Winter
2026-09-05 0:42 ` Dust Li
2026-09-05 9:45 ` sashiko-bot
2026-09-08 9:55 ` Alexandra Winter
2026-09-07 6:26 ` Sidraya Jayagond
2026-09-08 12:45 ` netdev-bot+sashiko
2026-09-08 17:04 ` Alexandra Winter [this message]
2026-09-09 8:04 ` Paolo Abeni
2026-09-08 13:10 ` patchwork-bot+netdevbpf
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=a5ffb5d2-4509-4e73-af0d-aad4b1cc9412@linux.ibm.com \
--to=wintera@linux.ibm.com \
--cc=agordeev@linux.ibm.com \
--cc=alibuda@linux.alibaba.com \
--cc=andrew+netdev@lunn.ch \
--cc=borntraeger@linux.ibm.com \
--cc=davem@davemloft.net \
--cc=dust.li@linux.alibaba.com \
--cc=edumazet@google.com \
--cc=gor@linux.ibm.com \
--cc=guwen@linux.alibaba.com \
--cc=hca@linux.ibm.com \
--cc=horms@kernel.org \
--cc=kuba@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-s390@vger.kernel.org \
--cc=mjambigi@linux.ibm.com \
--cc=netdev-bot+sashiko@kernel.org \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=sidraya@linux.ibm.com \
--cc=svens@linux.ibm.com \
--cc=tonylu@linux.alibaba.com \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.