14 May, 2016

1 commit

  • When performing a suspend operation, the kernel brings all of the
    non-boot CPUs offline, calling the hot plug notifiers with the flag,
    CPU_TASKS_FROZEN, set in the action code. Similarly, during resume,
    the CPUs are brought back online, but again the notifiers have the
    FROZEN flag set.

    While some very few drivers really need to treat suspend/resume
    specially, this driver unintentionally ignores the notifications.

    This patch changes the driver to disable the watchdog interrupt
    whenever the CPU goes offline, and to enable it whenever the CPU goes
    back online. As a result, the suspended state is no longer a special
    case that leaves the watchdog active.

    Signed-off-by: Richard Cochran
    Cc: linux-watchdog@vger.kernel.org
    Signed-off-by: Guenter Roeck
    Signed-off-by: Wim Van Sebroeck

    Richard Cochran
     

22 Apr, 2015

3 commits


02 Aug, 2014

1 commit

  • If CONFIG_HOTPLUG_CPU is set, the driver thinks bootloader entry
    address is configured and we should jump there. However, this is
    not necessarily true if the kernel is booted on a system
    with older/incompatible bootloader.

    Add dynamic checks for the bootloader entry address.

    Signed-off-by: Aaro Koskinen
    Cc: linux-watchdog@vger.kernel.org
    Cc: linux-mips@linux-mips.org
    Cc: David Daney
    Cc: linux-watchdog@vger.kernel.org
    Patchwork: https://patchwork.linux-mips.org/patch/7201/
    Signed-off-by: Ralf Baechle

    Aaro Koskinen
     

20 Mar, 2014

1 commit

  • Subsystems that want to register CPU hotplug callbacks, as well as perform
    initialization for the CPUs that are already online, often do it as shown
    below:

    get_online_cpus();

    for_each_online_cpu(cpu)
    init_cpu(cpu);

    register_cpu_notifier(&foobar_cpu_notifier);

    put_online_cpus();

    This is wrong, since it is prone to ABBA deadlocks involving the
    cpu_add_remove_lock and the cpu_hotplug.lock (when running concurrently
    with CPU hotplug operations).

    Instead, the correct and race-free way of performing the callback
    registration is:

    cpu_notifier_register_begin();

    for_each_online_cpu(cpu)
    init_cpu(cpu);

    /* Note the use of the double underscored version of the API */
    __register_cpu_notifier(&foobar_cpu_notifier);

    cpu_notifier_register_done();

    Fix the watchdog code in octeon by using this latter form of callback
    registration.

    Cc: Wim Van Sebroeck
    Cc: Ingo Molnar
    Signed-off-by: Srivatsa S. Bhat
    Signed-off-by: Rafael J. Wysocki

    Srivatsa S. Bhat
     

28 Mar, 2012

2 commits


06 Nov, 2011

1 commit

  • This is to exclude it from force threading to allow RT patch set to work.

    The watchdog timers are per-CPU and the addresses of register that reset
    the timer are calculated based on the current CPU. Therefore we cannot
    allow it to run on a thread on a different CPU. Also we only do a
    single register write, which is much faster than scheduling a handler
    thread.

    And while on this line remove IRQF_DISABLED as this flag is a NOP.

    Signed-off-by: Venkat Subbiah
    Acked-by: David Daney
    Signed-off-by: Wim Van Sebroeck

    Venkat Subbiah
     

30 Oct, 2010

1 commit

  • The creation of the I/O clock domain requires some adjustments. Since
    the watchdog counters are clocked by the I/O clock, use its rate for
    timing calculations.

    Signed-off-by: David Daney
    Cc: Wim Van Sebroeck
    Cc: linux-watchdog@vger.kernel.org
    Patchwork: http://patchwork.linux-mips.org/patch/1659/
    Acked-by: Wim Van Sebroeck
    Signed-off-by: Ralf Baechle

    David Daney
     

07 Oct, 2010

1 commit

  • Add missing #inclusions of to a whole bunch of files that should
    really include it. Note that this can replace #inclusions of .

    This is required for the patch to sort out irqflags handling function naming to
    compile on MIPS.

    The problem is that these files require access to things like setup_irq() -
    which isn't available by #including

    Signed-off-by: David Howells
    Acked-by: Ralf Baechle

    David Howells
     

05 Aug, 2010

1 commit

  • The OCTEON is a MIPS64 based SOC family with an on chip watchdog unit.

    The driver is split into two source files one for the C code and one
    for assembly. Assembly is needed to handle the NMI and then print the
    machine state before the reboot is triggered.

    Signed-off-by: David Daney
    Cc: Wim Van Sebroeck
    Cc: Andrew Morton
    Cc: Russell King
    Cc: Tony Lindgren
    Cc: Marc Zyngier
    Cc: Thierry Reding
    Cc: Sam Ravnborg
    To: linux-mips@linux-mips.org
    Cc: linux-kernel@vger.kernel.org,
    Patchwork: https://patchwork.linux-mips.org/patch/1503/
    Signed-off-by: Wim Van Sebroeck
    Signed-off-by: Ralf Baechle

    create mode 100644 drivers/watchdog/octeon-wdt-main.c
    create mode 100644 drivers/watchdog/octeon-wdt-nmi.S

    David Daney