WARNING: please write a help paragraph that fully describes the config symbol with at least 4 lines #80: FILE: drivers/net/ethernet/dlink/Kconfig:35: +config SUNDANCE + tristate "Sundance Alta support" + depends on PCI + select CRC32 + select MII + help + This driver is for the Sundance "Alta" chip. + More specific information and updates are available from + . + WARNING: Missing or malformed SPDX-License-Identifier tag in line 1 #116: FILE: drivers/net/ethernet/dlink/sundance.c:1: +/* sundance.c: A Linux device driver for the Sundance ST201 "Alta". */ WARNING: Block comments use * on subsequent lines #118: FILE: drivers/net/ethernet/dlink/sundance.c:3: +/* + Written 1999-2000 by Donald Becker. WARNING: Block comments use * on subsequent lines #143: FILE: drivers/net/ethernet/dlink/sundance.c:28: +/* The user-configurable values. + These may be modified when a driver module is loaded.*/ WARNING: Block comments use a trailing */ on a separate line #143: FILE: drivers/net/ethernet/dlink/sundance.c:28: + These may be modified when a driver module is loaded.*/ WARNING: line length of 86 exceeds 80 columns #144: FILE: drivers/net/ethernet/dlink/sundance.c:29: +static int debug = 1; /* 1 normal messages, 0 quiet .. 7 verbose. */ WARNING: Block comments use * on subsequent lines #146: FILE: drivers/net/ethernet/dlink/sundance.c:31: +/* Maximum number of multicast addresses to filter (vs. rx-all-multicast). + Typical is a 64 element hash table based on the Ethernet CRC. */ WARNING: Block comments use a trailing */ on a separate line #146: FILE: drivers/net/ethernet/dlink/sundance.c:31: + Typical is a 64 element hash table based on the Ethernet CRC. */ WARNING: Block comments use * on subsequent lines #150: FILE: drivers/net/ethernet/dlink/sundance.c:35: +/* Set the copy breakpoint for the copy-only-tiny-frames scheme. + Setting to > 1518 effectively disables this feature. WARNING: Block comments use a trailing */ on a separate line #152: FILE: drivers/net/ethernet/dlink/sundance.c:37: + need a copy-align. */ ERROR: spaces required around that '=' (ctx:VxV) #154: FILE: drivers/net/ethernet/dlink/sundance.c:39: +static int flowctrl=1; ^ WARNING: Block comments use * on subsequent lines #157: FILE: drivers/net/ethernet/dlink/sundance.c:42: +/* media[] specifies the media type the NIC operates at. + autosense Autosensing active media. WARNING: please, no space before tabs #158: FILE: drivers/net/ethernet/dlink/sundance.c:43: +^I^I 10mbps_hd ^I10Mbps half duplex.$ WARNING: please, no space before tabs #159: FILE: drivers/net/ethernet/dlink/sundance.c:44: +^I^I 10mbps_fd ^I10Mbps full duplex.$ WARNING: please, no space before tabs #160: FILE: drivers/net/ethernet/dlink/sundance.c:45: +^I^I 100mbps_hd ^I100Mbps half duplex.$ WARNING: please, no space before tabs #161: FILE: drivers/net/ethernet/dlink/sundance.c:46: +^I^I 100mbps_fd ^I100Mbps full duplex.$ WARNING: please, no space before tabs #163: FILE: drivers/net/ethernet/dlink/sundance.c:48: +^I^I 1^I ^I10Mbps half duplex.$ WARNING: please, no space before tabs #164: FILE: drivers/net/ethernet/dlink/sundance.c:49: +^I^I 2^I ^I10Mbps full duplex.$ WARNING: please, no space before tabs #165: FILE: drivers/net/ethernet/dlink/sundance.c:50: +^I^I 3^I ^I100Mbps half duplex.$ WARNING: please, no space before tabs #166: FILE: drivers/net/ethernet/dlink/sundance.c:51: +^I^I 4^I ^I100Mbps full duplex.$ CHECK: Please don't use multiple blank lines #171: FILE: drivers/net/ethernet/dlink/sundance.c:56: + + WARNING: Block comments use * on subsequent lines #175: FILE: drivers/net/ethernet/dlink/sundance.c:60: +/* Keep the ring sizes a power of two for compile efficiency. + The compiler will convert '%'<2^N> into a bit mask. WARNING: Block comments use a trailing */ on a separate line #179: FILE: drivers/net/ethernet/dlink/sundance.c:64: + Large receive rings merely waste memory. */ WARNING: line length of 83 exceeds 80 columns #181: FILE: drivers/net/ethernet/dlink/sundance.c:66: +#define TX_QUEUE_LEN (TX_RING_SIZE - 1) /* Limit ring entries actually used. */ CHECK: spaces preferred around that '*' (ctx:VxV) #184: FILE: drivers/net/ethernet/dlink/sundance.c:69: +#define TX_TOTAL_SIZE TX_RING_SIZE*sizeof(struct netdev_desc) ^ ERROR: Macros with complex values should be enclosed in parentheses #184: FILE: drivers/net/ethernet/dlink/sundance.c:69: +#define TX_TOTAL_SIZE TX_RING_SIZE*sizeof(struct netdev_desc) BUT SEE: do {} while (0) advice is over-stated in a few situations: The more obvious case is macros, like MODULE_PARM_DESC, invoked at file-scope, where C disallows code (it must be in functions). See $exceptions if you have one to add by name. More troublesome is declarative macros used at top of new scope, like DECLARE_PER_CPU. These might just compile with a do-while-0 wrapper, but would be incorrect. Most of these are handled by detecting struct,union,etc declaration primitives in $exceptions. Theres also macros called inside an if (block), which "return" an expression. These cannot do-while, and need a ({}) wrapper. Enjoy this qualification while we work to improve our heuristics. CHECK: spaces preferred around that '*' (ctx:VxV) #185: FILE: drivers/net/ethernet/dlink/sundance.c:70: +#define RX_TOTAL_SIZE RX_RING_SIZE*sizeof(struct netdev_desc) ^ ERROR: Macros with complex values should be enclosed in parentheses #185: FILE: drivers/net/ethernet/dlink/sundance.c:70: +#define RX_TOTAL_SIZE RX_RING_SIZE*sizeof(struct netdev_desc) BUT SEE: do {} while (0) advice is over-stated in a few situations: The more obvious case is macros, like MODULE_PARM_DESC, invoked at file-scope, where C disallows code (it must be in functions). See $exceptions if you have one to add by name. More troublesome is declarative macros used at top of new scope, like DECLARE_PER_CPU. These might just compile with a do-while-0 wrapper, but would be incorrect. Most of these are handled by detecting struct,union,etc declaration primitives in $exceptions. Theres also macros called inside an if (block), which "return" an expression. These cannot do-while, and need a ({}) wrapper. Enjoy this qualification while we work to improve our heuristics. CHECK: spaces preferred around that '*' (ctx:VxV) #189: FILE: drivers/net/ethernet/dlink/sundance.c:74: +#define TX_TIMEOUT (4*HZ) ^ WARNING: line length of 81 exceeds 80 columns #207: FILE: drivers/net/ethernet/dlink/sundance.c:92: +#include /* Processor type for cache alignment. */ WARNING: Use #include instead of #207: FILE: drivers/net/ethernet/dlink/sundance.c:92: +#include /* Processor type for cache alignment. */ WARNING: Use #include instead of #208: FILE: drivers/net/ethernet/dlink/sundance.c:93: +#include WARNING: Block comments use * on subsequent lines #229: FILE: drivers/net/ethernet/dlink/sundance.c:114: +/* + Theory of Operation ERROR: code indent should use tabs where possible #326: FILE: drivers/net/ethernet/dlink/sundance.c:211: + const char *name;$ WARNING: please, no spaces at the start of a line #326: FILE: drivers/net/ethernet/dlink/sundance.c:211: + const char *name;$ CHECK: Please use a blank line after function/struct/union/enum declarations #328: FILE: drivers/net/ethernet/dlink/sundance.c:213: +}; +static const struct pci_id_info pci_id_tbl[] = { WARNING: Block comments use * on subsequent lines #340: FILE: drivers/net/ethernet/dlink/sundance.c:225: +/* This driver was written to use PCI memory space, however x86-oriented + hardware often uses I/O space accesses. */ WARNING: Block comments use a trailing */ on a separate line #340: FILE: drivers/net/ethernet/dlink/sundance.c:225: + hardware often uses I/O space accesses. */ WARNING: Block comments use * on subsequent lines #343: FILE: drivers/net/ethernet/dlink/sundance.c:228: +/* Offsets to the device registers. + Unlike software-only systems, device drivers interact with complex hardware. ERROR: spaces required around that '=' (ctx:VxV) #421: FILE: drivers/net/ethernet/dlink/sundance.c:306: + IntrSummary=0x0001, IntrPCIErr=0x0002, IntrMACCtrl=0x0008, ^ ERROR: spaces required around that '=' (ctx:VxV) #421: FILE: drivers/net/ethernet/dlink/sundance.c:306: + IntrSummary=0x0001, IntrPCIErr=0x0002, IntrMACCtrl=0x0008, ^ ERROR: spaces required around that '=' (ctx:VxV) #421: FILE: drivers/net/ethernet/dlink/sundance.c:306: + IntrSummary=0x0001, IntrPCIErr=0x0002, IntrMACCtrl=0x0008, ^ ERROR: spaces required around that '=' (ctx:VxV) #422: FILE: drivers/net/ethernet/dlink/sundance.c:307: + IntrTxDone=0x0004, IntrRxDone=0x0010, IntrRxStart=0x0020, ^ ERROR: spaces required around that '=' (ctx:VxV) #422: FILE: drivers/net/ethernet/dlink/sundance.c:307: + IntrTxDone=0x0004, IntrRxDone=0x0010, IntrRxStart=0x0020, ^ ERROR: spaces required around that '=' (ctx:VxV) #422: FILE: drivers/net/ethernet/dlink/sundance.c:307: + IntrTxDone=0x0004, IntrRxDone=0x0010, IntrRxStart=0x0020, ^ ERROR: spaces required around that '=' (ctx:VxV) #423: FILE: drivers/net/ethernet/dlink/sundance.c:308: + IntrDrvRqst=0x0040, ^ ERROR: spaces required around that '=' (ctx:VxV) #424: FILE: drivers/net/ethernet/dlink/sundance.c:309: + StatsMax=0x0080, LinkChange=0x0100, ^ ERROR: spaces required around that '=' (ctx:VxV) #424: FILE: drivers/net/ethernet/dlink/sundance.c:309: + StatsMax=0x0080, LinkChange=0x0100, ^ ERROR: spaces required around that '=' (ctx:VxV) #425: FILE: drivers/net/ethernet/dlink/sundance.c:310: + IntrTxDMADone=0x0200, IntrRxDMADone=0x0400, ^ ERROR: spaces required around that '=' (ctx:VxV) #425: FILE: drivers/net/ethernet/dlink/sundance.c:310: + IntrTxDMADone=0x0200, IntrRxDMADone=0x0400, ^ ERROR: spaces required around that '=' (ctx:VxV) #430: FILE: drivers/net/ethernet/dlink/sundance.c:315: + AcceptAllIPMulti=0x20, AcceptMultiHash=0x10, AcceptAll=0x08, ^ ERROR: spaces required around that '=' (ctx:VxV) #430: FILE: drivers/net/ethernet/dlink/sundance.c:315: + AcceptAllIPMulti=0x20, AcceptMultiHash=0x10, AcceptAll=0x08, ^ ERROR: spaces required around that '=' (ctx:VxV) #430: FILE: drivers/net/ethernet/dlink/sundance.c:315: + AcceptAllIPMulti=0x20, AcceptMultiHash=0x10, AcceptAll=0x08, ^ ERROR: spaces required around that '=' (ctx:VxV) #431: FILE: drivers/net/ethernet/dlink/sundance.c:316: + AcceptBroadcast=0x04, AcceptMulticast=0x02, AcceptMyPhys=0x01, ^ ERROR: spaces required around that '=' (ctx:VxV) #431: FILE: drivers/net/ethernet/dlink/sundance.c:316: + AcceptBroadcast=0x04, AcceptMulticast=0x02, AcceptMyPhys=0x01, ^ ERROR: spaces required around that '=' (ctx:VxV) #431: FILE: drivers/net/ethernet/dlink/sundance.c:316: + AcceptBroadcast=0x04, AcceptMulticast=0x02, AcceptMyPhys=0x01, ^ CHECK: Please use a blank line after function/struct/union/enum declarations #433: FILE: drivers/net/ethernet/dlink/sundance.c:318: +}; +/* Bits in MACCtrl. */ ERROR: spaces required around that '=' (ctx:VxV) #435: FILE: drivers/net/ethernet/dlink/sundance.c:320: + EnbFullDuplex=0x20, EnbRcvLargeFrame=0x40, ^ ERROR: spaces required around that '=' (ctx:VxV) #435: FILE: drivers/net/ethernet/dlink/sundance.c:320: + EnbFullDuplex=0x20, EnbRcvLargeFrame=0x40, ^ ERROR: spaces required around that '=' (ctx:VxV) #436: FILE: drivers/net/ethernet/dlink/sundance.c:321: + EnbFlowCtrl=0x100, EnbPassRxCRC=0x200, ^ ERROR: spaces required around that '=' (ctx:VxV) #436: FILE: drivers/net/ethernet/dlink/sundance.c:321: + EnbFlowCtrl=0x100, EnbPassRxCRC=0x200, ^ CHECK: Please use a blank line after function/struct/union/enum declarations #438: FILE: drivers/net/ethernet/dlink/sundance.c:323: +}; +enum mac_ctrl1_bits { ERROR: spaces required around that '=' (ctx:VxV) #439: FILE: drivers/net/ethernet/dlink/sundance.c:324: + StatsEnable=0x0020, StatsDisable=0x0040, StatsEnabled=0x0080, ^ ERROR: spaces required around that '=' (ctx:VxV) #439: FILE: drivers/net/ethernet/dlink/sundance.c:324: + StatsEnable=0x0020, StatsDisable=0x0040, StatsEnabled=0x0080, ^ ERROR: spaces required around that '=' (ctx:VxV) #439: FILE: drivers/net/ethernet/dlink/sundance.c:324: + StatsEnable=0x0020, StatsDisable=0x0040, StatsEnabled=0x0080, ^ ERROR: spaces required around that '=' (ctx:VxV) #440: FILE: drivers/net/ethernet/dlink/sundance.c:325: + TxEnable=0x0100, TxDisable=0x0200, TxEnabled=0x0400, ^ ERROR: spaces required around that '=' (ctx:VxV) #440: FILE: drivers/net/ethernet/dlink/sundance.c:325: + TxEnable=0x0100, TxDisable=0x0200, TxEnabled=0x0400, ^ ERROR: spaces required around that '=' (ctx:VxV) #440: FILE: drivers/net/ethernet/dlink/sundance.c:325: + TxEnable=0x0100, TxDisable=0x0200, TxEnabled=0x0400, ^ ERROR: spaces required around that '=' (ctx:VxV) #441: FILE: drivers/net/ethernet/dlink/sundance.c:326: + RxEnable=0x0800, RxDisable=0x1000, RxEnabled=0x2000, ^ ERROR: spaces required around that '=' (ctx:VxV) #441: FILE: drivers/net/ethernet/dlink/sundance.c:326: + RxEnable=0x0800, RxDisable=0x1000, RxEnabled=0x2000, ^ ERROR: spaces required around that '=' (ctx:VxV) #441: FILE: drivers/net/ethernet/dlink/sundance.c:326: + RxEnable=0x0800, RxDisable=0x1000, RxEnabled=0x2000, ^ WARNING: Block comments use * on subsequent lines #454: FILE: drivers/net/ethernet/dlink/sundance.c:339: +/* Note that using only 32 bit fields simplifies conversion to big-endian + architectures. */ WARNING: Block comments use a trailing */ on a separate line #454: FILE: drivers/net/ethernet/dlink/sundance.c:339: + architectures. */ ERROR: spaces required around that '=' (ctx:VxV) #463: FILE: drivers/net/ethernet/dlink/sundance.c:348: + DescOwn=0x8000, ^ ERROR: spaces required around that '=' (ctx:VxV) #464: FILE: drivers/net/ethernet/dlink/sundance.c:349: + DescEndPacket=0x4000, ^ ERROR: spaces required around that '=' (ctx:VxV) #465: FILE: drivers/net/ethernet/dlink/sundance.c:350: + DescEndRing=0x2000, ^ ERROR: spaces required around that '=' (ctx:VxV) #466: FILE: drivers/net/ethernet/dlink/sundance.c:351: + LastFrag=0x80000000, ^ ERROR: spaces required around that '=' (ctx:VxV) #467: FILE: drivers/net/ethernet/dlink/sundance.c:352: + DescIntrOnTx=0x8000, ^ ERROR: spaces required around that '=' (ctx:VxV) #468: FILE: drivers/net/ethernet/dlink/sundance.c:353: + DescIntrOnDMADone=0x80000000, ^ WARNING: please, no space before tabs #472: FILE: drivers/net/ethernet/dlink/sundance.c:357: +#define PRIV_ALIGN^I15 ^I/* Required alignment mask */$ WARNING: Prefer __aligned(L1_CACHE_BYTES) over __attribute__((aligned(L1_CACHE_BYTES))) #473: FILE: drivers/net/ethernet/dlink/sundance.c:358: +/* Use __attribute__((aligned (L1_CACHE_BYTES))) to maintain alignment WARNING: Block comments use * on subsequent lines #474: FILE: drivers/net/ethernet/dlink/sundance.c:359: +/* Use __attribute__((aligned (L1_CACHE_BYTES))) to maintain alignment + within the structure. */ WARNING: Block comments use a trailing */ on a separate line #474: FILE: drivers/net/ethernet/dlink/sundance.c:359: + within the structure. */ ERROR: "foo* bar" should be "foo *bar" #480: FILE: drivers/net/ethernet/dlink/sundance.c:365: + struct sk_buff* rx_skbuff[RX_RING_SIZE]; ERROR: "foo* bar" should be "foo *bar" #481: FILE: drivers/net/ethernet/dlink/sundance.c:366: + struct sk_buff* tx_skbuff[TX_RING_SIZE]; ERROR: code indent should use tabs where possible #482: FILE: drivers/net/ethernet/dlink/sundance.c:367: + dma_addr_t tx_ring_dma;$ WARNING: please, no spaces at the start of a line #482: FILE: drivers/net/ethernet/dlink/sundance.c:367: + dma_addr_t tx_ring_dma;$ ERROR: code indent should use tabs where possible #483: FILE: drivers/net/ethernet/dlink/sundance.c:368: + dma_addr_t rx_ring_dma;$ WARNING: please, no spaces at the start of a line #483: FILE: drivers/net/ethernet/dlink/sundance.c:368: + dma_addr_t rx_ring_dma;$ WARNING: line length of 84 exceeds 80 columns #503: FILE: drivers/net/ethernet/dlink/sundance.c:388: + unsigned int cur_rx, dirty_rx; /* Producer/consumer ring indices */ WARNING: line length of 81 exceeds 80 columns #512: FILE: drivers/net/ethernet/dlink/sundance.c:397: + unsigned int wol_enabled:1; /* Wake on LAN enabled */ WARNING: line length of 81 exceeds 80 columns #518: FILE: drivers/net/ethernet/dlink/sundance.c:403: + spinlock_t mcastlock; /* SMP lock multicast updates. */ WARNING: line length of 96 exceeds 80 columns #523: FILE: drivers/net/ethernet/dlink/sundance.c:408: + unsigned char phys[MII_CNT]; /* MII device addresses, only first one used. */ CHECK: spinlock_t definition without comment #526: FILE: drivers/net/ethernet/dlink/sundance.c:411: + spinlock_t statlock; WARNING: line length of 84 exceeds 80 columns #538: FILE: drivers/net/ethernet/dlink/sundance.c:423: +static void mdio_write(struct net_device *dev, int phy_id, int location, int value); WARNING: space prohibited between function name and open parenthesis '(' #546: FILE: drivers/net/ethernet/dlink/sundance.c:431: +static int reset_tx (struct net_device *dev); WARNING: space prohibited between function name and open parenthesis '(' #550: FILE: drivers/net/ethernet/dlink/sundance.c:435: +static void refill_rx (struct net_device *dev); WARNING: space prohibited between function name and open parenthesis '(' #568: FILE: drivers/net/ethernet/dlink/sundance.c:453: + iowrite32 (reset_cmd | ioread32 (ioaddr), ioaddr); WARNING: space prohibited between function name and open parenthesis '(' #568: FILE: drivers/net/ethernet/dlink/sundance.c:453: + iowrite32 (reset_cmd | ioread32 (ioaddr), ioaddr); WARNING: space prohibited between function name and open parenthesis '(' #571: FILE: drivers/net/ethernet/dlink/sundance.c:456: + while (ioread32 (ioaddr) & (ResetBusy << 16)) { WARNING: line length of 88 exceeds 80 columns #573: FILE: drivers/net/ethernet/dlink/sundance.c:458: + printk(KERN_WARNING "%s : reset not completed !!\n", dev->name); WARNING: Prefer [subsystem eg: netdev]_warn([subsystem]dev, ... then dev_warn(dev, ... then pr_warn(... to printk(KERN_WARNING ... #573: FILE: drivers/net/ethernet/dlink/sundance.c:458: + printk(KERN_WARNING "%s : reset not completed !!\n", dev->name); CHECK: usleep_range is preferred over udelay; see function description of usleep_range() and udelay(). #576: FILE: drivers/net/ethernet/dlink/sundance.c:461: + udelay(100); WARNING: please, no space before tabs #595: FILE: drivers/net/ethernet/dlink/sundance.c:480: +^I.ndo_get_stats ^I^I= get_stats,$ WARNING: please, no space before tabs #600: FILE: drivers/net/ethernet/dlink/sundance.c:485: +^I.ndo_set_mac_address ^I= sundance_set_mac_addr,$ WARNING: please, no space before tabs #603: FILE: drivers/net/ethernet/dlink/sundance.c:488: +^I.ndo_poll_controller ^I= sundance_poll_controller,$ CHECK: Alignment should match open parenthesis #663: FILE: drivers/net/ethernet/dlink/sundance.c:548: + ring_space = dma_alloc_coherent(&pdev->dev, TX_TOTAL_SIZE, + &ring_dma, GFP_KERNEL); CHECK: Alignment should match open parenthesis #670: FILE: drivers/net/ethernet/dlink/sundance.c:555: + ring_space = dma_alloc_coherent(&pdev->dev, RX_TOTAL_SIZE, + &ring_dma, GFP_KERNEL); WARNING: Prefer [subsystem eg: netdev]_info([subsystem]dev, ... then dev_info(dev, ... then pr_info(... to printk(KERN_INFO ... #697: FILE: drivers/net/ethernet/dlink/sundance.c:582: + printk(KERN_INFO "%s: %s at %p, %pM, IRQ %d.\n", WARNING: Missing a blank line after declarations #718: FILE: drivers/net/ethernet/dlink/sundance.c:603: + int mii_status = mdio_read(dev, phyx, MII_BMSR); + if (mii_status != 0xffff && mii_status != 0x0000) { WARNING: line length of 85 exceeds 80 columns #720: FILE: drivers/net/ethernet/dlink/sundance.c:605: + np->mii_if.advertising = mdio_read(dev, phyx, MII_ADVERTISE); WARNING: Prefer [subsystem eg: netdev]_info([subsystem]dev, ... then dev_info(dev, ... then pr_info(... to printk(KERN_INFO ... #723: FILE: drivers/net/ethernet/dlink/sundance.c:608: + printk(KERN_INFO "%s: MII PHY found at address %d, status " WARNING: quoted string split across lines #724: FILE: drivers/net/ethernet/dlink/sundance.c:609: + printk(KERN_INFO "%s: MII PHY found at address %d, status " + "0x%4.4x advertising %4.4x.\n", WARNING: line length of 88 exceeds 80 columns #725: FILE: drivers/net/ethernet/dlink/sundance.c:610: + dev->name, phyx, mii_status, np->mii_if.advertising); WARNING: Prefer [subsystem eg: netdev]_info([subsystem]dev, ... then dev_info(dev, ... then pr_info(... to printk(KERN_INFO ... #731: FILE: drivers/net/ethernet/dlink/sundance.c:616: + printk(KERN_INFO "%s: No MII transceiver found, aborting. ASIC status %x\n", CHECK: Alignment should match open parenthesis #732: FILE: drivers/net/ethernet/dlink/sundance.c:617: + printk(KERN_INFO "%s: No MII transceiver found, aborting. ASIC status %x\n", + dev->name, ioread32(ioaddr + ASICCtrl)); CHECK: Comparison to NULL could be written "media[card_idx]" #741: FILE: drivers/net/ethernet/dlink/sundance.c:626: + if (media[card_idx] != NULL) { WARNING: space prohibited between function name and open parenthesis '(' #743: FILE: drivers/net/ethernet/dlink/sundance.c:628: + if (strcmp (media[card_idx], "100mbps_fd") == 0 || WARNING: space prohibited between function name and open parenthesis '(' #744: FILE: drivers/net/ethernet/dlink/sundance.c:629: + strcmp (media[card_idx], "4") == 0) { WARNING: line length of 81 exceeds 80 columns #747: FILE: drivers/net/ethernet/dlink/sundance.c:632: + } else if (strcmp (media[card_idx], "100mbps_hd") == 0 || WARNING: space prohibited between function name and open parenthesis '(' #747: FILE: drivers/net/ethernet/dlink/sundance.c:632: + } else if (strcmp (media[card_idx], "100mbps_hd") == 0 || WARNING: space prohibited between function name and open parenthesis '(' #748: FILE: drivers/net/ethernet/dlink/sundance.c:633: + strcmp (media[card_idx], "3") == 0) { WARNING: space prohibited between function name and open parenthesis '(' #751: FILE: drivers/net/ethernet/dlink/sundance.c:636: + } else if (strcmp (media[card_idx], "10mbps_fd") == 0 || WARNING: space prohibited between function name and open parenthesis '(' #752: FILE: drivers/net/ethernet/dlink/sundance.c:637: + strcmp (media[card_idx], "2") == 0) { WARNING: space prohibited between function name and open parenthesis '(' #755: FILE: drivers/net/ethernet/dlink/sundance.c:640: + } else if (strcmp (media[card_idx], "10mbps_hd") == 0 || WARNING: space prohibited between function name and open parenthesis '(' #756: FILE: drivers/net/ethernet/dlink/sundance.c:641: + strcmp (media[card_idx], "1") == 0) { WARNING: space prohibited between function name and open parenthesis '(' #768: FILE: drivers/net/ethernet/dlink/sundance.c:653: + if (ioread32 (ioaddr + ASICCtrl) & 0x80) { WARNING: space prohibited between function name and open parenthesis '(' #777: FILE: drivers/net/ethernet/dlink/sundance.c:662: + mdio_write (dev, np->phys[0], MII_BMCR, BMCR_RESET); WARNING: space prohibited between function name and open parenthesis '(' #778: FILE: drivers/net/ethernet/dlink/sundance.c:663: + mdelay (300); WARNING: line length of 94 exceeds 80 columns #781: FILE: drivers/net/ethernet/dlink/sundance.c:666: + mdio_write (dev, np->phys[0], MII_ADVERTISE, np->mii_if.advertising | 0x0400); WARNING: space prohibited between function name and open parenthesis '(' #781: FILE: drivers/net/ethernet/dlink/sundance.c:666: + mdio_write (dev, np->phys[0], MII_ADVERTISE, np->mii_if.advertising | 0x0400); WARNING: space prohibited between function name and open parenthesis '(' #782: FILE: drivers/net/ethernet/dlink/sundance.c:667: + mdio_write (dev, np->phys[0], MII_BMCR, BMCR_ANENABLE|BMCR_ANRESTART); CHECK: spaces preferred around that '|' (ctx:VxV) #782: FILE: drivers/net/ethernet/dlink/sundance.c:667: + mdio_write (dev, np->phys[0], MII_BMCR, BMCR_ANENABLE|BMCR_ANRESTART); ^ WARNING: space prohibited between function name and open parenthesis '(' #788: FILE: drivers/net/ethernet/dlink/sundance.c:673: + mdio_write (dev, np->phys[0], MII_BMCR, mii_ctl); WARNING: Prefer [subsystem eg: netdev]_info([subsystem]dev, ... then dev_info(dev, ... then pr_info(... to printk(KERN_INFO ... #789: FILE: drivers/net/ethernet/dlink/sundance.c:674: + printk (KERN_INFO "Override speed=%d, %s duplex\n", WARNING: space prohibited between function name and open parenthesis '(' #789: FILE: drivers/net/ethernet/dlink/sundance.c:674: + printk (KERN_INFO "Override speed=%d, %s duplex\n", CHECK: Blank lines aren't necessary before a close brace '}' #792: FILE: drivers/net/ethernet/dlink/sundance.c:677: + + } WARNING: printk() should include KERN_ facility level #797: FILE: drivers/net/ethernet/dlink/sundance.c:682: + printk("ASIC Control is %x.\n", ioread32(ioaddr + ASICCtrl)); WARNING: line length of 81 exceeds 80 columns #800: FILE: drivers/net/ethernet/dlink/sundance.c:685: + printk("ASIC Control is now %x.\n", ioread32(ioaddr + ASICCtrl)); WARNING: printk() should include KERN_ facility level #800: FILE: drivers/net/ethernet/dlink/sundance.c:685: + printk("ASIC Control is now %x.\n", ioread32(ioaddr + ASICCtrl)); CHECK: Alignment should match open parenthesis #809: FILE: drivers/net/ethernet/dlink/sundance.c:694: + dma_free_coherent(&pdev->dev, RX_TOTAL_SIZE, + np->rx_ring, np->rx_ring_dma); CHECK: Alignment should match open parenthesis #812: FILE: drivers/net/ethernet/dlink/sundance.c:697: + dma_free_coherent(&pdev->dev, TX_TOTAL_SIZE, + np->tx_ring, np->tx_ring_dma); WARNING: space prohibited between function name and open parenthesis '(' #818: FILE: drivers/net/ethernet/dlink/sundance.c:703: + free_netdev (dev); WARNING: Missing a blank line after declarations #835: FILE: drivers/net/ethernet/dlink/sundance.c:720: + int boguscnt = 10000; /* Typical 1900 ticks. */ + iowrite16(0x0200 | (location & 0xff), ioaddr + EECtrl); ERROR: space prohibited after that '!' (ctx:BxW) #838: FILE: drivers/net/ethernet/dlink/sundance.c:723: + if (! (ioread16(ioaddr + EECtrl) & 0x8000)) { ^ WARNING: braces {} are not necessary for single statement blocks #838: FILE: drivers/net/ethernet/dlink/sundance.c:723: + if (! (ioread16(ioaddr + EECtrl) & 0x8000)) { + return ioread16(ioaddr + EEData); + } WARNING: Block comments use * on subsequent lines #846: FILE: drivers/net/ethernet/dlink/sundance.c:731: +/* MII transceiver control section. + Read and write the MII registers using software-generated serial WARNING: Block comments use a trailing */ on a separate line #851: FILE: drivers/net/ethernet/dlink/sundance.c:736: + met by back-to-back 33Mhz PCI cycles. */ ERROR: spaces required around that '=' (ctx:VxV) #855: FILE: drivers/net/ethernet/dlink/sundance.c:740: + MDIO_ShiftClk=0x0001, MDIO_Data=0x0002, MDIO_EnbOutput=0x0004, ^ ERROR: spaces required around that '=' (ctx:VxV) #855: FILE: drivers/net/ethernet/dlink/sundance.c:740: + MDIO_ShiftClk=0x0001, MDIO_Data=0x0002, MDIO_EnbOutput=0x0004, ^ ERROR: spaces required around that '=' (ctx:VxV) #855: FILE: drivers/net/ethernet/dlink/sundance.c:740: + MDIO_ShiftClk=0x0001, MDIO_Data=0x0002, MDIO_EnbOutput=0x0004, ^ CHECK: Please use a blank line after function/struct/union/enum declarations #857: FILE: drivers/net/ethernet/dlink/sundance.c:742: +}; +#define MDIO_EnbIn (0) WARNING: Block comments use * on subsequent lines #862: FILE: drivers/net/ethernet/dlink/sundance.c:747: +/* Generate the preamble required for initial synchronization and + a few older transceivers. */ WARNING: Block comments use a trailing */ on a separate line #862: FILE: drivers/net/ethernet/dlink/sundance.c:747: + a few older transceivers. */ WARNING: line length of 84 exceeds 80 columns #899: FILE: drivers/net/ethernet/dlink/sundance.c:784: + retval = (retval << 1) | ((ioread8(mdio_addr) & MDIO_Data) ? 1 : 0); CHECK: spaces preferred around that '>>' (ctx:VxV) #903: FILE: drivers/net/ethernet/dlink/sundance.c:788: + return (retval>>1) & 0xffff; ^ WARNING: line length of 83 exceeds 80 columns #906: FILE: drivers/net/ethernet/dlink/sundance.c:791: +static void mdio_write(struct net_device *dev, int phy_id, int location, int value) CHECK: spaces preferred around that '<<' (ctx:VxV) #910: FILE: drivers/net/ethernet/dlink/sundance.c:795: + int mii_cmd = (0x5002 << 16) | (phy_id << 23) | (location<<18) | value; ^ WARNING: Prefer [subsystem eg: netdev]_dbg([subsystem]dev, ... then dev_dbg(dev, ... then pr_debug(... to printk(KERN_DEBUG ... #967: FILE: drivers/net/ethernet/dlink/sundance.c:852: + printk(KERN_DEBUG "%s: netdev_open() irq %d\n", dev->name, irq); WARNING: Prefer using '"%s...", __func__' to using 'netdev_open', this function's name, in a string #967: FILE: drivers/net/ethernet/dlink/sundance.c:852: + printk(KERN_DEBUG "%s: netdev_open() irq %d\n", dev->name, irq); WARNING: line length of 81 exceeds 80 columns #982: FILE: drivers/net/ethernet/dlink/sundance.c:867: + iowrite32(ioread32(ioaddr + ASICCtrl) | 0x0C, ioaddr + ASICCtrl); WARNING: space prohibited between function name and open parenthesis '(' #1006: FILE: drivers/net/ethernet/dlink/sundance.c:891: + iowrite16 (StatsEnable | RxEnable | TxEnable, ioaddr + MACCtrl1); WARNING: Prefer [subsystem eg: netdev]_dbg([subsystem]dev, ... then dev_dbg(dev, ... then pr_debug(... to printk(KERN_DEBUG ... #1013: FILE: drivers/net/ethernet/dlink/sundance.c:898: + printk(KERN_DEBUG "%s: Done netdev_open(), status: Rx %x Tx %x " WARNING: Prefer using '"%s...", __func__' to using 'netdev_open', this function's name, in a string #1013: FILE: drivers/net/ethernet/dlink/sundance.c:898: + printk(KERN_DEBUG "%s: Done netdev_open(), status: Rx %x Tx %x " WARNING: quoted string split across lines #1014: FILE: drivers/net/ethernet/dlink/sundance.c:899: + printk(KERN_DEBUG "%s: Done netdev_open(), status: Rx %x Tx %x " + "MAC Control %x, %4.4x %4.4x.\n", WARNING: line length of 94 exceeds 80 columns #1015: FILE: drivers/net/ethernet/dlink/sundance.c:900: + dev->name, ioread32(ioaddr + RxStatus), ioread8(ioaddr + TxStatus), WARNING: line length of 85 exceeds 80 columns #1017: FILE: drivers/net/ethernet/dlink/sundance.c:902: + ioread16(ioaddr + MACCtrl1), ioread16(ioaddr + MACCtrl0)); CHECK: spaces preferred around that '*' (ctx:VxV) #1021: FILE: drivers/net/ethernet/dlink/sundance.c:906: + np->timer.expires = jiffies + 3*HZ; ^ WARNING: space prohibited between function name and open parenthesis '(' #1041: FILE: drivers/net/ethernet/dlink/sundance.c:926: + iowrite16 (ioread16 (ioaddr + MACCtrl0) | EnbFullDuplex, WARNING: space prohibited between function name and open parenthesis '(' #1041: FILE: drivers/net/ethernet/dlink/sundance.c:926: + iowrite16 (ioread16 (ioaddr + MACCtrl0) | EnbFullDuplex, CHECK: Alignment should match open parenthesis #1042: FILE: drivers/net/ethernet/dlink/sundance.c:927: + iowrite16 (ioread16 (ioaddr + MACCtrl0) | EnbFullDuplex, + ioaddr + MACCtrl0); WARNING: Prefer [subsystem eg: netdev]_info([subsystem]dev, ... then dev_info(dev, ... then pr_info(... to printk(KERN_INFO ... #1051: FILE: drivers/net/ethernet/dlink/sundance.c:936: + printk(KERN_INFO "%s: Setting %s-duplex based on MII #%d " WARNING: quoted string split across lines #1052: FILE: drivers/net/ethernet/dlink/sundance.c:937: + printk(KERN_INFO "%s: Setting %s-duplex based on MII #%d " + "negotiated capability %4.4x.\n", dev->name, WARNING: line length of 86 exceeds 80 columns #1053: FILE: drivers/net/ethernet/dlink/sundance.c:938: + duplex ? "full" : "half", np->phys[0], negotiated); WARNING: line length of 96 exceeds 80 columns #1054: FILE: drivers/net/ethernet/dlink/sundance.c:939: + iowrite16(ioread16(ioaddr + MACCtrl0) | (duplex ? 0x20 : 0), ioaddr + MACCtrl0); CHECK: spaces preferred around that '*' (ctx:VxV) #1063: FILE: drivers/net/ethernet/dlink/sundance.c:948: + int next_tick = 10*HZ; ^ WARNING: Prefer [subsystem eg: netdev]_dbg([subsystem]dev, ... then dev_dbg(dev, ... then pr_debug(... to printk(KERN_DEBUG ... #1066: FILE: drivers/net/ethernet/dlink/sundance.c:951: + printk(KERN_DEBUG "%s: Media selection timer tick, intr status %4.4x, " WARNING: quoted string split across lines #1067: FILE: drivers/net/ethernet/dlink/sundance.c:952: + printk(KERN_DEBUG "%s: Media selection timer tick, intr status %4.4x, " + "Tx %x Rx %x.\n", WARNING: line length of 84 exceeds 80 columns #1069: FILE: drivers/net/ethernet/dlink/sundance.c:954: + ioread8(ioaddr + TxStatus), ioread32(ioaddr + RxStatus)); WARNING: Prefer [subsystem eg: netdev]_warn([subsystem]dev, ... then dev_warn(dev, ... then pr_warn(... to printk(KERN_WARNING ... #1085: FILE: drivers/net/ethernet/dlink/sundance.c:970: + printk(KERN_WARNING "%s: Transmit timed out, TxStatus %2.2x " WARNING: quoted string split across lines #1086: FILE: drivers/net/ethernet/dlink/sundance.c:971: + printk(KERN_WARNING "%s: Transmit timed out, TxStatus %2.2x " + "TxFrameId %2.2x," WARNING: quoted string split across lines #1087: FILE: drivers/net/ethernet/dlink/sundance.c:972: + "TxFrameId %2.2x," + " resetting...\n", dev->name, ioread8(ioaddr + TxStatus), WARNING: Missing a blank line after declarations #1092: FILE: drivers/net/ethernet/dlink/sundance.c:977: + int i; + for (i=0; itx_ring_dma + i*sizeof(*np->tx_ring)), CHECK: Alignment should match open parenthesis #1094: FILE: drivers/net/ethernet/dlink/sundance.c:979: + printk(KERN_DEBUG "%02x %08llx %08x %08x(%02x) %08x %08x\n", i, + (unsigned long long)(np->tx_ring_dma + i*sizeof(*np->tx_ring)), CHECK: spaces preferred around that '*' (ctx:VxV) #1094: FILE: drivers/net/ethernet/dlink/sundance.c:979: + (unsigned long long)(np->tx_ring_dma + i*sizeof(*np->tx_ring)), ^ WARNING: line length of 81 exceeds 80 columns #1097: FILE: drivers/net/ethernet/dlink/sundance.c:982: + (le32_to_cpu(np->tx_ring[i].status) >> 2) & 0xff, WARNING: Prefer [subsystem eg: netdev]_dbg([subsystem]dev, ... then dev_dbg(dev, ... then pr_debug(... to printk(KERN_DEBUG ... #1101: FILE: drivers/net/ethernet/dlink/sundance.c:986: + printk(KERN_DEBUG "TxListPtr=%08x netif_queue_stopped=%d\n", CHECK: Alignment should match open parenthesis #1102: FILE: drivers/net/ethernet/dlink/sundance.c:987: + printk(KERN_DEBUG "TxListPtr=%08x netif_queue_stopped=%d\n", + ioread32(np->base + TxListPtr), WARNING: Prefer [subsystem eg: netdev]_dbg([subsystem]dev, ... then dev_dbg(dev, ... then pr_debug(... to printk(KERN_DEBUG ... #1104: FILE: drivers/net/ethernet/dlink/sundance.c:989: + printk(KERN_DEBUG "cur_tx=%d(%02x) dirty_tx=%d(%02x)\n", CHECK: Alignment should match open parenthesis #1105: FILE: drivers/net/ethernet/dlink/sundance.c:990: + printk(KERN_DEBUG "cur_tx=%d(%02x) dirty_tx=%d(%02x)\n", + np->cur_tx, np->cur_tx % TX_RING_SIZE, WARNING: line length of 87 exceeds 80 columns #1107: FILE: drivers/net/ethernet/dlink/sundance.c:992: + printk(KERN_DEBUG "cur_rx=%d dirty_rx=%d\n", np->cur_rx, np->dirty_rx); WARNING: Prefer [subsystem eg: netdev]_dbg([subsystem]dev, ... then dev_dbg(dev, ... then pr_debug(... to printk(KERN_DEBUG ... #1107: FILE: drivers/net/ethernet/dlink/sundance.c:992: + printk(KERN_DEBUG "cur_rx=%d dirty_rx=%d\n", np->cur_rx, np->dirty_rx); WARNING: Prefer [subsystem eg: netdev]_dbg([subsystem]dev, ... then dev_dbg(dev, ... then pr_debug(... to printk(KERN_DEBUG ... #1108: FILE: drivers/net/ethernet/dlink/sundance.c:993: + printk(KERN_DEBUG "cur_task=%d\n", np->cur_task); WARNING: braces {} are not necessary for single statement blocks #1120: FILE: drivers/net/ethernet/dlink/sundance.c:1005: + if (np->cur_tx - np->dirty_tx < TX_QUEUE_LEN - 4) { + netif_wake_queue(dev); + } CHECK: Please don't use multiple blank lines #1127: FILE: drivers/net/ethernet/dlink/sundance.c:1012: + + CHECK: multiple assignments should be avoided #1134: FILE: drivers/net/ethernet/dlink/sundance.c:1019: + np->cur_rx = np->cur_tx = 0; CHECK: multiple assignments should be avoided #1135: FILE: drivers/net/ethernet/dlink/sundance.c:1020: + np->dirty_rx = np->dirty_tx = 0; CHECK: spaces preferred around that '+' (ctx:VxV) #1143: FILE: drivers/net/ethernet/dlink/sundance.c:1028: + ((i+1)%RX_RING_SIZE)*sizeof(*np->rx_ring)); ^ CHECK: spaces preferred around that '%' (ctx:VxV) #1143: FILE: drivers/net/ethernet/dlink/sundance.c:1028: + ((i+1)%RX_RING_SIZE)*sizeof(*np->rx_ring)); ^ CHECK: spaces preferred around that '*' (ctx:VxV) #1143: FILE: drivers/net/ethernet/dlink/sundance.c:1028: + ((i+1)%RX_RING_SIZE)*sizeof(*np->rx_ring)); ^ CHECK: Comparison to NULL could be written "!skb" #1154: FILE: drivers/net/ethernet/dlink/sundance.c:1039: + if (skb == NULL) CHECK: Lines should not end with a '(' #1157: FILE: drivers/net/ethernet/dlink/sundance.c:1042: + np->rx_ring[i].frag.addr = cpu_to_le32( CHECK: Alignment should match open parenthesis #1159: FILE: drivers/net/ethernet/dlink/sundance.c:1044: + dma_map_single(&np->pci_dev->dev, skb->data, + np->rx_buf_sz, DMA_FROM_DEVICE)); CHECK: Alignment should match open parenthesis #1161: FILE: drivers/net/ethernet/dlink/sundance.c:1046: + if (dma_mapping_error(&np->pci_dev->dev, + np->rx_ring[i].frag.addr)) { WARNING: line length of 83 exceeds 80 columns #1166: FILE: drivers/net/ethernet/dlink/sundance.c:1051: + np->rx_ring[i].frag.length = cpu_to_le32(np->rx_buf_sz | LastFrag); WARNING: Prefer 'unsigned int' to bare use of 'unsigned' #1179: FILE: drivers/net/ethernet/dlink/sundance.c:1064: + unsigned head = np->cur_task % TX_RING_SIZE; WARNING: Missing a blank line after declarations #1186: FILE: drivers/net/ethernet/dlink/sundance.c:1071: + int entry = np->cur_task % TX_RING_SIZE; + txdesc = &np->tx_ring[entry]; CHECK: spaces preferred around that '*' (ctx:VxV) #1189: FILE: drivers/net/ethernet/dlink/sundance.c:1074: + entry*sizeof(struct netdev_desc)); ^ WARNING: space prohibited between function name and open parenthesis '(' #1196: FILE: drivers/net/ethernet/dlink/sundance.c:1081: + if (ioread32 (np->base + TxListPtr) == 0) WARNING: space prohibited between function name and open parenthesis '(' #1197: FILE: drivers/net/ethernet/dlink/sundance.c:1082: + iowrite32 (np->tx_ring_dma + head * sizeof(struct netdev_desc), CHECK: Alignment should match open parenthesis #1198: FILE: drivers/net/ethernet/dlink/sundance.c:1083: + iowrite32 (np->tx_ring_dma + head * sizeof(struct netdev_desc), + np->base + TxListPtr); WARNING: space prohibited between function name and open parenthesis '(' #1202: FILE: drivers/net/ethernet/dlink/sundance.c:1087: +start_tx (struct sk_buff *skb, struct net_device *dev) WARNING: Prefer 'unsigned int' to bare use of 'unsigned' #1206: FILE: drivers/net/ethernet/dlink/sundance.c:1091: + unsigned entry; CHECK: Alignment should match open parenthesis #1216: FILE: drivers/net/ethernet/dlink/sundance.c:1101: + txdesc->frag.addr = cpu_to_le32(dma_map_single(&np->pci_dev->dev, + skb->data, skb->len, DMA_TO_DEVICE)); WARNING: suspect code indent for conditional statements (8, 24) #1217: FILE: drivers/net/ethernet/dlink/sundance.c:1102: + if (dma_mapping_error(&np->pci_dev->dev, [...] + goto drop_frame; CHECK: Alignment should match open parenthesis #1218: FILE: drivers/net/ethernet/dlink/sundance.c:1103: + if (dma_mapping_error(&np->pci_dev->dev, + txdesc->frag.addr)) WARNING: memory barrier without comment #1224: FILE: drivers/net/ethernet/dlink/sundance.c:1109: + mb(); WARNING: space prohibited between function name and open parenthesis '(' #1233: FILE: drivers/net/ethernet/dlink/sundance.c:1118: + netif_stop_queue (dev); WARNING: Prefer [subsystem eg: netdev]_dbg([subsystem]dev, ... then dev_dbg(dev, ... then pr_debug(... to printk(KERN_DEBUG ... #1236: FILE: drivers/net/ethernet/dlink/sundance.c:1121: + printk (KERN_DEBUG WARNING: space prohibited between function name and open parenthesis '(' #1236: FILE: drivers/net/ethernet/dlink/sundance.c:1121: + printk (KERN_DEBUG WARNING: space prohibited between function name and open parenthesis '(' #1251: FILE: drivers/net/ethernet/dlink/sundance.c:1136: +reset_tx (struct net_device *dev) WARNING: space prohibited between function name and open parenthesis '(' #1259: FILE: drivers/net/ethernet/dlink/sundance.c:1144: + iowrite16 (TxDisable, ioaddr + MACCtrl1); CHECK: spaces preferred around that '|' (ctx:VxV) #1260: FILE: drivers/net/ethernet/dlink/sundance.c:1145: + sundance_reset(dev, (NetworkReset|FIFOReset|DMAReset|TxReset) << 16); ^ CHECK: spaces preferred around that '|' (ctx:VxV) #1260: FILE: drivers/net/ethernet/dlink/sundance.c:1145: + sundance_reset(dev, (NetworkReset|FIFOReset|DMAReset|TxReset) << 16); ^ CHECK: spaces preferred around that '|' (ctx:VxV) #1260: FILE: drivers/net/ethernet/dlink/sundance.c:1145: + sundance_reset(dev, (NetworkReset|FIFOReset|DMAReset|TxReset) << 16); ^ CHECK: Alignment should match open parenthesis #1269: FILE: drivers/net/ethernet/dlink/sundance.c:1154: + dma_unmap_single(&np->pci_dev->dev, + le32_to_cpu(np->tx_ring[i].frag.addr), CHECK: multiple assignments should be avoided #1276: FILE: drivers/net/ethernet/dlink/sundance.c:1161: + np->cur_tx = np->dirty_tx = 0; WARNING: space prohibited between function name and open parenthesis '(' #1282: FILE: drivers/net/ethernet/dlink/sundance.c:1167: + iowrite16 (StatsEnable | RxEnable | TxEnable, ioaddr + MACCtrl1); WARNING: Block comments use * on subsequent lines #1287: FILE: drivers/net/ethernet/dlink/sundance.c:1172: +/* The interrupt handler cleans up after the Tx thread, + and schedule a Rx thread work */ WARNING: Block comments use a trailing */ on a separate line #1287: FILE: drivers/net/ethernet/dlink/sundance.c:1172: + and schedule a Rx thread work */ WARNING: Missing a blank line after declarations #1301: FILE: drivers/net/ethernet/dlink/sundance.c:1186: + int intr_status = ioread16(ioaddr + IntrStatus); + iowrite16(intr_status, ioaddr + IntrStatus); WARNING: Prefer [subsystem eg: netdev]_dbg([subsystem]dev, ... then dev_dbg(dev, ... then pr_debug(... to printk(KERN_DEBUG ... #1304: FILE: drivers/net/ethernet/dlink/sundance.c:1189: + printk(KERN_DEBUG "%s: Interrupt, status %4.4x.\n", CHECK: Alignment should match open parenthesis #1305: FILE: drivers/net/ethernet/dlink/sundance.c:1190: + printk(KERN_DEBUG "%s: Interrupt, status %4.4x.\n", + dev->name, intr_status); CHECK: spaces preferred around that '|' (ctx:VxV) #1313: FILE: drivers/net/ethernet/dlink/sundance.c:1198: + iowrite16(DEFAULT_INTR & ~(IntrRxDone|IntrRxDMADone), ^ CHECK: Alignment should match open parenthesis #1314: FILE: drivers/net/ethernet/dlink/sundance.c:1199: + iowrite16(DEFAULT_INTR & ~(IntrRxDone|IntrRxDMADone), + ioaddr + IntrEnable); WARNING: space prohibited between function name and open parenthesis '(' #1320: FILE: drivers/net/ethernet/dlink/sundance.c:1205: + tx_status = ioread16 (ioaddr + TxStatus); ERROR: spaces required around that '=' (ctx:VxV) #1321: FILE: drivers/net/ethernet/dlink/sundance.c:1206: + for (tx_cnt=32; tx_status & 0x80; --tx_cnt) { ^ ERROR: code indent should use tabs where possible #1325: FILE: drivers/net/ethernet/dlink/sundance.c:1210: +^I^I^I^I ^Idev->name, tx_status);$ WARNING: please, no space before tabs #1325: FILE: drivers/net/ethernet/dlink/sundance.c:1210: +^I^I^I^I ^Idev->name, tx_status);$ WARNING: printk() should include KERN_ facility level #1328: FILE: drivers/net/ethernet/dlink/sundance.c:1213: + printk("%s: Transmit error status %4.4x.\n", WARNING: line length of 81 exceeds 80 columns #1329: FILE: drivers/net/ethernet/dlink/sundance.c:1214: + dev->name, tx_status); CHECK: Alignment should match open parenthesis #1329: FILE: drivers/net/ethernet/dlink/sundance.c:1214: + printk("%s: Transmit error status %4.4x.\n", + dev->name, tx_status); WARNING: Block comments should align the * on each line #1341: FILE: drivers/net/ethernet/dlink/sundance.c:1226: + /* + ** This reset has been verified on WARNING: line length of 85 exceeds 80 columns #1345: FILE: drivers/net/ethernet/dlink/sundance.c:1230: + /* Restart Tx FIFO and transmitter */ WARNING: line length of 108 exceeds 80 columns #1346: FILE: drivers/net/ethernet/dlink/sundance.c:1231: + sundance_reset(dev, (NetworkReset|FIFOReset|TxReset) << 16); CHECK: spaces preferred around that '|' (ctx:VxV) #1346: FILE: drivers/net/ethernet/dlink/sundance.c:1231: + sundance_reset(dev, (NetworkReset|FIFOReset|TxReset) << 16); ^ CHECK: spaces preferred around that '|' (ctx:VxV) #1346: FILE: drivers/net/ethernet/dlink/sundance.c:1231: + sundance_reset(dev, (NetworkReset|FIFOReset|TxReset) << 16); ^ WARNING: line length of 90 exceeds 80 columns #1347: FILE: drivers/net/ethernet/dlink/sundance.c:1232: + /* No need to reset the Tx pointer here */ WARNING: line length of 90 exceeds 80 columns #1349: FILE: drivers/net/ethernet/dlink/sundance.c:1234: + /* Restart the Tx. Need to make sure tx enabled */ WARNING: line length of 117 exceeds 80 columns #1352: FILE: drivers/net/ethernet/dlink/sundance.c:1237: + iowrite16(ioread16(ioaddr + MACCtrl1) | TxEnable, ioaddr + MACCtrl1); WARNING: line length of 92 exceeds 80 columns #1353: FILE: drivers/net/ethernet/dlink/sundance.c:1238: + if (ioread16(ioaddr + MACCtrl1) & TxEnabled) WARNING: Too many leading tabs - consider code refactoring #1353: FILE: drivers/net/ethernet/dlink/sundance.c:1238: + if (ioread16(ioaddr + MACCtrl1) & TxEnabled) WARNING: line length of 92 exceeds 80 columns #1358: FILE: drivers/net/ethernet/dlink/sundance.c:1243: + /* Yup, this is a documentation bug. It cost me *hours*. */ WARNING: space prohibited between function name and open parenthesis '(' #1359: FILE: drivers/net/ethernet/dlink/sundance.c:1244: + iowrite16 (0, ioaddr + TxStatus); WARNING: space prohibited between function name and open parenthesis '(' #1364: FILE: drivers/net/ethernet/dlink/sundance.c:1249: + tx_status = ioread16 (ioaddr + TxStatus); WARNING: please, no space before tabs #1367: FILE: drivers/net/ethernet/dlink/sundance.c:1252: +^I^I} else ^I{$ WARNING: Missing a blank line after declarations #1377: FILE: drivers/net/ethernet/dlink/sundance.c:1262: + int sw_frame_id; + sw_frame_id = (le32_to_cpu( CHECK: Lines should not end with a '(' #1377: FILE: drivers/net/ethernet/dlink/sundance.c:1262: + sw_frame_id = (le32_to_cpu( WARNING: suspect code indent for conditional statements (32, 48) #1379: FILE: drivers/net/ethernet/dlink/sundance.c:1264: + if (sw_frame_id == hw_frame_id && [...] + break; CHECK: Alignment should match open parenthesis #1380: FILE: drivers/net/ethernet/dlink/sundance.c:1265: + if (sw_frame_id == hw_frame_id && + !(le32_to_cpu(np->tx_ring[entry].status) WARNING: suspect code indent for conditional statements (32, 48) #1383: FILE: drivers/net/ethernet/dlink/sundance.c:1268: + if (sw_frame_id == (hw_frame_id + 1) % [...] + break; WARNING: line length of 82 exceeds 80 columns #1389: FILE: drivers/net/ethernet/dlink/sundance.c:1274: + le32_to_cpu(np->tx_ring[entry].frag.addr), CHECK: Alignment should match open parenthesis #1389: FILE: drivers/net/ethernet/dlink/sundance.c:1274: + dma_unmap_single(&np->pci_dev->dev, + le32_to_cpu(np->tx_ring[entry].frag.addr), WARNING: Missing a blank line after declarations #1402: FILE: drivers/net/ethernet/dlink/sundance.c:1287: + struct sk_buff *skb; + if (!(le32_to_cpu(np->tx_ring[entry].status) WARNING: line length of 82 exceeds 80 columns #1408: FILE: drivers/net/ethernet/dlink/sundance.c:1293: + le32_to_cpu(np->tx_ring[entry].frag.addr), CHECK: Alignment should match open parenthesis #1408: FILE: drivers/net/ethernet/dlink/sundance.c:1293: + dma_unmap_single(&np->pci_dev->dev, + le32_to_cpu(np->tx_ring[entry].frag.addr), CHECK: Alignment should match open parenthesis #1419: FILE: drivers/net/ethernet/dlink/sundance.c:1304: + if (netif_queue_stopped(dev) && + np->cur_tx - np->dirty_tx < TX_QUEUE_LEN - 4) { WARNING: space prohibited between function name and open parenthesis '(' #1421: FILE: drivers/net/ethernet/dlink/sundance.c:1306: + netif_wake_queue (dev); WARNING: Prefer [subsystem eg: netdev]_dbg([subsystem]dev, ... then dev_dbg(dev, ... then pr_debug(... to printk(KERN_DEBUG ... #1428: FILE: drivers/net/ethernet/dlink/sundance.c:1313: + printk(KERN_DEBUG "%s: exiting interrupt, status=%#4.4x.\n", CHECK: Alignment should match open parenthesis #1429: FILE: drivers/net/ethernet/dlink/sundance.c:1314: + printk(KERN_DEBUG "%s: exiting interrupt, status=%#4.4x.\n", + dev->name, ioread16(ioaddr + IntrStatus)); CHECK: Unnecessary parentheses around np->rx_ring[entry] #1444: FILE: drivers/net/ethernet/dlink/sundance.c:1329: + struct netdev_desc *desc = &(np->rx_ring[entry]); WARNING: braces {} are not necessary for single statement blocks #1448: FILE: drivers/net/ethernet/dlink/sundance.c:1333: + if (--boguscnt < 0) { + goto not_done; + } WARNING: line length of 81 exceeds 80 columns #1453: FILE: drivers/net/ethernet/dlink/sundance.c:1338: + pkt_len = frame_status & 0x1fff; /* Chip omits the CRC. */ WARNING: Prefer [subsystem eg: netdev]_dbg([subsystem]dev, ... then dev_dbg(dev, ... then pr_debug(... to printk(KERN_DEBUG ... #1455: FILE: drivers/net/ethernet/dlink/sundance.c:1340: + printk(KERN_DEBUG " netdev_rx() status was %8.8x.\n", CHECK: Alignment should match open parenthesis #1456: FILE: drivers/net/ethernet/dlink/sundance.c:1341: + printk(KERN_DEBUG " netdev_rx() status was %8.8x.\n", + frame_status); WARNING: Prefer [subsystem eg: netdev]_dbg([subsystem]dev, ... then dev_dbg(dev, ... then pr_debug(... to printk(KERN_DEBUG ... #1460: FILE: drivers/net/ethernet/dlink/sundance.c:1345: + printk(KERN_DEBUG " netdev_rx() Rx error was %8.8x.\n", CHECK: Alignment should match open parenthesis #1461: FILE: drivers/net/ethernet/dlink/sundance.c:1346: + printk(KERN_DEBUG " netdev_rx() Rx error was %8.8x.\n", + frame_status); WARNING: Prefer [subsystem eg: netdev]_warn([subsystem]dev, ... then dev_warn(dev, ... then pr_warn(... to printk(KERN_WARNING ... #1472: FILE: drivers/net/ethernet/dlink/sundance.c:1357: + printk(KERN_WARNING "%s: Oversized Ethernet frame," WARNING: quoted string split across lines #1473: FILE: drivers/net/ethernet/dlink/sundance.c:1358: + printk(KERN_WARNING "%s: Oversized Ethernet frame," + " status %8.8x.\n", WARNING: Prefer [subsystem eg: netdev]_dbg([subsystem]dev, ... then dev_dbg(dev, ... then pr_debug(... to printk(KERN_DEBUG ... #1480: FILE: drivers/net/ethernet/dlink/sundance.c:1365: + printk(KERN_DEBUG " netdev_rx() normal Rx pkt length %d" WARNING: quoted string split across lines #1481: FILE: drivers/net/ethernet/dlink/sundance.c:1366: + printk(KERN_DEBUG " netdev_rx() normal Rx pkt length %d" + ", bogus_cnt %d.\n", WARNING: line length of 87 exceeds 80 columns #1484: FILE: drivers/net/ethernet/dlink/sundance.c:1369: + /* Check if the packet is long enough to accept without copying WARNING: Block comments use * on subsequent lines #1485: FILE: drivers/net/ethernet/dlink/sundance.c:1370: + /* Check if the packet is long enough to accept without copying + to a minimally-sized skbuff. */ WARNING: Block comments use a trailing */ on a separate line #1485: FILE: drivers/net/ethernet/dlink/sundance.c:1370: + to a minimally-sized skbuff. */ ERROR: do not use assignment in if condition #1486: FILE: drivers/net/ethernet/dlink/sundance.c:1371: + if (pkt_len < rx_copybreak && WARNING: line length of 81 exceeds 80 columns #1487: FILE: drivers/net/ethernet/dlink/sundance.c:1372: + (skb = netdev_alloc_skb(dev, pkt_len + 2)) != NULL) { WARNING: line length of 89 exceeds 80 columns #1488: FILE: drivers/net/ethernet/dlink/sundance.c:1373: + skb_reserve(skb, 2); /* 16 byte align the IP header */ CHECK: Alignment should match open parenthesis #1490: FILE: drivers/net/ethernet/dlink/sundance.c:1375: + dma_sync_single_for_cpu(&np->pci_dev->dev, + le32_to_cpu(desc->frag.addr), WARNING: line length of 98 exceeds 80 columns #1492: FILE: drivers/net/ethernet/dlink/sundance.c:1377: + skb_copy_to_linear_data(skb, np->rx_skbuff[entry]->data, pkt_len); CHECK: Alignment should match open parenthesis #1494: FILE: drivers/net/ethernet/dlink/sundance.c:1379: + dma_sync_single_for_device(&np->pci_dev->dev, + le32_to_cpu(desc->frag.addr), CHECK: Alignment should match open parenthesis #1499: FILE: drivers/net/ethernet/dlink/sundance.c:1384: + dma_unmap_single(&np->pci_dev->dev, + le32_to_cpu(desc->frag.addr), WARNING: line length of 86 exceeds 80 columns #1505: FILE: drivers/net/ethernet/dlink/sundance.c:1390: + /* Note: checksum -> skb->ip_summed = CHECKSUM_UNNECESSARY; */ WARNING: space prohibited between function name and open parenthesis '(' #1512: FILE: drivers/net/ethernet/dlink/sundance.c:1397: + refill_rx (dev); WARNING: space prohibited between function name and open parenthesis '(' #1519: FILE: drivers/net/ethernet/dlink/sundance.c:1404: + refill_rx (dev); WARNING: space prohibited between function name and open parenthesis '(' #1528: FILE: drivers/net/ethernet/dlink/sundance.c:1413: +static void refill_rx (struct net_device *dev) ERROR: space required after that ';' (ctx:BxV) #1534: FILE: drivers/net/ethernet/dlink/sundance.c:1419: + for (;(np->cur_rx - np->dirty_rx + RX_RING_SIZE) % RX_RING_SIZE > 0; ^ WARNING: Missing a blank line after declarations #1537: FILE: drivers/net/ethernet/dlink/sundance.c:1422: + struct sk_buff *skb; + entry = np->dirty_rx % RX_RING_SIZE; CHECK: Comparison to NULL could be written "!np->rx_skbuff[entry]" #1538: FILE: drivers/net/ethernet/dlink/sundance.c:1423: + if (np->rx_skbuff[entry] == NULL) { CHECK: Comparison to NULL could be written "!skb" #1541: FILE: drivers/net/ethernet/dlink/sundance.c:1426: + if (skb == NULL) WARNING: line length of 84 exceeds 80 columns #1543: FILE: drivers/net/ethernet/dlink/sundance.c:1428: + skb_reserve(skb, 2); /* Align IP on 16 byte boundaries */ CHECK: Lines should not end with a '(' #1544: FILE: drivers/net/ethernet/dlink/sundance.c:1429: + np->rx_ring[entry].frag.addr = cpu_to_le32( CHECK: Alignment should match open parenthesis #1546: FILE: drivers/net/ethernet/dlink/sundance.c:1431: + dma_map_single(&np->pci_dev->dev, skb->data, + np->rx_buf_sz, DMA_FROM_DEVICE)); WARNING: suspect code indent for conditional statements (24, 28) #1547: FILE: drivers/net/ethernet/dlink/sundance.c:1432: + if (dma_mapping_error(&np->pci_dev->dev, [...] + dev_kfree_skb_irq(skb); CHECK: Alignment should match open parenthesis #1548: FILE: drivers/net/ethernet/dlink/sundance.c:1433: + if (dma_mapping_error(&np->pci_dev->dev, + np->rx_ring[entry].frag.addr)) { WARNING: Statements should start on a tabstop #1551: FILE: drivers/net/ethernet/dlink/sundance.c:1436: + break; CHECK: Please use a blank line after function/struct/union/enum declarations #1560: FILE: drivers/net/ethernet/dlink/sundance.c:1445: +} +static void netdev_error(struct net_device *dev, int intr_status) WARNING: Prefer [subsystem eg: netdev]_info([subsystem]dev, ... then dev_info(dev, ... then pr_info(... to printk(KERN_INFO ... #1569: FILE: drivers/net/ethernet/dlink/sundance.c:1454: + printk(KERN_INFO "%s: Link up\n", dev->name); CHECK: Alignment should match open parenthesis #1572: FILE: drivers/net/ethernet/dlink/sundance.c:1457: + mii_advertise = mdio_read(dev, np->phys[0], + MII_ADVERTISE); WARNING: Prefer [subsystem eg: netdev]_info([subsystem]dev, ... then dev_info(dev, ... then pr_info(... to printk(KERN_INFO ... #1575: FILE: drivers/net/ethernet/dlink/sundance.c:1460: + printk(KERN_INFO "%s: Link changed: ", CHECK: Alignment should match open parenthesis #1576: FILE: drivers/net/ethernet/dlink/sundance.c:1461: + printk(KERN_INFO "%s: Link changed: ", + dev->name); CHECK: braces {} should be used on all arms of this statement #1577: FILE: drivers/net/ethernet/dlink/sundance.c:1462: + if (mii_advertise & ADVERTISE_100FULL) { [...] + } else if (mii_advertise & ADVERTISE_100HALF) { [...] + } else if (mii_advertise & ADVERTISE_10FULL) { [...] + } else if (mii_advertise & ADVERTISE_10HALF) { [...] + } else [...] WARNING: printk() should include KERN_ facility level #1579: FILE: drivers/net/ethernet/dlink/sundance.c:1464: + printk("100Mbps, full duplex\n"); WARNING: printk() should include KERN_ facility level #1582: FILE: drivers/net/ethernet/dlink/sundance.c:1467: + printk("100Mbps, half duplex\n"); WARNING: printk() should include KERN_ facility level #1585: FILE: drivers/net/ethernet/dlink/sundance.c:1470: + printk("10Mbps, full duplex\n"); WARNING: printk() should include KERN_ facility level #1588: FILE: drivers/net/ethernet/dlink/sundance.c:1473: + printk("10Mbps, half duplex\n"); CHECK: Unbalanced braces around else statement #1589: FILE: drivers/net/ethernet/dlink/sundance.c:1474: + } else WARNING: printk() should include KERN_ facility level #1590: FILE: drivers/net/ethernet/dlink/sundance.c:1475: + printk("\n"); WARNING: Prefer [subsystem eg: netdev]_info([subsystem]dev, ... then dev_info(dev, ... then pr_info(... to printk(KERN_INFO ... #1596: FILE: drivers/net/ethernet/dlink/sundance.c:1481: + printk(KERN_INFO "%s: Link changed: %dMbps ,", CHECK: Alignment should match open parenthesis #1597: FILE: drivers/net/ethernet/dlink/sundance.c:1482: + printk(KERN_INFO "%s: Link changed: %dMbps ,", + dev->name, speed); WARNING: printk() should include KERN_ facility level #1598: FILE: drivers/net/ethernet/dlink/sundance.c:1483: + printk("%s duplex.\n", CHECK: Alignment should match open parenthesis #1599: FILE: drivers/net/ethernet/dlink/sundance.c:1484: + printk("%s duplex.\n", + (mii_ctl & BMCR_FULLDPLX) ? WARNING: line length of 89 exceeds 80 columns #1604: FILE: drivers/net/ethernet/dlink/sundance.c:1489: + iowrite16(ioread16(ioaddr + MulticastFilter1+2) | 0x0200, CHECK: spaces preferred around that '+' (ctx:VxV) #1604: FILE: drivers/net/ethernet/dlink/sundance.c:1489: + iowrite16(ioread16(ioaddr + MulticastFilter1+2) | 0x0200, ^ CHECK: Alignment should match open parenthesis #1605: FILE: drivers/net/ethernet/dlink/sundance.c:1490: + iowrite16(ioread16(ioaddr + MulticastFilter1+2) | 0x0200, + ioaddr + MulticastFilter1+2); CHECK: spaces preferred around that '+' (ctx:VxV) #1605: FILE: drivers/net/ethernet/dlink/sundance.c:1490: + ioaddr + MulticastFilter1+2); ^ WARNING: line length of 84 exceeds 80 columns #1606: FILE: drivers/net/ethernet/dlink/sundance.c:1491: + iowrite16(ioread16(ioaddr + MACCtrl0) | EnbFlowCtrl, CHECK: Alignment should match open parenthesis #1607: FILE: drivers/net/ethernet/dlink/sundance.c:1492: + iowrite16(ioread16(ioaddr + MACCtrl0) | EnbFlowCtrl, + ioaddr + MACCtrl0); WARNING: Prefer [subsystem eg: netdev]_info([subsystem]dev, ... then dev_info(dev, ... then pr_info(... to printk(KERN_INFO ... #1611: FILE: drivers/net/ethernet/dlink/sundance.c:1496: + printk(KERN_INFO "%s: Link down\n", dev->name); WARNING: braces {} are not necessary for single statement blocks #1615: FILE: drivers/net/ethernet/dlink/sundance.c:1500: + if (intr_status & StatsMax) { + get_stats(dev); + } WARNING: Prefer [subsystem eg: netdev]_err([subsystem]dev, ... then dev_err(dev, ... then pr_err(... to printk(KERN_ERR ... #1619: FILE: drivers/net/ethernet/dlink/sundance.c:1504: + printk(KERN_ERR "%s: Something Wicked happened! %4.4x.\n", CHECK: Alignment should match open parenthesis #1620: FILE: drivers/net/ethernet/dlink/sundance.c:1505: + printk(KERN_ERR "%s: Something Wicked happened! %4.4x.\n", + dev->name, intr_status); WARNING: line length of 87 exceeds 80 columns #1677: FILE: drivers/net/ethernet/dlink/sundance.c:1562: + rx_mode = AcceptBroadcast | AcceptMulticast | AcceptAll | AcceptMyPhys; WARNING: Missing a blank line after declarations #1688: FILE: drivers/net/ethernet/dlink/sundance.c:1573: + int crc; + memset (mc_filter, 0, sizeof (mc_filter)); WARNING: space prohibited between function name and open parenthesis '(' #1688: FILE: drivers/net/ethernet/dlink/sundance.c:1573: + memset (mc_filter, 0, sizeof (mc_filter)); WARNING: space prohibited between function name and open parenthesis '(' #1688: FILE: drivers/net/ethernet/dlink/sundance.c:1573: + memset (mc_filter, 0, sizeof (mc_filter)); ERROR: spaces required around that '=' (ctx:VxV) #1691: FILE: drivers/net/ethernet/dlink/sundance.c:1576: + for (index=0, bit=0; bit < 6; bit++, crc <<= 1) ^ ERROR: spaces required around that '=' (ctx:VxV) #1691: FILE: drivers/net/ethernet/dlink/sundance.c:1576: + for (index=0, bit=0; bit < 6; bit++, crc <<= 1) ^ ERROR: trailing statements should be on next line #1692: FILE: drivers/net/ethernet/dlink/sundance.c:1577: + if (crc & 0x80000000) index |= 1 << bit; CHECK: spaces preferred around that '/' (ctx:VxV) #1693: FILE: drivers/net/ethernet/dlink/sundance.c:1578: + mc_filter[index/16] |= (1 << (index % 16)); ^ CHECK: spaces preferred around that '*' (ctx:VxV) #1704: FILE: drivers/net/ethernet/dlink/sundance.c:1589: + iowrite16(mc_filter[i], ioaddr + MulticastFilter0 + i*2); ^ CHECK: spaces preferred around that '+' (ctx:VxV) #1716: FILE: drivers/net/ethernet/dlink/sundance.c:1601: + iowrite16(addr16, np->base + StationAddr+2); ^ CHECK: spaces preferred around that '+' (ctx:VxV) #1718: FILE: drivers/net/ethernet/dlink/sundance.c:1603: + iowrite16(addr16, np->base + StationAddr+4); ^ WARNING: Missing a blank line after declarations #1760: FILE: drivers/net/ethernet/dlink/sundance.c:1645: + struct netdev_private *np = netdev_priv(dev); + strscpy(info->driver, DRV_NAME, sizeof(info->driver)); WARNING: Missing a blank line after declarations #1768: FILE: drivers/net/ethernet/dlink/sundance.c:1653: + struct netdev_private *np = netdev_priv(dev); + spin_lock_irq(&np->lock); WARNING: Missing a blank line after declarations #1779: FILE: drivers/net/ethernet/dlink/sundance.c:1664: + int res; + spin_lock_irq(&np->lock); WARNING: Missing a blank line after declarations #1788: FILE: drivers/net/ethernet/dlink/sundance.c:1673: + struct netdev_private *np = netdev_priv(dev); + return mii_nway_restart(&np->mii_if); WARNING: Missing a blank line after declarations #1794: FILE: drivers/net/ethernet/dlink/sundance.c:1679: + struct netdev_private *np = netdev_priv(dev); + return mii_link_ok(&np->mii_if); WARNING: Missing a blank line after declarations #1800: FILE: drivers/net/ethernet/dlink/sundance.c:1685: + struct netdev_private *np = netdev_priv(dev); + return np->msg_enable; WARNING: Missing a blank line after declarations #1806: FILE: drivers/net/ethernet/dlink/sundance.c:1691: + struct netdev_private *np = netdev_priv(dev); + np->msg_enable = val; CHECK: Alignment should match open parenthesis #1810: FILE: drivers/net/ethernet/dlink/sundance.c:1695: +static void get_strings(struct net_device *dev, u32 stringset, + u8 *data) CHECK: Alignment should match open parenthesis #1827: FILE: drivers/net/ethernet/dlink/sundance.c:1712: +static void get_ethtool_stats(struct net_device *dev, + struct ethtool_stats *stats, u64 *data) CHECK: Alignment should match open parenthesis #1848: FILE: drivers/net/ethernet/dlink/sundance.c:1733: +static void sundance_get_wol(struct net_device *dev, + struct ethtool_wolinfo *wol) CHECK: Alignment should match open parenthesis #1868: FILE: drivers/net/ethernet/dlink/sundance.c:1753: +static int sundance_set_wol(struct net_device *dev, + struct ethtool_wolinfo *wol) WARNING: Prefer [subsystem eg: netdev]_dbg([subsystem]dev, ... then dev_dbg(dev, ... then pr_debug(... to printk(KERN_DEBUG ... #1948: FILE: drivers/net/ethernet/dlink/sundance.c:1833: + printk(KERN_DEBUG "%s: Shutting down ethercard, status was Tx %2.2x " WARNING: quoted string split across lines #1949: FILE: drivers/net/ethernet/dlink/sundance.c:1834: + printk(KERN_DEBUG "%s: Shutting down ethercard, status was Tx %2.2x " + "Rx %4.4x Int %2.2x.\n", WARNING: line length of 87 exceeds 80 columns #1951: FILE: drivers/net/ethernet/dlink/sundance.c:1836: + ioread32(ioaddr + RxStatus), ioread16(ioaddr + IntrStatus)); WARNING: Prefer [subsystem eg: netdev]_dbg([subsystem]dev, ... then dev_dbg(dev, ... then pr_debug(... to printk(KERN_DEBUG ... #1952: FILE: drivers/net/ethernet/dlink/sundance.c:1837: + printk(KERN_DEBUG "%s: Queue pointers were Tx %d / %d, Rx %d / %d.\n", WARNING: line length of 90 exceeds 80 columns #1953: FILE: drivers/net/ethernet/dlink/sundance.c:1838: + dev->name, np->cur_tx, np->dirty_tx, np->cur_rx, np->dirty_rx); CHECK: Alignment should match open parenthesis #1953: FILE: drivers/net/ethernet/dlink/sundance.c:1838: + printk(KERN_DEBUG "%s: Queue pointers were Tx %d / %d, Rx %d / %d.\n", + dev->name, np->cur_tx, np->dirty_tx, np->cur_rx, np->dirty_rx); CHECK: Alignment should match open parenthesis #1972: FILE: drivers/net/ethernet/dlink/sundance.c:1857: + iowrite16(GlobalReset | DMAReset | FIFOReset | NetworkReset, + ioaddr + ASIC_HI_WORD(ASICCtrl)); WARNING: line length of 81 exceeds 80 columns #1975: FILE: drivers/net/ethernet/dlink/sundance.c:1860: + if ((ioread16(ioaddr + ASIC_HI_WORD(ASICCtrl)) & ResetBusy) == 0) CHECK: architecture specific defines should be avoided #1980: FILE: drivers/net/ethernet/dlink/sundance.c:1865: +#ifdef __i386__ WARNING: Prefer [subsystem eg: netdev]_dbg([subsystem]dev, ... then dev_dbg(dev, ... then pr_debug(... to printk(KERN_DEBUG ... #1982: FILE: drivers/net/ethernet/dlink/sundance.c:1867: + printk(KERN_DEBUG " Tx ring at %8.8x:\n", CHECK: Alignment should match open parenthesis #1983: FILE: drivers/net/ethernet/dlink/sundance.c:1868: + printk(KERN_DEBUG " Tx ring at %8.8x:\n", + (int)(np->tx_ring_dma)); WARNING: Prefer [subsystem eg: netdev]_dbg([subsystem]dev, ... then dev_dbg(dev, ... then pr_debug(... to printk(KERN_DEBUG ... #1985: FILE: drivers/net/ethernet/dlink/sundance.c:1870: + printk(KERN_DEBUG " #%d desc. %4.4x %8.8x %8.8x.\n", WARNING: line length of 86 exceeds 80 columns #1986: FILE: drivers/net/ethernet/dlink/sundance.c:1871: + i, np->tx_ring[i].status, np->tx_ring[i].frag.addr, CHECK: Alignment should match open parenthesis #1986: FILE: drivers/net/ethernet/dlink/sundance.c:1871: + printk(KERN_DEBUG " #%d desc. %4.4x %8.8x %8.8x.\n", + i, np->tx_ring[i].status, np->tx_ring[i].frag.addr, WARNING: Prefer [subsystem eg: netdev]_dbg([subsystem]dev, ... then dev_dbg(dev, ... then pr_debug(... to printk(KERN_DEBUG ... #1988: FILE: drivers/net/ethernet/dlink/sundance.c:1873: + printk(KERN_DEBUG " Rx ring %8.8x:\n", CHECK: Alignment should match open parenthesis #1989: FILE: drivers/net/ethernet/dlink/sundance.c:1874: + printk(KERN_DEBUG " Rx ring %8.8x:\n", + (int)(np->rx_ring_dma)); WARNING: Prefer [subsystem eg: netdev]_dbg([subsystem]dev, ... then dev_dbg(dev, ... then pr_debug(... to printk(KERN_DEBUG ... #1991: FILE: drivers/net/ethernet/dlink/sundance.c:1876: + printk(KERN_DEBUG " #%d desc. %4.4x %4.4x %8.8x\n", WARNING: line length of 86 exceeds 80 columns #1992: FILE: drivers/net/ethernet/dlink/sundance.c:1877: + i, np->rx_ring[i].status, np->rx_ring[i].frag.addr, CHECK: Alignment should match open parenthesis #1992: FILE: drivers/net/ethernet/dlink/sundance.c:1877: + printk(KERN_DEBUG " #%d desc. %4.4x %4.4x %8.8x\n", + i, np->rx_ring[i].status, np->rx_ring[i].frag.addr, CHECK: Alignment should match open parenthesis #2008: FILE: drivers/net/ethernet/dlink/sundance.c:1893: + dma_unmap_single(&np->pci_dev->dev, + le32_to_cpu(np->rx_ring[i].frag.addr), CHECK: Alignment should match open parenthesis #2020: FILE: drivers/net/ethernet/dlink/sundance.c:1905: + dma_unmap_single(&np->pci_dev->dev, + le32_to_cpu(np->tx_ring[i].frag.addr), WARNING: suspect code indent for conditional statements (8, 12) #2034: FILE: drivers/net/ethernet/dlink/sundance.c:1919: + if (dev) { + struct netdev_private *np = netdev_priv(dev); WARNING: Statements should start on a tabstop #2035: FILE: drivers/net/ethernet/dlink/sundance.c:1920: + struct netdev_private *np = netdev_priv(dev); WARNING: Missing a blank line after declarations #2036: FILE: drivers/net/ethernet/dlink/sundance.c:1921: + struct netdev_private *np = netdev_priv(dev); + unregister_netdev(dev); CHECK: Alignment should match open parenthesis #2038: FILE: drivers/net/ethernet/dlink/sundance.c:1923: + dma_free_coherent(&pdev->dev, RX_TOTAL_SIZE, + np->rx_ring, np->rx_ring_dma); CHECK: Alignment should match open parenthesis #2040: FILE: drivers/net/ethernet/dlink/sundance.c:1925: + dma_free_coherent(&pdev->dev, TX_TOTAL_SIZE, + np->tx_ring, np->tx_ring_dma); WARNING: Prefer [subsystem eg: netdev]_err([subsystem]dev, ... then dev_err(dev, ... then pr_err(... to printk(KERN_ERR ... #2079: FILE: drivers/net/ethernet/dlink/sundance.c:1964: + printk(KERN_ERR "%s: Can't resume interface!\n", CHECK: Alignment should match open parenthesis #2080: FILE: drivers/net/ethernet/dlink/sundance.c:1965: + printk(KERN_ERR "%s: Can't resume interface!\n", + dev->name); total: 57 errors, 228 warnings, 101 checks, 2039 lines checked NOTE: For some of the reported defects, checkpatch may be able to mechanically convert to the typical style using --fix or --fix-inplace. NOTE: Whitespace errors detected. You may wish to use scripts/cleanpatch or scripts/cleanfile Commit b2ec04400672 ("Revert "eth: remove the DLink/Sundance (ST201) driver"") has style problems, please review. NOTE: Ignored message types: ALLOC_SIZEOF_STRUCT BAD_REPORTED_BY_LINK CAMELCASE COMMIT_LOG_LONG_LINE GIT_COMMIT_ID MACRO_ARG_REUSE NO_AUTHOR_SIGN_OFF NOTE: If any of the errors are false positives, please report them to the maintainer, see CHECKPATCH in MAINTAINERS.