mirror of
https://github.com/torvalds/linux.git
synced 2026-05-23 14:42:08 +02:00
coresight: ultrasoc-smb: Config SMB buffer before register sink
The SMB dirver register the enable/disable sysfs interface in function
smb_register_sink(), however the buffer depends on the following
configuration to work well. So it'll be possible for user to access an
unreset one.
Move the config buffer operation to before register_sink().
Ignore the return value, if smb_config_inport() fails. That will
cause the hardwares disable trace path to fail, should not affect
SMB driver remove. So we make smb_remove() return success,
Fixes: 06f5c2926a ("drivers/coresight: Add UltraSoc System Memory Buffer driver")
Signed-off-by: Junhao He <hejunhao3@huawei.com>
Reviewed-by: James Clark <james.clark@arm.com>
Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com>
Link: https://lore.kernel.org/r/20231114133346.30489-3-hejunhao3@huawei.com
This commit is contained in:
parent
b8411287ae
commit
830a7f54db
|
|
@ -583,37 +583,32 @@ static int smb_probe(struct platform_device *pdev)
|
|||
return ret;
|
||||
}
|
||||
|
||||
ret = smb_config_inport(dev, true);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
platform_set_drvdata(pdev, drvdata);
|
||||
spin_lock_init(&drvdata->spinlock);
|
||||
drvdata->pid = -1;
|
||||
|
||||
ret = smb_register_sink(pdev, drvdata);
|
||||
if (ret) {
|
||||
smb_config_inport(&pdev->dev, false);
|
||||
dev_err(dev, "Failed to register SMB sink\n");
|
||||
return ret;
|
||||
}
|
||||
|
||||
ret = smb_config_inport(dev, true);
|
||||
if (ret) {
|
||||
smb_unregister_sink(drvdata);
|
||||
return ret;
|
||||
}
|
||||
|
||||
platform_set_drvdata(pdev, drvdata);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int smb_remove(struct platform_device *pdev)
|
||||
{
|
||||
struct smb_drv_data *drvdata = platform_get_drvdata(pdev);
|
||||
int ret;
|
||||
|
||||
ret = smb_config_inport(&pdev->dev, false);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
smb_unregister_sink(drvdata);
|
||||
|
||||
smb_config_inport(&pdev->dev, false);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user