X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=drivers%2Fchar%2Fmwave%2Fmwavedd.c;h=2983c278ca8c6501992ba53188e04162d50d2175;hb=9bf4aaab3e101692164d49b7ca357651eb691cb6;hp=1a332b2f857d99715278aa86cfc96164048bb527;hpb=5273a3df6485dc2ad6aa7ddd441b9a21970f003b;p=linux-2.6.git diff --git a/drivers/char/mwave/mwavedd.c b/drivers/char/mwave/mwavedd.c index 1a332b2f8..2983c278c 100644 --- a/drivers/char/mwave/mwavedd.c +++ b/drivers/char/mwave/mwavedd.c @@ -94,8 +94,8 @@ static int mwave_open(struct inode *inode, struct file *file) unsigned int retval = 0; PRINTK_3(TRACE_MWAVE, - "mwavedd::mwave_open, entry inode %x file %x\n", - (int) inode, (int) file); + "mwavedd::mwave_open, entry inode %p file %p\n", + inode, file); PRINTK_2(TRACE_MWAVE, "mwavedd::mwave_open, exit return retval %x\n", retval); @@ -107,8 +107,8 @@ static int mwave_close(struct inode *inode, struct file *file) unsigned int retval = 0; PRINTK_3(TRACE_MWAVE, - "mwavedd::mwave_close, entry inode %x file %x\n", - (int) inode, (int) file); + "mwavedd::mwave_close, entry inode %p file %p\n", + inode, file); PRINTK_2(TRACE_MWAVE, "mwavedd::mwave_close, exit retval %x\n", retval); @@ -121,10 +121,11 @@ static int mwave_ioctl(struct inode *inode, struct file *file, { unsigned int retval = 0; pMWAVE_DEVICE_DATA pDrvData = &mwave_s_mdd; + void __user *arg = (void __user *)ioarg; PRINTK_5(TRACE_MWAVE, - "mwavedd::mwave_ioctl, entry inode %x file %x cmd %x arg %x\n", - (int) inode, (int) file, iocmd, (int) ioarg); + "mwavedd::mwave_ioctl, entry inode %p file %p cmd %x arg %x\n", + inode, file, iocmd, (int) ioarg); switch (iocmd) { @@ -164,8 +165,7 @@ static int mwave_ioctl(struct inode *inode, struct file *file, " retval %x from tp3780I_QueryAbilities\n", retval); if (retval == 0) { - if( copy_to_user((char *) ioarg, - (char *) &rAbilities, + if( copy_to_user(arg, &rAbilities, sizeof(MW_ABILITIES)) ) return -EFAULT; } @@ -179,13 +179,12 @@ static int mwave_ioctl(struct inode *inode, struct file *file, case IOCTL_MW_READ_DATA: case IOCTL_MW_READCLEAR_DATA: { MW_READWRITE rReadData; - unsigned short *pusBuffer = 0; + unsigned short __user *pusBuffer = NULL; - if( copy_from_user((char *) &rReadData, - (char *) ioarg, + if( copy_from_user(&rReadData, arg, sizeof(MW_READWRITE)) ) return -EFAULT; - pusBuffer = (unsigned short *) (rReadData.pBuf); + pusBuffer = (unsigned short __user *) (rReadData.pBuf); PRINTK_4(TRACE_MWAVE, "mwavedd::mwave_ioctl IOCTL_MW_READ_DATA," @@ -193,7 +192,7 @@ static int mwave_ioctl(struct inode *inode, struct file *file, rReadData.ulDataLength, ioarg, pusBuffer); retval = tp3780I_ReadWriteDspDStore(&pDrvData->rBDData, iocmd, - (void *) pusBuffer, + pusBuffer, rReadData.ulDataLength, rReadData.usDspAddress); } @@ -201,12 +200,12 @@ static int mwave_ioctl(struct inode *inode, struct file *file, case IOCTL_MW_READ_INST: { MW_READWRITE rReadData; - unsigned short *pusBuffer = 0; + unsigned short __user *pusBuffer = NULL; - if( copy_from_user((char *) &rReadData, (char *) ioarg, + if( copy_from_user(&rReadData, arg, sizeof(MW_READWRITE)) ) return -EFAULT; - pusBuffer = (unsigned short *) (rReadData.pBuf); + pusBuffer = (unsigned short __user *) (rReadData.pBuf); PRINTK_4(TRACE_MWAVE, "mwavedd::mwave_ioctl IOCTL_MW_READ_INST," @@ -222,13 +221,12 @@ static int mwave_ioctl(struct inode *inode, struct file *file, case IOCTL_MW_WRITE_DATA: { MW_READWRITE rWriteData; - unsigned short *pusBuffer = 0; + unsigned short __user *pusBuffer = NULL; - if( copy_from_user((char *) &rWriteData, - (char *) ioarg, + if( copy_from_user(&rWriteData, arg, sizeof(MW_READWRITE)) ) return -EFAULT; - pusBuffer = (unsigned short *) (rWriteData.pBuf); + pusBuffer = (unsigned short __user *) (rWriteData.pBuf); PRINTK_4(TRACE_MWAVE, "mwavedd::mwave_ioctl IOCTL_MW_WRITE_DATA," @@ -244,13 +242,12 @@ static int mwave_ioctl(struct inode *inode, struct file *file, case IOCTL_MW_WRITE_INST: { MW_READWRITE rWriteData; - unsigned short *pusBuffer = 0; + unsigned short __user *pusBuffer = NULL; - if( copy_from_user((char *) &rWriteData, - (char *) ioarg, + if( copy_from_user(&rWriteData, arg, sizeof(MW_READWRITE)) ) return -EFAULT; - pusBuffer = (unsigned short *) (rWriteData.pBuf); + pusBuffer = (unsigned short __user *)(rWriteData.pBuf); PRINTK_4(TRACE_MWAVE, "mwavedd::mwave_ioctl IOCTL_MW_WRITE_INST," @@ -388,23 +385,23 @@ static int mwave_ioctl(struct inode *inode, struct file *file, } -static ssize_t mwave_read(struct file *file, char *buf, size_t count, +static ssize_t mwave_read(struct file *file, char __user *buf, size_t count, loff_t * ppos) { PRINTK_5(TRACE_MWAVE, - "mwavedd::mwave_read entry file %p, buf %p, count %x ppos %p\n", + "mwavedd::mwave_read entry file %p, buf %p, count %zx ppos %p\n", file, buf, count, ppos); return -EINVAL; } -static ssize_t mwave_write(struct file *file, const char *buf, +static ssize_t mwave_write(struct file *file, const char __user *buf, size_t count, loff_t * ppos) { PRINTK_5(TRACE_MWAVE, "mwavedd::mwave_write entry file %p, buf %p," - " count %x ppos %p\n", + " count %zx ppos %p\n", file, buf, count, ppos); return -EINVAL; @@ -466,6 +463,7 @@ static struct file_operations mwave_fops = { static struct miscdevice mwave_misc_dev = { MWAVE_MINOR, "mwave", &mwave_fops }; +#if 0 /* totally b0rked */ /* * sysfs support */ @@ -499,6 +497,7 @@ static struct device_attribute * const mwave_dev_attrs[] = { &dev_attr_uart_irq, &dev_attr_uart_io, }; +#endif /* * mwave_init is called on module load @@ -508,11 +507,11 @@ static struct device_attribute * const mwave_dev_attrs[] = { */ static void mwave_exit(void) { - int i; pMWAVE_DEVICE_DATA pDrvData = &mwave_s_mdd; PRINTK_1(TRACE_MWAVE, "mwavedd::mwave_exit entry\n"); +#if 0 for (i = 0; i < pDrvData->nr_registered_attrs; i++) device_remove_file(&mwave_device, mwave_dev_attrs[i]); pDrvData->nr_registered_attrs = 0; @@ -521,6 +520,7 @@ static void mwave_exit(void) device_unregister(&mwave_device); pDrvData->device_registered = FALSE; } +#endif if ( pDrvData->sLine >= 0 ) { unregister_serial(pDrvData->sLine); @@ -638,6 +638,7 @@ static int __init mwave_init(void) } /* uart is registered */ +#if 0 /* sysfs */ memset(&mwave_device, 0, sizeof (struct device)); snprintf(mwave_device.bus_id, BUS_ID_SIZE, "mwave"); @@ -655,6 +656,7 @@ static int __init mwave_init(void) } pDrvData->nr_registered_attrs++; } +#endif /* SUCCESS! */ return 0;