slimbus: stream: add checks for invalid unprepare/disable usage
authorKrzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Fri, 18 Nov 2022 06:52:39 +0000 (06:52 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 23 Nov 2022 18:45:33 +0000 (19:45 +0100)
slim_disable_stream() and slim_stream_unprepare() are exported, so add
sanity checks preventing unmatched/invalid calls.

Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Link: https://lore.kernel.org/r/20221118065246.6835-6-srinivas.kandagatla@linaro.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/slimbus/stream.c

index 7e9c818..1d6b386 100644 (file)
@@ -414,6 +414,9 @@ int slim_stream_disable(struct slim_stream_runtime *stream)
        struct slim_controller *ctrl = stream->dev->ctrl;
        int ret, i;
 
+       if (!stream->ports || !stream->num_ports)
+               return -EINVAL;
+
        if (ctrl->disable_stream)
                ctrl->disable_stream(stream);
 
@@ -445,6 +448,9 @@ int slim_stream_unprepare(struct slim_stream_runtime *stream)
 {
        int i;
 
+       if (!stream->ports || !stream->num_ports)
+               return -EINVAL;
+
        for (i = 0; i < stream->num_ports; i++)
                slim_disconnect_port(stream, &stream->ports[i]);