#include <asm/uaccess.h>
#include <linux/usb.h>
#include <linux/ioctl.h>
-
-
+#include "usb-serial.h"
#include "kobil_sct.h"
-//#include "../core/usb-debug.c"
-#ifdef CONFIG_USB_SERIAL_DEBUG
- static int debug = 1;
-#else
- static int debug;
-#endif
-
-#include "usb-serial.h"
+static int debug;
/* Version Information */
#define DRIVER_VERSION "21/05/2004"
if (port->write_urb){
usb_unlink_urb( port->write_urb );
usb_free_urb( port->write_urb );
- port->write_urb = 0;
+ port->write_urb = NULL;
}
if (port->interrupt_in_urb){
usb_unlink_urb (port->interrupt_in_urb);
memcpy (priv->buf + priv->filled, buf, count);
}
- usb_serial_debug_data (__FILE__, __FUNCTION__, count, priv->buf + priv->filled);
+ usb_serial_debug_data(debug, &port->dev, __FUNCTION__, count, priv->buf + priv->filled);
priv->filled = priv->filled + count;
unsigned char *transfer_buffer;
int transfer_buffer_length = 8;
char *settings;
+ void __user *user_arg = (void __user *)arg;
priv = usb_get_serial_port_data(port);
if ((priv->device_type == KOBIL_USBTWIN_PRODUCT_ID) || (priv->device_type == KOBIL_KAAN_SIM_PRODUCT_ID)) {
switch (cmd) {
case TCGETS: // 0x5401
- result = verify_area(VERIFY_WRITE, (void *)arg, sizeof(struct termios));
+ result = verify_area(VERIFY_WRITE, user_arg, sizeof(struct termios));
if (result) {
dbg("%s - port %d Error in verify_area", __FUNCTION__, port->number);
return(result);
}
- if (kernel_termios_to_user_termios((struct termios *)arg,
+ if (kernel_termios_to_user_termios((struct termios __user *)arg,
&priv->internal_termios))
return -EFAULT;
return 0;
dbg("%s - port %d Error: port->tty->termios is NULL", __FUNCTION__, port->number);
return -ENOTTY;
}
- result = verify_area(VERIFY_READ, (void *)arg, sizeof(struct termios));
+ result = verify_area(VERIFY_READ, user_arg, sizeof(struct termios));
if (result) {
dbg("%s - port %d Error in verify_area", __FUNCTION__, port->number);
return result;
}
if (user_termios_to_kernel_termios(&priv->internal_termios,
- (struct termios *)arg))
+ (struct termios __user *)arg))
return -EFAULT;
settings = (unsigned char *) kmalloc(50, GFP_KERNEL);
MODULE_DESCRIPTION( DRIVER_DESC );
MODULE_LICENSE( "GPL" );
-MODULE_PARM(debug, "i");
+module_param(debug, bool, S_IRUGO | S_IWUSR);
MODULE_PARM_DESC(debug, "Debug enabled or not");