]> git.pld-linux.org Git - packages/kernel.git/blob - kernel-small_fixes.patch
- up to 4.1.39
[packages/kernel.git] / kernel-small_fixes.patch
1 --- linux-2.6.33/scripts/mod/modpost.c~ 2010-02-24 19:52:17.000000000 +0100
2 +++ linux-2.6.33/scripts/mod/modpost.c  2010-03-07 14:26:47.242168558 +0100
3 @@ -15,7 +15,8 @@
4  #include <stdio.h>
5  #include <ctype.h>
6  #include "modpost.h"
7 -#include "../../include/generated/autoconf.h"
8 +// PLD architectures don't use CONFIG_SYMBOL_PREFIX
9 +//#include "../../include/generated/autoconf.h"
10  #include "../../include/linux/license.h"
11  
12  /* Some toolchains use a `_' prefix for all user symbols. */
13
14 --- linux-3.0/scripts/kconfig/lxdialog/check-lxdialog.sh~       2011-07-22 04:17:23.000000000 +0200
15 +++ linux-3.0/scripts/kconfig/lxdialog/check-lxdialog.sh        2011-08-25 21:26:04.799150642 +0200
16 @@ -9,6 +9,12 @@
17                         $cc -print-file-name=lib${lib}.${ext} | grep -q /
18                         if [ $? -eq 0 ]; then
19                                 echo "-l${lib}"
20 +                               for libt in tinfow tinfo ; do
21 +                                       $cc -print-file-name=lib${libt}.${ext} | grep -q /
22 +                                       if [ $? -eq 0 ]; then
23 +                                               echo "-l${libt}"
24 +                                       fi
25 +                               done
26                                 exit
27                         fi
28                 done
29 --- a/Makefile  2016-11-10 20:41:43.646224629 +0100
30 +++ b/Makefile  2016-11-10 20:40:35.640323501 +0100
31 @@ -784,6 +774,9 @@
32  # Prohibit date/time macros, which would make the build non-deterministic
33  KBUILD_CFLAGS   += $(call cc-option,-Werror=date-time)
34  
35 +# enforce correct pointer usage
36 +KBUILD_CFLAGS   += $(call cc-option,-Werror=incompatible-pointer-types)
37 +
38  # use the deterministic mode of AR if available
39  KBUILD_ARFLAGS := $(call ar-option,D)
40  
41
42 From 7a29ac474a47eb8cf212b45917683ae89d6fa13b Mon Sep 17 00:00:00 2001
43 From: Chris Mason <clm@fb.com>
44 Date: Tue, 10 Nov 2015 10:10:34 +1100
45 Subject: xfs: give all workqueues rescuer threads
46
47 We're consistently hitting deadlocks here with XFS on recent kernels.
48 After some digging through the crash files, it looks like everyone in
49 the system is waiting for XFS to reclaim memory.
50
51 Something like this:
52
53 PID: 2733434  TASK: ffff8808cd242800  CPU: 19  COMMAND: "java"
54  #0 [ffff880019c53588] __schedule at ffffffff818c4df2
55  #1 [ffff880019c535d8] schedule at ffffffff818c5517
56  #2 [ffff880019c535f8] _xfs_log_force_lsn at ffffffff81316348
57  #3 [ffff880019c53688] xfs_log_force_lsn at ffffffff813164fb
58  #4 [ffff880019c536b8] xfs_iunpin_wait at ffffffff8130835e
59  #5 [ffff880019c53728] xfs_reclaim_inode at ffffffff812fd453
60  #6 [ffff880019c53778] xfs_reclaim_inodes_ag at ffffffff812fd8c7
61  #7 [ffff880019c53928] xfs_reclaim_inodes_nr at ffffffff812fe433
62  #8 [ffff880019c53958] xfs_fs_free_cached_objects at ffffffff8130d3b9
63  #9 [ffff880019c53968] super_cache_scan at ffffffff811a6f73
64 #10 [ffff880019c539c8] shrink_slab at ffffffff811460e6
65 #11 [ffff880019c53aa8] shrink_zone at ffffffff8114a53f
66 #12 [ffff880019c53b48] do_try_to_free_pages at ffffffff8114a8ba
67 #13 [ffff880019c53be8] try_to_free_pages at ffffffff8114ad5a
68 #14 [ffff880019c53c78] __alloc_pages_nodemask at ffffffff8113e1b8
69 #15 [ffff880019c53d88] alloc_kmem_pages_node at ffffffff8113e671
70 #16 [ffff880019c53dd8] copy_process at ffffffff8104f781
71 #17 [ffff880019c53ec8] do_fork at ffffffff8105129c
72 #18 [ffff880019c53f38] sys_clone at ffffffff810515b6
73 #19 [ffff880019c53f48] stub_clone at ffffffff818c8e4d
74
75 xfs_log_force_lsn is waiting for logs to get cleaned, which is waiting
76 for IO, which is waiting for workers to complete the IO which is waiting
77 for worker threads that don't exist yet:
78
79 PID: 2752451  TASK: ffff880bd6bdda00  CPU: 37  COMMAND: "kworker/37:1"
80  #0 [ffff8808d20abbb0] __schedule at ffffffff818c4df2
81  #1 [ffff8808d20abc00] schedule at ffffffff818c5517
82  #2 [ffff8808d20abc20] schedule_timeout at ffffffff818c7c6c
83  #3 [ffff8808d20abcc0] wait_for_completion_killable at ffffffff818c6495
84  #4 [ffff8808d20abd30] kthread_create_on_node at ffffffff8106ec82
85  #5 [ffff8808d20abdf0] create_worker at ffffffff8106752f
86  #6 [ffff8808d20abe40] worker_thread at ffffffff810699be
87  #7 [ffff8808d20abec0] kthread at ffffffff8106ef59
88  #8 [ffff8808d20abf50] ret_from_fork at ffffffff818c8ac8
89
90 I think we should be using WQ_MEM_RECLAIM to make sure this thread
91 pool makes progress when we're not able to allocate new workers.
92
93 [dchinner: make all workqueues WQ_MEM_RECLAIM]
94
95 Signed-off-by: Chris Mason <clm@fb.com>
96 Reviewed-by: Dave Chinner <dchinner@redhat.com>
97 Signed-off-by: Dave Chinner <david@fromorbit.com>
98 ---
99  fs/xfs/xfs_super.c | 7 ++++---
100  1 file changed, 4 insertions(+), 3 deletions(-)
101
102 diff --git a/fs/xfs/xfs_super.c b/fs/xfs/xfs_super.c
103 index 29531ec..65fbfb7 100644
104 --- a/fs/xfs/xfs_super.c
105 +++ b/fs/xfs/xfs_super.c
106 @@ -838,17 +838,18 @@ xfs_init_mount_workqueues(
107                 goto out_destroy_unwritten;
108  
109         mp->m_reclaim_workqueue = alloc_workqueue("xfs-reclaim/%s",
110 -                       WQ_FREEZABLE, 0, mp->m_fsname);
111 +                       WQ_MEM_RECLAIM|WQ_FREEZABLE, 0, mp->m_fsname);
112         if (!mp->m_reclaim_workqueue)
113                 goto out_destroy_cil;
114  
115         mp->m_log_workqueue = alloc_workqueue("xfs-log/%s",
116 -                       WQ_FREEZABLE|WQ_HIGHPRI, 0, mp->m_fsname);
117 +                       WQ_MEM_RECLAIM|WQ_FREEZABLE|WQ_HIGHPRI, 0,
118 +                       mp->m_fsname);
119         if (!mp->m_log_workqueue)
120                 goto out_destroy_reclaim;
121  
122         mp->m_eofblocks_workqueue = alloc_workqueue("xfs-eofblocks/%s",
123 -                       WQ_FREEZABLE, 0, mp->m_fsname);
124 +                       WQ_MEM_RECLAIM|WQ_FREEZABLE, 0, mp->m_fsname);
125         if (!mp->m_eofblocks_workqueue)
126                 goto out_destroy_log;
127
128 From 5edabca9d4cff7f1f2b68f0bac55ef99d9798ba4 Mon Sep 17 00:00:00 2001
129 From: Andrey Konovalov <andreyknvl@google.com>
130 Date: Thu, 16 Feb 2017 17:22:46 +0100
131 Subject: dccp: fix freeing skb too early for IPV6_RECVPKTINFO
132
133 In the current DCCP implementation an skb for a DCCP_PKT_REQUEST packet
134 is forcibly freed via __kfree_skb in dccp_rcv_state_process if
135 dccp_v6_conn_request successfully returns.
136
137 However, if IPV6_RECVPKTINFO is set on a socket, the address of the skb
138 is saved to ireq->pktopts and the ref count for skb is incremented in
139 dccp_v6_conn_request, so skb is still in use. Nevertheless, it gets freed
140 in dccp_rcv_state_process.
141
142 Fix by calling consume_skb instead of doing goto discard and therefore
143 calling __kfree_skb.
144
145 Similar fixes for TCP:
146
147 fb7e2399ec17f1004c0e0ccfd17439f8759ede01 [TCP]: skb is unexpectedly freed.
148 0aea76d35c9651d55bbaf746e7914e5f9ae5a25d tcp: SYN packets are now
149 simply consumed
150
151 Signed-off-by: Andrey Konovalov <andreyknvl@google.com>
152 Acked-by: Eric Dumazet <edumazet@google.com>
153 Signed-off-by: David S. Miller <davem@davemloft.net>
154 ---
155  net/dccp/input.c | 3 ++-
156  1 file changed, 2 insertions(+), 1 deletion(-)
157
158 diff --git a/net/dccp/input.c b/net/dccp/input.c
159 index ba34718..8fedc2d 100644
160 --- a/net/dccp/input.c
161 +++ b/net/dccp/input.c
162 @@ -606,7 +606,8 @@ int dccp_rcv_state_process(struct sock *sk, struct sk_buff *skb,
163                         if (inet_csk(sk)->icsk_af_ops->conn_request(sk,
164                                                                     skb) < 0)
165                                 return 1;
166 -                       goto discard;
167 +                       consume_skb(skb);
168 +                       return 0;
169                 }
170                 if (dh->dccph_type == DCCP_PKT_RESET)
171                         goto discard;
172 -- 
173 cgit v0.12
174
This page took 0.0329469999999999 seconds and 3 git commands to generate.