Re: [PATCH 6/6] avr32: deal with double restarts

From: Hans-Christian Egtvedt
Date: Thu Jan 13 2011 - 15:28:59 EST


On Wed, 2010-12-15 at 10:39 +0000, Al Viro wrote:

Hi Al,

> a) take handling of reschedule, signals and keychains into a new helper -
> work_pending(). All looping is done there now; asm glue calls that if
> we have anything for it to do.
>
> b) do_signal() gets explicit "may restart" flag as an argument; after
> the first call during that loop it gets unconditional 0.
>
> c) sigreturn() sets a thread flag - TIF_NORESTART. It is included into
> the "work_pending() has something to do" mask. work_pending() clears
> it, clearing its may_restart flag if it had done so.

Testing this patch series on top of the latest kernel release it bombs
out quite early with a

Bus error at physical address 0x6c6110e4 (read access)
DTLB dump:
(...)

Do you have any additional information I might have overlooked? On what
hardware and how have you tested this?

<snipp patch>

> -asmlinkage void do_notify_resume(struct pt_regs *regs, struct thread_info *ti)
> +asmlinkage int work_pending(struct pt_regs *regs, struct thread_info *ti, int may_restart)

This line could be broken into two lines be within width limits, and in
addition the work_pending name conflicts with the work_pending macro in
workqueue.h.

<snipp>

--
Hans-Christian Egtvedt

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/