On 9/10/2024 6:57 AM, Przemek Kitszel wrote:
> Fix leak of the FW blob (DDP pkg).
>
> Make ice_cfg_tx_topo() const-correct, so ice_init_tx_topology() can avoid
> copying whole FW blob. Copy just the topology section, and only when
> needed. Reuse the buffer allocated for the read of the current topology.
>
> This was found by kmemleak, with the following trace for each PF:
> [<ffffffff8761044d>] kmemdup_noprof+0x1d/0x50
> [<ffffffffc0a0a480>] ice_init_ddp_config+0x100/0x220 [ice]
> [<ffffffffc0a0da7f>] ice_init_dev+0x6f/0x200 [ice]
> [<ffffffffc0a0dc49>] ice_init+0x29/0x560 [ice]
> [<ffffffffc0a10c1d>] ice_probe+0x21d/0x310 [ice]
>
> Constify ice_cfg_tx_topo() @buf parameter.
> This cascades further down to few more functions.
>
Nice!
Reviewed-by: Jacob Keller <[email protected]>
> Fixes: cc5776fe1832 ("ice: Enable switching default Tx scheduler topology")
> CC: Larysa Zaremba <[email protected]>
> CC: Jacob Keller <[email protected]>
> CC: Pucha Himasekhar Reddy <[email protected]>
> CC: Mateusz Polchlopek <[email protected]>
> Signed-off-by: Przemek Kitszel <[email protected]>
> ---
> this patch obsoletes two other, so I'm dropping RB tags
> v1, iwl-net:
> https://lore.kernel.org/netdev/[email protected]/
> wrong assumption that ice_get_set_tx_topo() does not modify the buffer
> on adminq SET variant, it sometimes does, to fill the response, thanks
> to Pucha Himasekhar Reddy for finding it out;
> almost-const-correct iwl-next patch:
> https://lore.kernel.org/intel-wired-lan/[email protected]
> it was just some of this patch, now it is const-correct
> ---
Right. So now we're doing the const correctness in this patch along with
the fix?
Would it make sense to fix the copy issue but leave const updates to the
next tree?
I think I'm fine with this, but wonder if it will make backporting a bit
more difficult? Probably not, given that this code is rarely modified.
The const fixes are also relatively smaller than I anticipated :D
Thanks,
Jake