Loading drivers/net/rrunner.c +24 −25 Original line number Diff line number Diff line Loading @@ -294,7 +294,6 @@ static int rr_reset(struct net_device *dev) { struct rr_private *rrpriv; struct rr_regs __iomem *regs; struct eeprom *hw = NULL; u32 start_pc; int i; Loading Loading @@ -381,7 +380,8 @@ static int rr_reset(struct net_device *dev) writel(RBURST_64|WBURST_64, ®s->PciState); wmb(); start_pc = rr_read_eeprom_word(rrpriv, &hw->rncd_info.FwStart); start_pc = rr_read_eeprom_word(rrpriv, offsetof(struct eeprom, rncd_info.FwStart)); #if (DEBUG > 1) printk("%s: Executing firmware at address 0x%06x\n", Loading Loading @@ -438,12 +438,12 @@ static unsigned int rr_read_eeprom(struct rr_private *rrpriv, * it to our CPU byte-order. */ static u32 rr_read_eeprom_word(struct rr_private *rrpriv, void * offset) size_t offset) { u32 word; __be32 word; if ((rr_read_eeprom(rrpriv, (unsigned long)offset, (char *)&word, 4) == 4)) if ((rr_read_eeprom(rrpriv, offset, (unsigned char *)&word, 4) == 4)) return be32_to_cpu(word); return 0; } Loading Loading @@ -510,7 +510,6 @@ static int __devinit rr_init(struct net_device *dev) { struct rr_private *rrpriv; struct rr_regs __iomem *regs; struct eeprom *hw = NULL; u32 sram_size, rev; DECLARE_MAC_BUF(mac); Loading Loading @@ -545,14 +544,14 @@ static int __devinit rr_init(struct net_device *dev) * other method I've seen. -VAL */ *(u16 *)(dev->dev_addr) = htons(rr_read_eeprom_word(rrpriv, &hw->manf.BoardULA)); *(u32 *)(dev->dev_addr+2) = htonl(rr_read_eeprom_word(rrpriv, &hw->manf.BoardULA[4])); *(__be16 *)(dev->dev_addr) = htons(rr_read_eeprom_word(rrpriv, offsetof(struct eeprom, manf.BoardULA))); *(__be32 *)(dev->dev_addr+2) = htonl(rr_read_eeprom_word(rrpriv, offsetof(struct eeprom, manf.BoardULA[4]))); printk(" MAC: %s\n", print_mac(mac, dev->dev_addr)); sram_size = rr_read_eeprom_word(rrpriv, (void *)8); sram_size = rr_read_eeprom_word(rrpriv, 8); printk(" SRAM size 0x%06x\n", sram_size); return 0; Loading Loading @@ -1477,11 +1476,10 @@ static int rr_load_firmware(struct net_device *dev) { struct rr_private *rrpriv; struct rr_regs __iomem *regs; unsigned long eptr, segptr; size_t eptr, segptr; int i, j; u32 localctrl, sptr, len, tmp; u32 p2len, p2size, nr_seg, revision, io, sram_size; struct eeprom *hw = NULL; rrpriv = netdev_priv(dev); regs = rrpriv->regs; Loading Loading @@ -1509,7 +1507,7 @@ static int rr_load_firmware(struct net_device *dev) */ io = readl(®s->ExtIo); writel(0, ®s->ExtIo); sram_size = rr_read_eeprom_word(rrpriv, (void *)8); sram_size = rr_read_eeprom_word(rrpriv, 8); for (i = 200; i < sram_size / 4; i++){ writel(i * 4, ®s->WinBase); Loading @@ -1520,13 +1518,13 @@ static int rr_load_firmware(struct net_device *dev) writel(io, ®s->ExtIo); mb(); eptr = (unsigned long)rr_read_eeprom_word(rrpriv, &hw->rncd_info.AddrRunCodeSegs); eptr = rr_read_eeprom_word(rrpriv, offsetof(struct eeprom, rncd_info.AddrRunCodeSegs)); eptr = ((eptr & 0x1fffff) >> 3); p2len = rr_read_eeprom_word(rrpriv, (void *)(0x83*4)); p2len = rr_read_eeprom_word(rrpriv, 0x83*4); p2len = (p2len << 2); p2size = rr_read_eeprom_word(rrpriv, (void *)(0x84*4)); p2size = rr_read_eeprom_word(rrpriv, 0x84*4); p2size = ((p2size & 0x1fffff) >> 3); if ((eptr < p2size) || (eptr > (p2size + p2len))){ Loading @@ -1534,7 +1532,8 @@ static int rr_load_firmware(struct net_device *dev) goto out; } revision = rr_read_eeprom_word(rrpriv, &hw->manf.HeaderFmt); revision = rr_read_eeprom_word(rrpriv, offsetof(struct eeprom, manf.HeaderFmt)); if (revision != 1){ printk("%s: invalid firmware format (%i)\n", Loading @@ -1542,18 +1541,18 @@ static int rr_load_firmware(struct net_device *dev) goto out; } nr_seg = rr_read_eeprom_word(rrpriv, (void *)eptr); nr_seg = rr_read_eeprom_word(rrpriv, eptr); eptr +=4; #if (DEBUG > 1) printk("%s: nr_seg %i\n", dev->name, nr_seg); #endif for (i = 0; i < nr_seg; i++){ sptr = rr_read_eeprom_word(rrpriv, (void *)eptr); sptr = rr_read_eeprom_word(rrpriv, eptr); eptr += 4; len = rr_read_eeprom_word(rrpriv, (void *)eptr); len = rr_read_eeprom_word(rrpriv, eptr); eptr += 4; segptr = (unsigned long)rr_read_eeprom_word(rrpriv, (void *)eptr); segptr = rr_read_eeprom_word(rrpriv, eptr); segptr = ((segptr & 0x1fffff) >> 3); eptr += 4; #if (DEBUG > 1) Loading @@ -1561,7 +1560,7 @@ static int rr_load_firmware(struct net_device *dev) dev->name, i, sptr, len, segptr); #endif for (j = 0; j < len; j++){ tmp = rr_read_eeprom_word(rrpriv, (void *)segptr); tmp = rr_read_eeprom_word(rrpriv, segptr); writel(sptr, ®s->WinBase); mb(); writel(tmp, ®s->WinData); Loading drivers/net/rrunner.h +1 −1 Original line number Diff line number Diff line Loading @@ -838,7 +838,7 @@ static unsigned int rr_read_eeprom(struct rr_private *rrpriv, unsigned long offset, unsigned char *buf, unsigned long length); static u32 rr_read_eeprom_word(struct rr_private *rrpriv, void * offset); static u32 rr_read_eeprom_word(struct rr_private *rrpriv, size_t offset); static int rr_load_firmware(struct net_device *dev); static inline void rr_raz_tx(struct rr_private *, struct net_device *); static inline void rr_raz_rx(struct rr_private *, struct net_device *); Loading Loading
drivers/net/rrunner.c +24 −25 Original line number Diff line number Diff line Loading @@ -294,7 +294,6 @@ static int rr_reset(struct net_device *dev) { struct rr_private *rrpriv; struct rr_regs __iomem *regs; struct eeprom *hw = NULL; u32 start_pc; int i; Loading Loading @@ -381,7 +380,8 @@ static int rr_reset(struct net_device *dev) writel(RBURST_64|WBURST_64, ®s->PciState); wmb(); start_pc = rr_read_eeprom_word(rrpriv, &hw->rncd_info.FwStart); start_pc = rr_read_eeprom_word(rrpriv, offsetof(struct eeprom, rncd_info.FwStart)); #if (DEBUG > 1) printk("%s: Executing firmware at address 0x%06x\n", Loading Loading @@ -438,12 +438,12 @@ static unsigned int rr_read_eeprom(struct rr_private *rrpriv, * it to our CPU byte-order. */ static u32 rr_read_eeprom_word(struct rr_private *rrpriv, void * offset) size_t offset) { u32 word; __be32 word; if ((rr_read_eeprom(rrpriv, (unsigned long)offset, (char *)&word, 4) == 4)) if ((rr_read_eeprom(rrpriv, offset, (unsigned char *)&word, 4) == 4)) return be32_to_cpu(word); return 0; } Loading Loading @@ -510,7 +510,6 @@ static int __devinit rr_init(struct net_device *dev) { struct rr_private *rrpriv; struct rr_regs __iomem *regs; struct eeprom *hw = NULL; u32 sram_size, rev; DECLARE_MAC_BUF(mac); Loading Loading @@ -545,14 +544,14 @@ static int __devinit rr_init(struct net_device *dev) * other method I've seen. -VAL */ *(u16 *)(dev->dev_addr) = htons(rr_read_eeprom_word(rrpriv, &hw->manf.BoardULA)); *(u32 *)(dev->dev_addr+2) = htonl(rr_read_eeprom_word(rrpriv, &hw->manf.BoardULA[4])); *(__be16 *)(dev->dev_addr) = htons(rr_read_eeprom_word(rrpriv, offsetof(struct eeprom, manf.BoardULA))); *(__be32 *)(dev->dev_addr+2) = htonl(rr_read_eeprom_word(rrpriv, offsetof(struct eeprom, manf.BoardULA[4]))); printk(" MAC: %s\n", print_mac(mac, dev->dev_addr)); sram_size = rr_read_eeprom_word(rrpriv, (void *)8); sram_size = rr_read_eeprom_word(rrpriv, 8); printk(" SRAM size 0x%06x\n", sram_size); return 0; Loading Loading @@ -1477,11 +1476,10 @@ static int rr_load_firmware(struct net_device *dev) { struct rr_private *rrpriv; struct rr_regs __iomem *regs; unsigned long eptr, segptr; size_t eptr, segptr; int i, j; u32 localctrl, sptr, len, tmp; u32 p2len, p2size, nr_seg, revision, io, sram_size; struct eeprom *hw = NULL; rrpriv = netdev_priv(dev); regs = rrpriv->regs; Loading Loading @@ -1509,7 +1507,7 @@ static int rr_load_firmware(struct net_device *dev) */ io = readl(®s->ExtIo); writel(0, ®s->ExtIo); sram_size = rr_read_eeprom_word(rrpriv, (void *)8); sram_size = rr_read_eeprom_word(rrpriv, 8); for (i = 200; i < sram_size / 4; i++){ writel(i * 4, ®s->WinBase); Loading @@ -1520,13 +1518,13 @@ static int rr_load_firmware(struct net_device *dev) writel(io, ®s->ExtIo); mb(); eptr = (unsigned long)rr_read_eeprom_word(rrpriv, &hw->rncd_info.AddrRunCodeSegs); eptr = rr_read_eeprom_word(rrpriv, offsetof(struct eeprom, rncd_info.AddrRunCodeSegs)); eptr = ((eptr & 0x1fffff) >> 3); p2len = rr_read_eeprom_word(rrpriv, (void *)(0x83*4)); p2len = rr_read_eeprom_word(rrpriv, 0x83*4); p2len = (p2len << 2); p2size = rr_read_eeprom_word(rrpriv, (void *)(0x84*4)); p2size = rr_read_eeprom_word(rrpriv, 0x84*4); p2size = ((p2size & 0x1fffff) >> 3); if ((eptr < p2size) || (eptr > (p2size + p2len))){ Loading @@ -1534,7 +1532,8 @@ static int rr_load_firmware(struct net_device *dev) goto out; } revision = rr_read_eeprom_word(rrpriv, &hw->manf.HeaderFmt); revision = rr_read_eeprom_word(rrpriv, offsetof(struct eeprom, manf.HeaderFmt)); if (revision != 1){ printk("%s: invalid firmware format (%i)\n", Loading @@ -1542,18 +1541,18 @@ static int rr_load_firmware(struct net_device *dev) goto out; } nr_seg = rr_read_eeprom_word(rrpriv, (void *)eptr); nr_seg = rr_read_eeprom_word(rrpriv, eptr); eptr +=4; #if (DEBUG > 1) printk("%s: nr_seg %i\n", dev->name, nr_seg); #endif for (i = 0; i < nr_seg; i++){ sptr = rr_read_eeprom_word(rrpriv, (void *)eptr); sptr = rr_read_eeprom_word(rrpriv, eptr); eptr += 4; len = rr_read_eeprom_word(rrpriv, (void *)eptr); len = rr_read_eeprom_word(rrpriv, eptr); eptr += 4; segptr = (unsigned long)rr_read_eeprom_word(rrpriv, (void *)eptr); segptr = rr_read_eeprom_word(rrpriv, eptr); segptr = ((segptr & 0x1fffff) >> 3); eptr += 4; #if (DEBUG > 1) Loading @@ -1561,7 +1560,7 @@ static int rr_load_firmware(struct net_device *dev) dev->name, i, sptr, len, segptr); #endif for (j = 0; j < len; j++){ tmp = rr_read_eeprom_word(rrpriv, (void *)segptr); tmp = rr_read_eeprom_word(rrpriv, segptr); writel(sptr, ®s->WinBase); mb(); writel(tmp, ®s->WinData); Loading
drivers/net/rrunner.h +1 −1 Original line number Diff line number Diff line Loading @@ -838,7 +838,7 @@ static unsigned int rr_read_eeprom(struct rr_private *rrpriv, unsigned long offset, unsigned char *buf, unsigned long length); static u32 rr_read_eeprom_word(struct rr_private *rrpriv, void * offset); static u32 rr_read_eeprom_word(struct rr_private *rrpriv, size_t offset); static int rr_load_firmware(struct net_device *dev); static inline void rr_raz_tx(struct rr_private *, struct net_device *); static inline void rr_raz_rx(struct rr_private *, struct net_device *); Loading