coresight: stm: return error code instead of zero in .packet()
In STM framework driver, the trace data writing loop would keep running until it received a negative return value or the whole trace packet has been written to STM device. So if the .packet() of STM device always returns zero since the device is not enabled or the parameter isn't supported, STM framework driver will stall into a dead loop. Returning -EACCES (Permission denied) in .packet() if the device is disabled makes more sense, and this is the same for returning -EINVAL if the channel passed into is not supported. Signed-off-by: Chunyan Zhang <zhang.chunyan@linaro.org> Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
38d1790644
commit
9870ef5c58
@ -419,10 +419,10 @@ static ssize_t stm_generic_packet(struct stm_data *stm_data,
|
||||
struct stm_drvdata, stm);
|
||||
|
||||
if (!(drvdata && local_read(&drvdata->mode)))
|
||||
return 0;
|
||||
return -EACCES;
|
||||
|
||||
if (channel >= drvdata->numsp)
|
||||
return 0;
|
||||
return -EINVAL;
|
||||
|
||||
ch_addr = (unsigned long)stm_channel_addr(drvdata, channel);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user