From 61ab696449941b955f745eeaec2ab2e97b72dca0 Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Sat, 23 Feb 2019 12:11:50 +0100 Subject: [PATCH] 4.14-stable patches added patches: ceph-avoid-repeatedly-adding-inode-to-mdsc-snap_flush_list.patch keys-allow-reaching-the-keys-quotas-exactly.patch libceph-handle-an-empty-authorize-reply.patch mac80211-free-mpath-object-when-rhashtable-insertion-fails.patch mac80211-restore-vif-beacon-interval-if-start-ap-fails.patch mips-ebpf-always-return-sign-extended-32b-values.patch numa-change-get_mempolicy-to-use-nr_node_ids-instead-of-max_numnodes.patch proc-oom-do-not-report-alien-mms-when-setting-oom_score_adj.patch tracing-fix-number-of-entries-in-trace-header.patch --- ...adding-inode-to-mdsc-snap_flush_list.patch | 33 +++++++++ ...low-reaching-the-keys-quotas-exactly.patch | 43 +++++++++++ ...ceph-handle-an-empty-authorize-reply.patch | 74 +++++++++++++++++++ ...ject-when-rhashtable-insertion-fails.patch | 57 ++++++++++++++ ...if-beacon-interval-if-start-ap-fails.patch | 73 ++++++++++++++++++ ...ways-return-sign-extended-32b-values.patch | 64 ++++++++++++++++ ...-nr_node_ids-instead-of-max_numnodes.patch | 71 ++++++++++++++++++ ...alien-mms-when-setting-oom_score_adj.patch | 56 ++++++++++++++ queue-4.14/series | 9 +++ ...ix-number-of-entries-in-trace-header.patch | 43 +++++++++++ 10 files changed, 523 insertions(+) create mode 100644 queue-4.14/ceph-avoid-repeatedly-adding-inode-to-mdsc-snap_flush_list.patch create mode 100644 queue-4.14/keys-allow-reaching-the-keys-quotas-exactly.patch create mode 100644 queue-4.14/libceph-handle-an-empty-authorize-reply.patch create mode 100644 queue-4.14/mac80211-free-mpath-object-when-rhashtable-insertion-fails.patch create mode 100644 queue-4.14/mac80211-restore-vif-beacon-interval-if-start-ap-fails.patch create mode 100644 queue-4.14/mips-ebpf-always-return-sign-extended-32b-values.patch create mode 100644 queue-4.14/numa-change-get_mempolicy-to-use-nr_node_ids-instead-of-max_numnodes.patch create mode 100644 queue-4.14/proc-oom-do-not-report-alien-mms-when-setting-oom_score_adj.patch create mode 100644 queue-4.14/tracing-fix-number-of-entries-in-trace-header.patch diff --git a/queue-4.14/ceph-avoid-repeatedly-adding-inode-to-mdsc-snap_flush_list.patch b/queue-4.14/ceph-avoid-repeatedly-adding-inode-to-mdsc-snap_flush_list.patch new file mode 100644 index 00000000000..fb997a996dd --- /dev/null +++ b/queue-4.14/ceph-avoid-repeatedly-adding-inode-to-mdsc-snap_flush_list.patch @@ -0,0 +1,33 @@ +From 04242ff3ac0abbaa4362f97781dac268e6c3541a Mon Sep 17 00:00:00 2001 +From: "Yan, Zheng" +Date: Mon, 11 Feb 2019 15:18:52 +0800 +Subject: ceph: avoid repeatedly adding inode to mdsc->snap_flush_list + +From: Yan, Zheng + +commit 04242ff3ac0abbaa4362f97781dac268e6c3541a upstream. + +Otherwise, mdsc->snap_flush_list may get corrupted. + +Cc: stable@vger.kernel.org +Signed-off-by: "Yan, Zheng" +Reviewed-by: Ilya Dryomov +Signed-off-by: Ilya Dryomov +Signed-off-by: Greg Kroah-Hartman + +--- + fs/ceph/snap.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +--- a/fs/ceph/snap.c ++++ b/fs/ceph/snap.c +@@ -616,7 +616,8 @@ int __ceph_finish_cap_snap(struct ceph_i + capsnap->size); + + spin_lock(&mdsc->snap_flush_lock); +- list_add_tail(&ci->i_snap_flush_item, &mdsc->snap_flush_list); ++ if (list_empty(&ci->i_snap_flush_item)) ++ list_add_tail(&ci->i_snap_flush_item, &mdsc->snap_flush_list); + spin_unlock(&mdsc->snap_flush_lock); + return 1; /* caller may want to ceph_flush_snaps */ + } diff --git a/queue-4.14/keys-allow-reaching-the-keys-quotas-exactly.patch b/queue-4.14/keys-allow-reaching-the-keys-quotas-exactly.patch new file mode 100644 index 00000000000..3262c7edf09 --- /dev/null +++ b/queue-4.14/keys-allow-reaching-the-keys-quotas-exactly.patch @@ -0,0 +1,43 @@ +From a08bf91ce28ed3ae7b6fef35d843fef8dc8c2cd9 Mon Sep 17 00:00:00 2001 +From: Eric Biggers +Date: Thu, 14 Feb 2019 16:20:01 +0000 +Subject: KEYS: allow reaching the keys quotas exactly + +From: Eric Biggers + +commit a08bf91ce28ed3ae7b6fef35d843fef8dc8c2cd9 upstream. + +If the sysctl 'kernel.keys.maxkeys' is set to some number n, then +actually users can only add up to 'n - 1' keys. Likewise for +'kernel.keys.maxbytes' and the root_* versions of these sysctls. But +these sysctls are apparently supposed to be *maximums*, as per their +names and all documentation I could find -- the keyrings(7) man page, +Documentation/security/keys/core.rst, and all the mentions of EDQUOT +meaning that the key quota was *exceeded* (as opposed to reached). + +Thus, fix the code to allow reaching the quotas exactly. + +Fixes: 0b77f5bfb45c ("keys: make the keyring quotas controllable through /proc/sys") +Cc: stable@vger.kernel.org +Signed-off-by: Eric Biggers +Signed-off-by: David Howells +Signed-off-by: James Morris +Signed-off-by: Greg Kroah-Hartman + +--- + security/keys/key.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +--- a/security/keys/key.c ++++ b/security/keys/key.c +@@ -265,8 +265,8 @@ struct key *key_alloc(struct key_type *t + + spin_lock(&user->lock); + if (!(flags & KEY_ALLOC_QUOTA_OVERRUN)) { +- if (user->qnkeys + 1 >= maxkeys || +- user->qnbytes + quotalen >= maxbytes || ++ if (user->qnkeys + 1 > maxkeys || ++ user->qnbytes + quotalen > maxbytes || + user->qnbytes + quotalen < user->qnbytes) + goto no_quota; + } diff --git a/queue-4.14/libceph-handle-an-empty-authorize-reply.patch b/queue-4.14/libceph-handle-an-empty-authorize-reply.patch new file mode 100644 index 00000000000..da457a049ae --- /dev/null +++ b/queue-4.14/libceph-handle-an-empty-authorize-reply.patch @@ -0,0 +1,74 @@ +From 0fd3fd0a9bb0b02b6435bb7070e9f7b82a23f068 Mon Sep 17 00:00:00 2001 +From: Ilya Dryomov +Date: Tue, 5 Feb 2019 20:30:27 +0100 +Subject: libceph: handle an empty authorize reply + +From: Ilya Dryomov + +commit 0fd3fd0a9bb0b02b6435bb7070e9f7b82a23f068 upstream. + +The authorize reply can be empty, for example when the ticket used to +build the authorizer is too old and TAG_BADAUTHORIZER is returned from +the service. Calling ->verify_authorizer_reply() results in an attempt +to decrypt and validate (somewhat) random data in au->buf (most likely +the signature block from calc_signature()), which fails and ends up in +con_fault_finish() with !con->auth_retry. The ticket isn't invalidated +and the connection is retried again and again until a new ticket is +obtained from the monitor: + + libceph: osd2 192.168.122.1:6809 bad authorize reply + libceph: osd2 192.168.122.1:6809 bad authorize reply + libceph: osd2 192.168.122.1:6809 bad authorize reply + libceph: osd2 192.168.122.1:6809 bad authorize reply + +Let TAG_BADAUTHORIZER handler kick in and increment con->auth_retry. + +Cc: stable@vger.kernel.org +Fixes: 5c056fdc5b47 ("libceph: verify authorize reply on connect") +Link: https://tracker.ceph.com/issues/20164 +Signed-off-by: Ilya Dryomov +Reviewed-by: Sage Weil +Signed-off-by: Greg Kroah-Hartman + +--- + net/ceph/messenger.c | 15 +++++++++------ + 1 file changed, 9 insertions(+), 6 deletions(-) + +--- a/net/ceph/messenger.c ++++ b/net/ceph/messenger.c +@@ -2057,6 +2057,8 @@ static int process_connect(struct ceph_c + dout("process_connect on %p tag %d\n", con, (int)con->in_tag); + + if (con->auth) { ++ int len = le32_to_cpu(con->in_reply.authorizer_len); ++ + /* + * Any connection that defines ->get_authorizer() + * should also define ->add_authorizer_challenge() and +@@ -2066,8 +2068,7 @@ static int process_connect(struct ceph_c + */ + if (con->in_reply.tag == CEPH_MSGR_TAG_CHALLENGE_AUTHORIZER) { + ret = con->ops->add_authorizer_challenge( +- con, con->auth->authorizer_reply_buf, +- le32_to_cpu(con->in_reply.authorizer_len)); ++ con, con->auth->authorizer_reply_buf, len); + if (ret < 0) + return ret; + +@@ -2077,10 +2078,12 @@ static int process_connect(struct ceph_c + return 0; + } + +- ret = con->ops->verify_authorizer_reply(con); +- if (ret < 0) { +- con->error_msg = "bad authorize reply"; +- return ret; ++ if (len) { ++ ret = con->ops->verify_authorizer_reply(con); ++ if (ret < 0) { ++ con->error_msg = "bad authorize reply"; ++ return ret; ++ } + } + } + diff --git a/queue-4.14/mac80211-free-mpath-object-when-rhashtable-insertion-fails.patch b/queue-4.14/mac80211-free-mpath-object-when-rhashtable-insertion-fails.patch new file mode 100644 index 00000000000..2c42101dae0 --- /dev/null +++ b/queue-4.14/mac80211-free-mpath-object-when-rhashtable-insertion-fails.patch @@ -0,0 +1,57 @@ +From 4ff3a9d14c6c06eaa4e5976c61599ea2bd9e81b2 Mon Sep 17 00:00:00 2001 +From: Herbert Xu +Date: Thu, 14 Feb 2019 22:03:25 +0800 +Subject: mac80211: Free mpath object when rhashtable insertion fails + +From: Herbert Xu + +commit 4ff3a9d14c6c06eaa4e5976c61599ea2bd9e81b2 upstream. + +When rhashtable insertion fails the mesh table code doesn't free +the now-orphan mesh path object. This patch fixes that. + +Cc: stable@vger.kernel.org +Signed-off-by: Herbert Xu +Signed-off-by: Johannes Berg +Signed-off-by: Greg Kroah-Hartman + +--- + net/mac80211/mesh_pathtbl.c | 17 +++++++++-------- + 1 file changed, 9 insertions(+), 8 deletions(-) + +--- a/net/mac80211/mesh_pathtbl.c ++++ b/net/mac80211/mesh_pathtbl.c +@@ -448,17 +448,15 @@ struct mesh_path *mesh_path_add(struct i + + } while (unlikely(ret == -EEXIST && !mpath)); + +- if (ret && ret != -EEXIST) +- return ERR_PTR(ret); +- +- /* At this point either new_mpath was added, or we found a +- * matching entry already in the table; in the latter case +- * free the unnecessary new entry. +- */ +- if (ret == -EEXIST) { ++ if (ret) { + kfree(new_mpath); ++ ++ if (ret != -EEXIST) ++ return ERR_PTR(ret); ++ + new_mpath = mpath; + } ++ + sdata->u.mesh.mesh_paths_generation++; + return new_mpath; + } +@@ -488,6 +486,9 @@ int mpp_path_add(struct ieee80211_sub_if + &new_mpath->rhash, + mesh_rht_params); + ++ if (ret) ++ kfree(new_mpath); ++ + sdata->u.mesh.mpp_paths_generation++; + return ret; + } diff --git a/queue-4.14/mac80211-restore-vif-beacon-interval-if-start-ap-fails.patch b/queue-4.14/mac80211-restore-vif-beacon-interval-if-start-ap-fails.patch new file mode 100644 index 00000000000..9259826d7f7 --- /dev/null +++ b/queue-4.14/mac80211-restore-vif-beacon-interval-if-start-ap-fails.patch @@ -0,0 +1,73 @@ +From 83e37e0bdd1470bbe6612250b745ad39b1a7b130 Mon Sep 17 00:00:00 2001 +From: Rakesh Pillai +Date: Fri, 15 Feb 2019 14:16:02 +0530 +Subject: mac80211: Restore vif beacon interval if start ap fails + +From: Rakesh Pillai + +commit 83e37e0bdd1470bbe6612250b745ad39b1a7b130 upstream. + +The starting of AP interface can fail due to invalid +beacon interval, which does not match the minimum gcd +requirement set by the wifi driver. In such case, the +beacon interval of that interface gets updated with +that invalid beacon interval. + +The next time that interface is brought up in AP mode, +an interface combination check is performed and the +beacon interval is taken from the previously set value. + +In a case where an invalid beacon interval, i.e. a beacon +interval value which does not satisfy the minimum gcd criteria +set by the driver, is set, all the subsequent trials to +bring that interface in AP mode will fail, even if the +subsequent trials have a valid beacon interval. + +To avoid this, in case of a failure in bringing up an +interface in AP mode due to interface combination error, +the interface beacon interval which is stored in bss +conf, needs to be restored with the last working value +of beacon interval. + +Tested on ath10k using WCN3990. + +Cc: stable@vger.kernel.org +Fixes: 0c317a02ca98 ("cfg80211: support virtual interfaces with different beacon intervals") +Signed-off-by: Rakesh Pillai +Signed-off-by: Johannes Berg +Signed-off-by: Greg Kroah-Hartman + +--- + net/mac80211/cfg.c | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) + +--- a/net/mac80211/cfg.c ++++ b/net/mac80211/cfg.c +@@ -884,6 +884,7 @@ static int ieee80211_start_ap(struct wip + BSS_CHANGED_P2P_PS | + BSS_CHANGED_TXPOWER; + int err; ++ int prev_beacon_int; + + old = sdata_dereference(sdata->u.ap.beacon, sdata); + if (old) +@@ -906,6 +907,7 @@ static int ieee80211_start_ap(struct wip + + sdata->needed_rx_chains = sdata->local->rx_chains; + ++ prev_beacon_int = sdata->vif.bss_conf.beacon_int; + sdata->vif.bss_conf.beacon_int = params->beacon_interval; + + mutex_lock(&local->mtx); +@@ -914,8 +916,10 @@ static int ieee80211_start_ap(struct wip + if (!err) + ieee80211_vif_copy_chanctx_to_vlans(sdata, false); + mutex_unlock(&local->mtx); +- if (err) ++ if (err) { ++ sdata->vif.bss_conf.beacon_int = prev_beacon_int; + return err; ++ } + + /* + * Apply control port protocol, this allows us to diff --git a/queue-4.14/mips-ebpf-always-return-sign-extended-32b-values.patch b/queue-4.14/mips-ebpf-always-return-sign-extended-32b-values.patch new file mode 100644 index 00000000000..5414c52c731 --- /dev/null +++ b/queue-4.14/mips-ebpf-always-return-sign-extended-32b-values.patch @@ -0,0 +1,64 @@ +From 13443154f6cac61d148471ede6d7f1f6b5ea946a Mon Sep 17 00:00:00 2001 +From: Paul Burton +Date: Fri, 15 Feb 2019 20:14:15 +0000 +Subject: MIPS: eBPF: Always return sign extended 32b values + +From: Paul Burton + +commit 13443154f6cac61d148471ede6d7f1f6b5ea946a upstream. + +The function prototype used to call JITed eBPF code (ie. the type of the +struct bpf_prog bpf_func field) returns an unsigned int. The MIPS n64 +ABI that MIPS64 kernels target defines that 32 bit integers should +always be sign extended when passed in registers as either arguments or +return values. + +This means that when returning any value which may not already be sign +extended (ie. of type REG_64BIT or REG_32BIT_ZERO_EX) we need to perform +that sign extension in order to comply with the n64 ABI. Without this we +see strange looking test failures from test_bpf.ko, such as: + + test_bpf: #65 ALU64_MOV_X: + dst = 4294967295 jited:1 ret -1 != -1 FAIL (1 times) + +Although the return value printed matches the expected value, this is +only because printf is only examining the least significant 32 bits of +the 64 bit register value we returned. The register holding the expected +value is sign extended whilst the v0 register was set to a zero extended +value by our JITed code, so when compared by a conditional branch +instruction the values are not equal. + +We already handle this when the return value register is of type +REG_32BIT_ZERO_EX, so simply extend this to also cover REG_64BIT. + +Signed-off-by: Paul Burton +Fixes: b6bd53f9c4e8 ("MIPS: Add missing file for eBPF JIT.") +Cc: stable@vger.kernel.org # v4.13+ +Signed-off-by: Daniel Borkmann +Signed-off-by: Greg Kroah-Hartman + +--- + arch/mips/net/ebpf_jit.c | 9 ++++++--- + 1 file changed, 6 insertions(+), 3 deletions(-) + +--- a/arch/mips/net/ebpf_jit.c ++++ b/arch/mips/net/ebpf_jit.c +@@ -348,12 +348,15 @@ static int build_int_epilogue(struct jit + const struct bpf_prog *prog = ctx->skf; + int stack_adjust = ctx->stack_size; + int store_offset = stack_adjust - 8; ++ enum reg_val_type td; + int r0 = MIPS_R_V0; + +- if (dest_reg == MIPS_R_RA && +- get_reg_val_type(ctx, prog->len, BPF_REG_0) == REG_32BIT_ZERO_EX) ++ if (dest_reg == MIPS_R_RA) { + /* Don't let zero extended value escape. */ +- emit_instr(ctx, sll, r0, r0, 0); ++ td = get_reg_val_type(ctx, prog->len, BPF_REG_0); ++ if (td == REG_64BIT || td == REG_32BIT_ZERO_EX) ++ emit_instr(ctx, sll, r0, r0, 0); ++ } + + if (ctx->flags & EBPF_SAVE_RA) { + emit_instr(ctx, ld, MIPS_R_RA, store_offset, MIPS_R_SP); diff --git a/queue-4.14/numa-change-get_mempolicy-to-use-nr_node_ids-instead-of-max_numnodes.patch b/queue-4.14/numa-change-get_mempolicy-to-use-nr_node_ids-instead-of-max_numnodes.patch new file mode 100644 index 00000000000..39bd4066a91 --- /dev/null +++ b/queue-4.14/numa-change-get_mempolicy-to-use-nr_node_ids-instead-of-max_numnodes.patch @@ -0,0 +1,71 @@ +From 050c17f239fd53adb55aa768d4f41bc76c0fe045 Mon Sep 17 00:00:00 2001 +From: Ralph Campbell +Date: Wed, 20 Feb 2019 22:18:58 -0800 +Subject: numa: change get_mempolicy() to use nr_node_ids instead of MAX_NUMNODES + +From: Ralph Campbell + +commit 050c17f239fd53adb55aa768d4f41bc76c0fe045 upstream. + +The system call, get_mempolicy() [1], passes an unsigned long *nodemask +pointer and an unsigned long maxnode argument which specifies the length +of the user's nodemask array in bits (which is rounded up). The manual +page says that if the maxnode value is too small, get_mempolicy will +return EINVAL but there is no system call to return this minimum value. +To determine this value, some programs search /proc//status for a +line starting with "Mems_allowed:" and use the number of digits in the +mask to determine the minimum value. A recent change to the way this line +is formatted [2] causes these programs to compute a value less than +MAX_NUMNODES so get_mempolicy() returns EINVAL. + +Change get_mempolicy(), the older compat version of get_mempolicy(), and +the copy_nodes_to_user() function to use nr_node_ids instead of +MAX_NUMNODES, thus preserving the defacto method of computing the minimum +size for the nodemask array and the maxnode argument. + +[1] http://man7.org/linux/man-pages/man2/get_mempolicy.2.html +[2] https://lore.kernel.org/lkml/1545405631-6808-1-git-send-email-longman@redhat.com + +Link: http://lkml.kernel.org/r/20190211180245.22295-1-rcampbell@nvidia.com +Fixes: 4fb8e5b89bcbbbb ("include/linux/nodemask.h: use nr_node_ids (not MAX_NUMNODES) in __nodemask_pr_numnodes()") +Signed-off-by: Ralph Campbell +Suggested-by: Alexander Duyck +Cc: Waiman Long +Cc: +Signed-off-by: Andrew Morton +Signed-off-by: Linus Torvalds +Signed-off-by: Greg Kroah-Hartman + +--- + mm/mempolicy.c | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +--- a/mm/mempolicy.c ++++ b/mm/mempolicy.c +@@ -1325,7 +1325,7 @@ static int copy_nodes_to_user(unsigned l + nodemask_t *nodes) + { + unsigned long copy = ALIGN(maxnode-1, 64) / 8; +- const int nbytes = BITS_TO_LONGS(MAX_NUMNODES) * sizeof(long); ++ unsigned int nbytes = BITS_TO_LONGS(nr_node_ids) * sizeof(long); + + if (copy > nbytes) { + if (copy > PAGE_SIZE) +@@ -1486,7 +1486,7 @@ SYSCALL_DEFINE5(get_mempolicy, int __use + int uninitialized_var(pval); + nodemask_t nodes; + +- if (nmask != NULL && maxnode < MAX_NUMNODES) ++ if (nmask != NULL && maxnode < nr_node_ids) + return -EINVAL; + + err = do_get_mempolicy(&pval, &nodes, addr, flags); +@@ -1515,7 +1515,7 @@ COMPAT_SYSCALL_DEFINE5(get_mempolicy, in + unsigned long nr_bits, alloc_size; + DECLARE_BITMAP(bm, MAX_NUMNODES); + +- nr_bits = min_t(unsigned long, maxnode-1, MAX_NUMNODES); ++ nr_bits = min_t(unsigned long, maxnode-1, nr_node_ids); + alloc_size = ALIGN(nr_bits, BITS_PER_LONG) / 8; + + if (nmask) diff --git a/queue-4.14/proc-oom-do-not-report-alien-mms-when-setting-oom_score_adj.patch b/queue-4.14/proc-oom-do-not-report-alien-mms-when-setting-oom_score_adj.patch new file mode 100644 index 00000000000..e6b8df31bc4 --- /dev/null +++ b/queue-4.14/proc-oom-do-not-report-alien-mms-when-setting-oom_score_adj.patch @@ -0,0 +1,56 @@ +From b2b469939e93458753cfbf8282ad52636495965e Mon Sep 17 00:00:00 2001 +From: Michal Hocko +Date: Wed, 20 Feb 2019 22:19:42 -0800 +Subject: proc, oom: do not report alien mms when setting oom_score_adj + +From: Michal Hocko + +commit b2b469939e93458753cfbf8282ad52636495965e upstream. + +Tetsuo has reported that creating a thousands of processes sharing MM +without SIGHAND (aka alien threads) and setting +/proc//oom_score_adj will swamp the kernel log and takes ages [1] +to finish. This is especially worrisome that all that printing is done +under RCU lock and this can potentially trigger RCU stall or softlockup +detector. + +The primary reason for the printk was to catch potential users who might +depend on the behavior prior to 44a70adec910 ("mm, oom_adj: make sure +processes sharing mm have same view of oom_score_adj") but after more +than 2 years without a single report I guess it is safe to simply remove +the printk altogether. + +The next step should be moving oom_score_adj over to the mm struct and +remove all the tasks crawling as suggested by [2] + +[1] http://lkml.kernel.org/r/97fce864-6f75-bca5-14bc-12c9f890e740@i-love.sakura.ne.jp +[2] http://lkml.kernel.org/r/20190117155159.GA4087@dhcp22.suse.cz + +Link: http://lkml.kernel.org/r/20190212102129.26288-1-mhocko@kernel.org +Signed-off-by: Michal Hocko +Reported-by: Tetsuo Handa +Acked-by: Johannes Weiner +Cc: David Rientjes +Cc: Yong-Taek Lee +Cc: +Signed-off-by: Andrew Morton +Signed-off-by: Linus Torvalds +Signed-off-by: Greg Kroah-Hartman + +--- + fs/proc/base.c | 4 ---- + 1 file changed, 4 deletions(-) + +--- a/fs/proc/base.c ++++ b/fs/proc/base.c +@@ -1108,10 +1108,6 @@ static int __set_oom_adj(struct file *fi + + task_lock(p); + if (!p->vfork_done && process_shares_mm(p, mm)) { +- pr_info("updating oom_score_adj for %d (%s) from %d to %d because it shares mm with %d (%s). Report if this is unexpected.\n", +- task_pid_nr(p), p->comm, +- p->signal->oom_score_adj, oom_adj, +- task_pid_nr(task), task->comm); + p->signal->oom_score_adj = oom_adj; + if (!legacy && has_capability_noaudit(current, CAP_SYS_RESOURCE)) + p->signal->oom_score_adj_min = (short)oom_adj; diff --git a/queue-4.14/series b/queue-4.14/series index aa795322ed3..46b65bd50b2 100644 --- a/queue-4.14/series +++ b/queue-4.14/series @@ -1 +1,10 @@ arm-8834-1-fix-kprobes-optimized-kprobes-illegal-instruction.patch +tracing-fix-number-of-entries-in-trace-header.patch +mips-ebpf-always-return-sign-extended-32b-values.patch +mac80211-restore-vif-beacon-interval-if-start-ap-fails.patch +mac80211-free-mpath-object-when-rhashtable-insertion-fails.patch +libceph-handle-an-empty-authorize-reply.patch +ceph-avoid-repeatedly-adding-inode-to-mdsc-snap_flush_list.patch +numa-change-get_mempolicy-to-use-nr_node_ids-instead-of-max_numnodes.patch +proc-oom-do-not-report-alien-mms-when-setting-oom_score_adj.patch +keys-allow-reaching-the-keys-quotas-exactly.patch diff --git a/queue-4.14/tracing-fix-number-of-entries-in-trace-header.patch b/queue-4.14/tracing-fix-number-of-entries-in-trace-header.patch new file mode 100644 index 00000000000..6d6c0566a1e --- /dev/null +++ b/queue-4.14/tracing-fix-number-of-entries-in-trace-header.patch @@ -0,0 +1,43 @@ +From 9e7382153f80ba45a0bbcd540fb77d4b15f6e966 Mon Sep 17 00:00:00 2001 +From: Quentin Perret +Date: Thu, 14 Feb 2019 15:29:50 +0000 +Subject: tracing: Fix number of entries in trace header + +From: Quentin Perret + +commit 9e7382153f80ba45a0bbcd540fb77d4b15f6e966 upstream. + +The following commit + + 441dae8f2f29 ("tracing: Add support for display of tgid in trace output") + +removed the call to print_event_info() from print_func_help_header_irq() +which results in the ftrace header not reporting the number of entries +written in the buffer. As this wasn't the original intent of the patch, +re-introduce the call to print_event_info() to restore the orginal +behaviour. + +Link: http://lkml.kernel.org/r/20190214152950.4179-1-quentin.perret@arm.com + +Acked-by: Joel Fernandes +Cc: stable@vger.kernel.org +Fixes: 441dae8f2f29 ("tracing: Add support for display of tgid in trace output") +Signed-off-by: Quentin Perret +Signed-off-by: Steven Rostedt (VMware) +Signed-off-by: Greg Kroah-Hartman + +--- + kernel/trace/trace.c | 2 ++ + 1 file changed, 2 insertions(+) + +--- a/kernel/trace/trace.c ++++ b/kernel/trace/trace.c +@@ -3381,6 +3381,8 @@ static void print_func_help_header_irq(s + const char tgid_space[] = " "; + const char space[] = " "; + ++ print_event_info(buf, m); ++ + seq_printf(m, "# %s _-----=> irqs-off\n", + tgid ? tgid_space : space); + seq_printf(m, "# %s / _----=> need-resched\n", -- 2.47.3