struct syscfg_reset_controller {
struct reset_controller_dev rst;
bool active_low;
- struct syscfg_reset_channel *channels;
+ struct syscfg_reset_channel channels[];
};
#define to_syscfg_reset_controller(_rst) \
struct syscfg_reset_controller *rc;
int i, err;
- rc = devm_kzalloc(dev, sizeof(*rc), GFP_KERNEL);
+ rc = devm_kzalloc(dev, struct_size(rc, channels, data->nr_channels), GFP_KERNEL);
if (!rc)
return -ENOMEM;
- rc->channels = devm_kcalloc(dev, data->nr_channels,
- sizeof(*rc->channels), GFP_KERNEL);
- if (!rc->channels)
- return -ENOMEM;
-
rc->rst.ops = &syscfg_reset_ops;
rc->rst.of_node = dev->of_node;
rc->rst.nr_resets = data->nr_channels;