Skip to content

Commit ad90a73

Browse files
Andre Edichdavem330
authored andcommitted
smsc95xx: use usbnet->driver_priv
Using `void *driver_priv` instead of `unsigned long data[]` is more straightforward way to recover the `struct smsc95xx_priv *` from the `struct net_device *`. Signed-off-by: Andre Edich <[email protected]> Signed-off-by: David S. Miller <[email protected]>
1 parent 368be1c commit ad90a73

File tree

1 file changed

+28
-33
lines changed

1 file changed

+28
-33
lines changed

drivers/net/usb/smsc95xx.c

Lines changed: 28 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -457,7 +457,7 @@ static unsigned int smsc95xx_hash(char addr[ETH_ALEN])
457457
static void smsc95xx_set_multicast(struct net_device *netdev)
458458
{
459459
struct usbnet *dev = netdev_priv(netdev);
460-
struct smsc95xx_priv *pdata = (struct smsc95xx_priv *)(dev->data[0]);
460+
struct smsc95xx_priv *pdata = dev->driver_priv;
461461
unsigned long flags;
462462
int ret;
463463

@@ -552,7 +552,7 @@ static int smsc95xx_phy_update_flowcontrol(struct usbnet *dev, u8 duplex,
552552

553553
static int smsc95xx_link_reset(struct usbnet *dev)
554554
{
555-
struct smsc95xx_priv *pdata = (struct smsc95xx_priv *)(dev->data[0]);
555+
struct smsc95xx_priv *pdata = dev->driver_priv;
556556
struct mii_if_info *mii = &dev->mii;
557557
struct ethtool_cmd ecmd = { .cmd = ETHTOOL_GSET };
558558
unsigned long flags;
@@ -620,7 +620,7 @@ static void smsc95xx_status(struct usbnet *dev, struct urb *urb)
620620

621621
static void set_carrier(struct usbnet *dev, bool link)
622622
{
623-
struct smsc95xx_priv *pdata = (struct smsc95xx_priv *)(dev->data[0]);
623+
struct smsc95xx_priv *pdata = dev->driver_priv;
624624

625625
if (pdata->link_ok == link)
626626
return;
@@ -749,7 +749,7 @@ static void smsc95xx_ethtool_get_wol(struct net_device *net,
749749
struct ethtool_wolinfo *wolinfo)
750750
{
751751
struct usbnet *dev = netdev_priv(net);
752-
struct smsc95xx_priv *pdata = (struct smsc95xx_priv *)(dev->data[0]);
752+
struct smsc95xx_priv *pdata = dev->driver_priv;
753753

754754
wolinfo->supported = SUPPORTED_WAKE;
755755
wolinfo->wolopts = pdata->wolopts;
@@ -759,7 +759,7 @@ static int smsc95xx_ethtool_set_wol(struct net_device *net,
759759
struct ethtool_wolinfo *wolinfo)
760760
{
761761
struct usbnet *dev = netdev_priv(net);
762-
struct smsc95xx_priv *pdata = (struct smsc95xx_priv *)(dev->data[0]);
762+
struct smsc95xx_priv *pdata = dev->driver_priv;
763763
int ret;
764764

765765
if (wolinfo->wolopts & ~SUPPORTED_WAKE)
@@ -798,7 +798,7 @@ static int get_mdix_status(struct net_device *net)
798798
static void set_mdix_status(struct net_device *net, __u8 mdix_ctrl)
799799
{
800800
struct usbnet *dev = netdev_priv(net);
801-
struct smsc95xx_priv *pdata = (struct smsc95xx_priv *)(dev->data[0]);
801+
struct smsc95xx_priv *pdata = dev->driver_priv;
802802
int buf;
803803

804804
if ((pdata->chip_id == ID_REV_CHIP_ID_9500A_) ||
@@ -847,7 +847,7 @@ static int smsc95xx_get_link_ksettings(struct net_device *net,
847847
struct ethtool_link_ksettings *cmd)
848848
{
849849
struct usbnet *dev = netdev_priv(net);
850-
struct smsc95xx_priv *pdata = (struct smsc95xx_priv *)(dev->data[0]);
850+
struct smsc95xx_priv *pdata = dev->driver_priv;
851851
int retval;
852852

853853
retval = usbnet_get_link_ksettings(net, cmd);
@@ -862,7 +862,7 @@ static int smsc95xx_set_link_ksettings(struct net_device *net,
862862
const struct ethtool_link_ksettings *cmd)
863863
{
864864
struct usbnet *dev = netdev_priv(net);
865-
struct smsc95xx_priv *pdata = (struct smsc95xx_priv *)(dev->data[0]);
865+
struct smsc95xx_priv *pdata = dev->driver_priv;
866866
int retval;
867867

868868
if (pdata->mdix_ctrl != cmd->base.eth_tp_mdix_ctrl)
@@ -944,7 +944,7 @@ static int smsc95xx_set_mac_address(struct usbnet *dev)
944944
/* starts the TX path */
945945
static int smsc95xx_start_tx_path(struct usbnet *dev)
946946
{
947-
struct smsc95xx_priv *pdata = (struct smsc95xx_priv *)(dev->data[0]);
947+
struct smsc95xx_priv *pdata = dev->driver_priv;
948948
unsigned long flags;
949949
int ret;
950950

@@ -964,7 +964,7 @@ static int smsc95xx_start_tx_path(struct usbnet *dev)
964964
/* Starts the Receive path */
965965
static int smsc95xx_start_rx_path(struct usbnet *dev, int in_pm)
966966
{
967-
struct smsc95xx_priv *pdata = (struct smsc95xx_priv *)(dev->data[0]);
967+
struct smsc95xx_priv *pdata = dev->driver_priv;
968968
unsigned long flags;
969969

970970
spin_lock_irqsave(&pdata->mac_cr_lock, flags);
@@ -1021,7 +1021,7 @@ static int smsc95xx_phy_initialize(struct usbnet *dev)
10211021

10221022
static int smsc95xx_reset(struct usbnet *dev)
10231023
{
1024-
struct smsc95xx_priv *pdata = (struct smsc95xx_priv *)(dev->data[0]);
1024+
struct smsc95xx_priv *pdata = dev->driver_priv;
10251025
u32 read_buf, write_buf, burst_cap;
10261026
int ret = 0, timeout;
10271027

@@ -1249,7 +1249,7 @@ static const struct net_device_ops smsc95xx_netdev_ops = {
12491249

12501250
static int smsc95xx_bind(struct usbnet *dev, struct usb_interface *intf)
12511251
{
1252-
struct smsc95xx_priv *pdata = NULL;
1252+
struct smsc95xx_priv *pdata;
12531253
u32 val;
12541254
int ret;
12551255

@@ -1261,13 +1261,12 @@ static int smsc95xx_bind(struct usbnet *dev, struct usb_interface *intf)
12611261
return ret;
12621262
}
12631263

1264-
dev->data[0] = (unsigned long)kzalloc(sizeof(struct smsc95xx_priv),
1265-
GFP_KERNEL);
1266-
1267-
pdata = (struct smsc95xx_priv *)(dev->data[0]);
1264+
pdata = kzalloc(sizeof(*pdata), GFP_KERNEL);
12681265
if (!pdata)
12691266
return -ENOMEM;
12701267

1268+
dev->driver_priv = pdata;
1269+
12711270
spin_lock_init(&pdata->mac_cr_lock);
12721271

12731272
/* LAN95xx devices do not alter the computed checksum of 0 to 0xffff.
@@ -1330,15 +1329,11 @@ static int smsc95xx_bind(struct usbnet *dev, struct usb_interface *intf)
13301329

13311330
static void smsc95xx_unbind(struct usbnet *dev, struct usb_interface *intf)
13321331
{
1333-
struct smsc95xx_priv *pdata = (struct smsc95xx_priv *)(dev->data[0]);
1334-
1335-
if (pdata) {
1336-
cancel_delayed_work_sync(&pdata->carrier_check);
1337-
netif_dbg(dev, ifdown, dev->net, "free pdata\n");
1338-
kfree(pdata);
1339-
pdata = NULL;
1340-
dev->data[0] = 0;
1341-
}
1332+
struct smsc95xx_priv *pdata = dev->driver_priv;
1333+
1334+
cancel_delayed_work_sync(&pdata->carrier_check);
1335+
netif_dbg(dev, ifdown, dev->net, "free pdata\n");
1336+
kfree(pdata);
13421337
}
13431338

13441339
static u32 smsc_crc(const u8 *buffer, size_t len, int filter)
@@ -1388,7 +1383,7 @@ static int smsc95xx_link_ok_nopm(struct usbnet *dev)
13881383

13891384
static int smsc95xx_enter_suspend0(struct usbnet *dev)
13901385
{
1391-
struct smsc95xx_priv *pdata = (struct smsc95xx_priv *)(dev->data[0]);
1386+
struct smsc95xx_priv *pdata = dev->driver_priv;
13921387
u32 val;
13931388
int ret;
13941389

@@ -1427,7 +1422,7 @@ static int smsc95xx_enter_suspend0(struct usbnet *dev)
14271422

14281423
static int smsc95xx_enter_suspend1(struct usbnet *dev)
14291424
{
1430-
struct smsc95xx_priv *pdata = (struct smsc95xx_priv *)(dev->data[0]);
1425+
struct smsc95xx_priv *pdata = dev->driver_priv;
14311426
u32 val;
14321427
int ret;
14331428

@@ -1474,7 +1469,7 @@ static int smsc95xx_enter_suspend1(struct usbnet *dev)
14741469

14751470
static int smsc95xx_enter_suspend2(struct usbnet *dev)
14761471
{
1477-
struct smsc95xx_priv *pdata = (struct smsc95xx_priv *)(dev->data[0]);
1472+
struct smsc95xx_priv *pdata = dev->driver_priv;
14781473
u32 val;
14791474
int ret;
14801475

@@ -1496,7 +1491,7 @@ static int smsc95xx_enter_suspend2(struct usbnet *dev)
14961491

14971492
static int smsc95xx_enter_suspend3(struct usbnet *dev)
14981493
{
1499-
struct smsc95xx_priv *pdata = (struct smsc95xx_priv *)(dev->data[0]);
1494+
struct smsc95xx_priv *pdata = dev->driver_priv;
15001495
u32 val;
15011496
int ret;
15021497

@@ -1535,7 +1530,7 @@ static int smsc95xx_enter_suspend3(struct usbnet *dev)
15351530

15361531
static int smsc95xx_autosuspend(struct usbnet *dev, u32 link_up)
15371532
{
1538-
struct smsc95xx_priv *pdata = (struct smsc95xx_priv *)(dev->data[0]);
1533+
struct smsc95xx_priv *pdata = dev->driver_priv;
15391534
int ret;
15401535

15411536
if (!netif_running(dev->net)) {
@@ -1583,7 +1578,7 @@ static int smsc95xx_autosuspend(struct usbnet *dev, u32 link_up)
15831578
static int smsc95xx_suspend(struct usb_interface *intf, pm_message_t message)
15841579
{
15851580
struct usbnet *dev = usb_get_intfdata(intf);
1586-
struct smsc95xx_priv *pdata = (struct smsc95xx_priv *)(dev->data[0]);
1581+
struct smsc95xx_priv *pdata = dev->driver_priv;
15871582
u32 val, link_up;
15881583
int ret;
15891584

@@ -1854,7 +1849,7 @@ static int smsc95xx_resume(struct usb_interface *intf)
18541849
u32 val;
18551850

18561851
BUG_ON(!dev);
1857-
pdata = (struct smsc95xx_priv *)(dev->data[0]);
1852+
pdata = dev->driver_priv;
18581853
suspend_flags = pdata->suspend_flags;
18591854

18601855
netdev_dbg(dev->net, "resume suspend_flags=0x%02x\n", suspend_flags);
@@ -2074,7 +2069,7 @@ static struct sk_buff *smsc95xx_tx_fixup(struct usbnet *dev,
20742069

20752070
static int smsc95xx_manage_power(struct usbnet *dev, int on)
20762071
{
2077-
struct smsc95xx_priv *pdata = (struct smsc95xx_priv *)(dev->data[0]);
2072+
struct smsc95xx_priv *pdata = dev->driver_priv;
20782073

20792074
dev->intf->needs_remote_wakeup = on;
20802075

0 commit comments

Comments
 (0)