]> rtime.felk.cvut.cz Git - zynq/linux.git/blobdiff - block/blk-softirq.c
Apply preempt_rt patch-4.9-rt1.patch.xz
[zynq/linux.git] / block / blk-softirq.c
index 96631e6a22b9628f124eb7d0b106261d43cfb21f..c40342643ca00adbaf509b6c841006532c1ac6de 100644 (file)
@@ -18,7 +18,7 @@ static DEFINE_PER_CPU(struct list_head, blk_cpu_done);
  * Softirq action handler - move entries to local list and loop over them
  * while passing them to the queue registered handler.
  */
-static void blk_done_softirq(struct softirq_action *h)
+static __latent_entropy void blk_done_softirq(struct softirq_action *h)
 {
        struct list_head *cpu_list, local_list;
 
@@ -51,6 +51,7 @@ static void trigger_softirq(void *data)
                raise_softirq_irqoff(BLOCK_SOFTIRQ);
 
        local_irq_restore(flags);
+       preempt_check_resched_rt();
 }
 
 /*
@@ -89,6 +90,7 @@ static int blk_softirq_cpu_dead(unsigned int cpu)
                         this_cpu_ptr(&blk_cpu_done));
        raise_softirq_irqoff(BLOCK_SOFTIRQ);
        local_irq_enable();
+       preempt_check_resched_rt();
 
        return 0;
 }
@@ -141,6 +143,7 @@ do_local:
                goto do_local;
 
        local_irq_restore(flags);
+       preempt_check_resched_rt();
 }
 
 /**