Breno Leitao <leitao@xxxxxxxxxx> writes: > struct net_device shouldn't be embedded into any structure, instead, > the owner should use the private space to embed their state into > net_device. > > But, in some cases the net_device is embedded inside the private > structure, which blocks the usage of zero-length arrays inside > net_device. > > Create a helper to allocate a dummy device at dynamically runtime, and > move the Ethernet devices to use it, instead of embedding the dummy > device inside the private structure. > > This fixes all the network cases plus some wireless drivers. > > PS: Due to lack of hardware, unfortunately most these patches are > compiled tested only, except ath11k that was kindly tested by Kalle Valo. > > --- > Changelog: > > v1: > * https://lore.kernel.org/all/20240327200809.512867-1-leitao@xxxxxxxxxx/ > > v2: > * Patch 1: Use a pre-defined name ("dummy#") for the dummy > net_devices. > * Patch 2-5: Added users for the new helper. > v3: > * Use free_netdev() instead of kfree() as suggested by Jakub. > * Change the free_netdev() place in ipa driver, as suggested by > Alex Elder. > * Set err in the error path in the Marvell driver, as suggested > by Simon Horman. > v4: > * Added a new patch to add dummy device at free_netdev(), as suggested > by Jakub. > * Added support for some wireless driver. > * Added some Acked-by and Reviewed-by. > v5: > * Added a new patch to fix some typos in the previous code, > suggested by Ido. > * Rebased to net-net/main I'm nitpicking here but I prefer to have the changelog in reverse order, that is v5 first and v1 last. I'm most interested about the changes in v5, I don't care about v1 at this point. Though I don't know if net folks have a different prefence, just wanted to mention this. -- https://patchwork.kernel.org/project/linux-wireless/list/ https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches