Re: [PATCH v3 net 3/4] pds_core: Remove unnecessary check in pds_client_adminq_cmd()

From: Jacob Keller
Date: Wed Apr 16 2025 - 16:16:00 EST




On 4/15/2025 4:29 PM, Shannon Nelson wrote:
> From: Brett Creeley <brett.creeley@xxxxxxx>
>
> 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@xxxxxxxxx>