patch-2_6_7-vs1_9_1_12
[linux-2.6.git] / sound / oss / wavfront.c
index fe9427e..e793222 100644 (file)
 #define OSS_SUPPORT_LEVEL          0x1  /* just /dev/sequencer for now */
 
 #if    OSS_SUPPORT_LEVEL & OSS_SUPPORT_SEQ
-static int (*midi_load_patch) (int devno, int format, const char *addr,
+static int (*midi_load_patch) (int devno, int format, const char __user *addr,
                               int offs, int count, int pmgr_flag) = NULL;
 #endif /* OSS_SUPPORT_SEQ */
 
@@ -996,7 +996,7 @@ wavefront_freemem (void)
 
 static int
 wavefront_send_sample (wavefront_patch_info *header,
-                      UINT16 *dataptr,
+                      UINT16 __user *dataptr,
                       int data_is_unsigned)
 
 {
@@ -1011,7 +1011,7 @@ wavefront_send_sample (wavefront_patch_info *header,
 
        UINT16 sample_short;
        UINT32 length;
-       UINT16 *data_end = 0;
+       UINT16 __user *data_end = 0;
        unsigned int i;
        const int max_blksize = 4096/2;
        unsigned int written;
@@ -1024,11 +1024,11 @@ wavefront_send_sample (wavefront_patch_info *header,
        int initial_skip = 0;
 
        DPRINT (WF_DEBUG_LOAD_PATCH, "sample %sdownload for slot %d, "
-                                     "type %d, %d bytes from 0x%x\n",
+                                     "type %d, %d bytes from %p\n",
                                      header->size ? "" : "header ", 
                                      header->number, header->subkey,
                                      header->size,
-                                     (int) header->dataptr);
+                                     header->dataptr);
 
        if (header->number == WAVEFRONT_FIND_FREE_SAMPLE_SLOT) {
                int x;
@@ -1512,7 +1512,7 @@ log2_2048(int n)
 }
 
 static int
-wavefront_load_gus_patch (int devno, int format, const char *addr,
+wavefront_load_gus_patch (int devno, int format, const char __user *addr,
                          int offs, int count, int pmgr_flag)
 {
        struct patch_info guspatch;
@@ -1636,7 +1636,7 @@ wavefront_load_gus_patch (int devno, int format, const char *addr,
        /* Now ship it down */
 
        wavefront_send_sample (&samp, 
-                              (unsigned short *) &(addr)[sizeof_patch],
+                              (unsigned short __user *) &(addr)[sizeof_patch],
                               (guspatch.mode & WAVE_UNSIGNED) ? 1:0);
        wavefront_send_patch (&pat);
        wavefront_send_program (&prog);
@@ -1656,7 +1656,7 @@ wavefront_load_gus_patch (int devno, int format, const char *addr,
 }
 
 static int
-wavefront_load_patch (const char *addr)
+wavefront_load_patch (const char __user *addr)
 
 
 {
@@ -1680,7 +1680,7 @@ wavefront_load_patch (const char *addr)
        case WF_ST_SAMPLE:  /* sample or sample_header, based on patch->size */
 
                if (copy_from_user((unsigned char *) &header.hdr.s,
-                                  (unsigned char *) header.hdrptr,
+                                  (unsigned char __user *) header.hdrptr,
                                   sizeof (wavefront_sample)))
                        return -EFAULT;
 
@@ -1688,8 +1688,7 @@ wavefront_load_patch (const char *addr)
 
        case WF_ST_MULTISAMPLE:
 
-               if (copy_from_user((unsigned char *) &header.hdr.s,
-                                  (unsigned char *) header.hdrptr,
+               if (copy_from_user(&header.hdr.s, header.hdrptr,
                                   sizeof(wavefront_multisample)))
                        return -EFAULT;
 
@@ -1698,32 +1697,28 @@ wavefront_load_patch (const char *addr)
 
        case WF_ST_ALIAS:
 
-               if (copy_from_user((unsigned char *) &header.hdr.a,
-                                  (unsigned char *) header.hdrptr,
+               if (copy_from_user(&header.hdr.a, header.hdrptr,
                                   sizeof (wavefront_alias)))
                        return -EFAULT;
 
                return wavefront_send_alias (&header);
 
        case WF_ST_DRUM:
-               if (copy_from_user((unsigned char *) &header.hdr.d, 
-                                  (unsigned char *) header.hdrptr,
+               if (copy_from_user(&header.hdr.d, header.hdrptr,
                                   sizeof (wavefront_drum)))
                        return -EFAULT;
 
                return wavefront_send_drum (&header);
 
        case WF_ST_PATCH:
-               if (copy_from_user((unsigned char *) &header.hdr.p, 
-                                  (unsigned char *) header.hdrptr,
+               if (copy_from_user(&header.hdr.p, header.hdrptr,
                                   sizeof (wavefront_patch)))
                        return -EFAULT;
 
                return wavefront_send_patch (&header);
 
        case WF_ST_PROGRAM:
-               if (copy_from_user((unsigned char *) &header.hdr.pr, 
-                                  (unsigned char *) header.hdrptr,
+               if (copy_from_user(&header.hdr.pr, header.hdrptr,
                                   sizeof (wavefront_program)))
                        return -EFAULT;
 
@@ -1940,18 +1935,18 @@ wavefront_ioctl(struct inode *inode, struct file *file,
        switch (cmd) {
 
        case WFCTL_WFCMD:
-               if (copy_from_user(&wc, (void *) arg, sizeof (wc)))
+               if (copy_from_user(&wc, (void __user *) arg, sizeof (wc)))
                        return -EFAULT;
                
                if ((err = wavefront_synth_control (cmd, &wc)) == 0) {
-                       if (copy_to_user ((void *) arg, &wc, sizeof (wc)))
+                       if (copy_to_user ((void __user *) arg, &wc, sizeof (wc)))
                                return -EFAULT;
                }
 
                return err;
                
        case WFCTL_LOAD_SPP:
-               return wavefront_load_patch ((const char *) arg);
+               return wavefront_load_patch ((const char __user *) arg);
                
        default:
                printk (KERN_WARNING LOGNAME "invalid ioctl %#x\n", cmd);
@@ -1998,7 +1993,7 @@ wavefront_oss_close (int devno)
 }
 
 static int
-wavefront_oss_ioctl (int devno, unsigned int cmd, caddr_t arg)
+wavefront_oss_ioctl (int devno, unsigned int cmd, void __user * arg)
 
 {
        wavefront_control wc;
@@ -2006,8 +2001,7 @@ wavefront_oss_ioctl (int devno, unsigned int cmd, caddr_t arg)
 
        switch (cmd) {
        case SNDCTL_SYNTH_INFO:
-               if(copy_to_user(&((char *) arg)[0], &wavefront_info,
-                       sizeof (wavefront_info)))
+               if(copy_to_user(arg, &wavefront_info, sizeof (wavefront_info)))
                        return -EFAULT;
                return 0;
 
@@ -2043,7 +2037,7 @@ wavefront_oss_ioctl (int devno, unsigned int cmd, caddr_t arg)
 }
 
 int
-wavefront_oss_load_patch (int devno, int format, const char *addr,
+wavefront_oss_load_patch (int devno, int format, const char __user *addr,
                          int offs, int count, int pmgr_flag)
 {
 
@@ -3003,7 +2997,7 @@ wffx_ioctl (wavefront_fx_info *r)
                                return -(EINVAL);
                        }
                        if (copy_from_user(page_data,
-                                          (unsigned char *)r->data[3],
+                                          (unsigned char __user *)r->data[3],
                                           r->data[2]))
                                return -EFAULT;
                        pd = page_data;