• Stephen Boyd's avatar
    clk: starfive: Avoid casting iomem pointers · d1aae066
    Stephen Boyd authored
    Let's use a wrapper struct for the auxiliary_device made in
    jh7110_reset_controller_register() so that we can stop casting iomem
    pointers. The casts trip up tools like sparse, and make for some awkward
    casts that are largely unnecessary. While we're here, change the
    allocation from devm and actually free the auxiliary_device memory in
    the release function. This avoids any use after free problems where the
    parent device driver is unbound from the device but the
    auxiliuary_device is still in use accessing devm freed memory.
    
    Cc: Tommaso Merciai <tomm.merciai@gmail.com>
    Cc: Emil Renner Berthing <emil.renner.berthing@canonical.com>
    Cc: Hal Feng <hal.feng@starfivetech.com>
    Cc: Conor Dooley <conor.dooley@microchip.com>
    Cc: Xingyu Wu <xingyu.wu@starfivetech.com>
    Reviewed-by: default avatarConor Dooley <conor.dooley@microchip.com>
    Fixes: edab7204 ("clk: starfive: Add StarFive JH7110 system clock driver")
    Signed-off-by: default avatarStephen Boyd <sboyd@kernel.org>
    Link: https://lore.kernel.org/r/20230413205528.4044216-1-sboyd@kernel.org
    d1aae066
reset-starfive-jh7110.c 1.87 KB