Subject: [PATCH v2 1/6] wdt: sunxi: Move restart code to the watchdog driver

From: [email-masked] (Guenter Roeck)
Date: Mon, 23 Jun 2014 08:40:01 -0700

On 06/23/2014 08:35 AM, Arnd Bergmann wrote:
> On Monday 23 June 2014 08:16:18 Guenter Roeck wrote:
>>> Moved to where?
>>>
>>> I certainly don't want it in the platform directories, and for arm64 we
>>> intentionally don't have a place to put this stuff.
>>>
>>
>> I have no idea, but setting the arm reset function pointer from a watchdog
>> driver doesn't seem like a good idea either. The arm code _does_ provide
>> and expect platform code to set the reset function, so having it in the arm
>> code would at least make more sense than expecting some unrelated driver
>> code to set it - especially since it is inherently racy [1].
>
> I don't think the race is inherent. We could solve the multiple registration
> problem and the unload problem using a notifier chain. If there are actually
> cases where we expect to see multiple reboot functions to be present in the
> system, we could go one step further and have a priority associated with
> it, so we try the best function first and fall back to soft_restart()
> if everything else fails.
>

You mean something like a restart notifier, which would be called from
architecture code (and replace the arm reset function pointer) ?
Yes, that sounds like a possible solution.

Guenter