summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastian Andrzej Siewior <bigeasy@linutronix.de>2016-10-31 14:45:15 +0100
committerSebastian Andrzej Siewior <bigeasy@linutronix.de>2016-10-31 14:45:15 +0100
commite15768118871bf62612c041632155ce0182203a5 (patch)
tree3ca90d2594a850c9b4d97870e858ff25b07f5fdc
parent3736188f60e006392918de3b181841ce49f5658d (diff)
download4.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.patch4
-rw-r--r--patches/dm-make-rt-aware.patch2
-rw-r--r--patches/fs-dcache-use-swait_queue-instead-of-waitqueue.patch2
-rw-r--r--patches/fs-nfs-turn-rmdir_sem-into-a-semaphore.patch4
-rw-r--r--patches/i915-bogus-warning-from-i915-when-running-on-PREEMPT.patch2
-rw-r--r--patches/ipc-sem-rework-semaphore-wakeups.patch8
-rw-r--r--patches/jbd2-Fix-lockdep-annotation-in-add_transaction_credi.patch64
-rw-r--r--patches/kgb-serial-hackaround.patch2
-rw-r--r--patches/localversion.patch2
-rw-r--r--patches/mm-filemap-don-t-plant-shadow-entries-without-radix-.patch185
-rw-r--r--patches/mm-filemap-fix-mapping-nrpages-double-accounting-in-.patch40
-rw-r--r--patches/preempt-lazy-support.patch16
-rw-r--r--patches/series3
-rw-r--r--patches/tty-serial-8250-don-t-take-the-trylock-during-oops.patch2
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);