X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;ds=sidebyside;f=sound%2Fdrivers%2Fopl4%2Fopl4_proc.c;h=bbea9ab1c859ab19a5e18647b56837e062db549f;hb=9bf4aaab3e101692164d49b7ca357651eb691cb6;hp=f2f364d15a26bddf86a63fba21bb119c78c30e91;hpb=db216c3d5e4c040e557a50f8f5d35d5c415e8c1c;p=linux-2.6.git diff --git a/sound/drivers/opl4/opl4_proc.c b/sound/drivers/opl4/opl4_proc.c index f2f364d15..bbea9ab1c 100644 --- a/sound/drivers/opl4/opl4_proc.c +++ b/sound/drivers/opl4/opl4_proc.c @@ -50,41 +50,42 @@ static int snd_opl4_mem_proc_release(snd_info_entry_t *entry, } static long snd_opl4_mem_proc_read(snd_info_entry_t *entry, void *file_private_data, - struct file *file, char __user *_buf, long count) + struct file *file, char __user *_buf, + unsigned long count, unsigned long pos) { opl4_t *opl4 = snd_magic_cast(opl4_t, entry->private_data, return -ENXIO); long size; char* buf; size = count; - if (file->f_pos + size > entry->size) - size = entry->size - file->f_pos; + if (pos + size > entry->size) + size = entry->size - pos; if (size > 0) { buf = vmalloc(size); if (!buf) return -ENOMEM; - snd_opl4_read_memory(opl4, buf, file->f_pos, size); + snd_opl4_read_memory(opl4, buf, pos, size); if (copy_to_user(_buf, buf, size)) { vfree(buf); return -EFAULT; } vfree(buf); - file->f_pos += size; return size; } return 0; } static long snd_opl4_mem_proc_write(snd_info_entry_t *entry, void *file_private_data, - struct file *file, const char __user *_buf, long count) + struct file *file, const char __user *_buf, + unsigned long count, unsigned long pos) { opl4_t *opl4 = snd_magic_cast(opl4_t, entry->private_data, return -ENXIO); long size; char *buf; size = count; - if (file->f_pos + size > entry->size) - size = entry->size - file->f_pos; + if (pos + size > entry->size) + size = entry->size - pos; if (size > 0) { buf = vmalloc(size); if (!buf) @@ -93,9 +94,8 @@ static long snd_opl4_mem_proc_write(snd_info_entry_t *entry, void *file_private_ vfree(buf); return -EFAULT; } - snd_opl4_write_memory(opl4, buf, file->f_pos, size); + snd_opl4_write_memory(opl4, buf, pos, size); vfree(buf); - file->f_pos += size; return size; } return 0;