Sean Hefty [Mon, 21 Jun 2010 19:07:58 +0000 (12:07 -0700)]
complib/timer: fix race accessing timer fields
The timeout_time field of cl_timer_t is modified in the timer
callback function and also in calls to cl_timer_start, cl_timer_stop,
and cl_timer_trim. The user cannot protect against the changes
made in the timer callback function, so the timer must provide
this protection itself.
Provide serialization to prevent multiple timer callbacks to
the user at once.
Stan Smith [Thu, 24 Jun 2010 16:20:07 +0000 (16:20 +0000)]
[WIX] Incorporate WIX DirRef construct to simplify wix files (installed folder structure defined in a single file; much easier to understand overall structure).
Additionally install .dlls in %SystemRoot%\system32 instead of %SystemRoot%.
Sean Hefty [Wed, 23 Jun 2010 22:40:05 +0000 (22:40 +0000)]
libibumad: fix handling of receive timeouts
If the user calls receive with a timeout, the receive will
be posted, then the user will wait on an event until either
the receive completes or times out. If the wait times out,
an attempt is made to cancel the pending receive. However,
a MAD could be received between the wait timing out and
the completion of the cancel. To handle this, we need to
check the return status after the cancel to see if the
cancel succeeded.
This fixes a problem with ibnetdiscover hanging.
Signed-off-by: Sean Hefty <sean.hefty@intel.com>
git-svn-id: svn://openib.tc.cornell.edu/gen1@2831 ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86
Sean Hefty [Tue, 22 Jun 2010 23:57:33 +0000 (16:57 -0700)]
libibumad: fix handling of receive timeouts
If the user calls receive with a timeout, the receive will
be posted, then the user will wait on an event until either
the receive completes or times out. If the wait times out,
an attempt is made to cancel the pending receive. However,
a MAD could be received between the wait timing out and
the completion of the cancel. To handle this, we need to
check the return status after the cancel to see if the
cancel succeeded.
Sean Hefty [Tue, 22 Jun 2010 23:57:33 +0000 (16:57 -0700)]
libibumad: fix handling of receive timeouts
If the user calls receive with a timeout, the receive will
be posted, then the user will wait on an event until either
the receive completes or times out. If the wait times out,
an attempt is made to cancel the pending receive. However,
a MAD could be received between the wait timing out and
the completion of the cancel. To handle this, we need to
check the return status after the cancel to see if the
cancel succeeded.
Sean Hefty [Tue, 22 Jun 2010 19:08:46 +0000 (12:08 -0700)]
winmad: change handling of large MADs
Winmad uses buffered I/O to transfer data from user space
to the kernel. When dealing with large RMPP MADs, the size
of the data can exceed a single page, which can result in the
IOCTL failing. The likelihood of the failure depends on the
size of the MAD and how fragmented the non-paged pool has
become.
Sean Hefty [Mon, 21 Jun 2010 19:07:58 +0000 (12:07 -0700)]
complib/timer: fix race accessing timer fields
The timeout_time field of cl_timer_t is modified in the timer
callback function and also in calls to cl_timer_start, cl_timer_stop,
and cl_timer_trim. The user cannot protect against the changes
made in the timer callback function, so the timer must provide
this protection itself.
Provide serialization to prevent multiple timer callbacks to
the user at once.
Sean Hefty [Mon, 21 Jun 2010 19:07:58 +0000 (12:07 -0700)]
complib/timer: fix race accessing timer fields
The timeout_time field of cl_timer_t is modified in the timer
callback function and also in calls to cl_timer_start, cl_timer_stop,
and cl_timer_trim. The user cannot protect against the changes
made in the timer callback function, so the timer must provide
this protection itself.
Provide serialization to prevent multiple timer callbacks to
the user at once.