Просмотр исходного кода

ar8327: use flex array for name

Simplifies allocation.

Signed-off-by: Rosen Penev <[email protected]>
Link: https://github.com/openwrt/openwrt/pull/22069
Signed-off-by: Robert Marko <[email protected]>
Rosen Penev 2 месяцев назад
Родитель
Сommit
0278e25d67

+ 1 - 2
target/linux/generic/files/drivers/net/phy/ar8327.c

@@ -319,7 +319,7 @@ ar8327_led_create(struct ar8xxx_priv *priv,
 	if (led_info->led_num >= AR8327_NUM_LEDS)
 		return -EINVAL;
 
-	aled = kzalloc(sizeof(*aled) + strlen(led_info->name) + 1,
+	aled = kzalloc(struct_size(aled, name, strlen(led_info->name) + 1),
 		       GFP_KERNEL);
 	if (!aled)
 		return -ENOMEM;
@@ -333,7 +333,6 @@ ar8327_led_create(struct ar8xxx_priv *priv,
 	if (aled->mode == AR8327_LED_MODE_HW)
 		aled->enable_hw_mode = true;
 
-	aled->name = (char *)(aled + 1);
 	strcpy(aled->name, led_info->name);
 
 	aled->cdev.name = aled->name;

+ 1 - 1
target/linux/generic/files/drivers/net/phy/ar8327.h

@@ -339,7 +339,6 @@ struct ar8327_led {
 	struct led_classdev cdev;
 	struct ar8xxx_priv *sw_priv;
 
-	char *name;
 	bool active_low;
 	u8 led_num;
 	enum ar8327_led_mode mode;
@@ -350,6 +349,7 @@ struct ar8327_led {
 	bool enable_hw_mode;
 	enum ar8327_led_pattern pattern;
 	struct fwnode_handle *fwnode;
+	char name[];
 };
 
 struct ar8327_data {