Re: [PATCH] soundwire: stream: sdw_stream_remove_slave(): Check stream is valid

From: Pierre-Louis Bossart

Date: Thu Apr 30 2026 - 16:37:41 EST


On 4/30/26 16:33, Richard Fitzgerald wrote:
> In sdw_stream_remove_slave() check that stream is a valid pointer
> before passing it to functions that dereference it. Return 0 if the
> pointer is invalid.
>
> This is a convenience for callers. They can safely call this function
> during cleanup code without needing a pointer validity check duplicated
> at every call point.
>
> Signed-off-by: Richard Fitzgerald <rf@xxxxxxxxxxxxxxxxxxxxx>

LGTM

Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@xxxxxxxxx>

> ---
> drivers/soundwire/stream.c | 6 +++++-
> 1 file changed, 5 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/soundwire/stream.c b/drivers/soundwire/stream.c
> index 4ed8fb7663ad..c1ef177a0021 100644
> --- a/drivers/soundwire/stream.c
> +++ b/drivers/soundwire/stream.c
> @@ -2229,11 +2229,15 @@ EXPORT_SYMBOL(sdw_stream_add_slave);
> * @slave: SDW Slave instance
> * @stream: SoundWire stream
> *
> - * This removes and frees port_rt and slave_rt from a stream
> + * This removes and frees port_rt and slave_rt from a stream.
> + * If stream is NULL or an ERR_PTR, do nothing and return 0.
> */
> int sdw_stream_remove_slave(struct sdw_slave *slave,
> struct sdw_stream_runtime *stream)
> {
> + if (IS_ERR_OR_NULL(stream))
> + return 0;
> +
> mutex_lock(&slave->bus->bus_lock);
>
> sdw_slave_port_free(slave, stream);