Commit 0a4cf2c8786219b4871c37240ab9787a61d843ee

Authored by Linus Torvalds

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:
  dsa: fix master interface allmulti/promisc handling
  dsa: fix skb->pkt_type when mac address of slave interface differs
  net: fix setting of skb->tail in skb_recycle_check()
  net: fix /proc/net/snmp as memory corruptor
  mac80211: fix a buffer overrun in station debug code
  netfilter: payload_len is be16, add size of struct rather than size of pointer
  ipv6: fix ip6_mr_init error path
  [4/4] dca: fixup initialization dependency
  [3/4] I/OAT: fix async_tx.callback checking
  [2/4] I/OAT: fix dma_pin_iovec_pages() error handling
  [1/4] I/OAT: fix channel resources free for not allocated channels
  ssb: Fix DMA-API compilation for non-PCI systems
  SSB: hide empty sub menu
  vlan: Fix typos in proc output string
  [netdrvr] usb/hso: Cleanup rfkill error handling
  sfc: Correct address of gPXE boot configuration in EEPROM
  el3_common_init() should be __devinit, not __init
  hso: rfkill type should be WWAN
  mlx4_en: Start port error flow bug fix
  af_key: mark policy as dead before destroying

Showing 19 changed files Side-by-side Diff

drivers/dca/dca-core.c
... ... @@ -270,6 +270,6 @@
270 270 dca_sysfs_exit();
271 271 }
272 272  
273   -module_init(dca_init);
  273 +subsys_initcall(dca_init);
274 274 module_exit(dca_exit);
drivers/dma/ioat_dma.c
... ... @@ -525,7 +525,7 @@
525 525 }
526 526  
527 527 hw->ctl = IOAT_DMA_DESCRIPTOR_CTL_CP_STS;
528   - if (new->async_tx.callback) {
  528 + if (first->async_tx.callback) {
529 529 hw->ctl |= IOAT_DMA_DESCRIPTOR_CTL_INT_GN;
530 530 if (first != new) {
531 531 /* move callback into to last desc */
... ... @@ -617,7 +617,7 @@
617 617 }
618 618  
619 619 hw->ctl |= IOAT_DMA_DESCRIPTOR_CTL_CP_STS;
620   - if (new->async_tx.callback) {
  620 + if (first->async_tx.callback) {
621 621 hw->ctl |= IOAT_DMA_DESCRIPTOR_CTL_INT_GN;
622 622 if (first != new) {
623 623 /* move callback into to last desc */
... ... @@ -807,6 +807,12 @@
807 807 struct ioat_desc_sw *desc, *_desc;
808 808 int in_use_descs = 0;
809 809  
  810 + /* Before freeing channel resources first check
  811 + * if they have been previously allocated for this channel.
  812 + */
  813 + if (ioat_chan->desccount == 0)
  814 + return;
  815 +
810 816 tasklet_disable(&ioat_chan->cleanup_task);
811 817 ioat_dma_memcpy_cleanup(ioat_chan);
812 818  
... ... @@ -869,6 +875,7 @@
869 875 ioat_chan->last_completion = ioat_chan->completion_addr = 0;
870 876 ioat_chan->pending = 0;
871 877 ioat_chan->dmacount = 0;
  878 + ioat_chan->desccount = 0;
872 879 ioat_chan->watchdog_completion = 0;
873 880 ioat_chan->last_compl_desc_addr_hw = 0;
874 881 ioat_chan->watchdog_tcp_cookie =
drivers/dma/iovlock.c
... ... @@ -55,7 +55,6 @@
55 55 int nr_iovecs = 0;
56 56 int iovec_len_used = 0;
57 57 int iovec_pages_used = 0;
58   - long err;
59 58  
60 59 /* don't pin down non-user-based iovecs */
61 60 if (segment_eq(get_fs(), KERNEL_DS))
62 61  
63 62  
64 63  
65 64  
... ... @@ -72,23 +71,21 @@
72 71 local_list = kmalloc(sizeof(*local_list)
73 72 + (nr_iovecs * sizeof (struct dma_page_list))
74 73 + (iovec_pages_used * sizeof (struct page*)), GFP_KERNEL);
75   - if (!local_list) {
76   - err = -ENOMEM;
  74 + if (!local_list)
77 75 goto out;
78   - }
79 76  
80 77 /* list of pages starts right after the page list array */
81 78 pages = (struct page **) &local_list->page_list[nr_iovecs];
82 79  
  80 + local_list->nr_iovecs = 0;
  81 +
83 82 for (i = 0; i < nr_iovecs; i++) {
84 83 struct dma_page_list *page_list = &local_list->page_list[i];
85 84  
86 85 len -= iov[i].iov_len;
87 86  
88   - if (!access_ok(VERIFY_WRITE, iov[i].iov_base, iov[i].iov_len)) {
89   - err = -EFAULT;
  87 + if (!access_ok(VERIFY_WRITE, iov[i].iov_base, iov[i].iov_len))
90 88 goto unpin;
91   - }
92 89  
93 90 page_list->nr_pages = num_pages_spanned(&iov[i]);
94 91 page_list->base_address = iov[i].iov_base;
95 92  
... ... @@ -109,10 +106,8 @@
109 106 NULL);
110 107 up_read(&current->mm->mmap_sem);
111 108  
112   - if (ret != page_list->nr_pages) {
113   - err = -ENOMEM;
  109 + if (ret != page_list->nr_pages)
114 110 goto unpin;
115   - }
116 111  
117 112 local_list->nr_iovecs = i + 1;
118 113 }
... ... @@ -122,7 +117,7 @@
122 117 unpin:
123 118 dma_unpin_iovec_pages(local_list);
124 119 out:
125   - return ERR_PTR(err);
  120 + return NULL;
126 121 }
127 122  
128 123 void dma_unpin_iovec_pages(struct dma_pinned_list *pinned_list)
drivers/net/mlx4/en_netdev.c
... ... @@ -706,7 +706,7 @@
706 706 mlx4_en_release_rss_steer(priv);
707 707 rx_err:
708 708 for (i = 0; i < priv->rx_ring_num; i++)
709   - mlx4_en_deactivate_rx_ring(priv, &priv->rx_ring[rx_index]);
  709 + mlx4_en_deactivate_rx_ring(priv, &priv->rx_ring[i]);
710 710 cq_err:
711 711 while (rx_index--)
712 712 mlx4_en_deactivate_cq(priv, &priv->rx_cq[rx_index]);
drivers/net/sfc/ethtool.c
... ... @@ -174,8 +174,8 @@
174 174  
175 175 /* EEPROM range with gPXE configuration */
176 176 #define EFX_ETHTOOL_EEPROM_MAGIC 0xEFAB
177   -#define EFX_ETHTOOL_EEPROM_MIN 0x100U
178   -#define EFX_ETHTOOL_EEPROM_MAX 0x400U
  177 +#define EFX_ETHTOOL_EEPROM_MIN 0x800U
  178 +#define EFX_ETHTOOL_EEPROM_MAX 0x1800U
179 179  
180 180 /**************************************************************************
181 181 *
drivers/net/usb/hso.c
... ... @@ -2184,19 +2184,20 @@
2184 2184 struct usb_interface *interface)
2185 2185 {
2186 2186 struct hso_net *hso_net = dev2net(hso_dev);
2187   - struct device *dev = hso_dev->dev;
  2187 + struct device *dev = &hso_net->net->dev;
2188 2188 char *rfkn;
2189 2189  
2190 2190 hso_net->rfkill = rfkill_allocate(&interface_to_usbdev(interface)->dev,
2191   - RFKILL_TYPE_WLAN);
  2191 + RFKILL_TYPE_WWAN);
2192 2192 if (!hso_net->rfkill) {
2193   - dev_err(dev, "%s - Out of memory", __func__);
  2193 + dev_err(dev, "%s - Out of memory\n", __func__);
2194 2194 return;
2195 2195 }
2196 2196 rfkn = kzalloc(20, GFP_KERNEL);
2197 2197 if (!rfkn) {
2198 2198 rfkill_free(hso_net->rfkill);
2199   - dev_err(dev, "%s - Out of memory", __func__);
  2199 + hso_net->rfkill = NULL;
  2200 + dev_err(dev, "%s - Out of memory\n", __func__);
2200 2201 return;
2201 2202 }
2202 2203 snprintf(rfkn, 20, "hso-%d",
... ... @@ -2209,7 +2210,8 @@
2209 2210 kfree(rfkn);
2210 2211 hso_net->rfkill->name = NULL;
2211 2212 rfkill_free(hso_net->rfkill);
2212   - dev_err(dev, "%s - Failed to register rfkill", __func__);
  2213 + hso_net->rfkill = NULL;
  2214 + dev_err(dev, "%s - Failed to register rfkill\n", __func__);
2213 2215 return;
2214 2216 }
2215 2217 }
1   -menu "Sonics Silicon Backplane"
2   -
3 1 config SSB_POSSIBLE
4 2 bool
5 3 depends on HAS_IOMEM && HAS_DMA
6 4 default y
  5 +
  6 +menu "Sonics Silicon Backplane"
  7 + depends on SSB_POSSIBLE
7 8  
8 9 config SSB
9 10 tristate "Sonics Silicon Backplane support"
include/linux/ssb/ssb.h
... ... @@ -427,12 +427,16 @@
427 427 {
428 428 switch (dev->bus->bustype) {
429 429 case SSB_BUSTYPE_PCI:
  430 +#ifdef CONFIG_SSB_PCIHOST
430 431 return pci_dma_mapping_error(dev->bus->host_pci, addr);
  432 +#endif
  433 + break;
431 434 case SSB_BUSTYPE_SSB:
432 435 return dma_mapping_error(dev->dev, addr);
433 436 default:
434   - __ssb_dma_not_implemented(dev);
  437 + break;
435 438 }
  439 + __ssb_dma_not_implemented(dev);
436 440 return -ENOSYS;
437 441 }
438 442  
439 443  
440 444  
441 445  
... ... @@ -441,12 +445,16 @@
441 445 {
442 446 switch (dev->bus->bustype) {
443 447 case SSB_BUSTYPE_PCI:
  448 +#ifdef CONFIG_SSB_PCIHOST
444 449 return pci_map_single(dev->bus->host_pci, p, size, dir);
  450 +#endif
  451 + break;
445 452 case SSB_BUSTYPE_SSB:
446 453 return dma_map_single(dev->dev, p, size, dir);
447 454 default:
448   - __ssb_dma_not_implemented(dev);
  455 + break;
449 456 }
  457 + __ssb_dma_not_implemented(dev);
450 458 return 0;
451 459 }
452 460  
453 461  
454 462  
455 463  
... ... @@ -455,14 +463,18 @@
455 463 {
456 464 switch (dev->bus->bustype) {
457 465 case SSB_BUSTYPE_PCI:
  466 +#ifdef CONFIG_SSB_PCIHOST
458 467 pci_unmap_single(dev->bus->host_pci, dma_addr, size, dir);
459 468 return;
  469 +#endif
  470 + break;
460 471 case SSB_BUSTYPE_SSB:
461 472 dma_unmap_single(dev->dev, dma_addr, size, dir);
462 473 return;
463 474 default:
464   - __ssb_dma_not_implemented(dev);
  475 + break;
465 476 }
  477 + __ssb_dma_not_implemented(dev);
466 478 }
467 479  
468 480 static inline void ssb_dma_sync_single_for_cpu(struct ssb_device *dev,
469 481  
470 482  
471 483  
... ... @@ -472,15 +484,19 @@
472 484 {
473 485 switch (dev->bus->bustype) {
474 486 case SSB_BUSTYPE_PCI:
  487 +#ifdef CONFIG_SSB_PCIHOST
475 488 pci_dma_sync_single_for_cpu(dev->bus->host_pci, dma_addr,
476 489 size, dir);
477 490 return;
  491 +#endif
  492 + break;
478 493 case SSB_BUSTYPE_SSB:
479 494 dma_sync_single_for_cpu(dev->dev, dma_addr, size, dir);
480 495 return;
481 496 default:
482   - __ssb_dma_not_implemented(dev);
  497 + break;
483 498 }
  499 + __ssb_dma_not_implemented(dev);
484 500 }
485 501  
486 502 static inline void ssb_dma_sync_single_for_device(struct ssb_device *dev,
487 503  
488 504  
489 505  
... ... @@ -490,15 +506,19 @@
490 506 {
491 507 switch (dev->bus->bustype) {
492 508 case SSB_BUSTYPE_PCI:
  509 +#ifdef CONFIG_SSB_PCIHOST
493 510 pci_dma_sync_single_for_device(dev->bus->host_pci, dma_addr,
494 511 size, dir);
495 512 return;
  513 +#endif
  514 + break;
496 515 case SSB_BUSTYPE_SSB:
497 516 dma_sync_single_for_device(dev->dev, dma_addr, size, dir);
498 517 return;
499 518 default:
500   - __ssb_dma_not_implemented(dev);
  519 + break;
501 520 }
  521 + __ssb_dma_not_implemented(dev);
502 522 }
503 523  
504 524 static inline void ssb_dma_sync_single_range_for_cpu(struct ssb_device *dev,
505 525  
506 526  
507 527  
... ... @@ -509,17 +529,21 @@
509 529 {
510 530 switch (dev->bus->bustype) {
511 531 case SSB_BUSTYPE_PCI:
  532 +#ifdef CONFIG_SSB_PCIHOST
512 533 /* Just sync everything. That's all the PCI API can do. */
513 534 pci_dma_sync_single_for_cpu(dev->bus->host_pci, dma_addr,
514 535 offset + size, dir);
515 536 return;
  537 +#endif
  538 + break;
516 539 case SSB_BUSTYPE_SSB:
517 540 dma_sync_single_range_for_cpu(dev->dev, dma_addr, offset,
518 541 size, dir);
519 542 return;
520 543 default:
521   - __ssb_dma_not_implemented(dev);
  544 + break;
522 545 }
  546 + __ssb_dma_not_implemented(dev);
523 547 }
524 548  
525 549 static inline void ssb_dma_sync_single_range_for_device(struct ssb_device *dev,
526 550  
527 551  
528 552  
... ... @@ -530,17 +554,21 @@
530 554 {
531 555 switch (dev->bus->bustype) {
532 556 case SSB_BUSTYPE_PCI:
  557 +#ifdef CONFIG_SSB_PCIHOST
533 558 /* Just sync everything. That's all the PCI API can do. */
534 559 pci_dma_sync_single_for_device(dev->bus->host_pci, dma_addr,
535 560 offset + size, dir);
536 561 return;
  562 +#endif
  563 + break;
537 564 case SSB_BUSTYPE_SSB:
538 565 dma_sync_single_range_for_device(dev->dev, dma_addr, offset,
539 566 size, dir);
540 567 return;
541 568 default:
542   - __ssb_dma_not_implemented(dev);
  569 + break;
543 570 }
  571 + __ssb_dma_not_implemented(dev);
544 572 }
545 573  
546 574  
net/8021q/vlanproc.c
... ... @@ -314,7 +314,7 @@
314 314 dev_info->ingress_priority_map[6],
315 315 dev_info->ingress_priority_map[7]);
316 316  
317   - seq_printf(seq, "EGRESSS priority Mappings: ");
  317 + seq_printf(seq, " EGRESS priority mappings: ");
318 318 for (i = 0; i < 16; i++) {
319 319 const struct vlan_priority_tci_mapping *mp
320 320 = dev_info->egress_priority_map[i];
... ... @@ -486,8 +486,8 @@
486 486 shinfo->frag_list = NULL;
487 487  
488 488 memset(skb, 0, offsetof(struct sk_buff, tail));
489   - skb_reset_tail_pointer(skb);
490 489 skb->data = skb->head + NET_SKB_PAD;
  490 + skb_reset_tail_pointer(skb);
491 491  
492 492 return 1;
493 493 }
... ... @@ -10,6 +10,7 @@
10 10  
11 11 #include <linux/list.h>
12 12 #include <linux/netdevice.h>
  13 +#include <linux/etherdevice.h>
13 14 #include <linux/phy.h>
14 15 #include "dsa_priv.h"
15 16  
16 17  
17 18  
... ... @@ -49,11 +50,57 @@
49 50 /* slave device handling ****************************************************/
50 51 static int dsa_slave_open(struct net_device *dev)
51 52 {
  53 + struct dsa_slave_priv *p = netdev_priv(dev);
  54 + struct net_device *master = p->parent->master_netdev;
  55 + int err;
  56 +
  57 + if (!(master->flags & IFF_UP))
  58 + return -ENETDOWN;
  59 +
  60 + if (compare_ether_addr(dev->dev_addr, master->dev_addr)) {
  61 + err = dev_unicast_add(master, dev->dev_addr, ETH_ALEN);
  62 + if (err < 0)
  63 + goto out;
  64 + }
  65 +
  66 + if (dev->flags & IFF_ALLMULTI) {
  67 + err = dev_set_allmulti(master, 1);
  68 + if (err < 0)
  69 + goto del_unicast;
  70 + }
  71 + if (dev->flags & IFF_PROMISC) {
  72 + err = dev_set_promiscuity(master, 1);
  73 + if (err < 0)
  74 + goto clear_allmulti;
  75 + }
  76 +
52 77 return 0;
  78 +
  79 +clear_allmulti:
  80 + if (dev->flags & IFF_ALLMULTI)
  81 + dev_set_allmulti(master, -1);
  82 +del_unicast:
  83 + if (compare_ether_addr(dev->dev_addr, master->dev_addr))
  84 + dev_unicast_delete(master, dev->dev_addr, ETH_ALEN);
  85 +out:
  86 + return err;
53 87 }
54 88  
55 89 static int dsa_slave_close(struct net_device *dev)
56 90 {
  91 + struct dsa_slave_priv *p = netdev_priv(dev);
  92 + struct net_device *master = p->parent->master_netdev;
  93 +
  94 + dev_mc_unsync(master, dev);
  95 + dev_unicast_unsync(master, dev);
  96 + if (dev->flags & IFF_ALLMULTI)
  97 + dev_set_allmulti(master, -1);
  98 + if (dev->flags & IFF_PROMISC)
  99 + dev_set_promiscuity(master, -1);
  100 +
  101 + if (compare_ether_addr(dev->dev_addr, master->dev_addr))
  102 + dev_unicast_delete(master, dev->dev_addr, ETH_ALEN);
  103 +
57 104 return 0;
58 105 }
59 106  
60 107  
... ... @@ -77,9 +124,30 @@
77 124 dev_unicast_sync(master, dev);
78 125 }
79 126  
80   -static int dsa_slave_set_mac_address(struct net_device *dev, void *addr)
  127 +static int dsa_slave_set_mac_address(struct net_device *dev, void *a)
81 128 {
82   - memcpy(dev->dev_addr, addr + 2, 6);
  129 + struct dsa_slave_priv *p = netdev_priv(dev);
  130 + struct net_device *master = p->parent->master_netdev;
  131 + struct sockaddr *addr = a;
  132 + int err;
  133 +
  134 + if (!is_valid_ether_addr(addr->sa_data))
  135 + return -EADDRNOTAVAIL;
  136 +
  137 + if (!(dev->flags & IFF_UP))
  138 + goto out;
  139 +
  140 + if (compare_ether_addr(addr->sa_data, master->dev_addr)) {
  141 + err = dev_unicast_add(master, addr->sa_data, ETH_ALEN);
  142 + if (err < 0)
  143 + return err;
  144 + }
  145 +
  146 + if (compare_ether_addr(dev->dev_addr, master->dev_addr))
  147 + dev_unicast_delete(master, dev->dev_addr, ETH_ALEN);
  148 +
  149 +out:
  150 + memcpy(dev->dev_addr, addr->sa_data, ETH_ALEN);
83 151  
84 152 return 0;
85 153 }
... ... @@ -159,6 +159,7 @@
159 159  
160 160 skb->dev = ds->ports[source_port];
161 161 skb_push(skb, ETH_HLEN);
  162 + skb->pkt_type = PACKET_HOST;
162 163 skb->protocol = eth_type_trans(skb, skb->dev);
163 164  
164 165 skb->dev->last_rx = jiffies;
... ... @@ -178,6 +178,7 @@
178 178  
179 179 skb->dev = ds->ports[source_port];
180 180 skb_push(skb, ETH_HLEN);
  181 + skb->pkt_type = PACKET_HOST;
181 182 skb->protocol = eth_type_trans(skb, skb->dev);
182 183  
183 184 skb->dev->last_rx = jiffies;
net/dsa/tag_trailer.c
... ... @@ -95,6 +95,7 @@
95 95  
96 96 skb->dev = ds->ports[source_port];
97 97 skb_push(skb, ETH_HLEN);
  98 + skb->pkt_type = PACKET_HOST;
98 99 skb->protocol = eth_type_trans(skb, skb->dev);
99 100  
100 101 skb->dev->last_rx = jiffies;
... ... @@ -237,43 +237,45 @@
237 237 SNMP_MIB_SENTINEL
238 238 };
239 239  
  240 +static void icmpmsg_put_line(struct seq_file *seq, unsigned long *vals,
  241 + unsigned short *type, int count)
  242 +{
  243 + int j;
  244 +
  245 + if (count) {
  246 + seq_printf(seq, "\nIcmpMsg:");
  247 + for (j = 0; j < count; ++j)
  248 + seq_printf(seq, " %sType%u",
  249 + type[j] & 0x100 ? "Out" : "In",
  250 + type[j] & 0xff);
  251 + seq_printf(seq, "\nIcmpMsg:");
  252 + for (j = 0; j < count; ++j)
  253 + seq_printf(seq, " %lu", vals[j]);
  254 + }
  255 +}
  256 +
240 257 static void icmpmsg_put(struct seq_file *seq)
241 258 {
242 259 #define PERLINE 16
243 260  
244   - int j, i, count;
245   - static int out[PERLINE];
  261 + int i, count;
  262 + unsigned short type[PERLINE];
  263 + unsigned long vals[PERLINE], val;
246 264 struct net *net = seq->private;
247 265  
248 266 count = 0;
249 267 for (i = 0; i < ICMPMSG_MIB_MAX; i++) {
250   -
251   - if (snmp_fold_field((void **) net->mib.icmpmsg_statistics, i))
252   - out[count++] = i;
253   - if (count < PERLINE)
254   - continue;
255   -
256   - seq_printf(seq, "\nIcmpMsg:");
257   - for (j = 0; j < PERLINE; ++j)
258   - seq_printf(seq, " %sType%u", i & 0x100 ? "Out" : "In",
259   - i & 0xff);
260   - seq_printf(seq, "\nIcmpMsg: ");
261   - for (j = 0; j < PERLINE; ++j)
262   - seq_printf(seq, " %lu",
263   - snmp_fold_field((void **) net->mib.icmpmsg_statistics,
264   - out[j]));
265   - seq_putc(seq, '\n');
  268 + val = snmp_fold_field((void **) net->mib.icmpmsg_statistics, i);
  269 + if (val) {
  270 + type[count] = i;
  271 + vals[count++] = val;
  272 + }
  273 + if (count == PERLINE) {
  274 + icmpmsg_put_line(seq, vals, type, count);
  275 + count = 0;
  276 + }
266 277 }
267   - if (count) {
268   - seq_printf(seq, "\nIcmpMsg:");
269   - for (j = 0; j < count; ++j)
270   - seq_printf(seq, " %sType%u", out[j] & 0x100 ? "Out" :
271   - "In", out[j] & 0xff);
272   - seq_printf(seq, "\nIcmpMsg:");
273   - for (j = 0; j < count; ++j)
274   - seq_printf(seq, " %lu", snmp_fold_field((void **)
275   - net->mib.icmpmsg_statistics, out[j]));
276   - }
  278 + icmpmsg_put_line(seq, vals, type, count);
277 279  
278 280 #undef PERLINE
279 281 }
... ... @@ -981,14 +981,15 @@
981 981 goto proc_cache_fail;
982 982 #endif
983 983 return 0;
984   -reg_notif_fail:
985   - kmem_cache_destroy(mrt_cachep);
986 984 #ifdef CONFIG_PROC_FS
987   -proc_vif_fail:
988   - unregister_netdevice_notifier(&ip6_mr_notifier);
989 985 proc_cache_fail:
990 986 proc_net_remove(&init_net, "ip6_mr_vif");
  987 +proc_vif_fail:
  988 + unregister_netdevice_notifier(&ip6_mr_notifier);
991 989 #endif
  990 +reg_notif_fail:
  991 + del_timer(&ipmr_expire_timer);
  992 + kmem_cache_destroy(mrt_cachep);
992 993 return err;
993 994 }
994 995  
... ... @@ -3188,6 +3188,7 @@
3188 3188 return xp;
3189 3189  
3190 3190 out:
  3191 + xp->walk.dead = 1;
3191 3192 xfrm_policy_destroy(xp);
3192 3193 return NULL;
3193 3194 }
net/mac80211/debugfs_sta.c
... ... @@ -199,7 +199,7 @@
199 199 /* toggle Rx aggregation command */
200 200 tid_num = tid_num - 100;
201 201 if (tid_static_rx[tid_num] == 1) {
202   - strcpy(state, "off ");
  202 + strcpy(state, "off");
203 203 ieee80211_sta_stop_rx_ba_session(sta->sdata, da, tid_num, 0,
204 204 WLAN_REASON_QSTA_REQUIRE_SETUP);
205 205 sta->ampdu_mlme.tid_state_rx[tid_num] |=
net/netfilter/ipvs/ip_vs_xmit.c
... ... @@ -713,7 +713,8 @@
713 713 iph = ipv6_hdr(skb);
714 714 iph->version = 6;
715 715 iph->nexthdr = IPPROTO_IPV6;
716   - iph->payload_len = old_iph->payload_len + sizeof(old_iph);
  716 + iph->payload_len = old_iph->payload_len;
  717 + be16_add_cpu(&iph->payload_len, sizeof(*old_iph));
717 718 iph->priority = old_iph->priority;
718 719 memset(&iph->flow_lbl, 0, sizeof(iph->flow_lbl));
719 720 iph->daddr = rt->rt6i_dst.addr;