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