Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0ca9caae authored by Linus Torvalds's avatar Linus Torvalds
Browse files
* 'for-linus' of git://git390.osdl.marist.edu/pub/scm/linux-2.6:
  [S390] stacktrace bug.
  [S390] cio: remove casts from/to (void *).
  [S390] cio: Remove grace period for vary off chpid.
  [S390] cio: Use ccw_dev_id and subchannel_id in ccw_device_private
  [S390] monwriter kzalloc size.
  [S390] cio: add missing KERN_INFO printk header.
  [S390] irq change improvements.
parents 6bf1f75b 75e9de18
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -109,7 +109,7 @@ static LIST_HEAD(appldata_ops_list);
 *
 * schedule work and reschedule timer
 */
static void appldata_timer_function(unsigned long data, struct pt_regs *regs)
static void appldata_timer_function(unsigned long data)
{
	P_DEBUG("   -= Timer =-\n");
	P_DEBUG("CPU: %i, expire_count: %i\n", smp_processor_id(),
+2 −2
Original line number Diff line number Diff line
@@ -117,8 +117,8 @@ void do_extint(struct pt_regs *regs, unsigned short code)
        int index;
	struct pt_regs *old_regs;

	irq_enter();
	old_regs = set_irq_regs(regs);
	irq_enter();
	asm volatile ("mc 0,0");
	if (S390_lowcore.int_clock >= S390_lowcore.jiffy_timer)
		/**
@@ -134,8 +134,8 @@ void do_extint(struct pt_regs *regs, unsigned short code)
				p->handler(code);
		}
	}
	set_irq_regs(old_regs);
	irq_exit();
	set_irq_regs(old_regs);
}

EXPORT_SYMBOL(register_external_interrupt);
+8 −9
Original line number Diff line number Diff line
@@ -62,27 +62,26 @@ static inline unsigned long save_context_stack(struct stack_trace *trace,
void save_stack_trace(struct stack_trace *trace, struct task_struct *task)
{
	register unsigned long sp asm ("15");
	unsigned long orig_sp;
	unsigned long orig_sp, new_sp;

	sp &= PSW_ADDR_INSN;
	orig_sp = sp;
	orig_sp = sp & PSW_ADDR_INSN;

	sp = save_context_stack(trace, &trace->skip, sp,
	new_sp = save_context_stack(trace, &trace->skip, orig_sp,
				S390_lowcore.panic_stack - PAGE_SIZE,
				S390_lowcore.panic_stack);
	if ((sp != orig_sp) && !trace->all_contexts)
	if ((new_sp != orig_sp) && !trace->all_contexts)
		return;
	sp = save_context_stack(trace, &trace->skip, sp,
	new_sp = save_context_stack(trace, &trace->skip, new_sp,
				S390_lowcore.async_stack - ASYNC_SIZE,
				S390_lowcore.async_stack);
	if ((sp != orig_sp) && !trace->all_contexts)
	if ((new_sp != orig_sp) && !trace->all_contexts)
		return;
	if (task)
		save_context_stack(trace, &trace->skip, sp,
		save_context_stack(trace, &trace->skip, new_sp,
				   (unsigned long) task_stack_page(task),
				   (unsigned long) task_stack_page(task) + THREAD_SIZE);
	else
		save_context_stack(trace, &trace->skip, sp,
		save_context_stack(trace, &trace->skip, new_sp,
				   S390_lowcore.thread_info,
				   S390_lowcore.thread_info + THREAD_SIZE);
	return;
+4 −4
Original line number Diff line number Diff line
@@ -209,11 +209,11 @@ static void list_add_sorted(struct vtimer_list *timer, struct list_head *head)
 * Do the callback functions of expired vtimer events.
 * Called from within the interrupt handler.
 */
static void do_callbacks(struct list_head *cb_list, struct pt_regs *regs)
static void do_callbacks(struct list_head *cb_list)
{
	struct vtimer_queue *vt_list;
	struct vtimer_list *event, *tmp;
	void (*fn)(unsigned long, struct pt_regs*);
	void (*fn)(unsigned long);
	unsigned long data;

	if (list_empty(cb_list))
@@ -224,7 +224,7 @@ static void do_callbacks(struct list_head *cb_list, struct pt_regs *regs)
	list_for_each_entry_safe(event, tmp, cb_list, entry) {
		fn = event->function;
		data = event->data;
		fn(data, regs);
		fn(data);

		if (!event->interval)
			/* delete one shot timer */
@@ -275,7 +275,7 @@ static void do_cpu_timer_interrupt(__u16 error_code)
		list_move_tail(&event->entry, &cb_list);
	}
	spin_unlock(&vt_list->lock);
	do_callbacks(&cb_list, get_irq_regs());
	do_callbacks(&cb_list);

	/* next event is first in list */
	spin_lock(&vt_list->lock);
+1 −1
Original line number Diff line number Diff line
@@ -110,7 +110,7 @@ static int monwrite_new_hdr(struct mon_private *monpriv)
		monbuf = kzalloc(sizeof(struct mon_buf), GFP_KERNEL);
		if (!monbuf)
			return -ENOMEM;
		monbuf->data = kzalloc(monbuf->hdr.datalen,
		monbuf->data = kzalloc(monhdr->datalen,
				       GFP_KERNEL | GFP_DMA);
		if (!monbuf->data) {
			kfree(monbuf);
Loading