• Uwe Kleine-König's avatar
    crypto: stm32/crc32 - Convert to platform remove callback returning void · afa39e6e
    Uwe Kleine-König authored
    The .remove() callback for a platform driver returns an int which makes
    many driver authors wrongly assume it's possible to do error handling by
    returning an error code. However the value returned is (mostly) ignored
    and this typically results in resource leaks. To improve here there is a
    quest to make the remove callback return void. In the first step of this
    quest all drivers are converted to .remove_new() which already returns
    void.
    
    The driver adapted here suffered from this wrong assumption and had an
    error paths resulting in resource leaks.
    
    If pm_runtime_get() fails, the other resources held by the device must
    still be freed. Only clk_disable() should be skipped as the
    pm_runtime_get() failed to call clk_enable().
    
    After this change the remove function returns zero unconditionally and
    can trivially be converted to the prototype required for .remove_new().
    Signed-off-by: default avatarUwe Kleine-König <u.kleine-koenig@pengutronix.de>
    Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
    afa39e6e
stm32-crc32.c 11.6 KB