]> git.ipfire.org Git - people/teissler/ipfire-2.x.git/blob - src/patches/suse-2.6.27.39/patches.kernel.org/patch-2.6.27.33-34
Imported linux-2.6.27.39 suse/xen patches.
[people/teissler/ipfire-2.x.git] / src / patches / suse-2.6.27.39 / patches.kernel.org / patch-2.6.27.33-34
1 From: Greg Kroah-Hartman <gregkh@suse.de>
2 Subject: Linux 2.6.27.34
3
4 Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
5
6 diff --git a/Makefile b/Makefile
7 index 1b2c0fb..1debf9a 100644
8 --- a/Makefile
9 +++ b/Makefile
10 @@ -1,7 +1,7 @@
11 VERSION = 2
12 PATCHLEVEL = 6
13 SUBLEVEL = 27
14 -EXTRAVERSION = .33
15 +EXTRAVERSION = .34
16 NAME = Trembling Tortoise
17
18 # *DOCUMENTATION*
19 diff --git a/drivers/net/e100.c b/drivers/net/e100.c
20 index d991167..c68c57b 100644
21 --- a/drivers/net/e100.c
22 +++ b/drivers/net/e100.c
23 @@ -1842,7 +1842,7 @@ static int e100_rx_indicate(struct nic *nic, struct rx *rx,
24 nic->ru_running = RU_SUSPENDED;
25 pci_dma_sync_single_for_device(nic->pdev, rx->dma_addr,
26 sizeof(struct rfd),
27 - PCI_DMA_BIDIRECTIONAL);
28 + PCI_DMA_FROMDEVICE);
29 return -ENODATA;
30 }
31
32 diff --git a/fs/jffs2/wbuf.c b/fs/jffs2/wbuf.c
33 index 0e78b00..4d89e5f 100644
34 --- a/fs/jffs2/wbuf.c
35 +++ b/fs/jffs2/wbuf.c
36 @@ -1271,10 +1271,20 @@ int jffs2_nor_wbuf_flash_setup(struct jffs2_sb_info *c) {
37 if (!c->wbuf)
38 return -ENOMEM;
39
40 +#ifdef CONFIG_JFFS2_FS_WBUF_VERIFY
41 + c->wbuf_verify = kmalloc(c->wbuf_pagesize, GFP_KERNEL);
42 + if (!c->wbuf_verify) {
43 + kfree(c->wbuf);
44 + return -ENOMEM;
45 + }
46 +#endif
47 return 0;
48 }
49
50 void jffs2_nor_wbuf_flash_cleanup(struct jffs2_sb_info *c) {
51 +#ifdef CONFIG_JFFS2_FS_WBUF_VERIFY
52 + kfree(c->wbuf_verify);
53 +#endif
54 kfree(c->wbuf);
55 }
56
57 diff --git a/mm/slub.c b/mm/slub.c
58 index f0175b4..cbf856b 100644
59 --- a/mm/slub.c
60 +++ b/mm/slub.c
61 @@ -2447,8 +2447,6 @@ static inline int kmem_cache_close(struct kmem_cache *s)
62 */
63 void kmem_cache_destroy(struct kmem_cache *s)
64 {
65 - if (s->flags & SLAB_DESTROY_BY_RCU)
66 - rcu_barrier();
67 down_write(&slub_lock);
68 s->refcount--;
69 if (!s->refcount) {
70 @@ -2459,6 +2457,8 @@ void kmem_cache_destroy(struct kmem_cache *s)
71 "still has objects.\n", s->name, __func__);
72 dump_stack();
73 }
74 + if (s->flags & SLAB_DESTROY_BY_RCU)
75 + rcu_barrier();
76 sysfs_slab_remove(s);
77 } else
78 up_write(&slub_lock);
79 diff --git a/net/core/net_namespace.c b/net/core/net_namespace.c
80 index 7c52fe2..656f6fb 100644
81 --- a/net/core/net_namespace.c
82 +++ b/net/core/net_namespace.c
83 @@ -446,7 +446,7 @@ int net_assign_generic(struct net *net, int id, void *data)
84
85 ng->len = id;
86 INIT_RCU_HEAD(&ng->rcu);
87 - memcpy(&ng->ptr, &old_ng->ptr, old_ng->len);
88 + memcpy(&ng->ptr, &old_ng->ptr, old_ng->len * sizeof(void*));
89
90 rcu_assign_pointer(net->gen, ng);
91 call_rcu(&old_ng->rcu, net_generic_release);