Merge tag 'v3.10.99' into update
This is the 3.10.99 stable release
This commit is contained in:
+3
-3
@@ -1229,6 +1229,7 @@ static struct irqaction *__free_irq(unsigned int irq, void *dev_id)
|
||||
if (!desc)
|
||||
return NULL;
|
||||
|
||||
chip_bus_lock(desc);
|
||||
raw_spin_lock_irqsave(&desc->lock, flags);
|
||||
|
||||
/*
|
||||
@@ -1242,7 +1243,7 @@ static struct irqaction *__free_irq(unsigned int irq, void *dev_id)
|
||||
if (!action) {
|
||||
WARN(1, "Trying to free already-free IRQ %d\n", irq);
|
||||
raw_spin_unlock_irqrestore(&desc->lock, flags);
|
||||
|
||||
chip_bus_sync_unlock(desc);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@@ -1265,6 +1266,7 @@ static struct irqaction *__free_irq(unsigned int irq, void *dev_id)
|
||||
#endif
|
||||
|
||||
raw_spin_unlock_irqrestore(&desc->lock, flags);
|
||||
chip_bus_sync_unlock(desc);
|
||||
|
||||
unregister_handler_proc(irq, action);
|
||||
|
||||
@@ -1338,9 +1340,7 @@ void free_irq(unsigned int irq, void *dev_id)
|
||||
desc->affinity_notify = NULL;
|
||||
#endif
|
||||
|
||||
chip_bus_lock(desc);
|
||||
kfree(__free_irq(irq, dev_id));
|
||||
chip_bus_sync_unlock(desc);
|
||||
}
|
||||
EXPORT_SYMBOL(free_irq);
|
||||
|
||||
|
||||
+3
-2
@@ -961,9 +961,10 @@ struct resource * __request_region(struct resource *parent,
|
||||
if (!conflict)
|
||||
break;
|
||||
if (conflict != parent) {
|
||||
parent = conflict;
|
||||
if (!(conflict->flags & IORESOURCE_BUSY))
|
||||
if (!(conflict->flags & IORESOURCE_BUSY)) {
|
||||
parent = conflict;
|
||||
continue;
|
||||
}
|
||||
}
|
||||
if (conflict->flags & flags & IORESOURCE_MUXED) {
|
||||
add_wait_queue(&muxed_resource_wait, &wait);
|
||||
|
||||
@@ -1728,7 +1728,6 @@ out:
|
||||
*/
|
||||
int wake_up_process(struct task_struct *p)
|
||||
{
|
||||
WARN_ON(task_is_stopped_or_traced(p));
|
||||
return try_to_wake_up(p, TASK_NORMAL, 0);
|
||||
}
|
||||
EXPORT_SYMBOL(wake_up_process);
|
||||
|
||||
@@ -69,10 +69,10 @@ static ssize_t posix_clock_read(struct file *fp, char __user *buf,
|
||||
static unsigned int posix_clock_poll(struct file *fp, poll_table *wait)
|
||||
{
|
||||
struct posix_clock *clk = get_posix_clock(fp);
|
||||
int result = 0;
|
||||
unsigned int result = 0;
|
||||
|
||||
if (!clk)
|
||||
return -ENODEV;
|
||||
return POLLERR;
|
||||
|
||||
if (clk->ops.poll)
|
||||
result = clk->ops.poll(clk, fp, wait);
|
||||
|
||||
@@ -1976,12 +1976,6 @@ rb_set_commit_to_write(struct ring_buffer_per_cpu *cpu_buffer)
|
||||
goto again;
|
||||
}
|
||||
|
||||
static void rb_reset_reader_page(struct ring_buffer_per_cpu *cpu_buffer)
|
||||
{
|
||||
cpu_buffer->read_stamp = cpu_buffer->reader_page->page->time_stamp;
|
||||
cpu_buffer->reader_page->read = 0;
|
||||
}
|
||||
|
||||
static void rb_inc_iter(struct ring_buffer_iter *iter)
|
||||
{
|
||||
struct ring_buffer_per_cpu *cpu_buffer = iter->cpu_buffer;
|
||||
@@ -3619,7 +3613,7 @@ rb_get_reader_page(struct ring_buffer_per_cpu *cpu_buffer)
|
||||
|
||||
/* Finally update the reader page to the new head */
|
||||
cpu_buffer->reader_page = reader;
|
||||
rb_reset_reader_page(cpu_buffer);
|
||||
cpu_buffer->reader_page->read = 0;
|
||||
|
||||
if (overwrite != cpu_buffer->last_overrun) {
|
||||
cpu_buffer->lost_events = overwrite - cpu_buffer->last_overrun;
|
||||
@@ -3629,6 +3623,10 @@ rb_get_reader_page(struct ring_buffer_per_cpu *cpu_buffer)
|
||||
goto again;
|
||||
|
||||
out:
|
||||
/* Update the read_stamp on the first event */
|
||||
if (reader && reader->read == 0)
|
||||
cpu_buffer->read_stamp = reader->page->time_stamp;
|
||||
|
||||
arch_spin_unlock(&cpu_buffer->lock);
|
||||
local_irq_restore(flags);
|
||||
|
||||
|
||||
@@ -607,7 +607,8 @@ t_next(struct seq_file *m, void *v, loff_t *pos)
|
||||
* The ftrace subsystem is for showing formats only.
|
||||
* They can not be enabled or disabled via the event files.
|
||||
*/
|
||||
if (call->class && call->class->reg)
|
||||
if (call->class && call->class->reg &&
|
||||
!(call->flags & TRACE_EVENT_FL_IGNORE_ENABLE))
|
||||
return file;
|
||||
}
|
||||
|
||||
|
||||
+4
-4
@@ -1466,13 +1466,13 @@ static void __queue_delayed_work(int cpu, struct workqueue_struct *wq,
|
||||
timer_stats_timer_set_start_info(&dwork->timer);
|
||||
|
||||
dwork->wq = wq;
|
||||
/* timer isn't guaranteed to run in this cpu, record earlier */
|
||||
if (cpu == WORK_CPU_UNBOUND)
|
||||
cpu = raw_smp_processor_id();
|
||||
dwork->cpu = cpu;
|
||||
timer->expires = jiffies + delay;
|
||||
|
||||
add_timer_on(timer, cpu);
|
||||
if (unlikely(cpu != WORK_CPU_UNBOUND))
|
||||
add_timer_on(timer, cpu);
|
||||
else
|
||||
add_timer(timer);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user