kernel - Fix AHCI callout timer race
authorMatthew Dillon <dillon@apollo.backplane.com>
Fri, 20 Jan 2012 18:20:20 +0000 (10:20 -0800)
committerMatthew Dillon <dillon@apollo.backplane.com>
Fri, 20 Jan 2012 18:20:20 +0000 (10:20 -0800)
commitbb79834d4440c42ded824722460ae008a58ecf26
tree57bab7b068d37880fe5ea5f54aa13983d24df814
parent92ba8d2816b2b63145e71126056b9df58c08551e
kernel - Fix AHCI callout timer race

* callout_stop_sync() can block.  If this occurs a race can cause a
  CCB to be processed for completion twice.

* Add a serial number to detect this situation.

Reported-by: "G. Isenmann via Redmine"
sys/dev/disk/ahci/ahci.c
sys/dev/disk/ahci/atascsi.h