Commit 640a65f8 authored by Jacob Keller's avatar Jacob Keller Committed by David S. Miller

ice: cleanup ice_find_netlist_node

The ice_find_netlist_node function was introduced in commit 8a3a565f
("ice: add admin commands to access cgu configuration"). Variations of this
function were reviewed concurrently on both intel-wired-lan[1][2], and
netdev [3][4]

[1]: https://lore.kernel.org/intel-wired-lan/20230913204943.1051233-7-vadim.fedorenko@linux.dev/
[2]: https://lore.kernel.org/intel-wired-lan/20230817000058.2433236-5-jacob.e.keller@intel.com/
[3]: https://lore.kernel.org/netdev/20230918212814.435688-1-anthony.l.nguyen@intel.com/
[4]: https://lore.kernel.org/netdev/20230913204943.1051233-7-vadim.fedorenko@linux.dev/

The variant I posted had a few changes due to review feedback which were
never incorporated into the DPLL series:

* Replace the references to ancient and long removed ICE_SUCCESS and
  ICE_ERR_DOES_NOT_EXIST status codes in the function comment.

* Return -ENOENT instead of -ENOTBLK, as a more common way to indicate that
  an entry doesn't exist.

* Avoid the use of memset() and use simple static initialization for the
  cmd variable.

* Use FIELD_PREP to assign the node_type_ctx.

* Remove an unnecessary local variable to keep track of rec_node_handle,
  just pass the node_handle pointer directly into ice_aq_get_netlist_node.
Signed-off-by: default avatarJacob Keller <jacob.e.keller@intel.com>
Tested-by: Pucha Himasekhar Reddy <himasekharx.reddy.pucha@intel.com> (A Contingent worker at Intel)
Reviewed-by: default avatarPaul Menzel <pmenzel@molgen.mpg.de>
Reviewed-by: default avatarPrzemek Kitszel <przemyslaw.kitszel@intel.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 67918b6b
...@@ -473,41 +473,41 @@ ice_aq_get_netlist_node(struct ice_hw *hw, struct ice_aqc_get_link_topo *cmd, ...@@ -473,41 +473,41 @@ ice_aq_get_netlist_node(struct ice_hw *hw, struct ice_aqc_get_link_topo *cmd,
* @node_part_number: node part number to look for * @node_part_number: node part number to look for
* @node_handle: output parameter if node found - optional * @node_handle: output parameter if node found - optional
* *
* Find and return the node handle for a given node type and part number in the * Scan the netlist for a node handle of the given node type and part number.
* netlist. When found ICE_SUCCESS is returned, ICE_ERR_DOES_NOT_EXIST *
* otherwise. If node_handle provided, it would be set to found node handle. * If node_handle is non-NULL it will be modified on function exit. It is only
* valid if the function returns zero, and should be ignored on any non-zero
* return value.
*
* Returns: 0 if the node is found, -ENOENT if no handle was found, and
* a negative error code on failure to access the AQ.
*/ */
static int ice_find_netlist_node(struct ice_hw *hw, u8 node_type_ctx, static int ice_find_netlist_node(struct ice_hw *hw, u8 node_type_ctx,
u8 node_part_number, u16 *node_handle) u8 node_part_number, u16 *node_handle)
{ {
struct ice_aqc_get_link_topo cmd;
u8 rec_node_part_number;
u16 rec_node_handle;
u8 idx; u8 idx;
for (idx = 0; idx < ICE_MAX_NETLIST_SIZE; idx++) { for (idx = 0; idx < ICE_MAX_NETLIST_SIZE; idx++) {
struct ice_aqc_get_link_topo cmd = {};
u8 rec_node_part_number;
int status; int status;
memset(&cmd, 0, sizeof(cmd));
cmd.addr.topo_params.node_type_ctx = cmd.addr.topo_params.node_type_ctx =
(node_type_ctx << ICE_AQC_LINK_TOPO_NODE_TYPE_S); FIELD_PREP(ICE_AQC_LINK_TOPO_NODE_TYPE_M,
node_type_ctx);
cmd.addr.topo_params.index = idx; cmd.addr.topo_params.index = idx;
status = ice_aq_get_netlist_node(hw, &cmd, status = ice_aq_get_netlist_node(hw, &cmd,
&rec_node_part_number, &rec_node_part_number,
&rec_node_handle); node_handle);
if (status) if (status)
return status; return status;
if (rec_node_part_number == node_part_number) { if (rec_node_part_number == node_part_number)
if (node_handle)
*node_handle = rec_node_handle;
return 0; return 0;
}
} }
return -ENOTBLK; return -ENOENT;
} }
/** /**
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment