Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b9099ff6 authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge branch 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6

* 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6:
  sis900: Allocate rx replacement buffer before rx operation
  usb-net/pegasus: simplify carrier detection
parents 94015530 dc5a1449
Loading
Loading
Loading
Loading
+5 −4
Original line number Original line Diff line number Diff line
@@ -1753,6 +1753,7 @@ static int sis900_rx(struct net_device *net_dev)
			sis_priv->rx_ring[entry].cmdsts = RX_BUF_SIZE;
			sis_priv->rx_ring[entry].cmdsts = RX_BUF_SIZE;
		} else {
		} else {
			struct sk_buff * skb;
			struct sk_buff * skb;
			struct sk_buff * rx_skb;


			pci_unmap_single(sis_priv->pci_dev,
			pci_unmap_single(sis_priv->pci_dev,
				sis_priv->rx_ring[entry].bufptr, RX_BUF_SIZE,
				sis_priv->rx_ring[entry].bufptr, RX_BUF_SIZE,
@@ -1786,10 +1787,10 @@ static int sis900_rx(struct net_device *net_dev)
			}
			}


			/* give the socket buffer to upper layers */
			/* give the socket buffer to upper layers */
			skb = sis_priv->rx_skbuff[entry];
			rx_skb = sis_priv->rx_skbuff[entry];
			skb_put(skb, rx_size);
			skb_put(rx_skb, rx_size);
			skb->protocol = eth_type_trans(skb, net_dev);
			rx_skb->protocol = eth_type_trans(rx_skb, net_dev);
			netif_rx(skb);
			netif_rx(rx_skb);


			/* some network statistics */
			/* some network statistics */
			if ((rx_status & BCAST) == MCAST)
			if ((rx_status & BCAST) == MCAST)
+0 −10
Original line number Original line Diff line number Diff line
@@ -847,16 +847,6 @@ static void intr_callback(struct urb *urb)
		 * d[0].NO_CARRIER kicks in only with failed TX.
		 * d[0].NO_CARRIER kicks in only with failed TX.
		 * ... so monitoring with MII may be safest.
		 * ... so monitoring with MII may be safest.
		 */
		 */
		if (pegasus->features & TRUST_LINK_STATUS) {
			if (d[5] & LINK_STATUS)
				netif_carrier_on(net);
			else
				netif_carrier_off(net);
		} else {
			/* Never set carrier _on_ based on ! NO_CARRIER */
			if (d[0] & NO_CARRIER)
				netif_carrier_off(net);	
		}


		/* bytes 3-4 == rx_lostpkt, reg 2E/2F */
		/* bytes 3-4 == rx_lostpkt, reg 2E/2F */
		pegasus->stats.rx_missed_errors += ((d[3] & 0x7f) << 8) | d[4];
		pegasus->stats.rx_missed_errors += ((d[3] & 0x7f) << 8) | d[4];
+1 −2
Original line number Original line Diff line number Diff line
@@ -11,7 +11,6 @@


#define	PEGASUS_II		0x80000000
#define	PEGASUS_II		0x80000000
#define	HAS_HOME_PNA		0x40000000
#define	HAS_HOME_PNA		0x40000000
#define	TRUST_LINK_STATUS	0x20000000


#define	PEGASUS_MTU		1536
#define	PEGASUS_MTU		1536
#define	RX_SKBS			4
#define	RX_SKBS			4
@@ -204,7 +203,7 @@ PEGASUS_DEV( "AEI USB Fast Ethernet Adapter", VENDOR_AEILAB, 0x1701,
PEGASUS_DEV( "Allied Telesyn Int. AT-USB100", VENDOR_ALLIEDTEL, 0xb100,
PEGASUS_DEV( "Allied Telesyn Int. AT-USB100", VENDOR_ALLIEDTEL, 0xb100,
		DEFAULT_GPIO_RESET | PEGASUS_II )
		DEFAULT_GPIO_RESET | PEGASUS_II )
PEGASUS_DEV( "Belkin F5D5050 USB Ethernet", VENDOR_BELKIN, 0x0121,
PEGASUS_DEV( "Belkin F5D5050 USB Ethernet", VENDOR_BELKIN, 0x0121,
		DEFAULT_GPIO_RESET | PEGASUS_II | TRUST_LINK_STATUS )
		DEFAULT_GPIO_RESET | PEGASUS_II )
PEGASUS_DEV( "Billionton USB-100", VENDOR_BILLIONTON, 0x0986,
PEGASUS_DEV( "Billionton USB-100", VENDOR_BILLIONTON, 0x0986,
		DEFAULT_GPIO_RESET )
		DEFAULT_GPIO_RESET )
PEGASUS_DEV( "Billionton USBLP-100", VENDOR_BILLIONTON, 0x0987,
PEGASUS_DEV( "Billionton USBLP-100", VENDOR_BILLIONTON, 0x0987,