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

Commit 4a73a437 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6:
  vlan: dont drop packets from unknown vlans in promiscuous mode
  Phonet: Correct header retrieval after pskb_may_pull
  um: Proper Fix for f25c80a4: remove duplicate structure field initialization
  ip_gre: Fix dependencies wrt. ipv6.
  net-2.6: SYN retransmits: Add new parameter to retransmits_timed_out()
  iwl3945: queue the right work if the scan needs to be aborted
  mac80211: fix use-after-free
parents c470af0a 173e79fb
Loading
Loading
Loading
Loading
+3 −14
Original line number Diff line number Diff line
@@ -255,18 +255,6 @@ static void uml_net_tx_timeout(struct net_device *dev)
	netif_wake_queue(dev);
}

static int uml_net_set_mac(struct net_device *dev, void *addr)
{
	struct uml_net_private *lp = netdev_priv(dev);
	struct sockaddr *hwaddr = addr;

	spin_lock_irq(&lp->lock);
	eth_mac_addr(dev, hwaddr->sa_data);
	spin_unlock_irq(&lp->lock);

	return 0;
}

static int uml_net_change_mtu(struct net_device *dev, int new_mtu)
{
	dev->mtu = new_mtu;
@@ -373,7 +361,7 @@ static const struct net_device_ops uml_netdev_ops = {
	.ndo_start_xmit 	= uml_net_start_xmit,
	.ndo_set_multicast_list = uml_net_set_multicast_list,
	.ndo_tx_timeout 	= uml_net_tx_timeout,
	.ndo_set_mac_address	= uml_net_set_mac,
	.ndo_set_mac_address	= eth_mac_addr,
	.ndo_change_mtu 	= uml_net_change_mtu,
	.ndo_validate_addr	= eth_validate_addr,
};
@@ -472,7 +460,8 @@ static void eth_configure(int n, void *init, char *mac,
	    ((*transport->user->init)(&lp->user, dev) != 0))
		goto out_unregister;

	eth_mac_addr(dev, device->mac);
	/* don't use eth_mac_addr, it will not work here */
	memcpy(dev->dev_addr, device->mac, ETH_ALEN);
	dev->mtu = transport->user->mtu;
	dev->netdev_ops = &uml_netdev_ops;
	dev->ethtool_ops = &uml_net_ethtool_ops;
+1 −1
Original line number Diff line number Diff line
@@ -1411,7 +1411,7 @@ void iwlagn_request_scan(struct iwl_priv *priv, struct ieee80211_vif *vif)
	clear_bit(STATUS_SCAN_HW, &priv->status);
	clear_bit(STATUS_SCANNING, &priv->status);
	/* inform mac80211 scan aborted */
	queue_work(priv->workqueue, &priv->scan_completed);
	queue_work(priv->workqueue, &priv->abort_scan);
}

int iwlagn_manage_ibss_station(struct iwl_priv *priv,
+1 −1
Original line number Diff line number Diff line
@@ -3018,7 +3018,7 @@ void iwl3945_request_scan(struct iwl_priv *priv, struct ieee80211_vif *vif)
	clear_bit(STATUS_SCANNING, &priv->status);

	/* inform mac80211 scan aborted */
	queue_work(priv->workqueue, &priv->scan_completed);
	queue_work(priv->workqueue, &priv->abort_scan);
}

static void iwl3945_bg_restart(struct work_struct *data)
+10 −4
Original line number Diff line number Diff line
@@ -24,8 +24,11 @@ int __vlan_hwaccel_rx(struct sk_buff *skb, struct vlan_group *grp,

	if (vlan_dev)
		skb->dev = vlan_dev;
	else if (vlan_id)
	else if (vlan_id) {
		if (!(skb->dev->flags & IFF_PROMISC))
			goto drop;
		skb->pkt_type = PACKET_OTHERHOST;
	}

	return (polling ? netif_receive_skb(skb) : netif_rx(skb));

@@ -102,8 +105,11 @@ vlan_gro_common(struct napi_struct *napi, struct vlan_group *grp,

	if (vlan_dev)
		skb->dev = vlan_dev;
	else if (vlan_id)
	else if (vlan_id) {
		if (!(skb->dev->flags & IFF_PROMISC))
			goto drop;
		skb->pkt_type = PACKET_OTHERHOST;
	}

	for (p = napi->gro_list; p; p = p->next) {
		NAPI_GRO_CB(p)->same_flow =
+1 −0
Original line number Diff line number Diff line
@@ -217,6 +217,7 @@ config NET_IPIP

config NET_IPGRE
	tristate "IP: GRE tunnels over IP"
	depends on IPV6 || IPV6=n
	help
	  Tunneling means encapsulating data of one protocol type within
	  another protocol and sending it over a channel that understands the
Loading