aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ibm_newemac/core.c
diff options
context:
space:
mode:
authorLen Brown <len.brown@intel.com>2009-09-19 00:11:26 -0400
committerLen Brown <len.brown@intel.com>2009-09-19 00:11:26 -0400
commitc602c65b2f81d14456771d1e3f15d1381f4b7efa (patch)
treef1f833c8dd6c1519eeb101be32f7fe54a9605af5 /drivers/net/ibm_newemac/core.c
parent3834f47291df475be3f0f0fb7ccaa098967cc054 (diff)
parent78f28b7c555359c67c2a0d23f7436e915329421e (diff)
Merge branch 'linus' into sfi-release
Conflicts: arch/x86/kernel/setup.c drivers/acpi/power.c init/main.c Signed-off-by: Len Brown <len.brown@intel.com>
Diffstat (limited to 'drivers/net/ibm_newemac/core.c')
-rw-r--r--drivers/net/ibm_newemac/core.c17
1 files changed, 7 insertions, 10 deletions
diff --git a/drivers/net/ibm_newemac/core.c b/drivers/net/ibm_newemac/core.c
index f0f890803710..1d7d7fef414f 100644
--- a/drivers/net/ibm_newemac/core.c
+++ b/drivers/net/ibm_newemac/core.c
@@ -1344,7 +1344,7 @@ static inline int emac_xmit_finish(struct emac_instance *dev, int len)
1344 ++dev->stats.tx_packets; 1344 ++dev->stats.tx_packets;
1345 dev->stats.tx_bytes += len; 1345 dev->stats.tx_bytes += len;
1346 1346
1347 return 0; 1347 return NETDEV_TX_OK;
1348} 1348}
1349 1349
1350/* Tx lock BH */ 1350/* Tx lock BH */
@@ -2209,7 +2209,7 @@ static const struct ethtool_ops emac_ethtool_ops = {
2209static int emac_ioctl(struct net_device *ndev, struct ifreq *rq, int cmd) 2209static int emac_ioctl(struct net_device *ndev, struct ifreq *rq, int cmd)
2210{ 2210{
2211 struct emac_instance *dev = netdev_priv(ndev); 2211 struct emac_instance *dev = netdev_priv(ndev);
2212 uint16_t *data = (uint16_t *) & rq->ifr_ifru; 2212 struct mii_ioctl_data *data = if_mii(rq);
2213 2213
2214 DBG(dev, "ioctl %08x" NL, cmd); 2214 DBG(dev, "ioctl %08x" NL, cmd);
2215 2215
@@ -2218,19 +2218,16 @@ static int emac_ioctl(struct net_device *ndev, struct ifreq *rq, int cmd)
2218 2218
2219 switch (cmd) { 2219 switch (cmd) {
2220 case SIOCGMIIPHY: 2220 case SIOCGMIIPHY:
2221 case SIOCDEVPRIVATE: 2221 data->phy_id = dev->phy.address;
2222 data[0] = dev->phy.address;
2223 /* Fall through */ 2222 /* Fall through */
2224 case SIOCGMIIREG: 2223 case SIOCGMIIREG:
2225 case SIOCDEVPRIVATE + 1: 2224 data->val_out = emac_mdio_read(ndev, dev->phy.address,
2226 data[3] = emac_mdio_read(ndev, dev->phy.address, data[1]); 2225 data->reg_num);
2227 return 0; 2226 return 0;
2228 2227
2229 case SIOCSMIIREG: 2228 case SIOCSMIIREG:
2230 case SIOCDEVPRIVATE + 2: 2229 emac_mdio_write(ndev, dev->phy.address, data->reg_num,
2231 if (!capable(CAP_NET_ADMIN)) 2230 data->val_in);
2232 return -EPERM;
2233 emac_mdio_write(ndev, dev->phy.address, data[1], data[2]);
2234 return 0; 2231 return 0;
2235 default: 2232 default:
2236 return -EOPNOTSUPP; 2233 return -EOPNOTSUPP;