diff options
author | Sebastian Andrzej Siewior <bigeasy@linutronix.de> | 2016-10-31 14:45:15 +0100 |
---|---|---|
committer | Sebastian Andrzej Siewior <bigeasy@linutronix.de> | 2016-10-31 14:45:15 +0100 |
commit | e15768118871bf62612c041632155ce0182203a5 (patch) | |
tree | 3ca90d2594a850c9b4d97870e858ff25b07f5fdc | |
parent | 3736188f60e006392918de3b181841ce49f5658d (diff) | |
download | 4.12-rt-patches-e15768118871bf62612c041632155ce0182203a5.tar.gz |
[ANNOUNCE] 4.8.6-rt4
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
-rw-r--r-- | patches/NFSv4-replace-seqcount_t-with-a-seqlock_t.patch | 4 | ||||
-rw-r--r-- | patches/dm-make-rt-aware.patch | 2 | ||||
-rw-r--r-- | patches/fs-dcache-use-swait_queue-instead-of-waitqueue.patch | 2 | ||||
-rw-r--r-- | patches/fs-nfs-turn-rmdir_sem-into-a-semaphore.patch | 4 | ||||
-rw-r--r-- | patches/i915-bogus-warning-from-i915-when-running-on-PREEMPT.patch | 2 | ||||
-rw-r--r-- | patches/ipc-sem-rework-semaphore-wakeups.patch | 8 | ||||
-rw-r--r-- | patches/jbd2-Fix-lockdep-annotation-in-add_transaction_credi.patch | 64 | ||||
-rw-r--r-- | patches/kgb-serial-hackaround.patch | 2 | ||||
-rw-r--r-- | patches/localversion.patch | 2 | ||||
-rw-r--r-- | patches/mm-filemap-don-t-plant-shadow-entries-without-radix-.patch | 185 | ||||
-rw-r--r-- | patches/mm-filemap-fix-mapping-nrpages-double-accounting-in-.patch | 40 | ||||
-rw-r--r-- | patches/preempt-lazy-support.patch | 16 | ||||
-rw-r--r-- | patches/series | 3 | ||||
-rw-r--r-- | patches/tty-serial-8250-don-t-take-the-trylock-during-oops.patch | 2 |
14 files changed, 22 insertions, 314 deletions
diff --git a/patches/NFSv4-replace-seqcount_t-with-a-seqlock_t.patch b/patches/NFSv4-replace-seqcount_t-with-a-seqlock_t.patch index ba0e7dabf92c39..9ead03f07c2861 100644 --- a/patches/NFSv4-replace-seqcount_t-with-a-seqlock_t.patch +++ b/patches/NFSv4-replace-seqcount_t-with-a-seqlock_t.patch @@ -50,7 +50,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> --- a/fs/nfs/delegation.c +++ b/fs/nfs/delegation.c -@@ -140,11 +140,11 @@ static int nfs_delegation_claim_opens(st +@@ -150,11 +150,11 @@ static int nfs_delegation_claim_opens(st sp = state->owner; /* Block nfs4_proc_unlck */ mutex_lock(&sp->so_delegreturn_mutex); @@ -116,7 +116,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> restart: list_for_each_entry(state, &sp->so_states, open_states) { if (!test_and_clear_bit(ops->state_flag_bit, &state->flags)) -@@ -1525,14 +1525,12 @@ static int nfs4_reclaim_open_state(struc +@@ -1528,14 +1528,12 @@ static int nfs4_reclaim_open_state(struc spin_lock(&sp->so_lock); goto restart; } diff --git a/patches/dm-make-rt-aware.patch b/patches/dm-make-rt-aware.patch index 875046aa1077e8..0133d5a12f88fc 100644 --- a/patches/dm-make-rt-aware.patch +++ b/patches/dm-make-rt-aware.patch @@ -15,7 +15,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> --- a/drivers/md/dm-rq.c +++ b/drivers/md/dm-rq.c -@@ -802,7 +802,7 @@ static void dm_old_request_fn(struct req +@@ -811,7 +811,7 @@ static void dm_old_request_fn(struct req /* Establish tio->ti before queuing work (map_tio_request) */ tio->ti = ti; queue_kthread_work(&md->kworker, &tio->work); diff --git a/patches/fs-dcache-use-swait_queue-instead-of-waitqueue.patch b/patches/fs-dcache-use-swait_queue-instead-of-waitqueue.patch index d1acdfdda3c107..483367611a8692 100644 --- a/patches/fs-dcache-use-swait_queue-instead-of-waitqueue.patch +++ b/patches/fs-dcache-use-swait_queue-instead-of-waitqueue.patch @@ -120,7 +120,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> struct dentry *dentry; struct dentry *alias; struct inode *dir = d_inode(parent); -@@ -1484,7 +1484,7 @@ int nfs_atomic_open(struct inode *dir, s +@@ -1490,7 +1490,7 @@ int nfs_atomic_open(struct inode *dir, s struct file *file, unsigned open_flags, umode_t mode, int *opened) { diff --git a/patches/fs-nfs-turn-rmdir_sem-into-a-semaphore.patch b/patches/fs-nfs-turn-rmdir_sem-into-a-semaphore.patch index 3590c36ff2ea69..04f8ebdadcec53 100644 --- a/patches/fs-nfs-turn-rmdir_sem-into-a-semaphore.patch +++ b/patches/fs-nfs-turn-rmdir_sem-into-a-semaphore.patch @@ -21,7 +21,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> --- a/fs/nfs/dir.c +++ b/fs/nfs/dir.c -@@ -1799,7 +1799,11 @@ int nfs_rmdir(struct inode *dir, struct +@@ -1805,7 +1805,11 @@ int nfs_rmdir(struct inode *dir, struct trace_nfs_rmdir_enter(dir, dentry); if (d_really_is_positive(dentry)) { @@ -33,7 +33,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> error = NFS_PROTO(dir)->rmdir(dir, &dentry->d_name); /* Ensure the VFS deletes this inode */ switch (error) { -@@ -1809,7 +1813,11 @@ int nfs_rmdir(struct inode *dir, struct +@@ -1815,7 +1819,11 @@ int nfs_rmdir(struct inode *dir, struct case -ENOENT: nfs_dentry_handle_enoent(dentry); } diff --git a/patches/i915-bogus-warning-from-i915-when-running-on-PREEMPT.patch b/patches/i915-bogus-warning-from-i915-when-running-on-PREEMPT.patch index f7fe1ce4fc43a6..0b798376719d6c 100644 --- a/patches/i915-bogus-warning-from-i915-when-running-on-PREEMPT.patch +++ b/patches/i915-bogus-warning-from-i915-when-running-on-PREEMPT.patch @@ -18,7 +18,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> --- a/drivers/gpu/drm/i915/intel_display.c +++ b/drivers/gpu/drm/i915/intel_display.c -@@ -11613,7 +11613,7 @@ void intel_check_page_flip(struct drm_i9 +@@ -11647,7 +11647,7 @@ void intel_check_page_flip(struct drm_i9 struct intel_crtc *intel_crtc = to_intel_crtc(crtc); struct intel_flip_work *work; diff --git a/patches/ipc-sem-rework-semaphore-wakeups.patch b/patches/ipc-sem-rework-semaphore-wakeups.patch index 7d9258650e5bf6..91daf21867afb2 100644 --- a/patches/ipc-sem-rework-semaphore-wakeups.patch +++ b/patches/ipc-sem-rework-semaphore-wakeups.patch @@ -29,7 +29,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> --- a/ipc/sem.c +++ b/ipc/sem.c -@@ -686,6 +686,13 @@ static int perform_atomic_semop(struct s +@@ -712,6 +712,13 @@ static int perform_atomic_semop(struct s static void wake_up_sem_queue_prepare(struct list_head *pt, struct sem_queue *q, int error) { @@ -43,7 +43,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> if (list_empty(pt)) { /* * Hold preempt off so that we don't get preempted and have the -@@ -697,6 +704,7 @@ static void wake_up_sem_queue_prepare(st +@@ -723,6 +730,7 @@ static void wake_up_sem_queue_prepare(st q->pid = error; list_add_tail(&q->list, pt); @@ -51,7 +51,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> } /** -@@ -710,6 +718,7 @@ static void wake_up_sem_queue_prepare(st +@@ -736,6 +744,7 @@ static void wake_up_sem_queue_prepare(st */ static void wake_up_sem_queue_do(struct list_head *pt) { @@ -59,7 +59,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> struct sem_queue *q, *t; int did_something; -@@ -722,6 +731,7 @@ static void wake_up_sem_queue_do(struct +@@ -748,6 +757,7 @@ static void wake_up_sem_queue_do(struct } if (did_something) preempt_enable(); diff --git a/patches/jbd2-Fix-lockdep-annotation-in-add_transaction_credi.patch b/patches/jbd2-Fix-lockdep-annotation-in-add_transaction_credi.patch deleted file mode 100644 index 77e9be35adc56a..00000000000000 --- a/patches/jbd2-Fix-lockdep-annotation-in-add_transaction_credi.patch +++ /dev/null @@ -1,64 +0,0 @@ -From: Jan Kara <jack@suse.cz> -Date: Mon, 19 Sep 2016 14:30:43 +0200 -Subject: [PATCH] jbd2: Fix lockdep annotation in add_transaction_credits() - -Thomas has reported a lockdep splat hitting in -add_transaction_credits(). The problem is that that function calls -jbd2_might_wait_for_commit() while holding j_state_lock which is wrong -(we do not really wait for transaction commit while holding that lock). - -Fix the problem by moving jbd2_might_wait_for_commit() into places where -we are ready to wait for transaction commit and thus j_state_lock is -unlocked. - -Fixes: 1eaa566d368b214d99cbb973647c1b0b8102a9ae -Reported-by: Thomas Gleixner <tglx@linutronix.de> -Signed-off-by: Jan Kara <jack@suse.cz> -Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> ---- - fs/jbd2/transaction.c | 6 ++++-- - 1 file changed, 4 insertions(+), 2 deletions(-) - ---- a/fs/jbd2/transaction.c -+++ b/fs/jbd2/transaction.c -@@ -159,6 +159,7 @@ static void wait_transaction_locked(jour - read_unlock(&journal->j_state_lock); - if (need_to_start) - jbd2_log_start_commit(journal, tid); -+ jbd2_might_wait_for_commit(journal); - schedule(); - finish_wait(&journal->j_wait_transaction_locked, &wait); - } -@@ -182,8 +183,6 @@ static int add_transaction_credits(journ - int needed; - int total = blocks + rsv_blocks; - -- jbd2_might_wait_for_commit(journal); -- - /* - * If the current transaction is locked down for commit, wait - * for the lock to be released. -@@ -214,6 +213,7 @@ static int add_transaction_credits(journ - if (atomic_read(&journal->j_reserved_credits) + total > - journal->j_max_transaction_buffers) { - read_unlock(&journal->j_state_lock); -+ jbd2_might_wait_for_commit(journal); - wait_event(journal->j_wait_reserved, - atomic_read(&journal->j_reserved_credits) + total <= - journal->j_max_transaction_buffers); -@@ -238,6 +238,7 @@ static int add_transaction_credits(journ - if (jbd2_log_space_left(journal) < jbd2_space_needed(journal)) { - atomic_sub(total, &t->t_outstanding_credits); - read_unlock(&journal->j_state_lock); -+ jbd2_might_wait_for_commit(journal); - write_lock(&journal->j_state_lock); - if (jbd2_log_space_left(journal) < jbd2_space_needed(journal)) - __jbd2_log_wait_for_space(journal); -@@ -255,6 +256,7 @@ static int add_transaction_credits(journ - sub_reserved_credits(journal, rsv_blocks); - atomic_sub(total, &t->t_outstanding_credits); - read_unlock(&journal->j_state_lock); -+ jbd2_might_wait_for_commit(journal); - wait_event(journal->j_wait_reserved, - atomic_read(&journal->j_reserved_credits) + rsv_blocks - <= journal->j_max_transaction_buffers / 2); diff --git a/patches/kgb-serial-hackaround.patch b/patches/kgb-serial-hackaround.patch index a7244ccb9e89f3..ee10c9d3031e46 100644 --- a/patches/kgb-serial-hackaround.patch +++ b/patches/kgb-serial-hackaround.patch @@ -33,7 +33,7 @@ Jason. #include <linux/uaccess.h> #include <linux/pm_runtime.h> #include <linux/timer.h> -@@ -3112,6 +3113,8 @@ void serial8250_console_write(struct uar +@@ -3111,6 +3112,8 @@ void serial8250_console_write(struct uar if (port->sysrq || oops_in_progress) locked = 0; diff --git a/patches/localversion.patch b/patches/localversion.patch index e36eb4b6666a7e..03a80b8b0e8035 100644 --- a/patches/localversion.patch +++ b/patches/localversion.patch @@ -10,4 +10,4 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> --- /dev/null +++ b/localversion-rt @@ -0,0 +1 @@ -+-rt3 ++-rt4 diff --git a/patches/mm-filemap-don-t-plant-shadow-entries-without-radix-.patch b/patches/mm-filemap-don-t-plant-shadow-entries-without-radix-.patch deleted file mode 100644 index afa386b49af2b4..00000000000000 --- a/patches/mm-filemap-don-t-plant-shadow-entries-without-radix-.patch +++ /dev/null @@ -1,185 +0,0 @@ -From: Johannes Weiner <hannes@cmpxchg.org> -Date: Tue, 4 Oct 2016 22:02:08 +0200 -Subject: [PATCH] mm: filemap: don't plant shadow entries without radix tree - node - -Upstream commit d3798ae8c6f3767c726403c2ca6ecc317752c9dd - -When the underflow checks were added to workingset_node_shadow_dec(), -they triggered immediately: - - kernel BUG at ./include/linux/swap.h:276! - invalid opcode: 0000 [#1] SMP - Modules linked in: isofs usb_storage fuse xt_CHECKSUM ipt_MASQUERADE nf_nat_masquerade_ipv4 tun nf_conntrack_netbios_ns nf_conntrack_broadcast ip6t_REJECT nf_reject_ipv6 - soundcore wmi acpi_als pinctrl_sunrisepoint kfifo_buf tpm_tis industrialio acpi_pad pinctrl_intel tpm_tis_core tpm nfsd auth_rpcgss nfs_acl lockd grace sunrpc dm_crypt - CPU: 0 PID: 20929 Comm: blkid Not tainted 4.8.0-rc8-00087-gbe67d60ba944 #1 - Hardware name: System manufacturer System Product Name/Z170-K, BIOS 1803 05/06/2016 - task: ffff8faa93ecd940 task.stack: ffff8faa7f478000 - RIP: page_cache_tree_insert+0xf1/0x100 - Call Trace: - __add_to_page_cache_locked+0x12e/0x270 - add_to_page_cache_lru+0x4e/0xe0 - mpage_readpages+0x112/0x1d0 - blkdev_readpages+0x1d/0x20 - __do_page_cache_readahead+0x1ad/0x290 - force_page_cache_readahead+0xaa/0x100 - page_cache_sync_readahead+0x3f/0x50 - generic_file_read_iter+0x5af/0x740 - blkdev_read_iter+0x35/0x40 - __vfs_read+0xe1/0x130 - vfs_read+0x96/0x130 - SyS_read+0x55/0xc0 - entry_SYSCALL_64_fastpath+0x13/0x8f - Code: 03 00 48 8b 5d d8 65 48 33 1c 25 28 00 00 00 44 89 e8 75 19 48 83 c4 18 5b 41 5c 41 5d 41 5e 5d c3 0f 0b 41 bd ef ff ff ff eb d7 <0f> 0b e8 88 68 ef ff 0f 1f 84 00 - RIP page_cache_tree_insert+0xf1/0x100 - -This is a long-standing bug in the way shadow entries are accounted in -the radix tree nodes. The shrinker needs to know when radix tree nodes -contain only shadow entries, no pages, so node->count is split in half -to count shadows in the upper bits and pages in the lower bits. - -Unfortunately, the radix tree implementation doesn't know of this and -assumes all entries are in node->count. When there is a shadow entry -directly in root->rnode and the tree is later extended, the radix tree -implementation will copy that entry into the new node and and bump its -node->count, i.e. increases the page count bits. Once the shadow gets -removed and we subtract from the upper counter, node->count underflows -and triggers the warning. Afterwards, without node->count reaching 0 -again, the radix tree node is leaked. - -Limit shadow entries to when we have actual radix tree nodes and can -count them properly. That means we lose the ability to detect refaults -from files that had only the first page faulted in at eviction time. - -Fixes: 449dd6984d0e ("mm: keep page cache radix tree nodes in check") -Signed-off-by: Johannes Weiner <hannes@cmpxchg.org> -Reported-and-tested-by: Linus Torvalds <torvalds@linux-foundation.org> -Reviewed-by: Jan Kara <jack@suse.cz> -Cc: Andrew Morton <akpm@linux-foundation.org> -Cc: stable@vger.kernel.org -Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> ---- - include/linux/radix-tree.h | 6 ++--- - lib/radix-tree.c | 14 ++----------- - mm/filemap.c | 46 +++++++++++++++++++++++++++++---------------- - 3 files changed, 36 insertions(+), 30 deletions(-) - ---- a/include/linux/radix-tree.h -+++ b/include/linux/radix-tree.h -@@ -280,9 +280,9 @@ bool __radix_tree_delete_node(struct rad - struct radix_tree_node *node); - void *radix_tree_delete_item(struct radix_tree_root *, unsigned long, void *); - void *radix_tree_delete(struct radix_tree_root *, unsigned long); --struct radix_tree_node *radix_tree_replace_clear_tags( -- struct radix_tree_root *root, -- unsigned long index, void *entry); -+void radix_tree_clear_tags(struct radix_tree_root *root, -+ struct radix_tree_node *node, -+ void **slot); - unsigned int radix_tree_gang_lookup(struct radix_tree_root *root, - void **results, unsigned long first_index, - unsigned int max_items); ---- a/lib/radix-tree.c -+++ b/lib/radix-tree.c -@@ -1583,15 +1583,10 @@ void *radix_tree_delete(struct radix_tre - } - EXPORT_SYMBOL(radix_tree_delete); - --struct radix_tree_node *radix_tree_replace_clear_tags( -- struct radix_tree_root *root, -- unsigned long index, void *entry) -+void radix_tree_clear_tags(struct radix_tree_root *root, -+ struct radix_tree_node *node, -+ void **slot) - { -- struct radix_tree_node *node; -- void **slot; -- -- __radix_tree_lookup(root, index, &node, &slot); -- - if (node) { - unsigned int tag, offset = get_slot_offset(node, slot); - for (tag = 0; tag < RADIX_TREE_MAX_TAGS; tag++) -@@ -1600,9 +1595,6 @@ struct radix_tree_node *radix_tree_repla - /* Clear root node tags */ - root->gfp_mask &= __GFP_BITS_MASK; - } -- -- radix_tree_replace_slot(slot, entry); -- return node; - } - - /** ---- a/mm/filemap.c -+++ b/mm/filemap.c -@@ -169,33 +169,35 @@ static int page_cache_tree_insert(struct - static void page_cache_tree_delete(struct address_space *mapping, - struct page *page, void *shadow) - { -- struct radix_tree_node *node; - int i, nr = PageHuge(page) ? 1 : hpage_nr_pages(page); - - VM_BUG_ON_PAGE(!PageLocked(page), page); - VM_BUG_ON_PAGE(PageTail(page), page); - VM_BUG_ON_PAGE(nr != 1 && shadow, page); - -- if (shadow) { -- mapping->nrexceptional += nr; -- /* -- * Make sure the nrexceptional update is committed before -- * the nrpages update so that final truncate racing -- * with reclaim does not see both counters 0 at the -- * same time and miss a shadow entry. -- */ -- smp_wmb(); -- } -- mapping->nrpages -= nr; -- - for (i = 0; i < nr; i++) { -- node = radix_tree_replace_clear_tags(&mapping->page_tree, -- page->index + i, shadow); -+ struct radix_tree_node *node; -+ void **slot; -+ -+ __radix_tree_lookup(&mapping->page_tree, page->index + i, -+ &node, &slot); -+ -+ radix_tree_clear_tags(&mapping->page_tree, node, slot); -+ - if (!node) { - VM_BUG_ON_PAGE(nr != 1, page); -- return; -+ /* -+ * We need a node to properly account shadow -+ * entries. Don't plant any without. XXX -+ */ -+ shadow = NULL; - } - -+ radix_tree_replace_slot(slot, shadow); -+ -+ if (!node) -+ break; -+ - workingset_node_pages_dec(node); - if (shadow) - workingset_node_shadows_inc(node); -@@ -219,6 +221,18 @@ static void page_cache_tree_delete(struc - &node->private_list); - } - } -+ -+ if (shadow) { -+ mapping->nrexceptional += nr; -+ /* -+ * Make sure the nrexceptional update is committed before -+ * the nrpages update so that final truncate racing -+ * with reclaim does not see both counters 0 at the -+ * same time and miss a shadow entry. -+ */ -+ smp_wmb(); -+ } -+ mapping->nrpages -= nr; - } - - /* diff --git a/patches/mm-filemap-fix-mapping-nrpages-double-accounting-in-.patch b/patches/mm-filemap-fix-mapping-nrpages-double-accounting-in-.patch deleted file mode 100644 index feebd3f366cab7..00000000000000 --- a/patches/mm-filemap-fix-mapping-nrpages-double-accounting-in-.patch +++ /dev/null @@ -1,40 +0,0 @@ -From: Johannes Weiner <hannes@cmpxchg.org> -Date: Tue, 4 Oct 2016 16:58:06 +0200 -Subject: [PATCH] mm: filemap: fix mapping->nrpages double accounting in fuse - -Upstream commit 3ddf40e8c31964b744ff10abb48c8e36a83ec6e7 - -Commit 22f2ac51b6d6 ("mm: workingset: fix crash in shadow node shrinker -caused by replace_page_cache_page()") switched replace_page_cache() from -raw radix tree operations to page_cache_tree_insert() but didn't take -into account that the latter function, unlike the raw radix tree op, -handles mapping->nrpages. As a result, that counter is bumped for each -page replacement rather than balanced out even. - -The mapping->nrpages counter is used to skip needless radix tree walks -when invalidating, truncating, syncing inodes without pages, as well as -statistics for userspace. Since the error is positive, we'll do more -page cache tree walks than necessary; we won't miss a necessary one. -And we'll report more buffer pages to userspace than there are. The -error is limited to fuse inodes. - -Fixes: 22f2ac51b6d6 ("mm: workingset: fix crash in shadow node shrinker caused by replace_page_cache_page()") -Signed-off-by: Johannes Weiner <hannes@cmpxchg.org> -Cc: Andrew Morton <akpm@linux-foundation.org> -Cc: Miklos Szeredi <miklos@szeredi.hu> -Cc: stable@vger.kernel.org -Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> ---- - mm/filemap.c | 1 - - 1 file changed, 1 deletion(-) - ---- a/mm/filemap.c -+++ b/mm/filemap.c -@@ -633,7 +633,6 @@ int replace_page_cache_page(struct page - __delete_from_page_cache(old, NULL); - error = page_cache_tree_insert(mapping, new, NULL); - BUG_ON(error); -- mapping->nrpages++; - - /* - * hugetlb pages do not participate in page cache accounting. diff --git a/patches/preempt-lazy-support.patch b/patches/preempt-lazy-support.patch index c6eecfaba082cd..464846470d3112 100644 --- a/patches/preempt-lazy-support.patch +++ b/patches/preempt-lazy-support.patch @@ -356,7 +356,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> */ --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c -@@ -3486,7 +3486,7 @@ check_preempt_tick(struct cfs_rq *cfs_rq +@@ -3508,7 +3508,7 @@ check_preempt_tick(struct cfs_rq *cfs_rq ideal_runtime = sched_slice(cfs_rq, curr); delta_exec = curr->sum_exec_runtime - curr->prev_sum_exec_runtime; if (delta_exec > ideal_runtime) { @@ -365,7 +365,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> /* * The current task ran long enough, ensure it doesn't get * re-elected due to buddy favours. -@@ -3510,7 +3510,7 @@ check_preempt_tick(struct cfs_rq *cfs_rq +@@ -3532,7 +3532,7 @@ check_preempt_tick(struct cfs_rq *cfs_rq return; if (delta > ideal_runtime) @@ -374,7 +374,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> } static void -@@ -3655,7 +3655,7 @@ entity_tick(struct cfs_rq *cfs_rq, struc +@@ -3677,7 +3677,7 @@ entity_tick(struct cfs_rq *cfs_rq, struc * validating it and just reschedule. */ if (queued) { @@ -383,7 +383,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> return; } /* -@@ -3837,7 +3837,7 @@ static void __account_cfs_rq_runtime(str +@@ -3859,7 +3859,7 @@ static void __account_cfs_rq_runtime(str * hierarchy can be throttled */ if (!assign_cfs_rq_runtime(cfs_rq) && likely(cfs_rq->curr)) @@ -392,7 +392,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> } static __always_inline -@@ -4465,7 +4465,7 @@ static void hrtick_start_fair(struct rq +@@ -4487,7 +4487,7 @@ static void hrtick_start_fair(struct rq if (delta < 0) { if (rq->curr == p) @@ -401,7 +401,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> return; } hrtick_start(rq, delta); -@@ -5654,7 +5654,7 @@ static void check_preempt_wakeup(struct +@@ -5676,7 +5676,7 @@ static void check_preempt_wakeup(struct return; preempt: @@ -410,7 +410,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> /* * Only set the backward buddy when the current task is still * on the rq. This can happen when a wakeup gets interleaved -@@ -8380,7 +8380,7 @@ static void task_fork_fair(struct task_s +@@ -8402,7 +8402,7 @@ static void task_fork_fair(struct task_s * 'current' within the tree based on its new key value. */ swap(curr->vruntime, se->vruntime); @@ -419,7 +419,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> } se->vruntime -= cfs_rq->min_vruntime; -@@ -8404,7 +8404,7 @@ prio_changed_fair(struct rq *rq, struct +@@ -8426,7 +8426,7 @@ prio_changed_fair(struct rq *rq, struct */ if (rq->curr == p) { if (p->prio > oldprio) diff --git a/patches/series b/patches/series index b7dfbcafbea3cf..e3e7939aa1ce7d 100644 --- a/patches/series +++ b/patches/series @@ -1,8 +1,6 @@ ########################################################### # DELTA against a known Linus release ########################################################### -mm-filemap-don-t-plant-shadow-entries-without-radix-.patch -mm-filemap-fix-mapping-nrpages-double-accounting-in-.patch ############################################################ # UPSTREAM changes queued @@ -12,7 +10,6 @@ mm-filemap-fix-mapping-nrpages-double-accounting-in-.patch # UPSTREAM FIXES, patches pending ############################################################ timer-make-the-base-lock-raw.patch -jbd2-Fix-lockdep-annotation-in-add_transaction_credi.patch ############################################################ # Stuff broken upstream, patches submitted diff --git a/patches/tty-serial-8250-don-t-take-the-trylock-during-oops.patch b/patches/tty-serial-8250-don-t-take-the-trylock-during-oops.patch index 79e6e2003c1e3c..8db7ac2cad36e8 100644 --- a/patches/tty-serial-8250-don-t-take-the-trylock-during-oops.patch +++ b/patches/tty-serial-8250-don-t-take-the-trylock-during-oops.patch @@ -14,7 +14,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> --- a/drivers/tty/serial/8250/8250_port.c +++ b/drivers/tty/serial/8250/8250_port.c -@@ -3110,10 +3110,8 @@ void serial8250_console_write(struct uar +@@ -3109,10 +3109,8 @@ void serial8250_console_write(struct uar serial8250_rpm_get(up); |