struct mii_ioctl_data *data = (struct mii_ioctl_data *)&req->ifr_data; 
struct mii_ioctl_data *data = if_mii(req); 
static int t1_ioctl(struct net_device *dev, struct ifreq *req, int cmd){        struct adapter *adapter = dev->priv;        struct mii_ioctl_data *data = (struct mii_ioctl_data *)&req->ifr_data;	switch (cmd) {        case SIOCGMIIPHY:                data->phy_id = adapter->port[dev->if_port].phy->addr;                /* FALLTHRU */        case SIOCGMIIREG: {		struct cphy *phy = adapter->port[dev->if_port].phy;		u32 val;		if (!phy->mdio_read)            return -EOPNOTSUPP;		phy->mdio_read(adapter, data->phy_id, 0, data->reg_num & 0x1f,			       &val);                data->val_out = val;                break;	}        case SIOCSMIIREG: {		struct cphy *phy = adapter->port[dev->if_port].phy;                if (!capable(CAP_NET_ADMIN))                    return -EPERM;		if (!phy->mdio_write)            return -EOPNOTSUPP;		phy->mdio_write(adapter, data->phy_id, 0, data->reg_num & 0x1f,			        data->val_in);                break;	}	default:		return -EOPNOTSUPP;	}	return 0;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/91fb4c964c606e63ce0d0d31814728d62a5de9bc/cxgb2.c/buggy/drivers/net/chelsio/cxgb2.c