Merge tag 'tty-5.15-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty
[linux-2.6-microblaze.git] / drivers / char / pcmcia / synclink_cs.c
index fd78d58..78baba5 100644 (file)
@@ -4050,16 +4050,15 @@ static int hdlcdev_close(struct net_device *dev)
  * called by network layer to process IOCTL call to network device
  *
  * dev  pointer to network device structure
  * called by network layer to process IOCTL call to network device
  *
  * dev  pointer to network device structure
- * ifr  pointer to network interface request structure
- * cmd  IOCTL command code
+ * ifs  pointer to network interface settings structure
  *
  * returns 0 if success, otherwise error code
  */
  *
  * returns 0 if success, otherwise error code
  */
-static int hdlcdev_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
+static int hdlcdev_wan_ioctl(struct net_device *dev, struct if_settings *ifs)
 {
        const size_t size = sizeof(sync_serial_settings);
        sync_serial_settings new_line;
 {
        const size_t size = sizeof(sync_serial_settings);
        sync_serial_settings new_line;
-       sync_serial_settings __user *line = ifr->ifr_settings.ifs_ifsu.sync;
+       sync_serial_settings __user *line = ifs->ifs_ifsu.sync;
        MGSLPC_INFO *info = dev_to_port(dev);
        unsigned int flags;
 
        MGSLPC_INFO *info = dev_to_port(dev);
        unsigned int flags;
 
@@ -4070,17 +4069,14 @@ static int hdlcdev_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
        if (info->port.count)
                return -EBUSY;
 
        if (info->port.count)
                return -EBUSY;
 
-       if (cmd != SIOCWANDEV)
-               return hdlc_ioctl(dev, ifr, cmd);
-
        memset(&new_line, 0, size);
 
        memset(&new_line, 0, size);
 
-       switch(ifr->ifr_settings.type) {
+       switch (ifs->type) {
        case IF_GET_IFACE: /* return current sync_serial_settings */
 
        case IF_GET_IFACE: /* return current sync_serial_settings */
 
-               ifr->ifr_settings.type = IF_IFACE_SYNC_SERIAL;
-               if (ifr->ifr_settings.size < size) {
-                       ifr->ifr_settings.size = size; /* data size wanted */
+               ifs->type = IF_IFACE_SYNC_SERIAL;
+               if (ifs->size < size) {
+                       ifs->size = size; /* data size wanted */
                        return -ENOBUFS;
                }
 
                        return -ENOBUFS;
                }
 
@@ -4148,9 +4144,8 @@ static int hdlcdev_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
                        tty_kref_put(tty);
                }
                return 0;
                        tty_kref_put(tty);
                }
                return 0;
-
        default:
        default:
-               return hdlc_ioctl(dev, ifr, cmd);
+               return hdlc_ioctl(dev, ifs);
        }
 }
 
        }
 }
 
@@ -4225,7 +4220,7 @@ static const struct net_device_ops hdlcdev_ops = {
        .ndo_open       = hdlcdev_open,
        .ndo_stop       = hdlcdev_close,
        .ndo_start_xmit = hdlc_start_xmit,
        .ndo_open       = hdlcdev_open,
        .ndo_stop       = hdlcdev_close,
        .ndo_start_xmit = hdlc_start_xmit,
-       .ndo_do_ioctl   = hdlcdev_ioctl,
+       .ndo_siocwandev = hdlcdev_wan_ioctl,
        .ndo_tx_timeout = hdlcdev_tx_timeout,
 };
 
        .ndo_tx_timeout = hdlcdev_tx_timeout,
 };