Skip to content

Commit

Permalink
ALSA: compress_core: Deconstify copy callback buffer
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Charles Keepax authored and Takashi Iwai committed Apr 21, 2013
1 parent 5b1f79f commit 4daf891
Show file tree
Hide file tree
Showing 3 changed files with 7 additions and 5 deletions.
2 changes: 1 addition & 1 deletion include/sound/compress_driver.h
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down
8 changes: 5 additions & 3 deletions sound/core/compress_offload.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;

Expand Down
2 changes: 1 addition & 1 deletion sound/soc/soc-compress.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down

0 comments on commit 4daf891

Please sign in to comment.