Skip to content

Commit

Permalink
Merge branch 'upstream-linus' of git://git.kernel.org/pub/scm/linux/k…
Browse files Browse the repository at this point in the history
…ernel/git/jgarzik/netdev-2.6

* 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/netdev-2.6:
  spidernet MAINTAINERship update
  sky2: remove check for PCI wakeup setting from BIOS
  sky2: large memory workaround.
  fs_enet: check for phydev existence in the ethtool handlers
  [usb netdev] asix: fix regression
  r8169: fix missing loop variable increment
  ip1000: menu location change
  Fixed a small typo in the loopback driver
  3c509: PnP resource management fix
  netxen: fix byte-swapping in tx and rx
  netxen: optimize tx handling
  netxen: stop second phy correctly
  netxen: update driver version
  netxen: update MAINTAINERS
  endianness noise in tulip_core
  de4x5 fixes
  xircom_cb endianness fixes
  rt2x00: Put 802.11 data on 4 byte boundary
  rt2x00: Corectly initialize rt2500usb MAC
  rt2x00: Allow rt61 to catch up after a missing tx report
  • Loading branch information
Linus Torvalds committed Jan 13, 2008
2 parents fd4be69 + cb8da8a commit d72ec9e
Show file tree
Hide file tree
Showing 20 changed files with 238 additions and 271 deletions.
10 changes: 6 additions & 4 deletions MAINTAINERS
Original file line number Diff line number Diff line change
Expand Up @@ -2739,8 +2739,8 @@ T: git kernel.org:/pub/scm/linux/kernel/git/linville/wireless-2.6.git
S: Maintained

NETXEN (1/10) GbE SUPPORT
P: Amit S. Kale
M: amitkale@netxen.com
P: Dhananjay Phadke
M: dhananjay@netxen.com
L: netdev@vger.kernel.org
W: http://www.netxen.com
S: Supported
Expand Down Expand Up @@ -3611,8 +3611,10 @@ L: linux-kernel@vger.kernel.org ?
S: Supported

SPIDERNET NETWORK DRIVER for CELL
P: Linas Vepstas
M: linas@austin.ibm.com
P: Ishizaki Kou
M: kou.ishizaki@toshiba.co.jp
P: Jens Osterkamp
M: jens@de.ibm.com
L: netdev@vger.kernel.org
S: Supported

Expand Down
4 changes: 4 additions & 0 deletions drivers/net/3c509.c
Original file line number Diff line number Diff line change
Expand Up @@ -385,6 +385,7 @@ static int __init el3_probe(int card_idx)
#if defined(__ISAPNP__)
static int pnp_cards;
struct pnp_dev *idev = NULL;
int pnp_found = 0;

if (nopnp == 1)
goto no_pnp;
Expand Down Expand Up @@ -430,6 +431,7 @@ static int __init el3_probe(int card_idx)
pnp_cards++;

netdev_boot_setup_check(dev);
pnp_found = 1;
goto found;
}
}
Expand Down Expand Up @@ -560,6 +562,8 @@ static int __init el3_probe(int card_idx)
lp = netdev_priv(dev);
#if defined(__ISAPNP__)
lp->dev = &idev->dev;
if (pnp_found)
lp->type = EL3_PNP;
#endif
err = el3_common_init(dev);

Expand Down
20 changes: 10 additions & 10 deletions drivers/net/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -166,16 +166,6 @@ config NET_SB1000

If you don't have this card, of course say N.

config IP1000
tristate "IP1000 Gigabit Ethernet support"
depends on PCI && EXPERIMENTAL
select MII
---help---
This driver supports IP1000 gigabit Ethernet cards.

To compile this driver as a module, choose M here: the module
will be called ipg. This is recommended.

source "drivers/net/arcnet/Kconfig"

source "drivers/net/phy/Kconfig"
Expand Down Expand Up @@ -1992,6 +1982,16 @@ config E1000E
To compile this driver as a module, choose M here. The module
will be called e1000e.

config IP1000
tristate "IP1000 Gigabit Ethernet support"
depends on PCI && EXPERIMENTAL
select MII
---help---
This driver supports IP1000 gigabit Ethernet cards.

To compile this driver as a module, choose M here: the module
will be called ipg. This is recommended.

source "drivers/net/ixp2000/Kconfig"

config MYRI_SBUS
Expand Down
11 changes: 9 additions & 2 deletions drivers/net/fs_enet/fs_enet-main.c
Original file line number Diff line number Diff line change
Expand Up @@ -894,14 +894,21 @@ static void fs_get_regs(struct net_device *dev, struct ethtool_regs *regs,
static int fs_get_settings(struct net_device *dev, struct ethtool_cmd *cmd)
{
struct fs_enet_private *fep = netdev_priv(dev);

if (!fep->phydev)
return -ENODEV;

return phy_ethtool_gset(fep->phydev, cmd);
}

static int fs_set_settings(struct net_device *dev, struct ethtool_cmd *cmd)
{
struct fs_enet_private *fep = netdev_priv(dev);
phy_ethtool_sset(fep->phydev, cmd);
return 0;

if (!fep->phydev)
return -ENODEV;

return phy_ethtool_sset(fep->phydev, cmd);
}

static int fs_nway_reset(struct net_device *dev)
Expand Down
2 changes: 1 addition & 1 deletion drivers/net/loopback.c
Original file line number Diff line number Diff line change
Expand Up @@ -242,7 +242,7 @@ static void loopback_setup(struct net_device *dev)
| NETIF_F_NO_CSUM
| NETIF_F_HIGHDMA
| NETIF_F_LLTX
| NETIF_F_NETNS_LOCAL,
| NETIF_F_NETNS_LOCAL;
dev->ethtool_ops = &loopback_ethtool_ops;
dev->header_ops = &eth_header_ops;
dev->init = loopback_dev_init;
Expand Down
69 changes: 36 additions & 33 deletions drivers/net/netxen/netxen_nic.h
Original file line number Diff line number Diff line change
Expand Up @@ -65,8 +65,8 @@

#define _NETXEN_NIC_LINUX_MAJOR 3
#define _NETXEN_NIC_LINUX_MINOR 4
#define _NETXEN_NIC_LINUX_SUBVERSION 2
#define NETXEN_NIC_LINUX_VERSIONID "3.4.2"
#define _NETXEN_NIC_LINUX_SUBVERSION 18
#define NETXEN_NIC_LINUX_VERSIONID "3.4.18"

#define NETXEN_NUM_FLASH_SECTORS (64)
#define NETXEN_FLASH_SECTOR_SIZE (64 * 1024)
Expand Down Expand Up @@ -309,23 +309,26 @@ struct netxen_ring_ctx {
((cmd_desc)->port_ctxid |= ((var) & 0xF0))

#define netxen_set_cmd_desc_flags(cmd_desc, val) \
((cmd_desc)->flags_opcode &= ~cpu_to_le16(0x7f), \
(cmd_desc)->flags_opcode |= cpu_to_le16((val) & 0x7f))
(cmd_desc)->flags_opcode = ((cmd_desc)->flags_opcode & \
~cpu_to_le16(0x7f)) | cpu_to_le16((val) & 0x7f)
#define netxen_set_cmd_desc_opcode(cmd_desc, val) \
((cmd_desc)->flags_opcode &= ~cpu_to_le16(0x3f<<7), \
(cmd_desc)->flags_opcode |= cpu_to_le16(((val & 0x3f)<<7)))
(cmd_desc)->flags_opcode = ((cmd_desc)->flags_opcode & \
~cpu_to_le16((u16)0x3f << 7)) | cpu_to_le16(((val) & 0x3f) << 7)

#define netxen_set_cmd_desc_num_of_buff(cmd_desc, val) \
((cmd_desc)->num_of_buffers_total_length &= ~cpu_to_le32(0xff), \
(cmd_desc)->num_of_buffers_total_length |= cpu_to_le32((val) & 0xff))
(cmd_desc)->num_of_buffers_total_length = \
((cmd_desc)->num_of_buffers_total_length & \
~cpu_to_le32(0xff)) | cpu_to_le32((val) & 0xff)
#define netxen_set_cmd_desc_totallength(cmd_desc, val) \
((cmd_desc)->num_of_buffers_total_length &= ~cpu_to_le32(0xffffff00), \
(cmd_desc)->num_of_buffers_total_length |= cpu_to_le32(val << 8))
(cmd_desc)->num_of_buffers_total_length = \
((cmd_desc)->num_of_buffers_total_length & \
~cpu_to_le32((u32)0xffffff << 8)) | \
cpu_to_le32(((val) & 0xffffff) << 8)

#define netxen_get_cmd_desc_opcode(cmd_desc) \
((le16_to_cpu((cmd_desc)->flags_opcode) >> 7) & 0x003F)
((le16_to_cpu((cmd_desc)->flags_opcode) >> 7) & 0x003f)
#define netxen_get_cmd_desc_totallength(cmd_desc) \
(le32_to_cpu((cmd_desc)->num_of_buffers_total_length) >> 8)
((le32_to_cpu((cmd_desc)->num_of_buffers_total_length) >> 8) & 0xffffff)

struct cmd_desc_type0 {
u8 tcp_hdr_offset; /* For LSO only */
Expand Down Expand Up @@ -412,29 +415,29 @@ struct rcv_desc {
#define netxen_get_sts_desc_lro_last_frag(status_desc) \
(((status_desc)->lro & 0x80) >> 7)

#define netxen_get_sts_port(status_desc) \
(le64_to_cpu((status_desc)->status_desc_data) & 0x0F)
#define netxen_get_sts_status(status_desc) \
((le64_to_cpu((status_desc)->status_desc_data) >> 4) & 0x0F)
#define netxen_get_sts_type(status_desc) \
((le64_to_cpu((status_desc)->status_desc_data) >> 8) & 0x0F)
#define netxen_get_sts_totallength(status_desc) \
((le64_to_cpu((status_desc)->status_desc_data) >> 12) & 0xFFFF)
#define netxen_get_sts_refhandle(status_desc) \
((le64_to_cpu((status_desc)->status_desc_data) >> 28) & 0xFFFF)
#define netxen_get_sts_prot(status_desc) \
((le64_to_cpu((status_desc)->status_desc_data) >> 44) & 0x0F)
#define netxen_get_sts_port(sts_data) \
((sts_data) & 0x0F)
#define netxen_get_sts_status(sts_data) \
(((sts_data) >> 4) & 0x0F)
#define netxen_get_sts_type(sts_data) \
(((sts_data) >> 8) & 0x0F)
#define netxen_get_sts_totallength(sts_data) \
(((sts_data) >> 12) & 0xFFFF)
#define netxen_get_sts_refhandle(sts_data) \
(((sts_data) >> 28) & 0xFFFF)
#define netxen_get_sts_prot(sts_data) \
(((sts_data) >> 44) & 0x0F)
#define netxen_get_sts_opcode(sts_data) \
(((sts_data) >> 58) & 0x03F)

#define netxen_get_sts_owner(status_desc) \
((le64_to_cpu((status_desc)->status_desc_data) >> 56) & 0x03)
#define netxen_get_sts_opcode(status_desc) \
((le64_to_cpu((status_desc)->status_desc_data) >> 58) & 0x03F)

#define netxen_clear_sts_owner(status_desc) \
((status_desc)->status_desc_data &= \
~cpu_to_le64(((unsigned long long)3) << 56 ))
#define netxen_set_sts_owner(status_desc, val) \
((status_desc)->status_desc_data |= \
cpu_to_le64(((unsigned long long)((val) & 0x3)) << 56 ))
#define netxen_set_sts_owner(status_desc, val) { \
(status_desc)->status_desc_data = \
((status_desc)->status_desc_data & \
~cpu_to_le64(0x3ULL << 56)) | \
cpu_to_le64((u64)((val) & 0x3) << 56); \
}

struct status_desc {
/* Bit pattern: 0-3 port, 4-7 status, 8-11 type, 12-27 total_length
Expand Down
20 changes: 9 additions & 11 deletions drivers/net/netxen/netxen_nic_init.c
Original file line number Diff line number Diff line change
Expand Up @@ -1070,16 +1070,17 @@ netxen_process_rcv(struct netxen_adapter *adapter, int ctxid,
{
struct pci_dev *pdev = adapter->pdev;
struct net_device *netdev = adapter->netdev;
int index = netxen_get_sts_refhandle(desc);
u64 sts_data = le64_to_cpu(desc->status_desc_data);
int index = netxen_get_sts_refhandle(sts_data);
struct netxen_recv_context *recv_ctx = &(adapter->recv_ctx[ctxid]);
struct netxen_rx_buffer *buffer;
struct sk_buff *skb;
u32 length = netxen_get_sts_totallength(desc);
u32 length = netxen_get_sts_totallength(sts_data);
u32 desc_ctx;
struct netxen_rcv_desc_ctx *rcv_desc;
int ret;

desc_ctx = netxen_get_sts_type(desc);
desc_ctx = netxen_get_sts_type(sts_data);
if (unlikely(desc_ctx >= NUM_RCV_DESC_RINGS)) {
printk("%s: %s Bad Rcv descriptor ring\n",
netxen_nic_driver_name, netdev->name);
Expand Down Expand Up @@ -1119,7 +1120,7 @@ netxen_process_rcv(struct netxen_adapter *adapter, int ctxid,
skb = (struct sk_buff *)buffer->skb;

if (likely(adapter->rx_csum &&
netxen_get_sts_status(desc) == STATUS_CKSUM_OK)) {
netxen_get_sts_status(sts_data) == STATUS_CKSUM_OK)) {
adapter->stats.csummed++;
skb->ip_summed = CHECKSUM_UNNECESSARY;
} else
Expand Down Expand Up @@ -1209,7 +1210,6 @@ u32 netxen_process_rcv_ring(struct netxen_adapter *adapter, int ctxid, int max)
break;
}
netxen_process_rcv(adapter, ctxid, desc);
netxen_clear_sts_owner(desc);
netxen_set_sts_owner(desc, STATUS_OWNER_PHANTOM);
consumer = (consumer + 1) & (adapter->max_rx_desc_count - 1);
count++;
Expand Down Expand Up @@ -1248,7 +1248,6 @@ int netxen_process_cmd_ring(unsigned long data)
struct pci_dev *pdev;
struct netxen_skb_frag *frag;
u32 i;
struct sk_buff *skb = NULL;
int done;

spin_lock(&adapter->tx_lock);
Expand Down Expand Up @@ -1278,9 +1277,8 @@ int netxen_process_cmd_ring(unsigned long data)
while ((last_consumer != consumer) && (count1 < MAX_STATUS_HANDLE)) {
buffer = &adapter->cmd_buf_arr[last_consumer];
pdev = adapter->pdev;
frag = &buffer->frag_array[0];
skb = buffer->skb;
if (skb && (cmpxchg(&buffer->skb, skb, 0) == skb)) {
if (buffer->skb) {
frag = &buffer->frag_array[0];
pci_unmap_single(pdev, frag->dma, frag->length,
PCI_DMA_TODEVICE);
frag->dma = 0ULL;
Expand All @@ -1293,8 +1291,8 @@ int netxen_process_cmd_ring(unsigned long data)
}

adapter->stats.skbfreed++;
dev_kfree_skb_any(skb);
skb = NULL;
dev_kfree_skb_any(buffer->skb);
buffer->skb = NULL;
} else if (adapter->proc_cmd_buf_counter == 1) {
adapter->stats.txnullskb++;
}
Expand Down
Loading

0 comments on commit d72ec9e

Please sign in to comment.