forked from Minki/linux
staging: bcm2835-audio: deallocate work when queue_work(...) fails
This patch de-allocates work when queue_work(..) fails in the bcm2835-audio work functions Signed-off-by: Aishwarya Pant <aishpant@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
8f1fff07b0
commit
e3173e5783
@ -145,6 +145,7 @@ int bcm2835_audio_start(struct bcm2835_alsa_stream *alsa_stream)
|
|||||||
work->alsa_stream = alsa_stream;
|
work->alsa_stream = alsa_stream;
|
||||||
work->cmd = BCM2835_AUDIO_START;
|
work->cmd = BCM2835_AUDIO_START;
|
||||||
if (!queue_work(alsa_stream->my_wq, &work->my_work)) {
|
if (!queue_work(alsa_stream->my_wq, &work->my_work)) {
|
||||||
|
kfree(work);
|
||||||
return -EBUSY;
|
return -EBUSY;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -168,6 +169,7 @@ int bcm2835_audio_stop(struct bcm2835_alsa_stream *alsa_stream)
|
|||||||
work->alsa_stream = alsa_stream;
|
work->alsa_stream = alsa_stream;
|
||||||
work->cmd = BCM2835_AUDIO_STOP;
|
work->cmd = BCM2835_AUDIO_STOP;
|
||||||
if (!queue_work(alsa_stream->my_wq, &work->my_work)) {
|
if (!queue_work(alsa_stream->my_wq, &work->my_work)) {
|
||||||
|
kfree(work);
|
||||||
return -EBUSY;
|
return -EBUSY;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -194,6 +196,7 @@ int bcm2835_audio_write(struct bcm2835_alsa_stream *alsa_stream,
|
|||||||
work->src = src;
|
work->src = src;
|
||||||
work->count = count;
|
work->count = count;
|
||||||
if (!queue_work(alsa_stream->my_wq, &work->my_work)) {
|
if (!queue_work(alsa_stream->my_wq, &work->my_work)) {
|
||||||
|
kfree(work);
|
||||||
return -EBUSY;
|
return -EBUSY;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user