diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2009-11-18 17:54:45 -0500 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-11-18 17:54:45 -0500 |
| commit | 486bfe5c7ca6184f35b93b9f2bf3fa3baa1b65e4 (patch) | |
| tree | 3cec2570aca8ec88da087398d0bdd52054dfa697 | |
| parent | 5cbb0601bfddfc55d6ea409651313c13e3d6e90a (diff) | |
| parent | 70e3bb504ccfe6ba725ab120bdb516d205d834f9 (diff) | |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (42 commits)
cxgb3: fix premature page unmap
ibm_newemac: Fix EMACx_TRTR[TRT] bit shifts
vlan: Fix register_vlan_dev() error path
gro: Fix illegal merging of trailer trash
sungem: Fix Serdes detection.
net: fix mdio section mismatch warning
ppp: fix BUG on non-linear SKB (multilink receive)
ixgbe: Fixing EEH handler to handle more than one error
net: Fix the rollback test in dev_change_name()
Revert "isdn: isdn_ppp: Use SKB list facilities instead of home-grown implementation."
TI Davinci EMAC : Fix Console Hang when bringing the interface down
smsc911x: Fix Console Hang when bringing the interface down.
mISDN: fix error return in HFCmulti_init()
forcedeth: mac address fix
r6040: fix version printing
Bluetooth: Fix regression with L2CAP configuration in Basic Mode
Bluetooth: Select Basic Mode as default for SOCK_SEQPACKET
Bluetooth: Set general bonding security for ACL by default
r8169: Fix receive buffer length when MTU is between 1515 and 1536
can: add the missing netlink get_xstats_size callback
...
49 files changed, 432 insertions, 490 deletions
diff --git a/MAINTAINERS b/MAINTAINERS index 1ba4f98c9cbc..c824b4d62754 100644 --- a/MAINTAINERS +++ b/MAINTAINERS | |||
| @@ -4332,6 +4332,8 @@ F: drivers/video/aty/aty128fb.c | |||
| 4332 | 4332 | ||
| 4333 | RALINK RT2X00 WIRELESS LAN DRIVER | 4333 | RALINK RT2X00 WIRELESS LAN DRIVER |
| 4334 | P: rt2x00 project | 4334 | P: rt2x00 project |
| 4335 | M: Ivo van Doorn <IvDoorn@gmail.com> | ||
| 4336 | M: Gertjan van Wingerde <gwingerde@gmail.com> | ||
| 4335 | L: linux-wireless@vger.kernel.org | 4337 | L: linux-wireless@vger.kernel.org |
| 4336 | L: users@rt2x00.serialmonkey.com (moderated for non-subscribers) | 4338 | L: users@rt2x00.serialmonkey.com (moderated for non-subscribers) |
| 4337 | W: http://rt2x00.serialmonkey.com/ | 4339 | W: http://rt2x00.serialmonkey.com/ |
| @@ -4419,7 +4421,7 @@ RFKILL | |||
| 4419 | M: Johannes Berg <johannes@sipsolutions.net> | 4421 | M: Johannes Berg <johannes@sipsolutions.net> |
| 4420 | L: linux-wireless@vger.kernel.org | 4422 | L: linux-wireless@vger.kernel.org |
| 4421 | S: Maintained | 4423 | S: Maintained |
| 4422 | F Documentation/rfkill.txt | 4424 | F: Documentation/rfkill.txt |
| 4423 | F: net/rfkill/ | 4425 | F: net/rfkill/ |
| 4424 | 4426 | ||
| 4425 | RISCOM8 DRIVER | 4427 | RISCOM8 DRIVER |
diff --git a/drivers/isdn/hardware/mISDN/hfcmulti.c b/drivers/isdn/hardware/mISDN/hfcmulti.c index faed794cf75a..a6624ad252c5 100644 --- a/drivers/isdn/hardware/mISDN/hfcmulti.c +++ b/drivers/isdn/hardware/mISDN/hfcmulti.c | |||
| @@ -5481,7 +5481,7 @@ HFCmulti_init(void) | |||
| 5481 | if (err) { | 5481 | if (err) { |
| 5482 | printk(KERN_ERR "error registering embedded driver: " | 5482 | printk(KERN_ERR "error registering embedded driver: " |
| 5483 | "%x\n", err); | 5483 | "%x\n", err); |
| 5484 | return -err; | 5484 | return err; |
| 5485 | } | 5485 | } |
| 5486 | HFC_cnt++; | 5486 | HFC_cnt++; |
| 5487 | printk(KERN_INFO "%d devices registered\n", HFC_cnt); | 5487 | printk(KERN_INFO "%d devices registered\n", HFC_cnt); |
diff --git a/drivers/isdn/i4l/isdn_ppp.c b/drivers/isdn/i4l/isdn_ppp.c index 2d14b64202a3..642d5aaf53ce 100644 --- a/drivers/isdn/i4l/isdn_ppp.c +++ b/drivers/isdn/i4l/isdn_ppp.c | |||
| @@ -1535,10 +1535,8 @@ static int isdn_ppp_mp_bundle_array_init(void) | |||
| 1535 | int sz = ISDN_MAX_CHANNELS*sizeof(ippp_bundle); | 1535 | int sz = ISDN_MAX_CHANNELS*sizeof(ippp_bundle); |
| 1536 | if( (isdn_ppp_bundle_arr = kzalloc(sz, GFP_KERNEL)) == NULL ) | 1536 | if( (isdn_ppp_bundle_arr = kzalloc(sz, GFP_KERNEL)) == NULL ) |
| 1537 | return -ENOMEM; | 1537 | return -ENOMEM; |
| 1538 | for (i = 0; i < ISDN_MAX_CHANNELS; i++) { | 1538 | for( i = 0; i < ISDN_MAX_CHANNELS; i++ ) |
| 1539 | spin_lock_init(&isdn_ppp_bundle_arr[i].lock); | 1539 | spin_lock_init(&isdn_ppp_bundle_arr[i].lock); |
| 1540 | skb_queue_head_init(&isdn_ppp_bundle_arr[i].frags); | ||
| 1541 | } | ||
| 1542 | return 0; | 1540 | return 0; |
| 1543 | } | 1541 | } |
| 1544 | 1542 | ||
| @@ -1571,7 +1569,7 @@ static int isdn_ppp_mp_init( isdn_net_local * lp, ippp_bundle * add_to ) | |||
| 1571 | if ((lp->netdev->pb = isdn_ppp_mp_bundle_alloc()) == NULL) | 1569 | if ((lp->netdev->pb = isdn_ppp_mp_bundle_alloc()) == NULL) |
| 1572 | return -ENOMEM; | 1570 | return -ENOMEM; |
| 1573 | lp->next = lp->last = lp; /* nobody else in a queue */ | 1571 | lp->next = lp->last = lp; /* nobody else in a queue */ |
| 1574 | skb_queue_head_init(&lp->netdev->pb->frags); | 1572 | lp->netdev->pb->frags = NULL; |
| 1575 | lp->netdev->pb->frames = 0; | 1573 | lp->netdev->pb->frames = 0; |
| 1576 | lp->netdev->pb->seq = UINT_MAX; | 1574 | lp->netdev->pb->seq = UINT_MAX; |
| 1577 | } | 1575 | } |
| @@ -1583,29 +1581,28 @@ static int isdn_ppp_mp_init( isdn_net_local * lp, ippp_bundle * add_to ) | |||
| 1583 | 1581 | ||
| 1584 | static u32 isdn_ppp_mp_get_seq( int short_seq, | 1582 | static u32 isdn_ppp_mp_get_seq( int short_seq, |
| 1585 | struct sk_buff * skb, u32 last_seq ); | 1583 | struct sk_buff * skb, u32 last_seq ); |
| 1586 | static void isdn_ppp_mp_discard(ippp_bundle *mp, struct sk_buff *from, | 1584 | static struct sk_buff * isdn_ppp_mp_discard( ippp_bundle * mp, |
| 1587 | struct sk_buff *to); | 1585 | struct sk_buff * from, struct sk_buff * to ); |
| 1588 | static void isdn_ppp_mp_reassembly(isdn_net_dev *net_dev, isdn_net_local *lp, | 1586 | static void isdn_ppp_mp_reassembly( isdn_net_dev * net_dev, isdn_net_local * lp, |
| 1589 | struct sk_buff *from, struct sk_buff *to, | 1587 | struct sk_buff * from, struct sk_buff * to ); |
| 1590 | u32 lastseq); | 1588 | static void isdn_ppp_mp_free_skb( ippp_bundle * mp, struct sk_buff * skb ); |
| 1591 | static void isdn_ppp_mp_free_skb(ippp_bundle *mp, struct sk_buff *skb); | ||
| 1592 | static void isdn_ppp_mp_print_recv_pkt( int slot, struct sk_buff * skb ); | 1589 | static void isdn_ppp_mp_print_recv_pkt( int slot, struct sk_buff * skb ); |
| 1593 | 1590 | ||
| 1594 | static void isdn_ppp_mp_receive(isdn_net_dev * net_dev, isdn_net_local * lp, | 1591 | static void isdn_ppp_mp_receive(isdn_net_dev * net_dev, isdn_net_local * lp, |
| 1595 | struct sk_buff *skb) | 1592 | struct sk_buff *skb) |
| 1596 | { | 1593 | { |
| 1597 | struct sk_buff *newfrag, *frag, *start, *nextf; | ||
| 1598 | u32 newseq, minseq, thisseq; | ||
| 1599 | isdn_mppp_stats *stats; | ||
| 1600 | struct ippp_struct *is; | 1594 | struct ippp_struct *is; |
| 1595 | isdn_net_local * lpq; | ||
| 1596 | ippp_bundle * mp; | ||
| 1597 | isdn_mppp_stats * stats; | ||
| 1598 | struct sk_buff * newfrag, * frag, * start, *nextf; | ||
| 1599 | u32 newseq, minseq, thisseq; | ||
| 1601 | unsigned long flags; | 1600 | unsigned long flags; |
| 1602 | isdn_net_local *lpq; | ||
| 1603 | ippp_bundle *mp; | ||
| 1604 | int slot; | 1601 | int slot; |
| 1605 | 1602 | ||
| 1606 | spin_lock_irqsave(&net_dev->pb->lock, flags); | 1603 | spin_lock_irqsave(&net_dev->pb->lock, flags); |
| 1607 | mp = net_dev->pb; | 1604 | mp = net_dev->pb; |
| 1608 | stats = &mp->stats; | 1605 | stats = &mp->stats; |
| 1609 | slot = lp->ppp_slot; | 1606 | slot = lp->ppp_slot; |
| 1610 | if (slot < 0 || slot >= ISDN_MAX_CHANNELS) { | 1607 | if (slot < 0 || slot >= ISDN_MAX_CHANNELS) { |
| 1611 | printk(KERN_ERR "%s: lp->ppp_slot(%d)\n", | 1608 | printk(KERN_ERR "%s: lp->ppp_slot(%d)\n", |
| @@ -1616,19 +1613,20 @@ static void isdn_ppp_mp_receive(isdn_net_dev * net_dev, isdn_net_local * lp, | |||
| 1616 | return; | 1613 | return; |
| 1617 | } | 1614 | } |
| 1618 | is = ippp_table[slot]; | 1615 | is = ippp_table[slot]; |
| 1619 | if (++mp->frames > stats->max_queue_len) | 1616 | if( ++mp->frames > stats->max_queue_len ) |
| 1620 | stats->max_queue_len = mp->frames; | 1617 | stats->max_queue_len = mp->frames; |
| 1621 | |||
