- 24 5月, 2006 2 次提交
-
-
由 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>
-
- 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 1 次提交
-
-
由 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 1 次提交
-
-
由 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>
-
- 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 3 次提交
-
-
由 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>
-
- 13 4月, 2006 1 次提交
-
-
由 Jack Morgenstein 提交于
The driver allocates SRQ WQEs size with a power of 2 size both for Tavor and for memfree. For Tavor, however, the hardware only requires the WQE size to be a multiple of 16, not a power of 2, and the max number of scatter-gather allowed is reported accordingly by the firmware (and this is the value currently returned by ib_query_device() and ibv_query_device()). If the max number of scatter/gather entries reported by the FW is used when creating an SRQ, the creation will fail for Tavor, since the required WQE size will be increased to the next power of 2, which turns out to be larger than the device permitted max WQE size (which is not a power of 2). This patch reduces the reported SRQ max wqe size so that it can be used successfully in creating an SRQ on Tavor HCAs. Signed-off-by: NJack Morgenstein <jackm@mellanox.co.il> Signed-off-by: NRoland Dreier <rolandd@cisco.com>
-
- 11 4月, 2006 2 次提交
-
-
由 Michael S. Tsirkin 提交于
The PCI spec recommends against drivers playing with a device's PCI read burst size, and says that systems software should configure it. And we actually have users that report that changing it from the default set by BIOS hurts performance and/or stability for them. On the other hand, the Mellanox Programmer's Reference Manual recommends turning it up all the way to the maximum value. Some tests conducted here in the lab do not show performance improvement from this tuning, but this might be just me. As a work-around, make this tuning an option, off by default (safe value), with an eye towards removing it completely one day if no one complains. Signed-off-by: NMichael S. Tsirkin <mst@mellanox.co.il> Signed-off-by: NRoland Dreier <rolandd@cisco.com>
-
由 Jack Morgenstein 提交于
Push translation of static rate to HCA format into low-level drivers, where it belongs. For static rate encoding, use encoding of rate field from IB standard PathRecord, with addition of value 0, for backwards compatibility with current usage. The changes are: - Add enum ib_rate to midlayer includes. - Get rid of static rate translation in IPoIB; just use static rate directly from Path and MulticastGroup records. - Update mthca driver to translate absolute static rate into the format used by hardware. This also fixes mthca's static rate handling for HCAs that are capable of 4X DDR. Signed-off-by: NJack Morgenstein <jackm@mellanox.co.il> Signed-off-by: NRoland Dreier <rolandd@cisco.com>
-
- 03 4月, 2006 1 次提交
-
-
由 Roland Dreier 提交于
Change the mthca debugging trace output code so that it can enabled and disabled at runtime with the debug_level module parameter in sysfs. Also, don't allow CONFIG_INFINIBAND_MTHCA_DEBUG to be disabled unless CONFIG_EMBEDDED is selected. We want users (and especially distros) to have this turned on unless they really need to save space, because by the time we want debugging output, it's usually too late to rebuild a kernel. Signed-off-by: NRoland Dreier <rolandd@cisco.com>
-
- 01 4月, 2006 14 次提交
-
-
由 Bryan O'Sullivan 提交于
Integrate the ipath core and OpenIB drivers into the kernel build infrastructure. Add entry to MAINTAINERS. Signed-off-by: NBryan O'Sullivan <bos@pathscale.com> Signed-off-by: NRoland Dreier <rolandd@cisco.com>
-
由 Bryan O'Sullivan 提交于
The ipath_verbs.c file implements the driver-specific components of the kernel's Infiniband verbs layer. Signed-off-by: NBryan O'Sullivan <bos@pathscale.com> Signed-off-by: NRoland Dreier <rolandd@cisco.com>
-
由 Bryan O'Sullivan 提交于
Management datagram support, queue pairs, and reliable and unreliable connections. Signed-off-by: NBryan O'Sullivan <bos@pathscale.com> Signed-off-by: NRoland Dreier <rolandd@cisco.com>
-
由 Bryan O'Sullivan 提交于
Completion queues, local and remote memory keys, and memory region support. Signed-off-by: NBryan O'Sullivan <bos@pathscale.com> Signed-off-by: NRoland Dreier <rolandd@cisco.com>
-
由 Bryan O'Sullivan 提交于
This is an implementation of the Infiniband RC ("reliable connection") protocol. Signed-off-by: NBryan O'Sullivan <bos@pathscale.com> Signed-off-by: NRoland Dreier <rolandd@cisco.com>
-
由 Bryan O'Sullivan 提交于
These files implement the Infiniband UC ("unreliable connection") and UD ("unreliable datagram") protocols. Signed-off-by: NBryan O'Sullivan <bos@pathscale.com> Signed-off-by: NRoland Dreier <rolandd@cisco.com>
-
由 Bryan O'Sullivan 提交于
These header files are used by the layered Infiniband driver. Signed-off-by: NBryan O'Sullivan <bos@pathscale.com> Signed-off-by: NRoland Dreier <rolandd@cisco.com>
-
由 Bryan O'Sullivan 提交于
The layering interfaces are used to implement the Infiniband protocols and the ethernet emulation driver. Signed-off-by: NBryan O'Sullivan <bos@pathscale.com> Signed-off-by: NRoland Dreier <rolandd@cisco.com>
-
由 Bryan O'Sullivan 提交于
These files introduce a char device that userspace apps use to gain direct memory-mapped access to the InfiniPath hardware, and routines for pinning and unpinning user memory in cases where the hardware needs to DMA into the user address space. Signed-off-by: NBryan O'Sullivan <bos@pathscale.com> Signed-off-by: NRoland Dreier <rolandd@cisco.com>
-
由 Bryan O'Sullivan 提交于
The ipathfs filesystem contains files that are not appropriate for sysfs, because they contain binary data. The hierarchy is simple; the top-level directory contains driver-wide attribute files, while numbered subdirectories contain per-device attribute files. Our userspace code currently expects this filesystem to be mounted on /ipathfs, but a final location has not yet been chosen. Signed-off-by: NBryan O'Sullivan <bos@pathscale.com> Signed-off-by: NRoland Dreier <rolandd@cisco.com>
-
由 Bryan O'Sullivan 提交于
EEPROM support, interrupt handling, statistics gathering, and write combining management for x86_64. A note regarding i2c: The Atmel EEPROM hardware we use looks like an i2c device electrically, but is not i2c compliant at all from a functional perspective. We tried using the kernel's i2c support to talk to it, but failed. Normal i2c devices have a single 7-bit or 10-bit i2c address that they respond to. Valid 7-bit addresses range from 0x03 to 0x77. Addresses 0x00 to 0x02 and 0x78 to 0x7F are special reserved addresses (e.g. 0x00 is the "general call" address.) The Atmel device, on the other hand, responds to ALL addresses. It's designed to be the only device on a given i2c bus. A given i2c device address corresponds to the memory address within the i2c device itself. At least one reason why the linux core i2c stuff won't work for this is that it prohibits access to reserved addresses like 0x00, which are really valid addresses on the Atmel devices. Signed-off-by: NBryan O'Sullivan <bos@pathscale.com> Signed-off-by: NRoland Dreier <rolandd@cisco.com>
-
由 Bryan O'Sullivan 提交于
ipath_init_chip.c sets up an InfiniPath device for use. ipath_diag.c permits userspace diagnostic tools to read and write a chip's registers. It is different in purpose from the mmap interfaces to the /sys/bus/pci resource files. Signed-off-by: NBryan O'Sullivan <bos@pathscale.com> Signed-off-by: NRoland Dreier <rolandd@cisco.com>
-
由 Bryan O'Sullivan 提交于
This file contains routines and definitions specific to InfiniPath devices that have PCI Express interfaces. Signed-off-by: NBryan O'Sullivan <bos@pathscale.com> Signed-off-by: NRoland Dreier <rolandd@cisco.com>
-
由 Bryan O'Sullivan 提交于
The ipath_ht400.c file contains routines and definitions specific to HyperTransport-based InfiniPath devices. Signed-off-by: NBryan O'Sullivan <bos@pathscale.com> Signed-off-by: NRoland Dreier <rolandd@cisco.com>
-