diff options
Diffstat (limited to 'drivers/soundwire/stream.c')
| -rw-r--r-- | drivers/soundwire/stream.c | 8 | 
1 files changed, 5 insertions, 3 deletions
diff --git a/drivers/soundwire/stream.c b/drivers/soundwire/stream.c index 37290a799023..6e36deb505b1 100644 --- a/drivers/soundwire/stream.c +++ b/drivers/soundwire/stream.c @@ -717,6 +717,7 @@ error:  	kfree(wbuf);  error_1:  	kfree(wr_msg); +	bus->defer_msg.msg = NULL;  	return ret;  } @@ -840,9 +841,10 @@ static int do_bank_switch(struct sdw_stream_runtime *stream)  error:  	list_for_each_entry(m_rt, &stream->master_list, stream_node) {  		bus = m_rt->bus; - -		kfree(bus->defer_msg.msg->buf); -		kfree(bus->defer_msg.msg); +		if (bus->defer_msg.msg) { +			kfree(bus->defer_msg.msg->buf); +			kfree(bus->defer_msg.msg); +		}  	}  msg_unlock:  | 
