From: Quentin Schulz <[email protected]> There already is a function to return the offset of the core for a given struct device, so let's reuse that function instead of reimplementing the same logic.
There's one change in behavior when a struct device is passed which doesn't match any core's. Before, we would continue through rocket_remove() but now we exit early, to match what other callers of find_core_for_dev() (rocket_device_runtime_resume/suspend()) are doing. This however should never happen. Aside from that, no intended change in behavior. Signed-off-by: Quentin Schulz <[email protected]> --- drivers/accel/rocket/rocket_drv.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/drivers/accel/rocket/rocket_drv.c b/drivers/accel/rocket/rocket_drv.c index 5c0b63f0a8f00..28bf6c602f802 100644 --- a/drivers/accel/rocket/rocket_drv.c +++ b/drivers/accel/rocket/rocket_drv.c @@ -180,17 +180,18 @@ static int rocket_probe(struct platform_device *pdev) return rocket_core_init(&rdev->cores[core]); } +static int find_core_for_dev(struct device *dev); + static void rocket_remove(struct platform_device *pdev) { struct device *dev = &pdev->dev; + int core = find_core_for_dev(dev); - for (unsigned int core = 0; core < rdev->num_cores; core++) { - if (rdev->cores[core].dev == dev) { - rocket_core_fini(&rdev->cores[core]); - rdev->num_cores--; - break; - } - } + if (core < 0) + return; + + rocket_core_fini(&rdev->cores[core]); + rdev->num_cores--; if (rdev->num_cores == 0) { /* Last core removed, deinitialize DRM device. */ --- base-commit: a619746d25c8adafe294777cc98c47a09759b3ed change-id: 20251215-rocket-reuse-find-core-8ecb7ed24cab Best regards, -- Quentin Schulz <[email protected]>
