diff options
author | Charles Keepax <ckeepax@opensource.wolfsonmicro.com> | 2013-04-18 14:01:38 +0400 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2013-04-21 11:53:00 +0400 |
commit | 4daf891cdea2eb63b51cb35a3ac12706f8c50156 (patch) | |
tree | 7be791a16c5660f9825d5c428ae1040a22cc7707 | |
parent | 5b1f79f70b0fa0b7ddb28c9ac54c57598fed6347 (diff) | |
download | linux-4daf891cdea2eb63b51cb35a3ac12706f8c50156.tar.xz |
ALSA: compress_core: Deconstify copy callback buffer
The buffer passed to the copy callback should not be const because the
copy callback can be used for capture and playback.
Signed-off-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
Signed-off-by: Richard Fitzgerald <rf@opensource.wolfsonmicro.com>
Acked-by: Vinod Koul <vinod.koul@intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
-rw-r--r-- | include/sound/compress_driver.h | 2 | ||||
-rw-r--r-- | sound/core/compress_offload.c | 8 | ||||
-rw-r--r-- | sound/soc/soc-compress.c | 2 |
3 files changed, 7 insertions, 5 deletions
diff --git a/include/sound/compress_driver.h b/include/sound/compress_driver.h index ff6c74153fa1..db8273a5175a 100644 --- a/include/sound/compress_driver.h +++ b/include/sound/compress_driver.h @@ -121,7 +121,7 @@ struct snd_compr_ops { int (*trigger)(struct snd_compr_stream *stream, int cmd); int (*pointer)(struct snd_compr_stream *stream, struct snd_compr_tstamp *tstamp); - int (*copy)(struct snd_compr_stream *stream, const char __user *buf, + int (*copy)(struct snd_compr_stream *stream, char __user *buf, size_t count); int (*mmap)(struct snd_compr_stream *stream, struct vm_area_struct *vma); diff --git a/sound/core/compress_offload.c b/sound/core/compress_offload.c index 1f69863a83d2..52ca4cce1462 100644 --- a/sound/core/compress_offload.c +++ b/sound/core/compress_offload.c @@ -272,10 +272,12 @@ static ssize_t snd_compr_write(struct file *f, const char __user *buf, if (avail > count) avail = count; - if (stream->ops->copy) - retval = stream->ops->copy(stream, buf, avail); - else + if (stream->ops->copy) { + char __user* cbuf = (char __user*)buf; + retval = stream->ops->copy(stream, cbuf, avail); + } else { retval = snd_compr_write_data(stream, buf, avail); + } if (retval > 0) stream->runtime->total_bytes_available += retval; diff --git a/sound/soc/soc-compress.c b/sound/soc/soc-compress.c index 29093a306ea2..da83e5658f62 100644 --- a/sound/soc/soc-compress.c +++ b/sound/soc/soc-compress.c @@ -315,7 +315,7 @@ static int soc_compr_pointer(struct snd_compr_stream *cstream, } static int soc_compr_copy(struct snd_compr_stream *cstream, - const char __user *buf, size_t count) + char __user *buf, size_t count) { struct snd_soc_pcm_runtime *rtd = cstream->private_data; struct snd_soc_platform *platform = rtd->platform; |