tty: convert tty_ldisc_ops 'read()' function to take a kernel pointer
[linux-2.6-block.git] / drivers / bluetooth / hci_ldisc.c
index f83d67eafc9f0e8739dfa6743c086ce3360ee2af..dd92aea15b8be4e7565b96195bdad5cec9058e58 100644 (file)
@@ -802,7 +802,8 @@ static int hci_uart_tty_ioctl(struct tty_struct *tty, struct file *file,
  * We don't provide read/write/poll interface for user space.
  */
 static ssize_t hci_uart_tty_read(struct tty_struct *tty, struct file *file,
-                                unsigned char __user *buf, size_t nr)
+                                unsigned char *buf, size_t nr,
+                                void **cookie, unsigned long offset)
 {
        return 0;
 }
@@ -819,29 +820,28 @@ static __poll_t hci_uart_tty_poll(struct tty_struct *tty,
        return 0;
 }
 
+static struct tty_ldisc_ops hci_uart_ldisc = {
+       .owner          = THIS_MODULE,
+       .magic          = TTY_LDISC_MAGIC,
+       .name           = "n_hci",
+       .open           = hci_uart_tty_open,
+       .close          = hci_uart_tty_close,
+       .read           = hci_uart_tty_read,
+       .write          = hci_uart_tty_write,
+       .ioctl          = hci_uart_tty_ioctl,
+       .compat_ioctl   = hci_uart_tty_ioctl,
+       .poll           = hci_uart_tty_poll,
+       .receive_buf    = hci_uart_tty_receive,
+       .write_wakeup   = hci_uart_tty_wakeup,
+};
+
 static int __init hci_uart_init(void)
 {
-       static struct tty_ldisc_ops hci_uart_ldisc;
        int err;
 
        BT_INFO("HCI UART driver ver %s", VERSION);
 
        /* Register the tty discipline */
-
-       memset(&hci_uart_ldisc, 0, sizeof(hci_uart_ldisc));
-       hci_uart_ldisc.magic            = TTY_LDISC_MAGIC;
-       hci_uart_ldisc.name             = "n_hci";
-       hci_uart_ldisc.open             = hci_uart_tty_open;
-       hci_uart_ldisc.close            = hci_uart_tty_close;
-       hci_uart_ldisc.read             = hci_uart_tty_read;
-       hci_uart_ldisc.write            = hci_uart_tty_write;
-       hci_uart_ldisc.ioctl            = hci_uart_tty_ioctl;
-       hci_uart_ldisc.compat_ioctl     = hci_uart_tty_ioctl;
-       hci_uart_ldisc.poll             = hci_uart_tty_poll;
-       hci_uart_ldisc.receive_buf      = hci_uart_tty_receive;
-       hci_uart_ldisc.write_wakeup     = hci_uart_tty_wakeup;
-       hci_uart_ldisc.owner            = THIS_MODULE;
-
        err = tty_register_ldisc(N_HCI, &hci_uart_ldisc);
        if (err) {
                BT_ERR("HCI line discipline registration failed. (%d)", err);