diff options
author | Sebastian Andrzej Siewior <bigeasy@linutronix.de> | 2020-02-28 15:38:15 +0100 |
---|---|---|
committer | Sebastian Andrzej Siewior <bigeasy@linutronix.de> | 2020-02-28 15:38:15 +0100 |
commit | 0b108d3e078f03311c28cbcbbc66b6b39ddb6a87 (patch) | |
tree | a30c6e03698374b2513af4b7b303afe651c520e1 | |
parent | e4fd35f5dc378c7bfcc3f0549589b61c6b23b694 (diff) | |
download | linux-rt-0b108d3e078f03311c28cbcbbc66b6b39ddb6a87.tar.gz |
[ANNOUNCE] v5.4.22-rt12v5.4.22-rt12-patches
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
-rw-r--r-- | patches/0006-jbd2-Make-state-lock-a-spinlock.patch | 20 | ||||
-rw-r--r-- | patches/0009-printk-remove-exclusive-console-hack.patch | 10 | ||||
-rw-r--r-- | patches/localversion.patch | 2 | ||||
-rw-r--r-- | patches/powerpc-pseries-iommu-Use-a-locallock-instead-local_ir.patch | 29 |
4 files changed, 31 insertions, 30 deletions
diff --git a/patches/0006-jbd2-Make-state-lock-a-spinlock.patch b/patches/0006-jbd2-Make-state-lock-a-spinlock.patch index 7980a2fde7d1..f34e9e906efa 100644 --- a/patches/0006-jbd2-Make-state-lock-a-spinlock.patch +++ b/patches/0006-jbd2-Make-state-lock-a-spinlock.patch @@ -72,7 +72,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> J_ASSERT_JH(jh, jh->b_transaction == commit_transaction); /* -@@ -1026,7 +1026,7 @@ void jbd2_journal_commit_transaction(jou +@@ -1030,7 +1030,7 @@ void jbd2_journal_commit_transaction(jou } JBUFFER_TRACE(jh, "refile or unfile buffer"); drop_ref = __jbd2_journal_refile_buffer(jh); @@ -117,7 +117,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> return do_escape | (done_copy_out << 1); } -@@ -2411,6 +2411,8 @@ static struct journal_head *journal_allo +@@ -2407,6 +2407,8 @@ static struct journal_head *journal_allo ret = kmem_cache_zalloc(jbd2_journal_head_cache, GFP_NOFS | __GFP_NOFAIL); } @@ -394,10 +394,10 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> return -EBUSY; } /* -@@ -2297,10 +2295,10 @@ static int journal_unmap_buffer(journal_ - set_buffer_freed(bh); +@@ -2299,10 +2297,10 @@ static int journal_unmap_buffer(journal_ if (journal->j_running_transaction && buffer_jbddirty(bh)) jh->b_next_transaction = journal->j_running_transaction; + jh->b_modified = 0; - jbd2_journal_put_journal_head(jh); spin_unlock(&journal->j_list_lock); - jbd_unlock_bh_state(bh); @@ -407,7 +407,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> return 0; } else { /* Good, the buffer belongs to the running transaction. -@@ -2324,10 +2322,10 @@ static int journal_unmap_buffer(journal_ +@@ -2326,10 +2324,10 @@ static int journal_unmap_buffer(journal_ * here. */ jh->b_modified = 0; @@ -420,7 +420,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> zap_buffer_unlocked: clear_buffer_dirty(bh); J_ASSERT_BH(bh, !buffer_jbddirty(bh)); -@@ -2414,7 +2412,7 @@ void __jbd2_journal_file_buffer(struct j +@@ -2416,7 +2414,7 @@ void __jbd2_journal_file_buffer(struct j int was_dirty = 0; struct buffer_head *bh = jh2bh(jh); @@ -429,7 +429,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> assert_spin_locked(&transaction->t_journal->j_list_lock); J_ASSERT_JH(jh, jh->b_jlist < BJ_Types); -@@ -2476,11 +2474,11 @@ void __jbd2_journal_file_buffer(struct j +@@ -2478,11 +2476,11 @@ void __jbd2_journal_file_buffer(struct j void jbd2_journal_file_buffer(struct journal_head *jh, transaction_t *transaction, int jlist) { @@ -443,7 +443,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> } /* -@@ -2490,7 +2488,7 @@ void jbd2_journal_file_buffer(struct jou +@@ -2492,7 +2490,7 @@ void jbd2_journal_file_buffer(struct jou * buffer on that transaction's metadata list. * * Called under j_list_lock @@ -452,7 +452,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> * * When this function returns true, there's no next transaction to refile to * and the caller has to drop jh reference through -@@ -2501,7 +2499,7 @@ bool __jbd2_journal_refile_buffer(struct +@@ -2503,7 +2501,7 @@ bool __jbd2_journal_refile_buffer(struct int was_dirty, jlist; struct buffer_head *bh = jh2bh(jh); @@ -461,7 +461,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> if (jh->b_transaction) assert_spin_locked(&jh->b_transaction->t_journal->j_list_lock); -@@ -2547,17 +2545,13 @@ bool __jbd2_journal_refile_buffer(struct +@@ -2549,17 +2547,13 @@ bool __jbd2_journal_refile_buffer(struct */ void jbd2_journal_refile_buffer(journal_t *journal, struct journal_head *jh) { diff --git a/patches/0009-printk-remove-exclusive-console-hack.patch b/patches/0009-printk-remove-exclusive-console-hack.patch index bb7249de8a4c..7369eb3e806f 100644 --- a/patches/0009-printk-remove-exclusive-console-hack.patch +++ b/patches/0009-printk-remove-exclusive-console-hack.patch @@ -70,10 +70,10 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> len += msg_print_text(msg, console_msg_format & MSG_FORMAT_SYSLOG, printk_time, text + len, sizeof(text) - len); -@@ -2811,17 +2796,6 @@ void register_console(struct console *ne +@@ -2809,17 +2794,6 @@ void register_console(struct console *ne + * for us. + */ logbuf_lock_irqsave(flags); - console_seq = syslog_seq; - console_idx = syslog_idx; - /* - * We're about to replay the log buffer. Only do this to the - * just-registered console to avoid excessive message spam to @@ -85,9 +85,9 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> - */ - exclusive_console = newcon; - exclusive_console_stop_seq = console_seq; + console_seq = syslog_seq; + console_idx = syslog_idx; logbuf_unlock_irqrestore(flags); - } - console_unlock(); @@ -2833,6 +2807,10 @@ void register_console(struct console *ne * boot consoles, real consoles, etc - this is to ensure that end * users know there might be something in the kernel's log buffer that diff --git a/patches/localversion.patch b/patches/localversion.patch index 58842b503a27..12bd473a33f5 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 @@ -+-rt11 ++-rt12 diff --git a/patches/powerpc-pseries-iommu-Use-a-locallock-instead-local_ir.patch b/patches/powerpc-pseries-iommu-Use-a-locallock-instead-local_ir.patch index be6aeb403347..fd3c23b74bc2 100644 --- a/patches/powerpc-pseries-iommu-Use-a-locallock-instead-local_ir.patch +++ b/patches/powerpc-pseries-iommu-Use-a-locallock-instead-local_ir.patch @@ -12,8 +12,8 @@ Use local_irq_save() instead of local_irq_disable(). Cc: stable-rt@vger.kernel.org Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> --- - arch/powerpc/platforms/pseries/iommu.c | 16 ++++++++++------ - 1 file changed, 10 insertions(+), 6 deletions(-) + arch/powerpc/platforms/pseries/iommu.c | 17 ++++++++++------- + 1 file changed, 10 insertions(+), 7 deletions(-) --- a/arch/powerpc/platforms/pseries/iommu.c +++ b/arch/powerpc/platforms/pseries/iommu.c @@ -25,7 +25,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> #include <asm/io.h> #include <asm/prom.h> #include <asm/rtas.h> -@@ -178,6 +179,7 @@ static int tce_build_pSeriesLP(struct io +@@ -177,6 +178,7 @@ static int tce_build_pSeriesLP(unsigned } static DEFINE_PER_CPU(__be64 *, tce_page); @@ -33,26 +33,27 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> static int tce_buildmulti_pSeriesLP(struct iommu_table *tbl, long tcenum, long npages, unsigned long uaddr, -@@ -198,7 +200,8 @@ static int tce_buildmulti_pSeriesLP(stru +@@ -198,8 +200,8 @@ static int tce_buildmulti_pSeriesLP(stru direction, attrs); } - local_irq_save(flags); /* to protect tcep and the page behind it */ +- + /* to protect tcep and the page behind it */ + local_lock_irqsave(tcp_page_lock, flags); - tcep = __this_cpu_read(tce_page); -@@ -209,7 +212,7 @@ static int tce_buildmulti_pSeriesLP(stru + /* This is safe to do since interrupts are off when we're called +@@ -209,7 +211,7 @@ static int tce_buildmulti_pSeriesLP(stru tcep = (__be64 *)__get_free_page(GFP_ATOMIC); /* If allocation fails, fall back to the loop implementation */ if (!tcep) { - local_irq_restore(flags); + local_unlock_irqrestore(tcp_page_lock, flags); - return tce_build_pSeriesLP(tbl, tcenum, npages, uaddr, - direction, attrs); - } -@@ -243,7 +246,7 @@ static int tce_buildmulti_pSeriesLP(stru + return tce_build_pSeriesLP(tbl->it_index, tcenum, + tbl->it_page_shift, + npages, uaddr, direction, attrs); +@@ -244,7 +246,7 @@ static int tce_buildmulti_pSeriesLP(stru tcenum += limit; } while (npages > 0 && !rc); @@ -61,9 +62,9 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> if (unlikely(rc == H_NOT_ENOUGH_RESOURCES)) { ret = (int)rc; -@@ -401,13 +404,14 @@ static int tce_setrange_multi_pSeriesLP( - u64 rc = 0; - long l, limit; +@@ -415,13 +417,14 @@ static int tce_setrange_multi_pSeriesLP( + DMA_BIDIRECTIONAL, 0); + } - local_irq_disable(); /* to protect tcep and the page behind it */ + /* to protect tcep and the page behind it */ @@ -78,7 +79,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> return -ENOMEM; } __this_cpu_write(tce_page, tcep); -@@ -453,7 +457,7 @@ static int tce_setrange_multi_pSeriesLP( +@@ -467,7 +470,7 @@ static int tce_setrange_multi_pSeriesLP( /* error cleanup: caller will clear whole range */ |