diff --git a/[refs] b/[refs] index 1d5260511825..abb09147be50 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 0a4cf2c8786219b4871c37240ab9787a61d843ee +refs/heads/master: 29b143281657e0b064ee0553837cf9dd4d2441f9 diff --git a/trunk/arch/sparc/kernel/head.S b/trunk/arch/sparc/kernel/head.S index 2fe2c117e772..2d325fd84579 100644 --- a/trunk/arch/sparc/kernel/head.S +++ b/trunk/arch/sparc/kernel/head.S @@ -465,7 +465,6 @@ gokernel: mov %o7, %g4 ! Save %o7 /* Jump to it, and pray... */ - __INIT current_pc: call 1f nop diff --git a/trunk/arch/x86/Kconfig b/trunk/arch/x86/Kconfig index 93224b569187..4cf0ab13d187 100644 --- a/trunk/arch/x86/Kconfig +++ b/trunk/arch/x86/Kconfig @@ -957,7 +957,7 @@ config ARCH_PHYS_ADDR_T_64BIT config NUMA bool "Numa Memory Allocation and Scheduler Support (EXPERIMENTAL)" depends on SMP - depends on X86_64 || (X86_32 && HIGHMEM64G && (X86_NUMAQ || X86_BIGSMP || X86_SUMMIT && ACPI) && BROKEN) + depends on X86_64 || (X86_32 && HIGHMEM64G && (X86_NUMAQ || X86_BIGSMP || X86_SUMMIT && ACPI) && EXPERIMENTAL) default n if X86_PC default y if (X86_NUMAQ || X86_SUMMIT || X86_BIGSMP) help diff --git a/trunk/drivers/dca/dca-core.c b/trunk/drivers/dca/dca-core.c index d883e1b8bb8c..ec249d2db633 100644 --- a/trunk/drivers/dca/dca-core.c +++ b/trunk/drivers/dca/dca-core.c @@ -270,6 +270,6 @@ static void __exit dca_exit(void) dca_sysfs_exit(); } -subsys_initcall(dca_init); +module_init(dca_init); module_exit(dca_exit); diff --git a/trunk/drivers/dma/ioat_dma.c b/trunk/drivers/dma/ioat_dma.c index ecd743f7cc61..b0438c4f0c30 100644 --- a/trunk/drivers/dma/ioat_dma.c +++ b/trunk/drivers/dma/ioat_dma.c @@ -525,7 +525,7 @@ static dma_cookie_t ioat1_tx_submit(struct dma_async_tx_descriptor *tx) } hw->ctl = IOAT_DMA_DESCRIPTOR_CTL_CP_STS; - if (first->async_tx.callback) { + if (new->async_tx.callback) { hw->ctl |= IOAT_DMA_DESCRIPTOR_CTL_INT_GN; if (first != new) { /* move callback into to last desc */ @@ -617,7 +617,7 @@ static dma_cookie_t ioat2_tx_submit(struct dma_async_tx_descriptor *tx) } hw->ctl |= IOAT_DMA_DESCRIPTOR_CTL_CP_STS; - if (first->async_tx.callback) { + if (new->async_tx.callback) { hw->ctl |= IOAT_DMA_DESCRIPTOR_CTL_INT_GN; if (first != new) { /* move callback into to last desc */ @@ -807,12 +807,6 @@ static void ioat_dma_free_chan_resources(struct dma_chan *chan) struct ioat_desc_sw *desc, *_desc; int in_use_descs = 0; - /* Before freeing channel resources first check - * if they have been previously allocated for this channel. - */ - if (ioat_chan->desccount == 0) - return; - tasklet_disable(&ioat_chan->cleanup_task); ioat_dma_memcpy_cleanup(ioat_chan); @@ -875,7 +869,6 @@ static void ioat_dma_free_chan_resources(struct dma_chan *chan) ioat_chan->last_completion = ioat_chan->completion_addr = 0; ioat_chan->pending = 0; ioat_chan->dmacount = 0; - ioat_chan->desccount = 0; ioat_chan->watchdog_completion = 0; ioat_chan->last_compl_desc_addr_hw = 0; ioat_chan->watchdog_tcp_cookie = diff --git a/trunk/drivers/dma/iovlock.c b/trunk/drivers/dma/iovlock.c index 9f6fe46a9b87..e763d723e4cf 100644 --- a/trunk/drivers/dma/iovlock.c +++ b/trunk/drivers/dma/iovlock.c @@ -55,6 +55,7 @@ struct dma_pinned_list *dma_pin_iovec_pages(struct iovec *iov, size_t len) int nr_iovecs = 0; int iovec_len_used = 0; int iovec_pages_used = 0; + long err; /* don't pin down non-user-based iovecs */ if (segment_eq(get_fs(), KERNEL_DS)) @@ -71,21 +72,23 @@ struct dma_pinned_list *dma_pin_iovec_pages(struct iovec *iov, size_t len) local_list = kmalloc(sizeof(*local_list) + (nr_iovecs * sizeof (struct dma_page_list)) + (iovec_pages_used * sizeof (struct page*)), GFP_KERNEL); - if (!local_list) + if (!local_list) { + err = -ENOMEM; goto out; + } /* list of pages starts right after the page list array */ pages = (struct page **) &local_list->page_list[nr_iovecs]; - local_list->nr_iovecs = 0; - for (i = 0; i < nr_iovecs; i++) { struct dma_page_list *page_list = &local_list->page_list[i]; len -= iov[i].iov_len; - if (!access_ok(VERIFY_WRITE, iov[i].iov_base, iov[i].iov_len)) + if (!access_ok(VERIFY_WRITE, iov[i].iov_base, iov[i].iov_len)) { + err = -EFAULT; goto unpin; + } page_list->nr_pages = num_pages_spanned(&iov[i]); page_list->base_address = iov[i].iov_base; @@ -106,8 +109,10 @@ struct dma_pinned_list *dma_pin_iovec_pages(struct iovec *iov, size_t len) NULL); up_read(¤t->mm->mmap_sem); - if (ret != page_list->nr_pages) + if (ret != page_list->nr_pages) { + err = -ENOMEM; goto unpin; + } local_list->nr_iovecs = i + 1; } @@ -117,7 +122,7 @@ struct dma_pinned_list *dma_pin_iovec_pages(struct iovec *iov, size_t len) unpin: dma_unpin_iovec_pages(local_list); out: - return NULL; + return ERR_PTR(err); } void dma_unpin_iovec_pages(struct dma_pinned_list *pinned_list) diff --git a/trunk/drivers/net/mlx4/en_netdev.c b/trunk/drivers/net/mlx4/en_netdev.c index a3f732418c49..a339afbeed38 100644 --- a/trunk/drivers/net/mlx4/en_netdev.c +++ b/trunk/drivers/net/mlx4/en_netdev.c @@ -706,7 +706,7 @@ static int mlx4_en_start_port(struct net_device *dev) mlx4_en_release_rss_steer(priv); rx_err: for (i = 0; i < priv->rx_ring_num; i++) - mlx4_en_deactivate_rx_ring(priv, &priv->rx_ring[i]); + mlx4_en_deactivate_rx_ring(priv, &priv->rx_ring[rx_index]); cq_err: while (rx_index--) mlx4_en_deactivate_cq(priv, &priv->rx_cq[rx_index]); diff --git a/trunk/drivers/net/sfc/ethtool.c b/trunk/drivers/net/sfc/ethtool.c index cd0d0873d978..fa98af58223e 100644 --- a/trunk/drivers/net/sfc/ethtool.c +++ b/trunk/drivers/net/sfc/ethtool.c @@ -174,8 +174,8 @@ static struct efx_ethtool_stat efx_ethtool_stats[] = { /* EEPROM range with gPXE configuration */ #define EFX_ETHTOOL_EEPROM_MAGIC 0xEFAB -#define EFX_ETHTOOL_EEPROM_MIN 0x800U -#define EFX_ETHTOOL_EEPROM_MAX 0x1800U +#define EFX_ETHTOOL_EEPROM_MIN 0x100U +#define EFX_ETHTOOL_EEPROM_MAX 0x400U /************************************************************************** * diff --git a/trunk/drivers/net/usb/hso.c b/trunk/drivers/net/usb/hso.c index 8e90891f0e42..1164c52e2c0a 100644 --- a/trunk/drivers/net/usb/hso.c +++ b/trunk/drivers/net/usb/hso.c @@ -2184,20 +2184,19 @@ static void hso_create_rfkill(struct hso_device *hso_dev, struct usb_interface *interface) { struct hso_net *hso_net = dev2net(hso_dev); - struct device *dev = &hso_net->net->dev; + struct device *dev = hso_dev->dev; char *rfkn; hso_net->rfkill = rfkill_allocate(&interface_to_usbdev(interface)->dev, - RFKILL_TYPE_WWAN); + RFKILL_TYPE_WLAN); if (!hso_net->rfkill) { - dev_err(dev, "%s - Out of memory\n", __func__); + dev_err(dev, "%s - Out of memory", __func__); return; } rfkn = kzalloc(20, GFP_KERNEL); if (!rfkn) { rfkill_free(hso_net->rfkill); - hso_net->rfkill = NULL; - dev_err(dev, "%s - Out of memory\n", __func__); + dev_err(dev, "%s - Out of memory", __func__); return; } snprintf(rfkn, 20, "hso-%d", @@ -2210,8 +2209,7 @@ static void hso_create_rfkill(struct hso_device *hso_dev, kfree(rfkn); hso_net->rfkill->name = NULL; rfkill_free(hso_net->rfkill); - hso_net->rfkill = NULL; - dev_err(dev, "%s - Failed to register rfkill\n", __func__); + dev_err(dev, "%s - Failed to register rfkill", __func__); return; } } diff --git a/trunk/drivers/ssb/Kconfig b/trunk/drivers/ssb/Kconfig index b1b947edcf01..307b1f62d949 100644 --- a/trunk/drivers/ssb/Kconfig +++ b/trunk/drivers/ssb/Kconfig @@ -1,11 +1,10 @@ +menu "Sonics Silicon Backplane" + config SSB_POSSIBLE bool depends on HAS_IOMEM && HAS_DMA default y -menu "Sonics Silicon Backplane" - depends on SSB_POSSIBLE - config SSB tristate "Sonics Silicon Backplane support" depends on SSB_POSSIBLE diff --git a/trunk/include/linux/ssb/ssb.h b/trunk/include/linux/ssb/ssb.h index 17d9b58f6379..e530026eedf7 100644 --- a/trunk/include/linux/ssb/ssb.h +++ b/trunk/include/linux/ssb/ssb.h @@ -427,16 +427,12 @@ static inline int ssb_dma_mapping_error(struct ssb_device *dev, dma_addr_t addr) { switch (dev->bus->bustype) { case SSB_BUSTYPE_PCI: -#ifdef CONFIG_SSB_PCIHOST return pci_dma_mapping_error(dev->bus->host_pci, addr); -#endif - break; case SSB_BUSTYPE_SSB: return dma_mapping_error(dev->dev, addr); default: - break; + __ssb_dma_not_implemented(dev); } - __ssb_dma_not_implemented(dev); return -ENOSYS; } @@ -445,16 +441,12 @@ static inline dma_addr_t ssb_dma_map_single(struct ssb_device *dev, void *p, { switch (dev->bus->bustype) { case SSB_BUSTYPE_PCI: -#ifdef CONFIG_SSB_PCIHOST return pci_map_single(dev->bus->host_pci, p, size, dir); -#endif - break; case SSB_BUSTYPE_SSB: return dma_map_single(dev->dev, p, size, dir); default: - break; + __ssb_dma_not_implemented(dev); } - __ssb_dma_not_implemented(dev); return 0; } @@ -463,18 +455,14 @@ static inline void ssb_dma_unmap_single(struct ssb_device *dev, dma_addr_t dma_a { switch (dev->bus->bustype) { case SSB_BUSTYPE_PCI: -#ifdef CONFIG_SSB_PCIHOST pci_unmap_single(dev->bus->host_pci, dma_addr, size, dir); return; -#endif - break; case SSB_BUSTYPE_SSB: dma_unmap_single(dev->dev, dma_addr, size, dir); return; default: - break; + __ssb_dma_not_implemented(dev); } - __ssb_dma_not_implemented(dev); } static inline void ssb_dma_sync_single_for_cpu(struct ssb_device *dev, @@ -484,19 +472,15 @@ static inline void ssb_dma_sync_single_for_cpu(struct ssb_device *dev, { switch (dev->bus->bustype) { case SSB_BUSTYPE_PCI: -#ifdef CONFIG_SSB_PCIHOST pci_dma_sync_single_for_cpu(dev->bus->host_pci, dma_addr, size, dir); return; -#endif - break; case SSB_BUSTYPE_SSB: dma_sync_single_for_cpu(dev->dev, dma_addr, size, dir); return; default: - break; + __ssb_dma_not_implemented(dev); } - __ssb_dma_not_implemented(dev); } static inline void ssb_dma_sync_single_for_device(struct ssb_device *dev, @@ -506,19 +490,15 @@ static inline void ssb_dma_sync_single_for_device(struct ssb_device *dev, { switch (dev->bus->bustype) { case SSB_BUSTYPE_PCI: -#ifdef CONFIG_SSB_PCIHOST pci_dma_sync_single_for_device(dev->bus->host_pci, dma_addr, size, dir); return; -#endif - break; case SSB_BUSTYPE_SSB: dma_sync_single_for_device(dev->dev, dma_addr, size, dir); return; default: - break; + __ssb_dma_not_implemented(dev); } - __ssb_dma_not_implemented(dev); } static inline void ssb_dma_sync_single_range_for_cpu(struct ssb_device *dev, @@ -529,21 +509,17 @@ static inline void ssb_dma_sync_single_range_for_cpu(struct ssb_device *dev, { switch (dev->bus->bustype) { case SSB_BUSTYPE_PCI: -#ifdef CONFIG_SSB_PCIHOST /* Just sync everything. That's all the PCI API can do. */ pci_dma_sync_single_for_cpu(dev->bus->host_pci, dma_addr, offset + size, dir); return; -#endif - break; case SSB_BUSTYPE_SSB: dma_sync_single_range_for_cpu(dev->dev, dma_addr, offset, size, dir); return; default: - break; + __ssb_dma_not_implemented(dev); } - __ssb_dma_not_implemented(dev); } static inline void ssb_dma_sync_single_range_for_device(struct ssb_device *dev, @@ -554,21 +530,17 @@ static inline void ssb_dma_sync_single_range_for_device(struct ssb_device *dev, { switch (dev->bus->bustype) { case SSB_BUSTYPE_PCI: -#ifdef CONFIG_SSB_PCIHOST /* Just sync everything. That's all the PCI API can do. */ pci_dma_sync_single_for_device(dev->bus->host_pci, dma_addr, offset + size, dir); return; -#endif - break; case SSB_BUSTYPE_SSB: dma_sync_single_range_for_device(dev->dev, dma_addr, offset, size, dir); return; default: - break; + __ssb_dma_not_implemented(dev); } - __ssb_dma_not_implemented(dev); } diff --git a/trunk/net/8021q/vlanproc.c b/trunk/net/8021q/vlanproc.c index 3628e0a81b40..0feefa4e1a4b 100644 --- a/trunk/net/8021q/vlanproc.c +++ b/trunk/net/8021q/vlanproc.c @@ -314,7 +314,7 @@ static int vlandev_seq_show(struct seq_file *seq, void *offset) dev_info->ingress_priority_map[6], dev_info->ingress_priority_map[7]); - seq_printf(seq, " EGRESS priority mappings: "); + seq_printf(seq, "EGRESSS priority Mappings: "); for (i = 0; i < 16; i++) { const struct vlan_priority_tci_mapping *mp = dev_info->egress_priority_map[i]; diff --git a/trunk/net/core/skbuff.c b/trunk/net/core/skbuff.c index d49ef8301b5b..ebb6b94f8af2 100644 --- a/trunk/net/core/skbuff.c +++ b/trunk/net/core/skbuff.c @@ -486,8 +486,8 @@ int skb_recycle_check(struct sk_buff *skb, int skb_size) shinfo->frag_list = NULL; memset(skb, 0, offsetof(struct sk_buff, tail)); - skb->data = skb->head + NET_SKB_PAD; skb_reset_tail_pointer(skb); + skb->data = skb->head + NET_SKB_PAD; return 1; } diff --git a/trunk/net/dsa/slave.c b/trunk/net/dsa/slave.c index 1af5a79309e9..37616884b8a9 100644 --- a/trunk/net/dsa/slave.c +++ b/trunk/net/dsa/slave.c @@ -10,7 +10,6 @@ #include #include -#include #include #include "dsa_priv.h" @@ -50,57 +49,11 @@ void dsa_slave_mii_bus_init(struct dsa_switch *ds) /* slave device handling ****************************************************/ static int dsa_slave_open(struct net_device *dev) { - struct dsa_slave_priv *p = netdev_priv(dev); - struct net_device *master = p->parent->master_netdev; - int err; - - if (!(master->flags & IFF_UP)) - return -ENETDOWN; - - if (compare_ether_addr(dev->dev_addr, master->dev_addr)) { - err = dev_unicast_add(master, dev->dev_addr, ETH_ALEN); - if (err < 0) - goto out; - } - - if (dev->flags & IFF_ALLMULTI) { - err = dev_set_allmulti(master, 1); - if (err < 0) - goto del_unicast; - } - if (dev->flags & IFF_PROMISC) { - err = dev_set_promiscuity(master, 1); - if (err < 0) - goto clear_allmulti; - } - return 0; - -clear_allmulti: - if (dev->flags & IFF_ALLMULTI) - dev_set_allmulti(master, -1); -del_unicast: - if (compare_ether_addr(dev->dev_addr, master->dev_addr)) - dev_unicast_delete(master, dev->dev_addr, ETH_ALEN); -out: - return err; } static int dsa_slave_close(struct net_device *dev) { - struct dsa_slave_priv *p = netdev_priv(dev); - struct net_device *master = p->parent->master_netdev; - - dev_mc_unsync(master, dev); - dev_unicast_unsync(master, dev); - if (dev->flags & IFF_ALLMULTI) - dev_set_allmulti(master, -1); - if (dev->flags & IFF_PROMISC) - dev_set_promiscuity(master, -1); - - if (compare_ether_addr(dev->dev_addr, master->dev_addr)) - dev_unicast_delete(master, dev->dev_addr, ETH_ALEN); - return 0; } @@ -124,30 +77,9 @@ static void dsa_slave_set_rx_mode(struct net_device *dev) dev_unicast_sync(master, dev); } -static int dsa_slave_set_mac_address(struct net_device *dev, void *a) +static int dsa_slave_set_mac_address(struct net_device *dev, void *addr) { - struct dsa_slave_priv *p = netdev_priv(dev); - struct net_device *master = p->parent->master_netdev; - struct sockaddr *addr = a; - int err; - - if (!is_valid_ether_addr(addr->sa_data)) - return -EADDRNOTAVAIL; - - if (!(dev->flags & IFF_UP)) - goto out; - - if (compare_ether_addr(addr->sa_data, master->dev_addr)) { - err = dev_unicast_add(master, addr->sa_data, ETH_ALEN); - if (err < 0) - return err; - } - - if (compare_ether_addr(dev->dev_addr, master->dev_addr)) - dev_unicast_delete(master, dev->dev_addr, ETH_ALEN); - -out: - memcpy(dev->dev_addr, addr->sa_data, ETH_ALEN); + memcpy(dev->dev_addr, addr + 2, 6); return 0; } diff --git a/trunk/net/dsa/tag_dsa.c b/trunk/net/dsa/tag_dsa.c index 31866543332e..bdc0510b53b7 100644 --- a/trunk/net/dsa/tag_dsa.c +++ b/trunk/net/dsa/tag_dsa.c @@ -159,7 +159,6 @@ static int dsa_rcv(struct sk_buff *skb, struct net_device *dev, skb->dev = ds->ports[source_port]; skb_push(skb, ETH_HLEN); - skb->pkt_type = PACKET_HOST; skb->protocol = eth_type_trans(skb, skb->dev); skb->dev->last_rx = jiffies; diff --git a/trunk/net/dsa/tag_edsa.c b/trunk/net/dsa/tag_edsa.c index 9f4ce55eae59..f985ea993843 100644 --- a/trunk/net/dsa/tag_edsa.c +++ b/trunk/net/dsa/tag_edsa.c @@ -178,7 +178,6 @@ static int edsa_rcv(struct sk_buff *skb, struct net_device *dev, skb->dev = ds->ports[source_port]; skb_push(skb, ETH_HLEN); - skb->pkt_type = PACKET_HOST; skb->protocol = eth_type_trans(skb, skb->dev); skb->dev->last_rx = jiffies; diff --git a/trunk/net/dsa/tag_trailer.c b/trunk/net/dsa/tag_trailer.c index efd26697e716..d3117764b2c2 100644 --- a/trunk/net/dsa/tag_trailer.c +++ b/trunk/net/dsa/tag_trailer.c @@ -95,7 +95,6 @@ static int trailer_rcv(struct sk_buff *skb, struct net_device *dev, skb->dev = ds->ports[source_port]; skb_push(skb, ETH_HLEN); - skb->pkt_type = PACKET_HOST; skb->protocol = eth_type_trans(skb, skb->dev); skb->dev->last_rx = jiffies; diff --git a/trunk/net/ipv4/proc.c b/trunk/net/ipv4/proc.c index a631a1f110ca..8f5a403f6f6b 100644 --- a/trunk/net/ipv4/proc.c +++ b/trunk/net/ipv4/proc.c @@ -237,45 +237,43 @@ static const struct snmp_mib snmp4_net_list[] = { SNMP_MIB_SENTINEL }; -static void icmpmsg_put_line(struct seq_file *seq, unsigned long *vals, - unsigned short *type, int count) -{ - int j; - - if (count) { - seq_printf(seq, "\nIcmpMsg:"); - for (j = 0; j < count; ++j) - seq_printf(seq, " %sType%u", - type[j] & 0x100 ? "Out" : "In", - type[j] & 0xff); - seq_printf(seq, "\nIcmpMsg:"); - for (j = 0; j < count; ++j) - seq_printf(seq, " %lu", vals[j]); - } -} - static void icmpmsg_put(struct seq_file *seq) { #define PERLINE 16 - int i, count; - unsigned short type[PERLINE]; - unsigned long vals[PERLINE], val; + int j, i, count; + static int out[PERLINE]; struct net *net = seq->private; count = 0; for (i = 0; i < ICMPMSG_MIB_MAX; i++) { - val = snmp_fold_field((void **) net->mib.icmpmsg_statistics, i); - if (val) { - type[count] = i; - vals[count++] = val; - } - if (count == PERLINE) { - icmpmsg_put_line(seq, vals, type, count); - count = 0; - } + + if (snmp_fold_field((void **) net->mib.icmpmsg_statistics, i)) + out[count++] = i; + if (count < PERLINE) + continue; + + seq_printf(seq, "\nIcmpMsg:"); + for (j = 0; j < PERLINE; ++j) + seq_printf(seq, " %sType%u", i & 0x100 ? "Out" : "In", + i & 0xff); + seq_printf(seq, "\nIcmpMsg: "); + for (j = 0; j < PERLINE; ++j) + seq_printf(seq, " %lu", + snmp_fold_field((void **) net->mib.icmpmsg_statistics, + out[j])); + seq_putc(seq, '\n'); + } + if (count) { + seq_printf(seq, "\nIcmpMsg:"); + for (j = 0; j < count; ++j) + seq_printf(seq, " %sType%u", out[j] & 0x100 ? "Out" : + "In", out[j] & 0xff); + seq_printf(seq, "\nIcmpMsg:"); + for (j = 0; j < count; ++j) + seq_printf(seq, " %lu", snmp_fold_field((void **) + net->mib.icmpmsg_statistics, out[j])); } - icmpmsg_put_line(seq, vals, type, count); #undef PERLINE } diff --git a/trunk/net/ipv6/ip6mr.c b/trunk/net/ipv6/ip6mr.c index 52a7eb0e2c2c..182f8a177e7f 100644 --- a/trunk/net/ipv6/ip6mr.c +++ b/trunk/net/ipv6/ip6mr.c @@ -981,15 +981,14 @@ int __init ip6_mr_init(void) goto proc_cache_fail; #endif return 0; +reg_notif_fail: + kmem_cache_destroy(mrt_cachep); #ifdef CONFIG_PROC_FS -proc_cache_fail: - proc_net_remove(&init_net, "ip6_mr_vif"); proc_vif_fail: unregister_netdevice_notifier(&ip6_mr_notifier); +proc_cache_fail: + proc_net_remove(&init_net, "ip6_mr_vif"); #endif -reg_notif_fail: - del_timer(&ipmr_expire_timer); - kmem_cache_destroy(mrt_cachep); return err; } diff --git a/trunk/net/key/af_key.c b/trunk/net/key/af_key.c index 5b22e011653b..3440a4637f01 100644 --- a/trunk/net/key/af_key.c +++ b/trunk/net/key/af_key.c @@ -3188,7 +3188,6 @@ static struct xfrm_policy *pfkey_compile_policy(struct sock *sk, int opt, return xp; out: - xp->walk.dead = 1; xfrm_policy_destroy(xp); return NULL; } diff --git a/trunk/net/mac80211/debugfs_sta.c b/trunk/net/mac80211/debugfs_sta.c index b85c4f27b361..189d0bafa91a 100644 --- a/trunk/net/mac80211/debugfs_sta.c +++ b/trunk/net/mac80211/debugfs_sta.c @@ -199,7 +199,7 @@ static ssize_t sta_agg_status_write(struct file *file, /* toggle Rx aggregation command */ tid_num = tid_num - 100; if (tid_static_rx[tid_num] == 1) { - strcpy(state, "off"); + strcpy(state, "off "); ieee80211_sta_stop_rx_ba_session(sta->sdata, da, tid_num, 0, WLAN_REASON_QSTA_REQUIRE_SETUP); sta->ampdu_mlme.tid_state_rx[tid_num] |= diff --git a/trunk/net/netfilter/ipvs/ip_vs_xmit.c b/trunk/net/netfilter/ipvs/ip_vs_xmit.c index e90d52f199bc..02ddc2b3ce2e 100644 --- a/trunk/net/netfilter/ipvs/ip_vs_xmit.c +++ b/trunk/net/netfilter/ipvs/ip_vs_xmit.c @@ -713,8 +713,7 @@ ip_vs_tunnel_xmit_v6(struct sk_buff *skb, struct ip_vs_conn *cp, iph = ipv6_hdr(skb); iph->version = 6; iph->nexthdr = IPPROTO_IPV6; - iph->payload_len = old_iph->payload_len; - be16_add_cpu(&iph->payload_len, sizeof(*old_iph)); + iph->payload_len = old_iph->payload_len + sizeof(old_iph); iph->priority = old_iph->priority; memset(&iph->flow_lbl, 0, sizeof(iph->flow_lbl)); iph->daddr = rt->rt6i_dst.addr; diff --git a/trunk/security/keys/internal.h b/trunk/security/keys/internal.h index 239098f0fd76..b39f5c2e2c4b 100644 --- a/trunk/security/keys/internal.h +++ b/trunk/security/keys/internal.h @@ -107,7 +107,6 @@ extern key_ref_t search_process_keyrings(struct key_type *type, extern struct key *find_keyring_by_name(const char *name, bool skip_perm_check); -extern int install_user_keyrings(struct task_struct *tsk); extern int install_thread_keyring(struct task_struct *tsk); extern int install_process_keyring(struct task_struct *tsk); diff --git a/trunk/security/keys/process_keys.c b/trunk/security/keys/process_keys.c index 45b240af6dbe..5be6d018759a 100644 --- a/trunk/security/keys/process_keys.c +++ b/trunk/security/keys/process_keys.c @@ -40,7 +40,7 @@ struct key_user root_key_user = { /* * install user and user session keyrings for a particular UID */ -int install_user_keyrings(struct task_struct *tsk) +static int install_user_keyrings(struct task_struct *tsk) { struct user_struct *user = tsk->user; struct key *uid_keyring, *session_keyring; diff --git a/trunk/security/keys/request_key.c b/trunk/security/keys/request_key.c index abea08f87fe2..ba32ca6469bd 100644 --- a/trunk/security/keys/request_key.c +++ b/trunk/security/keys/request_key.c @@ -74,10 +74,6 @@ static int call_sbin_request_key(struct key_construction *cons, kenter("{%d},{%d},%s", key->serial, authkey->serial, op); - ret = install_user_keyrings(tsk); - if (ret < 0) - goto error_alloc; - /* allocate a new session keyring */ sprintf(desc, "_req.%u", key->serial);