Dear RT Folks, I'm pleased to announce the 3.2.19-rt31 stable release. You can get this release via the git tree at: git://git.kernel.org/pub/scm/linux/kernel/git/rt/linux-stable-rt.git Head SHA1: 9ff5baa988e758044a62a05b1f668b5ff556517c Or to build 3.2.19-rt31 directly, the following patches should be applied: http://www.kernel.org/pub/linux/kernel/v3.x/linux-3.2.tar.xz http://www.kernel.org/pub/linux/kernel/v3.x/patch-3.2.19.xz http://www.kernel.org/pub/linux/kernel/projects/rt/3.2/patch-3.2.19-rt31.patch.xz You can also build from 3.2.19-rt30 by applying the incremental patch: http://www.kernel.org/pub/linux/kernel/projects/rt/3.2/incr/patch-3.2.19-rt30-rt31.patch.xz Enjoy, -- Steve Changes from 3.2.19-rt30: --- John Kacur (1): scsi: qla2xxx: Use local_irq_save_nort() in qla2x00_poll Priyanka Jain (1): net,RT:REmove preemption disabling in netif_rx() Steven Rostedt (1): Linux 3.2.19-rt31 Thomas Gleixner (1): mips-remove-smp-reserve-lock.patch ---- arch/mips/cavium-octeon/smp.c | 6 ------ drivers/scsi/qla2xxx/qla_inline.h | 4 ++-- localversion-rt | 2 +- net/core/dev.c | 8 ++++---- 4 files changed, 7 insertions(+), 13 deletions(-) --------------------------- diff --git a/arch/mips/cavium-octeon/smp.c b/arch/mips/cavium-octeon/smp.c index efcfff4..86fce15 100644 --- a/arch/mips/cavium-octeon/smp.c +++ b/arch/mips/cavium-octeon/smp.c @@ -257,8 +257,6 @@ DEFINE_PER_CPU(int, cpu_state); extern void fixup_irqs(void); -static DEFINE_SPINLOCK(smp_reserve_lock); - static int octeon_cpu_disable(void) { unsigned int cpu = smp_processor_id(); @@ -266,8 +264,6 @@ static int octeon_cpu_disable(void) if (cpu == 0) return -EBUSY; - spin_lock(&smp_reserve_lock); - cpu_clear(cpu, cpu_online_map); cpu_clear(cpu, cpu_callin_map); local_irq_disable(); @@ -277,8 +273,6 @@ static int octeon_cpu_disable(void) flush_cache_all(); local_flush_tlb_all(); - spin_unlock(&smp_reserve_lock); - return 0; } diff --git a/drivers/scsi/qla2xxx/qla_inline.h b/drivers/scsi/qla2xxx/qla_inline.h index 9902834..6d01db6 100644 --- a/drivers/scsi/qla2xxx/qla_inline.h +++ b/drivers/scsi/qla2xxx/qla_inline.h @@ -36,12 +36,12 @@ qla2x00_poll(struct rsp_que *rsp) { unsigned long flags; struct qla_hw_data *ha = rsp->hw; - local_irq_save(flags); + local_irq_save_nort(flags); if (IS_QLA82XX(ha)) qla82xx_poll(0, rsp); else ha->isp_ops->intr_handler(0, rsp); - local_irq_restore(flags); + local_irq_restore_nort(flags); } static inline uint8_t * diff --git a/localversion-rt b/localversion-rt index b72862e..a68b433 100644 --- a/localversion-rt +++ b/localversion-rt @@ -1 +1 @@ --rt30 +-rt31 diff --git a/net/core/dev.c b/net/core/dev.c index 811100d..578a74d 100644 --- a/net/core/dev.c +++ b/net/core/dev.c @@ -3030,7 +3030,7 @@ int netif_rx(struct sk_buff *skb) struct rps_dev_flow voidflow, *rflow = &voidflow; int cpu; - preempt_disable(); + migrate_disable(); rcu_read_lock(); cpu = get_rps_cpu(skb->dev, skb, &rflow); @@ -3040,13 +3040,13 @@ int netif_rx(struct sk_buff *skb) ret = enqueue_to_backlog(skb, cpu, &rflow->last_qtail); rcu_read_unlock(); - preempt_enable(); + migrate_enable(); } #else { unsigned int qtail; - ret = enqueue_to_backlog(skb, get_cpu(), &qtail); - put_cpu(); + ret = enqueue_to_backlog(skb, get_cpu_light(), &qtail); + put_cpu_light(); } #endif return ret;
Attachment:
signature.asc
Description: This is a digitally signed message part