- 24 5月, 2006 10 次提交
-
-
由 Bryan O'Sullivan 提交于
At this point, the core QP structure hasn't been initialized, so what's in there isn't valid. Get the same information elsewhere. Signed-off-by: NBryan O'Sullivan <bos@pathscale.com> Signed-off-by: NRoland Dreier <rolandd@cisco.com>
-
由 Bryan O'Sullivan 提交于
The problem was that node A's sending thread, which handles sending RDMA read response data, would write the trigger word, the last packet would be sent, node B would send a new RDMA read request, node A's interrupt handler would initialize s_rdma_sge, then node A's sending thread would update s_rdma_sge. This didn't happen very often naturally but was more frequent with 1 byte RDMA reads. Rather than adding more locking or increasing the QP structure size and copying sge data, I modified the copy routine to update the pointers before writing the trigger word to avoid the update race. Signed-off-by: NRalph Campbell <ralphc@pathscale.com> Signed-off-by: NBryan O'Sullivan <bos@pathscale.com> Signed-off-by: NRoland Dreier <rolandd@cisco.com>
-
由 Bryan O'Sullivan 提交于
This fixes an oops. Signed-off-by: NBryan O'Sullivan <bos@pathscale.com> Signed-off-by: NRoland Dreier <rolandd@cisco.com>
-
由 Bryan O'Sullivan 提交于
Fixed so it works on the PE-800. It had not previously been updated to match PE-800 receive interrupt differences from HT-400. Signed-off-by: NBryan O'Sullivan <bos@pathscale.com> Signed-off-by: NRoland Dreier <rolandd@cisco.com>
-
由 Bryan O'Sullivan 提交于
This is required for even semi-decent performance on OpenIB. Signed-off-by: NBryan O'Sullivan <bos@pathscale.com> Signed-off-by: NRoland Dreier <rolandd@cisco.com>
-
由 Bryan O'Sullivan 提交于
Fix NULL deref due to pcidev being clobbered before dd->ipath_f_cleanup() was called. Signed-off-by: NBryan O'Sullivan <bos@pathscale.com> Signed-off-by: NRoland Dreier <rolandd@cisco.com>
-
由 Bryan O'Sullivan 提交于
Per Andrew's request. Signed-off-by: NBryan O'Sullivan <bos@pathscale.com> Signed-off-by: NRoland Dreier <rolandd@cisco.com>
-
由 Bryan O'Sullivan 提交于
Fix the interface version that gets exported to userspace. Signed-off-by: NBryan O'Sullivan <bos@pathscale.com> Signed-off-by: NRoland Dreier <rolandd@cisco.com>
-
由 Bryan O'Sullivan 提交于
Make sure modify_qp won't modify the QP if any of the changes failed. Signed-off-by: NBryan O'Sullivan <bos@pathscale.com> Signed-off-by: NRoland Dreier <rolandd@cisco.com>
-
由 Bryan O'Sullivan 提交于
The local loopback path for RC can lock the rkey table lock without blocking interrupts. The receive interrupt path can then call ipath_rkey_ok() and deadlock. Remove the redundant lock. Signed-off-by: NBryan O'Sullivan <bos@pathscale.com> Signed-off-by: NRoland Dreier <rolandd@cisco.com>
-
- 19 5月, 2006 1 次提交
-
-
由 Michael S. Tsirkin 提交于
If we post a list of length 256 exactly, nreq in doorbell gets set to 256 which is wrong: it should be encoded by 0. This is because we only zero it out on the next WR, which may not be there. The solution is to ring the doorbell after posting a WQE, not before posting the next one. Signed-off-by: NMichael S. Tsirkin <mst@mellanox.co.il> Signed-off-by: NRoland Dreier <rolandd@cisco.com>
-
- 18 5月, 2006 4 次提交
-
-
由 Roland Dreier 提交于
In ib_umem_release_on_close(), if the kmalloc() fails, then a reference to current->mm will be leaked. Fix this by adding a mmput() instead of just returning on kmalloc() failure. Signed-off-by: NRoland Dreier <rolandd@cisco.com>
-
由 Ishai Rabinovitz 提交于
When flushing out queued commands after a successful device reset, make sure that SRP completes the right commands, instead of calling scsi_done on the command passed into the device reset handler over and over. Signed-off-by: NIshai Rabinovitz <ishai@mellanox.co.il> Signed-off-by: NRoland Dreier <rolandd@cisco.com>
-
由 Roland Dreier 提交于
If a reconnection attempt fails, then SRP does two scsi_host_put()s. This is a historical relic from an earlier version of the driver that took a reference on the scsi_host before trying to reconnect, so get rid of the extra scsi_host_put(). Signed-off-by: NRoland Dreier <rolandd@cisco.com>
-
由 Roland Dreier 提交于
Sending a DREQ may fail, for example because the remote target has already broken the connection. If so, then SRP should not wait for the disconnection to complete, because it never will. Signed-off-by: NRoland Dreier <rolandd@cisco.com>
-
- 17 5月, 2006 1 次提交
-
-
由 Roland Dreier 提交于
Setting fw_cmd_doorbell allows FW command to be queued using posted writes instead of requiring polling on a "go" bit, so it should be a performance boost. However, the option causes problems with at least some device/firmware combinations, so set the default to 0 until we understand what's going on better. Signed-off-by: NRoland Dreier <rolandd@cisco.com>
-
- 13 5月, 2006 2 次提交
-
-
由 Sean Hefty 提交于
Fix race condition during destruction calls to avoid possibility of accessing object after it has been freed. Instead of waking up a wait queue directly, which is susceptible to a race where the object is freed between the reference count going to 0 and the wake_up(), use a completion to wait in the function doing the freeing. Signed-off-by: NSean Hefty <sean.hefty@intel.com> Signed-off-by: NRoland Dreier <rolandd@cisco.com>
-
由 Roland Dreier 提交于
The ipath driver's table of PCI IDs needs a { 0, } entry at the end. This makes all of the device aliases visible to userspace so hotplug loads the module for all supported devices. Without the patch, modinfo ipath_core only shows: alias: pci:v00001FC1d0000000Dsv*sd*bc*sc*i* instead of the correct: alias: pci:v00001FC1d00000010sv*sd*bc*sc*i* alias: pci:v00001FC1d0000000Dsv*sd*bc*sc*i* Signed-off-by: NRoland Dreier <rolandd@cisco.com> Signed-off-by: NBryan O'Sullivan <bos@pathscale.com>
-
- 11 5月, 2006 1 次提交
-
-
由 Michael S. Tsirkin 提交于
Addresses for ioremap must be calculated off of pci_resource_start; we can't directly use the bus address as seen by the HCA. Fix the code that remaps device memory for FMR access. Based on patch by Klaus Smolin. Signed-off-by: NMichael S. Tsirkin <mst@mellanox.co.il> Signed-off-by: NRoland Dreier <rolandd@cisco.com>
-
- 10 5月, 2006 4 次提交
-
-
由 Roland Dreier 提交于
When deleting a child interface with a non-default P_Key via /sys/class/net/ibX/delete_child, the interface must be freed with free_netdev() (rather than kfree() on the private data). Signed-off-by: NRoland Dreier <rolandd@cisco.com>
-
由 Roland Dreier 提交于
Fix races in in destroying various objects. If a destroy routine waits for an object to become free by doing wait_event(&obj->wait, !atomic_read(&obj->refcount)); /* now clean up and destroy the object */ and another place drops a reference to the object by doing if (atomic_dec_and_test(&obj->refcount)) wake_up(&obj->wait); then this is susceptible to a race where the wait_event() and final freeing of the object occur between the atomic_dec_and_test() and the wake_up(). And this is a use-after-free, since wake_up() will be called on part of the already-freed object. Fix this in mthca by replacing the atomic_t refcounts with plain old integers protected by a spinlock. This makes it possible to do the decrement of the reference count and the wake_up() so that it appears as a single atomic operation to the code waiting on the wait queue. While touching this code, also simplify mthca_cq_clean(): the CQ being cleaned cannot go away, because it still has a QP attached to it. So there's no reason to be paranoid and look up the CQ by number; it's perfectly safe to use the pointer that the callers already have. Signed-off-by: NRoland Dreier <rolandd@cisco.com>
-
由 Roland Dreier 提交于
If a SCSI abort completes, or the command completes successfully, then the driver must remove the command from its queue of pending commands. Similarly, if a device reset succeeds, then all commands queued for the given device must be removed from the queue. Signed-off-by: NRoland Dreier <rolandd@cisco.com>
-
由 Ralph Campbell 提交于
The code to display local_link_integrity_errors and excessive_buffer_overrun_errors in /sys/class/infiniband/<hca>/ports/<n>/counters/ uses the wrong shift to extract the 4 bit values. Signed-off-by: NRalph Campbell <ralph.campbell@qlogic.com> Signed-off-by: NRoland Dreier <rolandd@cisco.com>
-
- 02 5月, 2006 12 次提交
-
-
由 Bryan O'Sullivan 提交于
Signed-off-by: NBryan O'Sullivan <bos@pathscale.com> Signed-off-by: NRoland Dreier <rolandd@cisco.com>
-
由 Bryan O'Sullivan 提交于
Names that are the opposite of their intended meanings are not so helpful. Signed-off-by: NBryan O'Sullivan <bos@pathscale.com> Signed-off-by: NRoland Dreier <rolandd@cisco.com>
-
由 Bryan O'Sullivan 提交于
Signed-off-by: NBryan O'Sullivan <bos@pathscale.com> Signed-off-by: NRoland Dreier <rolandd@cisco.com>
-
由 Bryan O'Sullivan 提交于
Signed-off-by: NBryan O'Sullivan <bos@pathscale.com> Signed-off-by: NRoland Dreier <rolandd@cisco.com>
-
由 Bryan O'Sullivan 提交于
Remove some unnecessarily complicated tests. Signed-off-by: NBryan O'Sullivan <bos@pathscale.com> Signed-off-by: NRoland Dreier <rolandd@cisco.com>
-
由 Bryan O'Sullivan 提交于
The reset code now turns off the PRESENT flag during a reset, so that other code won't attempt to access a device that's in mid-reset. Signed-off-by: NBryan O'Sullivan <bos@pathscale.com> Signed-off-by: NRoland Dreier <rolandd@cisco.com>
-
由 Bryan O'Sullivan 提交于
Remember when the verbs layer unregisters from the lower-level code. Signed-off-by: NBryan O'Sullivan <bos@pathscale.com> Signed-off-by: NRoland Dreier <rolandd@cisco.com>
-
由 Bryan O'Sullivan 提交于
Different ipath hardware types have different numbers of buffers available, so we decide on the counts ourselves unless we are specifically overridden with a module parameter. Signed-off-by: NBryan O'Sullivan <bos@pathscale.com> Signed-off-by: NRoland Dreier <rolandd@cisco.com>
-
由 Bryan O'Sullivan 提交于
Signed-off-by: NBryan O'Sullivan <bos@pathscale.com> Signed-off-by: NRoland Dreier <rolandd@cisco.com>
-
由 Bryan O'Sullivan 提交于
Some systems do not set up 64-bit maps on systems with 2GB or less of memory installed, so we have to fall back to trying a 32-bit setup. Signed-off-by: NBryan O'Sullivan <bos@pathscale.com> Signed-off-by: NRoland Dreier <rolandd@cisco.com>
-
由 Bryan O'Sullivan 提交于
We were accidentally exposing the "reset" sysfs file more than once per device. Signed-off-by: NBryan O'Sullivan <bos@pathscale.com> Signed-off-by: NRoland Dreier <rolandd@cisco.com>
-
由 Roland Dreier 提交于
GuidInfo records have 8 byte GUIDs in them, so an index should be multiplied by 8 to get an offset. mthca_query_gid() was incorrectly multiplying by 16. Noticed by Leonid Keller <leonid@mellanox.co.il>. Signed-off-by: NRoland Dreier <rolandd@cisco.com>
-
- 20 4月, 2006 5 次提交
-
-
由 Adrian Bunk 提交于
This patch makes the needlessly global mthca_update_rate() static. Signed-off-by: NAdrian Bunk <bunk@stusta.de> Signed-off-by: NRoland Dreier <rolandd@cisco.com>
-
由 Roland Dreier 提交于
Signed-off-by: NRoland Dreier <rolandd@cisco.com>
-
由 Roland Dreier 提交于
Make symbols that are only used in a single source file static. Signed-off-by: NRoland Dreier <rolandd@cisco.com>
-
由 Hal Rosenstock 提交于
Only check that RMPP version is not specified when MAD class does not support RMPP. Just because a class is allowed to use RMPP doesn't mean that rmpp_version needs to be set for the MAD agent to register. Checking this was a recent change which was too pedantic. Signed-off-by: NHal Rosenstock <halr@voltaire.com> Signed-off-by: NRoland Dreier <rolandd@cisco.com>
-
由 Roland Dreier 提交于
If a SCSI abort succeeds, then the aborted request should to be removed from the list of pending requests. This fixes list corruption after an abort occurs. Signed-off-by: NRoland Dreier <rolandd@cisco.com>
-