Merge tag 'v5.10-rc6' into rdma.git for-next
For dependencies in following patches Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
This commit is contained in:
@@ -528,8 +528,8 @@ static int log_store(u32 caller_id, int facility, int level,
|
||||
if (dev_info)
|
||||
memcpy(&r.info->dev_info, dev_info, sizeof(r.info->dev_info));
|
||||
|
||||
/* insert message */
|
||||
if ((flags & LOG_CONT) || !(flags & LOG_NEWLINE))
|
||||
/* A message without a trailing newline can be continued. */
|
||||
if (!(flags & LOG_NEWLINE))
|
||||
prb_commit(&e);
|
||||
else
|
||||
prb_final_commit(&e);
|
||||
|
||||
@@ -882,8 +882,6 @@ static bool desc_reserve(struct printk_ringbuffer *rb, unsigned long *id_out)
|
||||
head_id = atomic_long_read(&desc_ring->head_id); /* LMM(desc_reserve:A) */
|
||||
|
||||
do {
|
||||
desc = to_desc(desc_ring, head_id);
|
||||
|
||||
id = DESC_ID(head_id + 1);
|
||||
id_prev_wrap = DESC_ID_PREV_WRAP(desc_ring, id);
|
||||
|
||||
|
||||
+27
-1
@@ -78,7 +78,7 @@ void __weak arch_cpu_idle_dead(void) { }
|
||||
void __weak arch_cpu_idle(void)
|
||||
{
|
||||
cpu_idle_force_poll = 1;
|
||||
local_irq_enable();
|
||||
raw_local_irq_enable();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -94,9 +94,35 @@ void __cpuidle default_idle_call(void)
|
||||
|
||||
trace_cpu_idle(1, smp_processor_id());
|
||||
stop_critical_timings();
|
||||
|
||||
/*
|
||||
* arch_cpu_idle() is supposed to enable IRQs, however
|
||||
* we can't do that because of RCU and tracing.
|
||||
*
|
||||
* Trace IRQs enable here, then switch off RCU, and have
|
||||
* arch_cpu_idle() use raw_local_irq_enable(). Note that
|
||||
* rcu_idle_enter() relies on lockdep IRQ state, so switch that
|
||||
* last -- this is very similar to the entry code.
|
||||
*/
|
||||
trace_hardirqs_on_prepare();
|
||||
lockdep_hardirqs_on_prepare(_THIS_IP_);
|
||||
rcu_idle_enter();
|
||||
lockdep_hardirqs_on(_THIS_IP_);
|
||||
|
||||
arch_cpu_idle();
|
||||
|
||||
/*
|
||||
* OK, so IRQs are enabled here, but RCU needs them disabled to
|
||||
* turn itself back on.. funny thing is that disabling IRQs
|
||||
* will cause tracing, which needs RCU. Jump through hoops to
|
||||
* make it 'work'.
|
||||
*/
|
||||
raw_local_irq_disable();
|
||||
lockdep_hardirqs_off(_THIS_IP_);
|
||||
rcu_idle_exit();
|
||||
lockdep_hardirqs_on(_THIS_IP_);
|
||||
raw_local_irq_enable();
|
||||
|
||||
start_critical_timings();
|
||||
trace_cpu_idle(PWR_EVENT_EXIT, smp_processor_id());
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user