aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAge
* RDMA/cxgb3: Streaming -> RDMA mode transition fixesSteve Wise2007-07-09
| | | | | | | | | | | | | | | | | | Due to a HW issue, our current scheme to transition the connection from streaming to rdma mode is broken on the passive side. The firmware and driver now support a new transition scheme for the passive side: - driver posts rdma_init_wr (now including the initial receive seqno) - driver posts last streaming message via TX_DATA message (MPA start response) - uP atomically sends the last streaming message and transitions the tcb to rdma mode. - driver waits for wr_ack indicating the last streaming message was ACKed. NOTE: This change also bumps the required firmware version to 4.3. Signed-off-by: Steve Wise <swise@opengridcomputing.com> Signed-off-by: Roland Dreier <rolandd@cisco.com>
* mlx4_core: Get the maximum message size from reported device capabilitiesDotan Barak2007-07-09
| | | | | | | | | | Get the maximum message size from the device capabilities returned from the QUERY_DEV_CAP firmware command, rather than hard-coding 2 GB. Signed-off-by: Dotan Barak <dotanb@dev.mellanox.co.il> Signed-off-by: Michael S. Tsirkin <mst@dev.mellanox.co.il> Signed-off-by: Roland Dreier <rolandd@cisco.com>
* IB/ipath: Update copyright datesJohn Gregor2007-07-09
| | | | | | | | Now that it's June, it's about time to update the copyright notices of files that have changed. Signed-off-by: John Gregor <john.gregor@qlogic.com> Signed-off-by: Roland Dreier <rolandd@cisco.com>
* IB/ipath: Clean send flags properly on QP resetRobert Walsh2007-07-09
| | | | | | Signed-off-by: Robert Walsh <robert.walsh@qlogic.com> Signed-off-by: Ralph Campbell <ralph.campbell@qlogic.com> Signed-off-by: Roland Dreier <rolandd@cisco.com>
* IB/ipath: ipath_poll fixups and enhancementsRobert Walsh2007-07-09
| | | | | | | | | Fix ipath_poll and enhance it so we can poll for urgent packets or regular packets and receive notifications of when a header queue overflows. Signed-off-by: Robert Walsh <robert.walsh@qlogic.com> Signed-off-by: Roland Dreier <rolandd@cisco.com>
* IB/ipath: Send ACK invalid where appropriateRobert Walsh2007-07-09
| | | | | | | | The IB specification ch. 9.9.3 table 58 says that a QP which isn't set up for the operation should return a NAK invalid request. Signed-off-by: Robert Walsh <robert.walsh@qlogic.com> Signed-off-by: Roland Dreier <rolandd@cisco.com>
* IB/ipath: Add capability to modify PBC wordMichael Albaugh2007-07-09
| | | | | | | | | | | | | During compliance testing and when debugging some interconnect issues, it is very useful to be able to send malformed packets, without having the device signal them as malformed (drop, or terminate with EBP). The hardware supports this, but the driver "diagnostic packet" interface did not. Extend capability to send specific malformed packets for testing. Signed-off-by: Michael Albaugh <Michael.Albaugh@qlogic.com> Signed-off-by: Roland Dreier <rolandd@cisco.com>
* IB/ipath: Make handling of one subport consistentMark Debbage2007-07-09
| | | | | | | | | | | | | Previously the driver and userspace code handled the case of 1 subport somewhat inconsistently. The new interpretation of this situation is that if one subport is requested, the driver turns on the subport mechanism and arranges for the port to be "shared" by one process. In normal use the userspace library does not use this configuration and instead arranges for the port not to be shared at all. This particular idiom can be useful for testing purposes. Signed-off-by: Mark Debbage <mark.debbage@qlogic.com> Signed-off-by: Roland Dreier <rolandd@cisco.com>
* IB/ipath: Correct checking of swminor version field when using subportsMark Debbage2007-07-09
| | | | | | | | | | | | When subports are required to run a program, this patch checks that the driver and the userspace library have compatible subport implementations. This is achieved through checks on the swminor version field built into the driver and userspace library. Bad combinations are reported through syslog and result in an error when opening the port. Signed-off-by: Mark Debbage <mark.debbage@qlogic.com> Signed-off-by: Roland Dreier <rolandd@cisco.com>
* IB/ipath: Duplicate RDMA reads can cause responder to NAK inappropriatelyRalph Campbell2007-07-09
| | | | | | | | | | | | | | | A duplicate RDMA read request can fool the responder into NAKing a new RDMA read request because the responder wasn't keeping track of whether the queue of RDMA read requests had been sent at least once. For example, requester sends 4 2K byte RDMA read requests, times out, and resends the first, then sees the 4 responses, then sends a 5th RDMA read or atomic operation. The responder sees the 4 requests, sends 4 responses, sees the resent 1st request, rewinds the queue, then sees the 5th request but thinks the queue is full and that the requester is invalidly sending a 5th new request. Signed-off-by: Ralph Campbell <ralph.campbell@qlogic.com> Signed-off-by: Roland Dreier <rolandd@cisco.com>
* IB/ipath: Fix possible data corruption if multiple SGEs used for receiveRalph Campbell2007-07-09
| | | | | | | | | | | | The code to copy data from the receive queue buffers to the IB SGEs doesn't check the SGE length, only the memory region/page length when copying data. This could overwrite parts of the user's memory that were not intended to be written. It can only happen if multiple SGEs are used to describe a receive buffer which almost never happens in practice. Signed-off-by: Ralph Campbell <ralph.campbell@qlogic.com> Signed-off-by: Roland Dreier <rolandd@cisco.com>
* IB/ipath: Wait for PIO available interruptRalph Campbell2007-07-09
| | | | | | | | | | The send function is called when posting new send work requests. There is no point in trying to send a packet if the QP is already waiting for a HW send buffer so don't clear the busy bit until the buffer available interrupt happens. Signed-off-by: Ralph Campbell <ralph.campbell@qlogic.com> Signed-off-by: Roland Dreier <rolandd@cisco.com>
* IB/ipath: Fix RDMA read retry codeRalph Campbell2007-07-09
| | | | | | | | | | | A RDMA read response or atomic response can ACK earlier sends and RDMA writes. In this case, the wrong work request pointer was being used to store the read first response or atomic result. Also, if a RDMA read request is retried, the code to compute which request to resend was incorrect. Signed-off-by: Ralph Campbell <ralph.campbell@qlogic.com> Signed-off-by: Roland Dreier <rolandd@cisco.com>
* IB/ipath: Use S_ABORT not cancel and abort on exit freeze mode after recoveryDave Olson2007-07-09
| | | | | | | | | | | | This centralizes the use of the abort functionality, removes the unneeded buffer cancel (abort does the same thing), sets up to ignore launch errors after abort, same as cancel. We need abort on exit from freeze mode to avoid having buffers stuck in the busy state, if a user process happened to complete the send while we were in freeze mode doing the recovery. Signed-off-by: Dave Olson <dave.olson@qlogic.com> Signed-off-by: Roland Dreier <rolandd@cisco.com>
* IB/ipath: Fix the mtrr_add args for chips with 2 buffer sizesDave Olson2007-07-09
| | | | | | | | | | The values passed have never been right for iba 6120 chips, but just happened to work. We needed to select the right buffer offset in the chip (both are in same register), and the total length was wrong also, but was covered by the rounding up. Signed-off-by: Dave Olson <dave.olson@qlogic.com> Signed-off-by: Roland Dreier <rolandd@cisco.com>
* IB/ipath: Change use of constants for TID type to defined valuesJoan Eslinger2007-07-09
| | | | | | | | | | | | | | Define pkt rcvd 'type' in a way consistent with HW spec and chips. The hardware considers received packets of type 0 to be expected, and type 1 to be eager. The driver was calling the ipath_f_put_tid functions using a variable called 'type' set to 0 for eager and to 1 for expected packets. Worse, the iba6110 and iba6120 drivers used those values inconsistently. This was quite confusing. Now everything is consistent with the hardware. Signed-off-by: Dave Olson <dave.olson@qlogic.com> Signed-off-by: Roland Dreier <rolandd@cisco.com>
* IB/ipath: Set M bit in BTH according to IB specRalph Campbell2007-07-09
| | | | | | | | According to chapter 17.2.8.1.1, QPs start in the migrated state and should send packets with the M bit set in the BTH. Signed-off-by: Ralph Campbell <ralph.campbell@qlogic.com> Signed-off-by: Roland Dreier <rolandd@cisco.com>
* IB/ipath: Fix local loopback bug when waiting for resourcesRalph Campbell2007-07-09
| | | | | | | | This patch fixes a minor bug where the wrong QP was checked for a send work request that should wait for an RNR timeout. Signed-off-by: Ralph Campbell <ralph.campbell@qlogic.com> Signed-off-by: Roland Dreier <rolandd@cisco.com>
* IB/ipath: Fix problem with next WQE after a UC completionRalph Campbell2007-07-09
| | | | | | | | | | | This patch fixes a bug introduced when moving some code around for readability. Setting the wqe pointer at the end of the function is a NOP since it isn't used. Move it back to where it is used. Signed-off-by: Ralph Campbell <ralph.campbell@qlogic.com> Signed-off-by: Roland Dreier <rolandd@cisco.com>
* IB/ipath: Fill in some missing FMR-related fields in query_deviceRobert Walsh2007-07-09
| | | | | | | | In ipath_query_device(), some of the struct ib_device_attr fields were not being initialized. Signed-off-by: Robert Walsh <robert.walsh@qlogic.com> Signed-off-by: Roland Dreier <rolandd@cisco.com>
* IB/ipath: Fix maximum MTU reportingRobert Walsh2007-07-09
| | | | | | | | | Although our chip supports 4K MTUs, our driver doesn't yet support this feature, so limit the maximum MTU to 2K until we get support for 4K MTUs implemented. Signed-off-by: Robert Walsh <robert.walsh@qlogic.com> Signed-off-by: Roland Dreier <rolandd@cisco.com>
* IB/ipath: Support the IBA6110 revision 4Dave Olson2007-07-09
| | | | | | | Recognize IBA 6110 Revision 4: same feature set, etc. as earlier revisions. Signed-off-by: Dave Olson <dave.olson@qlogic.com> Signed-off-by: Roland Dreier <rolandd@cisco.com>
* IB/ipath: Log "active" time and some errors to EEPROMMichael Albaugh2007-07-09
| | | | | | | | | | We currently track various errors, now we enhance that capability by logging some of them to EEPROM. We also now log a cumulative "active" time defined by traffic though the InfiniPath HCA beyond the normal SM traffic. Signed-off-by: Michael Albaugh <michael.albaugh@qlogic.com> Signed-off-by: Roland Dreier <rolandd@cisco.com>
* IB/ipath: Remove incompletely implemented ipath_runtime flags and codeJohn Gregor2007-07-09
| | | | | | | | | | | | | | The IPATH_RUNTIME_PBC_REWRITE and the IPATH_RUNTIME_LOOSE_DMA_ALIGN flags were not ever implemented correctly and did not turn out to be necessary. Remove the last vestiges of these flags but mark the spot with a comment to remind us to not reuse these flags in the interest of binary compatibility. The INFINIPATH_XGXS_SUPPRESS_ARMLAUNCH_ERR bit was also not found to be useful, so it was dropped in the cleanup as well. Signed-off-by: John Gregor <john.gregor@qlogic.com> Signed-off-by: Arthur Jones <arthur.jones@qlogic.com> Signed-off-by: Roland Dreier <rolandd@cisco.com>
* IB/ipath: Lock and always use shadow copies of GPIO registerMichael Albaugh2007-07-09
| | | | | | | | | | | | | | | | | | The new LED blinking interface adds more contention for the unprotected GPIO pins that were already shared, though not commonly at the same time. We add locks to the accesses to these pins so that Read-Modify-Write is now safe. Some of these locks are added at interrupt context, so we shadow the registers which drive and inspect these pins to avoid the mmio read/writes. This mitigates the effects of the locks and hastens us through the interrupt. Add locking and always use shadows for registers controlling GPIO pins (ExtCtrl and GPIOout). The use of shadows implies doing less I/O, which can make I2C operation too fast on some platforms. An explicit udelay(1) in SCL manipulation fixes that. Signed-off-by: Michael Albaugh <michael.albaugh@qlogic.com> Signed-off-by: Roland Dreier <rolandd@cisco.com>
* IB/ipath: Support blinking LEDs with an led_override fileMichael Albaugh2007-07-09
| | | | | | | | | | | | | | | When we want to find an InfiniPath HCA in a rack of nodes, it is often expeditious to blink the status LEDs via a userspace /sys file. A write-only led_override "file" is published per device. Writes to this file are interpreted as (string form) numbers, and the resulting value sent to ipath_set_led_override(). The upper eight bits are interpretted as a 4.4 fixed-point "frequency in Hertz", and the bottom two 4-bit values are alternately (D0..3, then D4..7) used by the board-specific LED-setting function to override the normal state. Signed-off-by: Michael Albaugh <michael.albaugh@qlogic.com> Signed-off-by: Roland Dreier <rolandd@cisco.com>
* IB/ipath: Include <linux/vmalloc.h> to fix ppc64 buildBryan O'Sullivan2007-07-09
| | | | | Signed-off-by: Bryan O'Sullivan <bryan.osullivan@qlogic.com> Signed-off-by: Roland Dreier <rolandd@cisco.com>
* mlx4_core: Include linux/mutex.h from mlx4.hMichael S. Tsirkin2007-07-09
| | | | | | | | | mlx4.h uses struct mutex, so although <linux/mutex.h> seems to be pulled in indirectly by one of the headers it includes, the right thing to do is to include <linux/mutex.h> directly. Signed-off-by: Michael S. Tsirkin <mst@dev.mellanox.co.il> Signed-off-by: Roland Dreier <rolandd@cisco.com>
* IB/mlx4: Include linux/mutex.h from mlx4_ib.hMichael S. Tsirkin2007-07-09
| | | | | | | | | mlx4_ib.h uses struct mutex, so although <linux/mutex.h> seems to be pulled in indirectly by one of the headers it includes, the right thing is to include <linux/mutex.h> directly. Signed-off-by: Michael S. Tsirkin <mst@dev.mellanox.co.il> Signed-off-by: Roland Dreier <rolandd@cisco.com>
* IB: Fix ib_umem_get() when npages == 0Andrew Morton2007-07-09
| | | | | | | | | | | | gcc correctly warned: drivers/infiniband/core/umem.c: In function 'ib_umem_get': drivers/infiniband/core/umem.c:78: warning: 'ret' may be used uninitialized in this function Set ret to 0 in case npages == 0 and the loop isn't entered at all. Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Roland Dreier <rolandd@cisco.com>
* IB: Remove garbage non-ASCII characters from commentsRoland Dreier2007-07-09
| | | | | | | A few files had 0xa0 characters in comments. Remove them so that the files are clean ASCII text. Signed-off-by: Roland Dreier <rolandd@cisco.com>
* IB/ehca: Refactor "maybe missed event" codeJoachim Fenkes2007-07-09
| | | | | | | | | | Refactor the ehca changes from commit ed23a727 ("IB: Return "maybe missed event" hint from ib_req_notify_cq()") so the queue arithmetic is done in slightly fewer lines. Also, move the spinlock flags into the block they're used in. Signed-off-by: Joachim Fenkes <fenkes@de.ibm.com> Signed-off-by: Roland Dreier <rolandd@cisco.com>
* IB/mad: Enhance SMI for switch supportHal Rosenstock2007-07-09
| | | | | | | | | | Extend the SMI with switch (intermediate hop) support. Care has been taken to ensure that the CA (and router) code paths are changed as little as possible. Signed-off-by: Suresh Shelvapille <suri@baymicrosystems.com> Signed-off-by: Hal Rosenstock <halr@voltaire.com> Signed-off-by: Roland Dreier <rolandd@cisco.com>
* Merge branch 'for-linus' of ↵Linus Torvalds2007-07-09
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6 * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6: (31 commits) firewire: fw-sbp2: fix DMA mapping of management ORBs firewire: fw-sbp2: fix DMA mapping of command ORBs firewire: fw-sbp2: fix DMA mapping of S/G tables firewire: fw-sbp2: add a boundary check firewire: fw-sbp2: correctly align page tables firewire: fw-sbp2: memset wants string.h firewire: fw-sbp2: use correct speed in sbp2_agent_reset firewire: fw-sbp2: correctly dereference by container_of firewire: Document userspace ioctl interface. firewire: fw-sbp2: implement nonexclusive login firewire: fw-sbp2: let SCSI shutdown commands through before logout firewire: fw-sbp2: implement max sectors limit for some old bridges firewire: simplify a struct type firewire: support S100B...S400B and link slower than PHY firewire: optimize gap count with 1394b leaf nodes firewire: remove unused macro firewire: missing newline in printk firewire: fw-sbp2: remove unused struct member ieee1394: remove old isochronous ABI ieee1394: sbp2: change some module parameters from int to bool ...
| * firewire: fw-sbp2: fix DMA mapping of management ORBsStefan Richter2007-07-09
| | | | | | | | | | | | | | The CPU must not touch the buffer after it was DMA-mapped. Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de> Signed-off-by: Kristian Høgsberg <krh@redhat.com>
| * firewire: fw-sbp2: fix DMA mapping of command ORBsStefan Richter2007-07-09
| | | | | | | | | | | | | | The CPU must not touch the buffer after it was DMA-mapped. Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de> Signed-off-by: Kristian Høgsberg <krh@redhat.com>
| * firewire: fw-sbp2: fix DMA mapping of S/G tablesStefan Richter2007-07-09
| | | | | | | | | | | | | | | | | | - The CPU must not touch the buffer after it was DMA-mapped. - The size argument of dma_unmap_single(...page_table...) was bogus. - Move a comment closer to the code to which it refers to. Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de> Signed-off-by: Kristian Høgsberg <krh@redhat.com>
| * firewire: fw-sbp2: add a boundary checkStefan Richter2007-07-09
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Add rudimentary check for the case that the page table overflows due to merging of s/g elements by the IOMMU. This would have lead to overwriting of arbitrary memory. After this change I expect that an offending command will be unsuccessfully retried until the scsi_device is taken offline by SCSI core. It's a border case and not worth to implement a recovery strategy. Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de> Acked-by: Kristian Høgsberg <krh@redhat.com>
| * firewire: fw-sbp2: correctly align page tablesStefan Richter2007-07-09
| | | | | | | | | | | | | | This is required per SBP-2 clause 5.2. Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de> Acked-by: Kristian Høgsberg <krh@redhat.com>
| * firewire: fw-sbp2: memset wants string.hStefan Richter2007-07-09
| | | | | | | | | | Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de> Acked-by: Kristian Høgsberg <krh@redhat.com>
| * firewire: fw-sbp2: use correct speed in sbp2_agent_resetStefan Richter2007-07-09
| | | | | | | | | | | | | | noticed by Jay Fenlason Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de> Acked-by: Kristian Høgsberg <krh@redhat.com>
| * firewire: fw-sbp2: correctly dereference by container_ofJay Fenlason2007-07-09
| | | | | | | | | | | | | | | | | | Replace a cast with a container_of(). As long as nobody reorders the structure elements, they do the same thing, but container_of() is more readable. Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de> (added complete_command_orb) Acked-by: Kristian Høgsberg <krh@redhat.com>
| * firewire: Document userspace ioctl interface.Kristian Høgsberg2007-07-09
| | | | | | | | | | | | | | | | The isochronous packet format is still not documented, but this is a good first step. Signed-off-by: Kristian Høgsberg <krh@redhat.com> Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de> (format, wording)
| * firewire: fw-sbp2: implement nonexclusive loginStefan Richter2007-07-09
| | | | | | | | | | Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de> Signed-off-by: Kristian Høgsberg <krh@redhat.com>
| * firewire: fw-sbp2: let SCSI shutdown commands through before logoutStefan Richter2007-07-09
| | | | | | | | | | | | | | | | This affects of course only the "soft shutdown" case, e.g. "modprobe -r firewire-sbp2", while it doesn't matter for hot unplug. Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de> Signed-off-by: Kristian Høgsberg <krh@redhat.com>
| * firewire: fw-sbp2: implement max sectors limit for some old bridgesStefan Richter2007-07-09
| | | | | | | | | | | | | | This currently only affects one bridge in the hardwired blacklist. I don't own one of those, hence haven't tested it. Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
| * firewire: simplify a struct typeStefan Richter2007-07-09
| | | | | | | | | | | | | | cleanup after "firewire: support S100B...S400B and link slower than PHY" Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de> Signed-off-by: Kristian Høgsberg <krh@redhat.com>
| * firewire: support S100B...S400B and link slower than PHYStefan Richter2007-07-09
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Use a speed probe to determine the speed over 1394b buses and of nodes which report a link speed less than their PHY speed. Log the effective maximum speed of newly created nodes in dmesg. Also, read the config ROM (except bus info block) at the maximum speed rather than S100. This isn't a real optimization though because we still only use quadlet read requests for the entire ROM. The patch also adds support for S1600 and S3200, although such hardware does not exist yet. Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de> Signed-off-by: Kristian Høgsberg <krh@redhat.com>
| * firewire: optimize gap count with 1394b leaf nodesStefan Richter2007-07-09
| | | | | | | | | | | | | | | | Table-based gap count optimization cannot be used if 1394b repeater PHYs are present. But it does work with 1394b leaf nodes. Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de> Signed-off-by: Kristian Høgsberg <krh@redhat.com>
| * firewire: remove unused macroStefan Richter2007-07-09
| | | | | | | | Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>