From: "Alexey V. Vissarionov" <gremlin@altlinux.org>
To: Jacob Keller <jacob.e.keller@intel.com>
Cc: "Alexey V. Vissarionov" <gremlin@altlinux.org>,
Andrew Lunn <andrew+netdev@lunn.ch>,
"David S. Miller" <davem@davemloft.net>,
Derek Chickles <derek.chickles@cavium.com>,
"Dr. David Alan Gilbert" <linux@treblig.org>,
Eric Dumazet <edumazet@google.com>,
Felix Manlunas <felix.manlunas@cavium.com>,
Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
netdev@vger.kernel.org, lvc-project@linuxtesting.org
Subject: Re: [PATCH net] liquidio: check other_oct before dereferencing
Date: Mon, 5 May 2025 06:00:22 +0300 [thread overview]
Message-ID: <20250505030022.GA1405@altlinux.org> (raw)
In-Reply-To: <9bd2332c-72fc-4d75-b498-87f4662824d4@intel.com>
Good ${greeting_time}!
On 2025-04-30 13:46:54 -0700, Jacob Keller wrote:
>> get_other_octeon_device() may return NULL; avoid dereferencing
>> the other_oct pointer in that case.
>> @@ -796,10 +796,11 @@ static int liquidio_watchdog(void *param)
>>
>> #ifdef CONFIG_MODULE_UNLOAD
>> vfs_mask1 =
>> READ_ONCE(oct->sriov_info.vf_drv_loaded_mask);
>> - vfs_mask2 =
>> READ_ONCE(other_oct->sriov_info.vf_drv_loaded_mask);
>> -
>> - vfs_referencing_pf = hweight64(vfs_mask1);
>> - vfs_referencing_pf += hweight64(vfs_mask2);
>> + vfs_referencing_pf = hweight64(vfs_mask1);
>> + if (other_oct) {
>> + vfs_mask2 =
>> READ_ONCE(other_oct->sriov_info.vf_drv_loaded_mask);
>> + vfs_referencing_pf += hweight64(vfs_mask2);
>> + }
> Obviously crashing when other_oct is NULL is bad..
Yes, even if this happens only when attempting to unload the
module.
> But is it ok to proceed when it is NULL? Is leaving out the
> counts ok? I guess I don't really understand what other_oct
> actually represents here.
As I can see, the vf_drv_loaded_mask is a bitmap containing
the flags for all existing virtual functions of all devices.
So, if there's no other device, its' functions are missing
and marked as unavailable in the vf_drv_loaded_mask.
--
Alexey V. Vissarionov
gremlin ПРИ altlinux ТЧК org; +vii-cmiii-ccxxix-lxxix-xlii
GPG: 0D92F19E1C0DC36E27F61A29CD17E2B43D879005 @ hkp://keys.gnupg.net
prev parent reply other threads:[~2025-05-05 3:00 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-04-29 21:00 [PATCH net] liquidio: check other_oct before dereferencing Alexey V. Vissarionov
2025-04-30 20:46 ` Jacob Keller
2025-05-05 3:00 ` Alexey V. Vissarionov [this message]
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=20250505030022.GA1405@altlinux.org \
--to=gremlin@altlinux.org \
--cc=andrew+netdev@lunn.ch \
--cc=davem@davemloft.net \
--cc=derek.chickles@cavium.com \
--cc=edumazet@google.com \
--cc=felix.manlunas@cavium.com \
--cc=jacob.e.keller@intel.com \
--cc=kuba@kernel.org \
--cc=linux@treblig.org \
--cc=lvc-project@linuxtesting.org \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.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.