|
@@ -900,32 +900,24 @@ int batadv_throw_uevent(struct batadv_priv *bat_priv, enum batadv_uev_type type,
|
|
|
|
|
|
bat_kobj = &bat_priv->soft_iface->dev.kobj;
|
|
|
|
|
|
- uevent_env[0] = kmalloc(strlen(BATADV_UEV_TYPE_VAR) +
|
|
|
- strlen(batadv_uev_type_str[type]) + 1,
|
|
|
- GFP_ATOMIC);
|
|
|
+ uevent_env[0] = kasprintf(GFP_ATOMIC,
|
|
|
+ "%s%s", BATADV_UEV_TYPE_VAR,
|
|
|
+ batadv_uev_type_str[type]);
|
|
|
if (!uevent_env[0])
|
|
|
goto out;
|
|
|
|
|
|
- sprintf(uevent_env[0], "%s%s", BATADV_UEV_TYPE_VAR,
|
|
|
- batadv_uev_type_str[type]);
|
|
|
-
|
|
|
- uevent_env[1] = kmalloc(strlen(BATADV_UEV_ACTION_VAR) +
|
|
|
- strlen(batadv_uev_action_str[action]) + 1,
|
|
|
- GFP_ATOMIC);
|
|
|
+ uevent_env[1] = kasprintf(GFP_ATOMIC,
|
|
|
+ "%s%s", BATADV_UEV_ACTION_VAR,
|
|
|
+ batadv_uev_action_str[action]);
|
|
|
if (!uevent_env[1])
|
|
|
goto out;
|
|
|
|
|
|
- sprintf(uevent_env[1], "%s%s", BATADV_UEV_ACTION_VAR,
|
|
|
- batadv_uev_action_str[action]);
|
|
|
-
|
|
|
/* If the event is DEL, ignore the data field */
|
|
|
if (action != BATADV_UEV_DEL) {
|
|
|
- uevent_env[2] = kmalloc(strlen(BATADV_UEV_DATA_VAR) +
|
|
|
- strlen(data) + 1, GFP_ATOMIC);
|
|
|
+ uevent_env[2] = kasprintf(GFP_ATOMIC,
|
|
|
+ "%s%s", BATADV_UEV_DATA_VAR, data);
|
|
|
if (!uevent_env[2])
|
|
|
goto out;
|
|
|
-
|
|
|
- sprintf(uevent_env[2], "%s%s", BATADV_UEV_DATA_VAR, data);
|
|
|
}
|
|
|
|
|
|
ret = kobject_uevent_env(bat_kobj, KOBJ_CHANGE, uevent_env);
|