On 10/8/2026 7:14 AM, Aleksandr Loktionov wrote:
...
@@ -220,12 +232,27 @@ ice_send_component_table(struct pldmfw *context, struct
pldmfw_component *compon
struct ice_pf *pf = priv->pf;
struct ice_hw *hw = &pf->hw;
size_t length;
+ u8 comp_bit;
int status;
switch (component->identifier) {
case NVM_COMP_ID_OROM:
+ comp_bit = ICE_FWU_COMP_OROM;
+ break;
case NVM_COMP_ID_NVM:
+ comp_bit = ICE_FWU_COMP_NVM;
+ break;
case NVM_COMP_ID_NETLIST:
+ comp_bit = ICE_FWU_COMP_NETLIST;
+ break;
+ case NVM_COMP_ID_MANIFEST:
+ if (!priv->erot_present) {
+ dev_err(dev, "Manifest component is not supported on
adapters without eRoT\n");
+ NL_SET_ERR_MSG_MOD(extack,
+ "Manifest component is not supported on
adapters without eRoT");
Hi Alex,
I don't think this should be reported to both:
"
A number of driver configuration interfaces pass a Netlink extended ACK
(extack) object to the driver (either directly as an argument or as a
member of a parameter struct). The drivers should try to report most
errors via the extack object. System level exceptions, indicating that
system or device is misbehaving or is in bad state, should continue to
be reported to system logs.
Messages should be passed either via extack or to system logs. Drivers
should not try to report the same information to both.
"
https://docs.kernel.org/networking/driver.html#error-message-reporting
+ return -EOPNOTSUPP;
+ }
+ comp_bit = ICE_FWU_COMP_MANIFEST;
break;
default:
dev_err(dev, "Unable to update due to a firmware component with
unknown ID %u\n",
...
@@ -1013,12 +1067,37 @@ int ice_devlink_flash_update(struct devlink *devlink,
return -EOPNOTSUPP;
}
- if (!hw->dev_caps.common_cap.nvm_unified_update && !ice_is_recovery_mode(hw)) {
+ struct ice_hw_dev_caps *dev_caps __free(kfree) =
+ kzalloc_obj(*dev_caps);
__free() is marked as deprecated by netdev now so we should probably
avoid it if we can. Also, this is missing the separating newline for
declarations.
Thanks,
Tony
+ if (!dev_caps)
+ return -ENOMEM;
+