[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <8c82cabf-b282-4084-bf73-ead2ffd70272@intel.com>
Date: Wed, 16 Apr 2025 13:15:09 -0700
From: Jacob Keller <jacob.e.keller@...el.com>
To: Shannon Nelson <shannon.nelson@....com>, <andrew+netdev@...n.ch>,
<brett.creeley@....com>, <davem@...emloft.net>, <edumazet@...gle.com>,
<kuba@...nel.org>, <pabeni@...hat.com>, <michal.swiatkowski@...ux.intel.com>,
<horms@...nel.org>, <linux-kernel@...r.kernel.org>, <netdev@...r.kernel.org>
Subject: Re: [PATCH v3 net 3/4] pds_core: Remove unnecessary check in
pds_client_adminq_cmd()
On 4/15/2025 4:29 PM, Shannon Nelson wrote:
> From: Brett Creeley <brett.creeley@....com>
>
> When the pds_core driver was first created there were some race
> conditions around using the adminq, especially for client drivers.
> To reduce the possibility of a race condition there's a check
> against pf->state in pds_client_adminq_cmd(). This is problematic
> for a couple of reasons:
>
> 1. The PDSC_S_INITING_DRIVER bit is set during probe, but not
> cleared until after everything in probe is complete, which
> includes creating the auxiliary devices. For pds_fwctl this
> means it can't make any adminq commands until after pds_core's
> probe is complete even though the adminq is fully up by the
> time pds_fwctl's auxiliary device is created.
>
> 2. The race conditions around using the adminq have been fixed
> and this path is already protected against client drivers
> calling pds_client_adminq_cmd() if the adminq isn't ready,
> i.e. see pdsc_adminq_post() -> pdsc_adminq_inc_if_up().
>
> Fix this by removing the pf->state check in pds_client_adminq_cmd()
> because invalid accesses to pds_core's adminq is already handled by
> pdsc_adminq_post()->pdsc_adminq_inc_if_up().
>
Reviewed-by: Jacob Keller <jacob.e.keller@...el.com>
Powered by blists - more mailing lists