watchdog_dev is not smp safe?!

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

While working on converting my sch56xx watchdog driver to watchdog_dev,
I noticed that watchdog_dev.c does not do any locking.

At a first look this may seem ok, since only 1 open is allowed, but
a process with /dev/watchdog open could use threads or fork and
that way still make multiple write / ioctl calls at the same time.

This causes 2 potential problems:
1) watchdog_start / open do an unlocked test_n_set / test_n_clear,
   if these 2 race, the watchdog could be stopped while the active
   bit indicates it is running or visa versa.

2) Most watchdog_dev drivers probably assume that only one
   watchdog-op will get called at a time, this is not necessary
   true atm


Notice that 2. is fixed by my "watchdog_dev: Add support for dynamically
allocated watchdog_device structs" patch which is still pending review.

Changing that patch to also fix 1. is quite easy. But before I put
more work into that patch I would first like some feedback on it ...

Regards,

Hans
--
To unsubscribe from this list: send the line "unsubscribe linux-watchdog" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux