diff options
Diffstat (limited to 'drivers/net/wan/lmc/lmc_main.c')
| -rw-r--r-- | drivers/net/wan/lmc/lmc_main.c | 33 | 
1 files changed, 16 insertions, 17 deletions
| diff --git a/drivers/net/wan/lmc/lmc_main.c b/drivers/net/wan/lmc/lmc_main.c index 6c163db52835..ed687bf6ec47 100644 --- a/drivers/net/wan/lmc/lmc_main.c +++ b/drivers/net/wan/lmc/lmc_main.c @@ -105,7 +105,8 @@ static void lmc_driver_timeout(struct net_device *dev, unsigned int txqueue);   * linux reserves 16 device specific IOCTLs.  We call them   * LMCIOC* to control various bits of our world.   */ -int lmc_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd) /*fold00*/ +static int lmc_siocdevprivate(struct net_device *dev, struct ifreq *ifr, +			      void __user *data, int cmd) /*fold00*/  {      lmc_softc_t *sc = dev_to_sc(dev);      lmc_ctl_t ctl; @@ -124,7 +125,7 @@ int lmc_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd) /*fold00*/           * To date internally, just copy this out to the user.           */      case LMCIOCGINFO: /*fold01*/ -	if (copy_to_user(ifr->ifr_data, &sc->ictl, sizeof(lmc_ctl_t))) +	if (copy_to_user(data, &sc->ictl, sizeof(lmc_ctl_t)))  		ret = -EFAULT;  	else  		ret = 0; @@ -141,7 +142,7 @@ int lmc_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd) /*fold00*/              break;          } -	if (copy_from_user(&ctl, ifr->ifr_data, sizeof(lmc_ctl_t))) { +	if (copy_from_user(&ctl, data, sizeof(lmc_ctl_t))) {  		ret = -EFAULT;  		break;  	} @@ -171,7 +172,7 @@ int lmc_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd) /*fold00*/  		break;  	    } -	    if (copy_from_user(&new_type, ifr->ifr_data, sizeof(u16))) { +	    if (copy_from_user(&new_type, data, sizeof(u16))) {  		ret = -EFAULT;  		break;  	    } @@ -211,8 +212,7 @@ int lmc_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd) /*fold00*/          sc->lmc_xinfo.Magic1 = 0xDEADBEEF; -        if (copy_to_user(ifr->ifr_data, &sc->lmc_xinfo, -			 sizeof(struct lmc_xinfo))) +	if (copy_to_user(data, &sc->lmc_xinfo, sizeof(struct lmc_xinfo)))  		ret = -EFAULT;  	else  		ret = 0; @@ -245,9 +245,9 @@ int lmc_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd) /*fold00*/  			    regVal & T1FRAMER_SEF_MASK;  	    }  	    spin_unlock_irqrestore(&sc->lmc_lock, flags); -	    if (copy_to_user(ifr->ifr_data, &sc->lmc_device->stats, +	    if (copy_to_user(data, &sc->lmc_device->stats,  			     sizeof(sc->lmc_device->stats)) || -		copy_to_user(ifr->ifr_data + sizeof(sc->lmc_device->stats), +		copy_to_user(data + sizeof(sc->lmc_device->stats),  			     &sc->extra_stats, sizeof(sc->extra_stats)))  		    ret = -EFAULT;  	    else @@ -282,7 +282,7 @@ int lmc_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd) /*fold00*/              break;          } -	if (copy_from_user(&ctl, ifr->ifr_data, sizeof(lmc_ctl_t))) { +	if (copy_from_user(&ctl, data, sizeof(lmc_ctl_t))) {  		ret = -EFAULT;  		break;  	} @@ -314,11 +314,11 @@ int lmc_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd) /*fold00*/  #ifdef DEBUG      case LMCIOCDUMPEVENTLOG: -	if (copy_to_user(ifr->ifr_data, &lmcEventLogIndex, sizeof(u32))) { +	if (copy_to_user(data, &lmcEventLogIndex, sizeof(u32))) {  		ret = -EFAULT;  		break;  	} -	if (copy_to_user(ifr->ifr_data + sizeof(u32), lmcEventLogBuf, +	if (copy_to_user(data + sizeof(u32), lmcEventLogBuf,  			 sizeof(lmcEventLogBuf)))  		ret = -EFAULT;  	else @@ -346,7 +346,7 @@ int lmc_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd) /*fold00*/               */              netif_stop_queue(dev); -	    if (copy_from_user(&xc, ifr->ifr_data, sizeof(struct lmc_xilinx_control))) { +	    if (copy_from_user(&xc, data, sizeof(struct lmc_xilinx_control))) {  		ret = -EFAULT;  		break;  	    } @@ -609,10 +609,8 @@ int lmc_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd) /*fold00*/          }          break; -    default: /*fold01*/ -        /* If we don't know what to do, give the protocol a shot. */ -        ret = lmc_proto_ioctl (sc, ifr, cmd); -        break; +    default: +	break;      }      return ret; @@ -788,7 +786,8 @@ static const struct net_device_ops lmc_ops = {  	.ndo_open       = lmc_open,  	.ndo_stop       = lmc_close,  	.ndo_start_xmit = hdlc_start_xmit, -	.ndo_do_ioctl   = lmc_ioctl, +	.ndo_siocwandev = hdlc_ioctl, +	.ndo_siocdevprivate = lmc_siocdevprivate,  	.ndo_tx_timeout = lmc_driver_timeout,  	.ndo_get_stats  = lmc_get_stats,  }; |