Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6

* master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6:
[NETFILTER]: ipt_CLUSTERIP: fix oops in checkentry function
[TCP]: slow_start_after_idle should influence cwnd validation too
[SC92031]: Fix priv->lock context
[NET_SCHED]: cls_tcindex: fix compatibility breakage

+14 -15
+10 -10
drivers/net/sc92031.c
··· 964 964 goto out; 965 965 } 966 966 967 - spin_lock_bh(&priv->lock); 967 + spin_lock(&priv->lock); 968 968 969 969 if (unlikely(!netif_carrier_ok(dev))) { 970 970 err = -ENOLINK; ··· 1005 1005 netif_stop_queue(dev); 1006 1006 1007 1007 out_unlock: 1008 - spin_unlock_bh(&priv->lock); 1008 + spin_unlock(&priv->lock); 1009 1009 1010 1010 out: 1011 1011 dev_kfree_skb(skb); ··· 1042 1042 priv->pm_config = 0; 1043 1043 1044 1044 /* Interrupts already disabled by sc92031_stop or sc92031_probe */ 1045 - spin_lock(&priv->lock); 1045 + spin_lock_bh(&priv->lock); 1046 1046 1047 1047 _sc92031_reset(dev); 1048 1048 mmiowb(); 1049 1049 1050 - spin_unlock(&priv->lock); 1050 + spin_unlock_bh(&priv->lock); 1051 1051 sc92031_enable_interrupts(dev); 1052 1052 1053 1053 if (netif_carrier_ok(dev)) ··· 1077 1077 /* Disable interrupts, stop Tx and Rx. */ 1078 1078 sc92031_disable_interrupts(dev); 1079 1079 1080 - spin_lock(&priv->lock); 1080 + spin_lock_bh(&priv->lock); 1081 1081 1082 1082 _sc92031_disable_tx_rx(dev); 1083 1083 _sc92031_tx_clear(dev); 1084 1084 mmiowb(); 1085 1085 1086 - spin_unlock(&priv->lock); 1086 + spin_unlock_bh(&priv->lock); 1087 1087 1088 1088 free_irq(pdev->irq, dev); 1089 1089 pci_free_consistent(pdev, TX_BUF_TOT_LEN, priv->tx_bufs, ··· 1539 1539 /* Disable interrupts, stop Tx and Rx. */ 1540 1540 sc92031_disable_interrupts(dev); 1541 1541 1542 - spin_lock(&priv->lock); 1542 + spin_lock_bh(&priv->lock); 1543 1543 1544 1544 _sc92031_disable_tx_rx(dev); 1545 1545 _sc92031_tx_clear(dev); 1546 1546 mmiowb(); 1547 1547 1548 - spin_unlock(&priv->lock); 1548 + spin_unlock_bh(&priv->lock); 1549 1549 1550 1550 out: 1551 1551 pci_set_power_state(pdev, pci_choose_state(pdev, state)); ··· 1565 1565 goto out; 1566 1566 1567 1567 /* Interrupts already disabled by sc92031_suspend */ 1568 - spin_lock(&priv->lock); 1568 + spin_lock_bh(&priv->lock); 1569 1569 1570 1570 _sc92031_reset(dev); 1571 1571 mmiowb(); 1572 1572 1573 - spin_unlock(&priv->lock); 1573 + spin_unlock_bh(&priv->lock); 1574 1574 sc92031_enable_interrupts(dev); 1575 1575 1576 1576 netif_device_attach(dev);
-2
net/ipv4/netfilter/ipt_CLUSTERIP.c
··· 411 411 "has invalid config pointer!\n"); 412 412 return 0; 413 413 } 414 - clusterip_config_entry_get(cipinfo->config); 415 414 } else { 416 415 /* Case B: This is a new rule referring to an existing 417 416 * clusterip config. */ 418 417 cipinfo->config = config; 419 - clusterip_config_entry_get(cipinfo->config); 420 418 } 421 419 } else { 422 420 /* Case C: This is a completely new clusterip config */
+2 -1
net/ipv4/tcp_output.c
··· 943 943 if (tp->packets_out > tp->snd_cwnd_used) 944 944 tp->snd_cwnd_used = tp->packets_out; 945 945 946 - if ((s32)(tcp_time_stamp - tp->snd_cwnd_stamp) >= inet_csk(sk)->icsk_rto) 946 + if (sysctl_tcp_slow_start_after_idle && 947 + (s32)(tcp_time_stamp - tp->snd_cwnd_stamp) >= inet_csk(sk)->icsk_rto) 947 948 tcp_cwnd_application_limited(sk); 948 949 } 949 950 }
+2 -2
net/sched/cls_tcindex.c
··· 245 245 } 246 246 247 247 if (tb[TCA_TCINDEX_SHIFT-1]) { 248 - if (RTA_PAYLOAD(tb[TCA_TCINDEX_SHIFT-1]) < sizeof(u16)) 248 + if (RTA_PAYLOAD(tb[TCA_TCINDEX_SHIFT-1]) < sizeof(int)) 249 249 goto errout; 250 - cp.shift = *(u16 *) RTA_DATA(tb[TCA_TCINDEX_SHIFT-1]); 250 + cp.shift = *(int *) RTA_DATA(tb[TCA_TCINDEX_SHIFT-1]); 251 251 } 252 252 253 253 err = -EBUSY;