diff options
author | Arthur Jones <arthur.jones@qlogic.com> | 2007-09-14 12:22:49 -0700 |
---|---|---|
committer | Roland Dreier <rolandd@cisco.com> | 2007-10-09 20:56:23 -0700 |
commit | 70c51da2c4f84317bb13a2b564600afdcebd686f (patch) | |
tree | d7c39e3efaf6c90482cfe9d0e85012c3c9c511a7 /mm | |
parent | 542869a17eee2edf389273f40f757aa4e662b3da (diff) | |
download | op-kernel-dev-70c51da2c4f84317bb13a2b564600afdcebd686f.zip op-kernel-dev-70c51da2c4f84317bb13a2b564600afdcebd686f.tar.gz |
IB/ipath: Use counters in ipath_poll and cleanup interrupts in ipath_close
ipath_poll() suffered from a couple subtle bugs. Under the right
conditions we could leave recv interrupts enabled on an ipath user
context on close, thereby taking potentially unwanted interrupts on the
next open -- this is fixed by unconditionally turning off recv
interrupts on close. Also, we now use counters rather than set/clear
bits which allows us to make sure we catch all interrupts at the cost of
changing the semantics slightly (it's now give me all events since the
last time I called poll() rather than give me all events since I called
_this_ poll routine). We also added some memory barriers which may help
ensure we get all notifications in a timely manner.
Signed-off-by: Arthur Jones <arthur.jones@qlogic.com>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
Diffstat (limited to 'mm')
0 files changed, 0 insertions, 0 deletions