Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 75553
b: refs/heads/master
c: e934dd7
h: refs/heads/master
i:
  75551: 4f4d086
v: v3
  • Loading branch information
Jay Vosburgh authored and Jeff Garzik committed Jan 18, 2008
1 parent eaa1ca4 commit 25187e7
Show file tree
Hide file tree
Showing 6 changed files with 34 additions and 31 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: c9daa2722a3f1967e3e9750fd4cb6a7352a3cd63
refs/heads/master: e934dd7862e7f613b2ce9730d548a0a70913c8f7
38 changes: 17 additions & 21 deletions trunk/Documentation/watchdog/watchdog-api.txt
Original file line number Diff line number Diff line change
Expand Up @@ -42,27 +42,23 @@ like this source file: see Documentation/watchdog/src/watchdog-simple.c
A more advanced driver could for example check that a HTTP server is
still responding before doing the write call to ping the watchdog.

When the device is closed, the watchdog is disabled, unless the "Magic
Close" feature is supported (see below). This is not always such a
good idea, since if there is a bug in the watchdog daemon and it
crashes the system will not reboot. Because of this, some of the
drivers support the configuration option "Disable watchdog shutdown on
close", CONFIG_WATCHDOG_NOWAYOUT. If it is set to Y when compiling
the kernel, there is no way of disabling the watchdog once it has been
started. So, if the watchdog daemon crashes, the system will reboot
after the timeout has passed. Watchdog devices also usually support
the nowayout module parameter so that this option can be controlled at
runtime.

Magic Close feature:

If a driver supports "Magic Close", the driver will not disable the
watchdog unless a specific magic character 'V' has been sent to
/dev/watchdog just before closing the file. If the userspace daemon
closes the file without sending this special character, the driver
will assume that the daemon (and userspace in general) died, and will
stop pinging the watchdog without disabling it first. This will then
cause a reboot if the watchdog is not re-opened in sufficient time.
When the device is closed, the watchdog is disabled. This is not
always such a good idea, since if there is a bug in the watchdog
daemon and it crashes the system will not reboot. Because of this,
some of the drivers support the configuration option "Disable watchdog
shutdown on close", CONFIG_WATCHDOG_NOWAYOUT. If it is set to Y when
compiling the kernel, there is no way of disabling the watchdog once
it has been started. So, if the watchdog daemon crashes, the system
will reboot after the timeout has passed. Watchdog devices also usually
support the nowayout module parameter so that this option can be controlled
at runtime.

Drivers will not disable the watchdog, unless a specific magic character 'V'
has been sent /dev/watchdog just before closing the file. If the userspace
daemon closes the file without sending this special character, the driver
will assume that the daemon (and userspace in general) died, and will stop
pinging the watchdog without disabling it first. This will then cause a
reboot if the watchdog is not re-opened in sufficient time.

The ioctl API:

Expand Down
2 changes: 1 addition & 1 deletion trunk/arch/x86/oprofile/nmi_int.c
Original file line number Diff line number Diff line change
Expand Up @@ -380,7 +380,7 @@ static int __init ppro_init(char ** cpu_type)

if (cpu_model == 14)
*cpu_type = "i386/core";
else if (cpu_model == 15 || cpu_model == 23)
else if (cpu_model == 15)
*cpu_type = "i386/core_2";
else if (cpu_model > 0xd)
return 0;
Expand Down
4 changes: 2 additions & 2 deletions trunk/drivers/lguest/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ config LGUEST
tristate "Linux hypervisor example code"
depends on X86_32 && EXPERIMENTAL && !X86_PAE && FUTEX && !(X86_VISWS || X86_VOYAGER)
select HVC_DRIVER
select LGUEST_GUEST
---help---
This is a very simple module which allows you to run
multiple instances of the same Linux kernel, using the
Expand All @@ -16,4 +15,5 @@ config LGUEST_GUEST
bool
help
The guest needs code built-in, even if the host has lguest
support as a module.
support as a module. The drivers are tiny, so we build them
in too.
15 changes: 10 additions & 5 deletions trunk/drivers/net/bonding/bond_sysfs.c
Original file line number Diff line number Diff line change
Expand Up @@ -1075,7 +1075,10 @@ static ssize_t bonding_store_primary(struct device *d,
struct slave *slave;
struct bonding *bond = to_bond(d);

write_lock_bh(&bond->lock);
rtnl_lock();
read_lock(&bond->lock);
write_lock_bh(&bond->curr_slave_lock);

if (!USES_PRIMARY(bond->params.mode)) {
printk(KERN_INFO DRV_NAME
": %s: Unable to set primary slave; %s is in mode %d\n",
Expand Down Expand Up @@ -1109,8 +1112,8 @@ static ssize_t bonding_store_primary(struct device *d,
}
}
out:
write_unlock_bh(&bond->lock);

write_unlock_bh(&bond->curr_slave_lock);
read_unlock(&bond->lock);
rtnl_unlock();

return count;
Expand Down Expand Up @@ -1190,7 +1193,8 @@ static ssize_t bonding_store_active_slave(struct device *d,
struct bonding *bond = to_bond(d);

rtnl_lock();
write_lock_bh(&bond->lock);
read_lock(&bond->lock);
write_lock_bh(&bond->curr_slave_lock);

if (!USES_PRIMARY(bond->params.mode)) {
printk(KERN_INFO DRV_NAME
Expand Down Expand Up @@ -1247,7 +1251,8 @@ static ssize_t bonding_store_active_slave(struct device *d,
}
}
out:
write_unlock_bh(&bond->lock);
write_unlock_bh(&bond->curr_slave_lock);
read_unlock(&bond->lock);
rtnl_unlock();

return count;
Expand Down
4 changes: 3 additions & 1 deletion trunk/drivers/watchdog/w83697hf_wdt.c
Original file line number Diff line number Diff line change
Expand Up @@ -382,8 +382,10 @@ wdt_init(void)
/* we will autodetect the W83697HF/HG watchdog */
for (i = 0; ((!found) && (w83697hf_ioports[i] != 0)); i++) {
wdt_io = w83697hf_ioports[i];
if (!w83697hf_check_wdt())
if (!w83697hf_check_wdt()) {
found++;
break;
}
}
} else {
if (!w83697hf_check_wdt())
Expand Down

0 comments on commit 25187e7

Please sign in to comment.