mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager.git
synced 2026-01-27 09:00:24 +01:00
platform: detect missing firmware on IFF_UP change
This commit is contained in:
parent
8489994eb0
commit
01b95ef293
3 changed files with 12 additions and 0 deletions
|
|
@ -886,6 +886,14 @@ link_change (NMPlatform *platform, int ifindex, struct rtnl_link *change)
|
|||
|
||||
nle = rtnl_link_change (priv->nlh, rtnllink, change, 0);
|
||||
|
||||
/* When netlink returns this error, it usually means it failed to find
|
||||
* firmware for the device, especially on nm_platform_link_set_up ().
|
||||
* This is basically the same check as in the original code and could
|
||||
* potentially be improved.
|
||||
*/
|
||||
if (nle == -NLE_NOT_FOUND)
|
||||
return NM_PLATFORM_ERROR_NO_FIRMWARE;
|
||||
|
||||
return refresh_object (platform, (struct nl_object *) rtnllink, nle);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -177,6 +177,8 @@ nm_platform_get_error_msg (void)
|
|||
return "object already exists";
|
||||
case NM_PLATFORM_ERROR_NOT_SLAVE:
|
||||
return "link not a slave";
|
||||
case NM_PLATFORM_ERROR_NO_FIRMWARE:
|
||||
return "firmware not found";
|
||||
default:
|
||||
return "invalid error number";
|
||||
}
|
||||
|
|
|
|||
|
|
@ -43,6 +43,8 @@ typedef enum {
|
|||
NM_PLATFORM_ERROR_EXISTS,
|
||||
/* object is not a slave */
|
||||
NM_PLATFORM_ERROR_NOT_SLAVE
|
||||
/* firmware is not found */
|
||||
NM_PLATFORM_ERROR_NO_FIRMWARE
|
||||
} NMPlatformError;
|
||||
|
||||
typedef enum {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue