LKML Archive on lore.kernel.org
help / color / mirror / Atom feed
* [GIT PULL] please pull infiniband.git
@ 2007-04-26 18:42 Roland Dreier
0 siblings, 0 replies; 223+ messages in thread
From: Roland Dreier @ 2007-04-26 18:42 UTC (permalink / raw)
To: torvalds; +Cc: linux-kernel, general
Linus, please pull from
master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This tree is also available from kernel.org mirrors at:
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This is the first batch of merges for 2.6.22 -- mostly ipath driver fixes:
Arthur Jones (2):
IB/ipath: Call free_irq() on chip specific initialization failure
IB/ipath: Force PIOAvail update entry point
Bryan O'Sullivan (17):
IB/ipath: Add ability to set and clear IB local loopback
IB/ipath: Fix user memory region creation when IOMMU present
IB/ipath: Definitions of two RXE parity err bits were reversed
IB/ipath: Fix up some debug messages
IB/ipath: Change packet problems vs chip errors handling and reporting
IB/ipath: Fix bad argument to clear_bit()
IB/ipath: Fix CQ flushing when QP is modified to error state
IB/ipath: Remove unused ipath_read_kreg64_port()
IB/ipath: Fix calculation for number of kernel PIO buffers
IB/ipath: Discard multicast packets without a GRH
IB/ipath: Print better error messages if kernel is misconfigured
IB/ipath: Improve handling and reporting of parity errors
IB/ipath: On unrecoverable errors, force link down, LEDs off
IB/ipath: Prevent random program use of diags interface
IB/ipath: Disable IB link earlier in shutdown sequence
IB/ipath: Don't allow QPs 0 and 1 to be opened multiple times
IB/ipath: Fix unit selection when all CPU affinity bits set
Hal Rosenstock (3):
IB/umad: Fix declaration of dev_map[]
IB/mad: Change SMI to use enums rather than magic return codes
IB/umad: Clarify documentation of transaction ID
Joachim Fenkes (2):
IB/ehca: Implement modify_port
IB: Set class_dev->dev in core for nice device symlink
Mark Debbage (1):
IB/ipath: Allow receive ports mapped into userspace to be shared
Michael Albaugh (1):
IB/ipath: Fix driver crash (in interrupt or during unload) after chip reset
Ralph Campbell (8):
IB/ipath: Don't initialize port memory for subports
IB/ipath: Fix SRQ limit event causing dropped CQ entry
IB/ipath: NMI cpu lockup if local loopback used
IB/ipath: Support larger IB_QP_MAX_DEST_RD_ATOMIC and IB_QP_MAX_QP_RD_ATOMIC
IB/ipath: Fix QP error completion queue entries
IB/ipath: Fix PSN update for RC retries
IB/ipath: Fix port sharing on powerpc
IB/ipath: Fix RDMA reads of length zero and error handling
Robert Walsh (4):
IB/ipath: Check reserved memory keys
IB/ipath: Remove duplicate stuff from ipath_verbs.h
IB/ipath: Check that a UD work request's address handle is valid
IB/ipath: Fix WC format drift between user and kernel space
Roland Dreier (6):
IB: Remove reference to obsolete CONFIG_IPATH_CORE
IPoIB: Remove pointless opcode field from debugging output
IB/mthca: Update HCA firmware revisions
IB/mthca: Fix mthca_write_mtt() on HCAs with hidden memory
IB/mthca: Simplify CQ cleaning in mthca_free_qp()
IPoIB/cm: spin_lock_irqsave() -> spin_lock_irq() replacements
Sean Hefty (5):
RDMA/ucma: Simplify ucma_get_event()
IB/ucm: Simplify ib_ucm_event()
IB/sa: Set src_path_bits correctly in ib_init_ah_from_path()
IB/ipoib: Use ib_init_ah_from_path to initialize ah_attr
IB/umad: Implement GRH handling for sent/received MADs
Documentation/infiniband/user_mad.txt | 8 +
drivers/Makefile | 1 -
drivers/infiniband/core/mad.c | 34 +-
drivers/infiniband/core/sa_query.c | 24 +-
drivers/infiniband/core/smi.c | 86 ++--
drivers/infiniband/core/smi.h | 34 +-
drivers/infiniband/core/sysfs.c | 1 +
drivers/infiniband/core/ucm.c | 23 +-
drivers/infiniband/core/ucma.c | 22 +-
drivers/infiniband/core/user_mad.c | 20 +-
drivers/infiniband/hw/amso1100/c2_provider.c | 1 -
drivers/infiniband/hw/cxgb3/iwch_provider.c | 1 -
drivers/infiniband/hw/ehca/ehca_classes.h | 1 +
drivers/infiniband/hw/ehca/ehca_hca.c | 55 ++-
drivers/infiniband/hw/ehca/ehca_main.c | 1 +
drivers/infiniband/hw/ehca/hcp_if.c | 24 +
drivers/infiniband/hw/ehca/hcp_if.h | 4 +
drivers/infiniband/hw/ipath/ipath_common.h | 23 +-
drivers/infiniband/hw/ipath/ipath_cq.c | 38 +-
drivers/infiniband/hw/ipath/ipath_debug.h | 1 +
drivers/infiniband/hw/ipath/ipath_diag.c | 11 +-
drivers/infiniband/hw/ipath/ipath_driver.c | 123 +++--
drivers/infiniband/hw/ipath/ipath_eeprom.c | 4 +
drivers/infiniband/hw/ipath/ipath_file_ops.c | 287 +++++----
drivers/infiniband/hw/ipath/ipath_iba6110.c | 152 +++--
drivers/infiniband/hw/ipath/ipath_iba6120.c | 73 ++-
drivers/infiniband/hw/ipath/ipath_init_chip.c | 86 ++-
drivers/infiniband/hw/ipath/ipath_intr.c | 100 ++-
drivers/infiniband/hw/ipath/ipath_kernel.h | 10 +-
drivers/infiniband/hw/ipath/ipath_keys.c | 14 +-
drivers/infiniband/hw/ipath/ipath_mr.c | 12 +-
drivers/infiniband/hw/ipath/ipath_qp.c | 133 +++--
drivers/infiniband/hw/ipath/ipath_rc.c | 920 ++++++++++++++-----------
drivers/infiniband/hw/ipath/ipath_registers.h | 22 +-
drivers/infiniband/hw/ipath/ipath_ruc.c | 63 +-
drivers/infiniband/hw/ipath/ipath_stats.c | 16 +-
drivers/infiniband/hw/ipath/ipath_uc.c | 6 +-
drivers/infiniband/hw/ipath/ipath_ud.c | 8 +-
drivers/infiniband/hw/ipath/ipath_verbs.c | 15 +-
drivers/infiniband/hw/ipath/ipath_verbs.h | 57 +-
drivers/infiniband/hw/mthca/mthca_main.c | 10 +-
drivers/infiniband/hw/mthca/mthca_mr.c | 6 +-
drivers/infiniband/hw/mthca/mthca_provider.c | 1 -
drivers/infiniband/hw/mthca/mthca_qp.c | 7 +-
drivers/infiniband/ulp/ipoib/ipoib_cm.c | 64 +-
drivers/infiniband/ulp/ipoib/ipoib_ib.c | 8 +-
drivers/infiniband/ulp/ipoib/ipoib_main.c | 12 +-
47 files changed, 1620 insertions(+), 1002 deletions(-)
^ permalink raw reply [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
@ 2015-04-22 17:08 Roland Dreier
0 siblings, 0 replies; 223+ messages in thread
From: Roland Dreier @ 2015-04-22 17:08 UTC (permalink / raw)
To: Linus Torvalds; +Cc: linux-rdma, linux-kernel
Hi Linus,
Please pull from
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git tags/rdma-for-linus
----------------------------------------------------------------
InfiniBand/RDMA updates for 4.1:
- IPoIB fixes from Doug Ledford and Erez Shitrit
- iSER updates from Sagi Grimberg
- mlx4 GUID handling changes from Yishai Hadas
- other misc fixes
----------------------------------------------------------------
Bart Van Assche (1):
IB/srp: Use P_Key cache for P_Key lookups
Doug Ledford (11):
IB/ipoib: factor out ah flushing
IB/ipoib: change init sequence ordering
IB/ipoib: Consolidate rtnl_lock tasks in workqueue
IB/ipoib: Make the carrier_on_task race aware
IB/ipoib: Use dedicated workqueues per interface
IB/ipoib: No longer use flush as a parameter
IB/ipoib: fix MCAST_FLAG_BUSY usage
IB/ipoib: deserialize multicast joins
IB/ipoib: drop mcast_mutex usage
ib_srpt: convert printk's to pr_* functions
Merge branches 'cve-fixup', 'ipoib', 'iser', 'misc-4.1', 'or-mlx4' and 'srp' into for-4.1
Erez Shitrit (6):
IB/ipoib: Use one linear skb in RX flow
IB/ipoib: Update broadcast record values after each successful join request
IB/ipoib: Handle QP in SQE state
IB/ipoib: Save only IPOIB_MAX_PATH_REC_QUEUE skb's
IB/ipoib: Remove IPOIB_MCAST_RUN bit
IB/mlx4: Fix WQE LSO segment calculation
Honggang LI (1):
mlx5: wrong page mask if CONFIG_ARCH_DMA_ADDR_T_64BIT enabled for 32Bit architectures
Sagi Grimberg (18):
IB/iser: Fix unload during ep_poll wrong dereference
IB/iser: Handle fastreg/local_inv completion errors
IB/iser: Fix wrong calculation of protection buffer length
IB/iser: Remove redundant cmd_data_len calculation
IB/iser: Remove a redundant struct iser_data_buf
IB/iser: Don't pass ib_device to fall_to_bounce_buff routine
IB/iser: Move memory reg/dereg routines to iser_memory.c
IB/iser: Remove redundant assignments in iser_reg_page_vec
IB/iser: Get rid of struct iser_rdma_regd
IB/iser: Merge build page-vec into register page-vec
IB/iser: Move fastreg descriptor pool get/put to helper functions
IB/iser: Move PI context alloc/free to routines
IB/iser: Make fastreg pool cache friendly
IB/iser: Modify struct iser_mem_reg members
IB/iser: Pass struct iser_mem_reg to iser_fast_reg_mr and iser_reg_sig_mr
IB/iser: Remove code duplication for a single DMA entry
IB/iser: Bump version to 1.6
IB/iser: Rewrite bounce buffer code path
Sebastian Ott (1):
infiniband/mlx4: check for mapping error
Selvin Xavier (1):
MAINTAINERS: Adding list of maintainers for ocrdma
Stephen Hemminger (1):
rdma: replace deprecated ifconfig in doc
Sébastien Dugué (1):
ib_uverbs: Fix pages leak when using XRC SRQs
Yann Droneaud (2):
IB/core: disallow registering 0-sized memory region
IB/core: don't disallow registering region starting at 0x0
Yishai Hadas (9):
IB/mlx4: Alias GUID adding persistency support
net/mlx4_core: Manage alias GUID per VF
net/mlx4_core: Set initial admin GUIDs for VFs
IB/mlx4: Manage admin alias GUID upon admin request
IB/mlx4: Change init flow to request alias GUIDs for active VFs
IB/mlx4: Request alias GUID on demand
net/mlx4_core: Raise slave shutdown event upon FLR
net/mlx4_core: Return the admin alias GUID upon host view request
IB/mlx4: Change alias guids default to be host assigned
Documentation/filesystems/nfs/nfs-rdma.txt | 9 +-
MAINTAINERS | 9 +
drivers/infiniband/core/umem.c | 7 +-
drivers/infiniband/core/uverbs_main.c | 22 +-
drivers/infiniband/hw/mlx4/alias_GUID.c | 457 +++++++++++++-----
drivers/infiniband/hw/mlx4/mad.c | 9 +
drivers/infiniband/hw/mlx4/main.c | 26 +-
drivers/infiniband/hw/mlx4/mlx4_ib.h | 14 +-
drivers/infiniband/hw/mlx4/qp.c | 7 +-
drivers/infiniband/hw/mlx4/sysfs.c | 44 +-
drivers/infiniband/ulp/ipoib/ipoib.h | 31 +-
drivers/infiniband/ulp/ipoib/ipoib_cm.c | 18 +-
drivers/infiniband/ulp/ipoib/ipoib_ib.c | 195 ++++----
drivers/infiniband/ulp/ipoib/ipoib_main.c | 73 ++-
drivers/infiniband/ulp/ipoib/ipoib_multicast.c | 520 ++++++++++----------
drivers/infiniband/ulp/ipoib/ipoib_verbs.c | 44 +-
drivers/infiniband/ulp/iser/iscsi_iser.h | 66 +--
drivers/infiniband/ulp/iser/iser_initiator.c | 66 ++-
drivers/infiniband/ulp/iser/iser_memory.c | 523 ++++++++++++---------
drivers/infiniband/ulp/iser/iser_verbs.c | 220 +++------
drivers/infiniband/ulp/srp/ib_srp.c | 9 +-
drivers/infiniband/ulp/srpt/ib_srpt.c | 188 ++++----
drivers/net/ethernet/mellanox/mlx4/cmd.c | 42 +-
drivers/net/ethernet/mellanox/mlx4/eq.c | 2 +
drivers/net/ethernet/mellanox/mlx4/main.c | 31 ++
drivers/net/ethernet/mellanox/mlx4/mlx4.h | 1 +
.../net/ethernet/mellanox/mlx5/core/pagealloc.c | 10 +-
include/linux/mlx4/device.h | 4 +
28 files changed, 1513 insertions(+), 1134 deletions(-)
^ permalink raw reply [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
@ 2015-04-02 17:27 Roland Dreier
0 siblings, 0 replies; 223+ messages in thread
From: Roland Dreier @ 2015-04-02 17:27 UTC (permalink / raw)
To: Linus Torvalds; +Cc: linux-rdma, linux-kernel
Hi Linus,
Please pull from
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git tags/rdma-for-linus
----------------------------------------------------------------
One 4.0 RDMA change:
- Fix for exploitable integer overflow in uverbs interface.
----------------------------------------------------------------
Shachar Raindel (1):
IB/uverbs: Prevent integer overflow in ib_umem_get address arithmetic
drivers/infiniband/core/umem.c | 8 ++++++++
1 file changed, 8 insertions(+)
^ permalink raw reply [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
@ 2015-02-20 17:08 Roland Dreier
0 siblings, 0 replies; 223+ messages in thread
From: Roland Dreier @ 2015-02-20 17:08 UTC (permalink / raw)
To: Linus Torvalds; +Cc: linux-kernel, linux-rdma
Hi Linus,
Please pull from
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git tags/rdma-for-linus
----------------------------------------------------------------
InfiniBand/RDMA changes for 3.20 merge window:
- Re-enable on-demand paging changes with stable ABI
- Fairly large set of ocrdma HW driver fixes
- Some qib HW driver fixes
- Other miscellaneous changes
----------------------------------------------------------------
Andreea-Cristina Bernat (2):
IB/qib: Replace rcu_assign_pointer() with RCU_INIT_POINTER() in qib_qp.c
IB/qib: Replace rcu_assign_pointer() with RCU_INIT_POINTER() in qib_keys.c
Ariel Nahum (1):
IB/iser: Release the iscsi endpoint if ep_disconnect wasn't called
Bart Van Assche (1):
MAINTAINERS: Update SRP initiator entry
Dan Carpenter (2):
IB/mlx5: Fix error code in get_port_caps()
RDMA/ocrdma: Fix off by one in ocrdma_query_gid()
Devesh Sharma (4):
RDMA/ocrdma: Report correct count of interrupt vectors while registering ocrdma device
RDMA/ocrdma: Discontinue support of RDMA-READ-WITH-INVALIDATE
RDMA/ocrdma: Honor return value of ocrdma_resolve_dmac
RDMA/ocrdma: set vlan present bit for user AH
Eli Cohen (1):
IB/core: Add support for extended query device caps
Haggai Eran (3):
IB/core: Properly handle registration of on-demand paging MRs after dereg
IB/core: Add on demand paging caps to ib_uverbs_ex_query_device
IB/mlx5: Enable the ODP capability query verb
Hariprasad S (2):
RDMA/cxgb4: Serialize CQ event upcalls with CQ destruction
RDMA/cxgb4: Don't hang threads forever waiting on WR replies
Ilya Nelkenbaum (1):
IB/core: When marshaling ucma path from user-space, clear unused fields
Jack Morgenstein (1):
IB/mlx4: In mlx4_ib_demux_cm, print out GUID in host-endian order
Majd Dibbiny (3):
IB/mlx4: Fix memory leak in __mlx4_ib_modify_qp
IB/mlx4: Bug fixes in mlx4_ib_resize_cq
IB/mlx5: Update the dev in reg_create
Mike Marciniszyn (3):
IB/qib: Fix sizeof checkpatch warnings
IB/qib: Fix checkpatch warnings
IB/qib: Add blank line after declaration
Mitesh Ahuja (7):
RDMA/ocrdma: Add support for IB stack compliant stats in sysfs.
RDMA/ocrdma: Increase the GID table size.
RDMA/ocrdma: Move PD resource management to driver.
RDMA/ocrdma: Host crash on destroying device resources
RDMA/ocrdma: Add support for interrupt moderation
RDMA/ocrdma: remove reference of ocrdma_dev out of ocrdma_qp structure
RDMA/ocrdma: Update the ocrdma module version string
Mitko Haralanov (1):
IB/qib: Do not write EEPROM
Moshe Lazer (1):
IB/core: Fix deadlock on uverbs modify_qp error flow
Or Gerlitz (1):
IB/mlx4: Fix wrong usage of IPv4 protocol for multicast attach/detach
Padmanabh Ratnakar (1):
RDMA/ocrdma: Report correct state in ibv_query_qp
Rasmus Villemoes (2):
RDMA/ocrdma: Help gcc generate better code for ocrdma_srq_toggle_bit
RDMA/ocrdma: Use unsigned for bit index
Rickard Strandqvist (1):
IB/ipath: Remove unused function in ipath_wc_ppc64
Roi Dayan (1):
IB/iser: Use correct dma direction when unmapping SGs
Roland Dreier (1):
Merge branches 'core', 'cxgb4', 'iser', 'mlx4', 'mlx5', 'ocrdma', 'odp', 'qib' and 'srp' into for-next
Sagi Grimberg (1):
IB/iser: Fix memory regions possible leak
Selvin Xavier (2):
RDMA/ocrdma: Debugfs enhancments for ocrdma driver
RDMA/ocrdma: Allow expansion of the SQ CQEs via buddy CQ expansion of the QP
Vinit Agnihotri (1):
IB/qib: Add support for the new QMH7360 card
MAINTAINERS | 2 +-
drivers/infiniband/core/ucma.c | 3 +
drivers/infiniband/core/umem_odp.c | 3 +-
drivers/infiniband/core/uverbs.h | 1 +
drivers/infiniband/core/uverbs_cmd.c | 158 +++++++++----
drivers/infiniband/core/uverbs_main.c | 1 +
drivers/infiniband/hw/cxgb4/ev.c | 9 +-
drivers/infiniband/hw/cxgb4/iw_cxgb4.h | 29 ++-
drivers/infiniband/hw/ipath/ipath_kernel.h | 3 -
drivers/infiniband/hw/ipath/ipath_wc_ppc64.c | 13 --
drivers/infiniband/hw/ipath/ipath_wc_x86_64.c | 15 --
drivers/infiniband/hw/mlx4/cm.c | 2 +-
drivers/infiniband/hw/mlx4/cq.c | 7 +-
drivers/infiniband/hw/mlx4/main.c | 10 +-
drivers/infiniband/hw/mlx4/qp.c | 6 +-
drivers/infiniband/hw/mlx5/main.c | 4 +-
drivers/infiniband/hw/mlx5/mr.c | 1 +
drivers/infiniband/hw/ocrdma/ocrdma.h | 38 +++-
drivers/infiniband/hw/ocrdma/ocrdma_ah.c | 38 +++-
drivers/infiniband/hw/ocrdma/ocrdma_ah.h | 6 +
drivers/infiniband/hw/ocrdma/ocrdma_hw.c | 312 ++++++++++++++++++++++----
drivers/infiniband/hw/ocrdma/ocrdma_hw.h | 2 +
drivers/infiniband/hw/ocrdma/ocrdma_main.c | 12 +-
drivers/infiniband/hw/ocrdma/ocrdma_sli.h | 68 +++++-
drivers/infiniband/hw/ocrdma/ocrdma_stats.c | 241 ++++++++++++++++++++
drivers/infiniband/hw/ocrdma/ocrdma_stats.h | 6 +-
drivers/infiniband/hw/ocrdma/ocrdma_verbs.c | 183 ++++++++++++---
drivers/infiniband/hw/qib/qib.h | 16 +-
drivers/infiniband/hw/qib/qib_common.h | 4 +-
drivers/infiniband/hw/qib/qib_debugfs.c | 1 -
drivers/infiniband/hw/qib/qib_diag.c | 9 +-
drivers/infiniband/hw/qib/qib_driver.c | 5 +-
drivers/infiniband/hw/qib/qib_eeprom.c | 198 +---------------
drivers/infiniband/hw/qib/qib_file_ops.c | 26 ++-
drivers/infiniband/hw/qib/qib_fs.c | 9 +-
drivers/infiniband/hw/qib/qib_iba6120.c | 15 +-
drivers/infiniband/hw/qib/qib_iba7220.c | 14 +-
drivers/infiniband/hw/qib/qib_iba7322.c | 52 +++--
drivers/infiniband/hw/qib/qib_init.c | 12 +-
drivers/infiniband/hw/qib/qib_intr.c | 1 -
drivers/infiniband/hw/qib/qib_keys.c | 4 +-
drivers/infiniband/hw/qib/qib_mad.c | 20 +-
drivers/infiniband/hw/qib/qib_mmap.c | 2 +-
drivers/infiniband/hw/qib/qib_mr.c | 10 +-
drivers/infiniband/hw/qib/qib_pcie.c | 10 +-
drivers/infiniband/hw/qib/qib_qp.c | 8 +-
drivers/infiniband/hw/qib/qib_qsfp.c | 13 +-
drivers/infiniband/hw/qib/qib_rc.c | 4 +-
drivers/infiniband/hw/qib/qib_ruc.c | 8 +-
drivers/infiniband/hw/qib/qib_sd7220.c | 9 +-
drivers/infiniband/hw/qib/qib_sysfs.c | 28 +--
drivers/infiniband/hw/qib/qib_twsi.c | 5 +-
drivers/infiniband/hw/qib/qib_tx.c | 1 +
drivers/infiniband/hw/qib/qib_ud.c | 2 +-
drivers/infiniband/hw/qib/qib_user_sdma.c | 8 +-
drivers/infiniband/hw/qib/qib_verbs.c | 15 +-
drivers/infiniband/hw/qib/qib_verbs_mcast.c | 4 +-
drivers/infiniband/hw/qib/qib_wc_x86_64.c | 7 +-
drivers/infiniband/ulp/iser/iscsi_iser.h | 4 +-
drivers/infiniband/ulp/iser/iser_initiator.c | 16 +-
drivers/infiniband/ulp/iser/iser_memory.c | 9 +-
drivers/infiniband/ulp/iser/iser_verbs.c | 27 ++-
include/uapi/rdma/ib_user_verbs.h | 23 ++
63 files changed, 1212 insertions(+), 560 deletions(-)
^ permalink raw reply [flat|nested] 223+ messages in thread
* Re: [GIT PULL] please pull infiniband.git
2015-02-06 21:19 Roland Dreier
@ 2015-02-07 15:58 ` Yann Droneaud
0 siblings, 0 replies; 223+ messages in thread
From: Yann Droneaud @ 2015-02-07 15:58 UTC (permalink / raw)
To: Linus Torvalds; +Cc: Roland Dreier, linux-rdma, linux-kernel
Hi,
Le vendredi 06 février 2015 à 13:19 -0800, Roland Dreier a écrit :
>
> Please pull from
>
> git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git tags/rdma-for-linus
>
> ----------------------------------------------------------------
> One more last-second RDMA change for 3.19:
> - Yann realized that the previous revert of new userspace ABI did not
> go far enough, and we're still exposing a change that we don't want.
> Revert even closer to 3.18 interface to make sure we get things right
> in the long run.
>
> Sorry for sending this at the very end of the release cycle, but we
> didn't realize the scope of the required fix until just now.
>
I hope this could go in v3.19 as, at this stage, we don't want to expose
any bits of this ABI in a released kernel.
Regards.
--
Yann Droneaud
OPTEYA
^ permalink raw reply [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
@ 2015-02-06 21:19 Roland Dreier
2015-02-07 15:58 ` Yann Droneaud
0 siblings, 1 reply; 223+ messages in thread
From: Roland Dreier @ 2015-02-06 21:19 UTC (permalink / raw)
To: Linus Torvalds; +Cc: linux-rdma, linux-kernel
Hi Linus,
Please pull from
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git tags/rdma-for-linus
----------------------------------------------------------------
One more last-second RDMA change for 3.19:
- Yann realized that the previous revert of new userspace ABI did not
go far enough, and we're still exposing a change that we don't want.
Revert even closer to 3.18 interface to make sure we get things right
in the long run.
Sorry for sending this at the very end of the release cycle, but we
didn't realize the scope of the required fix until just now.
----------------------------------------------------------------
Yann Droneaud (1):
Revert "IB/core: Add support for extended query device caps"
drivers/infiniband/core/uverbs.h | 1 -
drivers/infiniband/core/uverbs_cmd.c | 137 +++++++++++------------------------
drivers/infiniband/hw/mlx5/main.c | 2 -
include/rdma/ib_verbs.h | 5 +-
include/uapi/rdma/ib_user_verbs.h | 27 -------
5 files changed, 42 insertions(+), 130 deletions(-)
^ permalink raw reply [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
@ 2015-02-03 21:42 Roland Dreier
0 siblings, 0 replies; 223+ messages in thread
From: Roland Dreier @ 2015-02-03 21:42 UTC (permalink / raw)
To: Linus Torvalds; +Cc: linux-rdma, linux-kernel
Hi Linus,
Please pull from
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git tags/rdma-for-linus
----------------------------------------------------------------
Last minute InfiniBand/RDMA changes for 3.19:
- Revert IPoIB driver back to 3.18 state. We had a number of fixes go
into 3.19, but they introduced regressions. We tried to get everything
fixed up but ran out of time, so we'll try again for 3.20.
- Similarly, turn off the new "extended query port" verb. Late in the
cycle we realized the ABI is not quite right, and rather than freeze
something in a rush and make a mistake, we'll take a bit more time
and get it right in 3.20.
----------------------------------------------------------------
Haggai Eran (1):
IB/core: Temporarily disable ex_query_device uverb
Roland Dreier (9):
Revert "IPoIB: No longer use flush as a parameter"
Revert "IPoIB: Make ipoib_mcast_stop_thread flush the workqueue"
Revert "IPoIB: Use dedicated workqueues per interface"
Revert "IPoIB: change init sequence ordering"
Revert "IPoIB: fix mcast_dev_flush/mcast_restart_task race"
Revert "IPoIB: fix MCAST_FLAG_BUSY usage"
Revert "IPoIB: Make the carrier_on_task race aware"
Revert "IPoIB: Consolidate rtnl_lock tasks in workqueue"
Merge branches 'ipoib' and 'odp' into for-next
drivers/infiniband/core/uverbs_main.c | 1 -
drivers/infiniband/ulp/ipoib/ipoib.h | 19 +-
drivers/infiniband/ulp/ipoib/ipoib_cm.c | 18 +-
drivers/infiniband/ulp/ipoib/ipoib_ib.c | 27 +--
drivers/infiniband/ulp/ipoib/ipoib_main.c | 49 ++---
drivers/infiniband/ulp/ipoib/ipoib_multicast.c | 239 +++++++++----------------
drivers/infiniband/ulp/ipoib/ipoib_verbs.c | 22 +--
7 files changed, 134 insertions(+), 241 deletions(-)
^ permalink raw reply [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
@ 2014-12-19 0:03 Roland Dreier
0 siblings, 0 replies; 223+ messages in thread
From: Roland Dreier @ 2014-12-19 0:03 UTC (permalink / raw)
To: Linus Torvalds; +Cc: linux-rdma, linux-kernel
Hi Linus,
Please pull from
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git tags/rdma-for-linus
----------------------------------------------------------------
Main batch of InfiniBand/RDMA changes for 3.19:
- On-demand paging support in core midlayer and mlx5 driver. This lets
userspace create non-pinned memory regions and have the adapter HW
trigger page faults.
- iSER and IPoIB updates and fixes.
- Low-level HW driver updates for cxgb4, mlx4 and ocrdma.
- Other miscellaneous fixes.
----------------------------------------------------------------
Ariel Nahum (2):
IB/iser: Collapse cleanup and disconnect handlers
IB/iser: Fix possible NULL derefernce ib_conn->device in session_create
Devesh Sharma (1):
RDMA/ocrdma: Always resolve destination mac from GRH for UD QPs
Doug Ledford (8):
IPoIB: Consolidate rtnl_lock tasks in workqueue
IPoIB: Make the carrier_on_task race aware
IPoIB: fix MCAST_FLAG_BUSY usage
IPoIB: fix mcast_dev_flush/mcast_restart_task race
IPoIB: change init sequence ordering
IPoIB: Use dedicated workqueues per interface
IPoIB: Make ipoib_mcast_stop_thread flush the workqueue
IPoIB: No longer use flush as a parameter
Eli Cohen (1):
IB/core: Add support for extended query device caps
Haggai Eran (14):
IB/mlx5: Remove per-MR pas and dma pointers
IB/mlx5: Enhance UMR support to allow partial page table update
IB/core: Replace ib_umem's offset field with a full address
IB/core: Add umem function to read data from user-space
IB/mlx5: Add function to read WQE from user-space
IB/core: Implement support for MMU notifiers regarding on demand paging regions
mlx5_core: Add support for page faults events and low level handling
IB/mlx5: Implement the ODP capability query verb
IB/mlx5: Changes in memory region creation to support on-demand paging
IB/mlx5: Add mlx5_ib_update_mtt to update page tables after creation
IB/mlx5: Page faults handling infrastructure
IB/mlx5: Handle page faults
IB/mlx5: Add support for RDMA read/write responder page faults
IB/mlx5: Implement on demand paging by adding support for MMU notifiers
Hariprasad S (1):
RDMA/cxgb4: Handle NET_XMIT return codes
Hariprasad Shenai (2):
RDMA/cxgb4: Fix locking issue in process_mpa_request
RDMA/cxgb4: Limit MRs to < 8GB for T4/T5 devices
Jack Morgenstein (2):
IB/core: Fix mgid key handling in SA agent multicast data-base
IB/mlx4: Fix an incorrectly shadowed variable in mlx4_ib_rereg_user_mr
Max Gurtovoy (1):
IB/iser: Fix possible SQ overflow
Minh Tran (1):
IB/iser: Re-adjust CQ and QP send ring sizes to HW limits
Mitesh Ahuja (1):
RDMA/ocrdma: Fix ocrdma_query_qp() to report q_key value for UD QPs
Moni Shoua (1):
IB/core: Do not resolve VLAN if already resolved
Or Gerlitz (1):
IB/iser: Bump version to 1.5
Or Kehati (1):
IB/addr: Improve address resolution callback scheduling
Pramod Kumar (2):
RDMA/cxgb4: Increase epd buff size for debug interface
RDMA/cxgb4: Configure 0B MRs to match HW implementation
Roland Dreier (2):
mlx5_core: Re-add MLX5_DEV_CAP_FLAG_ON_DMND_PG flag
Merge branches 'core', 'cxgb4', 'ipoib', 'iser', 'mlx4', 'ocrdma', 'odp' and 'srp' into for-next
Sagi Grimberg (13):
IB/iser: Fix catastrophic error flow hang
IB/iser: Decrement CQ's active QPs accounting when QP creation fails
IB/iser: Fix sparse warnings
IB/iser: Fix race between iser connection teardown and scsi TMFs
IB/iser: Terminate connection before cleaning inflight tasks
IB/iser: Centralize memory region invalidation to a function
IB/iser: Remove redundant is_mr indicator
IB/iser: Use more completion queues
IB/iser: Micro-optimize iser logging
IB/iser: Micro-optimize iser_handle_wc
IB/iser: DIX update
IB/core: Add flags for on demand paging support
IB/srp: Allow newline separator for connection string
Shachar Raindel (1):
IB/core: Add support for on demand paging regions
Steve Wise (1):
RDMA/cxgb4: Wake up waiters after flushing the qp
Yuval Shaia (1):
mlx4_core: Check for DPDP violation only when DPDP is not supported
drivers/infiniband/Kconfig | 11 +
drivers/infiniband/core/Makefile | 1 +
drivers/infiniband/core/addr.c | 4 +-
drivers/infiniband/core/multicast.c | 11 +-
drivers/infiniband/core/umem.c | 72 ++-
drivers/infiniband/core/umem_odp.c | 668 +++++++++++++++++++++
drivers/infiniband/core/umem_rbtree.c | 94 +++
drivers/infiniband/core/uverbs.h | 1 +
drivers/infiniband/core/uverbs_cmd.c | 171 ++++--
drivers/infiniband/core/uverbs_main.c | 5 +-
drivers/infiniband/core/verbs.c | 3 +-
drivers/infiniband/hw/amso1100/c2_provider.c | 2 +-
drivers/infiniband/hw/cxgb4/cm.c | 7 +-
drivers/infiniband/hw/cxgb4/device.c | 2 +-
drivers/infiniband/hw/cxgb4/mem.c | 28 +-
drivers/infiniband/hw/cxgb4/qp.c | 2 +-
drivers/infiniband/hw/ehca/ehca_mrmw.c | 2 +-
drivers/infiniband/hw/ipath/ipath_mr.c | 2 +-
drivers/infiniband/hw/mlx4/mr.c | 1 -
drivers/infiniband/hw/mlx5/Makefile | 1 +
drivers/infiniband/hw/mlx5/main.c | 45 +-
drivers/infiniband/hw/mlx5/mem.c | 69 ++-
drivers/infiniband/hw/mlx5/mlx5_ib.h | 116 +++-
drivers/infiniband/hw/mlx5/mr.c | 323 ++++++++--
drivers/infiniband/hw/mlx5/odp.c | 798 +++++++++++++++++++++++++
drivers/infiniband/hw/mlx5/qp.c | 197 ++++--
drivers/infiniband/hw/nes/nes_verbs.c | 6 +-
drivers/infiniband/hw/ocrdma/ocrdma_ah.c | 5 +-
drivers/infiniband/hw/ocrdma/ocrdma_verbs.c | 4 +-
drivers/infiniband/hw/qib/qib_mr.c | 2 +-
drivers/infiniband/ulp/ipoib/ipoib.h | 19 +-
drivers/infiniband/ulp/ipoib/ipoib_cm.c | 18 +-
drivers/infiniband/ulp/ipoib/ipoib_ib.c | 27 +-
drivers/infiniband/ulp/ipoib/ipoib_main.c | 49 +-
drivers/infiniband/ulp/ipoib/ipoib_multicast.c | 239 +++++---
drivers/infiniband/ulp/ipoib/ipoib_verbs.c | 22 +-
drivers/infiniband/ulp/iser/iscsi_iser.c | 104 +++-
drivers/infiniband/ulp/iser/iscsi_iser.h | 30 +-
drivers/infiniband/ulp/iser/iser_initiator.c | 6 +-
drivers/infiniband/ulp/iser/iser_memory.c | 102 +---
drivers/infiniband/ulp/iser/iser_verbs.c | 91 ++-
drivers/infiniband/ulp/srp/ib_srp.c | 2 +-
drivers/net/ethernet/mellanox/mlx4/main.c | 6 +-
drivers/net/ethernet/mellanox/mlx5/core/eq.c | 13 +-
drivers/net/ethernet/mellanox/mlx5/core/fw.c | 40 ++
drivers/net/ethernet/mellanox/mlx5/core/qp.c | 119 ++++
include/linux/mlx5/device.h | 72 ++-
include/linux/mlx5/driver.h | 14 +-
include/linux/mlx5/qp.h | 65 ++
include/rdma/ib_umem.h | 34 +-
include/rdma/ib_umem_odp.h | 160 +++++
include/rdma/ib_verbs.h | 54 +-
include/uapi/rdma/ib_user_verbs.h | 29 +-
53 files changed, 3511 insertions(+), 457 deletions(-)
create mode 100644 drivers/infiniband/core/umem_odp.c
create mode 100644 drivers/infiniband/core/umem_rbtree.c
create mode 100644 drivers/infiniband/hw/mlx5/odp.c
create mode 100644 include/rdma/ib_umem_odp.h
^ permalink raw reply [flat|nested] 223+ messages in thread
* Re: [GIT PULL] please pull infiniband.git
2014-11-02 20:06 ` Dave Airlie
2014-11-03 7:15 ` Eli Cohen
@ 2014-11-03 7:58 ` Sagi Grimberg
1 sibling, 0 replies; 223+ messages in thread
From: Sagi Grimberg @ 2014-11-03 7:58 UTC (permalink / raw)
To: Dave Airlie, Roland Dreier; +Cc: Linus Torvalds, linux-rdma, LKML
On 11/2/2014 10:06 PM, Dave Airlie wrote:
> On 17 October 2014 08:52, Roland Dreier <roland@kernel.org> wrote:
>> Hi Linus,
>>
>> Please pull from
>>
>> git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git tags/rdma-for-linus
>>
>> ----------------------------------------------------------------
>> Main set of InfiniBand/RDMA updates for 3.18 merge window:
>>
>> - Large set of iSER initiator improvements
>> - Hardware driver fixes for cxgb4, mlx5 and ocrdma
>> - Small fixes to core midlayer
>>
>
> building on 32-bit x86.
>
> CC [M] drivers/infiniband/ulp/iser/iser_verbs.o
> /home/airlied/devel/kernel/linux-2.6/drivers/infiniband/ulp/iser/iser_verbs.c:
> In function ‘iser_handle_comp_error’:
> /home/airlied/devel/kernel/linux-2.6/drivers/infiniband/ulp/iser/iser_verbs.c:1171:33:
> warning: cast to pointer from integer of different size
> [-Wint-to-pointer-cast]
> if (is_iser_tx_desc(iser_conn, (void *)wc->wr_id)) {
> ^
> /home/airlied/devel/kernel/linux-2.6/drivers/infiniband/ulp/iser/iser_verbs.c:1172:31:
> warning: cast to pointer from integer of different size
> [-Wint-to-pointer-cast]
> struct iser_tx_desc *desc = (struct iser_tx_desc *)wc->wr_id;
> ^
> /home/airlied/devel/kernel/linux-2.6/drivers/infiniband/ulp/iser/iser_verbs.c:
> In function ‘iser_handle_wc’:
> /home/airlied/devel/kernel/linux-2.6/drivers/infiniband/ulp/iser/iser_verbs.c:1198:14:
> warning: cast to pointer from integer of different size
> [-Wint-to-pointer-cast]
> rx_desc = (struct iser_rx_desc *)wc->wr_id;
> ^
> /home/airlied/devel/kernel/linux-2.6/drivers/infiniband/ulp/iser/iser_verbs.c:1203:14:
> warning: cast to pointer from integer of different size
> [-Wint-to-pointer-cast]
> tx_desc = (struct iser_tx_desc *)wc->wr_id;
> ^
>
> Not sure anyone would ever want to run this code on 32-bit boxes, but
> I'm a bit worried if wr_id is a 64-bit value, and we encode it into a
> 32-bit pointer, you'd always lose the top 32-bits.
>
Hey Dave,
This was addressed in:
http://marc.info/?l=linux-rdma&m=141448978030924&w=2 (part of iser fixes
for 3.18-rc).
Thanks!
Sagi.
^ permalink raw reply [flat|nested] 223+ messages in thread
* Re: [GIT PULL] please pull infiniband.git
2014-11-02 20:06 ` Dave Airlie
@ 2014-11-03 7:15 ` Eli Cohen
2014-11-03 7:58 ` Sagi Grimberg
1 sibling, 0 replies; 223+ messages in thread
From: Eli Cohen @ 2014-11-03 7:15 UTC (permalink / raw)
To: Dave Airlie; +Cc: Roland Dreier, Linus Torvalds, linux-rdma, LKML
On Mon, Nov 03, 2014 at 06:06:45AM +1000, Dave Airlie wrote:
> On 17 October 2014 08:52, Roland Dreier <roland@kernel.org> wrote:
> > Hi Linus,
> >
> > Please pull from
> >
> > git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git tags/rdma-for-linus
> >
> > ----------------------------------------------------------------
> > Main set of InfiniBand/RDMA updates for 3.18 merge window:
> >
> > - Large set of iSER initiator improvements
> > - Hardware driver fixes for cxgb4, mlx5 and ocrdma
> > - Small fixes to core midlayer
> >
>
> building on 32-bit x86.
>
> CC [M] drivers/infiniband/ulp/iser/iser_verbs.o
> /home/airlied/devel/kernel/linux-2.6/drivers/infiniband/ulp/iser/iser_verbs.c:
> In function ‘iser_handle_comp_error’:
> /home/airlied/devel/kernel/linux-2.6/drivers/infiniband/ulp/iser/iser_verbs.c:1171:33:
> warning: cast to pointer from integer of different size
> [-Wint-to-pointer-cast]
> if (is_iser_tx_desc(iser_conn, (void *)wc->wr_id)) {
> ^
> /home/airlied/devel/kernel/linux-2.6/drivers/infiniband/ulp/iser/iser_verbs.c:1172:31:
> warning: cast to pointer from integer of different size
> [-Wint-to-pointer-cast]
> struct iser_tx_desc *desc = (struct iser_tx_desc *)wc->wr_id;
> ^
> /home/airlied/devel/kernel/linux-2.6/drivers/infiniband/ulp/iser/iser_verbs.c:
> In function ‘iser_handle_wc’:
> /home/airlied/devel/kernel/linux-2.6/drivers/infiniband/ulp/iser/iser_verbs.c:1198:14:
> warning: cast to pointer from integer of different size
> [-Wint-to-pointer-cast]
> rx_desc = (struct iser_rx_desc *)wc->wr_id;
> ^
> /home/airlied/devel/kernel/linux-2.6/drivers/infiniband/ulp/iser/iser_verbs.c:1203:14:
> warning: cast to pointer from integer of different size
> [-Wint-to-pointer-cast]
> tx_desc = (struct iser_tx_desc *)wc->wr_id;
> ^
>
> Not sure anyone would ever want to run this code on 32-bit boxes, but
> I'm a bit worried if wr_id is a 64-bit value, and we encode it into a
> 32-bit pointer, you'd always lose the top 32-bits.
>
On 32 bit systems your pointer is 32 bits as well so assigning to u64
and casting back to a pointer you don't loose anything. Maybe casting
from u64 to a pointer should go through casting to uintptr_t to avoid
warnings.
^ permalink raw reply [flat|nested] 223+ messages in thread
* Re: [GIT PULL] please pull infiniband.git
2014-10-16 22:52 Roland Dreier
2014-10-20 23:28 ` Doug Ledford
@ 2014-11-02 20:06 ` Dave Airlie
2014-11-03 7:15 ` Eli Cohen
2014-11-03 7:58 ` Sagi Grimberg
1 sibling, 2 replies; 223+ messages in thread
From: Dave Airlie @ 2014-11-02 20:06 UTC (permalink / raw)
To: Roland Dreier; +Cc: Linus Torvalds, linux-rdma, LKML
On 17 October 2014 08:52, Roland Dreier <roland@kernel.org> wrote:
> Hi Linus,
>
> Please pull from
>
> git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git tags/rdma-for-linus
>
> ----------------------------------------------------------------
> Main set of InfiniBand/RDMA updates for 3.18 merge window:
>
> - Large set of iSER initiator improvements
> - Hardware driver fixes for cxgb4, mlx5 and ocrdma
> - Small fixes to core midlayer
>
building on 32-bit x86.
CC [M] drivers/infiniband/ulp/iser/iser_verbs.o
/home/airlied/devel/kernel/linux-2.6/drivers/infiniband/ulp/iser/iser_verbs.c:
In function ‘iser_handle_comp_error’:
/home/airlied/devel/kernel/linux-2.6/drivers/infiniband/ulp/iser/iser_verbs.c:1171:33:
warning: cast to pointer from integer of different size
[-Wint-to-pointer-cast]
if (is_iser_tx_desc(iser_conn, (void *)wc->wr_id)) {
^
/home/airlied/devel/kernel/linux-2.6/drivers/infiniband/ulp/iser/iser_verbs.c:1172:31:
warning: cast to pointer from integer of different size
[-Wint-to-pointer-cast]
struct iser_tx_desc *desc = (struct iser_tx_desc *)wc->wr_id;
^
/home/airlied/devel/kernel/linux-2.6/drivers/infiniband/ulp/iser/iser_verbs.c:
In function ‘iser_handle_wc’:
/home/airlied/devel/kernel/linux-2.6/drivers/infiniband/ulp/iser/iser_verbs.c:1198:14:
warning: cast to pointer from integer of different size
[-Wint-to-pointer-cast]
rx_desc = (struct iser_rx_desc *)wc->wr_id;
^
/home/airlied/devel/kernel/linux-2.6/drivers/infiniband/ulp/iser/iser_verbs.c:1203:14:
warning: cast to pointer from integer of different size
[-Wint-to-pointer-cast]
tx_desc = (struct iser_tx_desc *)wc->wr_id;
^
Not sure anyone would ever want to run this code on 32-bit boxes, but
I'm a bit worried if wr_id is a 64-bit value, and we encode it into a
32-bit pointer, you'd always lose the top 32-bits.
Dave.
^ permalink raw reply [flat|nested] 223+ messages in thread
* Re: [GIT PULL] please pull infiniband.git
2014-10-16 22:52 Roland Dreier
@ 2014-10-20 23:28 ` Doug Ledford
2014-11-02 20:06 ` Dave Airlie
1 sibling, 0 replies; 223+ messages in thread
From: Doug Ledford @ 2014-10-20 23:28 UTC (permalink / raw)
To: Roland Dreier; +Cc: Linus Torvalds, linux-rdma, linux-kernel
[-- Attachment #1: Type: text/plain, Size: 792 bytes --]
On Thu, 2014-10-16 at 15:52 -0700, Roland Dreier wrote:
> Hi Linus,
>
> Please pull from
>
> git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git tags/rdma-for-linus
>
> ----------------------------------------------------------------
> Main set of InfiniBand/RDMA updates for 3.18 merge window:
>
> - Large set of iSER initiator improvements
> - Hardware driver fixes for cxgb4, mlx5 and ocrdma
> - Small fixes to core midlayer
The IPoIB multicast locking fixes I submitted for 3.17 that you put off
until 3.18 are missing from this list. The set can be found here in
case you've lost them:
https://patchwork.kernel.org/bundle/dledford/IPoIB%20Locking%20Fixes/
--
Doug Ledford <dledford@redhat.com>
GPG KeyID: 0E572FDD
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 819 bytes --]
^ permalink raw reply [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
@ 2014-10-16 22:52 Roland Dreier
2014-10-20 23:28 ` Doug Ledford
2014-11-02 20:06 ` Dave Airlie
0 siblings, 2 replies; 223+ messages in thread
From: Roland Dreier @ 2014-10-16 22:52 UTC (permalink / raw)
To: Linus Torvalds; +Cc: linux-rdma, linux-kernel
Hi Linus,
Please pull from
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git tags/rdma-for-linus
----------------------------------------------------------------
Main set of InfiniBand/RDMA updates for 3.18 merge window:
- Large set of iSER initiator improvements
- Hardware driver fixes for cxgb4, mlx5 and ocrdma
- Small fixes to core midlayer
----------------------------------------------------------------
Ariel Nahum (3):
IB/iser: Unbind at conn_stop stage
IB/iser: Use iser_warn instead of BUG_ON in iser_conn_release
IB/iser: Change iscsi_conn_stop log level to info
Devesh Sharma (3):
RDMA/ocrdma: Add default GID at index 0
RDMA/ocrdma: Convert kernel VA to PA for mmap in user
IB/core: Clear AH attr variable to prevent garbage data
Eli Cohen (5):
IB/mlx5: Clear umr resources after ib_unregister_device
IB/mlx5: Improve debug prints in mlx5_ib_reg_user_mr
IB/core: Avoid leakage from kernel to user space
IB/mlx5: Fix possible array overflow
IB/mlx5: Remove duplicate code from mlx5_set_path
Hariprasad S (3):
RDMA/cxgb4: Take IPv6 into account for best_mtu and set_emss
RDMA/cxgb4: Add missing neigh_release in find_route
RDMA/cxgb4: Fix ntuple calculation for ipv6 and remove duplicate line
Jack Morgenstein (1):
IB/core: Fix XRC race condition in ib_uverbs_open_qp
Jes Sorensen (3):
RDMA/ocrdma: Don't memset() buffers we just allocated with kzalloc()
RDMA/ocrdma: The kernel has a perfectly good BIT() macro - use it
RDMA/ocrdma: Save the bit environment, spare unncessary parenthesis
Li RongQing (1):
RDMA/ocrdma: Remove a unused-label warning
Or Gerlitz (1):
IB/iser: Bump version, add maintainer
Roi Dayan (1):
IB/iser: Remove unused variables and dead code
Roland Dreier (1):
Merge branches 'core', 'cxgb4', 'iser', 'mlx5' and 'ocrdma' into for-next
Sagi Grimberg (23):
IB/iser: Rename ib_conn -> iser_conn
IB/iser: Re-introduce ib_conn
IB/iser: Extend iser_free_ib_conn_res()
IB/iser: Fix DEVICE REMOVAL handling in the absence of iscsi daemon
IB/iser: Don't bound release_work completions timeouts
IB/iser: Protect tasks cleanup in case IB device was already released
IB/iser: Signal iSCSI layer that transport is broken in error completions
IB/iser: Centralize iser completion contexts
IB/iser: Use internal polling budget to avoid possible live-lock
IB/iser: Use single CQ for RX and TX
IB/iser: Use beacon to indicate all completions were consumed
IB/iser: Optimize completion polling
IB/iser: Suppress scsi command send completions
IB/iser: Nit - add space after __func__ in iser logging
IB/iser: Add/Fix kernel doc style descriptions in iscsi_iser.h
IB/iser: Fix/add kernel-doc style description in iscsi_iser.c
IB/mlx5: Use enumerations for PI copy mask
IB/iser: Remove redundant assignment
IB/iser: Set IP_CSUM as default guard type
IB/mlx5: Use extended internal signature layout
IB/iser: Centralize ib_sig_domain settings
Target/iser: Centralize ib_sig_domain setting
IB/mlx5, iser, isert: Add Signature API additions
Selvin Xavier (1):
RDMA/ocrdma: Get vlan tag from ib_qp_attrs
Steve Wise (1):
RDMA/cxgb4: Make c4iw_wr_log_size_order static
Yishai Hadas (1):
IB/mlx5: Modify to work with arbitrary page size
MAINTAINERS | 1 +
drivers/infiniband/core/uverbs_cmd.c | 2 +
drivers/infiniband/core/uverbs_main.c | 5 +
drivers/infiniband/hw/cxgb4/cm.c | 32 +-
drivers/infiniband/hw/cxgb4/device.c | 2 +-
drivers/infiniband/hw/mlx5/main.c | 8 +-
drivers/infiniband/hw/mlx5/mem.c | 18 +-
drivers/infiniband/hw/mlx5/mr.c | 6 +-
drivers/infiniband/hw/mlx5/qp.c | 149 +++---
drivers/infiniband/hw/ocrdma/ocrdma_hw.c | 25 +-
drivers/infiniband/hw/ocrdma/ocrdma_main.c | 12 +
drivers/infiniband/hw/ocrdma/ocrdma_sli.h | 238 +++++-----
drivers/infiniband/hw/ocrdma/ocrdma_verbs.c | 10 +-
drivers/infiniband/ulp/iser/iscsi_iser.c | 313 ++++++++++---
drivers/infiniband/ulp/iser/iscsi_iser.h | 408 +++++++++++-----
drivers/infiniband/ulp/iser/iser_initiator.c | 198 ++++----
drivers/infiniband/ulp/iser/iser_memory.c | 99 ++--
drivers/infiniband/ulp/iser/iser_verbs.c | 667 +++++++++++++++------------
drivers/infiniband/ulp/isert/ib_isert.c | 65 ++-
include/linux/mlx5/qp.h | 35 +-
include/rdma/ib_verbs.h | 32 +-
21 files changed, 1372 insertions(+), 953 deletions(-)
^ permalink raw reply [flat|nested] 223+ messages in thread
* Re: [GIT PULL] please pull infiniband.git
2014-09-23 21:58 Roland Dreier
@ 2014-09-27 21:19 ` Or Gerlitz
0 siblings, 0 replies; 223+ messages in thread
From: Or Gerlitz @ 2014-09-27 21:19 UTC (permalink / raw)
To: Roland Dreier
Cc: Linus Torvalds, Linux Kernel, linux-rdma, Greg Kroah-Hartman
On Wed, Sep 24, 2014 at 12:58 AM, Roland Dreier <roland@kernel.org> wrote:
> Hi Linus,
[..]
> This is later and bigger than I would like, and the blame is all on
> me: I got very busy with other stuff for a few weeks during the 3.17
> cycle, and didn't prepare this tree as soon as I should have. However
> I don't think there's anything risky here, and no one really cares if
> we break InfiniBand in 3.17 anyway...
Roland, sorry, but I don't understand the joke @ the last sentence,
can you elaborate?
Or.
^ permalink raw reply [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
@ 2014-09-23 21:58 Roland Dreier
2014-09-27 21:19 ` Or Gerlitz
0 siblings, 1 reply; 223+ messages in thread
From: Roland Dreier @ 2014-09-23 21:58 UTC (permalink / raw)
To: Linus Torvalds; +Cc: linux-kernel, linux-rdma
Hi Linus,
Please pull from
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git tags/rdma-for-linus
This is later and bigger than I would like, and the blame is all on
me: I got very busy with other stuff for a few weeks during the 3.17
cycle, and didn't prepare this tree as soon as I should have. However
I don't think there's anything risky here, and no one really cares if
we break InfiniBand in 3.17 anyway...
----------------------------------------------------------------
Last late set of InfiniBand/RDMA fixes for 3.17:
- Fixes for the new memory region re-registration support
- iSER initiator error path fixes
- Grab bag of small fixes for the qib and ocrdma hardware drivers
- Larger set of fixes for mlx4, especially in RoCE mode
----------------------------------------------------------------
Alex Estrin (1):
IPoIB: Remove unnecessary port query
Devesh Sharma (2):
RDMA/ocrdma: Report correct value of max_fast_reg_page_list_len
RDMA/ocrdma: Do not skip setting deferred_arm
Jack Morgenstein (6):
IB/mlx4: Fix lockdep splat for the iboe lock
mlx4: Fix mlx4 reg/unreg mac to work properly with 0-mac addresses
IB/mlx4: Avoid accessing netdevice when building RoCE qp1 header
IB/mlx4: Don't update QP1 in native mode
IB/mlx4: Do not allow APM under RoCE
IB/mlx4: Fix VF mac handling in RoCE
Markus Stockhausen (1):
IB/mlx4: Disable TSO for Connect-X rev. A0 HCAs
Matan Barak (2):
mlx4: Correct error flows in rereg_mr
IB/core: When marshaling uverbs path, clear unused fields
Mike Marciniszyn (3):
IB/ipath: Change get_user_pages() usage to always NULL vmas
IB/qib: Change get_user_pages() usage to always NULL vmas
IB/qib: Correct reference counting in debugfs qp_stats
Moni Shoua (5):
IB/mlx4: Avoid null pointer dereference in mlx4_ib_scan_netdevs()
IB/mlx4: Don't duplicate the default RoCE GID
IB/mlx4: Reorder steps in RoCE GID table initialization
IB/mlx4: Get upper dev addresses as RoCE GIDs when port comes up
IB/mlx4: Avoid executing gid task when device is being removed
Or Gerlitz (1):
IB/iser: Bump version to 1.4.1
Roi Dayan (1):
IB/iser: Fix RX/TX CQ resource leak on error flow
Roland Dreier (1):
Merge branches 'core', 'ipoib', 'iser', 'mlx4', 'ocrdma' and 'qib' into for-next
Sagi Grimberg (1):
IB/iser: Allow bind only when connection state is UP
Shawn Bohrer (1):
IB: ib_umem_release() should decrement mm->pinned_vm from ib_umem_get
devesh.sharma@emulex.com (2):
RDMA/ocrdma: Resolve L2 address when creating user AH
RDMA/ocrdma: Use right macro in query AH
drivers/infiniband/core/umem.c | 19 ++-
drivers/infiniband/core/uverbs_marshall.c | 4 +
drivers/infiniband/hw/ipath/ipath_user_pages.c | 6 +-
drivers/infiniband/hw/mlx4/main.c | 169 +++++++++++++++++--------
drivers/infiniband/hw/mlx4/mlx4_ib.h | 1 +
drivers/infiniband/hw/mlx4/mr.c | 7 +-
drivers/infiniband/hw/mlx4/qp.c | 60 +++++----
drivers/infiniband/hw/ocrdma/ocrdma_ah.c | 43 +++++--
drivers/infiniband/hw/ocrdma/ocrdma_verbs.c | 6 +-
drivers/infiniband/hw/qib/qib_debugfs.c | 3 +-
drivers/infiniband/hw/qib/qib_qp.c | 8 --
drivers/infiniband/hw/qib/qib_user_pages.c | 6 +-
drivers/infiniband/ulp/ipoib/ipoib_multicast.c | 10 +-
drivers/infiniband/ulp/iser/iscsi_iser.c | 19 ++-
drivers/infiniband/ulp/iser/iscsi_iser.h | 2 +-
drivers/infiniband/ulp/iser/iser_verbs.c | 24 ++--
drivers/net/ethernet/mellanox/mlx4/mr.c | 33 +++--
drivers/net/ethernet/mellanox/mlx4/port.c | 11 +-
include/rdma/ib_umem.h | 1 +
19 files changed, 277 insertions(+), 155 deletions(-)
^ permalink raw reply [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
@ 2014-08-14 16:05 Roland Dreier
0 siblings, 0 replies; 223+ messages in thread
From: Roland Dreier @ 2014-08-14 16:05 UTC (permalink / raw)
To: Linus Torvalds; +Cc: linux-rdma, linux-kernel
Hi Linus,
Please pull from
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git tags/rdma-for-linus
----------------------------------------------------------------
Main set of InfiniBand/RDMA updates for 3.17 merge window:
- MR reregistration support
- MAD support for RMPP in userspace
- iSER and SRP initiator updates
- ocrdma hardware driver updates
- other fixes...
----------------------------------------------------------------
Alex Estrin (1):
IB/ipoib: Avoid multicast join attempts with invalid P_key
Ariel Nahum (3):
IB/iser: Seperate iser_conn and iscsi_endpoint storage space
IB/iser: Protect iser state machine with a mutex
IB/iser: Replace connection waitqueue with completion object
Bart Van Assche (3):
scsi_transport_srp: Fix fast_io_fail_tmo=dev_loss_tmo=off behavior
IB/srp: Fix deadlock between host removal and multipathd
IB/srp: Fix residual handling
Dan Carpenter (1):
RDMA/amso1100: Check for integer overflow in c2_alloc_cq_buf()
Devesh Sharma (7):
RDMA/ocrdma: Avoid posting DPP requests for RDMA READ
be2net: Issue shutdown event to ocrdma driver
RDMA/ocrdma: Handle shutdown event from be2net driver
RDMA/ocrdma: Remove hardcoding of the max DPP QPs supported
RDMA/ocrdma: Delete AH table if ocrdma_init_hw fails after AH table creation
RDMA/ocrdma: Obtain SL from device structure
RDMA/ocrdma: Update sli data structure for endianness
Doug Ledford (2):
IB/srpt: Handle GID change events
RDMA/uapi: Include socket.h in rdma_user_cm.h
Erez Shitrit (2):
IB/ipoib: Use P_Key change event instead of P_Key polling mechanism
IB/ipoib: Avoid flushing the workqueue from worker context
Fabian Frederick (3):
IPoIB: Remove unnecessary test for NULL before debugfs_remove()
IB/mlx4: Use ARRAY_SIZE instead of sizeof/sizeof[0]
IB/mlx5: Use ARRAY_SIZE instead of sizeof/sizeof[0]
Ira Weiny (5):
IB/umad: Update module to [pr|dev]_* style print messages
IB/mad: Update module to [pr|dev]_* style print messages
IB/mad: Add dev_notice messages for various umad/mad registration failures
IB/mad: add new ioctl to ABI to support new registration options
IB/mad: Add user space RMPP support
Jack Morgenstein (1):
mlx4_core: Add support for secure-host and SMP firewall
Matan Barak (3):
IB/core: Add user MR re-registration support
mlx4_core: Add helper functions to support MR re-registration
IB/mlx4_ib: Add support for user MR re-registration
Mitesh Ahuja (4):
RDMA/ocrdma: Allow only SEND opcode in case of UD QPs
RDMA/ocrdma: Do proper cleanup even if FW is in error state
RDMA/ocrdma: Return proper value for max_mr_size
RDMA/ocrdma: report asic-id in query device
Or Gerlitz (1):
IB/ipath: Add P_Key change event support
Roi Dayan (3):
IB/iser: Support IPv6 address family
IB/iser: Add TIMEWAIT_EXIT event handling
IB/iser: Clarify a duplicate counters check
Roland Dreier (1):
Merge branches 'core', 'cxgb4', 'ipoib', 'iser', 'iwcm', 'mad', 'misc', 'mlx4', 'mlx5', 'ocrdma' and 'srp' into for-next
Sagi Grimberg (2):
IB/iser: Fix responder resources advertisement
IB/iser: Remove redundant return code in iser_free_ib_conn_res()
Selvin Xavier (8):
RDMA/ocrdma: Query and initalize the PFC SL
RDMA/ocrdma: Add hca_type and fixing fw_version string in device atrributes
RDMA/ocrdma: Avoid reporting wrong completions in case of error CQEs
RDMA/ocrdma: Add missing adapter mailbox opcodes
RDMA/ocrdma: Increase the size of STAG array in dev structure to 16K
RDMA/ocrdma: Initialize the GID table while registering the device
RDMA/ocrdma: Fix a sparse warning
RDMA/ocrdma: Update the ocrdma module version string
Steve Wise (2):
RDMA/cxgb4: Only call CQ completion handler if it is armed
RDMA/iwcm: Use a default listen backlog if needed
Wei Yongjun (1):
IB/srp: Fix return value check in srp_init_module()
Documentation/infiniband/user_mad.txt | 13 +-
drivers/infiniband/core/agent.c | 16 +-
drivers/infiniband/core/cm.c | 5 +-
drivers/infiniband/core/iwcm.c | 27 ++
drivers/infiniband/core/mad.c | 283 +++++++++++++-------
drivers/infiniband/core/mad_priv.h | 3 -
drivers/infiniband/core/sa_query.c | 2 +-
drivers/infiniband/core/user_mad.c | 188 +++++++++++--
drivers/infiniband/core/uverbs.h | 1 +
drivers/infiniband/core/uverbs_cmd.c | 93 +++++++
drivers/infiniband/core/uverbs_main.c | 1 +
drivers/infiniband/hw/amso1100/c2_cq.c | 7 +-
drivers/infiniband/hw/cxgb4/ev.c | 1 +
drivers/infiniband/hw/cxgb4/qp.c | 37 ++-
drivers/infiniband/hw/cxgb4/t4.h | 11 +
drivers/infiniband/hw/ipath/ipath_mad.c | 14 +-
drivers/infiniband/hw/mlx4/mad.c | 2 +-
drivers/infiniband/hw/mlx4/main.c | 8 +-
drivers/infiniband/hw/mlx4/mlx4_ib.h | 4 +
drivers/infiniband/hw/mlx4/mr.c | 88 +++++-
drivers/infiniband/hw/mlx5/qp.c | 2 +-
drivers/infiniband/hw/mthca/mthca_mad.c | 2 +-
drivers/infiniband/hw/ocrdma/ocrdma.h | 26 +-
drivers/infiniband/hw/ocrdma/ocrdma_ah.c | 6 +-
drivers/infiniband/hw/ocrdma/ocrdma_hw.c | 227 ++++++++++++++--
drivers/infiniband/hw/ocrdma/ocrdma_hw.h | 2 +
drivers/infiniband/hw/ocrdma/ocrdma_main.c | 83 +++++-
drivers/infiniband/hw/ocrdma/ocrdma_sli.h | 295 ++++++++++++++++-----
drivers/infiniband/hw/ocrdma/ocrdma_verbs.c | 36 ++-
drivers/infiniband/hw/qib/qib_mad.c | 2 +-
drivers/infiniband/ulp/ipoib/ipoib.h | 8 +-
drivers/infiniband/ulp/ipoib/ipoib_fs.c | 6 +-
drivers/infiniband/ulp/ipoib/ipoib_ib.c | 133 ++++------
drivers/infiniband/ulp/ipoib/ipoib_main.c | 9 +-
drivers/infiniband/ulp/iser/iscsi_iser.c | 47 ++--
drivers/infiniband/ulp/iser/iscsi_iser.h | 8 +-
drivers/infiniband/ulp/iser/iser_verbs.c | 128 ++++++---
drivers/infiniband/ulp/srp/ib_srp.c | 48 +++-
drivers/infiniband/ulp/srpt/ib_srpt.c | 3 +-
drivers/net/ethernet/emulex/benet/be.h | 1 +
drivers/net/ethernet/emulex/benet/be_main.c | 1 +
drivers/net/ethernet/emulex/benet/be_roce.c | 18 +-
drivers/net/ethernet/emulex/benet/be_roce.h | 3 +-
drivers/net/ethernet/mellanox/mlx4/cmd.c | 9 +
drivers/net/ethernet/mellanox/mlx4/fw.c | 91 ++++++-
drivers/net/ethernet/mellanox/mlx4/main.c | 5 +
drivers/net/ethernet/mellanox/mlx4/mlx4.h | 3 +
drivers/net/ethernet/mellanox/mlx4/mr.c | 160 +++++++++++
.../net/ethernet/mellanox/mlx4/resource_tracker.c | 26 +-
drivers/scsi/scsi_transport_srp.c | 3 +-
include/linux/mlx4/cmd.h | 7 +
include/linux/mlx4/device.h | 17 ++
include/rdma/ib_mad.h | 18 +-
include/rdma/ib_verbs.h | 10 +-
include/uapi/rdma/ib_user_mad.h | 42 +++
include/uapi/rdma/ib_user_verbs.h | 16 ++
include/uapi/rdma/rdma_user_cm.h | 1 +
57 files changed, 1851 insertions(+), 455 deletions(-)
^ permalink raw reply [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
@ 2014-07-18 20:40 Roland Dreier
0 siblings, 0 replies; 223+ messages in thread
From: Roland Dreier @ 2014-07-18 20:40 UTC (permalink / raw)
To: Linus Torvalds; +Cc: linux-kernel, linux-rdma
Hi Linus,
Please pull from
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git tags/rdma-for-linus
----------------------------------------------------------------
InfiniBand/RDMA fixes for 3.16
- cxgb4 hardware driver regression fixes
- mlx5 hardware driver regression fixes
----------------------------------------------------------------
Hariprasad S (2):
RDMA/cxgb4: Fix skb_leak in reject_cr()
RDMA/cxgb4: Clean up connection on ARP error
Or Gerlitz (1):
IB/mlx5: Enable "block multicast loopback" for kernel consumers
Roland Dreier (1):
Merge branches 'cxgb4' and 'mlx5' into for-next
Sagi Grimberg (1):
mlx5_core: Fix possible race between mr tree insert/delete
Steve Wise (2):
RDMA/cxgb4: Initialize the device status page
RDMA/cxgb4: Call iwpm_init() only once
drivers/infiniband/hw/cxgb4/cm.c | 14 +++++++++++---
drivers/infiniband/hw/cxgb4/device.c | 18 +++++++++++-------
drivers/infiniband/hw/cxgb4/iw_cxgb4.h | 2 +-
drivers/infiniband/hw/mlx5/qp.c | 2 +-
drivers/net/ethernet/mellanox/mlx5/core/mr.c | 19 +++++++++++++++----
5 files changed, 39 insertions(+), 16 deletions(-)
^ permalink raw reply [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
@ 2014-06-10 17:14 Roland Dreier
0 siblings, 0 replies; 223+ messages in thread
From: Roland Dreier @ 2014-06-10 17:14 UTC (permalink / raw)
To: Linus Torvalds; +Cc: linux-kernel, linux-rdma
Hi Linus,
Please pull from
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git tags/rdma-for-linus
----------------------------------------------------------------
Main batch of InfiniBand/RDMA changes for 3.16:
- Add iWARP port mapper to avoid conflicts between RDMA and normal
stack TCP connections.
- Fixes for i386 / x86-64 structure padding differences (ABI
compatibility for 32-on-64) from Yann Droneaud.
- A pile of SRP initiator fixes from Bart Van Assche.
- Fixes for a writeback / memory allocation deadlock with NFS over
IPoIB connected mode from Jiri Kosina.
- The usual fixes and cleanups to mlx4, mlx5, cxgb4 and other
low-level drivers.
----------------------------------------------------------------
Ariel Nahum (2):
IB/iser: Simplify connection management
IB/iser: Fix a possible race in iser connection states transition
Bart Van Assche (11):
IB/srp: Fix a sporadic crash triggered by cable pulling
IB/srp: Fix kernel-doc warnings
IB/srp: Introduce an additional local variable
IB/srp: Introduce srp_map_fmr()
IB/srp: Introduce srp_finish_mapping()
IB/srp: Introduce the 'register_always' kernel module parameter
IB/srp: One FMR pool per SRP connection
IB/srp: Rename FMR-related variables
IB/srp: Add fast registration support
IB/umad: Fix error handling
IB/umad: Fix use-after-free on close
Christoph Jaeger (1):
RDMA/cxgb4: Fix memory leaks in c4iw_alloc() error paths
Colin Ian King (1):
IB/mlx4: fix unitialised variable is_mcast
Dan Carpenter (2):
RDMA/cxgb3: Fix information leak in send_abort()
RDMA/cxgb3: Remove a couple unneeded conditions
Dennis Dalessandro (1):
IB/ipath: Translate legacy diagpkt into newer extended diagpkt
Dotan Barak (1):
mlx4_core: Fix memory leaks in SR-IOV error paths
Duan Jiong (1):
RDMA/ocrdma: Convert to use simple_open()
Haggai Eran (7):
IB/mlx5: Fix error handling in reg_umr
IB/mlx5: Add MR to radix tree in reg_mr_callback
mlx5_core: Store MR attributes in mlx5_mr_core during creation and after UMR
IB/mlx5: Set QP offsets and parameters for user QPs and not just for kernel QPs
IB/core: Remove unneeded kobject_get/put calls
IB/core: Fix port kobject deletion during error flow
IB/core: Fix kobject leak on device register error flow
Jack Morgenstein (5):
mlx4_core: Fix incorrect FLAGS1 bitmap test in mlx4_QUERY_FUNC_CAP
IB/mlx4: SET_PORT called by mlx4_ib_modify_port should be wrapped
IB/mlx4: Preparation for VFs to issue/receive SMI (QP0) requests/responses
mlx4: Add infrastructure for selecting VFs to enable QP0 via MLX proxy QPs
IB/mlx4: Add interface for selecting VFs to enable QP0 via MLX proxy QPs
Jiri Kosina (2):
IB/mlx4: Implement IB_QP_CREATE_USE_GFP_NOIO
IB/mlx4: Fix gfp passing in create_qp_common()
Joe Perches (1):
IB/srp: Avoid problems if a header uses pr_fmt
Manuel Schölling (1):
IB/ipath: Use time_before()/_after()
Mike Marciniszyn (1):
IB/qib: Fix port in pkey change event
Or Gerlitz (3):
IB/iser: Bump version to 1.4
IB: Return error for unsupported QP creation flags
IB: Add a QP creation flag to use GFP_NOIO allocations
Roi Dayan (1):
IB/iser: Add missing newlines to logging messages
Roland Dreier (6):
IB/mlx5: Fix warning about cast of wr_id back to pointer on 32 bits
mlx4_core: Move handling of MLX4_QP_ST_MLX to proper switch statement
IB/mad: Fix sparse warning about gfp_t use
IB/core: Fix sparse warnings about redeclared functions
mlx4_core: Fix GFP flags parameters to be gfp_t
Merge branches 'core', 'cxgb3', 'cxgb4', 'iser', 'iwpm', 'misc', 'mlx4', 'mlx5', 'noio', 'ocrdma', 'qib', 'srp' and 'usnic' into for-next
Sagi Grimberg (3):
mlx5_core: Fix signature handover operation for interleaved buffers
mlx5_core: Simplify signature handover wqe for interleaved buffers
mlx5_core: Copy DIF fields only when input and output space values match
Shachar Raindel (1):
IB/mlx5: Refactor UMR to have its own context struct
Steve Wise (2):
RDMA/cxgb4: Fix vlan support
RDMA/cxgb4: Add support for iWARP Port Mapper user space service
Tatyana Nikolova (2):
RDMA/core: Add support for iWARP Port Mapper user space service
RDMA/nes: Add support for iWARP Port Mapper user space service
Upinder Malhi (1):
IB/usnic: Fix source file missing copyright and license
Vinit Agnihotri (1):
IB/qib: Additional Intel branding changes
Yann Droneaud (5):
IB/mlx5: add missing padding at end of struct mlx5_ib_create_cq
IB/mlx5: add missing padding at end of struct mlx5_ib_create_srq
RDMA/cxgb4: Add missing padding at end of struct c4iw_create_cq_resp
IB: Allow build of hw/ and ulp/ subdirectories independently
RDMA/cxgb4: add missing padding at end of struct c4iw_alloc_ucontext_resp
drivers/infiniband/Makefile | 19 +-
drivers/infiniband/core/Makefile | 2 +-
drivers/infiniband/core/cma.c | 3 +-
drivers/infiniband/core/iwpm_msg.c | 685 +++++++++++++++++++++
drivers/infiniband/core/iwpm_util.c | 607 ++++++++++++++++++
drivers/infiniband/core/iwpm_util.h | 238 +++++++
drivers/infiniband/core/netlink.c | 18 +-
drivers/infiniband/core/sa_query.c | 2 +-
drivers/infiniband/core/sysfs.c | 85 +--
drivers/infiniband/core/user_mad.c | 75 ++-
drivers/infiniband/core/verbs.c | 8 +-
drivers/infiniband/hw/Makefile | 12 +
drivers/infiniband/hw/cxgb3/cxio_hal.c | 6 +-
drivers/infiniband/hw/cxgb3/iwch_cm.c | 1 +
drivers/infiniband/hw/cxgb4/cm.c | 197 ++++--
drivers/infiniband/hw/cxgb4/cq.c | 4 +-
drivers/infiniband/hw/cxgb4/device.c | 83 ++-
drivers/infiniband/hw/cxgb4/iw_cxgb4.h | 44 ++
drivers/infiniband/hw/cxgb4/provider.c | 5 +-
drivers/infiniband/hw/cxgb4/user.h | 2 +
drivers/infiniband/hw/ipath/ipath_diag.c | 4 +
drivers/infiniband/hw/ipath/ipath_intr.c | 4 +-
drivers/infiniband/hw/ipath/ipath_sdma.c | 4 +-
drivers/infiniband/hw/mlx4/ah.c | 2 +-
drivers/infiniband/hw/mlx4/cq.c | 6 +-
drivers/infiniband/hw/mlx4/mad.c | 40 +-
drivers/infiniband/hw/mlx4/main.c | 26 +-
drivers/infiniband/hw/mlx4/mlx4_ib.h | 1 +
drivers/infiniband/hw/mlx4/qp.c | 102 +--
drivers/infiniband/hw/mlx4/srq.c | 7 +-
drivers/infiniband/hw/mlx4/sysfs.c | 105 +++-
drivers/infiniband/hw/mlx5/cq.c | 13 +-
drivers/infiniband/hw/mlx5/mlx5_ib.h | 13 +-
drivers/infiniband/hw/mlx5/mr.c | 76 ++-
drivers/infiniband/hw/mlx5/qp.c | 42 +-
drivers/infiniband/hw/mlx5/srq.c | 14 +-
drivers/infiniband/hw/mlx5/user.h | 2 +
drivers/infiniband/hw/nes/nes.c | 25 +-
drivers/infiniband/hw/nes/nes.h | 3 +
drivers/infiniband/hw/nes/nes_cm.c | 320 ++++++++--
drivers/infiniband/hw/nes/nes_cm.h | 12 +-
drivers/infiniband/hw/ocrdma/ocrdma_stats.c | 9 +-
drivers/infiniband/hw/qib/qib_init.c | 8 +-
drivers/infiniband/hw/qib/qib_mad.c | 2 +-
drivers/infiniband/hw/qib/qib_qp.c | 3 +-
drivers/infiniband/hw/usnic/usnic_ib_verbs.c | 3 +
.../infiniband/hw/usnic/usnic_uiom_interval_tree.c | 18 +
drivers/infiniband/ulp/Makefile | 5 +
drivers/infiniband/ulp/ipoib/ipoib_cm.c | 18 +-
drivers/infiniband/ulp/iser/iscsi_iser.c | 105 ++--
drivers/infiniband/ulp/iser/iscsi_iser.h | 10 +-
drivers/infiniband/ulp/iser/iser_verbs.c | 89 ++-
drivers/infiniband/ulp/srp/ib_srp.c | 672 +++++++++++++++-----
drivers/infiniband/ulp/srp/ib_srp.h | 94 ++-
drivers/net/ethernet/mellanox/mlx4/alloc.c | 27 +-
drivers/net/ethernet/mellanox/mlx4/cmd.c | 92 ++-
drivers/net/ethernet/mellanox/mlx4/cq.c | 4 +-
drivers/net/ethernet/mellanox/mlx4/en_rx.c | 6 +-
drivers/net/ethernet/mellanox/mlx4/en_tx.c | 2 +-
drivers/net/ethernet/mellanox/mlx4/fw.c | 46 +-
drivers/net/ethernet/mellanox/mlx4/fw.h | 1 +
drivers/net/ethernet/mellanox/mlx4/icm.c | 7 +-
drivers/net/ethernet/mellanox/mlx4/icm.h | 3 +-
drivers/net/ethernet/mellanox/mlx4/main.c | 30 +-
drivers/net/ethernet/mellanox/mlx4/mlx4.h | 12 +-
drivers/net/ethernet/mellanox/mlx4/mr.c | 17 +-
drivers/net/ethernet/mellanox/mlx4/qp.c | 20 +-
.../net/ethernet/mellanox/mlx4/resource_tracker.c | 30 +-
drivers/net/ethernet/mellanox/mlx4/srq.c | 4 +-
drivers/net/ethernet/mellanox/mlx5/core/mr.c | 4 +
include/linux/mlx4/device.h | 15 +-
include/linux/mlx5/driver.h | 1 -
include/rdma/ib_verbs.h | 11 +-
include/rdma/iw_portmap.h | 199 ++++++
include/rdma/rdma_netlink.h | 23 +-
include/uapi/rdma/rdma_netlink.h | 96 ++-
76 files changed, 3870 insertions(+), 733 deletions(-)
create mode 100644 drivers/infiniband/core/iwpm_msg.c
create mode 100644 drivers/infiniband/core/iwpm_util.c
create mode 100644 drivers/infiniband/core/iwpm_util.h
create mode 100644 drivers/infiniband/hw/Makefile
create mode 100644 drivers/infiniband/ulp/Makefile
create mode 100644 include/rdma/iw_portmap.h
^ permalink raw reply [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
@ 2014-05-02 0:09 Roland Dreier
0 siblings, 0 replies; 223+ messages in thread
From: Roland Dreier @ 2014-05-02 0:09 UTC (permalink / raw)
To: Linus Torvalds; +Cc: linux-rdma, linux-kernel
Hi Linus,
Please pull from
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git tags/rdma-for-linus
----------------------------------------------------------------
InfiniBand/RDMA updates for 3.15-rc4:
- cxgb4 hardware driver fixes
----------------------------------------------------------------
Hariprasad S (1):
RDMA/cxgb4: Update Kconfig to include Chelsio T5 adapter
Steve Wise (3):
RDMA/cxgb4: Fix endpoint mutex deadlocks
RDMA/cxgb4: Force T5 connections to use TAHOE congestion control
RDMA/cxgb4: Only allow kernel db ringing for T4 devs
drivers/infiniband/hw/cxgb4/Kconfig | 6 ++---
drivers/infiniband/hw/cxgb4/cm.c | 39 ++++++++++++++++++++++---------
drivers/infiniband/hw/cxgb4/iw_cxgb4.h | 1 +
drivers/infiniband/hw/cxgb4/qp.c | 13 +++++++----
drivers/infiniband/hw/cxgb4/t4fw_ri_api.h | 14 +++++++++++
5 files changed, 55 insertions(+), 18 deletions(-)
^ permalink raw reply [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
@ 2014-04-18 18:40 Roland Dreier
0 siblings, 0 replies; 223+ messages in thread
From: Roland Dreier @ 2014-04-18 18:40 UTC (permalink / raw)
To: Linus Torvalds; +Cc: linux-kernel, linux-rdma
Hi Linus,
Please pull from
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git tags/rdma-for-linus
----------------------------------------------------------------
InfiniBand/RDMA updates for 3.15-rc2:
- Mostly cxgb4 fixes unblocked by the merge of some prerequisites via
the net tree.
- Drop deprecated MSI-X API use.
- A couple other miscellaneous things.
----------------------------------------------------------------
Alexander Gordeev (2):
IB/qib: Use pci_enable_msix_range() instead of pci_enable_msix()
IB/mthca: Use pci_enable_msix_exact() instead of pci_enable_msix()
Eli Cohen (1):
IB/mlx5: Add block multicast loopback support
Hariprasad Shenai (1):
RDMA/cxgb4: Use pr_warn_ratelimited
Roland Dreier (1):
Merge branches 'cxgb4', 'misc', 'mlx5' and 'qib' into for-next
Steve Wise (9):
RDMA/cxgb4: Use the BAR2/WC path for kernel QPs and T5 devices
RDMA/cxgb4: Endpoint timeout fixes
RDMA/cxgb4: rmb() after reading valid gen bit
RDMA/cxgb4: SQ flush fix
RDMA/cxgb4: Max fastreg depth depends on DSGL support
RDMA/cxgb4: Initialize reserved fields in a FW work request
RDMA/cxgb4: Add missing debug stats
RDMA/cxgb4: Use uninitialized_var()
RDMA/cxgb4: Fix over-dereference when terminating
drivers/infiniband/hw/cxgb4/cm.c | 89 ++++++++++++++++++++------------
drivers/infiniband/hw/cxgb4/cq.c | 24 ++++-----
drivers/infiniband/hw/cxgb4/device.c | 41 ++++++++++++---
drivers/infiniband/hw/cxgb4/iw_cxgb4.h | 2 +
drivers/infiniband/hw/cxgb4/mem.c | 6 ++-
drivers/infiniband/hw/cxgb4/provider.c | 2 +-
drivers/infiniband/hw/cxgb4/qp.c | 70 +++++++++++++++----------
drivers/infiniband/hw/cxgb4/resource.c | 10 ++--
drivers/infiniband/hw/cxgb4/t4.h | 72 ++++++++++++++++++++++++--
drivers/infiniband/hw/mlx5/main.c | 2 +
drivers/infiniband/hw/mlx5/qp.c | 12 +++++
drivers/infiniband/hw/mthca/mthca_main.c | 8 +--
drivers/infiniband/hw/qib/qib_pcie.c | 55 ++++++++++----------
include/linux/mlx5/device.h | 1 +
include/linux/mlx5/qp.h | 1 +
15 files changed, 270 insertions(+), 125 deletions(-)
^ permalink raw reply [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
@ 2014-04-03 15:54 Roland Dreier
0 siblings, 0 replies; 223+ messages in thread
From: Roland Dreier @ 2014-04-03 15:54 UTC (permalink / raw)
To: Linus Torvalds; +Cc: linux-rdma, linux-kernel
Hi Linus,
Please pull from
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git tags/rdma-for-linus
----------------------------------------------------------------
Main batch of InfiniBand/RDMA changes for 3.15:
- The biggest change is core API extensions and mlx5 low-level driver
support for handling DIF/DIX-style protection information, and the
addition of PI support to the iSER initiator. Target support will be
arriving shortly through the SCSI target tree.
- A nice simplification to the "umem" memory pinning library now that
we have chained sg lists. Kudos to Yishai Hadas for realizing our
code didn't have to be so crazy.
- Another nice simplification to the sg wrappers used by qib, ipath and
ehca to handle their mapping of memory to adapter.
- The usual batch of fixes to bugs found by static checkers etc. from
intrepid people like Dan Carpenter and Yann Droneaud.
- A large batch of cxgb4, ocrdma, qib driver updates.
----------------------------------------------------------------
Alex Tabachnik (2):
IB/iser: Introduce pi_enable, pi_guard module parameters
IB/iser: Initialize T10-PI resources
Ariel Nahum (1):
IB/iser: Remove struct iscsi_iser_conn
Bart Van Assche (7):
IB/mlx4: Fix a sparse endianness warning
scsi_transport_srp: Fix two kernel-doc warnings
IB/srp: Add more logging
IB/srp: Avoid duplicate connections
IB/srp: Make writing into the "add_target" sysfs attribute interruptible
IB/srp: Avoid that writing into "add_target" hangs due to a cable pull
IB/srp: Fix a race condition between failing I/O and I/O completion
CQ Tang (1):
IB/qib: Change SDMA progression mode depending on single- or multi-rail
Dan Carpenter (7):
IB/qib: Remove duplicate check in get_a_ctxt()
RDMA/nes: Clean up a condition
RDMA/cxgb4: Fix underflows in c4iw_create_qp()
RDMA/cxgb4: Fix four byte info leak in c4iw_create_cq()
IB/qib: Cleanup qib_register_observer()
mlx4_core: Fix some indenting in mlx4_ib_add()
mlx4_core: Make buffer larger to avoid overflow warning
Dennis Dalessandro (3):
IB/qib: Fix potential buffer overrun in sending diag packet routine
IB/ipath: Fix potential buffer overrun in sending diag packet routine
IB/qib: Fix memory leak of recv context when driver fails to initialize.
Devesh Sharma (9):
RDMA/ocrdma: EQ full catastrophe avoidance
RDMA/ocrdma: SQ and RQ doorbell offset clean up
RDMA/ocrdma: Read ASIC_ID register to select asic_gen
RDMA/ocrdma: Allow DPP QP creation
RDMA/ocrdma: ABI versioning between ocrdma and be2net
be2net: Add abi version between be2net and ocrdma
RDMA/ocrdma: Update version string
RDMA/ocrdma: Increment abi version count
RDMA/ocrdma: Code clean-up
Fabio Estevam (1):
IB/usnic: Remove '0x' when using %pa format
Mike Marciniszyn (7):
IB/qib: Fix debugfs ordering issue with multiple HCAs
IB/qib: Add percpu counter replacing qib_devdata int_counter
IB/qib: Modify software pma counters to use percpu variables
IB/qib: Remove ib_sg_dma_address() and ib_sg_dma_len() overloads
IB/ipath: Remove ib_sg_dma_address() and ib_sg_dma_len() overloads
IB/ehca: Remove ib_sg_dma_address() and ib_sg_dma_len() overloads
IB/core: Remove overload in ib_sg_dma*
Moni Shoua (1):
IB/core: Don't resolve passive side RoCE L2 address in CMA REQ handler
Or Gerlitz (3):
IB/iser: Print QP information once connection is established
IB/iser: Update Mellanox copyright note
IB/iser: Bump driver version to 1.3
Prarit Bhargava (1):
RDMA/ocrdma: Fix compiler warning
Randy Dunlap (1):
IB/iser: Fix sector_t format warning
Roi Dayan (1):
IB/iser: Drain the tx cq once before looping on the rx cq
Roland Dreier (2):
RDMA/ocrdma: Fix warnings about pointer <-> integer casts
Merge branches 'core', 'cxgb4', 'ip-roce', 'iser', 'misc', 'mlx4', 'nes', 'ocrdma', 'qib', 'sgwrapper', 'srp' and 'usnic' into for-next
Sagi Grimberg (23):
IB/core: Introduce protected memory regions
IB/core: Introduce signature verbs API
mlx5: Implement create_mr and destroy_mr
IB/mlx5: Initialize mlx5_ib_qp signature-related members
IB/mlx5: Break up wqe handling into begin & finish routines
IB/mlx5: Remove MTT access mode from umr flags helper function
IB/mlx5: Keep mlx5 MRs in a radix tree under device
IB/mlx5: Support IB_WR_REG_SIG_MR
IB/mlx5: Collect signature error completion
IB/mlx5: Expose support for signature MR feature
IB/iser: Suppress completions for fast registration work requests
IB/iser: Avoid FRWR notation, use fastreg instead
IB/iser: Push the decision what memory key to use into fast_reg_mr routine
IB/iser: Move fast_reg_descriptor initialization to a function
IB/iser: Keep IB device attributes under iser_device
IB/iser: Replace fastreg descriptor valid bool with indicators container
IB/iser: Generalize iser_unmap_task_data and finalize_rdma_unaligned_sg
IB/iser: Generalize fall_to_bounce_buf routine
IB/iser: Support T10-PI operations
SCSI/libiscsi: Add check_protection callback for transports
IB/iser: Implement check_protection
IB/iser: Publish T10-PI support to SCSI midlayer
IB/srp: Check ib_query_gid return value
Selvin Xavier (8):
RDMA/ocrdma: Memory leak fix in ocrdma_dereg_mr()
RDMA/ocrdma: Use non-zero tag in SRQ posting
RDMA/ocrdma: Display proper value for max_mw
RDMA/ocrdma: Handle CQ overrun error
RDMA/ocrdma: Support non-embedded mailbox commands
RDMA/ocrdma: Query controller information
RDMA/ocrdma: Display FW version
RDMA/ocrdma: Unregister inet notifier when unloading ocrdma
Steve Wise (16):
RDMA/cxgb4: Cap CQ size at T4_MAX_IQ_SIZE
RDMA/cxgb4: Allow loopback connections
RDMA/cxgb4: Always release neigh entry
RDMA/cxgb4: Fix incorrect BUG_ON conditions
RDMA/cxgb4: Mind the sq_sig_all/sq_sig_type QP attributes
RDMA/cxgb4: Default peer2peer mode to 1
RDMA/cxgb4: Save the correct map length for fast_reg_page_lists
RDMA/cxgb4: Don't leak skb in c4iw_uld_rx_handler()
RDMA/cxgb4: Fix possible memory leak in RX_PKT processing
RDMA/cxgb4: Ignore read reponse type 1 CQEs
RDMA/cxgb4: Connect_request_upcall fixes
RDMA/cxgb4: Update snd_seq when sending MPA messages
RDMA/cxgb4: Lock around accept/reject downcalls
RDMA/cxgb4: Drop RX_DATA packets if the endpoint is gone
RDMA/cxgb4: rx_data() needs to hold the ep mutex
RDMA/cxgb4: Disable DSGL use by default
Tatyana Nikolova (2):
RDMA/nes: Fixes for IRD/ORD negotiation with MPA v2
RDMA/nes: Fix for passing a valid QP pointer to the user space library
Yan Burman (1):
IB/mad: Check and handle potential DMA mapping errors
Yann Droneaud (5):
IB/qib: add missing braces in do_qib_user_sdma_queue_create()
IB/qib: fixup indentation in qib_ib_rcv()
IB/nes: Return an error on ib_copy_from_udata() failure instead of NULL
IB/mthca: Return an error on ib_copy_to_udata() failure
IB/ehca: Returns an error on ib_copy_to_udata() failure
Yishai Hadas (1):
IB: Refactor umem to use linear SG table
drivers/infiniband/core/cm.c | 17 -
drivers/infiniband/core/cma.c | 26 --
drivers/infiniband/core/mad.c | 14 +
drivers/infiniband/core/umem.c | 120 +++--
drivers/infiniband/core/verbs.c | 47 ++
drivers/infiniband/hw/amso1100/c2_provider.c | 23 +-
drivers/infiniband/hw/cxgb3/iwch_provider.c | 19 +-
drivers/infiniband/hw/cxgb4/cm.c | 110 +++--
drivers/infiniband/hw/cxgb4/cq.c | 31 +-
drivers/infiniband/hw/cxgb4/device.c | 6 +-
drivers/infiniband/hw/cxgb4/iw_cxgb4.h | 2 +
drivers/infiniband/hw/cxgb4/mem.c | 55 +--
drivers/infiniband/hw/cxgb4/qp.c | 8 +-
drivers/infiniband/hw/ehca/ehca_classes.h | 2 +-
drivers/infiniband/hw/ehca/ehca_cq.c | 1 +
drivers/infiniband/hw/ehca/ehca_mrmw.c | 257 ++++------
drivers/infiniband/hw/ipath/ipath_diag.c | 66 +--
drivers/infiniband/hw/ipath/ipath_dma.c | 43 +-
drivers/infiniband/hw/ipath/ipath_mr.c | 39 +-
drivers/infiniband/hw/mlx4/doorbell.c | 4 +-
drivers/infiniband/hw/mlx4/main.c | 11 +-
drivers/infiniband/hw/mlx4/mr.c | 39 +-
drivers/infiniband/hw/mlx4/qp.c | 2 +-
drivers/infiniband/hw/mlx5/cq.c | 62 +++
drivers/infiniband/hw/mlx5/doorbell.c | 4 +-
drivers/infiniband/hw/mlx5/main.c | 12 +
drivers/infiniband/hw/mlx5/mem.c | 80 ++--
drivers/infiniband/hw/mlx5/mlx5_ib.h | 14 +
drivers/infiniband/hw/mlx5/mr.c | 157 +++++++
drivers/infiniband/hw/mlx5/qp.c | 540 +++++++++++++++++++--
drivers/infiniband/hw/mthca/mthca_provider.c | 43 +-
drivers/infiniband/hw/nes/nes_cm.c | 121 +++--
drivers/infiniband/hw/nes/nes_cm.h | 3 +
drivers/infiniband/hw/nes/nes_user.h | 5 +-
drivers/infiniband/hw/nes/nes_verbs.c | 261 +++++------
drivers/infiniband/hw/nes/nes_verbs.h | 1 +
drivers/infiniband/hw/ocrdma/Makefile | 2 +-
drivers/infiniband/hw/ocrdma/ocrdma.h | 110 ++++-
drivers/infiniband/hw/ocrdma/ocrdma_abi.h | 7 +-
drivers/infiniband/hw/ocrdma/ocrdma_ah.c | 2 +-
drivers/infiniband/hw/ocrdma/ocrdma_hw.c | 299 +++++++++---
drivers/infiniband/hw/ocrdma/ocrdma_hw.h | 6 +-
drivers/infiniband/hw/ocrdma/ocrdma_main.c | 81 +++-
drivers/infiniband/hw/ocrdma/ocrdma_sli.h | 261 ++++++++++-
drivers/infiniband/hw/ocrdma/ocrdma_stats.c | 623 +++++++++++++++++++++++++
drivers/infiniband/hw/ocrdma/ocrdma_stats.h | 54 +++
drivers/infiniband/hw/ocrdma/ocrdma_verbs.c | 233 ++++-----
drivers/infiniband/hw/qib/qib.h | 12 +-
drivers/infiniband/hw/qib/qib_diag.c | 52 +--
drivers/infiniband/hw/qib/qib_dma.c | 21 +-
drivers/infiniband/hw/qib/qib_file_ops.c | 5 +-
drivers/infiniband/hw/qib/qib_fs.c | 1 +
drivers/infiniband/hw/qib/qib_iba6120.c | 11 +-
drivers/infiniband/hw/qib/qib_iba7220.c | 12 +-
drivers/infiniband/hw/qib/qib_iba7322.c | 37 +-
drivers/infiniband/hw/qib/qib_init.c | 96 ++--
drivers/infiniband/hw/qib/qib_mad.c | 44 +-
drivers/infiniband/hw/qib/qib_mr.c | 14 +-
drivers/infiniband/hw/qib/qib_rc.c | 2 +-
drivers/infiniband/hw/qib/qib_ruc.c | 1 +
drivers/infiniband/hw/qib/qib_ud.c | 6 +-
drivers/infiniband/hw/qib/qib_user_sdma.c | 136 +++++-
drivers/infiniband/hw/qib/qib_verbs.c | 8 +-
drivers/infiniband/hw/qib/qib_verbs.h | 16 +-
drivers/infiniband/hw/usnic/usnic_uiom.c | 2 +-
drivers/infiniband/ulp/iser/iscsi_iser.c | 93 ++--
drivers/infiniband/ulp/iser/iscsi_iser.h | 85 +++-
drivers/infiniband/ulp/iser/iser_initiator.c | 154 ++++--
drivers/infiniband/ulp/iser/iser_memory.c | 470 ++++++++++++++-----
drivers/infiniband/ulp/iser/iser_verbs.c | 325 +++++++++----
drivers/infiniband/ulp/srp/ib_srp.c | 83 ++--
drivers/infiniband/ulp/srp/ib_srp.h | 1 +
drivers/net/ethernet/emulex/benet/be_roce.c | 6 +
drivers/net/ethernet/emulex/benet/be_roce.h | 3 +
drivers/net/ethernet/mellanox/mlx5/core/main.c | 1 +
drivers/net/ethernet/mellanox/mlx5/core/mr.c | 85 ++++
drivers/scsi/libiscsi.c | 32 ++
drivers/scsi/scsi_transport_srp.c | 1 +
include/linux/mlx5/cq.h | 1 +
include/linux/mlx5/device.h | 43 ++
include/linux/mlx5/driver.h | 41 ++
include/linux/mlx5/qp.h | 67 +++
include/rdma/ib_cm.h | 1 -
include/rdma/ib_umem.h | 11 +-
include/rdma/ib_verbs.h | 201 +++++++-
include/scsi/libiscsi.h | 4 +
include/scsi/scsi_transport_iscsi.h | 1 +
include/scsi/scsi_transport_srp.h | 1 -
88 files changed, 4634 insertions(+), 1475 deletions(-)
create mode 100644 drivers/infiniband/hw/ocrdma/ocrdma_stats.c
create mode 100644 drivers/infiniband/hw/ocrdma/ocrdma_stats.h
^ permalink raw reply [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
@ 2014-02-14 17:51 Roland Dreier
0 siblings, 0 replies; 223+ messages in thread
From: Roland Dreier @ 2014-02-14 17:51 UTC (permalink / raw)
To: Linus Torvalds; +Cc: linux-rdma, linux-kernel
Hi Linus,
Please pull from
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git tags/rdma-for-linus
----------------------------------------------------------------
RDMA/InfiniBand fixes for 3.14-rc3:
- Fix some rough edges from the "IP addressing for IBoE" merge
- Other misc fixes, mostly to hardware drivers
----------------------------------------------------------------
Dan Carpenter (1):
IB/iser: Fix use after free in iser_snd_completion()
Devesh Sharma (2):
RDMA/ocrdma: Fix traffic class shift
RDMA/ocrdma: Fix load time panic during GID table init
Eli Cohen (4):
IB/mlx5: Fix RC transport send queue overhead computation
IB/mlx5: Fix binary compatibility with libmlx5
IB/mlx5: Don't set "block multicast loopback" capability
IB/mlx5: Remove dependency on X86
Julia Lawall (2):
RDMA/nes: Fix error return code
RDMA/amso1100: Fix error return code
Kumar Sanghvi (1):
RDMA/cxgb4: Add missing neigh_release in LE-Workaround path
Matan Barak (1):
IB/mlx4: Don't allocate range of steerable UD QPs for Ethernet-only device
Mike Marciniszyn (1):
IB/qib: Add missing serdes init sequence
Moni Shoua (6):
IB/mlx4: Make sure GID index 0 is always occupied
IB/mlx4: Move rtnl locking to the right place
IB/mlx4: Do IBoE locking earlier when initializing the GID table
IB/mlx4: Do IBoE GID table resets per-port
IB/mlx4: Build the port IBoE GID table properly under bonding
IB: Report using RoCE IP based gids in port caps
Roi Dayan (1):
IB/iser: Avoid dereferencing iscsi_iser conn object when not bound to iser connection
Roland Dreier (2):
mlx5: Add include of <linux/slab.h> because of kzalloc()/kfree() use
Merge branches 'cma', 'cxgb4', 'iser', 'misc', 'mlx4', 'mlx5', 'nes', 'ocrdma', 'qib' and 'usnic' into for-next
Upinder Malhi (1):
IB/usnic: Fix smatch endianness error
drivers/infiniband/hw/amso1100/c2.c | 4 +-
drivers/infiniband/hw/amso1100/c2_rnic.c | 3 +-
drivers/infiniband/hw/cxgb4/cm.c | 1 +
drivers/infiniband/hw/mlx4/main.c | 185 +++++++++++++++++-------
drivers/infiniband/hw/mlx5/Kconfig | 2 +-
drivers/infiniband/hw/mlx5/main.c | 22 ++-
drivers/infiniband/hw/mlx5/qp.c | 18 ++-
drivers/infiniband/hw/mlx5/user.h | 7 +
drivers/infiniband/hw/nes/nes.c | 5 +-
drivers/infiniband/hw/ocrdma/ocrdma_main.c | 2 +-
drivers/infiniband/hw/ocrdma/ocrdma_verbs.c | 4 +-
drivers/infiniband/hw/qib/qib_iba7322.c | 5 +
drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c | 9 +-
drivers/infiniband/ulp/iser/iser_initiator.c | 3 +-
drivers/infiniband/ulp/iser/iser_verbs.c | 10 +-
drivers/net/ethernet/mellanox/mlx5/core/Kconfig | 2 +-
include/linux/mlx5/driver.h | 3 +
include/rdma/ib_verbs.h | 3 +-
18 files changed, 214 insertions(+), 74 deletions(-)
^ permalink raw reply [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
@ 2014-01-24 19:43 Roland Dreier
0 siblings, 0 replies; 223+ messages in thread
From: Roland Dreier @ 2014-01-24 19:43 UTC (permalink / raw)
To: Linus Torvalds; +Cc: linux-rdma, linux-kernel
Hi Linus,
Please pull from
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git tags/rdma-for-linus
----------------------------------------------------------------
Main batch of InfiniBand/RDMA changes for 3.14:
- Flow steering for InfiniBand UD traffic
- IP-based addressing for IBoE aka RoCE
- Pass SRP submaintainership from Dave to Bart
- SRP transport fixes from Bart
- Add the new Cisco usNIC low-level device driver
- Various other fixes
----------------------------------------------------------------
Bart Van Assche (4):
scsi_transport_srp: Block rport upon TL error even with fast_io_fail_tmo = off
scsi_transport_srp: Fix a race condition
scsi_transport_srp: Add rport state diagram
scsi_transport_srp: Fix kernel-doc warnings
Dan Carpenter (2):
mlx5_core: Remove dead code
IB/usnic: Use GFP_ATOMIC under spinlock
David Dillow (1):
MAINTAINERS: Pass the torch of SRP submaintainership
Devesh Sharma (2):
RDMA/ocrdma: Fix AV_VALID bit position
RDMA/ocrdma: Fix OCRDMA_GEN2_FAMILY macro definition
Ding Tianhong (1):
RDMA/nes: Slight optimization of Ethernet address compare
Eli Cohen (13):
IB/mlx5: Remove unused code in mr.c
IB/mlx5: Fix micro UAR allocator
IB/mlx5: Clear out struct before create QP command
mlx5_core: Use mlx5 core style warning
IB/mlx5: Make sure doorbell record is visible before doorbell
IB/mlx5: Implement modify CQ
IB/mlx5: Add support for resize CQ
mlx5_core: Improve debugfs readability
mlx5_core: Fix PowerPC support
IB/mlx5: Allow creation of QPs with zero-length work queues
IB/mlx5: Abort driver cleanup if teardown hca fails
IB/mlx5: Remove old field for create mkey mailbox
IB/mlx5: Verify reserved fields are cleared
Haggai Eran (1):
mlx5_core: Fix out arg size in access_register command
Ira Weiny (1):
IB/qib: Fix QP check when looping back to/from QP1
Julia Lawall (1):
IB/mlx4: Fix error return code
Matan Barak (9):
IB/core: Add flow steering support for IPoIB UD traffic
IB/core: Add support for IB L2 device-managed steering
mlx4_core: Add support for steerable IB UD QPs
IB/mlx4: Enable device-managed steering support for IB ports too
IB/mlx4: Add mechanism to support flow steering over IB links
IB/mlx4: Add support for steerable IB UD QPs
IB/core: Ethernet L2 attributes in verbs/cm structures
IB/core: Make ib_addr a core IB module
IB/mlx4: Add dependency INET
Michal Schmidt (1):
IPoIB: Report operstate consistently when brought up without a link
Moni Shoua (5):
IB/cma: IBoE (RoCE) IP-based GID addressing
IB/mlx4: Use IBoE (RoCE) IP based GIDs in the port GID table
IB/mlx4: Handle Ethernet L2 parameters for IP based GID addressing
RDMA/ocrdma: Handle Ethernet L2 parameters for IP based GID addressing
RDMA/ocrdma: Populate GID table with IP based gids
Or Gerlitz (2):
IB/core: Resolve Ethernet L2 addresses when modifying QP
IB/core: Fix unused variable warning
Paul Bolle (1):
RDMA/cxgb4: Fix gcc warning on 32-bit arch
Roland Dreier (6):
IB/usnic: Fix typo "Ignorning" -> "Ignoring"
RDMA/ocrdma: Move ocrdma_inetaddr_event outside of "#if CONFIG_IPV6"
RDMA/ocrdma: Add dependency on INET
IB/mlx4: Use IS_ENABLED(CONFIG_IPV6)
Merge branches 'cma', 'cxgb4', 'flowsteer', 'ipoib', 'misc', 'mlx4', 'mlx5', 'ocrdma', 'qib', 'srp' and 'usnic' into for-next
Merge branch 'ip-roce' into for-next
Somnath Kotur (1):
RDMA/cma: Handle global/non-linklocal IPv6 addresses in cma_check_linklocal()
Svetlana Mavrina (1):
RDMA/amso1100: Add check if cache memory was allocated before freeing it
Upinder Malhi (22):
IB/usnic: Add Cisco VIC low-level hardware driver
IB/usnic: Change WARN_ON to lockdep_assert_held
IB/usnic: Add struct usnic_transport_spec
IB/usnic: Push all forwarding state to usnic_fwd.[hc]
IB/usnic: Port over main.c and verbs.c to the usnic_fwd.h
IB/usnic: Port over usnic_ib_qp_grp.[hc] to new usnic_fwd.h
IB/usnic: Port over sysfs to new usnic_fwd.h
IB/usnic: Update ABI and Version file for UDP support
IB/usnic: Add UDP support to usnic_fwd.[hc]
IB:usnic: Add UDP support to usnic_transport.[hc]
IB/usnic: Add UDP support in u*verbs.c, u*main.c and u*util.h
IB/usnic: Add UDP support in usnic_ib_qp_grp.[hc]
IB/core: Add RDMA_TRANSPORT_USNIC_UDP
IB/usnic: Remove superflous parentheses
IB/usnic: Use for_each_sg instead of a for-loop
IB/usnic: Expose flows via debugfs
IB/usnic: Append documentation to usnic_transport.h and cleanup
IB/usnic: Fix endianness-related warnings
IB/usnic: Add dependency on CONFIG_INET
IB/core: Add support for RDMA_NODE_USNIC_UDP
IB/usnic: Advertise usNIC devices as RDMA_NODE_USNIC_UDP
IB/usnic: Set userspace/kernel ABI ver to 4
Wei Yongjun (3):
IB/usnic: Remove unused variable in usnic_debugfs_exit()
IB/cm: Fix missing unlock on error in cm_init_qp_rtr_attr()
IB/usnic: Remove unused includes of <linux/version.h>
Documentation/scsi/scsi_transport_srp/Makefile | 7 +
.../scsi_transport_srp/rport_state_diagram.dot | 26 +
MAINTAINERS | 7 +-
drivers/infiniband/Kconfig | 6 +-
drivers/infiniband/Makefile | 1 +
drivers/infiniband/core/Makefile | 5 +-
drivers/infiniband/core/addr.c | 97 ++-
drivers/infiniband/core/cm.c | 52 ++
drivers/infiniband/core/cma.c | 81 ++-
drivers/infiniband/core/core_priv.h | 2 +
drivers/infiniband/core/iwcm.c | 3 +-
drivers/infiniband/core/sa_query.c | 12 +-
drivers/infiniband/core/sysfs.c | 1 +
drivers/infiniband/core/ucma.c | 18 +-
drivers/infiniband/core/uverbs_cmd.c | 4 +
drivers/infiniband/core/verbs.c | 101 ++-
drivers/infiniband/hw/amso1100/c2_intr.c | 3 +-
drivers/infiniband/hw/cxgb4/mem.c | 2 +-
drivers/infiniband/hw/ehca/ehca_qp.c | 2 +-
drivers/infiniband/hw/ipath/ipath_qp.c | 2 +-
drivers/infiniband/hw/mlx4/Kconfig | 2 +-
drivers/infiniband/hw/mlx4/ah.c | 40 +-
drivers/infiniband/hw/mlx4/cq.c | 9 +
drivers/infiniband/hw/mlx4/main.c | 747 +++++++++++++++-----
drivers/infiniband/hw/mlx4/mlx4_ib.h | 18 +-
drivers/infiniband/hw/mlx4/qp.c | 157 ++++-
drivers/infiniband/hw/mlx4/sysfs.c | 8 +-
drivers/infiniband/hw/mlx5/cq.c | 310 ++++++++-
drivers/infiniband/hw/mlx5/main.c | 13 +-
drivers/infiniband/hw/mlx5/mlx5_ib.h | 4 +-
drivers/infiniband/hw/mlx5/mr.c | 1 -
drivers/infiniband/hw/mlx5/qp.c | 133 ++--
drivers/infiniband/hw/mlx5/user.h | 3 +
drivers/infiniband/hw/mthca/mthca_qp.c | 3 +-
drivers/infiniband/hw/nes/nes_cm.c | 3 +-
drivers/infiniband/hw/ocrdma/Kconfig | 2 +-
drivers/infiniband/hw/ocrdma/ocrdma.h | 12 +
drivers/infiniband/hw/ocrdma/ocrdma_ah.c | 6 +-
drivers/infiniband/hw/ocrdma/ocrdma_hw.c | 21 +-
drivers/infiniband/hw/ocrdma/ocrdma_hw.h | 1 -
drivers/infiniband/hw/ocrdma/ocrdma_main.c | 138 ++--
drivers/infiniband/hw/ocrdma/ocrdma_sli.h | 4 +-
drivers/infiniband/hw/ocrdma/ocrdma_verbs.c | 3 +-
drivers/infiniband/hw/qib/qib_qp.c | 2 +-
drivers/infiniband/hw/qib/qib_ud.c | 9 +-
drivers/infiniband/hw/usnic/Kconfig | 10 +
drivers/infiniband/hw/usnic/Makefile | 15 +
drivers/infiniband/hw/usnic/usnic.h | 29 +
drivers/infiniband/hw/usnic/usnic_abi.h | 73 ++
drivers/infiniband/hw/usnic/usnic_common_pkt_hdr.h | 27 +
drivers/infiniband/hw/usnic/usnic_common_util.h | 68 ++
drivers/infiniband/hw/usnic/usnic_debugfs.c | 154 +++++
drivers/infiniband/hw/usnic/usnic_debugfs.h | 29 +
drivers/infiniband/hw/usnic/usnic_fwd.c | 350 ++++++++++
drivers/infiniband/hw/usnic/usnic_fwd.h | 113 +++
drivers/infiniband/hw/usnic/usnic_ib.h | 118 ++++
drivers/infiniband/hw/usnic/usnic_ib_main.c | 682 ++++++++++++++++++
drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c | 754 ++++++++++++++++++++
drivers/infiniband/hw/usnic/usnic_ib_qp_grp.h | 117 ++++
drivers/infiniband/hw/usnic/usnic_ib_sysfs.c | 341 +++++++++
drivers/infiniband/hw/usnic/usnic_ib_sysfs.h | 29 +
drivers/infiniband/hw/usnic/usnic_ib_verbs.c | 765 +++++++++++++++++++++
drivers/infiniband/hw/usnic/usnic_ib_verbs.h | 72 ++
drivers/infiniband/hw/usnic/usnic_log.h | 58 ++
drivers/infiniband/hw/usnic/usnic_transport.c | 202 ++++++
drivers/infiniband/hw/usnic/usnic_transport.h | 51 ++
drivers/infiniband/hw/usnic/usnic_uiom.c | 604 ++++++++++++++++
drivers/infiniband/hw/usnic/usnic_uiom.h | 80 +++
.../infiniband/hw/usnic/usnic_uiom_interval_tree.c | 236 +++++++
.../infiniband/hw/usnic/usnic_uiom_interval_tree.h | 73 ++
drivers/infiniband/hw/usnic/usnic_vnic.c | 467 +++++++++++++
drivers/infiniband/hw/usnic/usnic_vnic.h | 103 +++
drivers/infiniband/ulp/ipoib/ipoib_main.c | 4 +-
drivers/infiniband/ulp/ipoib/ipoib_verbs.c | 3 +
drivers/infiniband/ulp/srp/ib_srp.c | 1 +
drivers/net/ethernet/mellanox/mlx4/cmd.c | 9 +
drivers/net/ethernet/mellanox/mlx4/fw.c | 10 +
drivers/net/ethernet/mellanox/mlx4/mcg.c | 17 +
drivers/net/ethernet/mellanox/mlx4/mlx4.h | 5 +
drivers/net/ethernet/mellanox/mlx4/port.c | 20 +
.../net/ethernet/mellanox/mlx4/resource_tracker.c | 10 +
drivers/net/ethernet/mellanox/mlx5/core/cq.c | 17 +-
drivers/net/ethernet/mellanox/mlx5/core/debugfs.c | 39 +-
drivers/net/ethernet/mellanox/mlx5/core/main.c | 10 +-
.../net/ethernet/mellanox/mlx5/core/pagealloc.c | 13 +-
drivers/net/ethernet/mellanox/mlx5/core/port.c | 2 +-
drivers/net/ethernet/mellanox/mlx5/core/qp.c | 5 +-
drivers/scsi/scsi_transport_srp.c | 95 ++-
include/linux/mlx4/cmd.h | 1 +
include/linux/mlx4/cq.h | 15 +-
include/linux/mlx4/device.h | 7 +-
include/linux/mlx5/cq.h | 18 +-
include/linux/mlx5/device.h | 31 +-
include/linux/mlx5/qp.h | 45 ++
include/rdma/ib_addr.h | 69 +-
include/rdma/ib_cm.h | 1 +
include/rdma/ib_pack.h | 1 +
include/rdma/ib_sa.h | 3 +
include/rdma/ib_verbs.h | 42 +-
include/scsi/scsi_transport_srp.h | 36 +-
100 files changed, 7663 insertions(+), 567 deletions(-)
create mode 100644 Documentation/scsi/scsi_transport_srp/Makefile
create mode 100644 Documentation/scsi/scsi_transport_srp/rport_state_diagram.dot
create mode 100644 drivers/infiniband/hw/usnic/Kconfig
create mode 100644 drivers/infiniband/hw/usnic/Makefile
create mode 100644 drivers/infiniband/hw/usnic/usnic.h
create mode 100644 drivers/infiniband/hw/usnic/usnic_abi.h
create mode 100644 drivers/infiniband/hw/usnic/usnic_common_pkt_hdr.h
create mode 100644 drivers/infiniband/hw/usnic/usnic_common_util.h
create mode 100644 drivers/infiniband/hw/usnic/usnic_debugfs.c
create mode 100644 drivers/infiniband/hw/usnic/usnic_debugfs.h
create mode 100644 drivers/infiniband/hw/usnic/usnic_fwd.c
create mode 100644 drivers/infiniband/hw/usnic/usnic_fwd.h
create mode 100644 drivers/infiniband/hw/usnic/usnic_ib.h
create mode 100644 drivers/infiniband/hw/usnic/usnic_ib_main.c
create mode 100644 drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c
create mode 100644 drivers/infiniband/hw/usnic/usnic_ib_qp_grp.h
create mode 100644 drivers/infiniband/hw/usnic/usnic_ib_sysfs.c
create mode 100644 drivers/infiniband/hw/usnic/usnic_ib_sysfs.h
create mode 100644 drivers/infiniband/hw/usnic/usnic_ib_verbs.c
create mode 100644 drivers/infiniband/hw/usnic/usnic_ib_verbs.h
create mode 100644 drivers/infiniband/hw/usnic/usnic_log.h
create mode 100644 drivers/infiniband/hw/usnic/usnic_transport.c
create mode 100644 drivers/infiniband/hw/usnic/usnic_transport.h
create mode 100644 drivers/infiniband/hw/usnic/usnic_uiom.c
create mode 100644 drivers/infiniband/hw/usnic/usnic_uiom.h
create mode 100644 drivers/infiniband/hw/usnic/usnic_uiom_interval_tree.c
create mode 100644 drivers/infiniband/hw/usnic/usnic_uiom_interval_tree.h
create mode 100644 drivers/infiniband/hw/usnic/usnic_vnic.c
create mode 100644 drivers/infiniband/hw/usnic/usnic_vnic.h
^ permalink raw reply [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
@ 2013-12-23 17:24 Roland Dreier
0 siblings, 0 replies; 223+ messages in thread
From: Roland Dreier @ 2013-12-23 17:24 UTC (permalink / raw)
To: Linus Torvalds; +Cc: linux-rdma, linux-kernel
Hi Linus,
Please pull from
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git tags/rdma-for-linus
The following changes since commit 374b105797c3d4f29c685f3be535c35f5689b30e:
Linux 3.13-rc3 (2013-12-06 09:34:04 -0800)
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git tags/rdma-for-linus
for you to fetch changes up to 22f12c60e12a4112fdca31582e66fe501600ee2b:
Merge branches 'cxgb4', 'flowsteer' and 'misc' into for-linus (2013-12-23 09:19:02 -0800)
----------------------------------------------------------------
Last batch of InfiniBand/RDMA changes for 3.13 / 2014:
- Additional checks for uverbs to ensure forward compatibility, handle
malformed input better.
- Fix potential use-after-free in iWARP connection manager.
- Make a function static.
----------------------------------------------------------------
Rashika (1):
RDMA/cxgb4: Make _c4iw_write_mem_dma() static
Roland Dreier (2):
IB/uverbs: New macro to set pointers to NULL if length is 0 in INIT_UDATA()
Merge branches 'cxgb4', 'flowsteer' and 'misc' into for-linus
Steve Wise (1):
RDMA/iwcm: Don't touch cm_id after deref in rem_ref
Yann Droneaud (7):
IB/core: const'ify inbuf in struct ib_udata
IB/uverbs: Check reserved field in extended command header
IB/uverbs: Check comp_mask in destroy_flow
IB/uverbs: Check reserved fields in create_flow
IB/uverbs: Set error code when fail to consume all flow_spec items
IB/uverbs: Check input length in flow steering uverbs
IB/uverbs: Check access to userspace response buffer in extended command
drivers/infiniband/core/iwcm.c | 11 +++++++++--
drivers/infiniband/core/uverbs.h | 10 +++++++++-
drivers/infiniband/core/uverbs_cmd.c | 17 +++++++++++++++++
drivers/infiniband/core/uverbs_main.c | 27 ++++++++++++++++-----------
drivers/infiniband/hw/cxgb4/mem.c | 2 +-
include/rdma/ib_verbs.h | 2 +-
6 files changed, 53 insertions(+), 16 deletions(-)
^ permalink raw reply [flat|nested] 223+ messages in thread
* Re: [GIT PULL] please pull infiniband.git
2013-11-18 18:40 Roland Dreier
@ 2013-11-19 17:25 ` Or Gerlitz
0 siblings, 0 replies; 223+ messages in thread
From: Or Gerlitz @ 2013-11-19 17:25 UTC (permalink / raw)
To: Roland Dreier; +Cc: linux-rdma, linux-kernel
On 18/11/2013 20:40, Roland Dreier wrote:
> Hi Linus,
>
> Please pull from
>
> git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git tags/rdma-for-linus
>
> ----------------------------------------------------------------
>
> Main batch of InfiniBand/RDMA changes for 3.13:
>
> - Re-enable flow steering verbs with new improved userspace ABI
> - Fixes for slow connection due to GID lookup scalability
> - IPoIB fixes
> - Many fixes to HW drivers including mlx4, mlx5, ocrdma and qib
> - Further improvements to SRP error handling
> - Add new transport type for Cisco usNIC
Hi Roland, can you spare few words on how you see the RoCE IP based Addressing V5 series? we have addressed the concerns you raised re compatibility and also simplified the series to avoid using uverbs extensions @ this point, anything else left there?
This series is pre-step for submitting SRIOV support to RoCE (the code is ready!) and hence no Cloud RoCE upstream solution for VMs before we nail that, it deserves your response. I have posted reply on Sep 17th, to your concerns http://marc.info/?l=linux-rdma&m=137945099714426&w=2 and didn't really hear from you. So went ahead and addressed the feedback as we captured it.
Or.
^ permalink raw reply [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
@ 2013-11-18 18:40 Roland Dreier
2013-11-19 17:25 ` Or Gerlitz
0 siblings, 1 reply; 223+ messages in thread
From: Roland Dreier @ 2013-11-18 18:40 UTC (permalink / raw)
To: Linus Torvalds; +Cc: linux-rdma, linux-kernel
Hi Linus,
Please pull from
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git tags/rdma-for-linus
----------------------------------------------------------------
Main batch of InfiniBand/RDMA changes for 3.13:
- Re-enable flow steering verbs with new improved userspace ABI
- Fixes for slow connection due to GID lookup scalability
- IPoIB fixes
- Many fixes to HW drivers including mlx4, mlx5, ocrdma and qib
- Further improvements to SRP error handling
- Add new transport type for Cisco usNIC
----------------------------------------------------------------
Bart Van Assche (11):
IB/srp: Keep rport as long as the IB transport layer
scsi_transport_srp: Add transport layer error handling
IB/srp: Use SRP transport layer error recovery
IB/srp: Start timers if a transport layer error occurs
scsi_transport_srp: Add periodic reconnect support
IB/srp: Add periodic reconnect functionality
IB/srp: Export sgid to sysfs
IB/srp: Introduce srp_alloc_req_data()
IB/srp: Make queue size configurable
IB/srp: Avoid offlining operational SCSI devices
IB/srp: Report receive errors correctly
Ben Hutchings (1):
IB/cxgb4: Fix formatting of physical address
Dan Carpenter (1):
RDMA/ocrdma: Silence an integer underflow warning
Dave Jones (1):
RDMA/nes: Remove self-assignment from nes_query_qp()
Doug Ledford (2):
IB/cma: Use cached gids
IB/cma: Check for GID on listening device first
Eli Cohen (17):
IB/mlx5: Fix check of number of entries in create CQ
IB/mlx5: Multithreaded create MR
IB/mlx5: Fix overflow check in IB_WR_FAST_REG_MR
IB/mlx5: Simplify mlx5_ib_destroy_srq
mlx5: Fix cleanup flow when DMA mapping fails
mlx5: Support communicating arbitrary host page size to firmware
mlx5: Clear reserved area in set_hca_cap()
IB/mlx5: Remove dead code in mr.c
IB/mlx5: Remove "Always false" comparison
IB/mlx5: Update opt param mask for RTS2RTS
mlx5: Use enum to indicate adapter page size
IB/mlx4: Fix endless loop in resize CQ
IB/core: Encorce MR access rights rules on kernel consumers
IB/mlx5: Remove dead code
IB/mlx5: Fix list_del of empty list
IB/mlx4: Fix device max capabilities check
IB/mlx5: Fix page shift in create CQ for userspace
Erez Shitrit (6):
IPoIB: Fix crash in dev_open error flow
IPoIB: Fix deadlock between dev_change_flags() and __ipoib_dev_flush()
IPoIB: Avoid flushing the driver workqueue on dev_down
IPoIB: Fix usage of uninitialized multicast objects
IPoIB: Add path query flushing in ipoib_ib_dev_cleanup
IPoIB: Start multicast join process only on active ports
Jack Wang (1):
IB/srp: Add change_queue_depth and change_queue_type support
Jan Kara (2):
IB/ipath: Convert ipath_user_sdma_pin_pages() to use get_user_pages_fast()
IB/qib: Convert qib_user_sdma_pin_pages() to use get_user_pages_fast()
Joe Perches (1):
IB/ucma: Convert use of typedef ctl_table to struct ctl_table
Latchesar Ionkov (1):
IB/core: Pass imm_data from ib_uverbs_send_wr to ib_send_wr correctly
Matan Barak (2):
IB/core: clarify overflow/underflow checks on ib_create/destroy_flow
IB/core: Re-enable create_flow/destroy_flow uverbs
Mathias Krause (1):
IB/netlink: Remove superfluous RDMA_NL_GET_OP() masking
Michal Nazarewicz (1):
RDMA/cma: Remove unused argument and minor dead code
Michal Schmidt (1):
IPoIB: lower NAPI weight
Mike Marciniszyn (2):
IB/qib: Fix checkpatch __packed warnings
IB/qib: Fix txselect regression
Moshe Lazer (2):
IB/mlx5: Fix srq free in destroy qp
mlx5_core: Change optimal_reclaimed_pages for better performance
Naresh Gottumukkala (2):
RDMA/ocrdma: Fix a crash in rmmod
RDMA/ocrdma: Remove redundant check in ocrdma_build_fr()
Roland Dreier (1):
Merge branches 'cma', 'cxgb4', 'flowsteer', 'ipoib', 'misc', 'mlx4', 'mlx5', 'nes', 'ocrdma', 'qib' and 'srp' into for-next
Sean Hefty (1):
RDMA/ucma: Discard events for IDs not yet claimed by user space
Tal Alon (1):
IPoIB: Change CM skb memory allocation to be non-atomic during init
Upinder Malhi \(umalhi\) (1):
IB/core: Add Cisco usNIC rdma node and transport types
Vu Pham (2):
IB/srp: Make transport layer retry count configurable
IB/srp: Remove target from list before freeing Scsi_Host structure
Yann Droneaud (5):
IB/core: Rename 'flow' structs to match other uverbs structs
IB/core: Make uverbs flow structure use names like verbs ones
IB/core: Use a common header for uverbs flow_specs
IB/core: Remove ib_uverbs_flow_spec structure from userspace
IB/core: extended command: an improved infrastructure for uverbs commands
Zhao Hongjiang (1):
IB/cm: Convert to using idr_alloc_cyclic()
Documentation/ABI/stable/sysfs-driver-ib_srp | 13 +
Documentation/ABI/stable/sysfs-transport-srp | 39 ++
drivers/infiniband/Kconfig | 11 -
drivers/infiniband/core/cm.c | 5 +-
drivers/infiniband/core/cma.c | 68 ++-
drivers/infiniband/core/netlink.c | 2 +-
drivers/infiniband/core/sysfs.c | 1 +
drivers/infiniband/core/ucma.c | 4 +-
drivers/infiniband/core/uverbs.h | 36 +-
drivers/infiniband/core/uverbs_cmd.c | 109 ++---
drivers/infiniband/core/uverbs_main.c | 128 +++--
drivers/infiniband/core/verbs.c | 17 +
drivers/infiniband/hw/cxgb4/device.c | 4 +-
drivers/infiniband/hw/ipath/ipath_user_sdma.c | 7 +-
drivers/infiniband/hw/mlx4/cq.c | 9 +-
drivers/infiniband/hw/mlx4/main.c | 8 +-
drivers/infiniband/hw/mlx5/cq.c | 25 +-
drivers/infiniband/hw/mlx5/main.c | 3 +-
drivers/infiniband/hw/mlx5/mlx5_ib.h | 6 +
drivers/infiniband/hw/mlx5/mr.c | 167 +++++--
drivers/infiniband/hw/mlx5/qp.c | 21 +-
drivers/infiniband/hw/mlx5/srq.c | 8 +-
drivers/infiniband/hw/nes/nes_verbs.c | 2 +-
drivers/infiniband/hw/ocrdma/ocrdma.h | 53 +-
drivers/infiniband/hw/ocrdma/ocrdma_hw.c | 2 +-
drivers/infiniband/hw/ocrdma/ocrdma_main.c | 7 +-
drivers/infiniband/hw/ocrdma/ocrdma_verbs.c | 6 +-
drivers/infiniband/hw/qib/qib_iba7322.c | 11 +-
drivers/infiniband/hw/qib/qib_mad.h | 14 +-
drivers/infiniband/hw/qib/qib_user_sdma.c | 6 +-
drivers/infiniband/hw/qib/qib_verbs.h | 10 +-
drivers/infiniband/ulp/ipoib/ipoib.h | 4 +-
drivers/infiniband/ulp/ipoib/ipoib_cm.c | 14 +-
drivers/infiniband/ulp/ipoib/ipoib_ib.c | 24 +-
drivers/infiniband/ulp/ipoib/ipoib_main.c | 12 +-
drivers/infiniband/ulp/ipoib/ipoib_multicast.c | 29 +-
drivers/infiniband/ulp/ipoib/ipoib_netlink.c | 4 +-
drivers/infiniband/ulp/ipoib/ipoib_vlan.c | 10 +-
drivers/infiniband/ulp/srp/ib_srp.c | 500 +++++++++++++++----
drivers/infiniband/ulp/srp/ib_srp.h | 21 +-
drivers/net/ethernet/mellanox/mlx5/core/cmd.c | 106 ++--
drivers/net/ethernet/mellanox/mlx5/core/debugfs.c | 8 +-
drivers/net/ethernet/mellanox/mlx5/core/eq.c | 2 +-
drivers/net/ethernet/mellanox/mlx5/core/main.c | 35 +-
drivers/net/ethernet/mellanox/mlx5/core/mr.c | 32 +-
.../net/ethernet/mellanox/mlx5/core/pagealloc.c | 196 +++++---
drivers/scsi/scsi_transport_srp.c | 540 ++++++++++++++++++++-
include/linux/mlx5/device.h | 13 +-
include/linux/mlx5/driver.h | 18 +-
include/rdma/ib_verbs.h | 20 +-
include/scsi/scsi_transport_srp.h | 83 +++-
include/uapi/rdma/ib_user_verbs.h | 95 ++--
52 files changed, 1973 insertions(+), 595 deletions(-)
^ permalink raw reply [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
@ 2013-10-22 17:22 Roland Dreier
0 siblings, 0 replies; 223+ messages in thread
From: Roland Dreier @ 2013-10-22 17:22 UTC (permalink / raw)
To: Linus Torvalds; +Cc: linux-kernel, linux-rdma
Hi Linus,
This is the "disable ABI we don't want to freeze" pull I warned you about.
Please pull from
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git tags/rdma-for-linus
----------------------------------------------------------------
Disable not-quite-ready userspace ABI for IB flow steering
----------------------------------------------------------------
Yann Droneaud (1):
IB/core: Temporarily disable create_flow/destroy_flow uverbs
drivers/infiniband/Kconfig | 11 +++++++++++
drivers/infiniband/core/uverbs.h | 2 ++
drivers/infiniband/core/uverbs_cmd.c | 4 ++++
drivers/infiniband/core/uverbs_main.c | 6 ++++++
drivers/infiniband/hw/mlx4/main.c | 2 ++
include/uapi/rdma/ib_user_verbs.h | 6 ++++++
6 files changed, 31 insertions(+)
^ permalink raw reply [flat|nested] 223+ messages in thread
* Re: [GIT PULL] please pull infiniband.git
2013-10-15 0:52 ` Linus Torvalds
@ 2013-10-15 17:48 ` Roland Dreier
0 siblings, 0 replies; 223+ messages in thread
From: Roland Dreier @ 2013-10-15 17:48 UTC (permalink / raw)
To: Linus Torvalds; +Cc: Eli Cohen, linux-rdma, Linux Kernel Mailing List
On Mon, Oct 14, 2013 at 5:52 PM, Linus Torvalds
<torvalds@linux-foundation.org> wrote:
> So get your act together, and push back on the people you are supposed
> to manage. Because this is *not* acceptable for post-rc5, and I'm
> giving this single warning. Next time, I'll just ignore the sh*t you
> send me.
>
> Comprende?
Fair enough. I've been AWOL for a month due to real life / non-kernel
stuff, and I didn't want the Mellanox guys to miss a kernel cycle just
because I couldn't get my act together. So this one is totally on me
-- I know it's late in the cycle and I tried to sneak it in.
I do expect to send one more patch turning off a not-fully-baked new
feature for 3.12, but other than that everything else will wait for
3.13.
- R.
^ permalink raw reply [flat|nested] 223+ messages in thread
* Re: [GIT PULL] please pull infiniband.git
2013-10-14 18:16 Roland Dreier
@ 2013-10-15 0:52 ` Linus Torvalds
2013-10-15 17:48 ` Roland Dreier
0 siblings, 1 reply; 223+ messages in thread
From: Linus Torvalds @ 2013-10-15 0:52 UTC (permalink / raw)
To: Roland Dreier, Eli Cohen; +Cc: linux-rdma, Linux Kernel Mailing List
On Mon, Oct 14, 2013 at 11:16 AM, Roland Dreier <roland@kernel.org> wrote:
>
> Last batch of IB changes for 3.12: many mlx5 hardware driver fixes plus
> one trivial semicolon cleanup.
Quite frankly, these mlx5 updates don't look like regression fixes.
They look like "continued development" to me, and seem to be things
that never worked. At least some of them look like performance
enhancements, in fact, not even resembling bugfixes. Others look like
"not a bug, but let's improve random behavior".
I pulled this once, because hardly anybody really cares. But the other
side of that "nobody cares" is that I might as well not have pulled.
If this kind of "continued development" patches keep happening, I'll
just start ignoring pull requests after the merge window.
So get your act together, and push back on the people you are supposed
to manage. Because this is *not* acceptable for post-rc5, and I'm
giving this single warning. Next time, I'll just ignore the sh*t you
send me.
Comprende?
Linus
^ permalink raw reply [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
@ 2013-10-14 18:16 Roland Dreier
2013-10-15 0:52 ` Linus Torvalds
0 siblings, 1 reply; 223+ messages in thread
From: Roland Dreier @ 2013-10-14 18:16 UTC (permalink / raw)
To: Linus Torvalds; +Cc: linux-rdma, linux-kernel
Hi Linus,
Please pull from
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git tags/rdma-for-linus
----------------------------------------------------------------
Last batch of IB changes for 3.12: many mlx5 hardware driver fixes plus
one trivial semicolon cleanup.
----------------------------------------------------------------
Eli Cohen (12):
IB/mlx5: Fix send work queue size calculation
mlx5: Remove checksum on command interface commands
IB/mlx5: Decrease memory consumption of mr caches
IB/mlx5: Avoid async events on invalid port number
mlx5: Keep polling to reclaim pages while any returned
mlx5: Fix layout of struct mlx5_init_seg
IB/mlx5: Disable atomic operations
mlx5: Fix opt param mask for sq err to rts transition
IB/mlx5: Fix opt param mask according to firmware spec
mlx5: Fix error code translation from firmware to driver
IB/mlx5: Fix alignment of reg umr gather buffers
IB/mlx5: Ensure proper synchronization accessing memory
Joe Perches (1):
IB: Remove unnecessary semicolons
Moshe Lazer (2):
IB/mlx5: Flush cache workqueue before destroying it
IB/mlx5: Fix memory leak in mlx5_ib_create_srq
Roland Dreier (1):
Merge branch 'misc' into for-next
Sagi Grimberg (1):
IB/mlx5: Fix eq names to display nicely in /proc/interrupts
drivers/infiniband/hw/amso1100/c2_ae.c | 2 +-
drivers/infiniband/hw/mlx5/main.c | 16 +++--
drivers/infiniband/hw/mlx5/mr.c | 70 +++++++++----------
drivers/infiniband/hw/mlx5/qp.c | 80 ++++++++--------------
drivers/infiniband/hw/mlx5/srq.c | 4 +-
drivers/infiniband/hw/mthca/mthca_eq.c | 2 +-
drivers/infiniband/hw/ocrdma/ocrdma_hw.c | 6 +-
drivers/infiniband/hw/ocrdma/ocrdma_main.c | 2 +-
drivers/infiniband/hw/ocrdma/ocrdma_verbs.c | 6 +-
drivers/net/ethernet/mellanox/mlx5/core/cmd.c | 28 ++++----
drivers/net/ethernet/mellanox/mlx5/core/eq.c | 4 +-
drivers/net/ethernet/mellanox/mlx5/core/main.c | 21 ++----
.../net/ethernet/mellanox/mlx5/core/pagealloc.c | 16 ++++-
include/linux/mlx5/device.h | 4 +-
include/linux/mlx5/driver.h | 6 +-
15 files changed, 126 insertions(+), 141 deletions(-)
^ permalink raw reply [flat|nested] 223+ messages in thread
* Re: [GIT PULL] please pull infiniband.git
2013-09-05 16:42 ` Linus Torvalds
@ 2013-09-05 16:43 ` David Miller
0 siblings, 0 replies; 223+ messages in thread
From: David Miller @ 2013-09-05 16:43 UTC (permalink / raw)
To: torvalds; +Cc: sfr, roland, linux-kernel, netdev
From: Linus Torvalds <torvalds@linux-foundation.org>
Date: Thu, 5 Sep 2013 09:42:05 -0700
> On Wed, Sep 4, 2013 at 5:31 PM, Stephen Rothwell <sfr@canb.auug.org.au> wrote:
>>
>> I am carrying the following merge fix patch for a semantic conflict
>> between this tree and Dave's net-next tree:
>
> Ok. I haven't gotten David's pull request yet, and unless I get it
> later today I'll probably forget this.
>
> David, mind reminding me when you do send (or maybe cc'ing Stephen, so
> that he will)?
Sure, I was planning on send out the pull request by the end of today.
^ permalink raw reply [flat|nested] 223+ messages in thread
* Re: [GIT PULL] please pull infiniband.git
2013-09-05 0:31 ` Stephen Rothwell
@ 2013-09-05 16:42 ` Linus Torvalds
2013-09-05 16:43 ` David Miller
0 siblings, 1 reply; 223+ messages in thread
From: Linus Torvalds @ 2013-09-05 16:42 UTC (permalink / raw)
To: Stephen Rothwell
Cc: Roland Dreier, Linux Kernel Mailing List, David Miller,
Network Development
On Wed, Sep 4, 2013 at 5:31 PM, Stephen Rothwell <sfr@canb.auug.org.au> wrote:
>
> I am carrying the following merge fix patch for a semantic conflict
> between this tree and Dave's net-next tree:
Ok. I haven't gotten David's pull request yet, and unless I get it
later today I'll probably forget this.
David, mind reminding me when you do send (or maybe cc'ing Stephen, so
that he will)?
Linus
^ permalink raw reply [flat|nested] 223+ messages in thread
* Re: [GIT PULL] please pull infiniband.git
2013-09-04 17:03 Roland Dreier
@ 2013-09-05 0:31 ` Stephen Rothwell
2013-09-05 16:42 ` Linus Torvalds
0 siblings, 1 reply; 223+ messages in thread
From: Stephen Rothwell @ 2013-09-05 0:31 UTC (permalink / raw)
To: Linus Torvalds; +Cc: Roland Dreier, linux-kernel, David Miller, netdev
[-- Attachment #1: Type: text/plain, Size: 1671 bytes --]
Hi Linus,
On Wed, 4 Sep 2013 10:03:38 -0700 Roland Dreier <roland@kernel.org> wrote:
>
> Please pull from
>
> git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git tags/rdma-for-linus
I am carrying the following merge fix patch for a semantic conflict
between this tree and Dave's net-next tree:
From: Stephen Rothwell <sfr@canb.auug.org.au>
Date: Tue, 13 Aug 2013 13:01:49 +1000
Subject: [PATCH] cxgb4: fix up for bond_for_each_slave API change
Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
---
drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c
index 038df4b..b6ad557 100644
--- a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c
+++ b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c
@@ -3982,7 +3982,6 @@ static int cxgb4_inet6addr_handler(struct notifier_block *this,
struct inet6_ifaddr *ifa = data;
struct net_device *event_dev;
int ret = NOTIFY_DONE;
- int cnt;
struct bonding *bond = netdev_priv(ifa->idev->dev);
struct slave *slave;
struct pci_dev *first_pdev = NULL;
@@ -3996,7 +3995,7 @@ static int cxgb4_inet6addr_handler(struct notifier_block *this,
* in all of them only once.
*/
read_lock(&bond->lock);
- bond_for_each_slave(bond, slave, cnt) {
+ bond_for_each_slave(bond, slave) {
if (!first_pdev) {
ret = clip_add(slave->dev, ifa, event);
/* If clip_add is success then only initialize
--
1.8.4.rc0
--
Cheers,
Stephen Rothwell sfr@canb.auug.org.au
[-- Attachment #2: Type: application/pgp-signature, Size: 836 bytes --]
^ permalink raw reply related [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
@ 2013-09-04 17:03 Roland Dreier
2013-09-05 0:31 ` Stephen Rothwell
0 siblings, 1 reply; 223+ messages in thread
From: Roland Dreier @ 2013-09-04 17:03 UTC (permalink / raw)
To: Linus Torvalds; +Cc: linux-rdma, linux-kernel
Hi Linus,
Please pull from
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git tags/rdma-for-linus
----------------------------------------------------------------
Main batch of InfiniBand/RDMA changes for 3.12 merge window:
- Large ocrdma HW driver update: add "fast register" work requests,
fixes, cleanups
- Add receive flow steering support for raw QPs
- Fix IPoIB neighbour race that leads to crash
- iSER updates including support for using "fast register" memory
registration
- IPv6 support for iWARP
- XRC transport fixes
----------------------------------------------------------------
CQ Tang (1):
IB/qib: Improve SDMA performance
Hadar Hen Zion (3):
IB/core: Add receive flow steering support
IB/core: Export ib_create/destroy_flow through uverbs
IB/mlx4: Add receive flow steering support
Igor Ivanov (1):
IB/core: Infrastructure for extensible uverbs commands
Ira Weiny (1):
IB/qib: Move COUNTER_MASK definition within qib_mad.h header guards
Jim Foraker (1):
IPoIB: Fix race in deleting ipoib_neigh entries
Matan Barak (1):
IB/core: Better checking of userspace values for receive flow steering
Naresh Gottumukkala (19):
RDMA/ocrdma: Style and redundant code cleanup
RDMA/ocrdma: Remove redundant dev reference
RDMA/ocrdma: Don't allow zero/invalid sgid usage
RDMA/ocrdma: Remove driver QP state machine
RDMA/ocrdma: Remove __packed
RDMA/ocrdma: Cache recv DB until QP moved to RTR
RDMA/ocrdma: Create IRD queue fix
RDMA/ocrdma: Add support for fast register work requests (FRWR)
RDMA/ocrdma: Remove the MTU check based on Ethernet MTU
RDMA/ocrdma: Fix to work with even a single MSI-X vector
RDMA/ocrdma: For ERX2 irrespective of Qid, num_posted offset is 24
RDMA/ocrdma: FRMA code cleanup
RDMA/ocrdma: Dont use PD 0 for userpace CQ DB
RDMA/ocrdma: Increase STAG array size
RDMA/ocrdma: Fix for displaying proper link speed
RDMA/ocrdma: Consider multiple SGES in case of DPP
RDMA/ocrdma: Add ABI versioning support
RDMA/ocrdma: Fill PVID in UMC case
RDMA/ocrdma: Fix passing wrong opcode to modify_srq
Or Gerlitz (1):
IB/iser: Use proper debug level value for info prints
Paul Bolle (1):
IB/qib: Make qib_driver static
Roi Dayan (1):
IB/iser: Fix possible memory leak in iser_create_frwr_pool()
Roland Dreier (2):
RDMA/ocrdma: Fix compiler warning about int/pointer size mismatch
Merge branches 'cxgb4', 'flowsteer', 'ipoib', 'iser', 'mlx4', 'ocrdma' and 'qib' into for-next
Sagi Grimberg (5):
IB/iser: Generalize rdma memory registration
IB/iser: Handle unaligned SG in separate function
IB/iser: Place the fmr pool into a union in iser's IB conn struct
IB/iser: Introduce fast memory registration model (FRWR)
IB/iser: Fix redundant pointer check in dealloc flow
Shlomo Pongratz (2):
IB/iser: Restructure allocation/deallocation of connection resources
IB/iser: Accept session->cmds_max from user space
Steve Wise (9):
RDMA/cma: Add IPv6 support for iWARP
RDMA/cxgb4: Use correct bit shift macros for vlan filter tuples
RDMA/cxgb4: Handle newer firmware changes
RDMA/cxgb4: Fix QP flush logic
RDMA/cxgb4: Fix accounting for unsignaled SQ WRs to deal with wrap
RDMA/cxgb4: Set arp error handler for PASS_ACCEPT_RPL messages
RDMA/cxgb4: Always do GTS write if cidx_inc == CIDXINC_MASK
RDMA/cxgb4: Advertise ~0ULL as max MR size
RDMA/cxgb4: Issue RI.FINI before closing when entering TERM
Vipul Pandya (3):
cxgb4: Add routines to create and remove listening IPv6 servers
cxgb4: Add CLIP support to store compressed IPv6 address
RDMA/cxgb4: Add support for active and passive open connection with IPv6 address
Yijing Wang (1):
IB/qib: Clean up unnecessary MSI/MSI-X capability find
Yishai Hadas (3):
mlx4_core: Fix XRC QPs detection in the resource tracker
IB/core: Add locking around event dispatching on XRC target QPs
IB/core: Fixes to XRC reference counting in uverbs
drivers/infiniband/core/cma.c | 44 +-
drivers/infiniband/core/uverbs.h | 4 +
drivers/infiniband/core/uverbs_cmd.c | 250 +++++-
drivers/infiniband/core/uverbs_main.c | 42 +-
drivers/infiniband/core/verbs.c | 30 +
drivers/infiniband/hw/amso1100/c2_ae.c | 18 +-
drivers/infiniband/hw/amso1100/c2_cm.c | 16 +-
drivers/infiniband/hw/cxgb3/iwch_cm.c | 46 +-
drivers/infiniband/hw/cxgb4/Kconfig | 2 +-
drivers/infiniband/hw/cxgb4/cm.c | 860 ++++++++++++-------
drivers/infiniband/hw/cxgb4/cq.c | 329 +++++---
drivers/infiniband/hw/cxgb4/device.c | 116 ++-
drivers/infiniband/hw/cxgb4/ev.c | 10 -
drivers/infiniband/hw/cxgb4/iw_cxgb4.h | 9 +-
drivers/infiniband/hw/cxgb4/qp.c | 41 +-
drivers/infiniband/hw/cxgb4/t4.h | 29 +-
drivers/infiniband/hw/mlx4/main.c | 235 ++++++
drivers/infiniband/hw/mlx4/mlx4_ib.h | 12 +
drivers/infiniband/hw/nes/nes_cm.c | 153 ++--
drivers/infiniband/hw/ocrdma/ocrdma.h | 22 +-
drivers/infiniband/hw/ocrdma/ocrdma_abi.h | 32 +-
drivers/infiniband/hw/ocrdma/ocrdma_ah.c | 14 +-
drivers/infiniband/hw/ocrdma/ocrdma_hw.c | 458 +++++------
drivers/infiniband/hw/ocrdma/ocrdma_hw.h | 13 +-
drivers/infiniband/hw/ocrdma/ocrdma_main.c | 7 +
drivers/infiniband/hw/ocrdma/ocrdma_sli.h | 210 +++--
drivers/infiniband/hw/ocrdma/ocrdma_verbs.c | 878 ++++++++++++++++----
drivers/infiniband/hw/ocrdma/ocrdma_verbs.h | 6 +
drivers/infiniband/hw/qib/qib.h | 5 +-
drivers/infiniband/hw/qib/qib_common.h | 32 +-
drivers/infiniband/hw/qib/qib_file_ops.c | 2 +-
drivers/infiniband/hw/qib/qib_init.c | 2 +-
drivers/infiniband/hw/qib/qib_mad.h | 3 +-
drivers/infiniband/hw/qib/qib_pcie.c | 10 +-
drivers/infiniband/hw/qib/qib_sdma.c | 8 +-
drivers/infiniband/hw/qib/qib_user_sdma.c | 909 ++++++++++++++++-----
drivers/infiniband/ulp/ipoib/ipoib_cm.c | 3 -
drivers/infiniband/ulp/ipoib/ipoib_main.c | 9 +-
drivers/infiniband/ulp/iser/iscsi_iser.c | 19 +-
drivers/infiniband/ulp/iser/iscsi_iser.h | 73 +-
drivers/infiniband/ulp/iser/iser_initiator.c | 139 +++-
drivers/infiniband/ulp/iser/iser_memory.c | 231 +++++-
drivers/infiniband/ulp/iser/iser_verbs.c | 292 +++++--
drivers/net/ethernet/chelsio/cxgb4/cxgb4.h | 1 +
drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c | 288 ++++++-
drivers/net/ethernet/chelsio/cxgb4/cxgb4_uld.h | 5 +
drivers/net/ethernet/chelsio/cxgb4/t4_msg.h | 17 +-
drivers/net/ethernet/chelsio/cxgb4/t4fw_api.h | 23 +
.../net/ethernet/mellanox/mlx4/resource_tracker.c | 3 +-
include/linux/mlx4/device.h | 5 -
include/rdma/ib_verbs.h | 128 ++-
include/rdma/iw_cm.h | 8 +-
include/uapi/rdma/ib_user_verbs.h | 99 ++-
53 files changed, 4643 insertions(+), 1557 deletions(-)
^ permalink raw reply [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
@ 2013-08-02 16:12 Roland Dreier
0 siblings, 0 replies; 223+ messages in thread
From: Roland Dreier @ 2013-08-02 16:12 UTC (permalink / raw)
To: Linus Torvalds; +Cc: linux-rdma, linux-kernel
Hi Linus,
Please pull from
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git tags/rdma-for-linus
----------------------------------------------------------------
InfiniBand/RDMA fixes for 3.11-rc:
- Fixes for the newly merged mlx5 hardware driver
- Stack info leak fixes from Dan Carpenter
- Fixes for pkey table handling with SR-IOV
- A few other small things
----------------------------------------------------------------
Andi Shyti (1):
mlx5_core: Variable may be used uninitialized
Dan Carpenter (6):
RDMA/cxgb4: Fix stack info leak in c4iw_create_qp()
RDMA/ocrdma: Fix several stack info leaks
RDMA/nes: Fix info leaks in nes_create_qp() and nes_create_cq()
RDMA/cxgb3: Fix stack info leak in iwch_create_cq()
IB/mlx5: Fix stack info leak in mlx5_ib_alloc_ucontext()
mlx5_core: Fix use after free in mlx5_cmd_comp_handler()
Eli Cohen (1):
mlx5_core: Implement new initialization sequence
Erez Shitrit (1):
IPoIB: Fix pkey change flow for virtualization environments
Jack Morgenstein (2):
IB/mlx4: Use default pkey when creating tunnel QPs
IB/core: Create QP1 using the pkey index which contains the default pkey
Mike Marciniszyn (1):
IB/qib: Add err_decode() call for ring dump
Or Gerlitz (1):
IPoIB: Make sure child devices use valid/proper pkeys
Paul Bolle (1):
RDMA/cma: Fix gcc warning
Roland Dreier (3):
RDMA/ocrdma: Remove unused include
Revert "RDMA/nes: Fix compilation error when nes_debug is enabled"
Merge branches 'cma', 'cxgb3', 'cxgb4', 'ipoib', 'misc', 'mlx4', 'mlx5', 'nes', 'ocrdma' and 'qib' into for-next
Sean Hefty (2):
RDMA/cma: Fix accessing invalid private data for UD
RDMA/cma: Only call cma_save_ib_info() for CM REQs
Wei Yongjun (1):
IB/mlx5: Fix error return code in init_one()
drivers/infiniband/core/cma.c | 29 +++++----
drivers/infiniband/core/mad.c | 8 ++-
drivers/infiniband/hw/cxgb3/iwch_provider.c | 1 +
drivers/infiniband/hw/cxgb4/qp.c | 2 +
drivers/infiniband/hw/mlx4/mad.c | 10 ++-
drivers/infiniband/hw/mlx5/main.c | 11 ++--
drivers/infiniband/hw/mlx5/qp.c | 2 +-
drivers/infiniband/hw/nes/nes_hw.c | 4 +-
drivers/infiniband/hw/nes/nes_verbs.c | 3 +-
drivers/infiniband/hw/ocrdma/ocrdma_ah.c | 1 -
drivers/infiniband/hw/ocrdma/ocrdma_verbs.c | 5 +-
drivers/infiniband/hw/qib/qib_iba7322.c | 2 +
drivers/infiniband/hw/qib/qib_sdma.c | 2 +-
drivers/infiniband/ulp/ipoib/ipoib_ib.c | 76 ++++++++++++++++++----
drivers/infiniband/ulp/ipoib/ipoib_main.c | 2 +-
drivers/infiniband/ulp/ipoib/ipoib_netlink.c | 9 +++
drivers/net/ethernet/mellanox/mlx5/core/cmd.c | 19 ++++--
drivers/net/ethernet/mellanox/mlx5/core/main.c | 69 ++++++++++++++++++--
.../net/ethernet/mellanox/mlx5/core/pagealloc.c | 20 ++++--
include/linux/mlx5/device.h | 20 ++++++
include/linux/mlx5/driver.h | 4 +-
21 files changed, 239 insertions(+), 60 deletions(-)
^ permalink raw reply [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
@ 2013-07-11 23:52 Roland Dreier
0 siblings, 0 replies; 223+ messages in thread
From: Roland Dreier @ 2013-07-11 23:52 UTC (permalink / raw)
To: Linus Torvalds; +Cc: linux-kernel, linux-rdma
Hi Linus,
Please pull from
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git tags/rdma-for-linus
----------------------------------------------------------------
Main (updated) batch of InfiniBand/RDMA changes for 3.11 merge window:
- AF_IB (native IB addressing) for CMA from Sean Hefty
- New mlx5 driver for Mellanox Connect-IB adapters (including post merge request fixes)
- SRP fixes from Bart Van Assche (including fix to first merge request)
- qib HW driver updates
- Resurrection of ocrdma HW driver development
- uverbs conversion to create fds with O_CLOEXEC set
- Other small changes and fixes
----------------------------------------------------------------
Bart Van Assche (6):
IB/srp: Avoid skipping srp_reset_host() after a transport error
IB/srp: Skip host settle delay
IB/srp: Fail I/O fast if target offline
IB/srp: Maintain a single connection per I_T nexus
IB/srp: Make HCA completion vector configurable
IB/srp: Let srp_abort() return FAST_IO_FAIL if TL offline
Dan Carpenter (2):
RDMA/cxgb3: Timeout condition is never true
mlx5: Return -EFAULT instead of -EPERM
Dean Luick (1):
IB/qib: Log all SDMA errors unconditionally
Dotan Barak (1):
IB/srp: Fix remove_one crash due to resource exhaustion
Eli Cohen (1):
mlx5: Add driver for Mellanox Connect-IB adapters
Gottumukkala, Naresh (1):
RDMA/ocrdma: Remove use_cnt for queues
Jack Morgenstein (1):
IB/core: Add reserved values to enums for low-level driver use
Mike Marciniszyn (7):
IB/qib: Add DCA support
IB/qib: Remove atomic_inc_not_zero() from QP RCU
IB/qib: Optimize CQ callbacks
IB/qib: Convert opcode counters to per-context
IB/qib: Add per-context stats interface
IB/qib: Add qp_stats debug file
IB/qib: Fix module-level leak
Mitko Haralanov (1):
IB/qib: New transmitter tunning settings for Dell 1.1 backplane
Moshe Lazer (1):
mlx5_core: Adjust hca_cap.uar_page_sz to conform to Connect-IB spec
Naresh Gottumukkala (5):
RDMA/ocrdma: Use MCC_CREATE_EXT_V1 for MCC create
RDMA/ocrdma: Replace ocrdma_err with pr_err
RDMA/ocrdma: Set bad_wr in error case
RDMA/ocrdma: Change macros to inline funtions
RDMA/ocrdma: Reorg structures to avoid padding
Ramkrishna Vepa (2):
IB/qib: Add optional NUMA affinity
IB/qib: Add dual-rail NUMA awareness for PSM processes
Roland Dreier (6):
mlx5: Fix parameter type of health_handler_t
IB/mlx5: Make profile[] static in main.c
mlx5_core: Fixes for sparse warnings
IB/uverbs: Use get_unused_fd_flags(O_CLOEXEC) instead of get_unused_fd()
Merge branches 'af_ib', 'cxgb4', 'misc', 'mlx5', 'ocrdma', 'qib' and 'srp' into for-next
Merge branches 'mlx5', 'qib' and 'srp' into for-next
Sean Hefty (28):
RDMA/cma: Define native IB address
RDMA/cma: Allow enabling reuseaddr in any state
RDMA/cma: Include AF_IB in loopback and any address checks
IB/addr: Add AF_IB support to ip_addr_size
RDMA/cma: Update port reservation to support AF_IB
RDMA/cma: Allow user to specify AF_IB when binding
RDMA/cma: Do not modify sa_family when setting loopback address
RDMA/cma: Add helper functions to return id address information
RDMA/cma: Restrict AF_IB loopback to binding to IB devices only
RDMA/cma: Verify that source and dest sa_family are the same
RDMA/cma: Add support for AF_IB to rdma_resolve_addr()
RDMA/cma: Add support for AF_IB to rdma_resolve_route()
RDMA/cma: Add support for AF_IB to cma_get_service_id()
RDMA/cma: Remove unused SDP related code
RDMA/cma: Merge cma_get/save_net_info
RDMA/cma: Expose private data when using AF_IB
RDMA/cma: Set qkey for AF_IB
RDMA/cma: Only listen on IB devices when using AF_IB
RDMA/ucma: Support querying for AF_IB addresses
IB/sa: Export function to pack a path record into wire format
RDMA/ucma: Support querying when IB paths are not reversible
RDMA/cma: Export cma_get_service_id()
RDMA/ucma: Add ability to query GID addresses
RDMA/ucma: Name changes to indicate only IP addresses supported
RDMA/ucma: Allow user space to bind to AF_IB
RDMA/ucma: Allow user space to pass AF_IB into resolve
RDMA/ucma: Allow user space to specify AF_IB when joining multicast
RDMA/cma: Export AF_IB statistics
Vinit Agnihotri (1):
IB/qib: Update minor version number
Vu Pham (1):
IB/srp: Bump driver version and release date
Wei Yongjun (3):
IB/ehca: Fix error return code in ehca_create_slab_caches()
RDMA/ocrdma: Fix error return code in ocrdma_set_create_qp_rq_cmd()
IB/core: Fix error return code in add_port()
Documentation/ABI/stable/sysfs-driver-ib_srp | 7 +
MAINTAINERS | 22 +
drivers/infiniband/Kconfig | 1 +
drivers/infiniband/Makefile | 1 +
drivers/infiniband/core/addr.c | 20 +-
drivers/infiniband/core/cma.c | 906 ++++---
drivers/infiniband/core/sa_query.c | 6 +
drivers/infiniband/core/sysfs.c | 8 +-
drivers/infiniband/core/ucma.c | 321 ++-
drivers/infiniband/core/uverbs_cmd.c | 4 +-
drivers/infiniband/hw/cxgb3/iwch_qp.c | 3 +-
drivers/infiniband/hw/ehca/ehca_main.c | 1 +
drivers/infiniband/hw/mlx5/Kconfig | 10 +
drivers/infiniband/hw/mlx5/Makefile | 3 +
drivers/infiniband/hw/mlx5/ah.c | 92 +
drivers/infiniband/hw/mlx5/cq.c | 843 +++++++
drivers/infiniband/hw/mlx5/doorbell.c | 100 +
drivers/infiniband/hw/mlx5/mad.c | 139 ++
drivers/infiniband/hw/mlx5/main.c | 1504 ++++++++++++
drivers/infiniband/hw/mlx5/mem.c | 162 ++
drivers/infiniband/hw/mlx5/mlx5_ib.h | 545 +++++
drivers/infiniband/hw/mlx5/mr.c | 1007 ++++++++
drivers/infiniband/hw/mlx5/qp.c | 2524 ++++++++++++++++++++
drivers/infiniband/hw/mlx5/srq.c | 473 ++++
drivers/infiniband/hw/mlx5/user.h | 121 +
drivers/infiniband/hw/ocrdma/ocrdma.h | 63 +-
drivers/infiniband/hw/ocrdma/ocrdma_hw.c | 86 +-
drivers/infiniband/hw/ocrdma/ocrdma_main.c | 6 +-
drivers/infiniband/hw/ocrdma/ocrdma_sli.h | 35 +-
drivers/infiniband/hw/ocrdma/ocrdma_verbs.c | 135 +-
drivers/infiniband/hw/qib/Kconfig | 8 +
drivers/infiniband/hw/qib/Makefile | 1 +
drivers/infiniband/hw/qib/qib.h | 63 +-
drivers/infiniband/hw/qib/qib_common.h | 2 +-
drivers/infiniband/hw/qib/qib_cq.c | 67 +-
drivers/infiniband/hw/qib/qib_debugfs.c | 283 +++
drivers/infiniband/hw/qib/qib_debugfs.h | 45 +
drivers/infiniband/hw/qib/qib_driver.c | 1 -
drivers/infiniband/hw/qib/qib_file_ops.c | 176 +-
drivers/infiniband/hw/qib/qib_iba6120.c | 10 +
drivers/infiniband/hw/qib/qib_iba7220.c | 10 +
drivers/infiniband/hw/qib/qib_iba7322.c | 507 +++-
drivers/infiniband/hw/qib/qib_init.c | 145 +-
drivers/infiniband/hw/qib/qib_qp.c | 123 +-
drivers/infiniband/hw/qib/qib_sdma.c | 56 +
drivers/infiniband/hw/qib/qib_verbs.c | 8 +-
drivers/infiniband/hw/qib/qib_verbs.h | 33 +-
drivers/infiniband/ulp/srp/ib_srp.c | 89 +-
drivers/infiniband/ulp/srp/ib_srp.h | 1 +
drivers/net/ethernet/mellanox/Kconfig | 1 +
drivers/net/ethernet/mellanox/Makefile | 1 +
drivers/net/ethernet/mellanox/mlx5/core/Kconfig | 18 +
drivers/net/ethernet/mellanox/mlx5/core/Makefile | 5 +
drivers/net/ethernet/mellanox/mlx5/core/alloc.c | 238 ++
drivers/net/ethernet/mellanox/mlx5/core/cmd.c | 1515 ++++++++++++
drivers/net/ethernet/mellanox/mlx5/core/cq.c | 224 ++
drivers/net/ethernet/mellanox/mlx5/core/debugfs.c | 583 +++++
drivers/net/ethernet/mellanox/mlx5/core/eq.c | 521 ++++
drivers/net/ethernet/mellanox/mlx5/core/fw.c | 185 ++
drivers/net/ethernet/mellanox/mlx5/core/health.c | 227 ++
drivers/net/ethernet/mellanox/mlx5/core/mad.c | 78 +
drivers/net/ethernet/mellanox/mlx5/core/main.c | 475 ++++
drivers/net/ethernet/mellanox/mlx5/core/mcg.c | 106 +
.../net/ethernet/mellanox/mlx5/core/mlx5_core.h | 73 +
drivers/net/ethernet/mellanox/mlx5/core/mr.c | 136 ++
.../net/ethernet/mellanox/mlx5/core/pagealloc.c | 435 ++++
drivers/net/ethernet/mellanox/mlx5/core/pd.c | 101 +
drivers/net/ethernet/mellanox/mlx5/core/port.c | 104 +
drivers/net/ethernet/mellanox/mlx5/core/qp.c | 301 +++
drivers/net/ethernet/mellanox/mlx5/core/srq.c | 223 ++
drivers/net/ethernet/mellanox/mlx5/core/uar.c | 223 ++
include/linux/mlx5/cmd.h | 51 +
include/linux/mlx5/cq.h | 165 ++
include/linux/mlx5/device.h | 893 +++++++
include/linux/mlx5/doorbell.h | 79 +
include/linux/mlx5/driver.h | 769 ++++++
include/linux/mlx5/qp.h | 467 ++++
include/linux/mlx5/srq.h | 41 +
include/linux/socket.h | 2 +
include/rdma/ib.h | 89 +
include/rdma/ib_addr.h | 6 +-
include/rdma/ib_sa.h | 7 +
include/rdma/ib_verbs.h | 35 +-
include/rdma/rdma_cm.h | 13 +
include/uapi/rdma/rdma_user_cm.h | 73 +-
85 files changed, 18436 insertions(+), 803 deletions(-)
create mode 100644 drivers/infiniband/hw/mlx5/Kconfig
create mode 100644 drivers/infiniband/hw/mlx5/Makefile
create mode 100644 drivers/infiniband/hw/mlx5/ah.c
create mode 100644 drivers/infiniband/hw/mlx5/cq.c
create mode 100644 drivers/infiniband/hw/mlx5/doorbell.c
create mode 100644 drivers/infiniband/hw/mlx5/mad.c
create mode 100644 drivers/infiniband/hw/mlx5/main.c
create mode 100644 drivers/infiniband/hw/mlx5/mem.c
create mode 100644 drivers/infiniband/hw/mlx5/mlx5_ib.h
create mode 100644 drivers/infiniband/hw/mlx5/mr.c
create mode 100644 drivers/infiniband/hw/mlx5/qp.c
create mode 100644 drivers/infiniband/hw/mlx5/srq.c
create mode 100644 drivers/infiniband/hw/mlx5/user.h
create mode 100644 drivers/infiniband/hw/qib/qib_debugfs.c
create mode 100644 drivers/infiniband/hw/qib/qib_debugfs.h
create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/Kconfig
create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/Makefile
create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/alloc.c
create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/cmd.c
create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/cq.c
create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/debugfs.c
create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/eq.c
create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/fw.c
create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/health.c
create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/mad.c
create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/main.c
create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/mcg.c
create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core.h
create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/mr.c
create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/pagealloc.c
create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/pd.c
create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/port.c
create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/qp.c
create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/srq.c
create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/uar.c
create mode 100644 include/linux/mlx5/cmd.h
create mode 100644 include/linux/mlx5/cq.h
create mode 100644 include/linux/mlx5/device.h
create mode 100644 include/linux/mlx5/doorbell.h
create mode 100644 include/linux/mlx5/driver.h
create mode 100644 include/linux/mlx5/qp.h
create mode 100644 include/linux/mlx5/srq.h
create mode 100644 include/rdma/ib.h
^ permalink raw reply [flat|nested] 223+ messages in thread
* Re: [GIT PULL] please pull infiniband.git
2013-07-10 14:38 ` Roland Dreier
@ 2013-07-10 15:34 ` Bart Van Assche
0 siblings, 0 replies; 223+ messages in thread
From: Bart Van Assche @ 2013-07-10 15:34 UTC (permalink / raw)
To: Roland Dreier; +Cc: Sebastian Riemer, Linus Torvalds, linux-kernel, linux-rdma
On 07/10/13 16:38, Roland Dreier wrote:
> On Wed, Jul 10, 2013 at 7:35 AM, Sebastian Riemer
> <sebastian.riemer@profitbricks.com> wrote:
>>
>> I've checked the commits on that tag and the following commit is not
>> what we've agreed on:
>
> Sorry about that. The discussion was long and complex and I probably
> made a mistake in aplying the patches. Please me send a patch to fix
> the driver to what it should be, and I will merge it ASAP.
I will send such a patch in reply to this e-mail but without CC-ing the
LKML. Sebastian, if you could review that patch, that would be appreciated.
Bart.
^ permalink raw reply [flat|nested] 223+ messages in thread
* Re: [GIT PULL] please pull infiniband.git
2013-07-10 14:35 ` Sebastian Riemer
@ 2013-07-10 14:38 ` Roland Dreier
2013-07-10 15:34 ` Bart Van Assche
0 siblings, 1 reply; 223+ messages in thread
From: Roland Dreier @ 2013-07-10 14:38 UTC (permalink / raw)
To: Sebastian Riemer; +Cc: Linus Torvalds, linux-kernel, linux-rdma
On Wed, Jul 10, 2013 at 7:35 AM, Sebastian Riemer
<sebastian.riemer@profitbricks.com> wrote:
>
> I've checked the commits on that tag and the following commit is not
> what we've agreed on:
Sorry about that. The discussion was long and complex and I probably
made a mistake in aplying the patches. Please me send a patch to fix
the driver to what it should be, and I will merge it ASAP.
- Roland
^ permalink raw reply [flat|nested] 223+ messages in thread
* Re: [GIT PULL] please pull infiniband.git
2013-07-09 17:36 Roland Dreier
@ 2013-07-10 14:35 ` Sebastian Riemer
2013-07-10 14:38 ` Roland Dreier
0 siblings, 1 reply; 223+ messages in thread
From: Sebastian Riemer @ 2013-07-10 14:35 UTC (permalink / raw)
To: Roland Dreier; +Cc: Linus Torvalds, linux-kernel, linux-rdma
Hi Roland,
I've checked the commits on that tag and the following commit is not
what we've agreed on:
commit 086f44f58855ae18bab19fb794cce6c6d2c6143b
Author: Bart Van Assche <bvanassche@acm.org>
IB/srp: Avoid skipping srp_reset_host() after a transport error
Together with the following commit this results in the wrong return code
if transport_offline (SUCCESS instead of FAST_IO_FAIL):
commit 99e1c1398f44a056b16e78122133988c82b66d97
Author: Bart Van Assche <bvanassche@acm.org>
IB/srp: Fail I/O fast if target offline
Resulting code:
1755 if (srp_send_tsk_mgmt(target, req->index, scmnd->device->lun,
1756 SRP_TSK_ABORT_TASK) == 0 ||
1757 target->transport_offline)
1758 ret = SUCCESS;
1759 else if (target->transport_offline)
1760 ret = FAST_IO_FAIL;
1761 else
1762 ret = FAILED;
This doesn't make sense. The check for transport_offline has to be
removed for the SUCCESS case! I've already told that on linux-rdma.
Cheers,
Sebastian
On 09.07.2013 19:36, Roland Dreier wrote:
> Hi Linus,
>
> Please pull from
>
> git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git tags/rdma-for-linus
>
> ----------------------------------------------------------------
>
> Main batch of InfiniBand/RDMA changes for 3.11 merge window:
>
> - AF_IB (native IB addressing) for CMA from Sean Hefty
> - New mlx5 driver for Mellanox Connect-IB adapters
> - SRP fixes from Bart Van Assche
> - qib HW driver updates
> - Resurrection of ocrdma HW driver development
> - uverbs conversion to create fds with O_CLOEXEC set
> - Other small changes and fixes
>
> ----------------------------------------------------------------
> Bart Van Assche (5):
> IB/srp: Avoid skipping srp_reset_host() after a transport error
> IB/srp: Skip host settle delay
> IB/srp: Fail I/O fast if target offline
> IB/srp: Maintain a single connection per I_T nexus
> IB/srp: Make HCA completion vector configurable
>
> Dan Carpenter (1):
> RDMA/cxgb3: Timeout condition is never true
>
> Dotan Barak (1):
> IB/srp: Fix remove_one crash due to resource exhaustion
>
> Eli Cohen (1):
> mlx5: Add driver for Mellanox Connect-IB adapters
>
> Gottumukkala, Naresh (1):
> RDMA/ocrdma: Remove use_cnt for queues
>
> Jack Morgenstein (1):
> IB/core: Add reserved values to enums for low-level driver use
>
> Mike Marciniszyn (6):
> IB/qib: Add DCA support
> IB/qib: Remove atomic_inc_not_zero() from QP RCU
> IB/qib: Optimize CQ callbacks
> IB/qib: Convert opcode counters to per-context
> IB/qib: Add per-context stats interface
> IB/qib: Add qp_stats debug file
>
> Mitko Haralanov (1):
> IB/qib: New transmitter tunning settings for Dell 1.1 backplane
>
> Naresh Gottumukkala (5):
> RDMA/ocrdma: Use MCC_CREATE_EXT_V1 for MCC create
> RDMA/ocrdma: Replace ocrdma_err with pr_err
> RDMA/ocrdma: Set bad_wr in error case
> RDMA/ocrdma: Change macros to inline funtions
> RDMA/ocrdma: Reorg structures to avoid padding
>
> Ramkrishna Vepa (2):
> IB/qib: Add optional NUMA affinity
> IB/qib: Add dual-rail NUMA awareness for PSM processes
>
> Roland Dreier (5):
> mlx5: Fix parameter type of health_handler_t
> IB/mlx5: Make profile[] static in main.c
> mlx5_core: Fixes for sparse warnings
> IB/uverbs: Use get_unused_fd_flags(O_CLOEXEC) instead of get_unused_fd()
> Merge branches 'af_ib', 'cxgb4', 'misc', 'mlx5', 'ocrdma', 'qib' and 'srp' into for-next
>
> Sean Hefty (28):
> RDMA/cma: Define native IB address
> RDMA/cma: Allow enabling reuseaddr in any state
> RDMA/cma: Include AF_IB in loopback and any address checks
> IB/addr: Add AF_IB support to ip_addr_size
> RDMA/cma: Update port reservation to support AF_IB
> RDMA/cma: Allow user to specify AF_IB when binding
> RDMA/cma: Do not modify sa_family when setting loopback address
> RDMA/cma: Add helper functions to return id address information
> RDMA/cma: Restrict AF_IB loopback to binding to IB devices only
> RDMA/cma: Verify that source and dest sa_family are the same
> RDMA/cma: Add support for AF_IB to rdma_resolve_addr()
> RDMA/cma: Add support for AF_IB to rdma_resolve_route()
> RDMA/cma: Add support for AF_IB to cma_get_service_id()
> RDMA/cma: Remove unused SDP related code
> RDMA/cma: Merge cma_get/save_net_info
> RDMA/cma: Expose private data when using AF_IB
> RDMA/cma: Set qkey for AF_IB
> RDMA/cma: Only listen on IB devices when using AF_IB
> RDMA/ucma: Support querying for AF_IB addresses
> IB/sa: Export function to pack a path record into wire format
> RDMA/ucma: Support querying when IB paths are not reversible
> RDMA/cma: Export cma_get_service_id()
> RDMA/ucma: Add ability to query GID addresses
> RDMA/ucma: Name changes to indicate only IP addresses supported
> RDMA/ucma: Allow user space to bind to AF_IB
> RDMA/ucma: Allow user space to pass AF_IB into resolve
> RDMA/ucma: Allow user space to specify AF_IB when joining multicast
> RDMA/cma: Export AF_IB statistics
>
> Vinit Agnihotri (1):
> IB/qib: Update minor version number
>
> Vu Pham (1):
> IB/srp: Bump driver version and release date
>
> Wei Yongjun (3):
> IB/ehca: Fix error return code in ehca_create_slab_caches()
> RDMA/ocrdma: Fix error return code in ocrdma_set_create_qp_rq_cmd()
> IB/core: Fix error return code in add_port()
>
> Documentation/ABI/stable/sysfs-driver-ib_srp | 7 +
> MAINTAINERS | 22 ++
> drivers/infiniband/Kconfig | 1 +
> drivers/infiniband/Makefile | 1 +
> drivers/infiniband/core/addr.c | 20 +-
> drivers/infiniband/core/cma.c | 906 ++++++++++++++++++++++++++++++++++-------------------------
> drivers/infiniband/core/sa_query.c | 6 +
> drivers/infiniband/core/sysfs.c | 8 +-
> drivers/infiniband/core/ucma.c | 321 ++++++++++++++++++---
> drivers/infiniband/core/uverbs_cmd.c | 4 +-
> drivers/infiniband/hw/cxgb3/iwch_qp.c | 3 +-
> drivers/infiniband/hw/ehca/ehca_main.c | 1 +
> drivers/infiniband/hw/mlx5/Kconfig | 10 +
> drivers/infiniband/hw/mlx5/Makefile | 3 +
> drivers/infiniband/hw/mlx5/ah.c | 92 ++++++
> drivers/infiniband/hw/mlx5/cq.c | 843 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
> drivers/infiniband/hw/mlx5/doorbell.c | 100 +++++++
> drivers/infiniband/hw/mlx5/mad.c | 139 +++++++++
> drivers/infiniband/hw/mlx5/main.c | 1504 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> drivers/infiniband/hw/mlx5/mem.c | 162 +++++++++++
> drivers/infiniband/hw/mlx5/mlx5_ib.h | 545 +++++++++++++++++++++++++++++++++++
> drivers/infiniband/hw/mlx5/mr.c | 1007 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> drivers/infiniband/hw/mlx5/qp.c | 2524 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> drivers/infiniband/hw/mlx5/srq.c | 473 +++++++++++++++++++++++++++++++
> drivers/infiniband/hw/mlx5/user.h | 121 ++++++++
> drivers/infiniband/hw/ocrdma/ocrdma.h | 63 +++--
> drivers/infiniband/hw/ocrdma/ocrdma_hw.c | 86 +++---
> drivers/infiniband/hw/ocrdma/ocrdma_main.c | 6 +-
> drivers/infiniband/hw/ocrdma/ocrdma_sli.h | 35 +--
> drivers/infiniband/hw/ocrdma/ocrdma_verbs.c | 135 ++++-----
> drivers/infiniband/hw/qib/Kconfig | 8 +
> drivers/infiniband/hw/qib/Makefile | 1 +
> drivers/infiniband/hw/qib/qib.h | 61 ++--
> drivers/infiniband/hw/qib/qib_common.h | 2 +-
> drivers/infiniband/hw/qib/qib_cq.c | 67 ++++-
> drivers/infiniband/hw/qib/qib_debugfs.c | 283 +++++++++++++++++++
> drivers/infiniband/hw/qib/qib_debugfs.h | 45 +++
> drivers/infiniband/hw/qib/qib_driver.c | 1 -
> drivers/infiniband/hw/qib/qib_file_ops.c | 176 ++++++++----
> drivers/infiniband/hw/qib/qib_iba6120.c | 10 +
> drivers/infiniband/hw/qib/qib_iba7220.c | 10 +
> drivers/infiniband/hw/qib/qib_iba7322.c | 393 +++++++++++++++++++++++---
> drivers/infiniband/hw/qib/qib_init.c | 139 +++++++--
> drivers/infiniband/hw/qib/qib_qp.c | 123 +++++++-
> drivers/infiniband/hw/qib/qib_verbs.c | 8 +-
> drivers/infiniband/hw/qib/qib_verbs.h | 33 ++-
> drivers/infiniband/ulp/srp/ib_srp.c | 90 +++++-
> drivers/infiniband/ulp/srp/ib_srp.h | 1 +
> drivers/net/ethernet/mellanox/Kconfig | 1 +
> drivers/net/ethernet/mellanox/Makefile | 1 +
> drivers/net/ethernet/mellanox/mlx5/core/Kconfig | 18 ++
> drivers/net/ethernet/mellanox/mlx5/core/Makefile | 5 +
> drivers/net/ethernet/mellanox/mlx5/core/alloc.c | 238 ++++++++++++++++
> drivers/net/ethernet/mellanox/mlx5/core/cmd.c | 1515 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> drivers/net/ethernet/mellanox/mlx5/core/cq.c | 224 +++++++++++++++
> drivers/net/ethernet/mellanox/mlx5/core/debugfs.c | 587 ++++++++++++++++++++++++++++++++++++++
> drivers/net/ethernet/mellanox/mlx5/core/eq.c | 521 ++++++++++++++++++++++++++++++++++
> drivers/net/ethernet/mellanox/mlx5/core/fw.c | 185 ++++++++++++
> drivers/net/ethernet/mellanox/mlx5/core/health.c | 227 +++++++++++++++
> drivers/net/ethernet/mellanox/mlx5/core/mad.c | 78 ++++++
> drivers/net/ethernet/mellanox/mlx5/core/main.c | 475 +++++++++++++++++++++++++++++++
> drivers/net/ethernet/mellanox/mlx5/core/mcg.c | 106 +++++++
> drivers/net/ethernet/mellanox/mlx5/core/mlx5_core.h | 73 +++++
> drivers/net/ethernet/mellanox/mlx5/core/mr.c | 136 +++++++++
> drivers/net/ethernet/mellanox/mlx5/core/pagealloc.c | 435 ++++++++++++++++++++++++++++
> drivers/net/ethernet/mellanox/mlx5/core/pd.c | 101 +++++++
> drivers/net/ethernet/mellanox/mlx5/core/port.c | 104 +++++++
> drivers/net/ethernet/mellanox/mlx5/core/qp.c | 301 ++++++++++++++++++++
> drivers/net/ethernet/mellanox/mlx5/core/srq.c | 223 +++++++++++++++
> drivers/net/ethernet/mellanox/mlx5/core/uar.c | 223 +++++++++++++++
> include/linux/mlx5/cmd.h | 51 ++++
> include/linux/mlx5/cq.h | 165 +++++++++++
> include/linux/mlx5/device.h | 893 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> include/linux/mlx5/doorbell.h | 79 ++++++
> include/linux/mlx5/driver.h | 769 ++++++++++++++++++++++++++++++++++++++++++++++++++
> include/linux/mlx5/qp.h | 467 ++++++++++++++++++++++++++++++
> include/linux/mlx5/srq.h | 41 +++
> include/linux/socket.h | 2 +
> include/rdma/ib.h | 89 ++++++
> include/rdma/ib_addr.h | 6 +-
> include/rdma/ib_sa.h | 7 +
> include/rdma/ib_verbs.h | 35 ++-
> include/rdma/rdma_cm.h | 13 +
> include/uapi/rdma/rdma_user_cm.h | 73 ++++-
> 84 files changed, 18267 insertions(+), 799 deletions(-)
> create mode 100644 drivers/infiniband/hw/mlx5/Kconfig
> create mode 100644 drivers/infiniband/hw/mlx5/Makefile
> create mode 100644 drivers/infiniband/hw/mlx5/ah.c
> create mode 100644 drivers/infiniband/hw/mlx5/cq.c
> create mode 100644 drivers/infiniband/hw/mlx5/doorbell.c
> create mode 100644 drivers/infiniband/hw/mlx5/mad.c
> create mode 100644 drivers/infiniband/hw/mlx5/main.c
> create mode 100644 drivers/infiniband/hw/mlx5/mem.c
> create mode 100644 drivers/infiniband/hw/mlx5/mlx5_ib.h
> create mode 100644 drivers/infiniband/hw/mlx5/mr.c
> create mode 100644 drivers/infiniband/hw/mlx5/qp.c
> create mode 100644 drivers/infiniband/hw/mlx5/srq.c
> create mode 100644 drivers/infiniband/hw/mlx5/user.h
> create mode 100644 drivers/infiniband/hw/qib/qib_debugfs.c
> create mode 100644 drivers/infiniband/hw/qib/qib_debugfs.h
> create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/Kconfig
> create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/Makefile
> create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/alloc.c
> create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/cmd.c
> create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/cq.c
> create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/debugfs.c
> create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/eq.c
> create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/fw.c
> create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/health.c
> create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/mad.c
> create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/main.c
> create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/mcg.c
> create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core.h
> create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/mr.c
> create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/pagealloc.c
> create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/pd.c
> create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/port.c
> create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/qp.c
> create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/srq.c
> create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/uar.c
> create mode 100644 include/linux/mlx5/cmd.h
> create mode 100644 include/linux/mlx5/cq.h
> create mode 100644 include/linux/mlx5/device.h
> create mode 100644 include/linux/mlx5/doorbell.h
> create mode 100644 include/linux/mlx5/driver.h
> create mode 100644 include/linux/mlx5/qp.h
> create mode 100644 include/linux/mlx5/srq.h
> create mode 100644 include/rdma/ib.h
> --
> To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
^ permalink raw reply [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
@ 2013-07-09 17:36 Roland Dreier
2013-07-10 14:35 ` Sebastian Riemer
0 siblings, 1 reply; 223+ messages in thread
From: Roland Dreier @ 2013-07-09 17:36 UTC (permalink / raw)
To: Linus Torvalds; +Cc: linux-kernel, linux-rdma
Hi Linus,
Please pull from
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git tags/rdma-for-linus
----------------------------------------------------------------
Main batch of InfiniBand/RDMA changes for 3.11 merge window:
- AF_IB (native IB addressing) for CMA from Sean Hefty
- New mlx5 driver for Mellanox Connect-IB adapters
- SRP fixes from Bart Van Assche
- qib HW driver updates
- Resurrection of ocrdma HW driver development
- uverbs conversion to create fds with O_CLOEXEC set
- Other small changes and fixes
----------------------------------------------------------------
Bart Van Assche (5):
IB/srp: Avoid skipping srp_reset_host() after a transport error
IB/srp: Skip host settle delay
IB/srp: Fail I/O fast if target offline
IB/srp: Maintain a single connection per I_T nexus
IB/srp: Make HCA completion vector configurable
Dan Carpenter (1):
RDMA/cxgb3: Timeout condition is never true
Dotan Barak (1):
IB/srp: Fix remove_one crash due to resource exhaustion
Eli Cohen (1):
mlx5: Add driver for Mellanox Connect-IB adapters
Gottumukkala, Naresh (1):
RDMA/ocrdma: Remove use_cnt for queues
Jack Morgenstein (1):
IB/core: Add reserved values to enums for low-level driver use
Mike Marciniszyn (6):
IB/qib: Add DCA support
IB/qib: Remove atomic_inc_not_zero() from QP RCU
IB/qib: Optimize CQ callbacks
IB/qib: Convert opcode counters to per-context
IB/qib: Add per-context stats interface
IB/qib: Add qp_stats debug file
Mitko Haralanov (1):
IB/qib: New transmitter tunning settings for Dell 1.1 backplane
Naresh Gottumukkala (5):
RDMA/ocrdma: Use MCC_CREATE_EXT_V1 for MCC create
RDMA/ocrdma: Replace ocrdma_err with pr_err
RDMA/ocrdma: Set bad_wr in error case
RDMA/ocrdma: Change macros to inline funtions
RDMA/ocrdma: Reorg structures to avoid padding
Ramkrishna Vepa (2):
IB/qib: Add optional NUMA affinity
IB/qib: Add dual-rail NUMA awareness for PSM processes
Roland Dreier (5):
mlx5: Fix parameter type of health_handler_t
IB/mlx5: Make profile[] static in main.c
mlx5_core: Fixes for sparse warnings
IB/uverbs: Use get_unused_fd_flags(O_CLOEXEC) instead of get_unused_fd()
Merge branches 'af_ib', 'cxgb4', 'misc', 'mlx5', 'ocrdma', 'qib' and 'srp' into for-next
Sean Hefty (28):
RDMA/cma: Define native IB address
RDMA/cma: Allow enabling reuseaddr in any state
RDMA/cma: Include AF_IB in loopback and any address checks
IB/addr: Add AF_IB support to ip_addr_size
RDMA/cma: Update port reservation to support AF_IB
RDMA/cma: Allow user to specify AF_IB when binding
RDMA/cma: Do not modify sa_family when setting loopback address
RDMA/cma: Add helper functions to return id address information
RDMA/cma: Restrict AF_IB loopback to binding to IB devices only
RDMA/cma: Verify that source and dest sa_family are the same
RDMA/cma: Add support for AF_IB to rdma_resolve_addr()
RDMA/cma: Add support for AF_IB to rdma_resolve_route()
RDMA/cma: Add support for AF_IB to cma_get_service_id()
RDMA/cma: Remove unused SDP related code
RDMA/cma: Merge cma_get/save_net_info
RDMA/cma: Expose private data when using AF_IB
RDMA/cma: Set qkey for AF_IB
RDMA/cma: Only listen on IB devices when using AF_IB
RDMA/ucma: Support querying for AF_IB addresses
IB/sa: Export function to pack a path record into wire format
RDMA/ucma: Support querying when IB paths are not reversible
RDMA/cma: Export cma_get_service_id()
RDMA/ucma: Add ability to query GID addresses
RDMA/ucma: Name changes to indicate only IP addresses supported
RDMA/ucma: Allow user space to bind to AF_IB
RDMA/ucma: Allow user space to pass AF_IB into resolve
RDMA/ucma: Allow user space to specify AF_IB when joining multicast
RDMA/cma: Export AF_IB statistics
Vinit Agnihotri (1):
IB/qib: Update minor version number
Vu Pham (1):
IB/srp: Bump driver version and release date
Wei Yongjun (3):
IB/ehca: Fix error return code in ehca_create_slab_caches()
RDMA/ocrdma: Fix error return code in ocrdma_set_create_qp_rq_cmd()
IB/core: Fix error return code in add_port()
Documentation/ABI/stable/sysfs-driver-ib_srp | 7 +
MAINTAINERS | 22 ++
drivers/infiniband/Kconfig | 1 +
drivers/infiniband/Makefile | 1 +
drivers/infiniband/core/addr.c | 20 +-
drivers/infiniband/core/cma.c | 906 ++++++++++++++++++++++++++++++++++-------------------------
drivers/infiniband/core/sa_query.c | 6 +
drivers/infiniband/core/sysfs.c | 8 +-
drivers/infiniband/core/ucma.c | 321 ++++++++++++++++++---
drivers/infiniband/core/uverbs_cmd.c | 4 +-
drivers/infiniband/hw/cxgb3/iwch_qp.c | 3 +-
drivers/infiniband/hw/ehca/ehca_main.c | 1 +
drivers/infiniband/hw/mlx5/Kconfig | 10 +
drivers/infiniband/hw/mlx5/Makefile | 3 +
drivers/infiniband/hw/mlx5/ah.c | 92 ++++++
drivers/infiniband/hw/mlx5/cq.c | 843 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
drivers/infiniband/hw/mlx5/doorbell.c | 100 +++++++
drivers/infiniband/hw/mlx5/mad.c | 139 +++++++++
drivers/infiniband/hw/mlx5/main.c | 1504 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
drivers/infiniband/hw/mlx5/mem.c | 162 +++++++++++
drivers/infiniband/hw/mlx5/mlx5_ib.h | 545 +++++++++++++++++++++++++++++++++++
drivers/infiniband/hw/mlx5/mr.c | 1007 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
drivers/infiniband/hw/mlx5/qp.c | 2524 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
drivers/infiniband/hw/mlx5/srq.c | 473 +++++++++++++++++++++++++++++++
drivers/infiniband/hw/mlx5/user.h | 121 ++++++++
drivers/infiniband/hw/ocrdma/ocrdma.h | 63 +++--
drivers/infiniband/hw/ocrdma/ocrdma_hw.c | 86 +++---
drivers/infiniband/hw/ocrdma/ocrdma_main.c | 6 +-
drivers/infiniband/hw/ocrdma/ocrdma_sli.h | 35 +--
drivers/infiniband/hw/ocrdma/ocrdma_verbs.c | 135 ++++-----
drivers/infiniband/hw/qib/Kconfig | 8 +
drivers/infiniband/hw/qib/Makefile | 1 +
drivers/infiniband/hw/qib/qib.h | 61 ++--
drivers/infiniband/hw/qib/qib_common.h | 2 +-
drivers/infiniband/hw/qib/qib_cq.c | 67 ++++-
drivers/infiniband/hw/qib/qib_debugfs.c | 283 +++++++++++++++++++
drivers/infiniband/hw/qib/qib_debugfs.h | 45 +++
drivers/infiniband/hw/qib/qib_driver.c | 1 -
drivers/infiniband/hw/qib/qib_file_ops.c | 176 ++++++++----
drivers/infiniband/hw/qib/qib_iba6120.c | 10 +
drivers/infiniband/hw/qib/qib_iba7220.c | 10 +
drivers/infiniband/hw/qib/qib_iba7322.c | 393 +++++++++++++++++++++++---
drivers/infiniband/hw/qib/qib_init.c | 139 +++++++--
drivers/infiniband/hw/qib/qib_qp.c | 123 +++++++-
drivers/infiniband/hw/qib/qib_verbs.c | 8 +-
drivers/infiniband/hw/qib/qib_verbs.h | 33 ++-
drivers/infiniband/ulp/srp/ib_srp.c | 90 +++++-
drivers/infiniband/ulp/srp/ib_srp.h | 1 +
drivers/net/ethernet/mellanox/Kconfig | 1 +
drivers/net/ethernet/mellanox/Makefile | 1 +
drivers/net/ethernet/mellanox/mlx5/core/Kconfig | 18 ++
drivers/net/ethernet/mellanox/mlx5/core/Makefile | 5 +
drivers/net/ethernet/mellanox/mlx5/core/alloc.c | 238 ++++++++++++++++
drivers/net/ethernet/mellanox/mlx5/core/cmd.c | 1515 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
drivers/net/ethernet/mellanox/mlx5/core/cq.c | 224 +++++++++++++++
drivers/net/ethernet/mellanox/mlx5/core/debugfs.c | 587 ++++++++++++++++++++++++++++++++++++++
drivers/net/ethernet/mellanox/mlx5/core/eq.c | 521 ++++++++++++++++++++++++++++++++++
drivers/net/ethernet/mellanox/mlx5/core/fw.c | 185 ++++++++++++
drivers/net/ethernet/mellanox/mlx5/core/health.c | 227 +++++++++++++++
drivers/net/ethernet/mellanox/mlx5/core/mad.c | 78 ++++++
drivers/net/ethernet/mellanox/mlx5/core/main.c | 475 +++++++++++++++++++++++++++++++
drivers/net/ethernet/mellanox/mlx5/core/mcg.c | 106 +++++++
drivers/net/ethernet/mellanox/mlx5/core/mlx5_core.h | 73 +++++
drivers/net/ethernet/mellanox/mlx5/core/mr.c | 136 +++++++++
drivers/net/ethernet/mellanox/mlx5/core/pagealloc.c | 435 ++++++++++++++++++++++++++++
drivers/net/ethernet/mellanox/mlx5/core/pd.c | 101 +++++++
drivers/net/ethernet/mellanox/mlx5/core/port.c | 104 +++++++
drivers/net/ethernet/mellanox/mlx5/core/qp.c | 301 ++++++++++++++++++++
drivers/net/ethernet/mellanox/mlx5/core/srq.c | 223 +++++++++++++++
drivers/net/ethernet/mellanox/mlx5/core/uar.c | 223 +++++++++++++++
include/linux/mlx5/cmd.h | 51 ++++
include/linux/mlx5/cq.h | 165 +++++++++++
include/linux/mlx5/device.h | 893 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
include/linux/mlx5/doorbell.h | 79 ++++++
include/linux/mlx5/driver.h | 769 ++++++++++++++++++++++++++++++++++++++++++++++++++
include/linux/mlx5/qp.h | 467 ++++++++++++++++++++++++++++++
include/linux/mlx5/srq.h | 41 +++
include/linux/socket.h | 2 +
include/rdma/ib.h | 89 ++++++
include/rdma/ib_addr.h | 6 +-
include/rdma/ib_sa.h | 7 +
include/rdma/ib_verbs.h | 35 ++-
include/rdma/rdma_cm.h | 13 +
include/uapi/rdma/rdma_user_cm.h | 73 ++++-
84 files changed, 18267 insertions(+), 799 deletions(-)
create mode 100644 drivers/infiniband/hw/mlx5/Kconfig
create mode 100644 drivers/infiniband/hw/mlx5/Makefile
create mode 100644 drivers/infiniband/hw/mlx5/ah.c
create mode 100644 drivers/infiniband/hw/mlx5/cq.c
create mode 100644 drivers/infiniband/hw/mlx5/doorbell.c
create mode 100644 drivers/infiniband/hw/mlx5/mad.c
create mode 100644 drivers/infiniband/hw/mlx5/main.c
create mode 100644 drivers/infiniband/hw/mlx5/mem.c
create mode 100644 drivers/infiniband/hw/mlx5/mlx5_ib.h
create mode 100644 drivers/infiniband/hw/mlx5/mr.c
create mode 100644 drivers/infiniband/hw/mlx5/qp.c
create mode 100644 drivers/infiniband/hw/mlx5/srq.c
create mode 100644 drivers/infiniband/hw/mlx5/user.h
create mode 100644 drivers/infiniband/hw/qib/qib_debugfs.c
create mode 100644 drivers/infiniband/hw/qib/qib_debugfs.h
create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/Kconfig
create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/Makefile
create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/alloc.c
create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/cmd.c
create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/cq.c
create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/debugfs.c
create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/eq.c
create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/fw.c
create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/health.c
create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/mad.c
create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/main.c
create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/mcg.c
create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core.h
create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/mr.c
create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/pagealloc.c
create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/pd.c
create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/port.c
create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/qp.c
create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/srq.c
create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/uar.c
create mode 100644 include/linux/mlx5/cmd.h
create mode 100644 include/linux/mlx5/cq.h
create mode 100644 include/linux/mlx5/device.h
create mode 100644 include/linux/mlx5/doorbell.h
create mode 100644 include/linux/mlx5/driver.h
create mode 100644 include/linux/mlx5/qp.h
create mode 100644 include/linux/mlx5/srq.h
create mode 100644 include/rdma/ib.h
^ permalink raw reply [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
@ 2013-06-07 22:28 Roland Dreier
0 siblings, 0 replies; 223+ messages in thread
From: Roland Dreier @ 2013-06-07 22:28 UTC (permalink / raw)
To: Linus Torvalds; +Cc: linux-rdma, linux-kernel
Hi Linus,
Please pull from
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git tags/rdma-for-linus
----------------------------------------------------------------
InfiniBand fixes for 3.10-rc:
- qib RCU/lockdep fix
- iser device removal fix, plus doc fixes
----------------------------------------------------------------
Mike Marciniszyn (1):
IB/qib: Fix lockdep splat in qib_alloc_lkey()
Or Gerlitz (2):
IB/iser: Add Mellanox copyright
MAINTAINERS: Add entry for iSCSI Extensions for RDMA (iSER) initiator
Roi Dayan (1):
IB/iser: Fix device removal flow
Roland Dreier (1):
Merge branches 'iser' and 'qib' into for-next
MAINTAINERS | 10 ++++++++++
drivers/infiniband/hw/qib/qib_keys.c | 2 +-
drivers/infiniband/ulp/iser/iscsi_iser.c | 1 +
drivers/infiniband/ulp/iser/iscsi_iser.h | 1 +
drivers/infiniband/ulp/iser/iser_initiator.c | 1 +
drivers/infiniband/ulp/iser/iser_memory.c | 1 +
drivers/infiniband/ulp/iser/iser_verbs.c | 16 +++++++++-------
7 files changed, 24 insertions(+), 8 deletions(-)
^ permalink raw reply [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
@ 2013-05-08 21:20 Roland Dreier
0 siblings, 0 replies; 223+ messages in thread
From: Roland Dreier @ 2013-05-08 21:20 UTC (permalink / raw)
To: Linus Torvalds; +Cc: linux-kernel, linux-rdma
Hi Linus,
Please pull from
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git tags/rdma-for-linus
----------------------------------------------------------------
InfiniBand/RDMA changes for the 3.10 merge window:
- XRC transport fixes
- Fix DHCP on IPoIB
- mlx4 preparations for flow steering
- iSER fixes
- miscellaneous other fixes
Sorry for being so late on this -- I moved houses and the system with
all my private keys was offline for a week or so.
----------------------------------------------------------------
Akinobu Mita (1):
RDMA: Rename random32() to prandom_u32()
Cong Ding (1):
RDMA/cxgb3: Fix uninitialized variable
Dotan Barak (1):
IB/mlx4: Disable VLAN stripping for RAW PACKET QPs
Doug Ledford (1):
IPoIB: Fix ipoib_hard_header() return value
Eli Cohen (1):
IB/mlx4: Set link type for RAW PACKET QPs in the QP context
Grant Grundler (1):
SRPT: Fix odd use of WARN_ON()
Hadar Hen Zion (5):
mlx4_core: Move DMFS HW structs to common header file
mlx4: Match DMFS promiscuous field names to firmware spec
mlx4_core: Change a few DMFS fields names to match firmare spec
mlx4_core: Directly expose fields of DMFS HW rule control segment
mlx4_core: Expose a few helpers to fill DMFS HW strucutures
Jack Morgenstein (1):
mlx4_core: Reduce warning message for SRQ_LIMIT event to debug level
Mike Marciniszyn (2):
IB/ipath: Correct ipath_verbs_register_sysfs() error handling
IB/qib: Correct qib_verbs_register_sysfs() error handling
Or Gerlitz (2):
IB/iser: Return error to upper layers on EAGAIN registration failures
IB/iser: Add support for iser CM REQ additional info
Roi Dayan (2):
IB/iser: Add module version
IB/iser: Move informational messages from error to info level
Roland Dreier (1):
Merge branches 'cxgb4', 'ipoib', 'iser', 'misc', 'mlx4', 'qib' and 'srp' into for-next
Shlomo Pongratz (3):
IB/core: Verify that QP handler is valid before dispatching events
mlx4_core: Implement SRQ object lookup from srqn
IB/mlx4: Fetch XRC SRQ in the CQ polling code
Steve Wise (1):
RDMA/iwcm: Don't touch cmid after dropping reference
Thadeu Lima de Souza Cascardo (1):
RDMA/cxgb4: Fix SQ allocation when on-chip SQ is disabled
drivers/infiniband/core/iwcm.c | 2 +
drivers/infiniband/core/verbs.c | 3 +-
drivers/infiniband/hw/cxgb3/cxio_resource.c | 4 +-
drivers/infiniband/hw/cxgb3/iwch_provider.c | 2 +-
drivers/infiniband/hw/cxgb4/id_table.c | 4 +-
drivers/infiniband/hw/cxgb4/qp.c | 25 ++---
drivers/infiniband/hw/ipath/ipath_verbs.c | 19 ++--
drivers/infiniband/hw/mlx4/cq.c | 21 +++++
drivers/infiniband/hw/mlx4/mad.c | 2 +-
drivers/infiniband/hw/mlx4/qp.c | 6 ++
drivers/infiniband/hw/qib/qib_sysfs.c | 6 +-
drivers/infiniband/hw/qib/qib_verbs.c | 3 +-
drivers/infiniband/ulp/ipoib/ipoib_cm.c | 2 +-
drivers/infiniband/ulp/ipoib/ipoib_main.c | 2 +-
drivers/infiniband/ulp/iser/iscsi_iser.c | 24 ++---
drivers/infiniband/ulp/iser/iscsi_iser.h | 24 ++++-
drivers/infiniband/ulp/iser/iser_memory.c | 3 +-
drivers/infiniband/ulp/iser/iser_verbs.c | 36 ++++---
drivers/infiniband/ulp/srpt/ib_srpt.c | 2 +-
drivers/net/ethernet/mellanox/mlx4/en_ethtool.c | 2 +-
drivers/net/ethernet/mellanox/mlx4/en_netdev.c | 16 ++--
drivers/net/ethernet/mellanox/mlx4/eq.c | 4 +-
drivers/net/ethernet/mellanox/mlx4/mcg.c | 120 +++++++++++++++---------
drivers/net/ethernet/mellanox/mlx4/mlx4.h | 79 ----------------
drivers/net/ethernet/mellanox/mlx4/srq.c | 15 +++
include/linux/mlx4/device.h | 104 ++++++++++++++++++--
include/linux/mlx4/srq.h | 2 +
27 files changed, 328 insertions(+), 204 deletions(-)
^ permalink raw reply [flat|nested] 223+ messages in thread
* Re: [GIT PULL] please pull infiniband.git
2013-03-25 16:42 Roland Dreier
@ 2013-04-05 15:56 ` David Woodhouse
0 siblings, 0 replies; 223+ messages in thread
From: David Woodhouse @ 2013-04-05 15:56 UTC (permalink / raw)
To: Roland Dreier, Vinit Agnihotri, Dean Luick, Mike Marciniszyn
Cc: Linus Torvalds, linux-kernel, linux-rdma
[-- Attachment #1: Type: text/plain, Size: 1351 bytes --]
On Mon, 2013-03-25 at 09:42 -0700, Roland Dreier wrote:
> Hi Linus,
>
> Please pull from
>
> git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git tags/rdma-for-linus
> Vinit Agnihotri (1):
> IB/qib: change QLogic to Intel
> firmware/Makefile | 2 +-
> firmware/{qlogic => intel}/sd7220.fw.ihex | 0
This is an ABI change, and it's wrong. Moving the firmware from one
location to another breaks drivers which look for it in one place when
it is actually in the other.
Besides, the firmware/ directory of the kernel is deprecated and very
few people actually use it. I don't think *any* distributions do
anything other than ignore its contents, or have done for some years.
Any changes need to be made in the separate linux-firmware repository.
I don't recall seeing this change being submitted there, and if it *was*
it would have been rejected on the basis that it breaks old kernels.
Unless we *duplicate* the file in both qlogic/ and intel/ directories,
but that's just silly.
We already have a *bunch* of other firmwares in the qlogic/ directory
which nobody seems interested in moving. There is no point in this
marketing-driven revisionism; please leave this one where it is too.
Please revert this part of commit e2eed58b4 before 3.9. Thanks.
--
dwmw2
[-- Attachment #2: smime.p7s --]
[-- Type: application/x-pkcs7-signature, Size: 6171 bytes --]
^ permalink raw reply [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
@ 2013-03-25 16:42 Roland Dreier
2013-04-05 15:56 ` David Woodhouse
0 siblings, 1 reply; 223+ messages in thread
From: Roland Dreier @ 2013-03-25 16:42 UTC (permalink / raw)
To: Linus Torvalds; +Cc: linux-kernel, linux-rdma
Hi Linus,
Please pull from
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git tags/rdma-for-linus
----------------------------------------------------------------
Small batch of InfiniBand/RDMA fixes for 3.9:
- Fix for TX lockup in IPoIB
- QLogic -> Intel update for qib driver
- Small static checker fix for qib
- Fix error path return value in cxgb4
----------------------------------------------------------------
Dan Carpenter (1):
IB/ipath: Silence a static checker warning
Mike Marciniszyn (1):
IPoIB: Fix send lockup due to missed TX completion
Roland Dreier (1):
Merge branches 'cxgb4', 'ipoib' and 'qib' into for-next
Vinit Agnihotri (1):
IB/qib: change QLogic to Intel
Wei Yongjun (1):
RDMA/cxgb4: Fix error return code in create_qp()
drivers/infiniband/hw/cxgb4/qp.c | 4 +++-
drivers/infiniband/hw/ipath/ipath_verbs.c | 2 +-
drivers/infiniband/hw/qib/Kconfig | 6 +++---
drivers/infiniband/hw/qib/qib_driver.c | 5 +++--
drivers/infiniband/hw/qib/qib_iba6120.c | 3 ++-
drivers/infiniband/hw/qib/qib_init.c | 8 ++++----
drivers/infiniband/hw/qib/qib_sd7220.c | 4 ++--
drivers/infiniband/hw/qib/qib_verbs.c | 4 ++--
drivers/infiniband/ulp/ipoib/ipoib_cm.c | 8 ++++++--
firmware/Makefile | 2 +-
firmware/{qlogic => intel}/sd7220.fw.ihex | 0
11 files changed, 27 insertions(+), 19 deletions(-)
rename firmware/{qlogic => intel}/sd7220.fw.ihex (100%)
^ permalink raw reply [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
@ 2013-02-26 17:41 Roland Dreier
0 siblings, 0 replies; 223+ messages in thread
From: Roland Dreier @ 2013-02-26 17:41 UTC (permalink / raw)
To: Linus Torvalds; +Cc: linux-rdma, linux-kernel
Hi Linus,
Please pull from
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git tags/rdma-for-linus
----------------------------------------------------------------
Main batch of InfiniBand/RDMA changes for 3.9:
- SRP error handling fixes from Bart Van Assche
- Implementation of memory windows for mlx4 from Shani Michaeli
- Lots of cxgb4 HW driver fixes from Vipul Pandya
- Make iSER work for virtual functions, other fixes from Or Gerlitz
- Fix for bug in qib HW driver from Mike Marciniszyn
- IPoIB fixes from me, Itai Garbi, Shlomo Pongratz, Yan Burman
- Various cleanups and warning fixes from Julia Lawall, Paul Bolle, Wei Yongjun
----------------------------------------------------------------
Bart Van Assche (4):
IB/srp: Track connection state properly
IB/srp: Avoid sending a task management function needlessly
IB/srp: Avoid endless SCSI error handling loop
IB/srp: Fail I/O requests if the transport is offline
Dan Carpenter (1):
IB/mlx4: Fix bug unwinding on error in mlx4_ib_init_sriov()
Itai Garbi (1):
IPoIB: Don't attempt to release resources on error flow
Julia Lawall (1):
IB/mlx4: Adjust duplicate test
Mike Marciniszyn (1):
IB/qib: Fix QP locate/remove race
Or Gerlitz (3):
IB/iser: Use proper define for the commands per LUN value advertised to SCSI ML
IB/iser: Avoid error prints on EAGAIN registration failures
IB/iser: Enable iser when FMRs are not supported
Paul Bolle (2):
RDMA/cxgb4: "cookie" can stay in host endianness
IB/mlx4: Fix compiler warning about uninitialized 'vlan' variable
Roland Dreier (3):
IB/mlx4: Convert is_xxx variables in build_mlx_header() to bool
IPoIB: Free ipoib neigh on path record failure so path rec queries are retried
Merge branches 'core', 'cxgb4', 'ipoib', 'iser', 'misc', 'mlx4', 'qib' and 'srp' into for-next
Shani Michaeli (10):
IB/mlx4_ib: Remove local invalidate segment unused fields
mlx4_core: Rename MPT-related functions to have mpt_ prefix
mlx4_core: Propagate MR deregistration failures to caller
IB/core: Add "type 2" memory windows support
IB/uverbs: Implement memory windows support in uverbs
mlx4_core: Disable memory windows for virtual functions
mlx4_core: Enable memory windows in {INIT, QUERY}_HCA
mlx4: Implement memory windows allocation and deallocation
IB/mlx4: Support memory window binding
IB/mlx4: Advertise MW support
Shlomo Pongratz (1):
IPoIB: Fix ipoib_neigh hashing to use the correct daddr octets
Stefan Hasko (1):
RDMA/cxgb4: Fix cast warning
Syam Sidhardhan (1):
IB/mlx4: Remove redundant NULL check before kfree
Vipul Pandya (11):
RDMA/cxgb4: Abort connections that receive unexpected streaming mode data
RDMA/cxgb4: Abort connections when moving to ERROR state
RDMA/cxgb4: Display streaming mode error only if detected in RTS
RDMA/cxgb4: Keep QP referenced until TID released
RDMA/cxgb4: Always log async errors
RDMA/cxgb4: Only log rx_data warnings if cpl status is non-zero
RDMA/cxgb4: Fix endpoint timeout race condition
RDMA/cxgb4: Don't reconnect on abort for mpa_rev 1
RDMA/cxgb4: Don't wakeup threads for MPAv2
RDMA/cxgb4: Insert hwtid in pass_accept_req instead in pass_establish
RDMA/cxgb4: Address sparse warnings
Wei Yongjun (1):
RDMA/amso1100: Use module_pci_driver() to simplify the code
Yan Burman (1):
IPoIB: Add version and firmware info to ethtool reporting
drivers/infiniband/core/uverbs.h | 2 +
drivers/infiniband/core/uverbs_cmd.c | 121 ++++++++++++++
drivers/infiniband/core/uverbs_main.c | 13 +-
drivers/infiniband/core/verbs.c | 5 +-
drivers/infiniband/hw/amso1100/c2.c | 13 +-
drivers/infiniband/hw/cxgb3/iwch_provider.c | 5 +-
drivers/infiniband/hw/cxgb3/iwch_qp.c | 15 +-
drivers/infiniband/hw/cxgb4/cm.c | 170 +++++++++++--------
drivers/infiniband/hw/cxgb4/device.c | 5 +-
drivers/infiniband/hw/cxgb4/ev.c | 8 +-
drivers/infiniband/hw/cxgb4/iw_cxgb4.h | 4 +-
drivers/infiniband/hw/cxgb4/mem.c | 5 +-
drivers/infiniband/hw/cxgb4/qp.c | 1 +
drivers/infiniband/hw/ehca/ehca_iverbs.h | 2 +-
drivers/infiniband/hw/ehca/ehca_mrmw.c | 5 +-
drivers/infiniband/hw/mlx4/mad.c | 7 +-
drivers/infiniband/hw/mlx4/main.c | 22 ++-
drivers/infiniband/hw/mlx4/mlx4_ib.h | 18 +-
drivers/infiniband/hw/mlx4/mr.c | 87 +++++++++-
drivers/infiniband/hw/mlx4/qp.c | 49 ++++--
drivers/infiniband/hw/mlx4/sysfs.c | 2 +-
drivers/infiniband/hw/nes/nes_verbs.c | 19 ++-
drivers/infiniband/hw/qib/qib_qp.c | 5 +-
drivers/infiniband/ulp/ipoib/ipoib.h | 4 +
drivers/infiniband/ulp/ipoib/ipoib_ethtool.c | 19 ++-
drivers/infiniband/ulp/ipoib/ipoib_main.c | 14 +-
drivers/infiniband/ulp/iser/iscsi_iser.h | 2 +-
drivers/infiniband/ulp/iser/iser_memory.c | 9 +-
drivers/infiniband/ulp/iser/iser_verbs.c | 8 +-
drivers/infiniband/ulp/srp/ib_srp.c | 42 +++--
drivers/infiniband/ulp/srp/ib_srp.h | 1 +
drivers/net/ethernet/mellanox/mlx4/en_main.c | 4 +-
drivers/net/ethernet/mellanox/mlx4/fw.c | 14 +-
drivers/net/ethernet/mellanox/mlx4/fw.h | 1 +
drivers/net/ethernet/mellanox/mlx4/main.c | 4 +
drivers/net/ethernet/mellanox/mlx4/mlx4.h | 34 +++-
drivers/net/ethernet/mellanox/mlx4/mr.c | 186 ++++++++++++++++-----
.../net/ethernet/mellanox/mlx4/resource_tracker.c | 63 ++++++-
include/linux/mlx4/device.h | 22 ++-
include/linux/mlx4/qp.h | 19 ++-
include/rdma/ib_verbs.h | 73 +++++++-
include/uapi/rdma/ib_user_verbs.h | 16 ++
net/sunrpc/xprtrdma/verbs.c | 20 +--
43 files changed, 885 insertions(+), 253 deletions(-)
^ permalink raw reply [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
@ 2013-02-07 1:15 Roland Dreier
0 siblings, 0 replies; 223+ messages in thread
From: Roland Dreier @ 2013-02-07 1:15 UTC (permalink / raw)
To: Linus Torvalds; +Cc: linux-rdma, linux-kernel
Hi Linus,
Please pull from
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git tags/rdma-for-linus
----------------------------------------------------------------
IB regression fixes for 3.8:
- Fix mlx4 VFs not working on old guests because of 64B CQE changes
- Fix ill-considered sparse fix for qib
- Fix IPoIB crash due to skb double destruct introduced in 3.8-rc1
----------------------------------------------------------------
Mike Marciniszyn (1):
IB/qib: Fix for broken sparse warning fix
Or Gerlitz (1):
mlx4_core: Fix advertisement of wrong PF context behaviour
Roland Dreier (1):
Merge branches 'ipoib', 'mlx4' and 'qib' into for-next
Shlomo Pongratz (1):
IPoIB: Fix crash due to skb double destruct
drivers/infiniband/hw/qib/qib_qp.c | 11 +++--------
drivers/infiniband/ulp/ipoib/ipoib_cm.c | 6 +++---
drivers/infiniband/ulp/ipoib/ipoib_ib.c | 6 +++---
drivers/net/ethernet/mellanox/mlx4/main.c | 2 +-
4 files changed, 10 insertions(+), 15 deletions(-)
^ permalink raw reply [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
@ 2012-12-21 21:42 Roland Dreier
0 siblings, 0 replies; 223+ messages in thread
From: Roland Dreier @ 2012-12-21 21:42 UTC (permalink / raw)
To: Linus Torvalds; +Cc: linux-kernel, linux-rdma
Hi Linus,
Please pull from
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git tags/rdma-for-linus
----------------------------------------------------------------
Second batch of InfiniBand/RDMA changes for 3.8:
- cxgb4 changes to fix lookup engine hash collisions
- mlx4 changes to make flow steering usable
- fix to IPoIB to avoid pinning dst reference for too long
----------------------------------------------------------------
Hadar Hen Zion (2):
mlx4_core: Add QPN enforcement for flow steering rules set by VFs
mlx4_core: Fix error flow in the flow steering wrapper
Jack Morgenstein (2):
mlx4_core: Adjustments to Flow Steering activation logic for SR-IOV
mlx4_core: Allow choosing flow steering mode
Roland Dreier (2):
IPoIB: Call skb_dst_drop() once skb is enqueued for sending
Merge branches 'cxgb4', 'ipoib' and 'mlx4' into for-next
Vipul Pandya (5):
cxgb4: Add T4 filter support
cxgb4: Add LE hash collision bug fix path in LLD driver
RDMA/cxgb4: Fix LE hash collision bug for active open connection
RDMA/cxgb4: Fix LE hash collision bug for passive open connection
RDMA/cxgb4: Fix bug for active and passive LE hash collision path
drivers/infiniband/hw/cxgb4/cm.c | 791 ++++++++++++++++++---
drivers/infiniband/hw/cxgb4/device.c | 210 +++++-
drivers/infiniband/hw/cxgb4/iw_cxgb4.h | 33 +
drivers/infiniband/ulp/ipoib/ipoib_cm.c | 3 +
drivers/infiniband/ulp/ipoib/ipoib_ib.c | 3 +-
drivers/net/ethernet/chelsio/cxgb4/cxgb4.h | 136 ++++
drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c | 459 +++++++++++-
drivers/net/ethernet/chelsio/cxgb4/cxgb4_uld.h | 23 +-
drivers/net/ethernet/chelsio/cxgb4/l2t.c | 32 +
drivers/net/ethernet/chelsio/cxgb4/l2t.h | 3 +
drivers/net/ethernet/chelsio/cxgb4/t4_hw.c | 22 +-
drivers/net/ethernet/chelsio/cxgb4/t4_msg.h | 66 ++
drivers/net/ethernet/chelsio/cxgb4/t4_regs.h | 37 +
drivers/net/ethernet/chelsio/cxgb4/t4fw_api.h | 418 +++++++++++
drivers/net/ethernet/mellanox/mlx4/fw.c | 15 +-
drivers/net/ethernet/mellanox/mlx4/fw.h | 1 +
drivers/net/ethernet/mellanox/mlx4/main.c | 115 ++-
drivers/net/ethernet/mellanox/mlx4/mcg.c | 7 +-
drivers/net/ethernet/mellanox/mlx4/mlx4.h | 6 +-
.../net/ethernet/mellanox/mlx4/resource_tracker.c | 28 +-
drivers/scsi/csiostor/t4fw_api_stor.h | 39 -
include/linux/mlx4/device.h | 1 +
22 files changed, 2234 insertions(+), 214 deletions(-)
^ permalink raw reply [flat|nested] 223+ messages in thread
* Re: [GIT PULL] please pull infiniband.git
2012-12-14 15:36 ` Linus Torvalds
@ 2012-12-14 23:57 ` Roland Dreier
0 siblings, 0 replies; 223+ messages in thread
From: Roland Dreier @ 2012-12-14 23:57 UTC (permalink / raw)
To: Linus Torvalds; +Cc: LKML, linux-rdma
On Fri, Dec 14, 2012 at 7:36 AM, Linus Torvalds
<torvalds@linux-foundation.org> wrote:
>> Any problem with this tree, or did it just slip through the cracks?
>
> It was merged seven hours before your email. Forgot to check?
No, just dumb-assery in how I fetched in one place and checked in
another. Sorry.
^ permalink raw reply [flat|nested] 223+ messages in thread
* Re: [GIT PULL] please pull infiniband.git
2012-12-14 9:56 ` Roland Dreier
@ 2012-12-14 15:36 ` Linus Torvalds
2012-12-14 23:57 ` Roland Dreier
0 siblings, 1 reply; 223+ messages in thread
From: Linus Torvalds @ 2012-12-14 15:36 UTC (permalink / raw)
To: Roland Dreier; +Cc: LKML, linux-rdma
On Fri, Dec 14, 2012 at 1:56 AM, Roland Dreier <roland@kernel.org> wrote:
>
> Any problem with this tree, or did it just slip through the cracks?
It was merged seven hours before your email. Forgot to check?
Linus
^ permalink raw reply [flat|nested] 223+ messages in thread
* Re: [GIT PULL] please pull infiniband.git
2012-12-11 5:59 Roland Dreier
@ 2012-12-14 9:56 ` Roland Dreier
2012-12-14 15:36 ` Linus Torvalds
0 siblings, 1 reply; 223+ messages in thread
From: Roland Dreier @ 2012-12-14 9:56 UTC (permalink / raw)
To: Linus Torvalds; +Cc: LKML, linux-rdma
On Mon, Dec 10, 2012 at 9:59 PM, Roland Dreier <roland@kernel.org> wrote:
> Hi Linus,
>
> Please pull from
>
> git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git tags/rdma-for-linus
Hi Linus,
Any problem with this tree, or did it just slip through the cracks?
Thanks,
Roland
> ----------------------------------------------------------------
>
> First batch of InfiniBand/RDMA changes for the 3.8 merge window:
> - A good chunk of Bart Van Assche's SRP fixes
> - UAPI disintegration from David Howells
> - mlx4 support for "64-byte CQE" hardware feature from Or Gerlitz
> - Other miscellaneous fixes
>
> ----------------------------------------------------------------
> Alan Cox (2):
> IB/ipath: Remove unreachable code
> RDMA/amsol1100: Fix missing break
>
> Bart Van Assche (14):
> IB/srp: Increase block layer timeout
> IB/srp: Eliminate state SRP_TARGET_CONNECTING
> IB/srp: Keep processing commands during host removal
> IB/srp: Simplify SCSI error handling
> IB/srp: Introduce srp_handle_qp_err()
> IB/srp: Process all error completions
> IB/srp: Suppress superfluous error messages
> IB/srp: Introduce the helper function srp_remove_target()
> IB/srp: Eliminate state SRP_TARGET_DEAD
> IB/srp: Document sysfs attributes
> srp_transport: Fix attribute registration
> srp_transport: Simplify attribute initialization code
> srp_transport: Document sysfs attributes
> IB/srp: Allow SRP disconnect through sysfs
>
> David Howells (1):
> UAPI: (Scripted) Disintegrate include/rdma
>
> Ishai Rabinovitz (1):
> IB/srp: destroy and recreate QP and CQs when reconnecting
>
> Jack Morgenstein (2):
> IB/mlx4: Fix spinlock order to avoid lockdep warnings
> mlx4_core: Fix potential deadlock in mlx4_eq_int()
>
> Julia Lawall (3):
> RDMA/nes: Use WARN()
> RDMA/cxgb4: use WARN
> RDMA/cxgb3: use WARN
>
> Or Gerlitz (1):
> mlx4: 64-byte CQE/EQE support
>
> Roland Dreier (4):
> Merge branches 'cxgb4', 'misc', 'mlx4', 'nes' and 'uapi' into for-next
> Merge branches 'cma' and 'mlx4' into for-next
> Merge branch 'srp' into for-next
> Merge branch 'nes' into for-next
>
> Tatyana Nikolova (7):
> RDMA/nes: Fix incorrect address of IP header
> RDMA/nes: Fix for unlinking skbs from empty list
> RDMA/nes: Fix for sending fpdus in order to hardware
> RDMA/nes: Fix for incorrect multicast address in the perfect filter table
> RDMA/nes: Fix for BUG_ON due to adding already-pending timer
> RDMA/nes: Fix for terminate timer crash
> RDMA/nes: Fix for crash when registering zero length MR for CQ
>
> Vu Pham (1):
> IB/srp: send disconnect request without waiting for CM timewait exit
>
> shefty (1):
> RDMA/cm: Change return value from find_gid_port()
>
> Documentation/ABI/stable/sysfs-driver-ib_srp | 156 ++++++++++++
> Documentation/ABI/stable/sysfs-transport-srp | 19 ++
> drivers/infiniband/core/cma.c | 9 +-
> drivers/infiniband/hw/amso1100/c2_ae.c | 1 +
> drivers/infiniband/hw/cxgb3/iwch_cm.c | 6 +-
> drivers/infiniband/hw/cxgb4/cm.c | 6 +-
> drivers/infiniband/hw/ipath/ipath_init_chip.c | 10 -
> drivers/infiniband/hw/mlx4/cm.c | 4 +-
> drivers/infiniband/hw/mlx4/cq.c | 34 ++-
> drivers/infiniband/hw/mlx4/main.c | 27 +-
> drivers/infiniband/hw/mlx4/mlx4_ib.h | 1 +
> drivers/infiniband/hw/mlx4/user.h | 12 +-
> drivers/infiniband/hw/nes/nes.h | 1 +
> drivers/infiniband/hw/nes/nes_cm.c | 32 +--
> drivers/infiniband/hw/nes/nes_hw.c | 9 +-
> drivers/infiniband/hw/nes/nes_mgt.c | 42 ++--
> drivers/infiniband/hw/nes/nes_nic.c | 13 +-
> drivers/infiniband/hw/nes/nes_verbs.c | 9 +-
> drivers/infiniband/ulp/srp/ib_srp.c | 314 ++++++++++++++----------
> drivers/infiniband/ulp/srp/ib_srp.h | 11 +-
> drivers/net/ethernet/mellanox/mlx4/cmd.c | 11 +-
> drivers/net/ethernet/mellanox/mlx4/en_cq.c | 2 +-
> drivers/net/ethernet/mellanox/mlx4/en_netdev.c | 1 +
> drivers/net/ethernet/mellanox/mlx4/en_rx.c | 5 +-
> drivers/net/ethernet/mellanox/mlx4/en_tx.c | 5 +-
> drivers/net/ethernet/mellanox/mlx4/eq.c | 36 ++-
> drivers/net/ethernet/mellanox/mlx4/fw.c | 30 ++-
> drivers/net/ethernet/mellanox/mlx4/fw.h | 1 +
> drivers/net/ethernet/mellanox/mlx4/main.c | 38 ++-
> drivers/net/ethernet/mellanox/mlx4/mlx4_en.h | 1 +
> drivers/scsi/scsi_transport_srp.c | 51 ++--
> include/linux/mlx4/device.h | 21 ++
> include/rdma/Kbuild | 6 -
> include/rdma/rdma_netlink.h | 36 +--
> include/scsi/scsi_transport_srp.h | 8 +
> include/uapi/rdma/Kbuild | 6 +
> include/{ => uapi}/rdma/ib_user_cm.h | 0
> include/{ => uapi}/rdma/ib_user_mad.h | 0
> include/{ => uapi}/rdma/ib_user_sa.h | 0
> include/{ => uapi}/rdma/ib_user_verbs.h | 0
> include/uapi/rdma/rdma_netlink.h | 37 +++
> include/{ => uapi}/rdma/rdma_user_cm.h | 0
> 42 files changed, 689 insertions(+), 322 deletions(-)
> create mode 100644 Documentation/ABI/stable/sysfs-driver-ib_srp
> create mode 100644 Documentation/ABI/stable/sysfs-transport-srp
> rename include/{ => uapi}/rdma/ib_user_cm.h (100%)
> rename include/{ => uapi}/rdma/ib_user_mad.h (100%)
> rename include/{ => uapi}/rdma/ib_user_sa.h (100%)
> rename include/{ => uapi}/rdma/ib_user_verbs.h (100%)
> create mode 100644 include/uapi/rdma/rdma_netlink.h
> rename include/{ => uapi}/rdma/rdma_user_cm.h (100%)
^ permalink raw reply [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
@ 2012-12-11 5:59 Roland Dreier
2012-12-14 9:56 ` Roland Dreier
0 siblings, 1 reply; 223+ messages in thread
From: Roland Dreier @ 2012-12-11 5:59 UTC (permalink / raw)
To: Linus Torvalds; +Cc: linux-kernel, linux-rdma
Hi Linus,
Please pull from
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git tags/rdma-for-linus
----------------------------------------------------------------
First batch of InfiniBand/RDMA changes for the 3.8 merge window:
- A good chunk of Bart Van Assche's SRP fixes
- UAPI disintegration from David Howells
- mlx4 support for "64-byte CQE" hardware feature from Or Gerlitz
- Other miscellaneous fixes
----------------------------------------------------------------
Alan Cox (2):
IB/ipath: Remove unreachable code
RDMA/amsol1100: Fix missing break
Bart Van Assche (14):
IB/srp: Increase block layer timeout
IB/srp: Eliminate state SRP_TARGET_CONNECTING
IB/srp: Keep processing commands during host removal
IB/srp: Simplify SCSI error handling
IB/srp: Introduce srp_handle_qp_err()
IB/srp: Process all error completions
IB/srp: Suppress superfluous error messages
IB/srp: Introduce the helper function srp_remove_target()
IB/srp: Eliminate state SRP_TARGET_DEAD
IB/srp: Document sysfs attributes
srp_transport: Fix attribute registration
srp_transport: Simplify attribute initialization code
srp_transport: Document sysfs attributes
IB/srp: Allow SRP disconnect through sysfs
David Howells (1):
UAPI: (Scripted) Disintegrate include/rdma
Ishai Rabinovitz (1):
IB/srp: destroy and recreate QP and CQs when reconnecting
Jack Morgenstein (2):
IB/mlx4: Fix spinlock order to avoid lockdep warnings
mlx4_core: Fix potential deadlock in mlx4_eq_int()
Julia Lawall (3):
RDMA/nes: Use WARN()
RDMA/cxgb4: use WARN
RDMA/cxgb3: use WARN
Or Gerlitz (1):
mlx4: 64-byte CQE/EQE support
Roland Dreier (4):
Merge branches 'cxgb4', 'misc', 'mlx4', 'nes' and 'uapi' into for-next
Merge branches 'cma' and 'mlx4' into for-next
Merge branch 'srp' into for-next
Merge branch 'nes' into for-next
Tatyana Nikolova (7):
RDMA/nes: Fix incorrect address of IP header
RDMA/nes: Fix for unlinking skbs from empty list
RDMA/nes: Fix for sending fpdus in order to hardware
RDMA/nes: Fix for incorrect multicast address in the perfect filter table
RDMA/nes: Fix for BUG_ON due to adding already-pending timer
RDMA/nes: Fix for terminate timer crash
RDMA/nes: Fix for crash when registering zero length MR for CQ
Vu Pham (1):
IB/srp: send disconnect request without waiting for CM timewait exit
shefty (1):
RDMA/cm: Change return value from find_gid_port()
Documentation/ABI/stable/sysfs-driver-ib_srp | 156 ++++++++++++
Documentation/ABI/stable/sysfs-transport-srp | 19 ++
drivers/infiniband/core/cma.c | 9 +-
drivers/infiniband/hw/amso1100/c2_ae.c | 1 +
drivers/infiniband/hw/cxgb3/iwch_cm.c | 6 +-
drivers/infiniband/hw/cxgb4/cm.c | 6 +-
drivers/infiniband/hw/ipath/ipath_init_chip.c | 10 -
drivers/infiniband/hw/mlx4/cm.c | 4 +-
drivers/infiniband/hw/mlx4/cq.c | 34 ++-
drivers/infiniband/hw/mlx4/main.c | 27 +-
drivers/infiniband/hw/mlx4/mlx4_ib.h | 1 +
drivers/infiniband/hw/mlx4/user.h | 12 +-
drivers/infiniband/hw/nes/nes.h | 1 +
drivers/infiniband/hw/nes/nes_cm.c | 32 +--
drivers/infiniband/hw/nes/nes_hw.c | 9 +-
drivers/infiniband/hw/nes/nes_mgt.c | 42 ++--
drivers/infiniband/hw/nes/nes_nic.c | 13 +-
drivers/infiniband/hw/nes/nes_verbs.c | 9 +-
drivers/infiniband/ulp/srp/ib_srp.c | 314 ++++++++++++++----------
drivers/infiniband/ulp/srp/ib_srp.h | 11 +-
drivers/net/ethernet/mellanox/mlx4/cmd.c | 11 +-
drivers/net/ethernet/mellanox/mlx4/en_cq.c | 2 +-
drivers/net/ethernet/mellanox/mlx4/en_netdev.c | 1 +
drivers/net/ethernet/mellanox/mlx4/en_rx.c | 5 +-
drivers/net/ethernet/mellanox/mlx4/en_tx.c | 5 +-
drivers/net/ethernet/mellanox/mlx4/eq.c | 36 ++-
drivers/net/ethernet/mellanox/mlx4/fw.c | 30 ++-
drivers/net/ethernet/mellanox/mlx4/fw.h | 1 +
drivers/net/ethernet/mellanox/mlx4/main.c | 38 ++-
drivers/net/ethernet/mellanox/mlx4/mlx4_en.h | 1 +
drivers/scsi/scsi_transport_srp.c | 51 ++--
include/linux/mlx4/device.h | 21 ++
include/rdma/Kbuild | 6 -
include/rdma/rdma_netlink.h | 36 +--
include/scsi/scsi_transport_srp.h | 8 +
include/uapi/rdma/Kbuild | 6 +
include/{ => uapi}/rdma/ib_user_cm.h | 0
include/{ => uapi}/rdma/ib_user_mad.h | 0
include/{ => uapi}/rdma/ib_user_sa.h | 0
include/{ => uapi}/rdma/ib_user_verbs.h | 0
include/uapi/rdma/rdma_netlink.h | 37 +++
include/{ => uapi}/rdma/rdma_user_cm.h | 0
42 files changed, 689 insertions(+), 322 deletions(-)
create mode 100644 Documentation/ABI/stable/sysfs-driver-ib_srp
create mode 100644 Documentation/ABI/stable/sysfs-transport-srp
rename include/{ => uapi}/rdma/ib_user_cm.h (100%)
rename include/{ => uapi}/rdma/ib_user_mad.h (100%)
rename include/{ => uapi}/rdma/ib_user_sa.h (100%)
rename include/{ => uapi}/rdma/ib_user_verbs.h (100%)
create mode 100644 include/uapi/rdma/rdma_netlink.h
rename include/{ => uapi}/rdma/rdma_user_cm.h (100%)
^ permalink raw reply [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
@ 2012-10-26 19:55 Roland Dreier
0 siblings, 0 replies; 223+ messages in thread
From: Roland Dreier @ 2012-10-26 19:55 UTC (permalink / raw)
To: Linus Torvalds; +Cc: linux-rdma, linux-kernel
Hi Linus,
Please pull from
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git tags/rdma-for-linus
----------------------------------------------------------------
Small batch of fixes for 3.7:
- Fix crash in error path in cxgb4
- Fix build error on 32 bits in mlx4
- Fix SR-IOV bugs in mlx4
----------------------------------------------------------------
Dotan Barak (1):
mlx4_core: Perform correct resource cleanup if mlx4_QUERY_ADAPTER() fails
Doug Ledford (1):
IB/mlx4: Fix build error on platforms where UL is not 64 bits
Eli Cohen (1):
IB/mlx4: Synchronize cleanup of MCGs in MCG paravirtualization
Jack Morgenstein (1):
IB/mlx4: Fix QP1 P_Key processing in the Primary Physical Function (PPF)
Or Gerlitz (1):
mlx4_core: Remove annoying debug messages from SR-IOV flow
Roland Dreier (1):
Merge branches 'cxgb4' and 'mlx4' into for-next
Thadeu Lima de Souza Cascardo (1):
RDMA/cxgb4: Don't free chunk that we have failed to allocate
drivers/infiniband/hw/cxgb4/mem.c | 2 +-
drivers/infiniband/hw/mlx4/alias_GUID.c | 2 +-
drivers/infiniband/hw/mlx4/mad.c | 85 +++++++++-----------
drivers/infiniband/hw/mlx4/mcg.c | 18 +++--
drivers/net/ethernet/mellanox/mlx4/eq.c | 6 --
drivers/net/ethernet/mellanox/mlx4/main.c | 5 +-
.../net/ethernet/mellanox/mlx4/resource_tracker.c | 6 --
7 files changed, 56 insertions(+), 68 deletions(-)
^ permalink raw reply [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
@ 2012-10-05 2:20 Roland Dreier
0 siblings, 0 replies; 223+ messages in thread
From: Roland Dreier @ 2012-10-05 2:20 UTC (permalink / raw)
To: Linus Torvalds; +Cc: linux-rdma, linux-kernel
Hi Linus,
Please pull from
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git tags/rdma-for-linus
----------------------------------------------------------------
Second batch of changes for the 3.7 merge window:
- Late-breaking fix for IPoIB on mlx4 SR-IOV VFs.
- Fix for IPoIB build breakage with CONFIG_INFINIBAND_IPOIB_CM=n
(new netlink config changes are to blame).
- Make sure retry count values are in range in RDMA CM.
- A few nes hardware driver fixes and cleanups.
- Have iSER initiator use >1 interrupt vectors if available.
----------------------------------------------------------------
Alex Tabachnik (1):
IB/iser: Add more RX CQs to scale out processing of SCSI responses
Jack Morgenstein (1):
mlx4_core: Adjust flow steering attach wrapper so that IB works on SR-IOV VFs
Roland Dreier (2):
IPoIB: Fix build with CONFIG_INFINIBAND_IPOIB_CM=n
Merge branches 'cma', 'ipoib', 'iser', 'mlx4' and 'nes' into for-next
Sean Hefty (1):
RDMA/cma: Check that retry count values are in range
Tatyana Nikolova (4):
RDMA/nes: Add missing break to switch.
RDMA/nes: Remove unnecessary if-else statement
RDMA/nes: Remove unused module parameter "send_first"
RDMA/nes: Bump the version number of nes driver
drivers/infiniband/core/cma.c | 6 +-
drivers/infiniband/hw/nes/nes.c | 5 -
drivers/infiniband/hw/nes/nes.h | 3 +-
drivers/infiniband/hw/nes/nes_verbs.c | 16 +--
drivers/infiniband/ulp/ipoib/ipoib.h | 4 +-
drivers/infiniband/ulp/ipoib/ipoib_cm.c | 31 -----
drivers/infiniband/ulp/ipoib/ipoib_main.c | 31 +++++
drivers/infiniband/ulp/iser/iscsi_iser.h | 17 ++-
drivers/infiniband/ulp/iser/iser_verbs.c | 130 ++++++++++++++------
.../net/ethernet/mellanox/mlx4/resource_tracker.c | 2 +
10 files changed, 146 insertions(+), 99 deletions(-)
^ permalink raw reply [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
@ 2012-10-02 16:08 Roland Dreier
0 siblings, 0 replies; 223+ messages in thread
From: Roland Dreier @ 2012-10-02 16:08 UTC (permalink / raw)
To: Linus Torvalds; +Cc: linux-kernel, linux-rdma
Hi Linus,
Please pull from
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git tags/rdma-for-linus
----------------------------------------------------------------
First batch of InfiniBand/RDMA changes for the 3.7 merge window:
- mlx4 IB support for SR-IOV
- A couple of SRP initiator fixes
- Batch of nes hardware driver fixes
- Fix for long-standing use-after-free crash in IPoIB
- Other miscellaneous fixes
----------------------------------------------------------------
Amir Vadai (1):
IB/mlx4: Add CM paravirtualization
Bart Van Assche (2):
IB/srp: Fix use-after-free in srp_reset_req()
IB/srp: Avoid having aborted requests hang
Dean Luick (1):
IB/qib: Add a qib driver version
Dotan Barak (4):
IB/core: Remove unused variables in ucm/ucma
RDMA/cma: Use consistent component mask for IPoIB port space multicast joins
IB/mlx4: Fill in sq_sig_type in query QP
mlx4_core: Fix wrong offset in parsing query device caps response
Emil Goode (1):
RDMA/cxgb4: Fix error handling in create_qp()
Jack Morgenstein (20):
IB/core: Reserve bits in enum ib_qp_create_flags for low-level driver use
IB/core: Handle table with full and partial membership for the same P_Key
IB/core: Add ib_find_exact_cached_pkey()
IB/mlx4: SR-IOV IB context objects and proxy/tunnel SQP support
mlx4_core: Add proxy and tunnel QPs to the reserved QP area
IB/mlx4: Initialize SR-IOV IB support for slaves in master context
mlx4: Implement QP paravirtualization and maintain phys_pkey_cache for smp_snoop
IB/mlx4: SR-IOV multiplex and demultiplex MADs
mlx4: MAD_IFC paravirtualization
mlx4_core: Add IB port-state machine and port mgmt event propagation
mlx4: Add alias_guid mechanism
IB/mlx4: Propagate P_Key and guid change port management events to slaves
IB/mlx4: Add iov directory in sysfs under the ib device
net/mlx4_core: Adjustments to SET_PORT for IB SR-IOV
mlx4_core: INIT/CLOSE port logic for IB ports in SR-IOV mode
IB/mlx4: Miscellaneous adjustments for SR-IOV IB support
mlx4: Activate SR-IOV mode for IB
mlx4: Paravirtualize Node Guids for slaves
mlx4: Modify proxy/tunnel QP mechanism so that guests do no calculations
IB/mlx4: Create paravirt contexts for VFs when master IB driver initializes
Mike Marciniszyn (1):
IB/qib: Fix local access validation for user MRs
Or Gerlitz (1):
mlx4_core: Remove annoying debug message in the resource tracker
Oren Duer (1):
IB/mlx4: Add multicast group (MCG) paravirtualization for SR-IOV
Patrick McHardy (1):
IPoIB: Fix use-after-free of multicast object
Roland Dreier (7):
mlx4_core: Trivial readability fix: "0X30" -> "0x30"
mlx4_core: Trivial cleanups to driver log messages
mlx4_core: Fix crash on uninitialized priv->cmd.slave_sem
mlx4_core: Stash PCI ID driver_data in mlx4_priv structure
mlx4_core: Clean up enabling of SENSE_PORT for older (ConnectX-1/-2) HCAs
mlx4_core: Disable SENSE_PORT for multifunction devices
Merge branches 'cma', 'cxgb4', 'ipoib', 'mlx4', 'mlx4-sriov', 'nes', 'qib' and 'srp' into for-linus
Tatyana Nikolova (6):
RDMA/nes: Fix incorrect resolving of the loopback MAC address
RDMA/nes: Fix for incorrect MSS when TSO is on
RDMA/nes: Cosmetic changes
RDMA/nes: Fix for crash when TX checksum offload is off
RDMA/nes: Print hardware resource type
RDMA/nes: Fix compilation error when nes_debug is enabled
drivers/infiniband/core/cache.c | 43 +-
drivers/infiniband/core/cma.c | 5 +-
drivers/infiniband/core/device.c | 16 +-
drivers/infiniband/core/ucm.c | 1 -
drivers/infiniband/core/ucma.c | 1 -
drivers/infiniband/hw/cxgb4/qp.c | 62 +-
drivers/infiniband/hw/mlx4/Makefile | 2 +-
drivers/infiniband/hw/mlx4/alias_GUID.c | 688 +++++++++
drivers/infiniband/hw/mlx4/cm.c | 437 ++++++
drivers/infiniband/hw/mlx4/cq.c | 31 +-
drivers/infiniband/hw/mlx4/mad.c | 1573 +++++++++++++++++++-
drivers/infiniband/hw/mlx4/main.c | 273 +++-
drivers/infiniband/hw/mlx4/mcg.c | 1254 ++++++++++++++++
drivers/infiniband/hw/mlx4/mlx4_ib.h | 341 ++++-
drivers/infiniband/hw/mlx4/qp.c | 660 +++++++-
drivers/infiniband/hw/mlx4/sysfs.c | 794 ++++++++++
drivers/infiniband/hw/nes/nes.h | 15 +-
drivers/infiniband/hw/nes/nes_cm.c | 34 +-
drivers/infiniband/hw/nes/nes_hw.c | 4 +-
drivers/infiniband/hw/nes/nes_nic.c | 40 +-
drivers/infiniband/hw/nes/nes_utils.c | 2 +-
drivers/infiniband/hw/nes/nes_verbs.c | 14 +-
drivers/infiniband/hw/qib/qib_common.h | 14 +-
drivers/infiniband/hw/qib/qib_driver.c | 3 +-
drivers/infiniband/hw/qib/qib_keys.c | 5 +-
drivers/infiniband/hw/qib/qib_verbs.c | 2 +-
drivers/infiniband/ulp/ipoib/ipoib_main.c | 2 +-
drivers/infiniband/ulp/ipoib/ipoib_multicast.c | 19 +-
drivers/infiniband/ulp/srp/ib_srp.c | 3 +-
drivers/net/ethernet/mellanox/mlx4/cmd.c | 242 ++-
drivers/net/ethernet/mellanox/mlx4/eq.c | 245 ++-
drivers/net/ethernet/mellanox/mlx4/fw.c | 246 ++-
drivers/net/ethernet/mellanox/mlx4/fw.h | 11 +-
drivers/net/ethernet/mellanox/mlx4/main.c | 171 ++-
drivers/net/ethernet/mellanox/mlx4/mlx4.h | 59 +-
drivers/net/ethernet/mellanox/mlx4/port.c | 10 +
drivers/net/ethernet/mellanox/mlx4/qp.c | 100 +-
.../net/ethernet/mellanox/mlx4/resource_tracker.c | 222 ++-
include/linux/mlx4/device.h | 69 +-
include/linux/mlx4/driver.h | 2 +
include/linux/mlx4/qp.h | 3 +-
include/rdma/ib_cache.h | 16 +
include/rdma/ib_verbs.h | 3 +
43 files changed, 7289 insertions(+), 448 deletions(-)
create mode 100644 drivers/infiniband/hw/mlx4/alias_GUID.c
create mode 100644 drivers/infiniband/hw/mlx4/cm.c
create mode 100644 drivers/infiniband/hw/mlx4/mcg.c
create mode 100644 drivers/infiniband/hw/mlx4/sysfs.c
^ permalink raw reply [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
@ 2012-09-17 15:57 Roland Dreier
0 siblings, 0 replies; 223+ messages in thread
From: Roland Dreier @ 2012-09-17 15:57 UTC (permalink / raw)
To: Linus Torvalds; +Cc: linux-kernel, linux-rdma
Hi Linus,
Please pull from
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git tags/rdma-for-linus
----------------------------------------------------------------
Last set of InfiniBand/RDMA fixes for 3.6:
- Couple more IPoIB fixes for regressions introduced by path database conversion
- Minor other fixes to low-level drivers (cxgb4, mlx4, qib, ocrdma)
----------------------------------------------------------------
Mike Marciniszyn (1):
IB/qib: Fix failure of compliance test C14-024#06_LocalPortNum
Parav Pandit (1):
RDMA/ocrdma: Fix CQE expansion of unsignaled WQE
Roland Dreier (1):
Merge branches 'cxgb4', 'ipoib', 'mlx4', 'ocrdma' and 'qib' into for-next
Shlomo Pongratz (2):
IPoIB: Fix memory leak in the neigh table deletion flow
IPoIB: Fix AB-BA deadlock when deleting neighbours
Wei Yongjun (1):
RDMA/cxgb4: Move dereference below NULL test
Yishai Hadas (1):
mlx4_core: Fix integer overflows so 8TBs of memory registration works
drivers/infiniband/hw/cxgb4/cm.c | 2 +-
drivers/infiniband/hw/ocrdma/ocrdma_verbs.c | 8 +-
drivers/infiniband/hw/qib/qib_mad.c | 3 +-
drivers/infiniband/ulp/ipoib/ipoib.h | 5 +-
drivers/infiniband/ulp/ipoib/ipoib_main.c | 93 +++++++++++-------------
drivers/infiniband/ulp/ipoib/ipoib_multicast.c | 2 -
drivers/net/ethernet/mellanox/mlx4/icm.c | 30 +++++---
drivers/net/ethernet/mellanox/mlx4/icm.h | 10 +--
8 files changed, 78 insertions(+), 75 deletions(-)
^ permalink raw reply [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
@ 2012-08-17 18:38 Roland Dreier
0 siblings, 0 replies; 223+ messages in thread
From: Roland Dreier @ 2012-08-17 18:38 UTC (permalink / raw)
To: Linus Torvalds; +Cc: linux-rdma, linux-kernel
Hi Linus,
Please pull from
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git tags/rdma-for-linus
----------------------------------------------------------------
Grab bag of InfiniBand/RDMA fixes:
- IPoIB fixes for regressions introduced by path database conversion
- mlx4 fixes for bugs with large memory systems and regressions from SR-IOV patches
- RDMA CM fix for passing bad event up to userspace
- Other minor fixes
----------------------------------------------------------------
Bart Van Assche (1):
IB/srp: Fix a race condition
Jack Morgenstein (1):
IB/mlx4: Fix possible deadlock on sm_lock spinlock
Julia Lawall (1):
IB/qib: Fix error return code in qib_init_7322_variables()
Kleber Sacilotto de Souza (1):
IB/mlx4: Check iboe netdev pointer before dereferencing it
Masanari Iida (1):
IB: Fix typos in infiniband drivers
Roland Dreier (3):
RDMA/ocrdma: Don't call vlan_dev_real_dev() for non-VLAN netdevs
mlx4_core: Clean up buddy bitmap allocation
Merge branches 'cma', 'ipoib', 'misc', 'mlx4', 'ocrdma', 'qib' and 'srp' into for-next
Shlomo Pongratz (2):
IB/ipoib: Add missing locking when CM object is deleted
IB/ipoib: Fix RCU pointer dereference of wrong object
Tatyana Nikolova (1):
RDMA/ucma.c: Fix for events with wrong context on iWARP
Yishai Hadas (2):
mlx4_core: Allow large mlx4_buddy bitmaps
mlx4_core: Fix integer overflow issues around MTT table
drivers/infiniband/core/ucma.c | 2 +-
drivers/infiniband/hw/amso1100/c2_rnic.c | 2 +-
drivers/infiniband/hw/cxgb3/iwch_cm.c | 2 +-
drivers/infiniband/hw/mlx4/mad.c | 16 +++--
drivers/infiniband/hw/mlx4/main.c | 5 +-
drivers/infiniband/hw/mlx4/qp.c | 6 +-
drivers/infiniband/hw/ocrdma/ocrdma_main.c | 16 ++---
drivers/infiniband/hw/qib/qib_iba7322.c | 4 +-
drivers/infiniband/hw/qib/qib_sd7220.c | 2 +-
drivers/infiniband/ulp/ipoib/ipoib_cm.c | 3 +
drivers/infiniband/ulp/ipoib/ipoib_main.c | 2 +-
drivers/infiniband/ulp/srp/ib_srp.c | 87 +++++++++++++++++++-------
drivers/infiniband/ulp/srpt/ib_srpt.c | 2 +-
drivers/net/ethernet/mellanox/mlx4/icm.c | 9 ++-
drivers/net/ethernet/mellanox/mlx4/icm.h | 2 +-
drivers/net/ethernet/mellanox/mlx4/mlx4.h | 4 +-
drivers/net/ethernet/mellanox/mlx4/mr.c | 27 +++++---
drivers/net/ethernet/mellanox/mlx4/profile.c | 4 +-
18 files changed, 130 insertions(+), 65 deletions(-)
^ permalink raw reply [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
@ 2012-07-23 16:17 Roland Dreier
0 siblings, 0 replies; 223+ messages in thread
From: Roland Dreier @ 2012-07-23 16:17 UTC (permalink / raw)
To: Linus Torvalds; +Cc: linux-rdma, linux-kernel
Hi Linus,
Please pull from
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git tags/rdma-for-3.6
----------------------------------------------------------------
InfiniBand/RDMA changes for the 3.6 merge window:
- Updates to the qib low-level driver
- First chunk of changes for SR-IOV support for mlx4 IB
- RDMA CM support for IPv6-only binding
- Other misc cleanups and fixes
----------------------------------------------------------------
Betty Dall (1):
IB/qib: Fix an incorrect log message
Dotan Barak (6):
IB/mthca: Warning about event for non-existent QPs should show event type
IB/mthca: Fill in sq_sig_type in query QP
IB/mlx4: Fill the masked_atomic_cap attribute in query device
mlx4_core: Remove double function declarations
IB/cm: Destroy idr as part of the module init error flow
net/mlx4_core: Free ICM table in case of error
Erez Shitrit (1):
IB/sa: Add GuidInfoRecord query support
Jack Morgenstein (8):
mlx4_core: Pass an invalid PCI id number to VFs
IB/mlx4: Add debug prints
IB/core: Move CM_xxx_ATTR_ID macros from cm_msgs.h to ib_cm.h
mlx4: Use port management change event instead of smp_snoop
net/mlx4_core: Initialize IB port capabilities for all slaves
mlx4_core: Implement mechanism for reserved Q_Keys
mlx4_core: Allow guests to have IB ports
mlx4: Put physical GID and P_Key table sizes in mlx4_phys_caps struct and paravirtualize them
Mike Marciniszyn (8):
IB/qib: Fix UC MR refs for immediate operations
IB/qib: Avoid returning EBUSY from MR deregister
IB/qib: RCU locking for MR validation
IB/qib: Fix sparse RCU warnings in qib_keys.c
IB/qib: Fix QP RCU sparse warnings
IB/qib: Reduce sdma_lock contention
IB/qib: Add congestion control agent implementation
IB/qib: checkpatch fixes
Roland Dreier (4):
RDMA/ocrdma: Fix assignment of max_srq_sge in device query
RDMA/cxgb4: Fix endianness of addition to mpa->private_data_size
IB: Use IS_ENABLED(CONFIG_IPV6)
Merge branches 'cma', 'cxgb4', 'misc', 'mlx4-sriov', 'mlx-cleanups', 'ocrdma' and 'qib' into for-linus
Sean Hefty (3):
RDMA/cma: Bind to a specific address family
RDMA/cma: Listen on specific address family
RDMA/cma: Allow user to restrict listens to bound address family
drivers/infiniband/core/addr.c | 4 +-
drivers/infiniband/core/cm.c | 16 +-
drivers/infiniband/core/cm_msgs.h | 12 -
drivers/infiniband/core/cma.c | 77 ++++--
drivers/infiniband/core/sa_query.c | 133 +++++++++++
drivers/infiniband/core/ucma.c | 7 +
drivers/infiniband/hw/cxgb4/cm.c | 12 +-
drivers/infiniband/hw/mlx4/mad.c | 141 ++++++++---
drivers/infiniband/hw/mlx4/main.c | 33 ++-
drivers/infiniband/hw/mlx4/mlx4_ib.h | 19 ++
drivers/infiniband/hw/mlx4/qp.c | 27 ++-
drivers/infiniband/hw/mthca/mthca_qp.c | 4 +-
drivers/infiniband/hw/ocrdma/ocrdma_main.c | 7 +-
drivers/infiniband/hw/ocrdma/ocrdma_verbs.c | 2 +-
drivers/infiniband/hw/qib/qib.h | 45 +++-
drivers/infiniband/hw/qib/qib_diag.c | 13 +-
drivers/infiniband/hw/qib/qib_driver.c | 15 +-
drivers/infiniband/hw/qib/qib_eeprom.c | 41 ++--
drivers/infiniband/hw/qib/qib_file_ops.c | 63 ++---
drivers/infiniband/hw/qib/qib_fs.c | 21 +-
drivers/infiniband/hw/qib/qib_iba6120.c | 91 +++----
drivers/infiniband/hw/qib/qib_iba7220.c | 92 ++++----
drivers/infiniband/hw/qib/qib_iba7322.c | 160 +++++++------
drivers/infiniband/hw/qib/qib_init.c | 238 +++++++++++++++----
drivers/infiniband/hw/qib/qib_intr.c | 8 +-
drivers/infiniband/hw/qib/qib_keys.c | 152 +++++++-----
drivers/infiniband/hw/qib/qib_mad.c | 327 +++++++++++++++++++++++++-
drivers/infiniband/hw/qib/qib_mad.h | 198 +++++++++++++++-
drivers/infiniband/hw/qib/qib_mr.c | 247 ++++++++++---------
drivers/infiniband/hw/qib/qib_pcie.c | 25 +-
drivers/infiniband/hw/qib/qib_qp.c | 56 +++--
drivers/infiniband/hw/qib/qib_rc.c | 24 +-
drivers/infiniband/hw/qib/qib_ruc.c | 14 +-
drivers/infiniband/hw/qib/qib_sd7220.c | 41 ++--
drivers/infiniband/hw/qib/qib_sdma.c | 11 +-
drivers/infiniband/hw/qib/qib_sysfs.c | 246 +++++++++++++------
drivers/infiniband/hw/qib/qib_twsi.c | 8 +-
drivers/infiniband/hw/qib/qib_uc.c | 31 +--
drivers/infiniband/hw/qib/qib_ud.c | 12 +-
drivers/infiniband/hw/qib/qib_verbs.c | 66 +++++-
drivers/infiniband/hw/qib/qib_verbs.h | 56 +++--
drivers/infiniband/hw/qib/qib_wc_x86_64.c | 14 +-
drivers/infiniband/ulp/ipoib/ipoib_cm.c | 2 +-
drivers/net/ethernet/mellanox/mlx4/en_main.c | 5 +-
drivers/net/ethernet/mellanox/mlx4/eq.c | 22 +-
drivers/net/ethernet/mellanox/mlx4/fw.c | 132 ++++++++---
drivers/net/ethernet/mellanox/mlx4/icm.c | 2 +
drivers/net/ethernet/mellanox/mlx4/icm.h | 6 -
drivers/net/ethernet/mellanox/mlx4/intf.c | 5 +-
drivers/net/ethernet/mellanox/mlx4/main.c | 86 +++++--
drivers/net/ethernet/mellanox/mlx4/mlx4.h | 67 +-----
drivers/net/ethernet/mellanox/mlx4/port.c | 11 +-
include/linux/mlx4/device.h | 119 +++++++++-
include/linux/mlx4/driver.h | 3 +-
include/rdma/ib_cm.h | 12 +
include/rdma/ib_sa.h | 33 +++
include/rdma/rdma_cm.h | 10 +
include/rdma/rdma_user_cm.h | 1 +
58 files changed, 2414 insertions(+), 911 deletions(-)
^ permalink raw reply [flat|nested] 223+ messages in thread
* RE: [GIT PULL] please pull infiniband.git
2012-06-24 12:09 Roland Dreier
@ 2012-06-25 14:11 ` Tziporet Koren
0 siblings, 0 replies; 223+ messages in thread
From: Tziporet Koren @ 2012-06-25 14:11 UTC (permalink / raw)
To: Roland Dreier, Linus Torvalds; +Cc: linux-rdma, linux-kernel
Hi Roland
Can you updated us on status of review of our mlx4 SRIOV IB submission?
Thanks
Tziporet
-----Original Message-----
From: linux-rdma-owner@vger.kernel.org [mailto:linux-rdma-owner@vger.kernel.org] On Behalf Of Roland Dreier
Sent: Sunday, June 24, 2012 5:11 AM
To: Linus Torvalds
Cc: linux-rdma@vger.kernel.org; linux-kernel@vger.kernel.org
Subject: [GIT PULL] please pull infiniband.git
Hi Linus,
Please pull from
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git tags/rdma-fixes
----------------------------------------------------------------
InfiniBand/RDMA fixes for 3.5-rc:
- Fixes to new ocrdma driver
- Typo in test in CMA
----------------------------------------------------------------
Dan Carpenter (1):
RDMA/ocrdma: Fix off by one in ocrdma_query_gid()
Mahesh Vardhamanaiah (2):
RDMA/ocrdma: Correct reported max queue sizes
RDMA/ocrdma: Correct queue SGE calculation
Parav Pandit (2):
RDMA/ocrdma: Fixed GID table for vlan and events
RDMA/ocrdma: Fixed RQ error CQE polling
Roland Dreier (1):
Merge branches 'cma' and 'ocrdma' into for-linus
Sean Hefty (1):
RDMA/cma: QP type check on received REQs should be AND not OR
drivers/infiniband/core/cma.c | 2 +-
drivers/infiniband/hw/ocrdma/ocrdma.h | 1 +
drivers/infiniband/hw/ocrdma/ocrdma_hw.c | 18 ++++----
drivers/infiniband/hw/ocrdma/ocrdma_main.c | 63 +++++++++++++++------------
drivers/infiniband/hw/ocrdma/ocrdma_sli.h | 5 ++-
drivers/infiniband/hw/ocrdma/ocrdma_verbs.c | 12 ++---
6 files changed, 55 insertions(+), 46 deletions(-)
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
@ 2012-06-24 12:09 Roland Dreier
2012-06-25 14:11 ` Tziporet Koren
0 siblings, 1 reply; 223+ messages in thread
From: Roland Dreier @ 2012-06-24 12:09 UTC (permalink / raw)
To: Linus Torvalds; +Cc: linux-rdma, linux-kernel
Hi Linus,
Please pull from
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git tags/rdma-fixes
----------------------------------------------------------------
InfiniBand/RDMA fixes for 3.5-rc:
- Fixes to new ocrdma driver
- Typo in test in CMA
----------------------------------------------------------------
Dan Carpenter (1):
RDMA/ocrdma: Fix off by one in ocrdma_query_gid()
Mahesh Vardhamanaiah (2):
RDMA/ocrdma: Correct reported max queue sizes
RDMA/ocrdma: Correct queue SGE calculation
Parav Pandit (2):
RDMA/ocrdma: Fixed GID table for vlan and events
RDMA/ocrdma: Fixed RQ error CQE polling
Roland Dreier (1):
Merge branches 'cma' and 'ocrdma' into for-linus
Sean Hefty (1):
RDMA/cma: QP type check on received REQs should be AND not OR
drivers/infiniband/core/cma.c | 2 +-
drivers/infiniband/hw/ocrdma/ocrdma.h | 1 +
drivers/infiniband/hw/ocrdma/ocrdma_hw.c | 18 ++++----
drivers/infiniband/hw/ocrdma/ocrdma_main.c | 63 +++++++++++++++------------
drivers/infiniband/hw/ocrdma/ocrdma_sli.h | 5 ++-
drivers/infiniband/hw/ocrdma/ocrdma_verbs.c | 12 ++---
6 files changed, 55 insertions(+), 46 deletions(-)
^ permalink raw reply [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
2012-05-21 1:14 Roland Dreier
2012-05-21 2:05 ` Stephen Rothwell
2012-05-21 16:07 ` Roland Dreier
@ 2012-06-06 17:44 ` Roland Dreier
2 siblings, 0 replies; 223+ messages in thread
From: Roland Dreier @ 2012-06-06 17:44 UTC (permalink / raw)
To: Linus Torvalds; +Cc: linux-rdma, linux-kernel
Hi Linus,
Please pull from
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git tags/rdma-fixes
----------------------------------------------------------------
InfiniBand/RDMA fixes for 3.5-rc2, all in hardware drivers:
- Fix crash in cxgb4
- Fixes to new ocrdma driver
- Regression fixes for mlx4
----------------------------------------------------------------
Devendra Naga (1):
RDMA/ocrdma: Remove unnecessary version.h includes
Jack Morgenstein (1):
mlx4_core: Fix setting VL_cap in mlx4_SET_PORT wrapper flow
Parav Pandit (2):
RDMA/ocrdma: Correct queue free count math
RDMA/ocrdma: Fix signaled event for SRQ_LIMIT_REACHED
Roland Dreier (1):
Merge branches 'cxgb4', 'mlx4' and 'ocrdma' into for-linus
Sagi Grimberg (1):
IB/mlx4: Fix max_wqe capacity reported from query device
Shlomo Pongratz (1):
IB/mlx4: Fix EQ deallocation in legacy mode
Thadeu Lima de Souza Cascardo (1):
RDMA/cxgb4: Fix crash when peer address is 0.0.0.0
drivers/infiniband/hw/cxgb4/cm.c | 4 ++++
drivers/infiniband/hw/mlx4/main.c | 21 ++++++++-------------
drivers/infiniband/hw/mlx4/mlx4_ib.h | 8 ++++++++
drivers/infiniband/hw/mlx4/qp.c | 21 +++++++++++++++------
drivers/infiniband/hw/ocrdma/ocrdma.h | 1 -
drivers/infiniband/hw/ocrdma/ocrdma_abi.h | 5 +----
drivers/infiniband/hw/ocrdma/ocrdma_hw.c | 9 +--------
drivers/infiniband/hw/ocrdma/ocrdma_main.c | 1 -
drivers/infiniband/hw/ocrdma/ocrdma_verbs.c | 5 -----
drivers/infiniband/hw/ocrdma/ocrdma_verbs.h | 1 -
drivers/net/ethernet/mellanox/mlx4/port.c | 4 ++--
11 files changed, 39 insertions(+), 41 deletions(-)
^ permalink raw reply [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
2012-05-21 1:14 Roland Dreier
2012-05-21 2:05 ` Stephen Rothwell
@ 2012-05-21 16:07 ` Roland Dreier
2012-06-06 17:44 ` Roland Dreier
2 siblings, 0 replies; 223+ messages in thread
From: Roland Dreier @ 2012-05-21 16:07 UTC (permalink / raw)
To: Linus Torvalds; +Cc: linux-kernel, linux-rdma
Hi Linus,
I updated my tag with the patch to fix powerpc build breakage with the
one-liner
RDMA/cxgb4: Include vmalloc.h for vmalloc and vfree
so the pull request now looks like the following.
Thanks,
Roland
Please pull from
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git tags/rdma-for-3.5
----------------------------------------------------------------
InfiniBand/RDMA changes for the 3.5 merge window:
- Add ocrdma hardware driver for Emulex IB-over-Ethernet adapters
- Add generic and mlx4 support for "raw" QPs: allow suitably privileged
applications to send and receive arbitrary packets directly to/from
the hardware
- Add "doorbell drop" handling to the cxgb4 driver
- A fairly large batch of qib hardware driver changes
- A few fixes for lockdep-detected issues
- A few other miscellaneous fixes and cleanups
----------------------------------------------------------------
Dan Carpenter (2):
RDMA/ocrdma: Fix check for NULL instead of IS_ERR
RDMA/ocrdma: Tiny locking cleanup
Jack Morgenstein (3):
mlx4_core: Change bitmap allocator to work in round-robin fashion
IB/core: Fix IB_SA_COMP_MASK macro
IB/mlx4: Fix mlx4_ib_add() error flow
Jim Cromie (1):
IB/ipath: Replace open-coded ARRAY_SIZE with macro
Jim Foraker (2):
IB/qib: Fix M_Key lease timeout handling
IB/qib: MADs with misset M_Keys should return failure
Mike Marciniszyn (5):
IB/ipath: Replace open-coded ARRAY_SIZE with macro
MAINTAINERS: Update qib and ipath entries from QLogic to Intel
IB/qib: Add prefetch for eager buffers
IB/qib: Optimize pio ack buffer allocation
IB/qib: Add cache line awareness to qib_qp and qib_devdata structures
Mitko Haralanov (2):
IB/qib: Display correct value for number of contexts
IB/qib: Fix QLE734X link cycling
Or Gerlitz (4):
IB/core: Use qp->usecnt to track multicast attach/detach
IB/core: Add raw packet QP type
IB/mlx4: Add raw packet QP support
IB/iser: Fix error flow in iser ep connection establishment
Oren Duer (1):
IB/mlx4: Put priority bits in WQE of IBoE MLX QP
Parav Pandit (3):
be2net: Add function to issue mailbox cmd on MQ
be2net: Add functionality to support RoCE driver
RDMA/ocrdma: Add driver for Emulex OneConnect IBoE RDMA adapter
Roland Dreier (8):
IB/uverbs: Make lockdep output more readable
IB/uverbs: Lock SRQ / CQ / PD objects in a consistent order
RDMA/ocrdma: Fix warnings about uninitialized variables
RDMA/ocrdma: Make needlessly global functions/structs static
RDMA/ocrdma: Set event's device member in ocrdma_dispatch_ibevent()
RDMA/ocrdma: Remove write-only variables
RDMA/ocrdma: Fix build with IPV6=n
Merge branches 'core', 'cxgb4', 'ipath', 'iser', 'lockdep', 'mlx4', 'nes', 'ocrdma', 'qib' and 'raw-qp' into for-linus
Sasha Levin (1):
RDMA/ocrdma: Don't sleep in atomic notifier handler
Sean Hefty (1):
RDMA/cma: Fix lockdep false positive recursive locking
Shlomo Pongratz (3):
mlx4_core: Add second capabilities flags field
IB/mlx4: Replace printk(KERN_yyy...) with pr_yyy(...)
IB/mlx4: Increase the number of vectors (EQs) available for ULPs
Steve Wise (3):
RDMA/cxgb4: Use dst parameter in import_ep()
RDMA/cxgb4: Always wake up waiters in c4iw_peer_abort_intr()
RDMA/cxgb4: Drop peer_abort when no endpoint found
Tatyana Nikolova (2):
RDMA/nes: Fix for the ORD value of the connecting peer
RDMA/nes: Don't call event handler if pointer is NULL
Todd Rimmer (1):
IB/qib: Correct ordering of reregister vs. port active events
Vipul Pandya (11):
cxgb4: Detect DB FULL events and notify RDMA ULD
cxgb4: Common platform specific changes for DB Drop Recovery
cxgb4: DB Drop Recovery for RDMA and LLD queues
RDMA/cxgb4: Add debugfs RDMA memory stats
RDMA/cxgb4: Add DB Overflow Avoidance
RDMA/cxgb4: Disable interrupts in c4iw_ev_dispatch()
RDMA/cxgb4: DB Drop Recovery for RDMA and LLD queues
RDMA/cxgb4: Use vmalloc() for debugfs QP dump
RDMA/cxgb4: Remove kfifo usage
RDMA/cxgb4: Add query_qp support
RDMA/cxgb4: Include vmalloc.h for vmalloc and vfree
Yishai Hadas (1):
IB/core: Fix mismatch between locked and pinned pages
MAINTAINERS | 4 +-
drivers/infiniband/Kconfig | 1 +
drivers/infiniband/Makefile | 1 +
drivers/infiniband/core/cma.c | 42 +-
drivers/infiniband/core/umem.c | 2 +-
drivers/infiniband/core/uverbs_cmd.c | 108 +-
drivers/infiniband/core/verbs.c | 15 +-
drivers/infiniband/hw/cxgb4/Makefile | 2 +-
drivers/infiniband/hw/cxgb4/cm.c | 36 +-
drivers/infiniband/hw/cxgb4/device.c | 340 ++-
drivers/infiniband/hw/cxgb4/ev.c | 8 +-
drivers/infiniband/hw/cxgb4/id_table.c | 112 +
drivers/infiniband/hw/cxgb4/iw_cxgb4.h | 134 +-
drivers/infiniband/hw/cxgb4/mem.c | 21 +-
drivers/infiniband/hw/cxgb4/provider.c | 19 +-
drivers/infiniband/hw/cxgb4/qp.c | 105 +-
drivers/infiniband/hw/cxgb4/resource.c | 180 +-
drivers/infiniband/hw/cxgb4/t4.h | 24 +
drivers/infiniband/hw/cxgb4/user.h | 2 +-
drivers/infiniband/hw/ipath/ipath_iba6110.c | 3 +-
drivers/infiniband/hw/ipath/ipath_intr.c | 3 +-
drivers/infiniband/hw/mlx4/cq.c | 13 +-
drivers/infiniband/hw/mlx4/main.c | 104 +-
drivers/infiniband/hw/mlx4/mlx4_ib.h | 2 +
drivers/infiniband/hw/mlx4/mr.c | 2 +-
drivers/infiniband/hw/mlx4/qp.c | 54 +-
drivers/infiniband/hw/mlx4/srq.c | 2 +-
drivers/infiniband/hw/nes/nes_cm.c | 7 +-
drivers/infiniband/hw/ocrdma/Kconfig | 8 +
drivers/infiniband/hw/ocrdma/Makefile | 5 +
drivers/infiniband/hw/ocrdma/ocrdma.h | 393 ++++
drivers/infiniband/hw/ocrdma/ocrdma_abi.h | 134 ++
drivers/infiniband/hw/ocrdma/ocrdma_ah.c | 172 ++
drivers/infiniband/hw/ocrdma/ocrdma_ah.h | 42 +
drivers/infiniband/hw/ocrdma/ocrdma_hw.c | 2640 +++++++++++++++++++++++
drivers/infiniband/hw/ocrdma/ocrdma_hw.h | 132 ++
drivers/infiniband/hw/ocrdma/ocrdma_main.c | 577 +++++
drivers/infiniband/hw/ocrdma/ocrdma_sli.h | 1672 ++++++++++++++
drivers/infiniband/hw/ocrdma/ocrdma_verbs.c | 2537 ++++++++++++++++++++++
drivers/infiniband/hw/ocrdma/ocrdma_verbs.h | 94 +
drivers/infiniband/hw/qib/qib.h | 35 +-
drivers/infiniband/hw/qib/qib_driver.c | 5 +-
drivers/infiniband/hw/qib/qib_iba6120.c | 1 +
drivers/infiniband/hw/qib/qib_iba7220.c | 1 +
drivers/infiniband/hw/qib/qib_iba7322.c | 3 +-
drivers/infiniband/hw/qib/qib_init.c | 3 +-
drivers/infiniband/hw/qib/qib_mad.c | 63 +-
drivers/infiniband/hw/qib/qib_qp.c | 7 +
drivers/infiniband/hw/qib/qib_rc.c | 4 +-
drivers/infiniband/hw/qib/qib_ruc.c | 12 +-
drivers/infiniband/hw/qib/qib_sysfs.c | 7 +-
drivers/infiniband/hw/qib/qib_tx.c | 25 +-
drivers/infiniband/hw/qib/qib_uc.c | 4 +-
drivers/infiniband/hw/qib/qib_ud.c | 16 +-
drivers/infiniband/hw/qib/qib_verbs.h | 145 +-
drivers/infiniband/ulp/iser/iscsi_iser.c | 5 +-
drivers/infiniband/ulp/iser/iser_verbs.c | 3 +-
drivers/net/ethernet/chelsio/cxgb4/cxgb4.h | 23 +
drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c | 235 +-
drivers/net/ethernet/chelsio/cxgb4/cxgb4_uld.h | 11 +
drivers/net/ethernet/chelsio/cxgb4/sge.c | 22 +-
drivers/net/ethernet/chelsio/cxgb4/t4_hw.c | 62 +-
drivers/net/ethernet/chelsio/cxgb4/t4_regs.h | 53 +
drivers/net/ethernet/chelsio/cxgb4/t4fw_api.h | 15 +
drivers/net/ethernet/emulex/benet/Makefile | 2 +-
drivers/net/ethernet/emulex/benet/be.h | 38 +-
drivers/net/ethernet/emulex/benet/be_cmds.c | 39 +
drivers/net/ethernet/emulex/benet/be_cmds.h | 1 +
drivers/net/ethernet/emulex/benet/be_hw.h | 4 +-
drivers/net/ethernet/emulex/benet/be_main.c | 88 +-
drivers/net/ethernet/emulex/benet/be_roce.c | 182 ++
drivers/net/ethernet/emulex/benet/be_roce.h | 75 +
drivers/net/ethernet/mellanox/mlx4/alloc.c | 3 -
drivers/net/ethernet/mellanox/mlx4/fw.c | 29 +
drivers/net/ethernet/mellanox/mlx4/fw.h | 2 +
drivers/net/ethernet/mellanox/mlx4/main.c | 2 +
include/linux/mlx4/device.h | 8 +
include/linux/mlx4/qp.h | 3 +-
include/rdma/ib_mad.h | 2 +-
include/rdma/ib_verbs.h | 4 +-
80 files changed, 10547 insertions(+), 447 deletions(-)
create mode 100644 drivers/infiniband/hw/cxgb4/id_table.c
create mode 100644 drivers/infiniband/hw/ocrdma/Kconfig
create mode 100644 drivers/infiniband/hw/ocrdma/Makefile
create mode 100644 drivers/infiniband/hw/ocrdma/ocrdma.h
create mode 100644 drivers/infiniband/hw/ocrdma/ocrdma_abi.h
create mode 100644 drivers/infiniband/hw/ocrdma/ocrdma_ah.c
create mode 100644 drivers/infiniband/hw/ocrdma/ocrdma_ah.h
create mode 100644 drivers/infiniband/hw/ocrdma/ocrdma_hw.c
create mode 100644 drivers/infiniband/hw/ocrdma/ocrdma_hw.h
create mode 100644 drivers/infiniband/hw/ocrdma/ocrdma_main.c
create mode 100644 drivers/infiniband/hw/ocrdma/ocrdma_sli.h
create mode 100644 drivers/infiniband/hw/ocrdma/ocrdma_verbs.c
create mode 100644 drivers/infiniband/hw/ocrdma/ocrdma_verbs.h
create mode 100644 drivers/net/ethernet/emulex/benet/be_roce.c
create mode 100644 drivers/net/ethernet/emulex/benet/be_roce.h
^ permalink raw reply [flat|nested] 223+ messages in thread
* Re: [GIT PULL] please pull infiniband.git
2012-05-21 2:35 ` Roland Dreier
@ 2012-05-21 3:39 ` Stephen Rothwell
0 siblings, 0 replies; 223+ messages in thread
From: Stephen Rothwell @ 2012-05-21 3:39 UTC (permalink / raw)
To: Roland Dreier; +Cc: Linus Torvalds, linux-kernel, linux-rdma
[-- Attachment #1: Type: text/plain, Size: 354 bytes --]
Hi Roland,
On Sun, 20 May 2012 19:35:30 -0700 Roland Dreier <roland@kernel.org> wrote:
>
> Sorry about that. Which commit in particular? The vmalloc one?
> What's the error?
Yeah, the vmalloc patch - see my linux-next build error report. Its just
missing an include.
--
Cheers,
Stephen Rothwell sfr@canb.auug.org.au
[-- Attachment #2: Type: application/pgp-signature, Size: 836 bytes --]
^ permalink raw reply [flat|nested] 223+ messages in thread
* Re: [GIT PULL] please pull infiniband.git
2012-05-21 2:05 ` Stephen Rothwell
@ 2012-05-21 2:35 ` Roland Dreier
2012-05-21 3:39 ` Stephen Rothwell
0 siblings, 1 reply; 223+ messages in thread
From: Roland Dreier @ 2012-05-21 2:35 UTC (permalink / raw)
To: Stephen Rothwell; +Cc: Linus Torvalds, linux-kernel, linux-rdma
On Sun, May 20, 2012 at 7:05 PM, Stephen Rothwell <sfr@canb.auug.org.au> wrote:
>> Vipul Pandya (10):
>> cxgb4: Detect DB FULL events and notify RDMA ULD
>> cxgb4: Common platform specific changes for DB Drop Recovery
>> cxgb4: DB Drop Recovery for RDMA and LLD queues
>> RDMA/cxgb4: Add debugfs RDMA memory stats
>> RDMA/cxgb4: Add DB Overflow Avoidance
>> RDMA/cxgb4: Disable interrupts in c4iw_ev_dispatch()
>> RDMA/cxgb4: DB Drop Recovery for RDMA and LLD queues
>> RDMA/cxgb4: Use vmalloc() for debugfs QP dump
> This commit breaks (at least) powerpc builds and has not bee in linux-next
> before today.
Sorry about that. Which commit in particular? The vmalloc one?
What's the error?
(I did add this patchset to my for-next branch on Friday at the
latest, but I understand if you didn't do a linux-next build over the
past 48 weekend hours :)
- R.
^ permalink raw reply [flat|nested] 223+ messages in thread
* Re: [GIT PULL] please pull infiniband.git
2012-05-21 1:14 Roland Dreier
@ 2012-05-21 2:05 ` Stephen Rothwell
2012-05-21 2:35 ` Roland Dreier
2012-05-21 16:07 ` Roland Dreier
2012-06-06 17:44 ` Roland Dreier
2 siblings, 1 reply; 223+ messages in thread
From: Stephen Rothwell @ 2012-05-21 2:05 UTC (permalink / raw)
To: Roland Dreier; +Cc: Linus Torvalds, linux-kernel, linux-rdma
[-- Attachment #1: Type: text/plain, Size: 780 bytes --]
Hi Roland,
On Sun, 20 May 2012 18:14:28 -0700 Roland Dreier <roland@kernel.org> wrote:
>
> Vipul Pandya (10):
> cxgb4: Detect DB FULL events and notify RDMA ULD
> cxgb4: Common platform specific changes for DB Drop Recovery
> cxgb4: DB Drop Recovery for RDMA and LLD queues
> RDMA/cxgb4: Add debugfs RDMA memory stats
> RDMA/cxgb4: Add DB Overflow Avoidance
> RDMA/cxgb4: Disable interrupts in c4iw_ev_dispatch()
> RDMA/cxgb4: DB Drop Recovery for RDMA and LLD queues
> RDMA/cxgb4: Use vmalloc() for debugfs QP dump
This commit breaks (at least) powerpc builds and has not bee in linux-next
before today.
--
Cheers,
Stephen Rothwell sfr@canb.auug.org.au
http://www.canb.auug.org.au/~sfr/
[-- Attachment #2: Type: application/pgp-signature, Size: 836 bytes --]
^ permalink raw reply [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
@ 2012-05-21 1:14 Roland Dreier
2012-05-21 2:05 ` Stephen Rothwell
` (2 more replies)
0 siblings, 3 replies; 223+ messages in thread
From: Roland Dreier @ 2012-05-21 1:14 UTC (permalink / raw)
To: Linus Torvalds; +Cc: linux-kernel, linux-rdma
Hi Linus,
Please pull from
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git tags/rdma-for-3.5
----------------------------------------------------------------
InfiniBand/RDMA changes for the 3.5 merge window:
- Add ocrdma hardware driver for Emulex IB-over-Ethernet adapters
- Add generic and mlx4 support for "raw" QPs: allow suitably privileged
applications to send and receive arbitrary packets directly to/from
the hardware
- Add "doorbell drop" handling to the cxgb4 driver
- A fairly large batch of qib hardware driver changes
- A few fixes for lockdep-detected issues
- A few other miscellaneous fixes and cleanups
----------------------------------------------------------------
Dan Carpenter (2):
RDMA/ocrdma: Fix check for NULL instead of IS_ERR
RDMA/ocrdma: Tiny locking cleanup
Jack Morgenstein (3):
mlx4_core: Change bitmap allocator to work in round-robin fashion
IB/core: Fix IB_SA_COMP_MASK macro
IB/mlx4: Fix mlx4_ib_add() error flow
Jim Cromie (1):
IB/ipath: Replace open-coded ARRAY_SIZE with macro
Jim Foraker (2):
IB/qib: Fix M_Key lease timeout handling
IB/qib: MADs with misset M_Keys should return failure
Mike Marciniszyn (5):
IB/ipath: Replace open-coded ARRAY_SIZE with macro
MAINTAINERS: Update qib and ipath entries from QLogic to Intel
IB/qib: Add prefetch for eager buffers
IB/qib: Optimize pio ack buffer allocation
IB/qib: Add cache line awareness to qib_qp and qib_devdata structures
Mitko Haralanov (2):
IB/qib: Display correct value for number of contexts
IB/qib: Fix QLE734X link cycling
Or Gerlitz (4):
IB/core: Use qp->usecnt to track multicast attach/detach
IB/core: Add raw packet QP type
IB/mlx4: Add raw packet QP support
IB/iser: Fix error flow in iser ep connection establishment
Oren Duer (1):
IB/mlx4: Put priority bits in WQE of IBoE MLX QP
Parav Pandit (3):
be2net: Add function to issue mailbox cmd on MQ
be2net: Add functionality to support RoCE driver
RDMA/ocrdma: Add driver for Emulex OneConnect IBoE RDMA adapter
Roland Dreier (8):
IB/uverbs: Make lockdep output more readable
IB/uverbs: Lock SRQ / CQ / PD objects in a consistent order
RDMA/ocrdma: Fix warnings about uninitialized variables
RDMA/ocrdma: Make needlessly global functions/structs static
RDMA/ocrdma: Set event's device member in ocrdma_dispatch_ibevent()
RDMA/ocrdma: Remove write-only variables
RDMA/ocrdma: Fix build with IPV6=n
Merge branches 'core', 'cxgb4', 'ipath', 'iser', 'lockdep', 'mlx4', 'nes', 'ocrdma', 'qib' and 'raw-qp' into for-linus
Sasha Levin (1):
RDMA/ocrdma: Don't sleep in atomic notifier handler
Sean Hefty (1):
RDMA/cma: Fix lockdep false positive recursive locking
Shlomo Pongratz (3):
mlx4_core: Add second capabilities flags field
IB/mlx4: Replace printk(KERN_yyy...) with pr_yyy(...)
IB/mlx4: Increase the number of vectors (EQs) available for ULPs
Steve Wise (3):
RDMA/cxgb4: Use dst parameter in import_ep()
RDMA/cxgb4: Always wake up waiters in c4iw_peer_abort_intr()
RDMA/cxgb4: Drop peer_abort when no endpoint found
Tatyana Nikolova (2):
RDMA/nes: Fix for the ORD value of the connecting peer
RDMA/nes: Don't call event handler if pointer is NULL
Todd Rimmer (1):
IB/qib: Correct ordering of reregister vs. port active events
Vipul Pandya (10):
cxgb4: Detect DB FULL events and notify RDMA ULD
cxgb4: Common platform specific changes for DB Drop Recovery
cxgb4: DB Drop Recovery for RDMA and LLD queues
RDMA/cxgb4: Add debugfs RDMA memory stats
RDMA/cxgb4: Add DB Overflow Avoidance
RDMA/cxgb4: Disable interrupts in c4iw_ev_dispatch()
RDMA/cxgb4: DB Drop Recovery for RDMA and LLD queues
RDMA/cxgb4: Use vmalloc() for debugfs QP dump
RDMA/cxgb4: Remove kfifo usage
RDMA/cxgb4: Add query_qp support
Yishai Hadas (1):
IB/core: Fix mismatch between locked and pinned pages
MAINTAINERS | 4 +-
drivers/infiniband/Kconfig | 1 +
drivers/infiniband/Makefile | 1 +
drivers/infiniband/core/cma.c | 42 +-
drivers/infiniband/core/umem.c | 2 +-
drivers/infiniband/core/uverbs_cmd.c | 108 +-
drivers/infiniband/core/verbs.c | 15 +-
drivers/infiniband/hw/cxgb4/Makefile | 2 +-
drivers/infiniband/hw/cxgb4/cm.c | 36 +-
drivers/infiniband/hw/cxgb4/device.c | 339 ++-
drivers/infiniband/hw/cxgb4/ev.c | 8 +-
drivers/infiniband/hw/cxgb4/id_table.c | 112 +
drivers/infiniband/hw/cxgb4/iw_cxgb4.h | 134 +-
drivers/infiniband/hw/cxgb4/mem.c | 21 +-
drivers/infiniband/hw/cxgb4/provider.c | 19 +-
drivers/infiniband/hw/cxgb4/qp.c | 105 +-
drivers/infiniband/hw/cxgb4/resource.c | 180 +-
drivers/infiniband/hw/cxgb4/t4.h | 24 +
drivers/infiniband/hw/cxgb4/user.h | 2 +-
drivers/infiniband/hw/ipath/ipath_iba6110.c | 3 +-
drivers/infiniband/hw/ipath/ipath_intr.c | 3 +-
drivers/infiniband/hw/mlx4/cq.c | 13 +-
drivers/infiniband/hw/mlx4/main.c | 104 +-
drivers/infiniband/hw/mlx4/mlx4_ib.h | 2 +
drivers/infiniband/hw/mlx4/mr.c | 2 +-
drivers/infiniband/hw/mlx4/qp.c | 54 +-
drivers/infiniband/hw/mlx4/srq.c | 2 +-
drivers/infiniband/hw/nes/nes_cm.c | 7 +-
drivers/infiniband/hw/ocrdma/Kconfig | 8 +
drivers/infiniband/hw/ocrdma/Makefile | 5 +
drivers/infiniband/hw/ocrdma/ocrdma.h | 393 ++++
drivers/infiniband/hw/ocrdma/ocrdma_abi.h | 134 ++
drivers/infiniband/hw/ocrdma/ocrdma_ah.c | 172 ++
drivers/infiniband/hw/ocrdma/ocrdma_ah.h | 42 +
drivers/infiniband/hw/ocrdma/ocrdma_hw.c | 2640 +++++++++++++++++++++++
drivers/infiniband/hw/ocrdma/ocrdma_hw.h | 132 ++
drivers/infiniband/hw/ocrdma/ocrdma_main.c | 577 +++++
drivers/infiniband/hw/ocrdma/ocrdma_sli.h | 1672 ++++++++++++++
drivers/infiniband/hw/ocrdma/ocrdma_verbs.c | 2537 ++++++++++++++++++++++
drivers/infiniband/hw/ocrdma/ocrdma_verbs.h | 94 +
drivers/infiniband/hw/qib/qib.h | 35 +-
drivers/infiniband/hw/qib/qib_driver.c | 5 +-
drivers/infiniband/hw/qib/qib_iba6120.c | 1 +
drivers/infiniband/hw/qib/qib_iba7220.c | 1 +
drivers/infiniband/hw/qib/qib_iba7322.c | 3 +-
drivers/infiniband/hw/qib/qib_init.c | 3 +-
drivers/infiniband/hw/qib/qib_mad.c | 63 +-
drivers/infiniband/hw/qib/qib_qp.c | 7 +
drivers/infiniband/hw/qib/qib_rc.c | 4 +-
drivers/infiniband/hw/qib/qib_ruc.c | 12 +-
drivers/infiniband/hw/qib/qib_sysfs.c | 7 +-
drivers/infiniband/hw/qib/qib_tx.c | 25 +-
drivers/infiniband/hw/qib/qib_uc.c | 4 +-
drivers/infiniband/hw/qib/qib_ud.c | 16 +-
drivers/infiniband/hw/qib/qib_verbs.h | 145 +-
drivers/infiniband/ulp/iser/iscsi_iser.c | 5 +-
drivers/infiniband/ulp/iser/iser_verbs.c | 3 +-
drivers/net/ethernet/chelsio/cxgb4/cxgb4.h | 23 +
drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c | 235 +-
drivers/net/ethernet/chelsio/cxgb4/cxgb4_uld.h | 11 +
drivers/net/ethernet/chelsio/cxgb4/sge.c | 22 +-
drivers/net/ethernet/chelsio/cxgb4/t4_hw.c | 62 +-
drivers/net/ethernet/chelsio/cxgb4/t4_regs.h | 53 +
drivers/net/ethernet/chelsio/cxgb4/t4fw_api.h | 15 +
drivers/net/ethernet/emulex/benet/Makefile | 2 +-
drivers/net/ethernet/emulex/benet/be.h | 38 +-
drivers/net/ethernet/emulex/benet/be_cmds.c | 39 +
drivers/net/ethernet/emulex/benet/be_cmds.h | 1 +
drivers/net/ethernet/emulex/benet/be_hw.h | 4 +-
drivers/net/ethernet/emulex/benet/be_main.c | 88 +-
drivers/net/ethernet/emulex/benet/be_roce.c | 182 ++
drivers/net/ethernet/emulex/benet/be_roce.h | 75 +
drivers/net/ethernet/mellanox/mlx4/alloc.c | 3 -
drivers/net/ethernet/mellanox/mlx4/fw.c | 29 +
drivers/net/ethernet/mellanox/mlx4/fw.h | 2 +
drivers/net/ethernet/mellanox/mlx4/main.c | 2 +
include/linux/mlx4/device.h | 8 +
include/linux/mlx4/qp.h | 3 +-
include/rdma/ib_mad.h | 2 +-
include/rdma/ib_verbs.h | 4 +-
80 files changed, 10546 insertions(+), 447 deletions(-)
create mode 100644 drivers/infiniband/hw/cxgb4/id_table.c
create mode 100644 drivers/infiniband/hw/ocrdma/Kconfig
create mode 100644 drivers/infiniband/hw/ocrdma/Makefile
create mode 100644 drivers/infiniband/hw/ocrdma/ocrdma.h
create mode 100644 drivers/infiniband/hw/ocrdma/ocrdma_abi.h
create mode 100644 drivers/infiniband/hw/ocrdma/ocrdma_ah.c
create mode 100644 drivers/infiniband/hw/ocrdma/ocrdma_ah.h
create mode 100644 drivers/infiniband/hw/ocrdma/ocrdma_hw.c
create mode 100644 drivers/infiniband/hw/ocrdma/ocrdma_hw.h
create mode 100644 drivers/infiniband/hw/ocrdma/ocrdma_main.c
create mode 100644 drivers/infiniband/hw/ocrdma/ocrdma_sli.h
create mode 100644 drivers/infiniband/hw/ocrdma/ocrdma_verbs.c
create mode 100644 drivers/infiniband/hw/ocrdma/ocrdma_verbs.h
create mode 100644 drivers/net/ethernet/emulex/benet/be_roce.c
create mode 100644 drivers/net/ethernet/emulex/benet/be_roce.h
^ permalink raw reply [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
@ 2012-04-26 17:39 Roland Dreier
0 siblings, 0 replies; 223+ messages in thread
From: Roland Dreier @ 2012-04-26 17:39 UTC (permalink / raw)
To: Linus Torvalds; +Cc: linux-rdma, linux-kernel
Hi Linus,
Please pull from
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git tags/ib-fixes
----------------------------------------------------------------
A few fixes for regressions introduced in 3.4-rc1:
- fix memory leak in mlx4
- fix two problems with new MAD response generation code
----------------------------------------------------------------
Jack Morgenstein (2):
IB/mad: Set 'D' bit in response for unhandled MADs
IB/mad: Don't send response for failed MADs
Jesper Juhl (1):
IB/mlx4: Fix memory leaks in ib_link_query_port()
Roland Dreier (1):
Merge branches 'mad-response' and 'mlx4' into fixes
drivers/infiniband/core/mad.c | 8 +++++---
drivers/infiniband/hw/mlx4/main.c | 2 +-
2 files changed, 6 insertions(+), 4 deletions(-)
^ permalink raw reply [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
@ 2012-04-12 23:45 Roland Dreier
0 siblings, 0 replies; 223+ messages in thread
From: Roland Dreier @ 2012-04-12 23:45 UTC (permalink / raw)
To: Linus Torvalds; +Cc: linux-rdma, target-devel, linux-kernel
Hi Linus,
Please pull from
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git tags/srpt-srq-type fixes
----------------------------------------------------------------
Add a fix for a bug hit by Alexey Shvetsov in ib_srtp that hits on
non-mlx4 hardware.
----------------------------------------------------------------
Roland Dreier (1):
IB/srpt: Set srq_type to IB_SRQT_BASIC
drivers/infiniband/ulp/srpt/ib_srpt.c | 1 +
1 file changed, 1 insertion(+)
^ permalink raw reply [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
@ 2012-04-11 20:07 Roland Dreier
0 siblings, 0 replies; 223+ messages in thread
From: Roland Dreier @ 2012-04-11 20:07 UTC (permalink / raw)
To: Linus Torvalds; +Cc: linux-kernel, linux-rdma
Hi Linus,
Please pull from
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git tags/rdma-for-linus
----------------------------------------------------------------
Fix regression in the /sys/class/infiniband/.../rate attribute -- old
kernels used to just return something, even if the underlying value was
out-of-bounds, while 3.4-rc1 returned EINVAL to userspace. This breaks
some applications that check for the error, so go back to the old
behavior.
----------------------------------------------------------------
Or Gerlitz (1):
IB/mlx4: Don't return an invalid speed when a port is down
Roland Dreier (1):
IB/core: Don't return EINVAL from sysfs rate attribute for invalid speeds
drivers/infiniband/core/sysfs.c | 9 +++++----
drivers/infiniband/hw/mlx4/main.c | 5 +++++
2 files changed, 10 insertions(+), 4 deletions(-)
^ permalink raw reply [flat|nested] 223+ messages in thread
* RE: [GIT PULL] please pull infiniband.git
2012-03-26 21:13 ` Roland Dreier
@ 2012-03-27 16:33 ` Tziporet Koren
0 siblings, 0 replies; 223+ messages in thread
From: Tziporet Koren @ 2012-03-27 16:33 UTC (permalink / raw)
To: Roland Dreier; +Cc: Linus Torvalds, linux-kernel, linux-rdma
>> What about the IPoIB patches (e.g. use Interrupt moderation)
> I have no idea what patch that might be. We've had the modify_cq call in ipoib for years now, with moderation parameters set through ethtool.
http://www.spinics.net/lists/linux-rdma/msg09142.html
and
http://www.spinics.net/lists/linux-rdma/msg09143.html
Tziporet
^ permalink raw reply [flat|nested] 223+ messages in thread
* Re: [GIT PULL] please pull infiniband.git
2012-03-26 21:04 ` Tziporet Koren
@ 2012-03-26 21:13 ` Roland Dreier
2012-03-27 16:33 ` Tziporet Koren
0 siblings, 1 reply; 223+ messages in thread
From: Roland Dreier @ 2012-03-26 21:13 UTC (permalink / raw)
To: Tziporet Koren; +Cc: Linus Torvalds, linux-kernel, linux-rdma
On Mon, Mar 26, 2012 at 2:04 PM, Tziporet Koren <tziporet@mellanox.com> wrote:
> What about the IPoIB patches (e.g. use Interrupt moderation)
I have no idea what patch that might be. We've had the modify_cq call
in ipoib for years now,
with moderation parameters set through ethtool.
- R.
^ permalink raw reply [flat|nested] 223+ messages in thread
* RE: [GIT PULL] please pull infiniband.git
2012-03-19 17:11 Roland Dreier
@ 2012-03-26 21:04 ` Tziporet Koren
2012-03-26 21:13 ` Roland Dreier
0 siblings, 1 reply; 223+ messages in thread
From: Tziporet Koren @ 2012-03-26 21:04 UTC (permalink / raw)
To: Roland Dreier, Linus Torvalds; +Cc: linux-kernel, linux-rdma
Roland
What about the IPoIB patches (e.g. use Interrupt moderation)
Regards,
Tziporet
^ permalink raw reply [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
@ 2012-03-19 17:11 Roland Dreier
2012-03-26 21:04 ` Tziporet Koren
0 siblings, 1 reply; 223+ messages in thread
From: Roland Dreier @ 2012-03-19 17:11 UTC (permalink / raw)
To: Linus Torvalds; +Cc: linux-kernel, linux-rdma
Hi Linus,
Please pull from
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git rdma-for-linus
----------------------------------------------------------------
InfiniBand/RDMA changes for the 3.4 merge window. Nothing big really
stands out; by patch count lots of fixes to the mlx4 driver plus some
cleanups and fixes to the core and other drivers.
----------------------------------------------------------------
Bart Van Assche (2):
IB/srp: Use pr_fmt() and pr_err()/pr_warn()
IB/srp: Consolidate repetitive sysfs code
Doug Ledford (1):
IB/iser: Free IB connection resources in the proper place
Eli Cohen (3):
IB/mlx4: Set bad_wr for invalid send opcode
mlx4: Enforce device max FMR maps in FMR alloc
IB/mlx4: Fix possible missed completion event
Eric Dumazet (1):
IB/ehca: Use kthread_create_on_node()
Hefty, Sean (1):
RDMA/ucma: Fix AB-BA deadlock
Jack Morgenstein (1):
mlx4_core: Report thermal error events
Kumar Sanghvi (1):
RDMA/cxgb4: Add missing peer2peer check in MPAv2 code
Kyle McMartin (1):
IB/ehca: Fix ilog2() compile failure
Masanari Iida (1):
IB/srpt: Fix typo "alocate" -> "allocate"
Mike Marciniszyn (2):
IB/qib: Add logic for affinity hint
IB/qib: Avoid filtering LID on SMA portinfo
Or Gerlitz (6):
IB/iser: Post initial receive buffers before sending the final login request
IB: Use central enum for speed instead of hard-coded values
mlx4_core: Get rid of redundant ext_port_cap flags
IB: Change CQE "csum_ok" field to a bit flag
IB/mlx4: Fix info returned when querying IBoE ports
mlx4_core: Allow dynamic MTU configuration for IB ports
Roland Dreier (5):
IB/core: Fix SDR rates in sysfs
mlx4_core: Fix one more static exported function
mlx4_core: Scale size of MTT table with system RAM
Merge branches 'misc' and 'mlx4' into for-next
Merge branches 'cma', 'cxgb3', 'cxgb4', 'ehca', 'iser', 'mad', 'nes', 'qib', 'srp' and 'srpt' into for-next
Steve Wise (2):
RDMA/cxgb3: Don't pass irq flags to flush_qp()
RDMA/iwcm: Reject connect requests if cmid is not in LISTEN state
Swapna Thete (2):
IB/mad: Add MAD error codes from IBA spec
IB/mad: Return error response for unsupported MADs
Tatyana Nikolova (1):
RDMA/nes: Fixes for sparse endianness warnings
drivers/infiniband/core/iwcm.c | 24 +++--
drivers/infiniband/core/mad.c | 21 ++++
drivers/infiniband/core/sysfs.c | 27 +++---
drivers/infiniband/core/ucma.c | 37 ++++----
drivers/infiniband/hw/amso1100/c2_provider.c | 2 +-
drivers/infiniband/hw/cxgb3/iwch_provider.c | 2 +-
drivers/infiniband/hw/cxgb3/iwch_qp.c | 40 ++++----
drivers/infiniband/hw/cxgb4/cm.c | 2 +-
drivers/infiniband/hw/cxgb4/provider.c | 2 +-
drivers/infiniband/hw/ehca/ehca_hca.c | 2 +-
drivers/infiniband/hw/ehca/ehca_irq.c | 3 +-
drivers/infiniband/hw/ehca/ehca_mrmw.c | 2 +-
drivers/infiniband/hw/mlx4/cq.c | 6 +-
drivers/infiniband/hw/mlx4/main.c | 130 +++++++++++++------------
drivers/infiniband/hw/mlx4/qp.c | 1 +
drivers/infiniband/hw/mthca/mthca_cq.c | 3 +-
drivers/infiniband/hw/nes/nes_cm.c | 39 +++++----
drivers/infiniband/hw/nes/nes_verbs.c | 2 +-
drivers/infiniband/hw/qib/qib.h | 10 ++-
drivers/infiniband/hw/qib/qib_iba7322.c | 107 +++++++++++++++------
drivers/infiniband/hw/qib/qib_mad.c | 4 +-
drivers/infiniband/hw/qib/qib_pcie.c | 21 ++++-
drivers/infiniband/hw/qib/qib_rc.c | 1 -
drivers/infiniband/hw/qib/qib_uc.c | 1 -
drivers/infiniband/ulp/ipoib/ipoib_ib.c | 3 +-
drivers/infiniband/ulp/iser/iscsi_iser.c | 18 +---
drivers/infiniband/ulp/iser/iscsi_iser.h | 1 +
drivers/infiniband/ulp/iser/iser_initiator.c | 42 ++++-----
drivers/infiniband/ulp/iser/iser_verbs.c | 12 +++
drivers/infiniband/ulp/srp/ib_srp.c | 103 +++++++++-----------
drivers/infiniband/ulp/srpt/ib_srpt.c | 2 +-
drivers/net/ethernet/mellanox/mlx4/eq.c | 32 ++++++-
drivers/net/ethernet/mellanox/mlx4/main.c | 126 +++++++++++++++++++++++--
drivers/net/ethernet/mellanox/mlx4/mlx4.h | 9 ++-
drivers/net/ethernet/mellanox/mlx4/mr.c | 3 +
drivers/net/ethernet/mellanox/mlx4/port.c | 68 +++++---------
drivers/net/ethernet/mellanox/mlx4/profile.c | 19 ++++
include/linux/mlx4/device.h | 12 ++-
include/rdma/ib_mad.h | 9 ++
include/rdma/ib_verbs.h | 11 ++-
40 files changed, 607 insertions(+), 352 deletions(-)
^ permalink raw reply [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
@ 2012-02-25 2:32 Roland Dreier
0 siblings, 0 replies; 223+ messages in thread
From: Roland Dreier @ 2012-02-25 2:32 UTC (permalink / raw)
To: Linus Torvalds; +Cc: linux-rdma, linux-kernel
Hi Linus,
Please pull from
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git rdma-for-linus
----------------------------------------------------------------
One InfiniBand/RDMA regression fix for 3.3:
- mlx4 SR-IOV changes added static exported functions, which doesn't
build on powerpc at least. Fix from Doug Ledford for this.
----------------------------------------------------------------
Doug Ledford (1):
mlx4_core: Exported functions can't be static
drivers/net/ethernet/mellanox/mlx4/fw.c | 2 +-
drivers/net/ethernet/mellanox/mlx4/mr.c | 12 ++++++------
2 files changed, 7 insertions(+), 7 deletions(-)
^ permalink raw reply [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
@ 2012-02-07 17:34 Roland Dreier
0 siblings, 0 replies; 223+ messages in thread
From: Roland Dreier @ 2012-02-07 17:34 UTC (permalink / raw)
To: Linus Torvalds; +Cc: linux-rdma, target-devel, linux-kernel
Hi Linus,
Please pull from
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git ib-srpt-fixes
This will get a few small cleanups and fixes for the srpt fabric
driver. The driver is new for 3.3 so it makes sense to get this in
before the first release.
----------------------------------------------------------------
Cleanups and error path fixes for the new SRP (SCSI RDMA protocol) target.
----------------------------------------------------------------
Dan Carpenter (1):
IB/srpt: Fix ERR_PTR() vs. NULL checking confusion
Jesper Juhl (2):
IB/srpt: Remove unneeded <linux/version.h> include
IB/srpt: Don't return freed pointer from srpt_alloc_ioctx_ring()
Roland Dreier (2):
IB/srpt: Use DEFINE_SPINLOCK()/LIST_HEAD()
IB/srpt: Use ARRAY_SIZE() instead of open-coding
drivers/infiniband/ulp/srpt/ib_srpt.c | 17 +++++++----------
drivers/infiniband/ulp/srpt/ib_srpt.h | 1 -
2 files changed, 7 insertions(+), 11 deletions(-)
^ permalink raw reply [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
@ 2012-02-01 6:36 Roland Dreier
0 siblings, 0 replies; 223+ messages in thread
From: Roland Dreier @ 2012-02-01 6:36 UTC (permalink / raw)
To: Linus Torvalds; +Cc: linux-rdma, linux-kernel
Hi Linus,
Please pull from
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git rdma-for-linus
----------------------------------------------------------------
InfiniBand/RDMA fixes for 3.3:
- Fix a crash due to a regression (uninitialized refcnt) introduced in
3.2 with XRC support.
- Close race in how ucma reports events when connect fails.
- Process vendor-specific MADs in mlx4 so that eg FDR-10 data rate works.
- Fix regression in qib caused by over-aggressive PCIe tuning.
- Other small fixes for hardware drivers (ipath, nes, qib).
----------------------------------------------------------------
Bernd Schubert (1):
RDMA/core: Fix kernel panic by always initializing qp->usecnt
Dan Carpenter (1):
IB/ipath: Calling PTR_ERR() on right variable in create_file()
Jack Morgenstein (1):
IB/mlx4: pass SMP vendor-specific attribute MADs to firmware
Julia Lawall (1):
IB/qib: Use GFP_ATOMIC when locks are held
Mike Marciniszyn (1):
IB/qib: Roll back PCIe tuning change
Roland Dreier (2):
RDMA/nes: Add missing rcu_read_unlock() in nes_addr_resolve_neigh()
Merge branches 'cma', 'ipath', 'misc', 'mlx4', 'nes' and 'qib' into for-next
Sean Hefty (1):
RDMA/ucma: Discard all events for new connections until accepted
Tatyana Nikolova (4):
RDMA/nes: Fix for sending MPA reject frame
RDMA/nes: Fix fast memory registration length
RDMA/nes: Fix fast memory registration opcode
RDMA/nes: Copyright update
drivers/infiniband/core/ucma.c | 5 ++++-
drivers/infiniband/core/uverbs_cmd.c | 1 +
drivers/infiniband/core/verbs.c | 2 +-
drivers/infiniband/hw/ipath/ipath_fs.c | 2 +-
drivers/infiniband/hw/mlx4/mad.c | 7 ++-----
drivers/infiniband/hw/nes/nes.c | 2 +-
drivers/infiniband/hw/nes/nes.h | 2 +-
drivers/infiniband/hw/nes/nes_cm.c | 10 +++++++---
drivers/infiniband/hw/nes/nes_cm.h | 2 +-
drivers/infiniband/hw/nes/nes_context.h | 2 +-
drivers/infiniband/hw/nes/nes_hw.c | 2 +-
drivers/infiniband/hw/nes/nes_hw.h | 2 +-
drivers/infiniband/hw/nes/nes_mgt.c | 2 +-
drivers/infiniband/hw/nes/nes_mgt.h | 2 +-
drivers/infiniband/hw/nes/nes_nic.c | 2 +-
drivers/infiniband/hw/nes/nes_user.h | 2 +-
drivers/infiniband/hw/nes/nes_utils.c | 2 +-
drivers/infiniband/hw/nes/nes_verbs.c | 6 ++++--
drivers/infiniband/hw/nes/nes_verbs.h | 2 +-
drivers/infiniband/hw/qib/qib_iba6120.c | 2 +-
drivers/infiniband/hw/qib/qib_pcie.c | 2 +-
21 files changed, 34 insertions(+), 27 deletions(-)
^ permalink raw reply [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
@ 2012-01-06 17:38 Roland Dreier
0 siblings, 0 replies; 223+ messages in thread
From: Roland Dreier @ 2012-01-06 17:38 UTC (permalink / raw)
To: Linus Torvalds; +Cc: linux-kernel, linux-rdma
Hi Linus,
[Trying the signed tag thing for the first time here]
Please pull from
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git infiniband-for-linus
This will get my small batch of stuff for 3.3:
- Fix for userspace-provokable multicast membership list corruption
- Fix for CM protocol message layout
- Fixes and cleanups for qib hardware driver
- Fixes and cleanup for nes hardware driver
- Fix for mlx4 handling of Ethernet priority bits
- Fix for bugs and warnings found by sparse in core code
Eli Cohen (2):
IB/uverbs: Protect QP multicast list
IB/cm: Fix layout of APR message
Mike Marciniszyn (4):
IB/qib: Fix style issues
IB/qib: Eliminate 64-bit jiffies use
IB/qib: Optimize locking for get_txreq()
IB/qib: Default some module parameters optimally
Or Gerlitz (1):
IB/mlx4: Fix SL to 802.1Q priority-bits mapping for IBoE
Ram Vepa (1):
IB/qib: Fix a possible data corruption when receiving packets
Roland Dreier (1):
Merge branches 'cma', 'misc', 'mlx4', 'nes', 'qib' and 'uverbs' into for-next
Sean Hefty (2):
RDMA/cma: Fix endianness bugs
rdma/core: Fix sparse warnings
Tatyana Nikolova (3):
RDMA/nes: Change MDIO bus clock to 2.5MHz
RDMA/nes: Make unnecessarily global nes_set_pau() static
RDMA/nes: Fix terminate during AE
drivers/infiniband/core/cm_msgs.h | 1 +
drivers/infiniband/core/cma.c | 6 ++--
drivers/infiniband/core/ucm.c | 3 --
drivers/infiniband/core/uverbs_cmd.c | 27 ++++++++++++++-----
drivers/infiniband/hw/mlx4/ah.c | 2 +-
drivers/infiniband/hw/mlx4/cq.c | 6 +++-
drivers/infiniband/hw/mlx4/qp.c | 4 +-
drivers/infiniband/hw/nes/nes_cm.c | 1 +
drivers/infiniband/hw/nes/nes_hw.c | 6 +---
drivers/infiniband/hw/nes/nes_utils.c | 2 +-
drivers/infiniband/hw/qib/qib_7220.h | 2 +-
drivers/infiniband/hw/qib/qib_driver.c | 3 +-
drivers/infiniband/hw/qib/qib_iba6120.c | 4 ++-
drivers/infiniband/hw/qib/qib_iba7220.c | 10 ++++---
drivers/infiniband/hw/qib/qib_iba7322.c | 40 ++++++++++++++--------------
drivers/infiniband/hw/qib/qib_init.c | 2 +-
drivers/infiniband/hw/qib/qib_pcie.c | 4 +-
drivers/infiniband/hw/qib/qib_qsfp.h | 2 +-
drivers/infiniband/hw/qib/qib_sd7220.c | 2 +-
drivers/infiniband/hw/qib/qib_sysfs.c | 2 +-
drivers/infiniband/hw/qib/qib_verbs.c | 43 +++++++++++++++++++++++-------
include/rdma/ib_addr.h | 2 +-
include/rdma/ib_cm.h | 3 ++
23 files changed, 109 insertions(+), 68 deletions(-)
^ permalink raw reply [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
@ 2011-12-19 17:39 Roland Dreier
0 siblings, 0 replies; 223+ messages in thread
From: Roland Dreier @ 2011-12-19 17:39 UTC (permalink / raw)
To: Linus Torvalds; +Cc: linux-rdma, linux-kernel
Hi Linus,
Please pull from
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This will get a few last fixes:
- Fix for crash on mlx4 module unload
- Fix for crash on too-long private data in RDMA CM
- Trivial fix for context counting bug in qib
Thanks!
Mike Marciniszyn (1):
IB/qib: Correct sense on freectxts increment and decrement
Roland Dreier (2):
IB/mlx4: Fix shutdown crash accessing a non-existent bitmap
Merge branches 'cma', 'mlx4' and 'qib' into for-next
Sean Hefty (1):
RDMA/cma: Verify private data length
drivers/infiniband/core/cma.c | 6 ++++++
drivers/infiniband/hw/mlx4/main.c | 6 ++++--
drivers/infiniband/hw/qib/qib_file_ops.c | 4 ++--
3 files changed, 12 insertions(+), 4 deletions(-)
^ permalink raw reply [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
@ 2011-11-30 17:50 Roland Dreier
0 siblings, 0 replies; 223+ messages in thread
From: Roland Dreier @ 2011-11-30 17:50 UTC (permalink / raw)
To: Linus Torvalds; +Cc: linux-kernel, linux-rdma
Hi Linus,
Please pull from
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This will get a few fixes:
- Fixes for missing RCU read locking due to net neighbour changes
- Fix for IPoIB softlockup in error path
- Low-level driver fixes to cxgb4 and qib
Thanks!
Eric Dumazet (1):
IB: Fix RCU lockdep splats
Jonathan Lallinger (1):
RDMA/cxgb4: Fix iw_cxgb4 count_rcqes() logic
Kumar Sanghvi (1):
RDMA/cxgb4: Fix retry with MPAv1 logic for MPAv2
Mike Marciniszyn (3):
IB/qib: Don't use schedule_work()
IB/qib: Fix over-scheduling of QSFP work
IB/ipoib: Prevent hung task or softlockup processing multicast response
Roland Dreier (1):
Merge branches 'cxgb4', 'ipoib', 'misc' and 'qib' into for-next
drivers/infiniband/core/addr.c | 9 ++++++---
drivers/infiniband/hw/cxgb3/iwch_cm.c | 4 ++++
drivers/infiniband/hw/cxgb4/cm.c | 10 +++++++++-
drivers/infiniband/hw/cxgb4/cq.c | 2 +-
drivers/infiniband/hw/nes/nes_cm.c | 6 ++++--
drivers/infiniband/hw/qib/qib_iba7322.c | 18 +++++++++---------
drivers/infiniband/hw/qib/qib_qsfp.c | 12 ------------
drivers/infiniband/ulp/ipoib/ipoib_ib.c | 13 ++++++++-----
drivers/infiniband/ulp/ipoib/ipoib_main.c | 20 ++++++++++++--------
drivers/infiniband/ulp/ipoib/ipoib_multicast.c | 13 +++++++++----
10 files changed, 62 insertions(+), 45 deletions(-)
^ permalink raw reply [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
@ 2011-11-04 18:26 Roland Dreier
0 siblings, 0 replies; 223+ messages in thread
From: Roland Dreier @ 2011-11-04 18:26 UTC (permalink / raw)
To: Linus Torvalds; +Cc: linux-kernel, linux-rdma
Hi Linus,
Please pull from
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This will get a few more 3.2 merge window changes:
- a panic fix for the qib hardware driver
- a couple of cleanups to iSER's use of the DMA mapping API
- a fix to mthca that reduces memory use a bit
Mike Marciniszyn (1):
IB/qib: Fix panic in RC error flushing logic
Or Gerlitz (2):
IB/iser: Use separate buffers for the login request/response
IB/iser: DMA unmap TX bufs used for iSCSI/iSER headers
Roland Dreier (2):
IB/mthca: Fix buddy->num_free allocation size
Merge branches 'iser', 'mthca' and 'qib' into for-next
drivers/infiniband/hw/mthca/mthca_mr.c | 2 +-
drivers/infiniband/hw/qib/qib_rc.c | 10 ++-----
drivers/infiniband/ulp/iser/iscsi_iser.c | 11 ++++++--
drivers/infiniband/ulp/iser/iscsi_iser.h | 4 +-
drivers/infiniband/ulp/iser/iser_initiator.c | 31 ++++++++++++++++++-----
drivers/infiniband/ulp/iser/iser_verbs.c | 33 ++++++++++++++++++++-----
6 files changed, 64 insertions(+), 27 deletions(-)
^ permalink raw reply [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
@ 2011-11-01 16:54 Roland Dreier
0 siblings, 0 replies; 223+ messages in thread
From: Roland Dreier @ 2011-11-01 16:54 UTC (permalink / raw)
To: Linus Torvalds; +Cc: linux-kernel, linux-rdma
From: Roland Dreier <roland@kernel.org>
Hi Linus,
Please pull from
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This will get the main batch of changes for 3.2. One note: my tree is
based on 3.1-rc9, and I have some changes to drivers/net/mlx4, but in
your tree that driver has moved to drivers/net/ethernet/mellanox/mlx4.
With a high enough merge.renamelimit, git handles this merge fine in
my test, so I'm assuming you would want to do the merge yourself.
Anyway, the main things here are:
- Finally we get XRC support upstream, thanks to Sean Hefty's
cleaning up of the series.
- MPAv2 support for iWARP devices, which makes negotiating limits
during connection much cleaner.
- Support for reporting new higher link speeds (FDR, FDR-10, EDR).
- Optimizations to the qib driver.
- Various fixes and cleanups, mostly to low-level hardware drivers.
Andy Shevchenko (1):
RDMA/amso1100: Use '%pM' format option to print MAC
Dotan Barak (2):
mlx4_core: Use the right function to free eq->page_list entries
IPoIB: Use the right function to do DMA unmap pages
Eli Cohen (1):
mlx4_core: Fix buddy->num_free allocation size
Faisal Latif (3):
RDMA/nes: Fix terminate connection
RDMA/nes: Print IP address for critcal errors
RDMA/nes: Support for Packed And Unaligned fpdus
Hefty, Sean (4):
RDMA/cma: Fix crash in cma_req_handler
RDMA/cma: Check for NULL conn_param in rdma_accept
IB/mad: Verify mgmt class in received MADs
RDMA/ucm: Removed checks for unsigned value < 0
Jonathan Lallinger (1):
RDMA/cxgb4: Use correct QID in insert_recv_cqe()
Julia Lawall (1):
RDMA/nes: Add missing calls to ib_umem_release()
Kumar Sanghvi (6):
RDMA/iwcm: Propagate ird/ord values upwards
RDMA/{amso1100,cxgb3}: Minimal MPAv2 support
RDMA/cxgb4: Add support for MPAv2 Enhanced RDMA Negotiation
RDMA/cxgb4: Make sure flush CQ entries are collected on connection close
RDMA/cxgb3: Serialize calls to CQ's comp_handler
RDMA/cxgb4: Serialize calls to CQ's comp_handler
Marcel Apfelbaum (4):
IB: Add new InfiniBand link speeds
IPoIB: Handle extended rates in debugfs
mlx4_core: Add extended port capabilities support
IB/mlx4: Configure extended active speeds
Mike Marciniszyn (8):
IB/qib: Correct nfreectxts for multiple HCAs
IB/qib: Optimize RC/UC code by IB operation
IB/qib: Decode path MTU optimization
IB/qib: Eliminate divide/mod in converting idx to egr buf pointer
IB/qib: Use RCU for qpn lookup
IB/qib: Precompute timeout jiffies to optimize latency
IB/qib: Remove s_lock around header validation
IB/qib: Clean up checkpatch issue
Mitko Haralanov (2):
IB/qib: Hold links until tuning data is available
IB/qib: Fix issue with link states and QSFP cables
Or Gerlitz (3):
IB/mlx4: Enable 4K mtu for IBoE
IB/mlx4: Don't set VLAN in IBoE WQEs' control segment
mlx4_core: Deprecate log_num_vlan module param
Randy Dunlap (1):
IB/ipath: Add missing <linux/stat.h> in ipath_chip_init.c
Roland Dreier (2):
mlx4_core: Clean up error flow in mlx4_register_mac()
Merge branches 'amso1100', 'cma', 'cxgb3', 'cxgb4', 'fdr', 'ipath', 'ipoib', 'misc', 'mlx4', 'misc', 'nes', 'qib' and 'xrc' into for-next
Sean Hefty (20):
RDMA/core: Add XRC domain support
RDMA/core: Add SRQ type field
RDMA/core: Add XRC SRQ type
RDMA/core: Add XRC QPs
RDMA/verbs: Cleanup XRC TGT QPs when destroying XRCD
RDMA/uverbs: Export XRC domains to user space
RDMA/uverbs: Export XRC SRQs to user space
RDMA/uverbs: Export XRC INI QPs to userspace
RDMA/uverbs: Export XRC TGT QPs to user space
IB/cm: Update protocol to support XRC
IB/cm: Update XRC support based on XRC annex errata
RDMA/cm: Define new RDMA port space specific to IB
RDMA/ucm: Allow user to specify QP type when creating id
RDMA/cma: Support XRC QPs
IB/cm: Do not automatically disconnect XRC TGT QPs
IB/mlx4: Add support for XRC domains
IB/mlx4: Add support for XRC SRQs
IB/mlx4: Add support for XRC QPs
RDMA/core: Export ib_open_qp() to share XRC TGT QPs
RDMA/uverbs: Export ib_open_qp() capability to user space
Steve Wise (1):
RDMA/cxgb4: Fail RDMA initialization for unsupported cards
Tatyana Nikolova (1):
RDMA/nes: Add support for MPAv2 Enhanced RDMA Negotiation
Tom Tucker (1):
RDMA/cxgb4: Mark QP in error before disabling the queue in firmware
Yong Zhang (1):
IB/ehca: Remove IRQF_DISABLED, since it's a no-op
drivers/infiniband/core/cm.c | 63 +-
drivers/infiniband/core/cm_msgs.h | 32 +-
drivers/infiniband/core/cma.c | 67 +-
drivers/infiniband/core/mad.c | 3 +
drivers/infiniband/core/sysfs.c | 26 +-
drivers/infiniband/core/ucm.c | 2 +-
drivers/infiniband/core/ucma.c | 7 +-
drivers/infiniband/core/user_mad.c | 5 +-
drivers/infiniband/core/uverbs.h | 18 +
drivers/infiniband/core/uverbs_cmd.c | 703 ++++++++++++++--
drivers/infiniband/core/uverbs_main.c | 30 +-
drivers/infiniband/core/verbs.c | 376 ++++++++-
drivers/infiniband/hw/amso1100/c2_ae.c | 5 +
drivers/infiniband/hw/amso1100/c2_intr.c | 5 +
drivers/infiniband/hw/amso1100/c2_provider.c | 5 +-
drivers/infiniband/hw/cxgb3/iwch_cm.c | 10 +
drivers/infiniband/hw/cxgb3/iwch_ev.c | 6 +
drivers/infiniband/hw/cxgb3/iwch_provider.c | 1 +
drivers/infiniband/hw/cxgb3/iwch_provider.h | 1 +
drivers/infiniband/hw/cxgb3/iwch_qp.c | 14 +-
drivers/infiniband/hw/cxgb4/cm.c | 469 +++++++++-
drivers/infiniband/hw/cxgb4/cq.c | 3 +-
drivers/infiniband/hw/cxgb4/device.c | 41 +-
drivers/infiniband/hw/cxgb4/ev.c | 10 +-
drivers/infiniband/hw/cxgb4/iw_cxgb4.h | 23 +-
drivers/infiniband/hw/cxgb4/qp.c | 39 +-
drivers/infiniband/hw/ehca/ehca_eq.c | 4 +-
drivers/infiniband/hw/ehca/ehca_qp.c | 3 +
drivers/infiniband/hw/ipath/ipath_init_chip.c | 1 +
drivers/infiniband/hw/ipath/ipath_srq.c | 5 +
drivers/infiniband/hw/mlx4/main.c | 106 +++-
drivers/infiniband/hw/mlx4/mlx4_ib.h | 13 +
drivers/infiniband/hw/mlx4/qp.c | 131 ++-
drivers/infiniband/hw/mlx4/srq.c | 10 +-
drivers/infiniband/hw/mthca/mthca_provider.c | 3 +
drivers/infiniband/hw/nes/Makefile | 2 +-
drivers/infiniband/hw/nes/nes.c | 8 +-
drivers/infiniband/hw/nes/nes.h | 17 +-
drivers/infiniband/hw/nes/nes_cm.c | 1121 ++++++++++++++----------
drivers/infiniband/hw/nes/nes_cm.h | 75 ++-
drivers/infiniband/hw/nes/nes_hw.c | 99 ++-
drivers/infiniband/hw/nes/nes_hw.h | 35 +-
drivers/infiniband/hw/nes/nes_mgt.c | 1162 +++++++++++++++++++++++++
drivers/infiniband/hw/nes/nes_mgt.h | 97 ++
drivers/infiniband/hw/nes/nes_nic.c | 4 +
drivers/infiniband/hw/nes/nes_utils.c | 53 +-
drivers/infiniband/hw/nes/nes_verbs.c | 8 +-
drivers/infiniband/hw/nes/nes_verbs.h | 12 +-
drivers/infiniband/hw/qib/qib.h | 15 +-
drivers/infiniband/hw/qib/qib_driver.c | 20 +-
drivers/infiniband/hw/qib/qib_file_ops.c | 2 +
drivers/infiniband/hw/qib/qib_iba6120.c | 2 +
drivers/infiniband/hw/qib/qib_iba7220.c | 2 +
drivers/infiniband/hw/qib/qib_iba7322.c | 135 ++-
drivers/infiniband/hw/qib/qib_init.c | 8 +-
drivers/infiniband/hw/qib/qib_qp.c | 90 ++-
drivers/infiniband/hw/qib/qib_qsfp.c | 25 +-
drivers/infiniband/hw/qib/qib_qsfp.h | 3 +
drivers/infiniband/hw/qib/qib_rc.c | 36 +-
drivers/infiniband/hw/qib/qib_ruc.c | 7 +-
drivers/infiniband/hw/qib/qib_srq.c | 5 +
drivers/infiniband/hw/qib/qib_sysfs.c | 3 +-
drivers/infiniband/hw/qib/qib_uc.c | 25 +-
drivers/infiniband/hw/qib/qib_verbs.c | 36 +-
drivers/infiniband/hw/qib/qib_verbs.h | 5 +-
drivers/infiniband/ulp/ipoib/ipoib_cm.c | 5 +-
drivers/infiniband/ulp/ipoib/ipoib_fs.c | 7 +-
drivers/net/mlx4/eq.c | 2 +-
drivers/net/mlx4/fw.c | 6 +
drivers/net/mlx4/fw.h | 2 +
drivers/net/mlx4/main.c | 36 +-
drivers/net/mlx4/mlx4.h | 4 +
drivers/net/mlx4/mr.c | 2 +-
drivers/net/mlx4/pd.c | 30 +
drivers/net/mlx4/port.c | 72 ++-
drivers/net/mlx4/qp.c | 3 +
drivers/net/mlx4/srq.c | 20 +-
include/linux/mlx4/device.h | 16 +-
include/linux/mlx4/qp.h | 3 +-
include/rdma/ib_user_verbs.h | 48 +-
include/rdma/ib_verbs.h | 106 +++-
include/rdma/iw_cm.h | 4 +-
include/rdma/rdma_cm.h | 1 +
include/rdma/rdma_user_cm.h | 3 +-
84 files changed, 4738 insertions(+), 984 deletions(-)
create mode 100644 drivers/infiniband/hw/nes/nes_mgt.c
create mode 100644 drivers/infiniband/hw/nes/nes_mgt.h
^ permalink raw reply [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
@ 2011-08-18 15:54 Roland Dreier
0 siblings, 0 replies; 223+ messages in thread
From: Roland Dreier @ 2011-08-18 15:54 UTC (permalink / raw)
To: Linus Torvalds; +Cc: linux-rdma, linux-kernel
Hi Linus,
Please pull from
master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This tree is also available from kernel.org mirrors at:
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This will get a few fixes:
- Fix for crash on boot in IPoIB from Bernd Schubert
- Two iSER bugs from Or Gerlitz
Bernd Schubert (1):
IPoIB: Fix possible NULL dereference in ipoib_start_xmit()
Or Gerlitz (2):
IBiser: Fix wrong mask when sizeof (dma_addr_t) > sizeof (unsigned long)
IB/iser: Support iSCSI PDU padding
Roland Dreier (1):
Merge branches 'ipoib' and 'iser' into for-next
drivers/infiniband/ulp/ipoib/ipoib_main.c | 8 +++++---
drivers/infiniband/ulp/iser/iscsi_iser.c | 10 +++++++---
drivers/infiniband/ulp/iser/iscsi_iser.h | 2 +-
drivers/infiniband/ulp/iser/iser_initiator.c | 2 +-
4 files changed, 14 insertions(+), 8 deletions(-)
^ permalink raw reply [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
@ 2011-07-22 19:08 Roland Dreier
0 siblings, 0 replies; 223+ messages in thread
From: Roland Dreier @ 2011-07-22 19:08 UTC (permalink / raw)
To: Linus Torvalds, Andrew Morton; +Cc: linux-kernel, linux-rdma
Hi Linus,
Congrats on the recent version number bump. Please pull from
master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This tree is also available from kernel.org mirrors at:
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This will get my 3.1 merge window changes:
- Various fixes to the qib hardware driver.
- Improvements to IBoE support, mostly in the mlx4 hardware driver.
- A nice cleanup to the mthca driver from Goldwyn Rodrigues that
actually lets this pull request delete more lines than it adds.
- Various other small fixes.
Bart Van Assche (2):
IB/srp: Avoid duplicate devices from LUN scan
RDMA: Allow for NULL .modify_device() and .modify_port() methods
Dotan Barak (1):
mlx4_core: Bump the driver version to 1.0
Edwin van Vliet (1):
IB/qib: Remove double define
Goldwyn Rodrigues (1):
IB/mthca: Stop returning separate error and status from FW commands
Jack Morgenstein (1):
RDMA/cma: Avoid assigning an IS_ERR value to cm_id pointer in CMA id object
Jon Mason (2):
IB/qib: Remove unnecessary read of PCI_CAP_ID_EXP
IB/mthca: Remove unnecessary read of PCI_CAP_ID_EXP
Manuel Zerpies (1):
RDMA/cxgb4: Use printk_ratelimited() instead of printk_ratelimit()
Mike Marciniszyn (2):
MAINTAINERS: Update ipath/qib (QLogic IB adapter) entries
IB/qib: Defer HCA error events to tasklet
Mitko Haralanov (1):
IB/qib: Update active link width
Moni Shoua (1):
RDMA/cma: Don't allow IPoIB port space for IBoE
Motohiro KOSAKI (2):
IB/qib: Convert old cpumask api into new one
IB/ipath: Convert old cpumask api into new one
Or Gerlitz (9):
IB/core: Add GID change event
IB/mlx4: Generate GID change events in IBoE code
mlx4_core: Extend capability flags to 64 bits
mlx4_core: Read extended capabilities into the flags field
mlx4_core: Fix location of counter index in QP context struct
mlx4_core: Add network flow counters
IB/pma: Add include file for IBA performance counters definitions
IB/mlx4: Use flow counters on IBoE ports
IB/mlx4: Support PMA counters for IBoE
Ram Vepa (2):
IB/qib: Add sysfs interface to read free contexts
IB/qib: Fix potential deadlock with link down interrupt
Roland Dreier (1):
Merge branches 'cma', 'cxgb4', 'ipath', 'misc', 'mlx4', 'mthca', 'qib' and 'srp' into for-next
MAINTAINERS | 11 +-
drivers/infiniband/core/cache.c | 3 +-
drivers/infiniband/core/cma.c | 84 ++++----
drivers/infiniband/core/device.c | 6 +
drivers/infiniband/hw/amso1100/c2_provider.c | 9 -
drivers/infiniband/hw/cxgb3/iwch_provider.c | 8 -
drivers/infiniband/hw/cxgb4/provider.c | 8 -
drivers/infiniband/hw/cxgb4/resource.c | 9 +-
drivers/infiniband/hw/ipath/ipath_file_ops.c | 11 +-
drivers/infiniband/hw/ipath/ipath_mad.c | 198 +++---------------
drivers/infiniband/hw/mlx4/mad.c | 68 +++++++-
drivers/infiniband/hw/mlx4/main.c | 21 ++-
drivers/infiniband/hw/mlx4/mlx4_ib.h | 1 +
drivers/infiniband/hw/mlx4/qp.c | 10 +-
drivers/infiniband/hw/mthca/mthca_cmd.c | 276 ++++++++++++++------------
drivers/infiniband/hw/mthca/mthca_cmd.h | 93 ++++-----
drivers/infiniband/hw/mthca/mthca_cq.c | 15 +--
drivers/infiniband/hw/mthca/mthca_eq.c | 43 +---
drivers/infiniband/hw/mthca/mthca_mad.c | 15 +-
drivers/infiniband/hw/mthca/mthca_main.c | 175 +++++------------
drivers/infiniband/hw/mthca/mthca_mcg.c | 101 +++-------
drivers/infiniband/hw/mthca/mthca_memfree.c | 43 ++---
drivers/infiniband/hw/mthca/mthca_mr.c | 35 +---
drivers/infiniband/hw/mthca/mthca_provider.c | 77 +------
drivers/infiniband/hw/mthca/mthca_qp.c | 49 ++----
drivers/infiniband/hw/mthca/mthca_reset.c | 2 +-
drivers/infiniband/hw/mthca/mthca_srq.c | 33 +---
drivers/infiniband/hw/nes/nes_verbs.c | 11 -
drivers/infiniband/hw/qib/qib.h | 3 +
drivers/infiniband/hw/qib/qib_file_ops.c | 16 +-
drivers/infiniband/hw/qib/qib_iba7220.c | 26 +++-
drivers/infiniband/hw/qib/qib_iba7322.c | 72 +++++--
drivers/infiniband/hw/qib/qib_mad.c | 78 ++++----
drivers/infiniband/hw/qib/qib_mad.h | 143 +-------------
drivers/infiniband/hw/qib/qib_pcie.c | 8 +-
drivers/infiniband/hw/qib/qib_sysfs.c | 14 ++
drivers/infiniband/ulp/srp/ib_srp.c | 2 +
drivers/net/mlx4/en_ethtool.c | 9 +-
drivers/net/mlx4/en_main.c | 3 +-
drivers/net/mlx4/en_netdev.c | 5 +-
drivers/net/mlx4/en_port.c | 6 +-
drivers/net/mlx4/en_selftest.c | 3 +-
drivers/net/mlx4/fw.c | 39 +++--
drivers/net/mlx4/fw.h | 8 +-
drivers/net/mlx4/main.c | 58 +++++-
drivers/net/mlx4/mcg.c | 17 +-
drivers/net/mlx4/mlx4.h | 5 +-
drivers/net/mlx4/port.c | 8 +-
include/linux/mlx4/cmd.h | 3 +
include/linux/mlx4/device.h | 60 ++++--
include/linux/mlx4/qp.h | 8 +-
include/rdma/ib_pma.h | 156 +++++++++++++++
include/rdma/ib_verbs.h | 3 +-
53 files changed, 1006 insertions(+), 1162 deletions(-)
create mode 100644 include/rdma/ib_pma.h
^ permalink raw reply [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
@ 2011-06-21 16:18 Roland Dreier
0 siblings, 0 replies; 223+ messages in thread
From: Roland Dreier @ 2011-06-21 16:18 UTC (permalink / raw)
To: Linus Torvalds, Andrew Morton; +Cc: linux-rdma, linux-kernel
Linus, please pull from
master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This tree is also available from kernel.org mirrors at:
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This will get a few fixes for the cxgb4 and qib hardware device drivers.
Mitko Haralanov (1):
IB/qib: Ensure that LOS and DFE are being turned off
Roland Dreier (1):
Merge branches 'cxgb4' and 'qib' into for-next
Steve Wise (3):
RDMA/cxgb4: Don't exceed hw IQ depth limit for user CQs
RDMA/cxgb4: Don't truncate MR lengths
RDMA/cxgb4: Couple of abort fixes
drivers/infiniband/hw/cxgb4/cm.c | 46 +++++++++++++++++++++++++------
drivers/infiniband/hw/cxgb4/cq.c | 4 +++
drivers/infiniband/hw/cxgb4/mem.c | 2 +-
drivers/infiniband/hw/cxgb4/qp.c | 5 +---
drivers/infiniband/hw/qib/qib_iba7322.c | 25 ++++++++++++-----
drivers/infiniband/hw/qib/qib_intr.c | 6 +++-
6 files changed, 66 insertions(+), 22 deletions(-)
^ permalink raw reply [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
@ 2011-05-26 16:46 Roland Dreier
0 siblings, 0 replies; 223+ messages in thread
From: Roland Dreier @ 2011-05-26 16:46 UTC (permalink / raw)
To: Linus Torvalds; +Cc: linux-rdma, linux-kernel
Linus, please pull from
master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This tree is also available from kernel.org mirrors at:
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This will get the second, main batch of 2.6.40 changes:
- Add netlink-based way to dump active RDMA connections
- Update char devices to use /dev/infiniband/... paths
- Chelsio driver fixes
- Fix for crash on access to QP0 with IBoE devices
- Couple of warning fixes
Ira Weiny (1):
IB/mad: Return EPROTONOSUPPORT when an RDMA device lacks the QP required
Liu Yuan (1):
RDMA/nes: Add a check for strict_strtoul()
Nir Muchtar (4):
RDMA: Add error handling to ib_core_init()
RDMA/cma: Export enum cma_state in <rdma/rdma_cm.h>
RDMA/cma: Add support for netlink statistics export
RDMA/cma: Save PID of ID's owner
Roland Dreier (7):
RDMA: Add netlink infrastructure
RDMA/ucma: Add .nodename/.mode to tell userspace where to create device node
IB/uverbs: Add devnode method to set path/mode
IB: Add devnode methods to cm_class and umad_class
IB/srp: Fix integer -> pointer cast warnings
RDMA: Update exported headers list
Merge branches 'cma', 'cxgb3', 'cxgb4', 'misc', 'nes', 'netlink', 'srp' and 'uverbs' into for-next
Sean Hefty (1):
RDMA/cma: Pass QP type into rdma_create_id()
Steve Wise (2):
RDMA/cxgb4: Use completion objects for event blocking
RDMA/cxgb3: Don't post zero-byte read if endpoint is going away
drivers/infiniband/Kconfig | 1 +
drivers/infiniband/core/Makefile | 2 +-
drivers/infiniband/core/cm.c | 8 +
drivers/infiniband/core/cma.c | 308 +++++++++++++++++----------
drivers/infiniband/core/device.c | 25 ++-
drivers/infiniband/core/mad.c | 7 +
drivers/infiniband/core/netlink.c | 190 +++++++++++++++++
drivers/infiniband/core/ucma.c | 35 +++-
drivers/infiniband/core/user_mad.c | 7 +
drivers/infiniband/core/uverbs_main.c | 8 +
drivers/infiniband/hw/cxgb3/iwch_cm.c | 26 ++-
drivers/infiniband/hw/cxgb3/iwch_provider.h | 2 +-
drivers/infiniband/hw/cxgb3/iwch_qp.c | 6 +-
drivers/infiniband/hw/cxgb4/iw_cxgb4.h | 18 +--
drivers/infiniband/hw/nes/nes.c | 4 +-
drivers/infiniband/hw/qib/Kconfig | 2 +-
drivers/infiniband/ulp/iser/iser_verbs.c | 2 +-
drivers/infiniband/ulp/srp/ib_srp.c | 4 +-
include/linux/netlink.h | 1 +
include/rdma/Kbuild | 5 +
include/rdma/ib_user_cm.h | 1 +
include/rdma/rdma_cm.h | 19 ++-
include/rdma/rdma_netlink.h | 92 ++++++++
net/9p/trans_rdma.c | 3 +-
net/rds/ib.c | 2 +-
net/rds/ib_cm.c | 2 +-
net/rds/iw.c | 2 +-
net/rds/iw_cm.c | 2 +-
net/rds/rdma_transport.c | 3 +-
net/sunrpc/xprtrdma/svc_rdma_transport.c | 3 +-
net/sunrpc/xprtrdma/verbs.c | 2 +-
31 files changed, 633 insertions(+), 159 deletions(-)
create mode 100644 drivers/infiniband/core/netlink.c
create mode 100644 include/rdma/rdma_netlink.h
^ permalink raw reply [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
@ 2011-05-19 18:17 Roland Dreier
0 siblings, 0 replies; 223+ messages in thread
From: Roland Dreier @ 2011-05-19 18:17 UTC (permalink / raw)
To: Linus Torvalds; +Cc: linux-kernel, linux-rdma
Linus, please pull from
master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This tree is also available from kernel.org mirrors at:
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This will get the first batch of 2.6.40 changes: mostly fixes to the
cxgb4 and qib low-level drivers, plus a couple of RDMA CM fixes.
Hefty, Sean (2):
RDMA/cma: Fix handling of IPv6 addressing in cma_use_port
RDMA/cma: Add an ID_REUSEADDR option
Mitko Haralanov (1):
IB/qib: Prevent driver hang with unprogrammed boards
Roel Kluin (1):
RDMA/cxgb4: Fix missing parentheses
Roland Dreier (2):
RDMA/iwcm: Get rid of enum iw_cm_event_status
Merge branches 'cma', 'cxgb4' and 'qib' into for-next
Sergei Shtylyov (2):
IB/ipath: Use pci_dev->revision, again
IB/qib: Use pci_dev->revision
Steve Wise (4):
RDMA/cxgb4: Don't change QP state outside EP lock
RDMA/cxgb4: Initialization errors can cause crash
RDMA/cxgb4: Reset wait condition atomically
RDMA/cxgb4: EEH errors can hang the driver
drivers/infiniband/core/cma.c | 207 +++++++++++++++++++---------
drivers/infiniband/core/iwcm.c | 2 +-
drivers/infiniband/core/ucma.c | 7 +
drivers/infiniband/hw/cxgb4/cm.c | 46 ++-----
drivers/infiniband/hw/cxgb4/device.c | 115 +++++++++-------
drivers/infiniband/hw/cxgb4/iw_cxgb4.h | 36 ++++--
drivers/infiniband/hw/cxgb4/provider.c | 2 -
drivers/infiniband/hw/cxgb4/qp.c | 3 +-
drivers/infiniband/hw/ipath/ipath_driver.c | 9 +-
drivers/infiniband/hw/nes/nes_cm.c | 16 +-
drivers/infiniband/hw/nes/nes_verbs.c | 2 +-
drivers/infiniband/hw/qib/qib_iba7322.c | 3 +-
drivers/infiniband/hw/qib/qib_pcie.c | 5 +-
include/rdma/iw_cm.h | 11 +--
include/rdma/rdma_cm.h | 10 ++
include/rdma/rdma_user_cm.h | 5 +-
16 files changed, 278 insertions(+), 201 deletions(-)
^ permalink raw reply [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
@ 2011-03-25 19:07 Roland Dreier
0 siblings, 0 replies; 223+ messages in thread
From: Roland Dreier @ 2011-03-25 19:07 UTC (permalink / raw)
To: Linus Torvalds, Andrew Morton; +Cc: linux-kernel, linux-rdma
Linus, please pull from
master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This tree is also available from kernel.org mirrors at:
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This will get one fix for a bug introduced into the nes driver through
the net tree:
Roland Dreier (1):
RDMA/nes: Fix test of uninitialized netdev
drivers/infiniband/hw/nes/nes_cm.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
^ permalink raw reply [flat|nested] 223+ messages in thread
* Re: [GIT PULL] please pull infiniband.git
2011-03-23 17:47 Roland Dreier
@ 2011-03-23 18:15 ` Roland Dreier
0 siblings, 0 replies; 223+ messages in thread
From: Roland Dreier @ 2011-03-23 18:15 UTC (permalink / raw)
To: Linus Torvalds, Andrew Morton; +Cc: linux-rdma, linux-kernel
On Wed, Mar 23, 2011 at 10:47 AM, Roland Dreier <roland@kernel.org> wrote:
> drivers/infiniband/core/addr.c | 2 +-
> drivers/infiniband/core/agent.c | 3 +-
> drivers/infiniband/hw/mthca/mthca_main.c | 3 +
> drivers/infiniband/hw/nes/nes.c | 2 +-
> drivers/infiniband/ulp/srp/ib_srp.c | 725 ++++++++++++++++++++----------
> drivers/infiniband/ulp/srp/ib_srp.h | 38 ++-
> 6 files changed, 521 insertions(+), 252 deletions(-)
Somehow I missed a hunk of
IB: Increase DMA max_segment_size on Mellanox hardware
diffstat now should look like
drivers/infiniband/core/addr.c | 2 +-
drivers/infiniband/core/agent.c | 3 +-
drivers/infiniband/hw/mthca/mthca_main.c | 3 +
drivers/infiniband/hw/nes/nes.c | 2 +-
drivers/infiniband/ulp/srp/ib_srp.c | 725 ++++++++++++++++++++----------
drivers/infiniband/ulp/srp/ib_srp.h | 38 ++-
drivers/net/mlx4/main.c | 3 +
7 files changed, 524 insertions(+), 252 deletions(-)
^ permalink raw reply [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
@ 2011-03-23 17:47 Roland Dreier
2011-03-23 18:15 ` Roland Dreier
0 siblings, 1 reply; 223+ messages in thread
From: Roland Dreier @ 2011-03-23 17:47 UTC (permalink / raw)
To: Linus Torvalds, Andrew Morton; +Cc: linux-rdma, linux-kernel
Linus, please pull from
master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This tree is also available from kernel.org mirrors at:
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This will get the second batch of 2.6.39 changes:
- Dave Dillow's SRP initiator changes
- Fix to uninitialized return value introduced by net tree merge
- A couple of other minor cleanups
David Dillow (7):
IB/srp: always avoid non-zero offsets into an FMR
IB/srp: move IB CM setup completion into its own function
IB/srp: allow sg_tablesize to be set for each target
IB/srp: rework mapping engine to use multiple FMR entries
IB/srp: add support for indirect tables that don't fit in SRP_CMD
IB/srp: try to use larger FMR sizes to cover our mappings
IB: Increase DMA max_segment_size on Mellanox hardware
Michael Heinz (1):
IB/mad: Improve an error message so error code is included
Roland Dreier (3):
RDMA/nes: Don't print success message at level KERN_ERR
Merge branch 'external-indirect' of git://git.kernel.org/.../dad/srp-initiator into srp
Merge branches 'misc', 'nes' and 'srp' into for-next
Sean Hefty (1):
RDMA/addr: Fix return of uninitialized ret value
drivers/infiniband/core/addr.c | 2 +-
drivers/infiniband/core/agent.c | 3 +-
drivers/infiniband/hw/mthca/mthca_main.c | 3 +
drivers/infiniband/hw/nes/nes.c | 2 +-
drivers/infiniband/ulp/srp/ib_srp.c | 725 ++++++++++++++++++++----------
drivers/infiniband/ulp/srp/ib_srp.h | 38 ++-
6 files changed, 521 insertions(+), 252 deletions(-)
^ permalink raw reply [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
@ 2011-03-15 18:01 Roland Dreier
0 siblings, 0 replies; 223+ messages in thread
From: Roland Dreier @ 2011-03-15 18:01 UTC (permalink / raw)
To: Linus Torvalds, Andrew Morton; +Cc: linux-kernel, linux-rdma
Linus, please pull from
master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This tree is also available from kernel.org mirrors at:
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This will get the first batch of 2.6.39 changes:
- Fixes and improvements for the iw_cxgb4 low-level driver
- Fixes to the ib_qib low-level driver
- Fixes for crashes in the RDMA CM (also tagged for stable)
Mitko Haralanov (3):
IB/qib: Return correct MAD when setting link width to 255
IB/qib: Set default LE2 value for active cables to 0
IB/qib: Fix M_Key field in SubnGet and SubnGetResp MADs
Nicolas Kaiser (1):
IB/ipath: Don't reset disabled devices
Roland Dreier (1):
Merge branches 'cma', 'cxgb4', 'ipath' and 'qib' into for-next
Sean Hefty (4):
RDMA/cma: Fix crash in request handlers
IB/cm: Bump reference count on cm_id before invoking callback
IB/cm: Cancel pending LAP message when exiting IB_CM_ESTABLISH state
RDMA/cma: Replace global lock in rdma_destroy_id() with id-specific one
Steve Wise (7):
RDMA/cxgb4: Turn on delayed ACK
RDMA/cxgb4: Remove db_drop_task
RDMA/cxgb4: Do CIDX_INC updates every 1/16 CQ depth CQE reaps
RDMA/cxgb4: Enable on-chip SQ support by default
RDMA/cxgb4: Use ULP_MODE_TCPDDP
RDMA/cxgb4: Dispatch FATAL event on EEH errors
RDMA/cxgb4: Debugfs dump_qp() updates
drivers/infiniband/core/cm.c | 20 +++++++++-
drivers/infiniband/core/cma.c | 58 +++++++++++++++-------------
drivers/infiniband/hw/cxgb4/cm.c | 6 ++-
drivers/infiniband/hw/cxgb4/device.c | 24 +++++++++---
drivers/infiniband/hw/cxgb4/iw_cxgb4.h | 1 -
drivers/infiniband/hw/cxgb4/qp.c | 4 +-
drivers/infiniband/hw/cxgb4/t4.h | 8 +++-
drivers/infiniband/hw/ipath/ipath_sysfs.c | 1 +
drivers/infiniband/hw/qib/qib_iba7322.c | 13 +++++-
drivers/infiniband/hw/qib/qib_mad.c | 12 +++--
drivers/infiniband/hw/qib/qib_qsfp.h | 2 +
drivers/net/cxgb4/t4_msg.h | 1 +
12 files changed, 102 insertions(+), 48 deletions(-)
^ permalink raw reply [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
@ 2011-02-17 22:26 Roland Dreier
0 siblings, 0 replies; 223+ messages in thread
From: Roland Dreier @ 2011-02-17 22:26 UTC (permalink / raw)
To: Linus Torvalds, Andrew Morton; +Cc: linux-kernel, linux-rdma
Linus, please pull from
master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This tree is also available from kernel.org mirrors at:
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This will get a few small things:
- Don't send events for nonexistent nes devices
- Fix a couple of double events in qib
Maciej Sosnowski (1):
RDMA/nes: Don't generate async events for unregistered devices
Mike Marciniszyn (2):
IB/qib: Fix double add_timer()
IB/qib: Prevent double completions after a timeout or RNR error
Roland Dreier (1):
Merge branches 'nes' and 'qib' into for-next
drivers/infiniband/hw/nes/nes_hw.c | 32 ++++++++++++++++++++------------
drivers/infiniband/hw/qib/qib_rc.c | 5 ++++-
2 files changed, 24 insertions(+), 13 deletions(-)
^ permalink raw reply [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
@ 2011-02-03 18:05 Roland Dreier
0 siblings, 0 replies; 223+ messages in thread
From: Roland Dreier @ 2011-02-03 18:05 UTC (permalink / raw)
To: Linus Torvalds, Andrew Morton; +Cc: linux-kernel, linux-rdma
Linus, please pull from
master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This tree is also available from kernel.org mirrors at:
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This will get a few small things:
- Low-level driver fixes to qib, cxgb4 and amso1100
- Add PCI IDs for new Mellanox devices to mlx4
- Add a dropped hunk of Tejun's workqueue conversion
- Fix route query for iWARP connections
Mitko Haralanov (1):
IB/qib: Hold link for TX SERDES settings
Ralf Thielow (1):
RDMA/amso1100: Fix compile warnings
Roland Dreier (1):
Merge branches 'amso1100', 'cma', 'cxgb4', 'misc', 'mlx4' and 'qib' into for-next
Steve Wise (3):
RDMA/cxgb4: Limit MAXBURST EQ context field to 256B
RDMA/cxgb4: Set the correct device physical function for iWARP connections
RDMA/ucma: Copy iWARP route information on queries
Tejun Heo (1):
RDMA: Update missed conversion of flush_scheduled_work()
Yevgeny Petrilin (1):
mlx4_core: Add ConnectX-3 device IDs
drivers/infiniband/core/sa_query.c | 2 +-
drivers/infiniband/core/ucma.c | 22 ++++++++++++++++++++--
drivers/infiniband/hw/amso1100/c2_vq.c | 6 +++---
drivers/infiniband/hw/cxgb4/cm.c | 2 +-
drivers/infiniband/hw/cxgb4/qp.c | 4 ++--
drivers/infiniband/hw/qib/qib_iba7322.c | 30 +++++++++++-------------------
drivers/net/mlx4/main.c | 15 +++++++++++++++
7 files changed, 53 insertions(+), 28 deletions(-)
^ permalink raw reply [flat|nested] 223+ messages in thread
* Re: [GIT PULL] please pull infiniband.git
2011-01-17 21:55 Roland Dreier
@ 2011-01-25 16:23 ` Tziporet Koren
0 siblings, 0 replies; 223+ messages in thread
From: Tziporet Koren @ 2011-01-25 16:23 UTC (permalink / raw)
To: Roland Dreier; +Cc: torvalds, akpm, linux-kernel, linux-rdma
On 1/17/2011 11:55 PM, Roland Dreier wrote:
> Linus, please pull from
>
> master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
>
> This tree is also available from kernel.org mirrors at:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
>
> This will get the last batch of InfiniBand/RDMA patches for the merge
> window. The biggest thing here is Tejun's conversion of the RDMA
> stack away from flush_scheduled_work(); the remaining stuff is mostly
> driver fixes, with an SRP compile warning fix and a vzalloc()
> conversion patch thrown in.
Roland,
What about the new mlx4 device IDs?
We wish to have them in for CX3 so that the new kernel will support it
Thanks,
Tziporet
^ permalink raw reply [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
@ 2011-01-17 21:55 Roland Dreier
2011-01-25 16:23 ` Tziporet Koren
0 siblings, 1 reply; 223+ messages in thread
From: Roland Dreier @ 2011-01-17 21:55 UTC (permalink / raw)
To: torvalds, akpm; +Cc: linux-kernel, linux-rdma
Linus, please pull from
master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This tree is also available from kernel.org mirrors at:
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This will get the last batch of InfiniBand/RDMA patches for the merge
window. The biggest thing here is Tejun's conversion of the RDMA
stack away from flush_scheduled_work(); the remaining stuff is mostly
driver fixes, with an SRP compile warning fix and a vzalloc()
conversion patch thrown in.
Aleksey Senin (1):
IB/mlx4: Handle protocol field in multicast table
Bart Van Assche (1):
IB/srp: Test only once whether iu allocation succeeded
Joe Perches (1):
RDMA: Use vzalloc() to replace vmalloc()+memset(0)
John L. Burr (1):
IB/mthca: Fix driver when sizeof (phys_addr_t) > sizeof (long)
Maciej Sosnowski (4):
RDMA/nes: Fix bonding on iw_nes
RDMA/nes: Generate IB_EVENT_PORT_ERR/PORT_ACTIVE events
RDMA/nes: Fix SFP+ link down detection issue with switch port disable
RDMA/nes: Fix incorrect SFP+ link status detection on driver init
Roland Dreier (2):
mlx4_{core, ib, en}: Fix driver when sizeof (phys_addr_t) > sizeof (long)
Merge branches 'misc', 'mlx4', 'mthca', 'nes' and 'srp' into for-next
Tejun Heo (1):
RDMA: Update workqueue usage
drivers/infiniband/core/cache.c | 4 +-
drivers/infiniband/core/device.c | 11 ++-
drivers/infiniband/core/sa_query.c | 2 +-
drivers/infiniband/core/umem.c | 2 +-
drivers/infiniband/hw/amso1100/c2_rnic.c | 5 +-
drivers/infiniband/hw/ehca/ipz_pt_fn.c | 5 +-
drivers/infiniband/hw/ipath/ipath_driver.c | 5 +-
drivers/infiniband/hw/ipath/ipath_file_ops.c | 11 +--
drivers/infiniband/hw/ipath/ipath_init_chip.c | 5 +-
drivers/infiniband/hw/ipath/ipath_user_pages.c | 2 +-
drivers/infiniband/hw/mlx4/main.c | 12 ++-
drivers/infiniband/hw/mthca/mthca_catas.c | 5 +-
drivers/infiniband/hw/mthca/mthca_cmd.c | 2 +-
drivers/infiniband/hw/mthca/mthca_eq.c | 2 +-
drivers/infiniband/hw/mthca/mthca_main.c | 2 +-
drivers/infiniband/hw/mthca/mthca_mr.c | 2 +-
drivers/infiniband/hw/nes/nes.c | 35 ++++++++-
drivers/infiniband/hw/nes/nes.h | 4 +
drivers/infiniband/hw/nes/nes_cm.c | 8 ++-
drivers/infiniband/hw/nes/nes_hw.c | 95 ++++++++++++++++++++++++
drivers/infiniband/hw/nes/nes_hw.h | 10 +++
drivers/infiniband/hw/nes/nes_nic.c | 78 ++++++++++++++++---
drivers/infiniband/hw/nes/nes_verbs.c | 37 +++++++++-
drivers/infiniband/hw/qib/qib_iba7220.c | 7 +-
drivers/infiniband/hw/qib/qib_iba7322.c | 14 ++--
drivers/infiniband/hw/qib/qib_init.c | 33 ++-------
drivers/infiniband/hw/qib/qib_qsfp.c | 9 +-
drivers/infiniband/hw/qib/qib_verbs.h | 3 +-
drivers/infiniband/ulp/ipoib/ipoib_cm.c | 10 +--
drivers/infiniband/ulp/ipoib/ipoib_main.c | 3 +-
drivers/infiniband/ulp/srp/ib_srp.c | 19 ++---
drivers/net/mlx4/catas.c | 6 +-
drivers/net/mlx4/en_main.c | 3 +-
drivers/net/mlx4/main.c | 2 +-
drivers/net/mlx4/mcg.c | 23 +++---
include/linux/mlx4/device.h | 10 ++-
include/linux/mlx4/driver.h | 6 +-
include/rdma/ib_verbs.h | 3 +
38 files changed, 351 insertions(+), 144 deletions(-)
^ permalink raw reply [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
@ 2011-01-11 18:38 Roland Dreier
0 siblings, 0 replies; 223+ messages in thread
From: Roland Dreier @ 2011-01-11 18:38 UTC (permalink / raw)
To: torvalds, akpm; +Cc: linux-rdma, linux-kernel
Linus, please pull from
master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This tree is also available from kernel.org mirrors at:
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This will get the main batch of InfiniBand/RDMA patches for the merge
window. There are three main things here:
- SRP initiator performance improvements from Bart Van Assche and
Dave Dillow
- Conversion of IPoIB from LRO to GRO from Or Gerlitz
- Lots of fixes to hardware drivers, including mostly clearing the
backlog of qib patches
Ali Ayoub (1):
mlx4_core: Avoid vunmap() of invalid pointer if allocation fails
Bart Van Assche (6):
IB/srp: consolidate state change code
IB/srp: allow lockless work posting
IB/srp: don't move active requests to their own list
IB/srp: reduce local coverage for command submission and EH
IB/srp: reduce lock coverage of command completion
IB/srp: stop sharing the host lock with SCSI
Dan Carpenter (2):
IB/mlx4: Handle -ENOMEM in forward_trap()
IB/mthca: Handle -ENOMEM in forward_trap()
David Dillow (2):
IB/srp: allow task management without a previous request
IB/srp: consolidate hot-path variables into cache lines
Joe Perches (2):
IB/ipath: Use printf extension %pR for struct resource
RDMA/nes: Fix string continuation line
Mike Marciniszyn (23):
IB/qib: Remove IB latency turnoff
IB/qib: Add receive header queue size module parameters
IB/qib: Add support for the new QME7362 card
IB/qib: Generate completion callback on errors
IB/qib: Set port physical state even if other fields are invalid
IB/qib: UD send with immediate receive completion has wrong size
IB/qib: Handle transitions from ACTIVE_DEFERRED to ACTIVE better
IB/qib: Fix multi-Florida HCA host panic on reboot
IB/qib: Fix context allocation with multiple HCAs
IB/qib: Clear WAIT_SEND flags when setting QP to error state
IB/qib: New SERDES init routine and improvements to SI quality
IB/qib: Reset packet list after freeing
IB/qib: Add a few new SERDES tunings
IB/qib: Avoid duplicate writes to the rcv head register
IB/qib: Fix interrupt mitigation
IB/qib: Change receive queue/QPN selection
IB/qib: Add fix missing from earlier patch
IB/qib: Change QPN increment
IB/qib: RDMA lkey/rkey validation is inefficient for large MRs
IB/qib: Issue pre-emptive NAKs on eager buffer overflow
IB/qib: Unnecessary delayed completions on RC connection
IB/qib: Improve SERDES tunning on QMH boards
IB/qib: Fix refcount leak in lkey/rkey validation
Or Gerlitz (2):
IPoIB: Remove LRO support
IPoIB: Add GRO support
Roland Dreier (2):
mlx4_core: Remove warning message about firmware bug
Merge branches 'cxgb4', 'ipath', 'ipoib', 'mlx4', 'mthca', 'nes', 'qib' and 'srp' into for-next
Stephen Hemminger (1):
RDMA/cxgb3,cxgb4: Remove dead code
Steve Wise (1):
RDMA/cxgb4: Don't re-init wait object in init/fini paths
Vladimir Sokolovsky (1):
IB/mlx4: Don't call dma_free_coherent() with irqs disabled
drivers/infiniband/hw/cxgb3/cxio_hal.c | 2 +
drivers/infiniband/hw/cxgb3/iwch_provider.h | 2 -
drivers/infiniband/hw/cxgb3/iwch_qp.c | 56 ----
drivers/infiniband/hw/cxgb4/iw_cxgb4.h | 1 -
drivers/infiniband/hw/cxgb4/qp.c | 32 --
drivers/infiniband/hw/ipath/ipath_driver.c | 5 +-
drivers/infiniband/hw/mlx4/cq.c | 9 +-
drivers/infiniband/hw/mlx4/mad.c | 2 +
drivers/infiniband/hw/mthca/mthca_mad.c | 2 +
drivers/infiniband/hw/nes/nes_nic.c | 4 +-
drivers/infiniband/hw/qib/qib.h | 2 +-
drivers/infiniband/hw/qib/qib_cq.c | 3 +-
drivers/infiniband/hw/qib/qib_driver.c | 155 ++++++++++-
drivers/infiniband/hw/qib/qib_file_ops.c | 10 +-
drivers/infiniband/hw/qib/qib_iba6120.c | 2 +-
drivers/infiniband/hw/qib/qib_iba7220.c | 4 +-
drivers/infiniband/hw/qib/qib_iba7322.c | 373 ++++++++++++++++++++++---
drivers/infiniband/hw/qib/qib_init.c | 6 +-
drivers/infiniband/hw/qib/qib_intr.c | 3 +-
drivers/infiniband/hw/qib/qib_keys.c | 80 ++++--
drivers/infiniband/hw/qib/qib_mad.c | 45 ++--
drivers/infiniband/hw/qib/qib_mr.c | 8 +-
drivers/infiniband/hw/qib/qib_qp.c | 32 +--
drivers/infiniband/hw/qib/qib_rc.c | 24 ++
drivers/infiniband/hw/qib/qib_ud.c | 57 ++--
drivers/infiniband/hw/qib/qib_user_sdma.c | 1 +
drivers/infiniband/hw/qib/qib_verbs.h | 11 +-
drivers/infiniband/ulp/ipoib/Kconfig | 1 -
drivers/infiniband/ulp/ipoib/ipoib.h | 12 +-
drivers/infiniband/ulp/ipoib/ipoib_cm.c | 1 +
drivers/infiniband/ulp/ipoib/ipoib_ethtool.c | 51 ----
drivers/infiniband/ulp/ipoib/ipoib_ib.c | 8 +-
drivers/infiniband/ulp/ipoib/ipoib_main.c | 62 +----
drivers/infiniband/ulp/srp/ib_srp.c | 392 ++++++++++++--------------
drivers/infiniband/ulp/srp/ib_srp.h | 46 ++--
drivers/net/mlx4/alloc.c | 3 +-
drivers/net/mlx4/fw.c | 4 +-
37 files changed, 889 insertions(+), 622 deletions(-)
^ permalink raw reply [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
@ 2010-12-13 21:53 Roland Dreier
0 siblings, 0 replies; 223+ messages in thread
From: Roland Dreier @ 2010-12-13 21:53 UTC (permalink / raw)
To: torvalds, akpm; +Cc: linux-rdma, linux-kernel
Linus, please pull from
master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This tree is also available from kernel.org mirrors at:
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
Just a one thing here: a fix for a user-triggerable integer overflow
as a well as a leak of a few bytes of kernel memory. The severity is
not too high here as actually hitting this requires a system with real
RDMA hardware, and the user must be granted direct access to that hardware.
Dan Carpenter (1):
IB/uverbs: Handle large number of entries in poll CQ
drivers/infiniband/core/uverbs_cmd.c | 101 +++++++++++++++++++---------------
1 files changed, 57 insertions(+), 44 deletions(-)
^ permalink raw reply [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
@ 2010-12-02 18:57 Roland Dreier
0 siblings, 0 replies; 223+ messages in thread
From: Roland Dreier @ 2010-12-02 18:57 UTC (permalink / raw)
To: torvalds, akpm; +Cc: linux-rdma, linux-kernel
Linus, please pull from
master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This tree is also available from kernel.org mirrors at:
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
Just a few small things here:
- Fix a minor leak of a few bytes of kernel stack
- MAINTAINERS update
- Fix a few small issues introduced with the merge of IBoE support in 2.6.37-rc1
Chien Tung (1):
MAINTAINERS: Update NetEffect entry
Eli Cohen (4):
IB/mlx4: Fix memory ordering of VLAN insertion control bits
mlx4_core: Workaround firmware bug in query dev cap
IB/mlx4: Fix IBoE reported link rate
IB/mlx4: Fix IBoE link state
Or Gerlitz (1):
IB/pack: Remove some unused code added by the IBoE patches
Roland Dreier (1):
Merge branches 'misc', 'mlx4' and 'nes' into for-next
Vasiliy Kulikov (1):
IB: Fix information leak in marshalling code
MAINTAINERS | 3 +-
drivers/infiniband/core/ud_header.c | 30 -----------------------------
drivers/infiniband/core/uverbs_marshall.c | 4 +++
drivers/infiniband/hw/mlx4/main.c | 4 +-
drivers/infiniband/hw/mlx4/qp.c | 10 ++++----
drivers/net/mlx4/fw.c | 4 +++
6 files changed, 16 insertions(+), 39 deletions(-)
^ permalink raw reply [flat|nested] 223+ messages in thread
* Re: [GIT PULL] please pull infiniband.git
2010-10-26 20:52 Roland Dreier
@ 2010-10-26 23:17 ` Roland Dreier
0 siblings, 0 replies; 223+ messages in thread
From: Roland Dreier @ 2010-10-26 23:17 UTC (permalink / raw)
To: torvalds; +Cc: akpm, linux-rdma, linux-kernel
Hi Linus,
A) I forgot to push out my for-linus branch, so if you tried earlier, it
wasn't there, but it is now:
master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
B) It was pointed out to me that I missed one patch hunk, so the
diffstat now looks like the below. One difference is that there now is
a qib_uc.c line and the summary goes from
74 files changed, 2668 insertions(+), 725 deletions(-)
to
75 files changed, 2672 insertions(+), 727 deletions(-)
Thanks!
Roland
MAINTAINERS | 12 +-
drivers/infiniband/core/agent.c | 29 +-
drivers/infiniband/core/cma.c | 313 ++++++++++++++-
drivers/infiniband/core/iwcm.c | 4 +
drivers/infiniband/core/mad.c | 27 ++-
drivers/infiniband/core/multicast.c | 23 +-
drivers/infiniband/core/sa_query.c | 30 +-
drivers/infiniband/core/sysfs.c | 15 +
drivers/infiniband/core/ucma.c | 92 ++++-
drivers/infiniband/core/ud_header.c | 138 ++++++--
drivers/infiniband/core/user_mad.c | 2 +-
drivers/infiniband/core/uverbs_cmd.c | 2 +
drivers/infiniband/core/verbs.c | 16 +
drivers/infiniband/hw/amso1100/Kbuild | 4 +-
drivers/infiniband/hw/amso1100/c2_intr.c | 4 +-
drivers/infiniband/hw/cxgb3/Makefile | 6 +-
drivers/infiniband/hw/cxgb3/cxio_hal.c | 1 +
drivers/infiniband/hw/cxgb3/cxio_wr.h | 16 +
drivers/infiniband/hw/cxgb3/iwch_cm.c | 4 +-
drivers/infiniband/hw/cxgb3/iwch_ev.c | 17 +-
drivers/infiniband/hw/cxgb3/iwch_provider.c | 24 +-
drivers/infiniband/hw/cxgb3/iwch_qp.c | 25 +-
drivers/infiniband/hw/cxgb3/iwch_user.h | 8 +
drivers/infiniband/hw/cxgb4/Makefile | 2 +-
drivers/infiniband/hw/cxgb4/cm.c | 178 ++++-----
drivers/infiniband/hw/cxgb4/cq.c | 28 +-
drivers/infiniband/hw/cxgb4/device.c | 191 ++++++----
drivers/infiniband/hw/cxgb4/ev.c | 2 +-
drivers/infiniband/hw/cxgb4/iw_cxgb4.h | 68 +++-
drivers/infiniband/hw/cxgb4/mem.c | 11 +-
drivers/infiniband/hw/cxgb4/provider.c | 44 ++-
drivers/infiniband/hw/cxgb4/qp.c | 283 ++++++++------
drivers/infiniband/hw/cxgb4/resource.c | 62 +++
drivers/infiniband/hw/cxgb4/t4.h | 44 ++-
drivers/infiniband/hw/cxgb4/user.h | 7 +
drivers/infiniband/hw/ehca/ehca_mrmw.c | 6 +-
drivers/infiniband/hw/ipath/Makefile | 2 +-
drivers/infiniband/hw/mlx4/ah.c | 163 +++++++--
drivers/infiniband/hw/mlx4/mad.c | 32 +-
drivers/infiniband/hw/mlx4/main.c | 553 +++++++++++++++++++++++++--
drivers/infiniband/hw/mlx4/mlx4_ib.h | 32 ++-
drivers/infiniband/hw/mlx4/mr.c | 2 +-
drivers/infiniband/hw/mlx4/qp.c | 195 ++++++++--
drivers/infiniband/hw/mthca/mthca_qp.c | 2 +-
drivers/infiniband/hw/nes/nes_cm.c | 3 +-
drivers/infiniband/hw/nes/nes_nic.c | 1 +
drivers/infiniband/hw/nes/nes_verbs.c | 16 +-
drivers/infiniband/hw/qib/qib.h | 2 +-
drivers/infiniband/hw/qib/qib_file_ops.c | 4 +-
drivers/infiniband/hw/qib/qib_init.c | 1 +
drivers/infiniband/hw/qib/qib_pcie.c | 8 +-
drivers/infiniband/hw/qib/qib_rc.c | 5 +-
drivers/infiniband/hw/qib/qib_uc.c | 6 +-
drivers/infiniband/ulp/ipoib/ipoib_ib.c | 14 +-
drivers/infiniband/ulp/ipoib/ipoib_main.c | 3 +
drivers/infiniband/ulp/srp/ib_srp.c | 236 ++++++++----
drivers/infiniband/ulp/srp/ib_srp.h | 21 +-
drivers/net/mlx4/en_main.c | 15 +-
drivers/net/mlx4/en_netdev.c | 10 +
drivers/net/mlx4/en_port.c | 4 +-
drivers/net/mlx4/en_port.h | 3 +-
drivers/net/mlx4/fw.c | 3 +-
drivers/net/mlx4/intf.c | 21 +
drivers/net/mlx4/main.c | 4 +-
drivers/net/mlx4/mlx4_en.h | 1 +
drivers/net/mlx4/port.c | 19 +
include/linux/mlx4/cmd.h | 2 +
include/linux/mlx4/device.h | 35 ++-
include/linux/mlx4/driver.h | 9 +
include/linux/mlx4/qp.h | 9 +-
include/rdma/ib_addr.h | 134 +++++++-
include/rdma/ib_pack.h | 39 ++-
include/rdma/ib_user_verbs.h | 3 +-
include/rdma/ib_verbs.h | 11 +
include/scsi/srp.h | 38 ++
75 files changed, 2672 insertions(+), 727 deletions(-)
^ permalink raw reply [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
@ 2010-10-26 20:52 Roland Dreier
2010-10-26 23:17 ` Roland Dreier
0 siblings, 1 reply; 223+ messages in thread
From: Roland Dreier @ 2010-10-26 20:52 UTC (permalink / raw)
To: torvalds, akpm; +Cc: linux-rdma, linux-kernel
Linus, please pull from
master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This tree is also available from kernel.org mirrors at:
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
The big new feature here is support for InfiniBand-over-Ethernet / IBoE
(aka "RDMA over Converged Ethernet / RoCE"). We also have a new SRP
initiator submaintainer (thanks Dave!), and various fixes all over.
Animesh K Trivedi (1):
RDMA/iwcm: Fix hang in uninterruptible wait on cm_id destroy
Bart Van Assche (3):
IB/srp: Preparation for transmit ring response allocation
IB/srp: Reduce number of BUSY conditions
IB/srp: Use list_first_entry()
Chien Tung (1):
RDMA/nes: Report correct port state if interface is down
Christoph Lameter (1):
IPoIB: Set pkt_type correctly for multicast packets (fix IGMP breakage)
Dan Carpenter (1):
RDMA/nes: Remove unneeded variable
David Dillow (3):
IB/srp: Implement SRP_CRED_REQ and SRP_AER_REQ
IB/srp: Eliminate two forward declarations
IB/srp: Sync buffer before posting send
Eli Cohen (16):
IB/core: Add link layer property to ports
mlx4_core: Allow log_mtts_per_seg up to 7
IB/mlx4: Limit size of fast registration WRs
IPoIB: Skip IBoE ports
IB/mad: IBoE supports only QP1 (no QP0)
RDMA/cm: Add RDMA CM support for IBoE devices
IB/pack: IBoE UD packet packing support
IPoIB: Set dev_id field of net_device
IB/uverbs: Return link layer type to userspace for query port operation
mlx4_core: Allow protocol drivers to find corresponding interfaces
mlx4_core: Update data structures and constants for IBoE
mlx4_en: Change multicast promiscuous mode to support IBoE
IB/mlx4: Add support for IBoE
IB/core: Add VLAN support for IBoE
IB/mlx4: Add VLAN support for IBoE
IB/core: Add link layer type information to sysfs
Jack Morgenstein (1):
IB/mlx4: Signal node desc changes to SM by using FW to generate trap 144
Jason Gunthorpe (3):
IB/qib: Process RDMA WRITE ONLY with IMMEDIATE properly
IB/qib: Fix extra log level in qib_early_err()
IB/qib: clean up properly if pci_set_consistent_dma_mask() fails
Joe Perches (4):
RDMA/amso1100: Remove KERN_<level> from pr_<level> use
IB/qib: Remove unnecessary casts of private_data
RDMA/cxgb3: Remove unnecessary KERN_<level> use
RDMA/cxgb4: Remove unnecessary KERN_<level> use
Maciej Sosnowski (1):
RDMA/nes: Turn carrier off on ifdown
Ralph Campbell (2):
IB/qib: Fix uninitialized pointer if CONFIG_PCI_MSI not set
IB/qib: Allow driver to load if PCIe AER fails
Roland Dreier (5):
RDMA/cxgb4: Fix warnings about casts to/from pointers of different sizes
MAINTAINERS: Fix broken link to http://www.openib.org/
RDMA/nes: Fix cast-to-pointer warnings on 32-bit
MAINTAINERS: Hand off SCSI RDMA Protocol (SRP) initiator to Dave Dillow
Merge branches 'amso1100', 'cma', 'cxgb3', 'cxgb4', 'ehca', 'iboe', 'ipoib', 'misc', 'mlx4', 'nes', 'qib' and 'srp' into for-next
Sonny Rao (1):
IB/ehca: Fix driver on relocatable kernel
Steve Wise (19):
RDMA/cxgb4: Don't use null ep ptr
RDMA/cxgb4: Zero out ISGL padding
RDMA/cxgb4: Ignore positive return values from cxgb4_*_send() functions
RDMA/cxgb4: Ignore TERMINATE CQEs
RDMA/cxgb4: Handle CPL_RDMA_TERMINATE messages
RDMA/cxgb4: Log HW lack-of-resource errors
RDMA/cxgb4: debugfs files for dumping active stags
RDMA/cxgb4: Centralize the wait logic
RDMA/cxgb4: Support on-chip SQs
RDMA/cxgb4: Use a mutex for QP and EP state transitions
RDMA/cxgb4: Set the default TCP send window to 128KB
RDMA/cxgb4: Don't set completion flag for read requests
RDMA/cxgb4: Fastreg NSMR fixes
RDMA/cxgb4: Add default_llseek to debugfs files
RDMA/cxgb4: Use simple_read_from_buffer() for debugfs handlers
RDMA/cxgb4: Export T4 TCP MIB
RDMA/cxgb4: Use cxgb4 service for packet gl to skb
RDMA/cxgb3: When a user QP is marked in error, also mark the CQs in error
RDMA/ucma: Allow tuning the max listen backlog
Thomas Gleixner (1):
IB/umad: Make user_mad semaphore a real one
matt mooney (1):
IB: Replace EXTRA_CFLAGS with ccflags-y
MAINTAINERS | 12 +-
drivers/infiniband/core/agent.c | 29 +-
drivers/infiniband/core/cma.c | 313 ++++++++++++++-
drivers/infiniband/core/iwcm.c | 4 +
drivers/infiniband/core/mad.c | 27 ++-
drivers/infiniband/core/multicast.c | 23 +-
drivers/infiniband/core/sa_query.c | 30 +-
drivers/infiniband/core/sysfs.c | 15 +
drivers/infiniband/core/ucma.c | 92 ++++-
drivers/infiniband/core/ud_header.c | 138 ++++++--
drivers/infiniband/core/user_mad.c | 2 +-
drivers/infiniband/core/uverbs_cmd.c | 2 +
drivers/infiniband/core/verbs.c | 16 +
drivers/infiniband/hw/amso1100/Kbuild | 4 +-
drivers/infiniband/hw/amso1100/c2_intr.c | 4 +-
drivers/infiniband/hw/cxgb3/Makefile | 6 +-
drivers/infiniband/hw/cxgb3/cxio_hal.c | 1 +
drivers/infiniband/hw/cxgb3/cxio_wr.h | 16 +
drivers/infiniband/hw/cxgb3/iwch_cm.c | 4 +-
drivers/infiniband/hw/cxgb3/iwch_ev.c | 17 +-
drivers/infiniband/hw/cxgb3/iwch_provider.c | 24 +-
drivers/infiniband/hw/cxgb3/iwch_qp.c | 25 +-
drivers/infiniband/hw/cxgb3/iwch_user.h | 8 +
drivers/infiniband/hw/cxgb4/Makefile | 2 +-
drivers/infiniband/hw/cxgb4/cm.c | 178 ++++-----
drivers/infiniband/hw/cxgb4/cq.c | 28 +-
drivers/infiniband/hw/cxgb4/device.c | 191 ++++++----
drivers/infiniband/hw/cxgb4/ev.c | 2 +-
drivers/infiniband/hw/cxgb4/iw_cxgb4.h | 68 +++-
drivers/infiniband/hw/cxgb4/mem.c | 11 +-
drivers/infiniband/hw/cxgb4/provider.c | 44 ++-
drivers/infiniband/hw/cxgb4/qp.c | 283 ++++++++------
drivers/infiniband/hw/cxgb4/resource.c | 62 +++
drivers/infiniband/hw/cxgb4/t4.h | 44 ++-
drivers/infiniband/hw/cxgb4/user.h | 7 +
drivers/infiniband/hw/ehca/ehca_mrmw.c | 6 +-
drivers/infiniband/hw/ipath/Makefile | 2 +-
drivers/infiniband/hw/mlx4/ah.c | 163 +++++++--
drivers/infiniband/hw/mlx4/mad.c | 32 +-
drivers/infiniband/hw/mlx4/main.c | 553 +++++++++++++++++++++++++--
drivers/infiniband/hw/mlx4/mlx4_ib.h | 32 ++-
drivers/infiniband/hw/mlx4/mr.c | 2 +-
drivers/infiniband/hw/mlx4/qp.c | 195 ++++++++--
drivers/infiniband/hw/mthca/mthca_qp.c | 2 +-
drivers/infiniband/hw/nes/nes_cm.c | 3 +-
drivers/infiniband/hw/nes/nes_nic.c | 1 +
drivers/infiniband/hw/nes/nes_verbs.c | 16 +-
drivers/infiniband/hw/qib/qib.h | 2 +-
drivers/infiniband/hw/qib/qib_file_ops.c | 4 +-
drivers/infiniband/hw/qib/qib_init.c | 1 +
drivers/infiniband/hw/qib/qib_pcie.c | 8 +-
drivers/infiniband/hw/qib/qib_rc.c | 5 +-
drivers/infiniband/ulp/ipoib/ipoib_ib.c | 14 +-
drivers/infiniband/ulp/ipoib/ipoib_main.c | 3 +
drivers/infiniband/ulp/srp/ib_srp.c | 236 ++++++++----
drivers/infiniband/ulp/srp/ib_srp.h | 21 +-
drivers/net/mlx4/en_main.c | 15 +-
drivers/net/mlx4/en_netdev.c | 10 +
drivers/net/mlx4/en_port.c | 4 +-
drivers/net/mlx4/en_port.h | 3 +-
drivers/net/mlx4/fw.c | 3 +-
drivers/net/mlx4/intf.c | 21 +
drivers/net/mlx4/main.c | 4 +-
drivers/net/mlx4/mlx4_en.h | 1 +
drivers/net/mlx4/port.c | 19 +
include/linux/mlx4/cmd.h | 2 +
include/linux/mlx4/device.h | 35 ++-
include/linux/mlx4/driver.h | 9 +
include/linux/mlx4/qp.h | 9 +-
include/rdma/ib_addr.h | 134 +++++++-
include/rdma/ib_pack.h | 39 ++-
include/rdma/ib_user_verbs.h | 3 +-
include/rdma/ib_verbs.h | 11 +
include/scsi/srp.h | 38 ++
74 files changed, 2668 insertions(+), 725 deletions(-)
^ permalink raw reply [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
@ 2010-09-27 16:31 Roland Dreier
0 siblings, 0 replies; 223+ messages in thread
From: Roland Dreier @ 2010-09-27 16:31 UTC (permalink / raw)
To: torvalds, akpm; +Cc: linux-rdma, linux-kernel
Linus, please pull from
master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This tree is also available from kernel.org mirrors at:
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This will get one cxgb3 driver fix:
Steve Wise (1):
RDMA/cxgb3: Turn off RX coalescing for iWARP connections
drivers/infiniband/hw/cxgb3/iwch_cm.c | 6 ++++--
1 files changed, 4 insertions(+), 2 deletions(-)
^ permalink raw reply [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
@ 2010-09-08 21:45 Roland Dreier
0 siblings, 0 replies; 223+ messages in thread
From: Roland Dreier @ 2010-09-08 21:45 UTC (permalink / raw)
To: torvalds, akpm; +Cc: linux-rdma, linux-kernel
Linus, please pull from
master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This tree is also available from kernel.org mirrors at:
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This will get a few small driver fixes.
Chien Tung (1):
RDMA/nes: Write correct register write to set TX pause param
Faisal Latif (3):
RDMA/nes: Fix double CLOSE event indication crash
RDMA/nes: Change state to closing after FIN
RDMA/nes: Fix hang with modified FIN handling on A0 cards
Roland Dreier (1):
Merge branches 'cxgb3' and 'nes' into for-linus
Steve Wise (1):
RDMA/cxgb3: Don't exceed the max HW CQ depth
drivers/infiniband/hw/cxgb3/cxio_hal.h | 2 +-
drivers/infiniband/hw/nes/nes_cm.c | 18 ++++++++++--------
drivers/infiniband/hw/nes/nes_hw.c | 14 +++++++++++++-
drivers/infiniband/hw/nes/nes_hw.h | 1 +
drivers/infiniband/hw/nes/nes_nic.c | 4 ++--
5 files changed, 27 insertions(+), 12 deletions(-)
^ permalink raw reply [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
@ 2010-08-09 22:44 Roland Dreier
0 siblings, 0 replies; 223+ messages in thread
From: Roland Dreier @ 2010-08-09 22:44 UTC (permalink / raw)
To: torvalds, akpm; +Cc: linux-rdma, linux-kernel
Linus, please pull from
master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This tree is also available from kernel.org mirrors at:
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This will get one cxgb4 patch that I was holding until prerequisites
merged through the net tree.
Steve Wise (1):
RDMA/cxgb4: Obtain RDMA QID ranges from LLD/FW
drivers/infiniband/hw/cxgb4/device.c | 9 +++++++--
drivers/infiniband/hw/cxgb4/resource.c | 7 ++++---
drivers/infiniband/hw/cxgb4/t4.h | 2 --
3 files changed, 11 insertions(+), 7 deletions(-)
--
Roland Dreier <rolandd@cisco.com> || For corporate legal information go to:
http://www.cisco.com/web/about/doing_business/legal/cri/index.html
^ permalink raw reply [flat|nested] 223+ messages in thread
* [GIT PULL] Please pull infiniband.git
@ 2010-08-05 21:37 Roland Dreier
0 siblings, 0 replies; 223+ messages in thread
From: Roland Dreier @ 2010-08-05 21:37 UTC (permalink / raw)
To: torvalds, akpm; +Cc: linux-rdma, linux-kernel
Linus, please pull from
master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This tree is also available from kernel.org mirrors at:
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This will get the 2.6.36 merge window pile, which actually does not
include anything big this time around.
Aleksey Senin (1):
IB: Rename RAW_ETY to RAW_ETHERTYPE
Alexander Schmidt (3):
IB/ehca: Fix bitmask handling for lock_hcalls
IB/ehca: Catch failing ioremap()
IB/ehca: Init irq tasklet before irq can happen
Arnd Bergmann (1):
IB/qib: Use generic_file_llseek
Bart Van Assche (3):
IB/srp: Use print_hex_dump()
IB/srp: Make receive buffer handling more robust
IB/srp: Export req_lim via sysfs
Ben Hutchings (1):
IB/ipath: Fix probe failure path
Chien Tung (1):
RDMA/nes: Store and print eeprom version
Dan Carpenter (2):
RDMA/cxgb4: Remove unneeded assignment
RDMA/cxgb3: Clean up signed check of unsigned variable
Dave Olson (1):
IB/qib: Allow PSM to select from multiple port assignment algorithms
David Miller (1):
IB/qib: Add missing <linux/slab.h> include
David Rientjes (1):
RDMA/cxgb4: Remove dependency on __GFP_NOFAIL
Faisal Latif (1):
RDMA/nes: Fix hangs on ifdown
Ira Weiny (1):
IB/qib: Allow writes to the diag_counters to be able to clear them
Julia Lawall (1):
IB/ehca: Drop unnecessary NULL test
Miroslaw Walukiewicz (1):
RDMA/nes: Read firmware version from correct place
Or Gerlitz (3):
IB/iser: Make needlessly global iser_alloc_rx_descriptors() static
RDMA/cxgb3: Make needlessly global iwch_l2t_send() static
RDMA/nes: Fix two sparse warnings
Peter Huewe (1):
RDMA/nes: Convert pci_table entries to PCI_VDEVICE
Ralph Campbell (5):
IB/qib: Avoid variable-length array
IB/qib: Turn off IB latency mode
IB/qib: Set cfgctxts to number of CPUs by default
IB/qib: Limit the number of packets processed per interrupt
IB/qib: Fix race between qib_error_qp() and receive packet processing
Roland Dreier (8):
IB/umad: Remove unused-but-set variable 'already_dead'
RDMA/nes: Rewrite expression to avoid undefined semantics
RDMA/cxgb4: Remove unneeded NULL check
RDMA/nes: Get rid of "set but not used" variables
RDMA/nes: Fix showing wqm_quanta
RDMA/nes: Fix misindented code
RDMA/nes: Fix confusing if statement indentation
Merge branches 'cxgb3', 'cxgb4', 'ehca', 'ipath', 'misc', 'nes', 'qib' and 'srp' into for-next
Sean Hefty (1):
IB/cm: Check LAP state before sending an MRA
Steve Wise (6):
RDMA/cxgb4: Add module option to tweak delayed ack
RDMA/cxgb4: Support variable sized work requests
RDMA/cxgb4: Fix race in fini path
RDMA/cxgb4: Use correct control txq
RDMA/cxgb4: Set/reset the EP timer inside EP lock
RDMA/cxgb4: Add timeouts when waiting for FW responses
drivers/infiniband/core/cm.c | 10 +-
drivers/infiniband/core/user_mad.c | 2 -
drivers/infiniband/core/verbs.c | 4 +-
drivers/infiniband/hw/cxgb3/iwch_cm.c | 2 +-
drivers/infiniband/hw/cxgb3/iwch_qp.c | 4 +-
drivers/infiniband/hw/cxgb4/cm.c | 91 ++++++-----
drivers/infiniband/hw/cxgb4/cq.c | 4 +-
drivers/infiniband/hw/cxgb4/iw_cxgb4.h | 1 +
drivers/infiniband/hw/cxgb4/mem.c | 2 +-
drivers/infiniband/hw/cxgb4/qp.c | 240 +++++++++++++------------
drivers/infiniband/hw/cxgb4/t4.h | 32 ++--
drivers/infiniband/hw/cxgb4/t4fw_ri_api.h | 10 +
drivers/infiniband/hw/ehca/ehca_eq.c | 8 +-
drivers/infiniband/hw/ehca/ehca_main.c | 3 +-
drivers/infiniband/hw/ehca/ehca_mrmw.c | 5 -
drivers/infiniband/hw/ehca/ehca_qp.c | 2 +-
drivers/infiniband/hw/ehca/hcp_if.c | 32 +++-
drivers/infiniband/hw/ehca/hcp_phyp.c | 11 +-
drivers/infiniband/hw/ehca/hcp_phyp.h | 2 +-
drivers/infiniband/hw/ipath/ipath_driver.c | 13 +-
drivers/infiniband/hw/mthca/mthca_cmd.c | 2 +-
drivers/infiniband/hw/nes/nes.c | 37 ++---
drivers/infiniband/hw/nes/nes.h | 2 +
drivers/infiniband/hw/nes/nes_cm.c | 10 +-
drivers/infiniband/hw/nes/nes_hw.c | 23 ++-
drivers/infiniband/hw/nes/nes_hw.h | 3 +-
drivers/infiniband/hw/nes/nes_nic.c | 15 +-
drivers/infiniband/hw/nes/nes_utils.c | 5 +
drivers/infiniband/hw/nes/nes_verbs.c | 21 ++-
drivers/infiniband/hw/qib/qib.h | 4 +
drivers/infiniband/hw/qib/qib_common.h | 16 ++-
drivers/infiniband/hw/qib/qib_driver.c | 2 +-
drivers/infiniband/hw/qib/qib_file_ops.c | 203 +++++++++++-----------
drivers/infiniband/hw/qib/qib_fs.c | 18 +-
drivers/infiniband/hw/qib/qib_iba7322.c | 4 +-
drivers/infiniband/hw/qib/qib_init.c | 2 +-
drivers/infiniband/hw/qib/qib_qp.c | 2 +-
drivers/infiniband/hw/qib/qib_rc.c | 47 ++----
drivers/infiniband/hw/qib/qib_sdma.c | 2 +
drivers/infiniband/hw/qib/qib_sysfs.c | 21 ++-
drivers/infiniband/hw/qib/qib_tx.c | 2 +-
drivers/infiniband/hw/qib/qib_uc.c | 6 -
drivers/infiniband/hw/qib/qib_ud.c | 17 +--
drivers/infiniband/hw/qib/qib_verbs.c | 7 +-
drivers/infiniband/ulp/iser/iser_initiator.c | 2 +-
drivers/infiniband/ulp/srp/ib_srp.c | 118 +++++++------
include/rdma/ib_verbs.h | 2 +-
47 files changed, 576 insertions(+), 495 deletions(-)
--
Roland Dreier <rolandd@cisco.com> || For corporate legal information go to:
http://www.cisco.com/web/about/doing_business/legal/cri/index.html
^ permalink raw reply [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
@ 2010-07-08 16:12 Roland Dreier
0 siblings, 0 replies; 223+ messages in thread
From: Roland Dreier @ 2010-07-08 16:12 UTC (permalink / raw)
To: torvalds, akpm; +Cc: linux-rdma, linux-kernel
Linus, please pull from
master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This tree is also available from kernel.org mirrors at:
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This will get one security fix for IPoIB, and a bunch of relatively
small fixes to drivers new in 2.6.35 (so perhaps not regression fixes,
but not able to regress anything either ... and you don't care about
RDMA anyway ;)
Dave Olson (1):
IB/qib: Don't mark VL15 bufs as WC to avoid a rare 7322 chip problem
FUJITA Tomonori (1):
RDMA/cxgb4: Use the DMA state API instead of the pci equivalents
Or Gerlitz (1):
IPoIB: Fix world-writable child interface control sysfs attributes
Ralph Campbell (6):
IB/qib: Mask hardware error during link reset
IB/qib: Clear eager buffer memory for each new process
IB/qib: Clear 6120 hardware error register
IB/qib: Update 7322 serdes tables
IB/qib: Completion queue callback needs to be single threaded
IB/qib: Clean up properly if qib_init() fails
Roland Dreier (1):
Merge branches 'cxgb4', 'ipoib' and 'qib' into for-next
Steve Wise (3):
RDMA/cxgb4: Don't call abort_connection() for active connect failures
RDMA/cxgb4: Avoid false GTS CIDX_INC overflows
RDMA/cxgb4: Derive smac_idx from port viid
drivers/infiniband/hw/cxgb4/cm.c | 12 ++++---
drivers/infiniband/hw/cxgb4/cq.c | 31 ++++++++++++++-----
drivers/infiniband/hw/cxgb4/iw_cxgb4.h | 2 +-
drivers/infiniband/hw/cxgb4/mem.c | 4 +-
drivers/infiniband/hw/cxgb4/qp.c | 12 +++---
drivers/infiniband/hw/cxgb4/t4.h | 6 ++--
drivers/infiniband/hw/qib/qib.h | 1 +
drivers/infiniband/hw/qib/qib_7322_regs.h | 48 ++++++++++++++--------------
drivers/infiniband/hw/qib/qib_diag.c | 19 +++++++++--
drivers/infiniband/hw/qib/qib_iba6120.c | 3 +-
drivers/infiniband/hw/qib/qib_iba7322.c | 43 +++++++++++++++++++++----
drivers/infiniband/hw/qib/qib_init.c | 21 ++++++++++++-
drivers/infiniband/hw/qib/qib_pcie.c | 2 +
drivers/infiniband/hw/qib/qib_tx.c | 6 +++-
drivers/infiniband/ulp/ipoib/ipoib_main.c | 4 +-
15 files changed, 148 insertions(+), 66 deletions(-)
--
Roland Dreier <rolandd@cisco.com> || For corporate legal information go to:
http://www.cisco.com/web/about/doing_business/legal/cri/index.html
^ permalink raw reply [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
@ 2010-05-27 22:18 Roland Dreier
0 siblings, 0 replies; 223+ messages in thread
From: Roland Dreier @ 2010-05-27 22:18 UTC (permalink / raw)
To: torvalds, akpm; +Cc: linux-rdma, linux-kernel
Linus, please pull from
master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This tree is also available from kernel.org mirrors at:
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This is pretty much settled down to fixes -- one semantic patch
cleanup from Julia Lawall and then some fixes to the new qib driver.
The following changes since commit ec96e2fe954c23a54bfdf2673437a39e193a1822:
Merge branch 'devel' of master.kernel.org:/home/rmk/linux-2.6-arm (2010-05-25 12:06:33 -0700)
are available in the git repository at:
master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
Julia Lawall (1):
IB/ucm: Use memdup_user()
Ralph Campbell (3):
IB/qib: Fix undefined symbol error when CONFIG_PCI_MSI=n
IB/qib: Use a single txselect module parameter for serdes tuning
IB/qib: Remove DCA support until feature is finished
Roland Dreier (2):
IB/qib: Don't rely on (undefined) order of function parameter evaluation
Merge branches 'misc' and 'qib' into for-next
drivers/infiniband/core/ucm.c | 11 +-
drivers/infiniband/hw/qib/qib_fs.c | 25 +-
drivers/infiniband/hw/qib/qib_iba6120.c | 12 -
drivers/infiniband/hw/qib/qib_iba7322.c | 771 +++++++------------------------
drivers/infiniband/hw/qib/qib_init.c | 6 +
5 files changed, 203 insertions(+), 622 deletions(-)
--
Roland Dreier <rolandd@cisco.com> || For corporate legal information go to:
http://www.cisco.com/web/about/doing_business/legal/cri/index.html
^ permalink raw reply [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
@ 2010-05-25 16:58 Roland Dreier
0 siblings, 0 replies; 223+ messages in thread
From: Roland Dreier @ 2010-05-25 16:58 UTC (permalink / raw)
To: torvalds, akpm; +Cc: linux-kernel, linux-rdma
Linus, please pull from
master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This tree is also available from kernel.org mirrors at:
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
The biggest thing here is the rather huge new qib driver for QLogic
PCIe adapters. This is pretty much self-contained (just one small
change to the core to allow low-level drivers to create per-port files
in sysfs). There are also some fixes to the new iw_cxgb4 driver, as
well as a few other miscellaneous fixes.
Chien Tung (1):
RDMA/nes: Fix incorrect unlock in nes_process_mac_intr()
Faisal Latif (2):
RDMA/nes: Have ethtool read hardware registers for rx/tx stats
RDMA/nes: Async event for closed QP causes crash
Ralph Campbell (3):
IB/core: Allow device-specific per-port sysfs files
IB/qib: Add new qib driver for QLogic PCIe InfiniBand adapters
IB/ipath: Remove support for QLogic PCIe QLE devices
Roland Dreier (3):
mlx4_core: Clean up mlx4_alloc_icm() a bit
IB/mad: Make needlessly global mad_sendq_size/mad_recvq_size static
Merge branches 'cxgb4', 'misc', 'mlx4', 'nes' and 'qib' into for-next
Sebastien Dugue (1):
mlx4_core: Fix possible chunk sg list overflow in mlx4_alloc_icm()
Steve Wise (11):
RDMA/cxgb4: Detach from the LLD after unregistering RDMA device
RDMA/cxgb4: Register RDMA provider based on LLD state_change events
RDMA/cxgb4: CQ size must be IQ size - 2
RDMA/cxgb4: Optimize CQ overflow detection
RDMA/cxgb4: Fix overflow bug in CQ arm
RDMA/cxgb4: Return proper errors in fastreg mr/pbl allocation
RDMA/cxgb4: Don't limit fastreg page list depth
RDMA/cxgb4: Update some HW limits
RDMA/cxgb4: Set fence flag for inv-local-stag work requests
RDMA/cxgb4: Support IB_WR_READ_WITH_INV opcode
RDMA/cxgb4: Only insert sq qid in lookup table
drivers/infiniband/Kconfig | 1 +
drivers/infiniband/Makefile | 1 +
drivers/infiniband/core/core_priv.h | 4 +-
drivers/infiniband/core/device.c | 6 +-
drivers/infiniband/core/mad.c | 4 +-
drivers/infiniband/core/sysfs.c | 21 +-
drivers/infiniband/hw/amso1100/c2_provider.c | 2 +-
drivers/infiniband/hw/cxgb3/iwch_provider.c | 2 +-
drivers/infiniband/hw/cxgb4/cq.c | 6 +-
drivers/infiniband/hw/cxgb4/device.c | 50 +-
drivers/infiniband/hw/cxgb4/iw_cxgb4.h | 1 +
drivers/infiniband/hw/cxgb4/mem.c | 11 +-
drivers/infiniband/hw/cxgb4/provider.c | 4 +-
drivers/infiniband/hw/cxgb4/qp.c | 33 +-
drivers/infiniband/hw/cxgb4/t4.h | 76 +-
drivers/infiniband/hw/ehca/ehca_main.c | 2 +-
drivers/infiniband/hw/ipath/Kconfig | 8 +-
drivers/infiniband/hw/ipath/Makefile | 6 +-
drivers/infiniband/hw/ipath/ipath_driver.c | 28 +-
drivers/infiniband/hw/ipath/ipath_iba6120.c | 1862 -----
drivers/infiniband/hw/ipath/ipath_iba7220.c | 2631 -------
drivers/infiniband/hw/ipath/ipath_kernel.h | 2 -
drivers/infiniband/hw/ipath/ipath_verbs.c | 2 +-
drivers/infiniband/hw/mlx4/main.c | 2 +-
drivers/infiniband/hw/mthca/mthca_provider.c | 2 +-
drivers/infiniband/hw/nes/nes_hw.c | 12 +-
drivers/infiniband/hw/nes/nes_nic.c | 72 +-
drivers/infiniband/hw/nes/nes_verbs.c | 2 +-
drivers/infiniband/hw/qib/Kconfig | 7 +
drivers/infiniband/hw/qib/Makefile | 15 +
drivers/infiniband/hw/qib/qib.h | 1439 ++++
drivers/infiniband/hw/qib/qib_6120_regs.h | 977 +++
drivers/infiniband/hw/qib/qib_7220.h | 156 +
drivers/infiniband/hw/qib/qib_7220_regs.h | 1496 ++++
drivers/infiniband/hw/qib/qib_7322_regs.h | 3163 ++++++++
drivers/infiniband/hw/qib/qib_common.h | 758 ++
drivers/infiniband/hw/qib/qib_cq.c | 484 ++
drivers/infiniband/hw/qib/qib_diag.c | 894 +++
drivers/infiniband/hw/qib/qib_dma.c | 182 +
drivers/infiniband/hw/qib/qib_driver.c | 665 ++
drivers/infiniband/hw/qib/qib_eeprom.c | 451 ++
drivers/infiniband/hw/qib/qib_file_ops.c | 2317 ++++++
drivers/infiniband/hw/qib/qib_fs.c | 613 ++
drivers/infiniband/hw/qib/qib_iba6120.c | 3588 +++++++++
drivers/infiniband/hw/qib/qib_iba7220.c | 4618 +++++++++++
drivers/infiniband/hw/qib/qib_iba7322.c | 8058 ++++++++++++++++++++
drivers/infiniband/hw/qib/qib_init.c | 1580 ++++
drivers/infiniband/hw/qib/qib_intr.c | 236 +
drivers/infiniband/hw/qib/qib_keys.c | 328 +
drivers/infiniband/hw/qib/qib_mad.c | 2173 ++++++
drivers/infiniband/hw/qib/qib_mad.h | 373 +
drivers/infiniband/hw/qib/qib_mmap.c | 174 +
drivers/infiniband/hw/qib/qib_mr.c | 503 ++
drivers/infiniband/hw/qib/qib_pcie.c | 738 ++
.../hw/{ipath/ipath_7220.h => qib/qib_pio_copy.c} | 53 +-
drivers/infiniband/hw/qib/qib_qp.c | 1255 +++
drivers/infiniband/hw/qib/qib_qsfp.c | 564 ++
drivers/infiniband/hw/qib/qib_qsfp.h | 184 +
drivers/infiniband/hw/qib/qib_rc.c | 2288 ++++++
drivers/infiniband/hw/qib/qib_ruc.c | 817 ++
.../hw/{ipath/ipath_sd7220.c => qib/qib_sd7220.c} | 859 +--
.../ipath_sd7220_img.c => qib/qib_sd7220_img.c} | 19 +-
drivers/infiniband/hw/qib/qib_sdma.c | 973 +++
drivers/infiniband/hw/qib/qib_srq.c | 375 +
drivers/infiniband/hw/qib/qib_sysfs.c | 691 ++
drivers/infiniband/hw/qib/qib_twsi.c | 498 ++
drivers/infiniband/hw/qib/qib_tx.c | 557 ++
drivers/infiniband/hw/qib/qib_uc.c | 555 ++
drivers/infiniband/hw/qib/qib_ud.c | 607 ++
drivers/infiniband/hw/qib/qib_user_pages.c | 157 +
drivers/infiniband/hw/qib/qib_user_sdma.c | 897 +++
.../hw/{ipath/ipath_7220.h => qib/qib_user_sdma.h} | 43 +-
drivers/infiniband/hw/qib/qib_verbs.c | 2248 ++++++
drivers/infiniband/hw/qib/qib_verbs.h | 1100 +++
drivers/infiniband/hw/qib/qib_verbs_mcast.c | 368 +
.../hw/{ipath/ipath_7220.h => qib/qib_wc_ppc64.c} | 49 +-
drivers/infiniband/hw/qib/qib_wc_x86_64.c | 171 +
drivers/net/mlx4/icm.c | 36 +-
include/rdma/ib_verbs.h | 4 +-
79 files changed, 51016 insertions(+), 5191 deletions(-)
delete mode 100644 drivers/infiniband/hw/ipath/ipath_iba6120.c
delete mode 100644 drivers/infiniband/hw/ipath/ipath_iba7220.c
create mode 100644 drivers/infiniband/hw/qib/Kconfig
create mode 100644 drivers/infiniband/hw/qib/Makefile
create mode 100644 drivers/infiniband/hw/qib/qib.h
create mode 100644 drivers/infiniband/hw/qib/qib_6120_regs.h
create mode 100644 drivers/infiniband/hw/qib/qib_7220.h
create mode 100644 drivers/infiniband/hw/qib/qib_7220_regs.h
create mode 100644 drivers/infiniband/hw/qib/qib_7322_regs.h
create mode 100644 drivers/infiniband/hw/qib/qib_common.h
create mode 100644 drivers/infiniband/hw/qib/qib_cq.c
create mode 100644 drivers/infiniband/hw/qib/qib_diag.c
create mode 100644 drivers/infiniband/hw/qib/qib_dma.c
create mode 100644 drivers/infiniband/hw/qib/qib_driver.c
create mode 100644 drivers/infiniband/hw/qib/qib_eeprom.c
create mode 100644 drivers/infiniband/hw/qib/qib_file_ops.c
create mode 100644 drivers/infiniband/hw/qib/qib_fs.c
create mode 100644 drivers/infiniband/hw/qib/qib_iba6120.c
create mode 100644 drivers/infiniband/hw/qib/qib_iba7220.c
create mode 100644 drivers/infiniband/hw/qib/qib_iba7322.c
create mode 100644 drivers/infiniband/hw/qib/qib_init.c
create mode 100644 drivers/infiniband/hw/qib/qib_intr.c
create mode 100644 drivers/infiniband/hw/qib/qib_keys.c
create mode 100644 drivers/infiniband/hw/qib/qib_mad.c
create mode 100644 drivers/infiniband/hw/qib/qib_mad.h
create mode 100644 drivers/infiniband/hw/qib/qib_mmap.c
create mode 100644 drivers/infiniband/hw/qib/qib_mr.c
create mode 100644 drivers/infiniband/hw/qib/qib_pcie.c
copy drivers/infiniband/hw/{ipath/ipath_7220.h => qib/qib_pio_copy.c} (57%)
create mode 100644 drivers/infiniband/hw/qib/qib_qp.c
create mode 100644 drivers/infiniband/hw/qib/qib_qsfp.c
create mode 100644 drivers/infiniband/hw/qib/qib_qsfp.h
create mode 100644 drivers/infiniband/hw/qib/qib_rc.c
create mode 100644 drivers/infiniband/hw/qib/qib_ruc.c
rename drivers/infiniband/hw/{ipath/ipath_sd7220.c => qib/qib_sd7220.c} (57%)
rename drivers/infiniband/hw/{ipath/ipath_sd7220_img.c => qib/qib_sd7220_img.c} (99%)
create mode 100644 drivers/infiniband/hw/qib/qib_sdma.c
create mode 100644 drivers/infiniband/hw/qib/qib_srq.c
create mode 100644 drivers/infiniband/hw/qib/qib_sysfs.c
create mode 100644 drivers/infiniband/hw/qib/qib_twsi.c
create mode 100644 drivers/infiniband/hw/qib/qib_tx.c
create mode 100644 drivers/infiniband/hw/qib/qib_uc.c
create mode 100644 drivers/infiniband/hw/qib/qib_ud.c
create mode 100644 drivers/infiniband/hw/qib/qib_user_pages.c
create mode 100644 drivers/infiniband/hw/qib/qib_user_sdma.c
copy drivers/infiniband/hw/{ipath/ipath_7220.h => qib/qib_user_sdma.h} (57%)
create mode 100644 drivers/infiniband/hw/qib/qib_verbs.c
create mode 100644 drivers/infiniband/hw/qib/qib_verbs.h
create mode 100644 drivers/infiniband/hw/qib/qib_verbs_mcast.c
rename drivers/infiniband/hw/{ipath/ipath_7220.h => qib/qib_wc_ppc64.c} (57%)
create mode 100644 drivers/infiniband/hw/qib/qib_wc_x86_64.c
--
Roland Dreier <rolandd@cisco.com> || For corporate legal information go to:
http://www.cisco.com/web/about/doing_business/legal/cri/index.html
^ permalink raw reply [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
@ 2010-05-18 3:37 Roland Dreier
0 siblings, 0 replies; 223+ messages in thread
From: Roland Dreier @ 2010-05-18 3:37 UTC (permalink / raw)
To: torvalds, linux-kernel, akpm; +Cc: linux-rdma
Linus, please pull from
master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This tree is also available from kernel.org mirrors at:
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This will get the first batch InfinBand/RDMA changes for the 2.6.35
merge window:
Chien Tung (1):
RDMA/nes: Make nesadapter->phy_lock usage consistent
Dan Carpenter (1):
IB/iser: Fix error flow in iser_create_ib_conn_res()
FUJITA Tomonori (3):
RDMA/cxgb3: Use the dma state API instead of pci equivalents
RDMA/amso1100: Use the dma state API instead of pci equivalents
IB/mthca: Use the dma state API instead of pci equivalents
Julia Lawall (1):
IB/core: Use kmemdup() instead of kmalloc()+memcpy()
Or Gerlitz (4):
IPoIB: Allow disabling/enabling TSO on the fly through ethtool
IB/iser: Add asynchronous event handler
IB/iser: Remove buggy back-pointer setting
IB/iser: Enhance disconnection logic for multi-pathing
Roland Dreier (5):
IB: Explicitly rule out llseek to avoid BKL in default_llseek()
RDMA/nes: Make unnecessarily global functions static
RDMA/cxgb3: Shrink .text with compile-time init of handlers arrays
MAINTAINERS: Add cxgb4 and iw_cxgb4 entries
Merge branches 'amso1100', 'bkl', 'cma', 'cxgb3', 'cxgb4', 'ipoib', 'iser', 'masked-atomics', 'misc', 'mthca' and 'nes' into for-next
Steve Wise (2):
RDMA/cxgb3: Don't free skbs on NET_XMIT_* indications from LLD
RDMA/cxgb4: Add driver for Chelsio T4 RNIC
Tetsuo Handa (1):
RDMA/cma: Randomize local port allocation
Vladimir Sokolovsky (2):
IB/core: Add support for masked atomic operations
IB/mlx4: Add support for masked atomic operations
MAINTAINERS | 14 +
drivers/infiniband/Kconfig | 1 +
drivers/infiniband/Makefile | 1 +
drivers/infiniband/core/cma.c | 74 +-
drivers/infiniband/core/mad.c | 4 +-
drivers/infiniband/core/ucm.c | 3 +-
drivers/infiniband/core/ucma.c | 4 +-
drivers/infiniband/core/user_mad.c | 12 +-
drivers/infiniband/core/uverbs_main.c | 11 +-
drivers/infiniband/hw/amso1100/c2.h | 2 +-
drivers/infiniband/hw/amso1100/c2_alloc.c | 4 +-
drivers/infiniband/hw/amso1100/c2_cq.c | 4 +-
drivers/infiniband/hw/amso1100/c2_mq.h | 2 +-
drivers/infiniband/hw/amso1100/c2_provider.h | 2 +-
drivers/infiniband/hw/amso1100/c2_rnic.c | 12 +-
drivers/infiniband/hw/cxgb3/cxio_hal.c | 12 +-
drivers/infiniband/hw/cxgb3/cxio_hal.h | 2 +-
drivers/infiniband/hw/cxgb3/cxio_wr.h | 4 +-
drivers/infiniband/hw/cxgb3/iwch.c | 2 -
drivers/infiniband/hw/cxgb3/iwch_cm.c | 133 +-
drivers/infiniband/hw/cxgb4/Kconfig | 18 +
drivers/infiniband/hw/cxgb4/Makefile | 5 +
drivers/infiniband/hw/cxgb4/cm.c | 2374 +++++++++++++++++++++++++
drivers/infiniband/hw/cxgb4/cq.c | 882 +++++++++
drivers/infiniband/hw/cxgb4/device.c | 520 ++++++
drivers/infiniband/hw/cxgb4/ev.c | 193 ++
drivers/infiniband/hw/cxgb4/iw_cxgb4.h | 745 ++++++++
drivers/infiniband/hw/cxgb4/mem.c | 811 +++++++++
drivers/infiniband/hw/cxgb4/provider.c | 518 ++++++
drivers/infiniband/hw/cxgb4/qp.c | 1577 ++++++++++++++++
drivers/infiniband/hw/cxgb4/resource.c | 417 +++++
drivers/infiniband/hw/cxgb4/t4.h | 550 ++++++
drivers/infiniband/hw/cxgb4/t4fw_ri_api.h | 829 +++++++++
drivers/infiniband/hw/cxgb4/user.h | 66 +
drivers/infiniband/hw/mlx4/cq.c | 8 +
drivers/infiniband/hw/mlx4/main.c | 1 +
drivers/infiniband/hw/mlx4/qp.c | 50 +-
drivers/infiniband/hw/mthca/mthca_allocator.c | 8 +-
drivers/infiniband/hw/mthca/mthca_eq.c | 6 +-
drivers/infiniband/hw/mthca/mthca_provider.h | 2 +-
drivers/infiniband/hw/nes/nes_hw.c | 12 +-
drivers/infiniband/hw/nes/nes_nic.c | 16 +-
drivers/infiniband/hw/nes/nes_utils.c | 10 -
drivers/infiniband/hw/nes/nes_verbs.c | 2 +-
drivers/infiniband/ulp/ipoib/ipoib_ethtool.c | 20 +
drivers/infiniband/ulp/iser/iscsi_iser.c | 9 +-
drivers/infiniband/ulp/iser/iscsi_iser.h | 4 +-
drivers/infiniband/ulp/iser/iser_verbs.c | 115 +-
include/linux/mlx4/device.h | 4 +-
include/linux/mlx4/qp.h | 7 +
include/rdma/ib_verbs.h | 7 +
51 files changed, 9838 insertions(+), 251 deletions(-)
create mode 100644 drivers/infiniband/hw/cxgb4/Kconfig
create mode 100644 drivers/infiniband/hw/cxgb4/Makefile
create mode 100644 drivers/infiniband/hw/cxgb4/cm.c
create mode 100644 drivers/infiniband/hw/cxgb4/cq.c
create mode 100644 drivers/infiniband/hw/cxgb4/device.c
create mode 100644 drivers/infiniband/hw/cxgb4/ev.c
create mode 100644 drivers/infiniband/hw/cxgb4/iw_cxgb4.h
create mode 100644 drivers/infiniband/hw/cxgb4/mem.c
create mode 100644 drivers/infiniband/hw/cxgb4/provider.c
create mode 100644 drivers/infiniband/hw/cxgb4/qp.c
create mode 100644 drivers/infiniband/hw/cxgb4/resource.c
create mode 100644 drivers/infiniband/hw/cxgb4/t4.h
create mode 100644 drivers/infiniband/hw/cxgb4/t4fw_ri_api.h
create mode 100644 drivers/infiniband/hw/cxgb4/user.h
--
Roland Dreier <rolandd@cisco.com> || For corporate legal information go to:
http://www.cisco.com/web/about/doing_business/legal/cri/index.html
^ permalink raw reply [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
@ 2010-04-09 16:13 Roland Dreier
0 siblings, 0 replies; 223+ messages in thread
From: Roland Dreier @ 2010-04-09 16:13 UTC (permalink / raw)
To: torvalds, akpm; +Cc: linux-rdma, linux-kernel
Linus, please pull from
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This will get a few small fixes that have trickled in:
Chien Tung (1):
RDMA/nes: Correct cap.max_inline_data assignment in nes_query_qp()
Dan Carpenter (1):
IB/mlx4: Check correct variable for allocation failure
Jani Nikula (1):
IB/cm: Fix device_create() return value check
Roland Dreier (1):
Merge branches 'cma', 'misc', 'mlx4' and 'nes' into for-linus
shefty (1):
RDMA/cm: Set num_paths when manually assigning path records
drivers/infiniband/core/cm.c | 2 +-
drivers/infiniband/core/cma.c | 1 +
drivers/infiniband/hw/mlx4/mr.c | 2 +-
drivers/infiniband/hw/nes/nes_verbs.c | 9 ++++-----
4 files changed, 7 insertions(+), 7 deletions(-)
--
Roland Dreier <rolandd@cisco.com> || For corporate legal information go to:
http://www.cisco.com/web/about/doing_business/legal/cri/index.html
^ permalink raw reply [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
@ 2010-03-12 18:56 Roland Dreier
0 siblings, 0 replies; 223+ messages in thread
From: Roland Dreier @ 2010-03-12 18:56 UTC (permalink / raw)
To: torvalds, akpm; +Cc: linux-rdma, linux-kernel
Linus, please pull from
master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This tree is also available from kernel.org mirrors at:
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This will get a few small fixes:
Chien Tung (2):
RDMA/nes: Clear stall bit before destroying NIC QP
RDMA/nes: Fix CX4 link problem in back-to-back configuration
Eli Cohen (1):
IPoIB: Fix TX queue lockup with mixed UD/CM traffic
Faisal Latif (1):
RDMA/nes: Set assume_aligned_header bit
Or Gerlitz (1):
IPoIB: Include return code in trace message for ib_post_send() failures
Roland Dreier (1):
Merge branches 'cxgb3', 'ipoib', 'misc' and 'nes' into for-next
Steve Wise (2):
IB/mad: Ignore iWARP devices on device removal
RDMA/cxgb3: Wait at least one schedule cycle during device removal
drivers/infiniband/core/mad.c | 3 +++
drivers/infiniband/hw/cxgb3/iwch.c | 2 ++
drivers/infiniband/hw/nes/nes_hw.c | 8 ++++++++
drivers/infiniband/hw/nes/nes_hw.h | 1 +
drivers/infiniband/hw/nes/nes_nic.c | 30 ++++++++++++++++++++++++++++--
drivers/infiniband/hw/nes/nes_verbs.c | 1 +
drivers/infiniband/ulp/ipoib/ipoib_cm.c | 10 +++++++---
drivers/infiniband/ulp/ipoib/ipoib_ib.c | 9 +++++----
8 files changed, 55 insertions(+), 9 deletions(-)
--
Roland Dreier <rolandd@cisco.com>
For corporate legal information go to:
http://www.cisco.com/web/about/doing_business/legal/cri/index.html
^ permalink raw reply [flat|nested] 223+ messages in thread
* Re: [GIT PULL] please pull infiniband.git
2010-03-02 7:56 Roland Dreier
@ 2010-03-02 11:52 ` Tziporet Koren
0 siblings, 0 replies; 223+ messages in thread
From: Tziporet Koren @ 2010-03-02 11:52 UTC (permalink / raw)
To: Roland Dreier; +Cc: torvalds, akpm, linux-kernel, linux-rdma
On 3/2/2010 9:56 AM, Roland Dreier wrote:
> Linus, please pull from
>
> master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
>
> This tree is also available from kernel.org mirrors at:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
>
> This will get my current pile for the 2.6.34 merge window:
>
What about the pending patches for:
- XRC
- IBoE
- SRIOV support for mlx4
Thanks
Tziporet
^ permalink raw reply [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
@ 2010-03-02 7:56 Roland Dreier
2010-03-02 11:52 ` Tziporet Koren
0 siblings, 1 reply; 223+ messages in thread
From: Roland Dreier @ 2010-03-02 7:56 UTC (permalink / raw)
To: torvalds, akpm; +Cc: linux-kernel, linux-rdma
Linus, please pull from
master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This tree is also available from kernel.org mirrors at:
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This will get my current pile for the 2.6.34 merge window:
Alexander Chiang (18):
IB/uverbs: Convert *cdev to cdev in struct ib_uverbs_device
IB/uverbs: Remove dev_table
IB/uverbs: Use stack variable 'devnum' in ib_uverbs_add_one
IB/uverbs: use stack variable 'base' in ib_uverbs_add_one
IB/uverbs: Increase maximum devices supported
IB/uverbs: Pack struct ib_uverbs_event_file tighter
IB/uverbs: Whitespace cleanup
IB/umad: Convert *cdev to cdev in struct ib_umad_port
IB/umad: Remove port_table[]
IB/umad: Use stack variable 'devnum' in ib_umad_init_port
IB/umad: Use stack variable 'base' in ib_umad_init_port
IB/umad: Increase maximum devices supported
IB/umad: Clean whitespace
IB/ucm: Use stack variable 'devnum' in ib_ucm_add_one
IB/ucm: Use stack variable 'base' in ib_ucm_add_one
IB/ucm: Increase maximum devices supported
IB/ucm: Clean whitespace errors
IB/core: Pack struct ib_device a little tighter
Alexander Schmidt (3):
IB/ehca: Do not turn off irqs in tasklet context
IB/ehca: Allow access for ib_query_qp()
IB/ehca: Require in_wc in process_mad()
Bart Van Assche (1):
IB/srp: Split send and recieve CQs to reduce number of interrupts
Chien Tung (1):
RDMA/nes: Add support for KR device id 0x0110
Eli Cohen (2):
IB/mlx4: Simplify retrieval of ib_device
IB/core: Fix and clean up ib_ud_header_init()
Faisal Latif (3):
RDMA/nes: Use atomic counters for CM listener create and destroy
RDMA/nes: Fix crash when listener destroyed during loopback setup
RDMA/nes: Multiple disconnects cause crash during AE handling
Jiri Slaby (1):
RDMA: Use rlimit helpers
Or Gerlitz (11):
IPoIB: Remove TX moderation settings from ethtool support
RDMA/nes: Change WQ overflow return code
IB/iser: Revert commit bba7ebb "avoid recv buffer exhaustion"
IB/iser: New receive buffer posting logic
IB/iser: Remove atomic counter for posted receive buffers
IB/iser: Use different CQ for send completions
IB/iser: Simplify send flow/descriptors
IB/iser: Use atomic allocations
IB/iser: Remove unnecessary connection checks
IB/iser: Use libiscsi passthrough mode
IB/iser: Remove redundant locking from iser scsi command response flow
Roland Dreier (11):
IB/uverbs: Use anon_inodes instead of private infinibandeventfs
IB/srp: Clean up error path in srp_create_target_ib()
Merge branch 'cma' into for-next
Merge branch 'cxgb3' into for-next
Merge branch 'ehca' into for-next
Merge branch 'ipoib' into for-next
Merge branch 'iser' into for-next
Merge branch 'mlx4' into for-next
Merge branch 'nes' into for-next
Merge branch 'srp' into for-next
Merge branch 'misc' into for-next
Sean Hefty (1):
RDMA/cm: Remove unused definition of RDMA_PS_SCTP
Steve Wise (5):
RDMA/cxgb3: Remove BUG_ON() on CQ rearm failure
RDMA/cxgb3: Doorbell overflow avoidance and recovery
RDMA/cxgb3: Increase the max CQ depth
RDMA/cxgb3: Don't allocate the SW queue for user mode CQs
RDMA/cxgb3: Mark RDMA device with CXIO_ERROR_FATAL when removing
drivers/infiniband/Kconfig | 1 +
drivers/infiniband/core/ucm.c | 63 +++-
drivers/infiniband/core/ud_header.c | 14 +-
drivers/infiniband/core/umem.c | 2 +-
drivers/infiniband/core/user_mad.c | 173 +++++----
drivers/infiniband/core/uverbs.h | 11 +-
drivers/infiniband/core/uverbs_main.c | 234 +++++------
drivers/infiniband/hw/cxgb3/cxio_hal.c | 15 +-
drivers/infiniband/hw/cxgb3/cxio_hal.h | 4 +-
drivers/infiniband/hw/cxgb3/cxio_wr.h | 17 +-
drivers/infiniband/hw/cxgb3/iwch.c | 80 ++++-
drivers/infiniband/hw/cxgb3/iwch.h | 2 +
drivers/infiniband/hw/cxgb3/iwch_provider.c | 2 +-
drivers/infiniband/hw/cxgb3/iwch_qp.c | 9 +-
drivers/infiniband/hw/ehca/ehca_irq.c | 5 +-
drivers/infiniband/hw/ehca/ehca_qp.c | 4 +-
drivers/infiniband/hw/ehca/ehca_sqp.c | 2 +-
drivers/infiniband/hw/ipath/ipath_user_pages.c | 3 +-
drivers/infiniband/hw/mlx4/qp.c | 4 +-
drivers/infiniband/hw/mthca/mthca_qp.c | 2 +-
drivers/infiniband/hw/nes/nes.c | 1 +
drivers/infiniband/hw/nes/nes.h | 9 +-
drivers/infiniband/hw/nes/nes_cm.c | 11 +-
drivers/infiniband/hw/nes/nes_hw.c | 488 ++++++++++++-----------
drivers/infiniband/hw/nes/nes_hw.h | 2 +-
drivers/infiniband/hw/nes/nes_nic.c | 61 +---
drivers/infiniband/hw/nes/nes_verbs.c | 6 +-
drivers/infiniband/ulp/ipoib/ipoib_ethtool.c | 10 +-
drivers/infiniband/ulp/iser/iscsi_iser.c | 47 ++-
drivers/infiniband/ulp/iser/iscsi_iser.h | 97 +++---
drivers/infiniband/ulp/iser/iser_initiator.c | 506 ++++++++----------------
drivers/infiniband/ulp/iser/iser_memory.c | 64 +---
drivers/infiniband/ulp/iser/iser_verbs.c | 281 +++++++-------
drivers/infiniband/ulp/srp/ib_srp.c | 91 +++--
drivers/infiniband/ulp/srp/ib_srp.h | 6 +-
drivers/net/cxgb3/adapter.h | 5 +
drivers/net/cxgb3/cxgb3_main.c | 57 +++-
drivers/net/cxgb3/cxgb3_offload.h | 5 +-
drivers/net/cxgb3/regs.h | 16 +
drivers/net/cxgb3/sge.c | 10 +-
drivers/net/cxgb3/t3_hw.c | 5 +-
include/rdma/ib_pack.h | 1 +
include/rdma/ib_verbs.h | 4 +-
include/rdma/rdma_cm.h | 1 -
44 files changed, 1221 insertions(+), 1210 deletions(-)
--
Roland Dreier <rolandd@cisco.com>
For corporate legal information go to:
http://www.cisco.com/web/about/doing_business/legal/cri/index.html
^ permalink raw reply [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
@ 2010-02-10 20:03 Roland Dreier
0 siblings, 0 replies; 223+ messages in thread
From: Roland Dreier @ 2010-02-10 20:03 UTC (permalink / raw)
To: torvalds, akpm; +Cc: linux-kernel, linux-rdma
Linus, please pull from
master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This tree is also available from kernel.org mirrors at:
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This will get one partial revert needed to fix a regression due to a
behavior change introduced in 2.6.33-rc1 that breaks some existing apps:
Sean Hefty (1):
RDMA/cm: Revert association of an RDMA device when binding to loopback
drivers/infiniband/core/cma.c | 4 +---
1 files changed, 1 insertions(+), 3 deletions(-)
diff --git a/drivers/infiniband/core/cma.c b/drivers/infiniband/core/cma.c
index cc9b594..875e34e 100644
--- a/drivers/infiniband/core/cma.c
+++ b/drivers/infiniband/core/cma.c
@@ -2115,9 +2115,7 @@ int rdma_bind_addr(struct rdma_cm_id *id, struct sockaddr *addr)
if (ret)
goto err1;
- if (cma_loopback_addr(addr)) {
- ret = cma_bind_loopback(id_priv);
- } else if (!cma_zero_addr(addr)) {
+ if (!cma_any_addr(addr)) {
ret = rdma_translate_ip(addr, &id->route.addr.dev_addr);
if (ret)
goto err1;
--
Roland Dreier <rolandd@cisco.com>
For corporate legal information go to:
http://www.cisco.com/web/about/doing_business/legal/cri/index.html
^ permalink raw reply related [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
@ 2010-01-07 19:30 Roland Dreier
0 siblings, 0 replies; 223+ messages in thread
From: Roland Dreier @ 2010-01-07 19:30 UTC (permalink / raw)
To: torvalds, akpm; +Cc: linux-rdma, linux-kernel
Linus, please pull from
master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This tree is also available from kernel.org mirrors at:
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This will get a few very small fixes that have trickled in over the
holidays.
Eli Cohen (1):
mlx4_core: Fix cleanup in __mlx4_init_one() error path
Jack Morgenstein (1):
IB/mlx4: Initialize SRQ scatter entries when creating an SRQ
Or Gerlitz (1):
IB/mlx4: Fix queue overflow check in post_recv
Robert P. J. Day (1):
IB/addr: Correct CONFIG_IPv6 to CONFIG_IPV6
Roland Dreier (1):
Merge branches 'misc' and 'mlx4' into for-next
drivers/infiniband/core/cma.c | 2 +-
drivers/infiniband/hw/mlx4/qp.c | 2 +-
drivers/infiniband/hw/mlx4/srq.c | 6 ++++++
drivers/net/mlx4/main.c | 2 +-
4 files changed, 9 insertions(+), 3 deletions(-)
^ permalink raw reply [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
@ 2009-12-16 7:41 Roland Dreier
0 siblings, 0 replies; 223+ messages in thread
From: Roland Dreier @ 2009-12-16 7:41 UTC (permalink / raw)
To: torvalds, akpm; +Cc: linux-kernel, linux-rdma
Linus, please pull from
master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This tree is also available from kernel.org mirrors at:
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This will get all my pending 2.6.33 merge window stuff. Sorry for
being so late, but I'm just now out from under my flu-induced
backlog. None of the stuff here is in any way controversial: it's
pretty much all small fixes scattered around, with no major changes
included (we're saving those for 2.6.34).
Akinobu Mita (1):
IB/ipath: Use bitmap_weight()
Alexander Schmidt (1):
IB/ehca: Rework destroy_eq()
Bart Van Assche (2):
IB: Clarify the documentation of ib_post_send()
IB: Fix typo in ipoib.txt
Chien Tung (7):
RDMA/nes: Add support for IB_WR_*INV
RDMA/nes: Correct fast memory registration implementation
RDMA/nes: Add additional SFP+ PHY uC status check and PHY reset
RDMA/nes: Implement IB_SIGNAL_ALL_WR as an iWARP extension
RDMA/nes: Clean up struct nes_qp
RDMA/nes: Add max_cqe check to nes_create_cq()
RDMA/nes: Update copyright and branding string
David J. Wilder (1):
IPoIB: Clear ipoib_neigh.dgid in ipoib_neigh_alloc()
Eli Cohen (2):
IB/mlx4: Remove unneeded code
IB/mlx4: Remove limitation on LSO header size
Eric Dumazet (1):
RDMA/addr: Use appropriate locking with for_each_netdev()
Faisal Latif (11):
RDMA/nes: Fix MAX_CM_BUFFER define
RDMA/nes: Fix query of ORD values
RDMA/nes: MPA request/response error checking
RDMA/nes: Resource not freed for REJECTed connections
RDMA/nes: Fix crash in nes_accept()
RDMA/nes: Abnormal listener exit causes loopback node crash
RDMA/nes: Fix Xansation test crash on cm_node ref_count
RDMA/nes: Check for zero STag
RDMA/nes: Free kmap() resources
RDMA/nes: FIN during MPA startup causes timeout
RDMA/nes: Fix stale ARP issue
Frank Zago (5):
RDMA/nes: In nes_post_send() always set bad_wr on error
RDMA/nes: In nes_post_recv() always set bad_wr on error
RDMA/amso1100: Fix error paths in post_send and post_recv
IB/ehca: Fix error paths in post_send and post_recv
RDMA/cxgb3: Fix error paths in post_send and post_recv
Jason Gunthorpe (2):
RDMA/cma: Correct detection of SA Created MGID
RDMA/cma: Fix AF_INET6 support in multicast joining
Julia Lawall (1):
RDMA/nes: Pass correct size to ioremap_nocache()
Or Gerlitz (1):
IB/iser: Rewrite SG handling for RDMA logic
Roel Kluin (1):
IB/uverbs: Fix return of PTR_ERR() of wrong pointer in ib_uverbs_get_context()
Roland Dreier (1):
Merge branches 'amso1100', 'cma', 'cxgb3', 'ehca', 'ipath', 'ipoib', 'iser', 'misc', 'mlx4' and 'nes' into for-next
Sean Hefty (7):
RDMA/ucma: Add option to manually set IB path
RDMA/cma: Replace net_device pointer with index
IB/addr: Verify source and destination address families match
IB/addr: Store net_device type instead of translating to RDMA transport
RDMA/cm: fix loopback address support
IB/addr: Simplify resolving IPv4 addresses
IB/addr: Fix IPv6 routing lookup
Steve Wise (1):
RDMA/cxgb3: Remove BUG_ON() on CQ rearm failure
Yevgeny Petrilin (1):
mlx4_core: Fix parsing of reserved EQ cap
Documentation/infiniband/ipoib.txt | 10 +-
drivers/infiniband/core/addr.c | 275 ++++------
drivers/infiniband/core/cma.c | 133 +++--
drivers/infiniband/core/sa_query.c | 6 +
drivers/infiniband/core/ucma.c | 57 ++-
drivers/infiniband/core/uverbs_cmd.c | 2 +-
drivers/infiniband/hw/amso1100/c2_qp.c | 14 +-
drivers/infiniband/hw/cxgb3/iwch_qp.c | 32 +-
drivers/infiniband/hw/ehca/ehca_classes.h | 1 +
drivers/infiniband/hw/ehca/ehca_eq.c | 9 +-
drivers/infiniband/hw/ehca/ehca_main.c | 2 +-
drivers/infiniband/hw/ehca/ehca_reqs.c | 67 +--
drivers/infiniband/hw/ipath/ipath_driver.c | 10 +-
drivers/infiniband/hw/mlx4/main.c | 2 +-
drivers/infiniband/hw/mlx4/qp.c | 25 +-
drivers/infiniband/hw/nes/Kconfig | 9 +-
drivers/infiniband/hw/nes/nes.c | 5 +-
drivers/infiniband/hw/nes/nes.h | 2 +-
drivers/infiniband/hw/nes/nes_cm.c | 201 +++++--
drivers/infiniband/hw/nes/nes_cm.h | 7 +-
drivers/infiniband/hw/nes/nes_context.h | 2 +-
drivers/infiniband/hw/nes/nes_hw.c | 40 +-
drivers/infiniband/hw/nes/nes_hw.h | 29 +-
drivers/infiniband/hw/nes/nes_nic.c | 2 +-
drivers/infiniband/hw/nes/nes_user.h | 3 +-
drivers/infiniband/hw/nes/nes_utils.c | 2 +-
drivers/infiniband/hw/nes/nes_verbs.c | 817 ++++++++++++++--------------
drivers/infiniband/hw/nes/nes_verbs.h | 23 +-
drivers/infiniband/ulp/ipoib/ipoib_main.c | 1 +
drivers/infiniband/ulp/iser/iser_memory.c | 122 ++---
drivers/net/mlx4/fw.c | 3 +-
include/linux/mlx4/device.h | 1 +
include/rdma/ib_addr.h | 36 +-
include/rdma/ib_sa.h | 6 +
include/rdma/ib_user_sa.h | 16 +
include/rdma/ib_verbs.h | 5 +
include/rdma/rdma_user_cm.h | 6 +-
net/rds/ib.c | 4 +-
net/rds/iw.c | 4 +-
39 files changed, 1084 insertions(+), 907 deletions(-)
^ permalink raw reply [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
@ 2009-10-28 18:07 Roland Dreier
0 siblings, 0 replies; 223+ messages in thread
From: Roland Dreier @ 2009-10-28 18:07 UTC (permalink / raw)
To: torvalds, akpm; +Cc: linux-rdma, linux-kernel
Linus, please pull from
master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This tree is also available from kernel.org mirrors at:
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This will just get one PCI device ID addition:
Eli Cohen (1):
mlx4_core: Add a new supported 40 GigE device ID
drivers/net/mlx4/main.c | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
diff --git a/drivers/net/mlx4/main.c b/drivers/net/mlx4/main.c
index 5dd7225..291a505 100644
--- a/drivers/net/mlx4/main.c
+++ b/drivers/net/mlx4/main.c
@@ -1282,6 +1282,7 @@ static struct pci_device_id mlx4_pci_table[] = {
{ PCI_VDEVICE(MELLANOX, 0x6372) }, /* MT25458 ConnectX EN 10GBASE-T 10GigE */
{ PCI_VDEVICE(MELLANOX, 0x675a) }, /* MT25458 ConnectX EN 10GBASE-T+Gen2 10GigE */
{ PCI_VDEVICE(MELLANOX, 0x6764) }, /* MT26468 ConnectX EN 10GigE PCIe gen2*/
+ { PCI_VDEVICE(MELLANOX, 0x6746) }, /* MT26438 ConnectX EN 40GigE PCIe gen2 5GT/s */
{ PCI_VDEVICE(MELLANOX, 0x676e) }, /* MT26478 ConnectX2 40GigE PCIe gen2 */
{ 0, }
};
^ permalink raw reply related [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
@ 2009-10-09 17:08 Roland Dreier
0 siblings, 0 replies; 223+ messages in thread
From: Roland Dreier @ 2009-10-09 17:08 UTC (permalink / raw)
To: torvalds, akpm; +Cc: linux-rdma, linux-kernel
Linus, please pull from
master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This tree is also available from kernel.org mirrors at:
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This will get another small batch of small RDMA/InfiniBand fixes, and
one device ID addition:
Bart Van Assche (1):
IB: Fix typo in udev rule documentation
David J. Wilder (1):
RDMA/addr: Fix resolution of local IPv6 addresses
Roland Dreier (1):
Merge branches 'cxgb3', 'misc' and 'mlx4' into for-next
Steve Wise (2):
RDMA/iwcm: Don't call provider reject func with irqs disabled
RDMA/cxgb3: Handle NULL inetdev pointer in iwch_query_port()
Yevgeny Petrilin (1):
mlx4_core: Add 40GigE device ID
Documentation/infiniband/user_mad.txt | 4 ++--
Documentation/infiniband/user_verbs.txt | 2 +-
drivers/infiniband/core/addr.c | 2 +-
drivers/infiniband/core/iwcm.c | 2 ++
drivers/infiniband/hw/cxgb3/iwch_provider.c | 11 +++++++----
drivers/net/mlx4/main.c | 1 +
6 files changed, 14 insertions(+), 8 deletions(-)
^ permalink raw reply [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
@ 2009-09-24 19:45 Roland Dreier
0 siblings, 0 replies; 223+ messages in thread
From: Roland Dreier @ 2009-09-24 19:45 UTC (permalink / raw)
To: torvalds, akpm; +Cc: linux-kernel, linux-rdma, general
Linus, please pull from
master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This tree is also available from kernel.org mirrors at:
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This will get the batch of RDMA/InfiniBand changes for the 2.6.32
merge window:
The following changes since commit 86d710146fb9975f04c505ec78caa43d227c1018:
Linus Torvalds (1):
Merge git://git.linux-nfs.org/projects/trondmy/nfs-2.6
are available in the git repository at:
master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
Eli Cohen (1):
mlx4_core: Pass cache line size to device FW
Jack Morgenstein (1):
IB/mthca: Fix access to freed memory in catastrophic event handling
Julia Lawall (1):
RDMA/nes: Remove duplicate .ndo_set_mac_address field initialization
Moni Shoua (1):
IPoIB: Don't turn on carrier for a non-active port
Roland Dreier (2):
IB/mad: Fix lock-lock-timer deadlock in RMPP code
Merge branches 'ipoib', 'mad', 'mlx4', 'mthca' and 'nes' into for-linus
drivers/infiniband/core/mad_rmpp.c | 17 +++++++++++++----
drivers/infiniband/hw/mthca/mthca_catas.c | 11 ++++++++---
drivers/infiniband/hw/nes/nes_nic.c | 1 -
drivers/infiniband/ulp/ipoib/ipoib_multicast.c | 7 +++++++
drivers/net/mlx4/fw.c | 5 +++++
5 files changed, 33 insertions(+), 8 deletions(-)
^ permalink raw reply [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
@ 2009-09-11 4:23 Roland Dreier
0 siblings, 0 replies; 223+ messages in thread
From: Roland Dreier @ 2009-09-11 4:23 UTC (permalink / raw)
To: torvalds, akpm; +Cc: linux-rdma, general, linux-kernel
Linus, please pull from
master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This tree is also available from kernel.org mirrors at:
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This will get the batch of RDMA/InfiniBand changes for the 2.6.32
merge window:
Alexander Schmidt (1):
IB/ehca: Make port autodetect mode the default
Arputham Benjamin (2):
mlx4_core: Distinguish multiple devices in /proc/interrupts
IB/mthca: Distinguish multiple devices in /proc/interrupts
Chien Tung (1):
RDMA/nes: Map MTU to IB_MTU_* and correctly report link state
Don Wood (10):
RDMA/nes: Update refcnt during disconnect
RDMA/nes: Allocate work item for disconnect event handling
RDMA/nes: Change memory allocation for cqp request to GFP_ATOMIC
RDMA/nes: Clean out CQ completions when QP is destroyed
RDMA/nes: Add CQ error handling
RDMA/nes: Implement Terminate Packet
RDMA/nes: Use flush mechanism to set status for wqe in error
RDMA/nes: Make poll_cq return correct number of wqes during flush
RDMA/nes: Use the flush code to fill in cqe error
RDMA/nes: Rework the disconn routine for terminate and flushing
Hal Rosenstock (1):
IB/mad: Allow tuning of QP0 and QP1 sizes
Jack Morgenstein (3):
IB/uverbs: Return ENOSYS for unimplemented commands (not EINVAL)
IB/mlx4: Don't allow userspace open while recovering from catastrophic error
IB/mthca: Don't allow userspace open while recovering from catastrophic error
Jason Gunthorpe (1):
IPoIB: Check multicast address format
Joachim Fenkes (2):
IB/ehca: Construct MAD redirect replies from request MAD
IB/ehca: Fix CQE flags reporting
Marcin Slusarz (1):
IB: Use printk_once() for driver versions
Roel Kluin (2):
IB/ipath: strncpy() doesn't always NUL-terminate
RDMA/amso1100: Check kmalloc() result in c2_register_device()
Roland Dreier (15):
IPoIB: Remove unused <rdma/ib_cache.h> includes
IPoIB: Drop priv->lock before calling ipoib_send()
IB/mad: Check hop count field in directed route MAD to avoid array overflow
IB: Use DEFINE_SPINLOCK() for static spinlocks
mlx4_core: Use pci_request_regions()
mlx4_core: Remove unnecessary includes of <linux/init.h>
IB/mlx4: Annotate CQ locking
mlx4_core: Allocate and map sufficient ICM memory for EQ context
IB/mthca: Remove unnecessary include of <asm/page.h>
IB/mthca: Remove unnecessary include of <linux/init.h>
IB/mthca: Annotate CQ locking
IB/mad: Fix possible lock-lock-timer deadlock
MAINTAINERS: InfiniBand/RDMA mailing list transition to vger
Merge branches 'cxgb3', 'ehca', 'ipath', 'ipoib', 'misc', 'mlx4', 'mthca' and 'nes' into for-linus
Merge branch 'mad' into for-linus
Steve Wise (8):
RDMA/cxgb3: iwch_unregister_device leaks memory
RDMA/cxgb3: Set the appropriate IO channel in rdma_init work requests
RDMA/cxgb3: Handle port events properly
RDMA/cxgb3: Don't free endpoints early
RDMA/cxgb3: Wake up any waiters on peer close/abort
RDMA/cxgb3: Don't ignore insert_handle() failures
RDMA/cxgb3: Clean up properly on FW mismatch failures
RDMA/iwcm: Reject the connection when the cm_id is destroyed
Tobias Klauser (1):
RDMA/amso1100: Use %pM conversion specifier
Yevgeny Petrilin (1):
mlx4_core: Avoid double free_icms
Yossi Etigin (1):
IB/core: Fix send multicast group leave retry
MAINTAINERS | 12 +-
drivers/infiniband/core/iwcm.c | 1 +
drivers/infiniband/core/mad.c | 35 +-
drivers/infiniband/core/mad_priv.h | 3 +
drivers/infiniband/core/multicast.c | 10 +-
drivers/infiniband/core/sa_query.c | 7 +-
drivers/infiniband/core/smi.c | 8 +
drivers/infiniband/core/uverbs_main.c | 10 +-
drivers/infiniband/hw/amso1100/c2.c | 6 +-
drivers/infiniband/hw/amso1100/c2_provider.c | 24 +-
drivers/infiniband/hw/cxgb3/cxio_hal.c | 5 +-
drivers/infiniband/hw/cxgb3/cxio_wr.h | 6 +
drivers/infiniband/hw/cxgb3/iwch.c | 37 +-
drivers/infiniband/hw/cxgb3/iwch_cm.c | 68 ++-
drivers/infiniband/hw/cxgb3/iwch_cm.h | 9 +-
drivers/infiniband/hw/cxgb3/iwch_mem.c | 21 +-
drivers/infiniband/hw/cxgb3/iwch_provider.c | 52 ++-
drivers/infiniband/hw/cxgb3/iwch_qp.c | 1 +
drivers/infiniband/hw/ehca/ehca_main.c | 8 +-
drivers/infiniband/hw/ehca/ehca_reqs.c | 6 +-
drivers/infiniband/hw/ehca/ehca_sqp.c | 47 ++-
drivers/infiniband/hw/ipath/ipath_file_ops.c | 2 +-
drivers/infiniband/hw/ipath/ipath_mad.c | 2 +-
drivers/infiniband/hw/mlx4/main.c | 12 +-
drivers/infiniband/hw/mlx4/mlx4_ib.h | 1 +
drivers/infiniband/hw/mlx4/qp.c | 12 +-
drivers/infiniband/hw/mthca/mthca_catas.c | 1 +
drivers/infiniband/hw/mthca/mthca_config_reg.h | 2 -
drivers/infiniband/hw/mthca/mthca_dev.h | 1 +
drivers/infiniband/hw/mthca/mthca_eq.c | 17 +-
drivers/infiniband/hw/mthca/mthca_main.c | 8 +-
drivers/infiniband/hw/mthca/mthca_provider.c | 3 +
drivers/infiniband/hw/mthca/mthca_provider.h | 1 +
drivers/infiniband/hw/mthca/mthca_qp.c | 12 +-
drivers/infiniband/hw/mthca/mthca_reset.c | 1 -
drivers/infiniband/hw/nes/nes.h | 2 +-
drivers/infiniband/hw/nes/nes_cm.c | 128 ++--
drivers/infiniband/hw/nes/nes_cm.h | 2 -
drivers/infiniband/hw/nes/nes_hw.c | 767 +++++++++++++++++-------
drivers/infiniband/hw/nes/nes_hw.h | 103 ++++
drivers/infiniband/hw/nes/nes_utils.c | 5 +-
drivers/infiniband/hw/nes/nes_verbs.c | 204 +++++--
drivers/infiniband/hw/nes/nes_verbs.h | 16 +-
drivers/infiniband/ulp/ipoib/ipoib_cm.c | 1 -
drivers/infiniband/ulp/ipoib/ipoib_ib.c | 1 -
drivers/infiniband/ulp/ipoib/ipoib_main.c | 7 +-
drivers/infiniband/ulp/ipoib/ipoib_multicast.c | 21 +
drivers/net/cxgb3/cxgb3_main.c | 6 +-
drivers/net/cxgb3/cxgb3_offload.c | 6 +-
drivers/net/cxgb3/cxgb3_offload.h | 8 +-
drivers/net/mlx4/cq.c | 1 -
drivers/net/mlx4/eq.c | 77 +--
drivers/net/mlx4/icm.c | 1 -
drivers/net/mlx4/main.c | 37 +-
drivers/net/mlx4/mcg.c | 1 -
drivers/net/mlx4/mlx4.h | 7 +-
drivers/net/mlx4/mr.c | 1 -
drivers/net/mlx4/pd.c | 1 -
drivers/net/mlx4/profile.c | 2 -
drivers/net/mlx4/qp.c | 2 -
drivers/net/mlx4/reset.c | 1 -
drivers/net/mlx4/srq.c | 2 -
drivers/scsi/cxgb3i/cxgb3i_init.c | 12 +-
63 files changed, 1278 insertions(+), 595 deletions(-)
^ permalink raw reply [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
@ 2009-07-14 18:48 Roland Dreier
0 siblings, 0 replies; 223+ messages in thread
From: Roland Dreier @ 2009-07-14 18:48 UTC (permalink / raw)
To: torvalds, akpm; +Cc: general, linux-kernel
Linus, please pull from
master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This tree is also available from kernel.org mirrors at:
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This will get a new PCI ID for the mlx4 driver, which also requires
handling one new firmware status code. The chance of regressions
should be near-nil, since existing devices won't hit any of the new
code (and the worst case seems to be printing an incorrect error
message anyway).
Yevgeny Petrilin (2):
mlx4_core: Handle multi-physical function devices
mlx4_core: Add new ConnectX EN PCI ID 0x6764
drivers/net/mlx4/cmd.c | 5 ++++-
drivers/net/mlx4/main.c | 6 +++++-
2 files changed, 9 insertions(+), 2 deletions(-)
diff --git a/drivers/net/mlx4/cmd.c b/drivers/net/mlx4/cmd.c
index 2845a05..65ec77d 100644
--- a/drivers/net/mlx4/cmd.c
+++ b/drivers/net/mlx4/cmd.c
@@ -80,7 +80,9 @@ enum {
/* Bad management packet (silently discarded): */
CMD_STAT_BAD_PKT = 0x30,
/* More outstanding CQEs in CQ than new CQ size: */
- CMD_STAT_BAD_SIZE = 0x40
+ CMD_STAT_BAD_SIZE = 0x40,
+ /* Multi Function device support required: */
+ CMD_STAT_MULTI_FUNC_REQ = 0x50,
};
enum {
@@ -128,6 +130,7 @@ static int mlx4_status_to_errno(u8 status)
[CMD_STAT_LAM_NOT_PRE] = -EAGAIN,
[CMD_STAT_BAD_PKT] = -EINVAL,
[CMD_STAT_BAD_SIZE] = -ENOMEM,
+ [CMD_STAT_MULTI_FUNC_REQ] = -EACCES,
};
if (status >= ARRAY_SIZE(trans_table) ||
diff --git a/drivers/net/mlx4/main.c b/drivers/net/mlx4/main.c
index 018348c..dac621b 100644
--- a/drivers/net/mlx4/main.c
+++ b/drivers/net/mlx4/main.c
@@ -729,7 +729,10 @@ static int mlx4_init_hca(struct mlx4_dev *dev)
err = mlx4_QUERY_FW(dev);
if (err) {
- mlx4_err(dev, "QUERY_FW command failed, aborting.\n");
+ if (err == -EACCES)
+ mlx4_info(dev, "non-primary physical function, skipping.\n");
+ else
+ mlx4_err(dev, "QUERY_FW command failed, aborting.\n");
return err;
}
@@ -1285,6 +1288,7 @@ static struct pci_device_id mlx4_pci_table[] = {
{ PCI_VDEVICE(MELLANOX, 0x6750) }, /* MT25408 "Hermon" EN 10GigE PCIe gen2 */
{ PCI_VDEVICE(MELLANOX, 0x6372) }, /* MT25458 ConnectX EN 10GBASE-T 10GigE */
{ PCI_VDEVICE(MELLANOX, 0x675a) }, /* MT25458 ConnectX EN 10GBASE-T+Gen2 10GigE */
+ { PCI_VDEVICE(MELLANOX, 0x6764) }, /* MT26468 ConnectX EN 10GigE PCIe gen2*/
{ 0, }
};
^ permalink raw reply related [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
@ 2009-06-23 17:39 Roland Dreier
0 siblings, 0 replies; 223+ messages in thread
From: Roland Dreier @ 2009-06-23 17:39 UTC (permalink / raw)
To: torvalds, akpm; +Cc: general, linux-kernel
Linus, please pull from
master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This tree is also available from kernel.org mirrors at:
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This has a few more fixes for 2.6.31-rc1; however everything here
should be a fix appropriate for -rc2 as well, so if this misses the
end of the merge window then I think it should still be OK to pull.
Alexander Schmidt (1):
IB/ehca: Bump version number
Faisal Latif (2):
RDMA/nes: Fix max_qp_init_rd_atom returned from query device
RDMA/nes: Fix FIN state handling under error conditions
Hannes Hering (1):
IB/ehca: Tolerate dynamic memory operations before driver load
Peter Huewe (1):
RDMA: Add __init/__exit macros to addr.c and cma.c
Roel Kluin (1):
IB/ehca: Ensure that guid_entry index is not negative
Roland Dreier (3):
IB/mthca: Replace dma_sync_single() use with proper functions
mlx4_core: Fix dma_sync_single_for_cpu() with matching for_device() calls
Merge branches 'ehca', 'misc', 'mlx4', 'mthca' and 'nes' into for-linus
drivers/infiniband/core/addr.c | 4 +-
drivers/infiniband/core/cma.c | 4 +-
drivers/infiniband/hw/ehca/ehca_hca.c | 2 +-
drivers/infiniband/hw/ehca/ehca_main.c | 20 +-
drivers/infiniband/hw/ehca/ehca_mrmw.c | 508 +++++++++++++++++++++++++++++++-
drivers/infiniband/hw/ehca/ehca_mrmw.h | 13 +-
drivers/infiniband/hw/mthca/mthca_mr.c | 13 +-
drivers/infiniband/hw/nes/nes_cm.c | 8 +-
drivers/infiniband/hw/nes/nes_verbs.c | 2 +-
drivers/net/mlx4/mr.c | 14 +-
10 files changed, 554 insertions(+), 34 deletions(-)
^ permalink raw reply [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
@ 2009-06-14 20:47 Roland Dreier
0 siblings, 0 replies; 223+ messages in thread
From: Roland Dreier @ 2009-06-14 20:47 UTC (permalink / raw)
To: torvalds, akpm; +Cc: linux-kernel, general
Linus, please pull from
master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This tree is also available from kernel.org mirrors at:
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This has the main batch of InfiniBand/RDMA changes for 2.6.31; sorry
for being so late in the merge cycle but the whole family was sick
with the stomach flu for the past week and, well, merge requests
weren't a top priority.
Anyway, this has been a slow cycle for my tree for whatever reason, so
there's not much here; everything has been in -next for a while except
for my two IRQ double-free patches, which fix a just-reported bug (and
are tiny and have been tested).
Anton Blanchard (1):
IB/ehca: Replace vmalloc() with kmalloc() for queue allocation
Eli Cohen (2):
IB/mthca: Add module parameter for number of MTTs per segment
mlx4_core: Add module parameter for number of MTTs per segment
Jack Morgenstein (1):
IB/mlx4: Add strong ordering to local inval and fast reg work requests
Jack Stone (1):
infiniband: Remove void casts
Joachim Fenkes (1):
IB/ehca: Remove superfluous bitmasks from QP control block
Roel Kluin (1):
RDMA/nes: Fix off-by-one bugs in reset_adapter_ne020() and init_serdes()
Roland Dreier (3):
IB/mthca: Don't double-free IRQs when falling back from MSI-X to INTx
mlx4_core: Don't double-free IRQs when falling back from MSI-X to INTx
Merge branches 'cxgb3', 'ehca', 'misc', 'mlx4', 'mthca' and 'nes' into for-linus
Stefan Roscher (3):
IB/ehca: Fall back to vmalloc() for big allocations
IB/ehca: Remove unnecessary memory operations for userspace queue pairs
IB/ehca: Increment version number
Steve Wise (2):
RDMA/cxgb3: Report correct port state and MTU
RDMA/cxgb3: Limit fast register size based on T3 limitations
drivers/infiniband/hw/amso1100/c2_cq.c | 4 +-
drivers/infiniband/hw/cxgb3/cxio_wr.h | 2 +-
drivers/infiniband/hw/cxgb3/iwch_provider.c | 32 ++++++-
drivers/infiniband/hw/ehca/ehca_classes_pSeries.h | 28 -----
drivers/infiniband/hw/ehca/ehca_irq.c | 9 +-
drivers/infiniband/hw/ehca/ehca_main.c | 2 +-
drivers/infiniband/hw/ehca/ehca_qp.c | 112 +++++++++++----------
drivers/infiniband/hw/ehca/hcp_if.c | 6 +-
drivers/infiniband/hw/ehca/hcp_if.h | 2 +-
drivers/infiniband/hw/ehca/hcp_phyp.c | 11 ++-
drivers/infiniband/hw/ehca/hcp_phyp.h | 2 +-
drivers/infiniband/hw/ehca/ipz_pt_fn.c | 19 +++-
drivers/infiniband/hw/mlx4/qp.c | 4 +
drivers/infiniband/hw/mthca/mthca_cmd.c | 2 +-
drivers/infiniband/hw/mthca/mthca_dev.h | 1 +
drivers/infiniband/hw/mthca/mthca_eq.c | 4 +-
drivers/infiniband/hw/mthca/mthca_main.c | 17 +++-
drivers/infiniband/hw/mthca/mthca_mr.c | 16 ++--
drivers/infiniband/hw/mthca/mthca_profile.c | 4 +-
drivers/infiniband/hw/nes/nes_hw.c | 14 ++--
drivers/net/mlx4/eq.c | 4 +-
drivers/net/mlx4/main.c | 14 ++-
drivers/net/mlx4/mr.c | 6 +-
drivers/net/mlx4/profile.c | 2 +-
include/linux/mlx4/device.h | 1 +
include/linux/mlx4/qp.h | 1 +
26 files changed, 183 insertions(+), 136 deletions(-)
^ permalink raw reply [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
@ 2009-05-13 22:18 Roland Dreier
0 siblings, 0 replies; 223+ messages in thread
From: Roland Dreier @ 2009-05-13 22:18 UTC (permalink / raw)
To: torvalds, akpm; +Cc: general, linux-kernel
Linus, please pull from
master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This tree is also available from kernel.org mirrors at:
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This will get a couple of fixes to low-level drivers that fix crashes
seen when running NFS/RDMA:
Jack Morgenstein (1):
IB/mlx4: Don't overwrite fast registration page list when posting work request
Roland Dreier (1):
Merge branches 'cxgb3' and 'mlx4' into for-linus
Steve Wise (1):
RDMA/cxgb3: Don't complete flushed send work requests twice
drivers/infiniband/hw/cxgb3/cxio_hal.c | 1 +
drivers/infiniband/hw/mlx4/mlx4_ib.h | 1 +
drivers/infiniband/hw/mlx4/mr.c | 10 ++++++++--
drivers/infiniband/hw/mlx4/qp.c | 2 +-
4 files changed, 11 insertions(+), 3 deletions(-)
diff --git a/drivers/infiniband/hw/cxgb3/cxio_hal.c b/drivers/infiniband/hw/cxgb3/cxio_hal.c
index 8d71086..62f9cf2 100644
--- a/drivers/infiniband/hw/cxgb3/cxio_hal.c
+++ b/drivers/infiniband/hw/cxgb3/cxio_hal.c
@@ -410,6 +410,7 @@ int cxio_flush_sq(struct t3_wq *wq, struct t3_cq *cq, int count)
ptr = wq->sq_rptr + count;
sqp = wq->sq + Q_PTR2IDX(ptr, wq->sq_size_log2);
while (ptr != wq->sq_wptr) {
+ sqp->signaled = 0;
insert_sq_cqe(wq, cq, sqp);
ptr++;
sqp = wq->sq + Q_PTR2IDX(ptr, wq->sq_size_log2);
diff --git a/drivers/infiniband/hw/mlx4/mlx4_ib.h b/drivers/infiniband/hw/mlx4/mlx4_ib.h
index 9974e88..8a7dd67 100644
--- a/drivers/infiniband/hw/mlx4/mlx4_ib.h
+++ b/drivers/infiniband/hw/mlx4/mlx4_ib.h
@@ -86,6 +86,7 @@ struct mlx4_ib_mr {
struct mlx4_ib_fast_reg_page_list {
struct ib_fast_reg_page_list ibfrpl;
+ __be64 *mapped_page_list;
dma_addr_t map;
};
diff --git a/drivers/infiniband/hw/mlx4/mr.c b/drivers/infiniband/hw/mlx4/mr.c
index 8e4d26d..8f3666b 100644
--- a/drivers/infiniband/hw/mlx4/mr.c
+++ b/drivers/infiniband/hw/mlx4/mr.c
@@ -231,7 +231,11 @@ struct ib_fast_reg_page_list *mlx4_ib_alloc_fast_reg_page_list(struct ib_device
if (!mfrpl)
return ERR_PTR(-ENOMEM);
- mfrpl->ibfrpl.page_list = dma_alloc_coherent(&dev->dev->pdev->dev,
+ mfrpl->ibfrpl.page_list = kmalloc(size, GFP_KERNEL);
+ if (!mfrpl->ibfrpl.page_list)
+ goto err_free;
+
+ mfrpl->mapped_page_list = dma_alloc_coherent(&dev->dev->pdev->dev,
size, &mfrpl->map,
GFP_KERNEL);
if (!mfrpl->ibfrpl.page_list)
@@ -242,6 +246,7 @@ struct ib_fast_reg_page_list *mlx4_ib_alloc_fast_reg_page_list(struct ib_device
return &mfrpl->ibfrpl;
err_free:
+ kfree(mfrpl->ibfrpl.page_list);
kfree(mfrpl);
return ERR_PTR(-ENOMEM);
}
@@ -252,8 +257,9 @@ void mlx4_ib_free_fast_reg_page_list(struct ib_fast_reg_page_list *page_list)
struct mlx4_ib_fast_reg_page_list *mfrpl = to_mfrpl(page_list);
int size = page_list->max_page_list_len * sizeof (u64);
- dma_free_coherent(&dev->dev->pdev->dev, size, page_list->page_list,
+ dma_free_coherent(&dev->dev->pdev->dev, size, mfrpl->mapped_page_list,
mfrpl->map);
+ kfree(mfrpl->ibfrpl.page_list);
kfree(mfrpl);
}
diff --git a/drivers/infiniband/hw/mlx4/qp.c b/drivers/infiniband/hw/mlx4/qp.c
index f385a24..20724ae 100644
--- a/drivers/infiniband/hw/mlx4/qp.c
+++ b/drivers/infiniband/hw/mlx4/qp.c
@@ -1365,7 +1365,7 @@ static void set_fmr_seg(struct mlx4_wqe_fmr_seg *fseg, struct ib_send_wr *wr)
int i;
for (i = 0; i < wr->wr.fast_reg.page_list_len; ++i)
- wr->wr.fast_reg.page_list->page_list[i] =
+ mfrpl->mapped_page_list[i] =
cpu_to_be64(wr->wr.fast_reg.page_list->page_list[i] |
MLX4_MTT_FLAG_PRESENT);
^ permalink raw reply related [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
@ 2009-04-28 23:03 Roland Dreier
0 siblings, 0 replies; 223+ messages in thread
From: Roland Dreier @ 2009-04-28 23:03 UTC (permalink / raw)
To: torvalds, akpm; +Cc: general, linux-kernel
Linus, please pull from
master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This tree is also available from kernel.org mirrors at:
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This will get a batch of changes for -rc2, mostly low-level hardware
driver fixes with a few other miscellaneous fixes and an IPoIB
documentation update.
Chien Tung (8):
RDMA/nes: Fix compiler warning at nes_verbs.c:1955
RDMA/nes: Modify thermo mitigation to flip SerDes1 ref clk to internal
RDMA/nes: Correct CDR loop filter setting for port 1
RDMA/nes: Enable repause timer for port 1
RDMA/nes: Set trace length to 1 inch for SFP_D
RDMA/nes: Fix fw_ver in /sys
RDMA/nes: Fix unused variable compile warning when INFINIBAND_NES_DEBUG=n
RDMA/nes: Update iw_nes version
Don Wood (1):
RDMA/nes: Fix bugs in nes_reg_phys_mr()
Faisal Latif (5):
RDMA/nes: Do not set apbvt entry for loopback
RDMA/nes: Check for sequence number wrap-around
RDMA/nes: Increase rexmit timeout interval
RDMA/nes: Fix hang issues for large cluster dynamic connections
RDMA/nes: Fix error path in nes_accept()
Jack Morgenstein (1):
IB/mthca: Fix timeout for INIT_HCA and a few other commands
Matt Kraai (1):
RDMA/nes: Remove root_256()'s unused pbl_count_256 parameter
Miroslaw Walukiewicz (1):
RDMA/nes: Fix resource issues in nes_create_cq() and nes_destroy_cq()
Nicolas Morey-Chaisemartin (1):
mlx4_core: Fix memory leak in mlx4_enable_msi_x()
Roland Dreier (1):
Merge branches 'cxgb3', 'ipoib', 'mthca', 'mlx4' and 'nes' into for-linus
Steve Wise (2):
RDMA/cxgb3: Adjust ORD/IRD (if needed) for peer2peer connections
RDMA/cxgb3: Don't zero QP attrs when moving to IDLE
Yossi Etigin (1):
IPoIB: Disable NAPI while CQ is being drained
drivers/infiniband/hw/cxgb3/iwch_cm.c | 8 +++
drivers/infiniband/hw/cxgb3/iwch_qp.c | 1 -
drivers/infiniband/hw/mthca/mthca_cmd.c | 16 +++---
drivers/infiniband/hw/nes/nes.h | 4 +-
drivers/infiniband/hw/nes/nes_cm.c | 84 ++++++++++++++--------------
drivers/infiniband/hw/nes/nes_cm.h | 1 +
drivers/infiniband/hw/nes/nes_hw.c | 30 ++++++----
drivers/infiniband/hw/nes/nes_verbs.c | 67 +++++++++++++++--------
drivers/infiniband/hw/nes/nes_verbs.h | 1 +
drivers/infiniband/ulp/ipoib/ipoib_ib.c | 6 ++-
drivers/infiniband/ulp/ipoib/ipoib_main.c | 5 +--
drivers/net/mlx4/main.c | 2 +-
12 files changed, 130 insertions(+), 95 deletions(-)
^ permalink raw reply [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
@ 2009-04-09 21:58 Roland Dreier
0 siblings, 0 replies; 223+ messages in thread
From: Roland Dreier @ 2009-04-09 21:58 UTC (permalink / raw)
To: torvalds, akpm; +Cc: linux-kernel, general
Linus, please pull from
master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This tree is also available from kernel.org mirrors at:
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This will get a batch of changes for -rc2, mostly low-level hardware
driver fixes with a few other miscellaneous fixes and an IPoIB
documentation update.
Chien Tung (3):
RDMA/nes: Fix SFP+ PHY initialization
RDMA/nes: Add wide_ppm_offset parm for switch compatibility
RDMA/nes: Add support for new SFP+ PHY
Don Wood (1):
RDMA/nes: Fix incorrect casts on 32-bit architectures
Faisal Latif (2):
RDMA/nes: Fix error handling issues
RDMA/nes: Fix nes_nic_cm_xmit() error handling
Or Gerlitz (1):
IPoIB: Document newish features
Roland Dreier (4):
IB/mlx4: Use pgprot_writecombine() for BlueFlame pages
mlx4_core: Don't leak mailbox for SET_PORT on Ethernet ports
IPoIB: Avoid free_netdev() BUG when destroying a child interface
Merge branches 'cma', 'cxgb3', 'ipoib', 'mlx4' and 'nes' into for-next
Steve Wise (2):
RDMA/cxgb3: Handle EEH events
RDMA/cxgb3: Release dependent resources only when endpoint memory is freed.
Yossi Etigin (2):
RDMA/cma: Use rate from IPoIB broadcast when joining IPoIB multicast groups
RDMA/cma: Create cm id even when IB port is down
Documentation/infiniband/ipoib.txt | 45 ++++
drivers/infiniband/core/cma.c | 45 +++-
drivers/infiniband/hw/cxgb3/cxio_hal.c | 10 +-
drivers/infiniband/hw/cxgb3/cxio_hal.h | 6 +
drivers/infiniband/hw/cxgb3/iwch.c | 11 +-
drivers/infiniband/hw/cxgb3/iwch.h | 5 +
drivers/infiniband/hw/cxgb3/iwch_cm.c | 116 ++++++---
drivers/infiniband/hw/cxgb3/iwch_cm.h | 3 +-
drivers/infiniband/hw/cxgb3/iwch_qp.c | 4 +-
drivers/infiniband/hw/mlx4/main.c | 3 +-
drivers/infiniband/hw/nes/nes.h | 4 +-
drivers/infiniband/hw/nes/nes_cm.c | 22 +-
drivers/infiniband/hw/nes/nes_cm.h | 1 -
drivers/infiniband/hw/nes/nes_hw.c | 389 ++++++++++++++---------------
drivers/infiniband/hw/nes/nes_hw.h | 2 +
drivers/infiniband/hw/nes/nes_nic.c | 52 +++--
drivers/infiniband/ulp/ipoib/ipoib_vlan.c | 25 ++-
drivers/net/mlx4/port.c | 5 +-
18 files changed, 442 insertions(+), 306 deletions(-)
^ permalink raw reply [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
@ 2009-03-25 4:05 Roland Dreier
0 siblings, 0 replies; 223+ messages in thread
From: Roland Dreier @ 2009-03-25 4:05 UTC (permalink / raw)
To: torvalds, akpm; +Cc: linux-kernel, general
Linus, please pull from
master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This tree is also available from kernel.org mirrors at:
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This has the first batch of 2.6.30 changes -- I have one more patch
that I'll send after the net-next tree is merged (just to avoid merge
hassles due to dependencies).
Chien Tung (3):
RDMA/nes: Update copyright to new legal entity and year
RDMA/nes: Report correct vendor_id and vendor_part_id
RDMA/nes: Fix tmp_addr compilation warning
Don Wood (3):
RDMA/nes: Account for freed PBL after HW operation
RDMA/nes: Inform hardware that asynchronous event has been handled
RDMA/nes: Improve use of PBLs
Faisal Latif (2):
RDMA/nes: Remove LLTX
RDMA/nes: Handle MPA Reject message properly
Harvey Harrison (1):
IB: Remove __constant_{endian} uses
Jack Morgenstein (3):
IPoIB: In unicast_arp_send(), only free newly-created paths
mlx4_core: Add device IDs for MT25458 10GigE devices
IB/sa_query: Fix AH leak due to update_sm_ah() race
Moni Shoua (2):
IB/mlx4: Fix dispatch of IB_EVENT_LID_CHANGE event
IB/mthca: Fix dispatch of IB_EVENT_LID_CHANGE event
Or Gerlitz (1):
IB/iser: Remove hard setting of path MTU
Ralph Campbell (3):
IB/mad: Fix null pointer dereference in local_completions()
IB/mad: initialize mad_agent_priv before putting on lists
IB/mad: Fix ib_post_send_mad() returning 0 with no generate send comp
Ramachandra K (1):
IB/mad: Fix RMPP header RRespTime manipulation
Roland Dreier (5):
IB/ipath: Fix memory leak in init_shadow_tids() error path
IB/ipath: Really run work in ipath_release_user_pages_on_close()
IB: Remove sysfs files before unregistering device
IB: Remove useless ibdev_is_alive() tests from sysfs code
Merge branches 'cxgb3', 'endian', 'ipath', 'ipoib', 'iser', 'mad', 'misc', 'mlx4', 'mthca', 'nes' and 'sysfs' into for-next
Steve Wise (4):
RDMA/cxgb3: sgl/pbl offset calculation needs 64 bits
RDMA/cxgb3: Connection termination fixes
RDMA/cxgb3: Remove modulo math from build_rdma_recv()
RDMA/cxgb3: Enforce required firmware
Yevgeny Petrilin (3):
mlx4_core: Don't perform SET_PORT command for Ethernet ports
mlx4_core: Add link type autosensing
IB/mlx4: Unregister IB device prior to CLOSE PORT command
drivers/infiniband/core/cm.c | 15 +-
drivers/infiniband/core/cm_msgs.h | 22 +-
drivers/infiniband/core/device.c | 4 +-
drivers/infiniband/core/mad.c | 40 +-
drivers/infiniband/core/mad_rmpp.c | 2 +-
drivers/infiniband/core/sa_query.c | 2 +
drivers/infiniband/core/sysfs.c | 19 +-
drivers/infiniband/hw/cxgb3/cxio_hal.c | 30 ++-
drivers/infiniband/hw/cxgb3/cxio_hal.h | 3 +
drivers/infiniband/hw/cxgb3/cxio_wr.h | 6 +
drivers/infiniband/hw/cxgb3/iwch_cm.c | 3 +
drivers/infiniband/hw/cxgb3/iwch_ev.c | 5 -
drivers/infiniband/hw/cxgb3/iwch_qp.c | 17 +-
drivers/infiniband/hw/ehca/ehca_sqp.c | 8 +-
drivers/infiniband/hw/ipath/ipath_eeprom.c | 4 +-
drivers/infiniband/hw/ipath/ipath_init_chip.c | 2 +-
drivers/infiniband/hw/ipath/ipath_mad.c | 95 ++--
drivers/infiniband/hw/ipath/ipath_rc.c | 2 +-
drivers/infiniband/hw/ipath/ipath_sdma.c | 4 +-
drivers/infiniband/hw/ipath/ipath_uc.c | 2 +-
drivers/infiniband/hw/ipath/ipath_ud.c | 4 +-
drivers/infiniband/hw/ipath/ipath_user_pages.c | 8 +-
drivers/infiniband/hw/ipath/ipath_user_sdma.c | 6 +-
drivers/infiniband/hw/ipath/ipath_verbs.c | 2 +-
drivers/infiniband/hw/ipath/ipath_verbs.h | 10 +-
drivers/infiniband/hw/mlx4/mad.c | 27 +-
drivers/infiniband/hw/mlx4/main.c | 5 +-
drivers/infiniband/hw/mlx4/qp.c | 22 +-
drivers/infiniband/hw/mthca/mthca_mad.c | 25 +-
drivers/infiniband/hw/nes/nes.c | 2 +-
drivers/infiniband/hw/nes/nes.h | 2 +-
drivers/infiniband/hw/nes/nes_cm.c | 586 ++++++++++++++++--------
drivers/infiniband/hw/nes/nes_cm.h | 12 +-
drivers/infiniband/hw/nes/nes_context.h | 2 +-
drivers/infiniband/hw/nes/nes_hw.c | 17 +-
drivers/infiniband/hw/nes/nes_hw.h | 5 +-
drivers/infiniband/hw/nes/nes_nic.c | 142 +++----
drivers/infiniband/hw/nes/nes_user.h | 2 +-
drivers/infiniband/hw/nes/nes_utils.c | 2 +-
drivers/infiniband/hw/nes/nes_verbs.c | 249 +++++++----
drivers/infiniband/hw/nes/nes_verbs.h | 2 +-
drivers/infiniband/ulp/ipoib/ipoib_main.c | 9 +-
drivers/infiniband/ulp/iser/iser_verbs.c | 7 -
drivers/net/mlx4/Makefile | 2 +-
drivers/net/mlx4/catas.c | 16 +-
drivers/net/mlx4/eq.c | 16 +-
drivers/net/mlx4/main.c | 106 ++++--
drivers/net/mlx4/mlx4.h | 27 +-
drivers/net/mlx4/port.c | 13 +-
drivers/net/mlx4/sense.c | 156 +++++++
include/linux/mlx4/cmd.h | 1 +
include/linux/mlx4/device.h | 6 +-
include/rdma/ib_cm.h | 12 +-
include/rdma/ib_mad.h | 4 +-
include/rdma/ib_smi.h | 34 +-
55 files changed, 1190 insertions(+), 636 deletions(-)
create mode 100644 drivers/net/mlx4/sense.c
^ permalink raw reply [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
@ 2009-01-16 23:07 Roland Dreier
0 siblings, 0 replies; 223+ messages in thread
From: Roland Dreier @ 2009-01-16 23:07 UTC (permalink / raw)
To: torvalds, akpm; +Cc: linux-kernel, general
Linus, please pull from
master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This tree is also available from kernel.org mirrors at:
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
Some fixes to go into 2.6.29-rc3. Nothing too urgent so if this takes
a long time due to LCA, it's not a big deal. The bulk of things are
for the ehca driver, to fix warning spew caused by the powerpc u64
transition from long to long long.
Andrew Morton (1):
mlx4_core: Fix min() warning
Roland Dreier (4):
IPoIB: Fix hang in napi_disable() if P_Key is never found
IPoIB: Fix deadlock between ipoib_open() and child interface create
IB/mlx4: Fix memory ordering problem when posting LSO sends
Merge branches 'ehca', 'ipoib' and 'mlx4' into for-linus
Stephen Rothwell (2):
IB/ehca: Fix printk format warnings from u64 type change
IB/ehca: Use consistent types for ehca_plpar_hcall9()
Yossi Etigin (1):
IPoIB: Do not print error messages for multicast join retries
drivers/infiniband/hw/ehca/ehca_cq.c | 16 ++--
drivers/infiniband/hw/ehca/ehca_hca.c | 2 +-
drivers/infiniband/hw/ehca/ehca_irq.c | 18 ++--
drivers/infiniband/hw/ehca/ehca_main.c | 6 +-
drivers/infiniband/hw/ehca/ehca_mcast.c | 4 +-
drivers/infiniband/hw/ehca/ehca_mrmw.c | 144 ++++++++++++------------
drivers/infiniband/hw/ehca/ehca_qp.c | 32 +++---
drivers/infiniband/hw/ehca/ehca_reqs.c | 2 +-
drivers/infiniband/hw/ehca/ehca_sqp.c | 2 +-
drivers/infiniband/hw/ehca/ehca_tools.h | 2 +-
drivers/infiniband/hw/ehca/ehca_uverbs.c | 2 +-
drivers/infiniband/hw/ehca/hcp_if.c | 56 +++++-----
drivers/infiniband/hw/mlx4/qp.c | 28 +++--
drivers/infiniband/ulp/ipoib/ipoib_main.c | 27 +++--
drivers/infiniband/ulp/ipoib/ipoib_multicast.c | 2 +-
drivers/infiniband/ulp/ipoib/ipoib_vlan.c | 11 ++-
drivers/net/mlx4/profile.c | 6 +-
17 files changed, 189 insertions(+), 171 deletions(-)
^ permalink raw reply [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
@ 2009-01-13 3:40 Roland Dreier
0 siblings, 0 replies; 223+ messages in thread
From: Roland Dreier @ 2009-01-13 3:40 UTC (permalink / raw)
To: torvalds, akpm; +Cc: general, linux-kernel
Linus, please pull from
master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This tree is also available from kernel.org mirrors at:
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
Some fixes for 2.6.29-rc2:
Harvey Harrison (1):
RDMA/nes: Fix for NIPQUAD removal
Randy Dunlap (1):
IB/iser: Add dependency on INFINIBAND_ADDR_TRANS
Roland Dreier (3):
mlx4_core: Fix warning from min()
IB/mlx4: Don't register IB device for adapters with no IB ports
Merge branches 'ehca', 'ipoib', 'iser', 'mlx4' and 'nes' into for-next
Stephen Rothwell (1):
IB/ehca: spin_lock_irqsave() takes an unsigned long
Yossi Etigin (2):
IPoIB: Fix loss of connectivity after bonding failover on both sides
IPoIB: Do not join broadcast group if interface is brought down
drivers/infiniband/hw/ehca/ehca_main.c | 2 +-
drivers/infiniband/hw/mlx4/main.c | 13 +++++--
drivers/infiniband/hw/nes/nes_cm.c | 12 +++++--
drivers/infiniband/hw/nes/nes_utils.c | 4 ++-
drivers/infiniband/ulp/ipoib/ipoib_main.c | 38 ++++++++++++------------
drivers/infiniband/ulp/ipoib/ipoib_multicast.c | 3 ++
drivers/infiniband/ulp/iser/Kconfig | 2 +-
drivers/net/mlx4/main.c | 4 +-
8 files changed, 47 insertions(+), 31 deletions(-)
diff --git a/drivers/infiniband/hw/ehca/ehca_main.c b/drivers/infiniband/hw/ehca/ehca_main.c
index 3b77b67..c7b8a50 100644
--- a/drivers/infiniband/hw/ehca/ehca_main.c
+++ b/drivers/infiniband/hw/ehca/ehca_main.c
@@ -955,7 +955,7 @@ void ehca_poll_eqs(unsigned long data)
struct ehca_eq *eq = &shca->eq;
int max = 3;
volatile u64 q_ofs, q_ofs2;
- u64 flags;
+ unsigned long flags;
spin_lock_irqsave(&eq->spinlock, flags);
q_ofs = eq->ipz_queue.current_q_offset;
spin_unlock_irqrestore(&eq->spinlock, flags);
diff --git a/drivers/infiniband/hw/mlx4/main.c b/drivers/infiniband/hw/mlx4/main.c
index dcefe1f..61588bd 100644
--- a/drivers/infiniband/hw/mlx4/main.c
+++ b/drivers/infiniband/hw/mlx4/main.c
@@ -543,14 +543,21 @@ static void *mlx4_ib_add(struct mlx4_dev *dev)
{
static int mlx4_ib_version_printed;
struct mlx4_ib_dev *ibdev;
+ int num_ports = 0;
int i;
-
if (!mlx4_ib_version_printed) {
printk(KERN_INFO "%s", mlx4_ib_version);
++mlx4_ib_version_printed;
}
+ mlx4_foreach_port(i, dev, MLX4_PORT_TYPE_IB)
+ num_ports++;
+
+ /* No point in registering a device with no ports... */
+ if (num_ports == 0)
+ return NULL;
+
ibdev = (struct mlx4_ib_dev *) ib_alloc_device(sizeof *ibdev);
if (!ibdev) {
dev_err(&dev->pdev->dev, "Device struct alloc failed\n");
@@ -574,9 +581,7 @@ static void *mlx4_ib_add(struct mlx4_dev *dev)
ibdev->ib_dev.owner = THIS_MODULE;
ibdev->ib_dev.node_type = RDMA_NODE_IB_CA;
ibdev->ib_dev.local_dma_lkey = dev->caps.reserved_lkey;
- ibdev->num_ports = 0;
- mlx4_foreach_port(i, dev, MLX4_PORT_TYPE_IB)
- ibdev->num_ports++;
+ ibdev->num_ports = num_ports;
ibdev->ib_dev.phys_port_cnt = ibdev->num_ports;
ibdev->ib_dev.num_comp_vectors = dev->caps.num_comp_vectors;
ibdev->ib_dev.dma_device = &dev->pdev->dev;
diff --git a/drivers/infiniband/hw/nes/nes_cm.c b/drivers/infiniband/hw/nes/nes_cm.c
index a812db2..ca9ef3f 100644
--- a/drivers/infiniband/hw/nes/nes_cm.c
+++ b/drivers/infiniband/hw/nes/nes_cm.c
@@ -778,12 +778,13 @@ static struct nes_cm_node *find_node(struct nes_cm_core *cm_core,
unsigned long flags;
struct list_head *hte;
struct nes_cm_node *cm_node;
+ __be32 tmp_addr = cpu_to_be32(loc_addr);
/* get a handle on the hte */
hte = &cm_core->connected_nodes;
nes_debug(NES_DBG_CM, "Searching for an owner node: %pI4:%x from core %p->%p\n",
- &loc_addr, loc_port, cm_core, hte);
+ &tmp_addr, loc_port, cm_core, hte);
/* walk list and find cm_node associated with this session ID */
spin_lock_irqsave(&cm_core->ht_lock, flags);
@@ -816,6 +817,7 @@ static struct nes_cm_listener *find_listener(struct nes_cm_core *cm_core,
{
unsigned long flags;
struct nes_cm_listener *listen_node;
+ __be32 tmp_addr = cpu_to_be32(dst_addr);
/* walk list and find cm_node associated with this session ID */
spin_lock_irqsave(&cm_core->listen_list_lock, flags);
@@ -833,7 +835,7 @@ static struct nes_cm_listener *find_listener(struct nes_cm_core *cm_core,
spin_unlock_irqrestore(&cm_core->listen_list_lock, flags);
nes_debug(NES_DBG_CM, "Unable to find listener for %pI4:%x\n",
- &dst_addr, dst_port);
+ &tmp_addr, dst_port);
/* no listener */
return NULL;
@@ -2059,6 +2061,7 @@ static int mini_cm_recv_pkt(struct nes_cm_core *cm_core,
struct tcphdr *tcph;
struct nes_cm_info nfo;
int skb_handled = 1;
+ __be32 tmp_daddr, tmp_saddr;
if (!skb)
return 0;
@@ -2074,8 +2077,11 @@ static int mini_cm_recv_pkt(struct nes_cm_core *cm_core,
nfo.rem_addr = ntohl(iph->saddr);
nfo.rem_port = ntohs(tcph->source);
+ tmp_daddr = cpu_to_be32(iph->daddr);
+ tmp_saddr = cpu_to_be32(iph->saddr);
+
nes_debug(NES_DBG_CM, "Received packet: dest=%pI4:0x%04X src=%pI4:0x%04X\n",
- &iph->daddr, tcph->dest, &iph->saddr, tcph->source);
+ &tmp_daddr, tcph->dest, &tmp_saddr, tcph->source);
do {
cm_node = find_node(cm_core,
diff --git a/drivers/infiniband/hw/nes/nes_utils.c b/drivers/infiniband/hw/nes/nes_utils.c
index aa9b734..6f3bc1b 100644
--- a/drivers/infiniband/hw/nes/nes_utils.c
+++ b/drivers/infiniband/hw/nes/nes_utils.c
@@ -655,6 +655,7 @@ int nes_arp_table(struct nes_device *nesdev, u32 ip_addr, u8 *mac_addr, u32 acti
struct nes_adapter *nesadapter = nesdev->nesadapter;
int arp_index;
int err = 0;
+ __be32 tmp_addr;
for (arp_index = 0; (u32) arp_index < nesadapter->arp_table_size; arp_index++) {
if (nesadapter->arp_table[arp_index].ip_addr == ip_addr)
@@ -682,8 +683,9 @@ int nes_arp_table(struct nes_device *nesdev, u32 ip_addr, u8 *mac_addr, u32 acti
/* DELETE or RESOLVE */
if (arp_index == nesadapter->arp_table_size) {
+ tmp_addr = cpu_to_be32(ip_addr);
nes_debug(NES_DBG_NETDEV, "MAC for %pI4 not in ARP table - cannot %s\n",
- &ip_addr, action == NES_ARP_RESOLVE ? "resolve" : "delete");
+ &tmp_addr, action == NES_ARP_RESOLVE ? "resolve" : "delete");
return -1;
}
diff --git a/drivers/infiniband/ulp/ipoib/ipoib_main.c b/drivers/infiniband/ulp/ipoib/ipoib_main.c
index 19e06bc..dce0443 100644
--- a/drivers/infiniband/ulp/ipoib/ipoib_main.c
+++ b/drivers/infiniband/ulp/ipoib/ipoib_main.c
@@ -711,26 +711,26 @@ static int ipoib_start_xmit(struct sk_buff *skb, struct net_device *dev)
neigh = *to_ipoib_neigh(skb->dst->neighbour);
- if (neigh->ah)
- if (unlikely((memcmp(&neigh->dgid.raw,
- skb->dst->neighbour->ha + 4,
- sizeof(union ib_gid))) ||
- (neigh->dev != dev))) {
- spin_lock_irqsave(&priv->lock, flags);
- /*
- * It's safe to call ipoib_put_ah() inside
- * priv->lock here, because we know that
- * path->ah will always hold one more reference,
- * so ipoib_put_ah() will never do more than
- * decrement the ref count.
- */
+ if (unlikely((memcmp(&neigh->dgid.raw,
+ skb->dst->neighbour->ha + 4,
+ sizeof(union ib_gid))) ||
+ (neigh->dev != dev))) {
+ spin_lock_irqsave(&priv->lock, flags);
+ /*
+ * It's safe to call ipoib_put_ah() inside
+ * priv->lock here, because we know that
+ * path->ah will always hold one more reference,
+ * so ipoib_put_ah() will never do more than
+ * decrement the ref count.
+ */
+ if (neigh->ah)
ipoib_put_ah(neigh->ah);
- list_del(&neigh->list);
- ipoib_neigh_free(dev, neigh);
- spin_unlock_irqrestore(&priv->lock, flags);
- ipoib_path_lookup(skb, dev);
- return NETDEV_TX_OK;
- }
+ list_del(&neigh->list);
+ ipoib_neigh_free(dev, neigh);
+ spin_unlock_irqrestore(&priv->lock, flags);
+ ipoib_path_lookup(skb, dev);
+ return NETDEV_TX_OK;
+ }
if (ipoib_cm_get(neigh)) {
if (ipoib_cm_up(neigh)) {
diff --git a/drivers/infiniband/ulp/ipoib/ipoib_multicast.c b/drivers/infiniband/ulp/ipoib/ipoib_multicast.c
index a2eb3b9..59d02e0 100644
--- a/drivers/infiniband/ulp/ipoib/ipoib_multicast.c
+++ b/drivers/infiniband/ulp/ipoib/ipoib_multicast.c
@@ -529,6 +529,9 @@ void ipoib_mcast_join_task(struct work_struct *work)
if (!priv->broadcast) {
struct ipoib_mcast *broadcast;
+ if (!test_bit(IPOIB_FLAG_ADMIN_UP, &priv->flags))
+ return;
+
broadcast = ipoib_mcast_alloc(dev, 1);
if (!broadcast) {
ipoib_warn(priv, "failed to allocate broadcast group\n");
diff --git a/drivers/infiniband/ulp/iser/Kconfig b/drivers/infiniband/ulp/iser/Kconfig
index 77dedba..b411c51 100644
--- a/drivers/infiniband/ulp/iser/Kconfig
+++ b/drivers/infiniband/ulp/iser/Kconfig
@@ -1,6 +1,6 @@
config INFINIBAND_ISER
tristate "iSCSI Extensions for RDMA (iSER)"
- depends on SCSI && INET
+ depends on SCSI && INET && INFINIBAND_ADDR_TRANS
select SCSI_ISCSI_ATTRS
---help---
Support for the iSCSI Extensions for RDMA (iSER) Protocol
diff --git a/drivers/net/mlx4/main.c b/drivers/net/mlx4/main.c
index 710c79e..6ef2490 100644
--- a/drivers/net/mlx4/main.c
+++ b/drivers/net/mlx4/main.c
@@ -912,8 +912,8 @@ static void mlx4_enable_msi_x(struct mlx4_dev *dev)
int i;
if (msi_x) {
- nreq = min(dev->caps.num_eqs - dev->caps.reserved_eqs,
- num_possible_cpus() + 1);
+ nreq = min_t(int, dev->caps.num_eqs - dev->caps.reserved_eqs,
+ num_possible_cpus() + 1);
entries = kcalloc(nreq, sizeof *entries, GFP_KERNEL);
if (!entries)
goto no_msi;
^ permalink raw reply related [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
@ 2008-12-30 23:38 Roland Dreier
0 siblings, 0 replies; 223+ messages in thread
From: Roland Dreier @ 2008-12-30 23:38 UTC (permalink / raw)
To: torvalds, akpm; +Cc: general, linux-kernel
Linus, please pull from
master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This tree is also available from kernel.org mirrors at:
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
A build fix and an endianness bug fix before the new year:
Roland Dreier (3):
RDMA/addr: Fix build breakage when IPv6 is disabled
IB/mlx4: Fix reading SL field out of cqe->sl_vid
Merge branches 'cma' and 'mlx4' into for-linus
drivers/infiniband/Kconfig | 1 +
drivers/infiniband/core/addr.c | 47 +++++++++++++++++++++++++++++++++-----
drivers/infiniband/hw/mlx4/cq.c | 2 +-
3 files changed, 42 insertions(+), 8 deletions(-)
^ permalink raw reply [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
@ 2008-12-25 15:21 Roland Dreier
0 siblings, 0 replies; 223+ messages in thread
From: Roland Dreier @ 2008-12-25 15:21 UTC (permalink / raw)
To: torvalds, akpm; +Cc: general, linux-kernel
Linus, please pull from
master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This tree is also available from kernel.org mirrors at:
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This will get the first tranche of InfiniBand/RDMA changes for 2.6.29:
Aleksey Senin (2):
RDMA/addr: Add support for translating IPv6 addresses
RDMA/cma: Add IPv6 support
Chien Tung (2):
RDMA/nes: Add loopback check to make_cm_node()
RDMA/nes: Cleanup warnings
Dave Olson (4):
IB/ipath: Don't count IB symbol and link errors unless link is UP
IB/ipath: Only do 1X workaround on rev1 chips
IB/ipath: Fix spi_pioindex value
IB/ipath: Add locking for interrupt use of ipath_pd contexts vs free
David Disseldorp (1):
IB/iser: Avoid recv buffer exhaustion caused by unexpected PDUs
Faisal Latif (7):
RDMA/nes: Cleanup cqp_request list usage
RDMA/nes: Lock down connected_nodes list while processing it
RDMA/nes: Avoid race between MPA request and reset event to rdma_cm
RDMA/nes: Forward packets for a new connection with stale APBVT entry
RDMA/nes: Fix TCP compliance test failures
RDMA/nes: Check cqp_avail_reqs is empty after locking the list
RDMA/nes: Remove tx_free_list
Jack Morgenstein (1):
IB/mlx4: Set ownership bit correctly when copying CQEs during CQ resize
Joachim Fenkes (1):
IB/ehca: Fix locking for shca_list_lock
Julia Lawall (1):
IB/ehca: Remove redundant test of vpage
Michael Ellerman (1):
IB/ipath: Fix pointer-to-pointer thinko in ipath_fs.c
Ralph Campbell (3):
IB/ipath: Improve UD loopback performance by allocating temp array only once
IB/ipath: Fix PSN of send WQEs after an RDMA read resend
IB/ipath: Check return value of dma_map_single()
Roland Dreier (2):
mlx4_core: Delete incorrect comment
Merge branches 'cma', 'ehca', 'ipath', 'iser', 'mlx4' and 'nes' into for-next
Stefan Roscher (1):
IB/ehca: Replace modulus operations in flush error completion path
Yevgeny Petrilin (1):
mlx4_core: Add support for multiple completion event vectors
drivers/infiniband/core/addr.c | 196 +++++++++++++----
drivers/infiniband/core/cma.c | 86 ++++++---
drivers/infiniband/hw/ehca/ehca_classes.h | 7 +
drivers/infiniband/hw/ehca/ehca_eq.c | 2 +-
drivers/infiniband/hw/ehca/ehca_main.c | 17 +-
drivers/infiniband/hw/ehca/ehca_qp.c | 12 +-
drivers/infiniband/hw/ehca/ehca_reqs.c | 13 +-
drivers/infiniband/hw/ipath/ipath_driver.c | 49 +++--
drivers/infiniband/hw/ipath/ipath_file_ops.c | 30 ++--
drivers/infiniband/hw/ipath/ipath_fs.c | 2 +-
drivers/infiniband/hw/ipath/ipath_iba6120.c | 61 ++++++
drivers/infiniband/hw/ipath/ipath_iba7220.c | 83 +++++++-
drivers/infiniband/hw/ipath/ipath_init_chip.c | 1 +
drivers/infiniband/hw/ipath/ipath_kernel.h | 15 ++
drivers/infiniband/hw/ipath/ipath_keys.c | 2 +
drivers/infiniband/hw/ipath/ipath_mad.c | 2 +
drivers/infiniband/hw/ipath/ipath_qp.c | 32 ++-
drivers/infiniband/hw/ipath/ipath_rc.c | 5 +-
drivers/infiniband/hw/ipath/ipath_sdma.c | 21 ++-
drivers/infiniband/hw/ipath/ipath_stats.c | 8 +
drivers/infiniband/hw/ipath/ipath_ud.c | 19 +--
drivers/infiniband/hw/ipath/ipath_verbs.c | 3 +-
drivers/infiniband/hw/ipath/ipath_verbs.h | 1 +
drivers/infiniband/hw/mlx4/cq.c | 12 +-
drivers/infiniband/hw/mlx4/main.c | 2 +-
drivers/infiniband/hw/nes/nes.h | 18 +-
drivers/infiniband/hw/nes/nes_cm.c | 279 +++++++++++++------------
drivers/infiniband/hw/nes/nes_cm.h | 14 +-
drivers/infiniband/hw/nes/nes_hw.c | 42 ++--
drivers/infiniband/hw/nes/nes_utils.c | 9 +-
drivers/infiniband/hw/nes/nes_verbs.c | 45 +---
drivers/infiniband/ulp/iser/iscsi_iser.h | 3 +
drivers/infiniband/ulp/iser/iser_initiator.c | 132 ++++++++----
drivers/infiniband/ulp/iser/iser_verbs.c | 1 +
drivers/net/mlx4/cq.c | 11 +-
drivers/net/mlx4/en_cq.c | 9 +-
drivers/net/mlx4/en_main.c | 4 +-
drivers/net/mlx4/eq.c | 121 ++++++++---
drivers/net/mlx4/main.c | 53 ++++--
drivers/net/mlx4/mlx4.h | 14 +-
drivers/net/mlx4/profile.c | 4 +-
include/linux/mlx4/device.h | 4 +-
42 files changed, 965 insertions(+), 479 deletions(-)
^ permalink raw reply [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
@ 2008-12-01 18:16 Roland Dreier
0 siblings, 0 replies; 223+ messages in thread
From: Roland Dreier @ 2008-12-01 18:16 UTC (permalink / raw)
To: torvalds, akpm; +Cc: general, linux-kernel
Linus, please pull from
master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This tree is also available from kernel.org mirrors at:
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This will get two fixes to the ehca driver for problems in patches
added in the 2.6.28 cycle, and two fixes for mlx4, one for a
regression introduced in the 2.6.28 cycle, and one for a resource leak
that is serious enough and has a simple enough fix to target -stable.
Jack Morgenstein (2):
mlx4_core: Save/restore default port IB capability mask
IB/mlx4: Fix MTT leakage in resize CQ
Joachim Fenkes (1):
IB/ehca: Change misleading error message on memory hotplug
Roland Dreier (1):
Merge branches 'ehca' and 'mlx4' into for-linus
Stefan Roscher (1):
IB/ehca: Fix problem with generated flush work completions
drivers/infiniband/hw/ehca/ehca_classes.h | 4 ++-
drivers/infiniband/hw/ehca/ehca_main.c | 3 +-
drivers/infiniband/hw/ehca/ehca_qp.c | 26 +++++++++++---
drivers/infiniband/hw/ehca/ehca_reqs.c | 51 +++++++++++++++++------------
drivers/infiniband/hw/mlx4/cq.c | 5 +++
drivers/net/mlx4/main.c | 8 ++++
drivers/net/mlx4/mlx4.h | 1 +
drivers/net/mlx4/port.c | 39 +++++++++++++++++++++-
include/linux/mlx4/device.h | 1 +
9 files changed, 107 insertions(+), 31 deletions(-)
diff --git a/drivers/infiniband/hw/ehca/ehca_classes.h b/drivers/infiniband/hw/ehca/ehca_classes.h
index 4df887a..7fc35cf 100644
--- a/drivers/infiniband/hw/ehca/ehca_classes.h
+++ b/drivers/infiniband/hw/ehca/ehca_classes.h
@@ -163,7 +163,8 @@ struct ehca_mod_qp_parm {
/* struct for tracking if cqes have been reported to the application */
struct ehca_qmap_entry {
u16 app_wr_id;
- u16 reported;
+ u8 reported;
+ u8 cqe_req;
};
struct ehca_queue_map {
@@ -171,6 +172,7 @@ struct ehca_queue_map {
unsigned int entries;
unsigned int tail;
unsigned int left_to_poll;
+ unsigned int next_wqe_idx; /* Idx to first wqe to be flushed */
};
struct ehca_qp {
diff --git a/drivers/infiniband/hw/ehca/ehca_main.c b/drivers/infiniband/hw/ehca/ehca_main.c
index bb02a86..bec7e02 100644
--- a/drivers/infiniband/hw/ehca/ehca_main.c
+++ b/drivers/infiniband/hw/ehca/ehca_main.c
@@ -994,8 +994,7 @@ static int ehca_mem_notifier(struct notifier_block *nb,
if (printk_timed_ratelimit(&ehca_dmem_warn_time,
30 * 1000))
ehca_gen_err("DMEM operations are not allowed"
- "as long as an ehca adapter is"
- "attached to the LPAR");
+ "in conjunction with eHCA");
return NOTIFY_BAD;
}
}
diff --git a/drivers/infiniband/hw/ehca/ehca_qp.c b/drivers/infiniband/hw/ehca/ehca_qp.c
index 9e05ee2..cadbf0c 100644
--- a/drivers/infiniband/hw/ehca/ehca_qp.c
+++ b/drivers/infiniband/hw/ehca/ehca_qp.c
@@ -435,9 +435,13 @@ static void reset_queue_map(struct ehca_queue_map *qmap)
{
int i;
- qmap->tail = 0;
- for (i = 0; i < qmap->entries; i++)
+ qmap->tail = qmap->entries - 1;
+ qmap->left_to_poll = 0;
+ qmap->next_wqe_idx = 0;
+ for (i = 0; i < qmap->entries; i++) {
qmap->map[i].reported = 1;
+ qmap->map[i].cqe_req = 0;
+ }
}
/*
@@ -1121,6 +1125,7 @@ static int calc_left_cqes(u64 wqe_p, struct ipz_queue *ipz_queue,
void *wqe_v;
u64 q_ofs;
u32 wqe_idx;
+ unsigned int tail_idx;
/* convert real to abs address */
wqe_p = wqe_p & (~(1UL << 63));
@@ -1133,12 +1138,17 @@ static int calc_left_cqes(u64 wqe_p, struct ipz_queue *ipz_queue,
return -EFAULT;
}
+ tail_idx = (qmap->tail + 1) % qmap->entries;
wqe_idx = q_ofs / ipz_queue->qe_size;
- if (wqe_idx < qmap->tail)
- qmap->left_to_poll = (qmap->entries - qmap->tail) + wqe_idx;
- else
- qmap->left_to_poll = wqe_idx - qmap->tail;
+ /* check all processed wqes, whether a cqe is requested or not */
+ while (tail_idx != wqe_idx) {
+ if (qmap->map[tail_idx].cqe_req)
+ qmap->left_to_poll++;
+ tail_idx = (tail_idx + 1) % qmap->entries;
+ }
+ /* save index in queue, where we have to start flushing */
+ qmap->next_wqe_idx = wqe_idx;
return 0;
}
@@ -1185,10 +1195,14 @@ static int check_for_left_cqes(struct ehca_qp *my_qp, struct ehca_shca *shca)
} else {
spin_lock_irqsave(&my_qp->send_cq->spinlock, flags);
my_qp->sq_map.left_to_poll = 0;
+ my_qp->sq_map.next_wqe_idx = (my_qp->sq_map.tail + 1) %
+ my_qp->sq_map.entries;
spin_unlock_irqrestore(&my_qp->send_cq->spinlock, flags);
spin_lock_irqsave(&my_qp->recv_cq->spinlock, flags);
my_qp->rq_map.left_to_poll = 0;
+ my_qp->rq_map.next_wqe_idx = (my_qp->rq_map.tail + 1) %
+ my_qp->rq_map.entries;
spin_unlock_irqrestore(&my_qp->recv_cq->spinlock, flags);
}
diff --git a/drivers/infiniband/hw/ehca/ehca_reqs.c b/drivers/infiniband/hw/ehca/ehca_reqs.c
index 6492807..00a648f 100644
--- a/drivers/infiniband/hw/ehca/ehca_reqs.c
+++ b/drivers/infiniband/hw/ehca/ehca_reqs.c
@@ -179,6 +179,7 @@ static inline int ehca_write_swqe(struct ehca_qp *qp,
qmap_entry->app_wr_id = get_app_wr_id(send_wr->wr_id);
qmap_entry->reported = 0;
+ qmap_entry->cqe_req = 0;
switch (send_wr->opcode) {
case IB_WR_SEND:
@@ -203,8 +204,10 @@ static inline int ehca_write_swqe(struct ehca_qp *qp,
if ((send_wr->send_flags & IB_SEND_SIGNALED ||
qp->init_attr.sq_sig_type == IB_SIGNAL_ALL_WR)
- && !hidden)
+ && !hidden) {
wqe_p->wr_flag |= WQE_WRFLAG_REQ_SIGNAL_COM;
+ qmap_entry->cqe_req = 1;
+ }
if (send_wr->opcode == IB_WR_SEND_WITH_IMM ||
send_wr->opcode == IB_WR_RDMA_WRITE_WITH_IMM) {
@@ -569,6 +572,7 @@ static int internal_post_recv(struct ehca_qp *my_qp,
qmap_entry = &my_qp->rq_map.map[rq_map_idx];
qmap_entry->app_wr_id = get_app_wr_id(cur_recv_wr->wr_id);
qmap_entry->reported = 0;
+ qmap_entry->cqe_req = 1;
wqe_cnt++;
} /* eof for cur_recv_wr */
@@ -706,27 +710,34 @@ repoll:
goto repoll;
wc->qp = &my_qp->ib_qp;
+ qmap_tail_idx = get_app_wr_id(cqe->work_request_id);
+ if (!(cqe->w_completion_flags & WC_SEND_RECEIVE_BIT))
+ /* We got a send completion. */
+ qmap = &my_qp->sq_map;
+ else
+ /* We got a receive completion. */
+ qmap = &my_qp->rq_map;
+
+ /* advance the tail pointer */
+ qmap->tail = qmap_tail_idx;
+
if (is_error) {
/*
* set left_to_poll to 0 because in error state, we will not
* get any additional CQEs
*/
- ehca_add_to_err_list(my_qp, 1);
+ my_qp->sq_map.next_wqe_idx = (my_qp->sq_map.tail + 1) %
+ my_qp->sq_map.entries;
my_qp->sq_map.left_to_poll = 0;
+ ehca_add_to_err_list(my_qp, 1);
+ my_qp->rq_map.next_wqe_idx = (my_qp->rq_map.tail + 1) %
+ my_qp->rq_map.entries;
+ my_qp->rq_map.left_to_poll = 0;
if (HAS_RQ(my_qp))
ehca_add_to_err_list(my_qp, 0);
- my_qp->rq_map.left_to_poll = 0;
}
- qmap_tail_idx = get_app_wr_id(cqe->work_request_id);
- if (!(cqe->w_completion_flags & WC_SEND_RECEIVE_BIT))
- /* We got a send completion. */
- qmap = &my_qp->sq_map;
- else
- /* We got a receive completion. */
- qmap = &my_qp->rq_map;
-
qmap_entry = &qmap->map[qmap_tail_idx];
if (qmap_entry->reported) {
ehca_warn(cq->device, "Double cqe on qp_num=%#x",
@@ -738,10 +749,6 @@ repoll:
wc->wr_id = replace_wr_id(cqe->work_request_id, qmap_entry->app_wr_id);
qmap_entry->reported = 1;
- /* this is a proper completion, we need to advance the tail pointer */
- if (++qmap->tail == qmap->entries)
- qmap->tail = 0;
-
/* if left_to_poll is decremented to 0, add the QP to the error list */
if (qmap->left_to_poll > 0) {
qmap->left_to_poll--;
@@ -805,13 +812,14 @@ static int generate_flush_cqes(struct ehca_qp *my_qp, struct ib_cq *cq,
else
qmap = &my_qp->rq_map;
- qmap_entry = &qmap->map[qmap->tail];
+ qmap_entry = &qmap->map[qmap->next_wqe_idx];
while ((nr < num_entries) && (qmap_entry->reported == 0)) {
/* generate flush CQE */
+
memset(wc, 0, sizeof(*wc));
- offset = qmap->tail * ipz_queue->qe_size;
+ offset = qmap->next_wqe_idx * ipz_queue->qe_size;
wqe = (struct ehca_wqe *)ipz_qeit_calc(ipz_queue, offset);
if (!wqe) {
ehca_err(cq->device, "Invalid wqe offset=%#lx on "
@@ -850,11 +858,12 @@ static int generate_flush_cqes(struct ehca_qp *my_qp, struct ib_cq *cq,
wc->qp = &my_qp->ib_qp;
- /* mark as reported and advance tail pointer */
+ /* mark as reported and advance next_wqe pointer */
qmap_entry->reported = 1;
- if (++qmap->tail == qmap->entries)
- qmap->tail = 0;
- qmap_entry = &qmap->map[qmap->tail];
+ qmap->next_wqe_idx++;
+ if (qmap->next_wqe_idx == qmap->entries)
+ qmap->next_wqe_idx = 0;
+ qmap_entry = &qmap->map[qmap->next_wqe_idx];
wc++; nr++;
}
diff --git a/drivers/infiniband/hw/mlx4/cq.c b/drivers/infiniband/hw/mlx4/cq.c
index d0866a3..1830849 100644
--- a/drivers/infiniband/hw/mlx4/cq.c
+++ b/drivers/infiniband/hw/mlx4/cq.c
@@ -343,6 +343,7 @@ int mlx4_ib_resize_cq(struct ib_cq *ibcq, int entries, struct ib_udata *udata)
{
struct mlx4_ib_dev *dev = to_mdev(ibcq->device);
struct mlx4_ib_cq *cq = to_mcq(ibcq);
+ struct mlx4_mtt mtt;
int outst_cqe;
int err;
@@ -376,10 +377,13 @@ int mlx4_ib_resize_cq(struct ib_cq *ibcq, int entries, struct ib_udata *udata)
goto out;
}
+ mtt = cq->buf.mtt;
+
err = mlx4_cq_resize(dev->dev, &cq->mcq, entries, &cq->resize_buf->buf.mtt);
if (err)
goto err_buf;
+ mlx4_mtt_cleanup(dev->dev, &mtt);
if (ibcq->uobject) {
cq->buf = cq->resize_buf->buf;
cq->ibcq.cqe = cq->resize_buf->cqe;
@@ -406,6 +410,7 @@ int mlx4_ib_resize_cq(struct ib_cq *ibcq, int entries, struct ib_udata *udata)
goto out;
err_buf:
+ mlx4_mtt_cleanup(dev->dev, &cq->resize_buf->buf.mtt);
if (!ibcq->uobject)
mlx4_ib_free_cq_buf(dev, &cq->resize_buf->buf,
cq->resize_buf->cqe);
diff --git a/drivers/net/mlx4/main.c b/drivers/net/mlx4/main.c
index 468921b..90a0281 100644
--- a/drivers/net/mlx4/main.c
+++ b/drivers/net/mlx4/main.c
@@ -753,6 +753,7 @@ static int mlx4_setup_hca(struct mlx4_dev *dev)
struct mlx4_priv *priv = mlx4_priv(dev);
int err;
int port;
+ __be32 ib_port_default_caps;
err = mlx4_init_uar_table(dev);
if (err) {
@@ -852,6 +853,13 @@ static int mlx4_setup_hca(struct mlx4_dev *dev)
}
for (port = 1; port <= dev->caps.num_ports; port++) {
+ ib_port_default_caps = 0;
+ err = mlx4_get_port_ib_caps(dev, port, &ib_port_default_caps);
+ if (err)
+ mlx4_warn(dev, "failed to get port %d default "
+ "ib capabilities (%d). Continuing with "
+ "caps = 0\n", port, err);
+ dev->caps.ib_port_def_cap[port] = ib_port_default_caps;
err = mlx4_SET_PORT(dev, port);
if (err) {
mlx4_err(dev, "Failed to set port %d, aborting\n",
diff --git a/drivers/net/mlx4/mlx4.h b/drivers/net/mlx4/mlx4.h
index 56a2e21..34c909d 100644
--- a/drivers/net/mlx4/mlx4.h
+++ b/drivers/net/mlx4/mlx4.h
@@ -385,5 +385,6 @@ void mlx4_init_mac_table(struct mlx4_dev *dev, struct mlx4_mac_table *table);
void mlx4_init_vlan_table(struct mlx4_dev *dev, struct mlx4_vlan_table *table);
int mlx4_SET_PORT(struct mlx4_dev *dev, u8 port);
+int mlx4_get_port_ib_caps(struct mlx4_dev *dev, u8 port, __be32 *caps);
#endif /* MLX4_H */
diff --git a/drivers/net/mlx4/port.c b/drivers/net/mlx4/port.c
index e2fdab4..0a057e5 100644
--- a/drivers/net/mlx4/port.c
+++ b/drivers/net/mlx4/port.c
@@ -258,6 +258,42 @@ out:
}
EXPORT_SYMBOL_GPL(mlx4_unregister_vlan);
+int mlx4_get_port_ib_caps(struct mlx4_dev *dev, u8 port, __be32 *caps)
+{
+ struct mlx4_cmd_mailbox *inmailbox, *outmailbox;
+ u8 *inbuf, *outbuf;
+ int err;
+
+ inmailbox = mlx4_alloc_cmd_mailbox(dev);
+ if (IS_ERR(inmailbox))
+ return PTR_ERR(inmailbox);
+
+ outmailbox = mlx4_alloc_cmd_mailbox(dev);
+ if (IS_ERR(outmailbox)) {
+ mlx4_free_cmd_mailbox(dev, inmailbox);
+ return PTR_ERR(outmailbox);
+ }
+
+ inbuf = inmailbox->buf;
+ outbuf = outmailbox->buf;
+ memset(inbuf, 0, 256);
+ memset(outbuf, 0, 256);
+ inbuf[0] = 1;
+ inbuf[1] = 1;
+ inbuf[2] = 1;
+ inbuf[3] = 1;
+ *(__be16 *) (&inbuf[16]) = cpu_to_be16(0x0015);
+ *(__be32 *) (&inbuf[20]) = cpu_to_be32(port);
+
+ err = mlx4_cmd_box(dev, inmailbox->dma, outmailbox->dma, port, 3,
+ MLX4_CMD_MAD_IFC, MLX4_CMD_TIME_CLASS_C);
+ if (!err)
+ *caps = *(__be32 *) (outbuf + 84);
+ mlx4_free_cmd_mailbox(dev, inmailbox);
+ mlx4_free_cmd_mailbox(dev, outmailbox);
+ return err;
+}
+
int mlx4_SET_PORT(struct mlx4_dev *dev, u8 port)
{
struct mlx4_cmd_mailbox *mailbox;
@@ -273,7 +309,8 @@ int mlx4_SET_PORT(struct mlx4_dev *dev, u8 port)
((u8 *) mailbox->buf)[3] = 6;
((__be16 *) mailbox->buf)[4] = cpu_to_be16(1 << 15);
((__be16 *) mailbox->buf)[6] = cpu_to_be16(1 << 15);
- }
+ } else
+ ((__be32 *) mailbox->buf)[1] = dev->caps.ib_port_def_cap[port];
err = mlx4_cmd(dev, mailbox->dma, port, is_eth, MLX4_CMD_SET_PORT,
MLX4_CMD_TIME_CLASS_B);
diff --git a/include/linux/mlx4/device.h b/include/linux/mlx4/device.h
index bd9977b..371086f 100644
--- a/include/linux/mlx4/device.h
+++ b/include/linux/mlx4/device.h
@@ -179,6 +179,7 @@ struct mlx4_caps {
int num_ports;
int vl_cap[MLX4_MAX_PORTS + 1];
int ib_mtu_cap[MLX4_MAX_PORTS + 1];
+ __be32 ib_port_def_cap[MLX4_MAX_PORTS + 1];
u64 def_mac[MLX4_MAX_PORTS + 1];
int eth_mtu_cap[MLX4_MAX_PORTS + 1];
int gid_table_len[MLX4_MAX_PORTS + 1];
^ permalink raw reply related [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
@ 2008-11-04 21:37 Roland Dreier
0 siblings, 0 replies; 223+ messages in thread
From: Roland Dreier @ 2008-11-04 21:37 UTC (permalink / raw)
To: torvalds, akpm; +Cc: general, linux-kernel
Linus, please pull from
master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This tree is also available from kernel.org mirrors at:
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This will get the following changes; mostly low-level hardware changes
plus a couple of small patches that fix IPoIB crashes.
Chien Tung (2):
RDMA/nes: Correct handling of PBL resources
RDMA/nes: Mitigate compatibility issue regarding PCIe write credits
Ilpo Järvinen (1):
RDMA/nes: Reindent mis-indented spinlocks
Ralph Campbell (1):
IB/ipath: Fix RDMA write with immediate copy of last packet
Roland Dreier (3):
RDMA/cxgb3: Fix too-big reserved field zeroing in iwch_post_zb_read()
mlx4_core: Fix unused variable warning
Merge branches 'cxgb3', 'ehca', 'ipath', 'ipoib', 'mlx4' and 'nes' into for-next
Stefan Roscher (1):
IB/ehca: Remove reference to special QP in case of port activation failure
Vadim Makhervaks (1):
RDMA/nes: Fix CQ allocation scheme for multicast receive queue apps
Yossi Etigin (3):
IPoIB: Don't enable napi when it's already enabled
IPoIB: Fix hang in ipoib_flush_paths()
IPoIB: Fix crash in path_rec_completion()
drivers/infiniband/hw/cxgb3/iwch_qp.c | 1 -
drivers/infiniband/hw/ehca/ehca_irq.c | 7 ++-
drivers/infiniband/hw/ehca/ehca_qp.c | 5 ++
drivers/infiniband/hw/ipath/ipath_ruc.c | 10 ++--
drivers/infiniband/hw/nes/nes.c | 16 +++++++
drivers/infiniband/hw/nes/nes_hw.h | 1 +
drivers/infiniband/hw/nes/nes_verbs.c | 64 +++++++++++++++++++---------
drivers/infiniband/ulp/ipoib/ipoib_main.c | 6 ++-
drivers/net/mlx4/mlx4.h | 9 +---
9 files changed, 82 insertions(+), 37 deletions(-)
diff --git a/drivers/infiniband/hw/cxgb3/iwch_qp.c b/drivers/infiniband/hw/cxgb3/iwch_qp.c
index 3e4585c..19661b2 100644
--- a/drivers/infiniband/hw/cxgb3/iwch_qp.c
+++ b/drivers/infiniband/hw/cxgb3/iwch_qp.c
@@ -745,7 +745,6 @@ int iwch_post_zb_read(struct iwch_qp *qhp)
wqe->read.rdmaop = T3_READ_REQ;
wqe->read.reserved[0] = 0;
wqe->read.reserved[1] = 0;
- wqe->read.reserved[2] = 0;
wqe->read.rem_stag = cpu_to_be32(1);
wqe->read.rem_to = cpu_to_be64(1);
wqe->read.local_stag = cpu_to_be32(1);
diff --git a/drivers/infiniband/hw/ehca/ehca_irq.c b/drivers/infiniband/hw/ehca/ehca_irq.c
index cb55be0..9e43459 100644
--- a/drivers/infiniband/hw/ehca/ehca_irq.c
+++ b/drivers/infiniband/hw/ehca/ehca_irq.c
@@ -370,6 +370,10 @@ static void parse_ec(struct ehca_shca *shca, u64 eqe)
switch (ec) {
case 0x30: /* port availability change */
if (EHCA_BMASK_GET(NEQE_PORT_AVAILABILITY, eqe)) {
+ /* only for autodetect mode important */
+ if (ehca_nr_ports >= 0)
+ break;
+
int suppress_event;
/* replay modify_qp for sqps */
spin_lock_irqsave(&sport->mod_sqp_lock, flags);
@@ -387,8 +391,7 @@ static void parse_ec(struct ehca_shca *shca, u64 eqe)
sport->port_state = IB_PORT_ACTIVE;
dispatch_port_event(shca, port, IB_EVENT_PORT_ACTIVE,
"is active");
- ehca_query_sma_attr(shca, port,
- &sport->saved_attr);
+ ehca_query_sma_attr(shca, port, &sport->saved_attr);
} else {
sport->port_state = IB_PORT_DOWN;
dispatch_port_event(shca, port, IB_EVENT_PORT_ERR,
diff --git a/drivers/infiniband/hw/ehca/ehca_qp.c b/drivers/infiniband/hw/ehca/ehca_qp.c
index 4d54b9f..9e05ee2 100644
--- a/drivers/infiniband/hw/ehca/ehca_qp.c
+++ b/drivers/infiniband/hw/ehca/ehca_qp.c
@@ -860,6 +860,11 @@ static struct ehca_qp *internal_create_qp(
if (qp_type == IB_QPT_GSI) {
h_ret = ehca_define_sqp(shca, my_qp, init_attr);
if (h_ret != H_SUCCESS) {
+ kfree(my_qp->mod_qp_parm);
+ my_qp->mod_qp_parm = NULL;
+ /* the QP pointer is no longer valid */
+ shca->sport[init_attr->port_num - 1].ibqp_sqp[qp_type] =
+ NULL;
ret = ehca2ib_return_code(h_ret);
goto create_qp_exit6;
}
diff --git a/drivers/infiniband/hw/ipath/ipath_ruc.c b/drivers/infiniband/hw/ipath/ipath_ruc.c
index fc0f6d9..2296832 100644
--- a/drivers/infiniband/hw/ipath/ipath_ruc.c
+++ b/drivers/infiniband/hw/ipath/ipath_ruc.c
@@ -156,7 +156,7 @@ bail:
/**
* ipath_get_rwqe - copy the next RWQE into the QP's RWQE
* @qp: the QP
- * @wr_id_only: update wr_id only, not SGEs
+ * @wr_id_only: update qp->r_wr_id only, not qp->r_sge
*
* Return 0 if no RWQE is available, otherwise return 1.
*
@@ -173,8 +173,6 @@ int ipath_get_rwqe(struct ipath_qp *qp, int wr_id_only)
u32 tail;
int ret;
- qp->r_sge.sg_list = qp->r_sg_list;
-
if (qp->ibqp.srq) {
srq = to_isrq(qp->ibqp.srq);
handler = srq->ibsrq.event_handler;
@@ -206,8 +204,10 @@ int ipath_get_rwqe(struct ipath_qp *qp, int wr_id_only)
wqe = get_rwqe_ptr(rq, tail);
if (++tail >= rq->size)
tail = 0;
- } while (!wr_id_only && !ipath_init_sge(qp, wqe, &qp->r_len,
- &qp->r_sge));
+ if (wr_id_only)
+ break;
+ qp->r_sge.sg_list = qp->r_sg_list;
+ } while (!ipath_init_sge(qp, wqe, &qp->r_len, &qp->r_sge));
qp->r_wr_id = wqe->wr_id;
wq->tail = tail;
diff --git a/drivers/infiniband/hw/nes/nes.c b/drivers/infiniband/hw/nes/nes.c
index a2b04d6..aa1dc41 100644
--- a/drivers/infiniband/hw/nes/nes.c
+++ b/drivers/infiniband/hw/nes/nes.c
@@ -95,6 +95,10 @@ unsigned int wqm_quanta = 0x10000;
module_param(wqm_quanta, int, 0644);
MODULE_PARM_DESC(wqm_quanta, "WQM quanta");
+static unsigned int limit_maxrdreqsz;
+module_param(limit_maxrdreqsz, bool, 0644);
+MODULE_PARM_DESC(limit_maxrdreqsz, "Limit max read request size to 256 Bytes");
+
LIST_HEAD(nes_adapter_list);
static LIST_HEAD(nes_dev_list);
@@ -588,6 +592,18 @@ static int __devinit nes_probe(struct pci_dev *pcidev, const struct pci_device_i
nesdev->nesadapter->port_count;
}
+ if ((limit_maxrdreqsz ||
+ ((nesdev->nesadapter->phy_type[0] == NES_PHY_TYPE_GLADIUS) &&
+ (hw_rev == NE020_REV1))) &&
+ (pcie_get_readrq(pcidev) > 256)) {
+ if (pcie_set_readrq(pcidev, 256))
+ printk(KERN_ERR PFX "Unable to set max read request"
+ " to 256 bytes\n");
+ else
+ nes_debug(NES_DBG_INIT, "Max read request size set"
+ " to 256 bytes\n");
+ }
+
tasklet_init(&nesdev->dpc_tasklet, nes_dpc, (unsigned long)nesdev);
/* bring up the Control QP */
diff --git a/drivers/infiniband/hw/nes/nes_hw.h b/drivers/infiniband/hw/nes/nes_hw.h
index 610b9d8..bc0b4de 100644
--- a/drivers/infiniband/hw/nes/nes_hw.h
+++ b/drivers/infiniband/hw/nes/nes_hw.h
@@ -40,6 +40,7 @@
#define NES_PHY_TYPE_ARGUS 4
#define NES_PHY_TYPE_PUMA_1G 5
#define NES_PHY_TYPE_PUMA_10G 6
+#define NES_PHY_TYPE_GLADIUS 7
#define NES_MULTICAST_PF_MAX 8
diff --git a/drivers/infiniband/hw/nes/nes_verbs.c b/drivers/infiniband/hw/nes/nes_verbs.c
index 932e56f..d36c9a0 100644
--- a/drivers/infiniband/hw/nes/nes_verbs.c
+++ b/drivers/infiniband/hw/nes/nes_verbs.c
@@ -220,14 +220,14 @@ static int nes_bind_mw(struct ib_qp *ibqp, struct ib_mw *ibmw,
if (nesqp->ibqp_state > IB_QPS_RTS)
return -EINVAL;
- spin_lock_irqsave(&nesqp->lock, flags);
+ spin_lock_irqsave(&nesqp->lock, flags);
head = nesqp->hwqp.sq_head;
qsize = nesqp->hwqp.sq_tail;
/* Check for SQ overflow */
if (((head + (2 * qsize) - nesqp->hwqp.sq_tail) % qsize) == (qsize - 1)) {
- spin_unlock_irqrestore(&nesqp->lock, flags);
+ spin_unlock_irqrestore(&nesqp->lock, flags);
return -EINVAL;
}
@@ -269,7 +269,7 @@ static int nes_bind_mw(struct ib_qp *ibqp, struct ib_mw *ibmw,
nes_write32(nesdev->regs+NES_WQE_ALLOC,
(1 << 24) | 0x00800000 | nesqp->hwqp.qp_id);
- spin_unlock_irqrestore(&nesqp->lock, flags);
+ spin_unlock_irqrestore(&nesqp->lock, flags);
return 0;
}
@@ -349,7 +349,7 @@ static struct ib_fmr *nes_alloc_fmr(struct ib_pd *ibpd,
if (nesfmr->nesmr.pbls_used > nesadapter->free_4kpbl) {
spin_unlock_irqrestore(&nesadapter->pbl_lock, flags);
ret = -ENOMEM;
- goto failed_vpbl_alloc;
+ goto failed_vpbl_avail;
} else {
nesadapter->free_4kpbl -= nesfmr->nesmr.pbls_used;
}
@@ -357,7 +357,7 @@ static struct ib_fmr *nes_alloc_fmr(struct ib_pd *ibpd,
if (nesfmr->nesmr.pbls_used > nesadapter->free_256pbl) {
spin_unlock_irqrestore(&nesadapter->pbl_lock, flags);
ret = -ENOMEM;
- goto failed_vpbl_alloc;
+ goto failed_vpbl_avail;
} else {
nesadapter->free_256pbl -= nesfmr->nesmr.pbls_used;
}
@@ -391,14 +391,14 @@ static struct ib_fmr *nes_alloc_fmr(struct ib_pd *ibpd,
goto failed_vpbl_alloc;
}
- nesfmr->root_vpbl.leaf_vpbl = kzalloc(sizeof(*nesfmr->root_vpbl.leaf_vpbl)*1024, GFP_KERNEL);
+ nesfmr->leaf_pbl_cnt = nesfmr->nesmr.pbls_used-1;
+ nesfmr->root_vpbl.leaf_vpbl = kzalloc(sizeof(*nesfmr->root_vpbl.leaf_vpbl)*1024, GFP_ATOMIC);
if (!nesfmr->root_vpbl.leaf_vpbl) {
spin_unlock_irqrestore(&nesadapter->pbl_lock, flags);
ret = -ENOMEM;
goto failed_leaf_vpbl_alloc;
}
- nesfmr->leaf_pbl_cnt = nesfmr->nesmr.pbls_used-1;
nes_debug(NES_DBG_MR, "two level pbl, root_vpbl.pbl_vbase=%p"
" leaf_pbl_cnt=%d root_vpbl.leaf_vpbl=%p\n",
nesfmr->root_vpbl.pbl_vbase, nesfmr->leaf_pbl_cnt, nesfmr->root_vpbl.leaf_vpbl);
@@ -519,6 +519,16 @@ static struct ib_fmr *nes_alloc_fmr(struct ib_pd *ibpd,
nesfmr->root_vpbl.pbl_pbase);
failed_vpbl_alloc:
+ if (nesfmr->nesmr.pbls_used != 0) {
+ spin_lock_irqsave(&nesadapter->pbl_lock, flags);
+ if (nesfmr->nesmr.pbl_4k)
+ nesadapter->free_4kpbl += nesfmr->nesmr.pbls_used;
+ else
+ nesadapter->free_256pbl += nesfmr->nesmr.pbls_used;
+ spin_unlock_irqrestore(&nesadapter->pbl_lock, flags);
+ }
+
+failed_vpbl_avail:
kfree(nesfmr);
failed_fmr_alloc:
@@ -534,18 +544,14 @@ static struct ib_fmr *nes_alloc_fmr(struct ib_pd *ibpd,
*/
static int nes_dealloc_fmr(struct ib_fmr *ibfmr)
{
+ unsigned long flags;
struct nes_mr *nesmr = to_nesmr_from_ibfmr(ibfmr);
struct nes_fmr *nesfmr = to_nesfmr(nesmr);
struct nes_vnic *nesvnic = to_nesvnic(ibfmr->device);
struct nes_device *nesdev = nesvnic->nesdev;
- struct nes_mr temp_nesmr = *nesmr;
+ struct nes_adapter *nesadapter = nesdev->nesadapter;
int i = 0;
- temp_nesmr.ibmw.device = ibfmr->device;
- temp_nesmr.ibmw.pd = ibfmr->pd;
- temp_nesmr.ibmw.rkey = ibfmr->rkey;
- temp_nesmr.ibmw.uobject = NULL;
-
/* free the resources */
if (nesfmr->leaf_pbl_cnt == 0) {
/* single PBL case */
@@ -561,8 +567,24 @@ static int nes_dealloc_fmr(struct ib_fmr *ibfmr)
pci_free_consistent(nesdev->pcidev, 8192, nesfmr->root_vpbl.pbl_vbase,
nesfmr->root_vpbl.pbl_pbase);
}
+ nesmr->ibmw.device = ibfmr->device;
+ nesmr->ibmw.pd = ibfmr->pd;
+ nesmr->ibmw.rkey = ibfmr->rkey;
+ nesmr->ibmw.uobject = NULL;
- return nes_dealloc_mw(&temp_nesmr.ibmw);
+ if (nesfmr->nesmr.pbls_used != 0) {
+ spin_lock_irqsave(&nesadapter->pbl_lock, flags);
+ if (nesfmr->nesmr.pbl_4k) {
+ nesadapter->free_4kpbl += nesfmr->nesmr.pbls_used;
+ WARN_ON(nesadapter->free_4kpbl > nesadapter->max_4kpbl);
+ } else {
+ nesadapter->free_256pbl += nesfmr->nesmr.pbls_used;
+ WARN_ON(nesadapter->free_256pbl > nesadapter->max_256pbl);
+ }
+ spin_unlock_irqrestore(&nesadapter->pbl_lock, flags);
+ }
+
+ return nes_dealloc_mw(&nesmr->ibmw);
}
@@ -1595,7 +1617,7 @@ static struct ib_cq *nes_create_cq(struct ib_device *ibdev, int entries,
nes_ucontext->mcrqf = req.mcrqf;
if (nes_ucontext->mcrqf) {
if (nes_ucontext->mcrqf & 0x80000000)
- nescq->hw_cq.cq_number = nesvnic->nic.qp_id + 12 + (nes_ucontext->mcrqf & 0xf) - 1;
+ nescq->hw_cq.cq_number = nesvnic->nic.qp_id + 28 + 2 * ((nes_ucontext->mcrqf & 0xf) - 1);
else if (nes_ucontext->mcrqf & 0x40000000)
nescq->hw_cq.cq_number = nes_ucontext->mcrqf & 0xffff;
else
@@ -3212,7 +3234,7 @@ static int nes_post_send(struct ib_qp *ibqp, struct ib_send_wr *ib_wr,
if (nesqp->ibqp_state > IB_QPS_RTS)
return -EINVAL;
- spin_lock_irqsave(&nesqp->lock, flags);
+ spin_lock_irqsave(&nesqp->lock, flags);
head = nesqp->hwqp.sq_head;
@@ -3337,7 +3359,7 @@ static int nes_post_send(struct ib_qp *ibqp, struct ib_send_wr *ib_wr,
(counter << 24) | 0x00800000 | nesqp->hwqp.qp_id);
}
- spin_unlock_irqrestore(&nesqp->lock, flags);
+ spin_unlock_irqrestore(&nesqp->lock, flags);
if (err)
*bad_wr = ib_wr;
@@ -3368,7 +3390,7 @@ static int nes_post_recv(struct ib_qp *ibqp, struct ib_recv_wr *ib_wr,
if (nesqp->ibqp_state > IB_QPS_RTS)
return -EINVAL;
- spin_lock_irqsave(&nesqp->lock, flags);
+ spin_lock_irqsave(&nesqp->lock, flags);
head = nesqp->hwqp.rq_head;
@@ -3421,7 +3443,7 @@ static int nes_post_recv(struct ib_qp *ibqp, struct ib_recv_wr *ib_wr,
nes_write32(nesdev->regs+NES_WQE_ALLOC, (counter<<24) | nesqp->hwqp.qp_id);
}
- spin_unlock_irqrestore(&nesqp->lock, flags);
+ spin_unlock_irqrestore(&nesqp->lock, flags);
if (err)
*bad_wr = ib_wr;
@@ -3453,7 +3475,7 @@ static int nes_poll_cq(struct ib_cq *ibcq, int num_entries, struct ib_wc *entry)
nes_debug(NES_DBG_CQ, "\n");
- spin_lock_irqsave(&nescq->lock, flags);
+ spin_lock_irqsave(&nescq->lock, flags);
head = nescq->hw_cq.cq_head;
cq_size = nescq->hw_cq.cq_size;
@@ -3562,7 +3584,7 @@ static int nes_poll_cq(struct ib_cq *ibcq, int num_entries, struct ib_wc *entry)
nes_debug(NES_DBG_CQ, "Reporting %u completions for CQ%u.\n",
cqe_count, nescq->hw_cq.cq_number);
- spin_unlock_irqrestore(&nescq->lock, flags);
+ spin_unlock_irqrestore(&nescq->lock, flags);
return cqe_count;
}
diff --git a/drivers/infiniband/ulp/ipoib/ipoib_main.c b/drivers/infiniband/ulp/ipoib/ipoib_main.c
index fddded7..85257f6 100644
--- a/drivers/infiniband/ulp/ipoib/ipoib_main.c
+++ b/drivers/infiniband/ulp/ipoib/ipoib_main.c
@@ -106,12 +106,13 @@ int ipoib_open(struct net_device *dev)
ipoib_dbg(priv, "bringing up interface\n");
- napi_enable(&priv->napi);
set_bit(IPOIB_FLAG_ADMIN_UP, &priv->flags);
if (ipoib_pkey_dev_delay_open(dev))
return 0;
+ napi_enable(&priv->napi);
+
if (ipoib_ib_dev_open(dev)) {
napi_disable(&priv->napi);
return -EINVAL;
@@ -546,6 +547,7 @@ static int path_rec_start(struct net_device *dev,
if (path->query_id < 0) {
ipoib_warn(priv, "ib_sa_path_rec_get failed: %d\n", path->query_id);
path->query = NULL;
+ complete(&path->done);
return path->query_id;
}
@@ -662,7 +664,7 @@ static void unicast_arp_send(struct sk_buff *skb, struct net_device *dev,
skb_push(skb, sizeof *phdr);
__skb_queue_tail(&path->queue, skb);
- if (path_rec_start(dev, path)) {
+ if (!path->query && path_rec_start(dev, path)) {
spin_unlock_irqrestore(&priv->lock, flags);
path_free(dev, path);
return;
diff --git a/drivers/net/mlx4/mlx4.h b/drivers/net/mlx4/mlx4.h
index fa431fa..56a2e21 100644
--- a/drivers/net/mlx4/mlx4.h
+++ b/drivers/net/mlx4/mlx4.h
@@ -87,6 +87,9 @@ enum {
#ifdef CONFIG_MLX4_DEBUG
extern int mlx4_debug_level;
+#else /* CONFIG_MLX4_DEBUG */
+#define mlx4_debug_level (0)
+#endif /* CONFIG_MLX4_DEBUG */
#define mlx4_dbg(mdev, format, arg...) \
do { \
@@ -94,12 +97,6 @@ extern int mlx4_debug_level;
dev_printk(KERN_DEBUG, &mdev->pdev->dev, format, ## arg); \
} while (0)
-#else /* CONFIG_MLX4_DEBUG */
-
-#define mlx4_dbg(mdev, format, arg...) do { (void) mdev; } while (0)
-
-#endif /* CONFIG_MLX4_DEBUG */
-
#define mlx4_err(mdev, format, arg...) \
dev_err(&mdev->pdev->dev, format, ## arg)
#define mlx4_info(mdev, format, arg...) \
^ permalink raw reply related [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
@ 2008-10-23 4:37 Roland Dreier
0 siblings, 0 replies; 223+ messages in thread
From: Roland Dreier @ 2008-10-23 4:37 UTC (permalink / raw)
To: torvalds, akpm; +Cc: general, linux-kernel, jeff
Linus, please pull from
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This will get the last batch of merges for the 2.6.28 window. As the
dirstat shows, this is almost entirely the new mlx4_en driver, which
is a 10G Ethernet driver for Mellanox ConnectX adapters:
1.2% drivers/infiniband/
98.6% drivers/net/mlx4/
Jeff Garzik and I agreed that this new driver should go through my
tree because it depended on changes to the existing mlx4_ib InfiniBand
driver that I wanted to review and apply through my tree.
Other than mlx4_en, there are just miscellaneous fixes of the usual
type (low-level hardware drivers and IPoIB).
Hoang-Nam Nguyen (1):
IB/ehca: Don't allow creating UC QP with SRQ
Julien Brunel (1):
RDMA/ucma: Test ucma_alloc_multicast() return against NULL, not with IS_ERR()
Or Gerlitz (2):
IPoIB: Clean up ethtool support
IPoIB: Set netdev offload features properly for child (VLAN) interfaces
Roland Dreier (4):
IPoIB: Always initialize poll_timer to avoid crash on unload
IB/mad: Use krealloc() to resize snoop table
Update NetEffect maintainer emails to Intel emails
Merge branches 'cma', 'cxgb3', 'ehca', 'ipoib', 'mad', 'mlx4' and 'nes' into for-next
Stefan Roscher (2):
IB/ehca: Fix reported max number of QPs and CQs in systems with >1 adapter
IB/ehca: Reject dynamic memory add/remove when ehca adapter is present
Steve Wise (1):
RDMA/cxgb3: Remove cmid reference on tid allocation failures
Yevgeny Petrilin (7):
mlx4_core: Add QP range reservation support
mlx4_core: Support multiple pre-reserved QP regions
mlx4_core: Get ethernet MTU and default address from firmware
mlx4_core: Ethernet MAC/VLAN management
mlx4_core: Multiple port type support
mlx4_en: Add driver for Mellanox ConnectX 10GbE NIC
mlx4_core: Add Ethernet PCI device IDs
MAINTAINERS | 4 +-
drivers/infiniband/core/mad.c | 14 +-
drivers/infiniband/core/ucma.c | 4 +-
drivers/infiniband/hw/cxgb3/iwch_cm.c | 1 +
drivers/infiniband/hw/ehca/ehca_classes.h | 2 +
drivers/infiniband/hw/ehca/ehca_cq.c | 4 +-
drivers/infiniband/hw/ehca/ehca_main.c | 83 ++-
drivers/infiniband/hw/ehca/ehca_qp.c | 10 +-
drivers/infiniband/hw/mlx4/mad.c | 6 +-
drivers/infiniband/hw/mlx4/main.c | 11 +-
drivers/infiniband/hw/mlx4/mlx4_ib.h | 1 +
drivers/infiniband/hw/mlx4/qp.c | 21 +-
drivers/infiniband/ulp/ipoib/ipoib.h | 1 +
drivers/infiniband/ulp/ipoib/ipoib_ethtool.c | 9 +-
drivers/infiniband/ulp/ipoib/ipoib_ib.c | 7 +-
drivers/infiniband/ulp/ipoib/ipoib_main.c | 67 +-
drivers/infiniband/ulp/ipoib/ipoib_vlan.c | 4 +
drivers/net/Kconfig | 9 +
drivers/net/mlx4/Makefile | 7 +-
drivers/net/mlx4/alloc.c | 97 +++-
drivers/net/mlx4/cq.c | 2 +-
drivers/net/mlx4/en_cq.c | 146 ++++
drivers/net/mlx4/en_main.c | 254 ++++++
drivers/net/mlx4/en_netdev.c | 1088 ++++++++++++++++++++++++++
drivers/net/mlx4/en_params.c | 480 ++++++++++++
drivers/net/mlx4/en_port.c | 261 ++++++
drivers/net/mlx4/en_port.h | 570 ++++++++++++++
drivers/net/mlx4/en_resources.c | 96 +++
drivers/net/mlx4/en_rx.c | 1080 +++++++++++++++++++++++++
drivers/net/mlx4/en_tx.c | 820 +++++++++++++++++++
drivers/net/mlx4/eq.c | 2 +-
drivers/net/mlx4/fw.c | 20 +-
drivers/net/mlx4/fw.h | 7 +-
drivers/net/mlx4/main.c | 287 +++++++-
drivers/net/mlx4/mcg.c | 4 +-
drivers/net/mlx4/mlx4.h | 45 +-
drivers/net/mlx4/mlx4_en.h | 561 +++++++++++++
drivers/net/mlx4/mr.c | 2 +-
drivers/net/mlx4/pd.c | 4 +-
drivers/net/mlx4/port.c | 282 +++++++
drivers/net/mlx4/qp.c | 81 ++-
drivers/net/mlx4/srq.c | 2 +-
include/linux/mlx4/cmd.h | 9 +
include/linux/mlx4/device.h | 54 ++-
44 files changed, 6394 insertions(+), 125 deletions(-)
create mode 100644 drivers/net/mlx4/en_cq.c
create mode 100644 drivers/net/mlx4/en_main.c
create mode 100644 drivers/net/mlx4/en_netdev.c
create mode 100644 drivers/net/mlx4/en_params.c
create mode 100644 drivers/net/mlx4/en_port.c
create mode 100644 drivers/net/mlx4/en_port.h
create mode 100644 drivers/net/mlx4/en_resources.c
create mode 100644 drivers/net/mlx4/en_rx.c
create mode 100644 drivers/net/mlx4/en_tx.c
create mode 100644 drivers/net/mlx4/mlx4_en.h
create mode 100644 drivers/net/mlx4/port.c
^ permalink raw reply [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
@ 2008-10-10 0:48 Roland Dreier
0 siblings, 0 replies; 223+ messages in thread
From: Roland Dreier @ 2008-10-10 0:48 UTC (permalink / raw)
To: torvalds, akpm; +Cc: general, linux-kernel
Linus, please pull from
master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This tree is also available from kernel.org mirrors at:
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This will get the first batch of 2.6.28 merges -- pretty much all
low-level hardware driver and IP-over-IB fixes, along with a few little
things elsewhere, as the dirstat shows:
14.4% drivers/infiniband/hw/ehca/
22.0% drivers/infiniband/hw/mthca/
33.1% drivers/infiniband/hw/nes/
26.9% drivers/infiniband/ulp/ipoib/
3.4% drivers/infiniband/
Full list of patches below:
Alexander Schmidt (1):
IB/ehca: Generate flush status CQ entries
Bob Sharp (4):
RDMA/nes: Free NIC TX buffers when destroying NIC QP
RDMA/nes: Enable MC/UC after changing MTU
RDMA/nes: Correct MAX TSO frags value
RDMA/nes: Fix routed RDMA connections
Chien Tung (10):
RDMA/nes: Add support for 4-port 1G HP blade card
RDMA/nes: Module parameter permissions
RDMA/nes: Add wqm_quanta module option
RDMA/nes: Fix MDC setting
RDMA/nes: Fill in firmware version for ethtool
RDMA/nes: Correct tso_wqe_length
RDMA/nes: Stop spurious MAC interrupts
RDMA/nes: Limit critical error interrupts
RDMA/nes: Correct error_module bit mask
RDMA/nes: Fix slab corruption
Faisal Latif (2):
RDMA/nes: Make mini_cm_connect() static
RDMA/nes: Handle AE bounds violation
Hefty, Sean (1):
IB/cm: Correctly free cm_device structure
John Lacombe (1):
RDMA/nes: Use ethtool timer value
Jon Mason (1):
RDMA/cxgb3: Set active_mtu in ib_port_attr
Julia Lawall (1):
IB: Drop code after return statement
Michael Brooks (1):
IB/mad: Don't discard BMA responses in kernel
Ralph Campbell (1):
IB/ipath: Fix SLID generation for RC/UC QPs when LMC > 0
Roland Dreier (4):
IPoIB: Fix crash when path record fails after path flush
IB/mthca: Use pci_request_regions()
IPoIB: Use netif_tx_lock() and get rid of private tx_lock, LLTX
Merge branches 'cma', 'cxgb3', 'ehca', 'ipath', 'ipoib', 'mad', 'misc', 'mlx4', 'mthca' and 'nes' into for-next
Vadim Makhervaks (1):
RDMA/nes: Enhanced PFT management scheme
Vladimir Sokolovsky (1):
IB/mlx4: Set RLKEY bit for kernel QPs
Yannick Cote (1):
IB/ipath: Fix hang on module unload
drivers/infiniband/core/cm.c | 2 +
drivers/infiniband/core/mad.c | 5 +-
drivers/infiniband/hw/amso1100/c2_provider.c | 1 -
drivers/infiniband/hw/cxgb3/iwch_provider.c | 9 +-
drivers/infiniband/hw/ehca/ehca_classes.h | 14 ++-
drivers/infiniband/hw/ehca/ehca_cq.c | 3 +
drivers/infiniband/hw/ehca/ehca_iverbs.h | 2 +
drivers/infiniband/hw/ehca/ehca_qp.c | 225 ++++++++++++++++++++++--
drivers/infiniband/hw/ehca/ehca_reqs.c | 211 +++++++++++++++++++---
drivers/infiniband/hw/ipath/ipath_rc.c | 3 +-
drivers/infiniband/hw/ipath/ipath_ruc.c | 3 +-
drivers/infiniband/hw/ipath/ipath_verbs.c | 7 +
drivers/infiniband/hw/mlx4/qp.c | 3 +
drivers/infiniband/hw/mthca/mthca_catas.c | 15 +--
drivers/infiniband/hw/mthca/mthca_eq.c | 51 +-----
drivers/infiniband/hw/mthca/mthca_main.c | 59 +------
drivers/infiniband/hw/nes/nes.c | 95 +++++++++-
drivers/infiniband/hw/nes/nes.h | 2 +-
drivers/infiniband/hw/nes/nes_cm.c | 41 ++++-
drivers/infiniband/hw/nes/nes_hw.c | 205 ++++++++++++++++++----
drivers/infiniband/hw/nes/nes_hw.h | 6 +
drivers/infiniband/hw/nes/nes_nic.c | 122 +++++++++++---
drivers/infiniband/hw/nes/nes_verbs.c | 3 -
drivers/infiniband/ulp/ipoib/ipoib.h | 8 +-
drivers/infiniband/ulp/ipoib/ipoib_cm.c | 88 ++++++----
drivers/infiniband/ulp/ipoib/ipoib_ib.c | 30 +++-
drivers/infiniband/ulp/ipoib/ipoib_main.c | 76 ++++-----
drivers/infiniband/ulp/ipoib/ipoib_multicast.c | 31 ++--
28 files changed, 961 insertions(+), 359 deletions(-)
^ permalink raw reply [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
@ 2008-09-17 16:40 Roland Dreier
0 siblings, 0 replies; 223+ messages in thread
From: Roland Dreier @ 2008-09-17 16:40 UTC (permalink / raw)
To: torvalds, akpm; +Cc: linux-kernel, general
Linus, please pull from
master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This tree is also available from kernel.org mirrors at:
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This will get four patches, which I believe are all appropriate for
this stage of 2.6.27:
- A fix for a nes regression we introduced in some earlier 2.6.27
patches that leads to userspace processes hanging on exit.
- Two fixes that make a new mlx4 feature we added in 2.6.27 actually
work. The functions touched are only used for the new fast
register work requests so fixing this is low risk.
- A fix for an IPoIB RTNL deadlock that we introduced in 2.6.27.
Faisal Latif (1):
RDMA/nes: Fix client side QP destroy
Roland Dreier (1):
Merge branches 'ipoib', 'mlx4' and 'nes' into for-linus
Vladimir Sokolovsky (2):
mlx4_core: Set RAE and init mtt_sz field in FRMR MPT entries
IB/mlx4: Fix up fast register page list format
Yossi Etigin (1):
IPoIB: Fix deadlock on RTNL between bcast join comp and ipoib_stop()
drivers/infiniband/hw/mlx4/qp.c | 6 ++++
drivers/infiniband/hw/nes/nes_cm.c | 11 +-------
drivers/infiniband/ulp/ipoib/ipoib.h | 2 +
drivers/infiniband/ulp/ipoib/ipoib_main.c | 1 +
drivers/infiniband/ulp/ipoib/ipoib_multicast.c | 31 ++++++++++++++++-------
drivers/net/mlx4/mr.c | 10 ++++---
include/linux/mlx4/device.h | 4 +++
7 files changed, 42 insertions(+), 23 deletions(-)
commit e8224e4b804b4fd26723191c1891101a5959bb8a
Author: Yossi Etigin <yossi.openib@gmail.com>
Date: Tue Sep 16 11:57:45 2008 -0700
IPoIB: Fix deadlock on RTNL between bcast join comp and ipoib_stop()
Taking rtnl_lock in ipoib_mcast_join_complete() causes a deadlock with
ipoib_stop(). We avoid it by scheduling the piece of code that takes
the lock on ipoib_workqueue instead of executing it directly. This
works because we only flush the ipoib_workqueue with the RTNL not held.
The deadlock happens because ipoib_stop() calls ipoib_ib_dev_down()
which calls ipoib_mcast_dev_flush(), which calls ipoib_mcast_free(),
which calls ipoib_mcast_leave(). The latter calls
ib_sa_free_multicast(), and this waits until the multicast completion
handler finishes. This handler is ipoib_mcast_join_complete(), which
waits for the rtnl_lock(), which was already taken by ipoib_stop().
This bug was introduced in commit a77a57a1 ("IPoIB: Fix deadlock on
RTNL in ipoib_stop()").
Signed-off-by: Yossi Etigin <yosefe@voltaire.com>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
diff --git a/drivers/infiniband/ulp/ipoib/ipoib.h b/drivers/infiniband/ulp/ipoib/ipoib.h
index b0ffc9a..05eb41b 100644
--- a/drivers/infiniband/ulp/ipoib/ipoib.h
+++ b/drivers/infiniband/ulp/ipoib/ipoib.h
@@ -293,6 +293,7 @@ struct ipoib_dev_priv {
struct delayed_work pkey_poll_task;
struct delayed_work mcast_task;
+ struct work_struct carrier_on_task;
struct work_struct flush_light;
struct work_struct flush_normal;
struct work_struct flush_heavy;
@@ -464,6 +465,7 @@ int ipoib_dev_init(struct net_device *dev, struct ib_device *ca, int port);
void ipoib_dev_cleanup(struct net_device *dev);
void ipoib_mcast_join_task(struct work_struct *work);
+void ipoib_mcast_carrier_on_task(struct work_struct *work);
void ipoib_mcast_send(struct net_device *dev, void *mgid, struct sk_buff *skb);
void ipoib_mcast_restart_task(struct work_struct *work);
diff --git a/drivers/infiniband/ulp/ipoib/ipoib_main.c b/drivers/infiniband/ulp/ipoib/ipoib_main.c
index 7e9e218..1b1df5c 100644
--- a/drivers/infiniband/ulp/ipoib/ipoib_main.c
+++ b/drivers/infiniband/ulp/ipoib/ipoib_main.c
@@ -1075,6 +1075,7 @@ static void ipoib_setup(struct net_device *dev)
INIT_DELAYED_WORK(&priv->pkey_poll_task, ipoib_pkey_poll);
INIT_DELAYED_WORK(&priv->mcast_task, ipoib_mcast_join_task);
+ INIT_WORK(&priv->carrier_on_task, ipoib_mcast_carrier_on_task);
INIT_WORK(&priv->flush_light, ipoib_ib_dev_flush_light);
INIT_WORK(&priv->flush_normal, ipoib_ib_dev_flush_normal);
INIT_WORK(&priv->flush_heavy, ipoib_ib_dev_flush_heavy);
diff --git a/drivers/infiniband/ulp/ipoib/ipoib_multicast.c b/drivers/infiniband/ulp/ipoib/ipoib_multicast.c
index ac33c8f..aae2862 100644
--- a/drivers/infiniband/ulp/ipoib/ipoib_multicast.c
+++ b/drivers/infiniband/ulp/ipoib/ipoib_multicast.c
@@ -366,6 +366,21 @@ static int ipoib_mcast_sendonly_join(struct ipoib_mcast *mcast)
return ret;
}
+void ipoib_mcast_carrier_on_task(struct work_struct *work)
+{
+ struct ipoib_dev_priv *priv = container_of(work, struct ipoib_dev_priv,
+ carrier_on_task);
+
+ /*
+ * Take rtnl_lock to avoid racing with ipoib_stop() and
+ * turning the carrier back on while a device is being
+ * removed.
+ */
+ rtnl_lock();
+ netif_carrier_on(priv->dev);
+ rtnl_unlock();
+}
+
static int ipoib_mcast_join_complete(int status,
struct ib_sa_multicast *multicast)
{
@@ -392,16 +407,12 @@ static int ipoib_mcast_join_complete(int status,
&priv->mcast_task, 0);
mutex_unlock(&mcast_mutex);
- if (mcast == priv->broadcast) {
- /*
- * Take RTNL lock here to avoid racing with
- * ipoib_stop() and turning the carrier back
- * on while a device is being removed.
- */
- rtnl_lock();
- netif_carrier_on(dev);
- rtnl_unlock();
- }
+ /*
+ * Defer carrier on work to ipoib_workqueue to avoid a
+ * deadlock on rtnl_lock here.
+ */
+ if (mcast == priv->broadcast)
+ queue_work(ipoib_workqueue, &priv->carrier_on_task);
return 0;
}
commit d7ffd5076d4407d54b25bc4b25f3002f74fbafde
Author: Faisal Latif <flatif@neteffect.com>
Date: Tue Sep 16 11:56:26 2008 -0700
RDMA/nes: Fix client side QP destroy
Fix QP not being destroyed properly on the client, which leads to
userspace programs hanging on exit. This is a missing chunk from the
connection management rewrite in commit 6492cdf3 ("RDMA/nes: CM
connection setup/teardown rework").
Signed-off-by: Faisal Latif <flatif@neteffect.com>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
diff --git a/drivers/infiniband/hw/nes/nes_cm.c b/drivers/infiniband/hw/nes/nes_cm.c
index 9f0b964..499d3cf 100644
--- a/drivers/infiniband/hw/nes/nes_cm.c
+++ b/drivers/infiniband/hw/nes/nes_cm.c
@@ -1956,13 +1956,6 @@ static int mini_cm_reject(struct nes_cm_core *cm_core,
return ret;
cleanup_retrans_entry(cm_node);
cm_node->state = NES_CM_STATE_CLOSED;
- ret = send_fin(cm_node, NULL);
-
- if (cm_node->accept_pend) {
- BUG_ON(!cm_node->listener);
- atomic_dec(&cm_node->listener->pend_accepts_cnt);
- BUG_ON(atomic_read(&cm_node->listener->pend_accepts_cnt) < 0);
- }
ret = send_reset(cm_node, NULL);
return ret;
@@ -2383,6 +2376,7 @@ static int nes_cm_disconn_true(struct nes_qp *nesqp)
atomic_inc(&cm_disconnects);
cm_event.event = IW_CM_EVENT_DISCONNECT;
if (last_ae == NES_AEQE_AEID_LLP_CONNECTION_RESET) {
+ issued_disconnect_reset = 1;
cm_event.status = IW_CM_EVENT_STATUS_RESET;
nes_debug(NES_DBG_CM, "Generating a CM "
"Disconnect Event (status reset) for "
@@ -2508,7 +2502,6 @@ static int nes_disconnect(struct nes_qp *nesqp, int abrupt)
nes_debug(NES_DBG_CM, "Call close API\n");
g_cm_core->api->close(g_cm_core, nesqp->cm_node);
- nesqp->cm_node = NULL;
}
return ret;
@@ -2837,6 +2830,7 @@ int nes_connect(struct iw_cm_id *cm_id, struct iw_cm_conn_param *conn_param)
cm_node->apbvt_set = 1;
nesqp->cm_node = cm_node;
cm_node->nesqp = nesqp;
+ nes_add_ref(&nesqp->ibqp);
return 0;
}
@@ -3167,7 +3161,6 @@ static void cm_event_connect_error(struct nes_cm_event *event)
if (ret)
printk(KERN_ERR "%s[%u] OFA CM event_handler returned, "
"ret=%d\n", __func__, __LINE__, ret);
- nes_rem_ref(&nesqp->ibqp);
cm_id->rem_ref(cm_id);
rem_ref_cm_node(event->cm_node->cm_core, event->cm_node);
commit 29bdc88384c2b24e37e5760df0dc898546083d6b
Author: Vladimir Sokolovsky <vlad@mellanox.co.il>
Date: Mon Sep 15 14:25:23 2008 -0700
IB/mlx4: Fix up fast register page list format
Byte swap the addresses in the page list for fast register work requests
to big endian to match what the HCA expectx. Also, the addresses must
have the "present" bit set so that the HCA knows it can access them.
Otherwise the HCA will fault the first time it accesses the memory
region.
Signed-off-by: Vladimir Sokolovsky <vlad@mellanox.co.il>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
diff --git a/drivers/infiniband/hw/mlx4/qp.c b/drivers/infiniband/hw/mlx4/qp.c
index f29dbb7..9559248 100644
--- a/drivers/infiniband/hw/mlx4/qp.c
+++ b/drivers/infiniband/hw/mlx4/qp.c
@@ -1342,6 +1342,12 @@ static __be32 convert_access(int acc)
static void set_fmr_seg(struct mlx4_wqe_fmr_seg *fseg, struct ib_send_wr *wr)
{
struct mlx4_ib_fast_reg_page_list *mfrpl = to_mfrpl(wr->wr.fast_reg.page_list);
+ int i;
+
+ for (i = 0; i < wr->wr.fast_reg.page_list_len; ++i)
+ wr->wr.fast_reg.page_list->page_list[i] =
+ cpu_to_be64(wr->wr.fast_reg.page_list->page_list[i] |
+ MLX4_MTT_FLAG_PRESENT);
fseg->flags = convert_access(wr->wr.fast_reg.access_flags);
fseg->mem_key = cpu_to_be32(wr->wr.fast_reg.rkey);
diff --git a/drivers/net/mlx4/mr.c b/drivers/net/mlx4/mr.c
index 644adf0..d1dd5b4 100644
--- a/drivers/net/mlx4/mr.c
+++ b/drivers/net/mlx4/mr.c
@@ -71,8 +71,6 @@ struct mlx4_mpt_entry {
#define MLX4_MPT_PD_FLAG_RAE (1 << 28)
#define MLX4_MPT_PD_FLAG_EN_INV (3 << 24)
-#define MLX4_MTT_FLAG_PRESENT 1
-
#define MLX4_MPT_STATUS_SW 0xF0
#define MLX4_MPT_STATUS_HW 0x00
diff --git a/include/linux/mlx4/device.h b/include/linux/mlx4/device.h
index 655ea0d..b2f9444 100644
--- a/include/linux/mlx4/device.h
+++ b/include/linux/mlx4/device.h
@@ -141,6 +141,10 @@ enum {
MLX4_STAT_RATE_OFFSET = 5
};
+enum {
+ MLX4_MTT_FLAG_PRESENT = 1
+};
+
static inline u64 mlx4_fw_ver(u64 major, u64 minor, u64 subminor)
{
return (major << 32) | (minor << 16) | subminor;
commit c9257433f2eaf8803a1f3d3be5d984232db41ffe
Author: Vladimir Sokolovsky <vlad@mellanox.co.il>
Date: Tue Sep 2 13:38:29 2008 -0700
mlx4_core: Set RAE and init mtt_sz field in FRMR MPT entries
Set the RAE (remote access enable) bit and correctly initialize the
MTT size in MPT entries being set up for fast register memory
regions. Otherwise the callers can't enable remote access and in fact
can't fast register at all (since the HCA will think no MTT entries
are allocated).
Signed-off-by: Vladimir Sokolovsky <vlad@mellanox.co.il>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
diff --git a/drivers/net/mlx4/mr.c b/drivers/net/mlx4/mr.c
index 62071d9..644adf0 100644
--- a/drivers/net/mlx4/mr.c
+++ b/drivers/net/mlx4/mr.c
@@ -67,7 +67,8 @@ struct mlx4_mpt_entry {
#define MLX4_MPT_FLAG_PHYSICAL (1 << 9)
#define MLX4_MPT_FLAG_REGION (1 << 8)
-#define MLX4_MPT_PD_FLAG_FAST_REG (1 << 26)
+#define MLX4_MPT_PD_FLAG_FAST_REG (1 << 27)
+#define MLX4_MPT_PD_FLAG_RAE (1 << 28)
#define MLX4_MPT_PD_FLAG_EN_INV (3 << 24)
#define MLX4_MTT_FLAG_PRESENT 1
@@ -348,7 +349,10 @@ int mlx4_mr_enable(struct mlx4_dev *dev, struct mlx4_mr *mr)
if (mr->mtt.order >= 0 && mr->mtt.page_shift == 0) {
/* fast register MR in free state */
mpt_entry->flags |= cpu_to_be32(MLX4_MPT_FLAG_FREE);
- mpt_entry->pd_flags |= cpu_to_be32(MLX4_MPT_PD_FLAG_FAST_REG);
+ mpt_entry->pd_flags |= cpu_to_be32(MLX4_MPT_PD_FLAG_FAST_REG |
+ MLX4_MPT_PD_FLAG_RAE);
+ mpt_entry->mtt_sz = cpu_to_be32((1 << mr->mtt.order) *
+ MLX4_MTT_ENTRY_PER_SEG);
} else {
mpt_entry->flags |= cpu_to_be32(MLX4_MPT_FLAG_SW_OWNS);
}
^ permalink raw reply related [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
@ 2008-08-19 22:03 Roland Dreier
0 siblings, 0 replies; 223+ messages in thread
From: Roland Dreier @ 2008-08-19 22:03 UTC (permalink / raw)
To: torvalds, akpm; +Cc: general, linux-kernel
Linus, please pull from
master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This tree is also available from kernel.org mirrors at:
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
Dave Olson (1):
IB/ipath: Fix incorrect check for max physical address in TID
Ralph Campbell (1):
IB/ipath: Fix lost UD send work request
Roland Dreier (2):
IPoIB: Fix deadlock on RTNL in ipoib_stop()
Merge branches 'ipath' and 'ipoib' into for-linus
drivers/infiniband/hw/ipath/ipath_iba7220.c | 2 +-
drivers/infiniband/hw/ipath/ipath_ud.c | 8 ++++++--
drivers/infiniband/ulp/ipoib/ipoib_main.c | 19 +++++++++----------
drivers/infiniband/ulp/ipoib/ipoib_multicast.c | 10 +++++++++-
4 files changed, 25 insertions(+), 14 deletions(-)
diff --git a/drivers/infiniband/hw/ipath/ipath_iba7220.c b/drivers/infiniband/hw/ipath/ipath_iba7220.c
index d90f5e9..9839e20 100644
--- a/drivers/infiniband/hw/ipath/ipath_iba7220.c
+++ b/drivers/infiniband/hw/ipath/ipath_iba7220.c
@@ -1720,7 +1720,7 @@ static void ipath_7220_put_tid(struct ipath_devdata *dd, u64 __iomem *tidptr,
"not 2KB aligned!\n", pa);
return;
}
- if (pa >= (1UL << IBA7220_TID_SZ_SHIFT)) {
+ if (chippa >= (1UL << IBA7220_TID_SZ_SHIFT)) {
ipath_dev_err(dd,
"BUG: Physical page address 0x%lx "
"larger than supported\n", pa);
diff --git a/drivers/infiniband/hw/ipath/ipath_ud.c b/drivers/infiniband/hw/ipath/ipath_ud.c
index 36aa242..729446f 100644
--- a/drivers/infiniband/hw/ipath/ipath_ud.c
+++ b/drivers/infiniband/hw/ipath/ipath_ud.c
@@ -267,6 +267,7 @@ int ipath_make_ud_req(struct ipath_qp *qp)
u16 lrh0;
u16 lid;
int ret = 0;
+ int next_cur;
spin_lock_irqsave(&qp->s_lock, flags);
@@ -290,8 +291,9 @@ int ipath_make_ud_req(struct ipath_qp *qp)
goto bail;
wqe = get_swqe_ptr(qp, qp->s_cur);
- if (++qp->s_cur >= qp->s_size)
- qp->s_cur = 0;
+ next_cur = qp->s_cur + 1;
+ if (next_cur >= qp->s_size)
+ next_cur = 0;
/* Construct the header. */
ah_attr = &to_iah(wqe->wr.wr.ud.ah)->attr;
@@ -315,6 +317,7 @@ int ipath_make_ud_req(struct ipath_qp *qp)
qp->s_flags |= IPATH_S_WAIT_DMA;
goto bail;
}
+ qp->s_cur = next_cur;
spin_unlock_irqrestore(&qp->s_lock, flags);
ipath_ud_loopback(qp, wqe);
spin_lock_irqsave(&qp->s_lock, flags);
@@ -323,6 +326,7 @@ int ipath_make_ud_req(struct ipath_qp *qp)
}
}
+ qp->s_cur = next_cur;
extra_bytes = -wqe->length & 3;
nwords = (wqe->length + extra_bytes) >> 2;
diff --git a/drivers/infiniband/ulp/ipoib/ipoib_main.c b/drivers/infiniband/ulp/ipoib/ipoib_main.c
index f51201b..7e9e218 100644
--- a/drivers/infiniband/ulp/ipoib/ipoib_main.c
+++ b/drivers/infiniband/ulp/ipoib/ipoib_main.c
@@ -156,14 +156,8 @@ static int ipoib_stop(struct net_device *dev)
netif_stop_queue(dev);
- /*
- * Now flush workqueue to make sure a scheduled task doesn't
- * bring our internal state back up.
- */
- flush_workqueue(ipoib_workqueue);
-
- ipoib_ib_dev_down(dev, 1);
- ipoib_ib_dev_stop(dev, 1);
+ ipoib_ib_dev_down(dev, 0);
+ ipoib_ib_dev_stop(dev, 0);
if (!test_bit(IPOIB_FLAG_SUBINTERFACE, &priv->flags)) {
struct ipoib_dev_priv *cpriv;
@@ -1314,7 +1308,7 @@ sysfs_failed:
register_failed:
ib_unregister_event_handler(&priv->event_handler);
- flush_scheduled_work();
+ flush_workqueue(ipoib_workqueue);
event_failed:
ipoib_dev_cleanup(priv->dev);
@@ -1373,7 +1367,12 @@ static void ipoib_remove_one(struct ib_device *device)
list_for_each_entry_safe(priv, tmp, dev_list, list) {
ib_unregister_event_handler(&priv->event_handler);
- flush_scheduled_work();
+
+ rtnl_lock();
+ dev_change_flags(priv->dev, priv->dev->flags & ~IFF_UP);
+ rtnl_unlock();
+
+ flush_workqueue(ipoib_workqueue);
unregister_netdev(priv->dev);
ipoib_dev_cleanup(priv->dev);
diff --git a/drivers/infiniband/ulp/ipoib/ipoib_multicast.c b/drivers/infiniband/ulp/ipoib/ipoib_multicast.c
index 8950e95..ac33c8f 100644
--- a/drivers/infiniband/ulp/ipoib/ipoib_multicast.c
+++ b/drivers/infiniband/ulp/ipoib/ipoib_multicast.c
@@ -392,8 +392,16 @@ static int ipoib_mcast_join_complete(int status,
&priv->mcast_task, 0);
mutex_unlock(&mcast_mutex);
- if (mcast == priv->broadcast)
+ if (mcast == priv->broadcast) {
+ /*
+ * Take RTNL lock here to avoid racing with
+ * ipoib_stop() and turning the carrier back
+ * on while a device is being removed.
+ */
+ rtnl_lock();
netif_carrier_on(dev);
+ rtnl_unlock();
+ }
return 0;
}
^ permalink raw reply related [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
@ 2008-08-12 20:55 Roland Dreier
0 siblings, 0 replies; 223+ messages in thread
From: Roland Dreier @ 2008-08-12 20:55 UTC (permalink / raw)
To: torvalds, akpm; +Cc: general, linux-kernel
Linus, please pull from
master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This tree is also available from kernel.org mirrors at:
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This will get the following fixes:
Alexander Schmidt (5):
IB/ehca: Update qp_state on cached modify_qp()
IB/ehca: Rename goto label in ehca_poll_cq_one()
IB/ehca: Repoll CQ on invalid opcode
IB/ehca: Check idr_find() return value
IB/ehca: Discard double CQE for one WR
David J. Wilder (1):
IPoIB/cm: Use vmalloc() to allocate rx_rings
Roland Dreier (1):
Merge branches 'ehca' and 'ipoib' into for-linus
drivers/infiniband/hw/ehca/ehca_classes.h | 9 ++++
drivers/infiniband/hw/ehca/ehca_qes.h | 1 +
drivers/infiniband/hw/ehca/ehca_qp.c | 48 +++++++++++++++++------
drivers/infiniband/hw/ehca/ehca_reqs.c | 60 ++++++++++++++++++++++------
drivers/infiniband/ulp/ipoib/ipoib_cm.c | 17 ++++++--
5 files changed, 104 insertions(+), 31 deletions(-)
diff --git a/drivers/infiniband/hw/ehca/ehca_classes.h b/drivers/infiniband/hw/ehca/ehca_classes.h
index 0b0618e..1ab919f 100644
--- a/drivers/infiniband/hw/ehca/ehca_classes.h
+++ b/drivers/infiniband/hw/ehca/ehca_classes.h
@@ -156,6 +156,14 @@ struct ehca_mod_qp_parm {
#define EHCA_MOD_QP_PARM_MAX 4
+#define QMAP_IDX_MASK 0xFFFFULL
+
+/* struct for tracking if cqes have been reported to the application */
+struct ehca_qmap_entry {
+ u16 app_wr_id;
+ u16 reported;
+};
+
struct ehca_qp {
union {
struct ib_qp ib_qp;
@@ -165,6 +173,7 @@ struct ehca_qp {
enum ehca_ext_qp_type ext_type;
enum ib_qp_state state;
struct ipz_queue ipz_squeue;
+ struct ehca_qmap_entry *sq_map;
struct ipz_queue ipz_rqueue;
struct h_galpas galpas;
u32 qkey;
diff --git a/drivers/infiniband/hw/ehca/ehca_qes.h b/drivers/infiniband/hw/ehca/ehca_qes.h
index 8188030..5d28e3e 100644
--- a/drivers/infiniband/hw/ehca/ehca_qes.h
+++ b/drivers/infiniband/hw/ehca/ehca_qes.h
@@ -213,6 +213,7 @@ struct ehca_wqe {
#define WC_STATUS_ERROR_BIT 0x80000000
#define WC_STATUS_REMOTE_ERROR_FLAGS 0x0000F800
#define WC_STATUS_PURGE_BIT 0x10
+#define WC_SEND_RECEIVE_BIT 0x80
struct ehca_cqe {
u64 work_request_id;
diff --git a/drivers/infiniband/hw/ehca/ehca_qp.c b/drivers/infiniband/hw/ehca/ehca_qp.c
index ea13efd..b6bcee0 100644
--- a/drivers/infiniband/hw/ehca/ehca_qp.c
+++ b/drivers/infiniband/hw/ehca/ehca_qp.c
@@ -412,6 +412,7 @@ static struct ehca_qp *internal_create_qp(
struct ehca_shca *shca = container_of(pd->device, struct ehca_shca,
ib_device);
struct ib_ucontext *context = NULL;
+ u32 nr_qes;
u64 h_ret;
int is_llqp = 0, has_srq = 0;
int qp_type, max_send_sge, max_recv_sge, ret;
@@ -715,6 +716,15 @@ static struct ehca_qp *internal_create_qp(
"and pages ret=%i", ret);
goto create_qp_exit2;
}
+ nr_qes = my_qp->ipz_squeue.queue_length /
+ my_qp->ipz_squeue.qe_size;
+ my_qp->sq_map = vmalloc(nr_qes *
+ sizeof(struct ehca_qmap_entry));
+ if (!my_qp->sq_map) {
+ ehca_err(pd->device, "Couldn't allocate squeue "
+ "map ret=%i", ret);
+ goto create_qp_exit3;
+ }
}
if (HAS_RQ(my_qp)) {
@@ -724,7 +734,7 @@ static struct ehca_qp *internal_create_qp(
if (ret) {
ehca_err(pd->device, "Couldn't initialize rqueue "
"and pages ret=%i", ret);
- goto create_qp_exit3;
+ goto create_qp_exit4;
}
}
@@ -770,7 +780,7 @@ static struct ehca_qp *internal_create_qp(
if (!my_qp->mod_qp_parm) {
ehca_err(pd->device,
"Could not alloc mod_qp_parm");
- goto create_qp_exit4;
+ goto create_qp_exit5;
}
}
}
@@ -780,7 +790,7 @@ static struct ehca_qp *internal_create_qp(
h_ret = ehca_define_sqp(shca, my_qp, init_attr);
if (h_ret != H_SUCCESS) {
ret = ehca2ib_return_code(h_ret);
- goto create_qp_exit5;
+ goto create_qp_exit6;
}
}
@@ -789,7 +799,7 @@ static struct ehca_qp *internal_create_qp(
if (ret) {
ehca_err(pd->device,
"Couldn't assign qp to send_cq ret=%i", ret);
- goto create_qp_exit5;
+ goto create_qp_exit6;
}
}
@@ -815,22 +825,26 @@ static struct ehca_qp *internal_create_qp(
if (ib_copy_to_udata(udata, &resp, sizeof resp)) {
ehca_err(pd->device, "Copy to udata failed");
ret = -EINVAL;
- goto create_qp_exit6;
+ goto create_qp_exit7;
}
}
return my_qp;
-create_qp_exit6:
+create_qp_exit7:
ehca_cq_unassign_qp(my_qp->send_cq, my_qp->real_qp_num);
-create_qp_exit5:
+create_qp_exit6:
kfree(my_qp->mod_qp_parm);
-create_qp_exit4:
+create_qp_exit5:
if (HAS_RQ(my_qp))
ipz_queue_dtor(my_pd, &my_qp->ipz_rqueue);
+create_qp_exit4:
+ if (HAS_SQ(my_qp))
+ vfree(my_qp->sq_map);
+
create_qp_exit3:
if (HAS_SQ(my_qp))
ipz_queue_dtor(my_pd, &my_qp->ipz_squeue);
@@ -1534,8 +1548,6 @@ static int internal_modify_qp(struct ib_qp *ibqp,
if (attr_mask & IB_QP_QKEY)
my_qp->qkey = attr->qkey;
- my_qp->state = qp_new_state;
-
modify_qp_exit2:
if (squeue_locked) { /* this means: sqe -> rts */
spin_unlock_irqrestore(&my_qp->spinlock_s, flags);
@@ -1551,6 +1563,8 @@ modify_qp_exit1:
int ehca_modify_qp(struct ib_qp *ibqp, struct ib_qp_attr *attr, int attr_mask,
struct ib_udata *udata)
{
+ int ret = 0;
+
struct ehca_shca *shca = container_of(ibqp->device, struct ehca_shca,
ib_device);
struct ehca_qp *my_qp = container_of(ibqp, struct ehca_qp, ib_qp);
@@ -1597,12 +1611,18 @@ int ehca_modify_qp(struct ib_qp *ibqp, struct ib_qp_attr *attr, int attr_mask,
attr->qp_state, my_qp->init_attr.port_num,
ibqp->qp_type);
spin_unlock_irqrestore(&sport->mod_sqp_lock, flags);
- return 0;
+ goto out;
}
spin_unlock_irqrestore(&sport->mod_sqp_lock, flags);
}
- return internal_modify_qp(ibqp, attr, attr_mask, 0);
+ ret = internal_modify_qp(ibqp, attr, attr_mask, 0);
+
+out:
+ if ((ret == 0) && (attr_mask & IB_QP_STATE))
+ my_qp->state = attr->qp_state;
+
+ return ret;
}
void ehca_recover_sqp(struct ib_qp *sqp)
@@ -1973,8 +1993,10 @@ static int internal_destroy_qp(struct ib_device *dev, struct ehca_qp *my_qp,
if (HAS_RQ(my_qp))
ipz_queue_dtor(my_pd, &my_qp->ipz_rqueue);
- if (HAS_SQ(my_qp))
+ if (HAS_SQ(my_qp)) {
ipz_queue_dtor(my_pd, &my_qp->ipz_squeue);
+ vfree(my_qp->sq_map);
+ }
kmem_cache_free(qp_cache, my_qp);
atomic_dec(&shca->num_qps);
return 0;
diff --git a/drivers/infiniband/hw/ehca/ehca_reqs.c b/drivers/infiniband/hw/ehca/ehca_reqs.c
index 898c8b5..4426d82 100644
--- a/drivers/infiniband/hw/ehca/ehca_reqs.c
+++ b/drivers/infiniband/hw/ehca/ehca_reqs.c
@@ -139,6 +139,7 @@ static void trace_send_wr_ud(const struct ib_send_wr *send_wr)
static inline int ehca_write_swqe(struct ehca_qp *qp,
struct ehca_wqe *wqe_p,
const struct ib_send_wr *send_wr,
+ u32 sq_map_idx,
int hidden)
{
u32 idx;
@@ -157,7 +158,11 @@ static inline int ehca_write_swqe(struct ehca_qp *qp,
/* clear wqe header until sglist */
memset(wqe_p, 0, offsetof(struct ehca_wqe, u.ud_av.sg_list));
- wqe_p->work_request_id = send_wr->wr_id;
+ wqe_p->work_request_id = send_wr->wr_id & ~QMAP_IDX_MASK;
+ wqe_p->work_request_id |= sq_map_idx & QMAP_IDX_MASK;
+
+ qp->sq_map[sq_map_idx].app_wr_id = send_wr->wr_id & QMAP_IDX_MASK;
+ qp->sq_map[sq_map_idx].reported = 0;
switch (send_wr->opcode) {
case IB_WR_SEND:
@@ -381,6 +386,7 @@ static inline int post_one_send(struct ehca_qp *my_qp,
{
struct ehca_wqe *wqe_p;
int ret;
+ u32 sq_map_idx;
u64 start_offset = my_qp->ipz_squeue.current_q_offset;
/* get pointer next to free WQE */
@@ -393,8 +399,15 @@ static inline int post_one_send(struct ehca_qp *my_qp,
"qp_num=%x", my_qp->ib_qp.qp_num);
return -ENOMEM;
}
+
+ /*
+ * Get the index of the WQE in the send queue. The same index is used
+ * for writing into the sq_map.
+ */
+ sq_map_idx = start_offset / my_qp->ipz_squeue.qe_size;
+
/* write a SEND WQE into the QUEUE */
- ret = ehca_write_swqe(my_qp, wqe_p, cur_send_wr, hidden);
+ ret = ehca_write_swqe(my_qp, wqe_p, cur_send_wr, sq_map_idx, hidden);
/*
* if something failed,
* reset the free entry pointer to the start value
@@ -589,7 +602,7 @@ static inline int ehca_poll_cq_one(struct ib_cq *cq, struct ib_wc *wc)
struct ehca_qp *my_qp;
int cqe_count = 0, is_error;
-poll_cq_one_read_cqe:
+repoll:
cqe = (struct ehca_cqe *)
ipz_qeit_get_inc_valid(&my_cq->ipz_queue);
if (!cqe) {
@@ -617,7 +630,7 @@ poll_cq_one_read_cqe:
ehca_dmp(cqe, 64, "cq_num=%x qp_num=%x",
my_cq->cq_number, cqe->local_qp_number);
/* ignore this purged cqe */
- goto poll_cq_one_read_cqe;
+ goto repoll;
}
spin_lock_irqsave(&qp->spinlock_s, flags);
purgeflag = qp->sqerr_purgeflag;
@@ -636,7 +649,7 @@ poll_cq_one_read_cqe:
* that caused sqe and turn off purge flag
*/
qp->sqerr_purgeflag = 0;
- goto poll_cq_one_read_cqe;
+ goto repoll;
}
}
@@ -654,8 +667,34 @@ poll_cq_one_read_cqe:
my_cq, my_cq->cq_number);
}
- /* we got a completion! */
- wc->wr_id = cqe->work_request_id;
+ read_lock(&ehca_qp_idr_lock);
+ my_qp = idr_find(&ehca_qp_idr, cqe->qp_token);
+ read_unlock(&ehca_qp_idr_lock);
+ if (!my_qp)
+ goto repoll;
+ wc->qp = &my_qp->ib_qp;
+
+ if (!(cqe->w_completion_flags & WC_SEND_RECEIVE_BIT)) {
+ struct ehca_qmap_entry *qmap_entry;
+ /*
+ * We got a send completion and need to restore the original
+ * wr_id.
+ */
+ qmap_entry = &my_qp->sq_map[cqe->work_request_id &
+ QMAP_IDX_MASK];
+
+ if (qmap_entry->reported) {
+ ehca_warn(cq->device, "Double cqe on qp_num=%#x",
+ my_qp->real_qp_num);
+ /* found a double cqe, discard it and read next one */
+ goto repoll;
+ }
+ wc->wr_id = cqe->work_request_id & ~QMAP_IDX_MASK;
+ wc->wr_id |= qmap_entry->app_wr_id;
+ qmap_entry->reported = 1;
+ } else
+ /* We got a receive completion. */
+ wc->wr_id = cqe->work_request_id;
/* eval ib_wc_opcode */
wc->opcode = ib_wc_opcode[cqe->optype]-1;
@@ -667,7 +706,7 @@ poll_cq_one_read_cqe:
ehca_dmp(cqe, 64, "ehca_cq=%p cq_num=%x",
my_cq, my_cq->cq_number);
/* update also queue adder to throw away this entry!!! */
- goto poll_cq_one_exit0;
+ goto repoll;
}
/* eval ib_wc_status */
@@ -678,11 +717,6 @@ poll_cq_one_read_cqe:
} else
wc->status = IB_WC_SUCCESS;
- read_lock(&ehca_qp_idr_lock);
- my_qp = idr_find(&ehca_qp_idr, cqe->qp_token);
- wc->qp = &my_qp->ib_qp;
- read_unlock(&ehca_qp_idr_lock);
-
wc->byte_len = cqe->nr_bytes_transferred;
wc->pkey_index = cqe->pkey_index;
wc->slid = cqe->rlid;
diff --git a/drivers/infiniband/ulp/ipoib/ipoib_cm.c b/drivers/infiniband/ulp/ipoib/ipoib_cm.c
index 7ebc400..341ffed 100644
--- a/drivers/infiniband/ulp/ipoib/ipoib_cm.c
+++ b/drivers/infiniband/ulp/ipoib/ipoib_cm.c
@@ -202,7 +202,7 @@ static void ipoib_cm_free_rx_ring(struct net_device *dev,
dev_kfree_skb_any(rx_ring[i].skb);
}
- kfree(rx_ring);
+ vfree(rx_ring);
}
static void ipoib_cm_start_rx_drain(struct ipoib_dev_priv *priv)
@@ -352,9 +352,14 @@ static int ipoib_cm_nonsrq_init_rx(struct net_device *dev, struct ib_cm_id *cm_i
int ret;
int i;
- rx->rx_ring = kcalloc(ipoib_recvq_size, sizeof *rx->rx_ring, GFP_KERNEL);
- if (!rx->rx_ring)
+ rx->rx_ring = vmalloc(ipoib_recvq_size * sizeof *rx->rx_ring);
+ if (!rx->rx_ring) {
+ printk(KERN_WARNING "%s: failed to allocate CM non-SRQ ring (%d entries)\n",
+ priv->ca->name, ipoib_recvq_size);
return -ENOMEM;
+ }
+
+ memset(rx->rx_ring, 0, ipoib_recvq_size * sizeof *rx->rx_ring);
t = kmalloc(sizeof *t, GFP_KERNEL);
if (!t) {
@@ -1494,14 +1499,16 @@ static void ipoib_cm_create_srq(struct net_device *dev, int max_sge)
return;
}
- priv->cm.srq_ring = kzalloc(ipoib_recvq_size * sizeof *priv->cm.srq_ring,
- GFP_KERNEL);
+ priv->cm.srq_ring = vmalloc(ipoib_recvq_size * sizeof *priv->cm.srq_ring);
if (!priv->cm.srq_ring) {
printk(KERN_WARNING "%s: failed to allocate CM SRQ ring (%d entries)\n",
priv->ca->name, ipoib_recvq_size);
ib_destroy_srq(priv->cm.srq);
priv->cm.srq = NULL;
+ return;
}
+
+ memset(priv->cm.srq_ring, 0, ipoib_recvq_size * sizeof *priv->cm.srq_ring);
}
int ipoib_cm_dev_init(struct net_device *dev)
^ permalink raw reply related [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
@ 2008-08-07 21:15 Roland Dreier
0 siblings, 0 replies; 223+ messages in thread
From: Roland Dreier @ 2008-08-07 21:15 UTC (permalink / raw)
To: torvalds, akpm; +Cc: general, linux-kernel
Linus, please pull from
master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This tree is also available from kernel.org mirrors at:
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This will get the following fixes:
Alex Naslednikov (1):
IB/mlx4: Allow 4K messages for UD QPs
Alexander Beregalov (1):
IB/ipath: Fix printk format warnings
Julien Brunel (1):
IB/mad: Test ib_create_send_mad() return with IS_ERR(), not == NULL
Roland Dreier (3):
IPoIB/cm: Set correct SG list in ipoib_cm_init_rx_wr()
RDMA/cma: Remove padding arrays by using struct sockaddr_storage
Merge branches 'cma', 'cxgb3', 'ipath', 'ipoib', 'mad' and 'mlx4' into for-linus
Steve Wise (3):
RDMA/cxgb3: Fix QP capabilities
RDMA/cxgb3: Fix up MW access rights
RDMA/cxgb3: Fix deadlock initializing iw_cxgb3 device
Vegard Nossum (1):
IB/ipath: Use unsigned long for irq flags
Yevgeny Petrilin (1):
mlx4_core: Add ethernet fields to CQE struct
drivers/infiniband/core/cma.c | 37 +++++++++++++--------------
drivers/infiniband/core/mad_rmpp.c | 2 +-
drivers/infiniband/core/ucma.c | 14 ++++------
drivers/infiniband/hw/cxgb3/cxio_hal.c | 6 ++--
drivers/infiniband/hw/cxgb3/iwch_provider.c | 28 ++------------------
drivers/infiniband/hw/cxgb3/iwch_provider.h | 7 +++++
drivers/infiniband/hw/cxgb3/iwch_qp.c | 25 ++++++------------
drivers/infiniband/hw/ipath/ipath_driver.c | 5 ++-
drivers/infiniband/hw/ipath/ipath_iba7220.c | 7 +++--
drivers/infiniband/hw/ipath/ipath_intr.c | 12 ++++++---
drivers/infiniband/hw/ipath/ipath_verbs.c | 6 ++--
drivers/infiniband/hw/mlx4/cq.c | 33 +++++++++++------------
drivers/infiniband/hw/mlx4/qp.c | 2 +-
drivers/infiniband/ulp/ipoib/ipoib_cm.c | 2 +-
include/linux/mlx4/cq.h | 36 +++++++++++++++++--------
include/rdma/rdma_cm.h | 8 +----
16 files changed, 108 insertions(+), 122 deletions(-)
diff --git a/drivers/infiniband/core/cma.c b/drivers/infiniband/core/cma.c
index e980ff3..d951896 100644
--- a/drivers/infiniband/core/cma.c
+++ b/drivers/infiniband/core/cma.c
@@ -155,9 +155,7 @@ struct cma_multicast {
} multicast;
struct list_head list;
void *context;
- struct sockaddr addr;
- u8 pad[sizeof(struct sockaddr_in6) -
- sizeof(struct sockaddr)];
+ struct sockaddr_storage addr;
};
struct cma_work {
@@ -786,8 +784,8 @@ static void cma_cancel_operation(struct rdma_id_private *id_priv,
cma_cancel_route(id_priv);
break;
case CMA_LISTEN:
- if (cma_any_addr(&id_priv->id.route.addr.src_addr) &&
- !id_priv->cma_dev)
+ if (cma_any_addr((struct sockaddr *) &id_priv->id.route.addr.src_addr)
+ && !id_priv->cma_dev)
cma_cancel_listens(id_priv);
break;
default:
@@ -1026,7 +1024,7 @@ static struct rdma_id_private *cma_new_conn_id(struct rdma_cm_id *listen_id,
rt->path_rec[1] = *ib_event->param.req_rcvd.alternate_path;
ib_addr_set_dgid(&rt->addr.dev_addr, &rt->path_rec[0].dgid);
- ret = rdma_translate_ip(&id->route.addr.src_addr,
+ ret = rdma_translate_ip((struct sockaddr *) &id->route.addr.src_addr,
&id->route.addr.dev_addr);
if (ret)
goto destroy_id;
@@ -1064,7 +1062,7 @@ static struct rdma_id_private *cma_new_udp_id(struct rdma_cm_id *listen_id,
cma_save_net_info(&id->route.addr, &listen_id->route.addr,
ip_ver, port, src, dst);
- ret = rdma_translate_ip(&id->route.addr.src_addr,
+ ret = rdma_translate_ip((struct sockaddr *) &id->route.addr.src_addr,
&id->route.addr.dev_addr);
if (ret)
goto err;
@@ -1377,7 +1375,7 @@ static int cma_ib_listen(struct rdma_id_private *id_priv)
if (IS_ERR(id_priv->cm_id.ib))
return PTR_ERR(id_priv->cm_id.ib);
- addr = &id_priv->id.route.addr.src_addr;
+ addr = (struct sockaddr *) &id_priv->id.route.addr.src_addr;
svc_id = cma_get_service_id(id_priv->id.ps, addr);
if (cma_any_addr(addr))
ret = ib_cm_listen(id_priv->cm_id.ib, svc_id, 0, NULL);
@@ -1443,7 +1441,7 @@ static void cma_listen_on_dev(struct rdma_id_private *id_priv,
dev_id_priv->state = CMA_ADDR_BOUND;
memcpy(&id->route.addr.src_addr, &id_priv->id.route.addr.src_addr,
- ip_addr_size(&id_priv->id.route.addr.src_addr));
+ ip_addr_size((struct sockaddr *) &id_priv->id.route.addr.src_addr));
cma_attach_to_dev(dev_id_priv, cma_dev);
list_add_tail(&dev_id_priv->listen_list, &id_priv->listen_list);
@@ -1563,13 +1561,14 @@ static int cma_query_ib_route(struct rdma_id_private *id_priv, int timeout_ms,
path_rec.pkey = cpu_to_be16(ib_addr_get_pkey(&addr->dev_addr));
path_rec.numb_path = 1;
path_rec.reversible = 1;
- path_rec.service_id = cma_get_service_id(id_priv->id.ps, &addr->dst_addr);
+ path_rec.service_id = cma_get_service_id(id_priv->id.ps,
+ (struct sockaddr *) &addr->dst_addr);
comp_mask = IB_SA_PATH_REC_DGID | IB_SA_PATH_REC_SGID |
IB_SA_PATH_REC_PKEY | IB_SA_PATH_REC_NUMB_PATH |
IB_SA_PATH_REC_REVERSIBLE | IB_SA_PATH_REC_SERVICE_ID;
- if (addr->src_addr.sa_family == AF_INET) {
+ if (addr->src_addr.ss_family == AF_INET) {
path_rec.qos_class = cpu_to_be16((u16) id_priv->tos);
comp_mask |= IB_SA_PATH_REC_QOS_CLASS;
} else {
@@ -1848,7 +1847,7 @@ static int cma_resolve_loopback(struct rdma_id_private *id_priv)
ib_addr_get_sgid(&id_priv->id.route.addr.dev_addr, &gid);
ib_addr_set_dgid(&id_priv->id.route.addr.dev_addr, &gid);
- if (cma_zero_addr(&id_priv->id.route.addr.src_addr)) {
+ if (cma_zero_addr((struct sockaddr *) &id_priv->id.route.addr.src_addr)) {
src_in = (struct sockaddr_in *)&id_priv->id.route.addr.src_addr;
dst_in = (struct sockaddr_in *)&id_priv->id.route.addr.dst_addr;
src_in->sin_family = dst_in->sin_family;
@@ -1897,7 +1896,7 @@ int rdma_resolve_addr(struct rdma_cm_id *id, struct sockaddr *src_addr,
if (cma_any_addr(dst_addr))
ret = cma_resolve_loopback(id_priv);
else
- ret = rdma_resolve_ip(&addr_client, &id->route.addr.src_addr,
+ ret = rdma_resolve_ip(&addr_client, (struct sockaddr *) &id->route.addr.src_addr,
dst_addr, &id->route.addr.dev_addr,
timeout_ms, addr_handler, id_priv);
if (ret)
@@ -2021,11 +2020,11 @@ static int cma_use_port(struct idr *ps, struct rdma_id_private *id_priv)
* We don't support binding to any address if anyone is bound to
* a specific address on the same port.
*/
- if (cma_any_addr(&id_priv->id.route.addr.src_addr))
+ if (cma_any_addr((struct sockaddr *) &id_priv->id.route.addr.src_addr))
return -EADDRNOTAVAIL;
hlist_for_each_entry(cur_id, node, &bind_list->owners, node) {
- if (cma_any_addr(&cur_id->id.route.addr.src_addr))
+ if (cma_any_addr((struct sockaddr *) &cur_id->id.route.addr.src_addr))
return -EADDRNOTAVAIL;
cur_sin = (struct sockaddr_in *) &cur_id->id.route.addr.src_addr;
@@ -2060,7 +2059,7 @@ static int cma_get_port(struct rdma_id_private *id_priv)
}
mutex_lock(&lock);
- if (cma_any_port(&id_priv->id.route.addr.src_addr))
+ if (cma_any_port((struct sockaddr *) &id_priv->id.route.addr.src_addr))
ret = cma_alloc_any_port(ps, id_priv);
else
ret = cma_use_port(ps, id_priv);
@@ -2232,7 +2231,7 @@ static int cma_resolve_ib_udp(struct rdma_id_private *id_priv,
req.path = route->path_rec;
req.service_id = cma_get_service_id(id_priv->id.ps,
- &route->addr.dst_addr);
+ (struct sockaddr *) &route->addr.dst_addr);
req.timeout_ms = 1 << (CMA_CM_RESPONSE_TIMEOUT - 8);
req.max_cm_retries = CMA_MAX_CM_RETRIES;
@@ -2283,7 +2282,7 @@ static int cma_connect_ib(struct rdma_id_private *id_priv,
req.alternate_path = &route->path_rec[1];
req.service_id = cma_get_service_id(id_priv->id.ps,
- &route->addr.dst_addr);
+ (struct sockaddr *) &route->addr.dst_addr);
req.qp_num = id_priv->qp_num;
req.qp_type = IB_QPT_RC;
req.starting_psn = id_priv->seq_num;
@@ -2667,7 +2666,7 @@ static int cma_join_ib_multicast(struct rdma_id_private *id_priv,
if (ret)
return ret;
- cma_set_mgid(id_priv, &mc->addr, &rec.mgid);
+ cma_set_mgid(id_priv, (struct sockaddr *) &mc->addr, &rec.mgid);
if (id_priv->id.ps == RDMA_PS_UDP)
rec.qkey = cpu_to_be32(RDMA_UDP_QKEY);
ib_addr_get_sgid(dev_addr, &rec.port_gid);
diff --git a/drivers/infiniband/core/mad_rmpp.c b/drivers/infiniband/core/mad_rmpp.c
index d0ef7d6..3af2b84 100644
--- a/drivers/infiniband/core/mad_rmpp.c
+++ b/drivers/infiniband/core/mad_rmpp.c
@@ -133,7 +133,7 @@ static void ack_recv(struct mad_rmpp_recv *rmpp_recv,
msg = ib_create_send_mad(&rmpp_recv->agent->agent, recv_wc->wc->src_qp,
recv_wc->wc->pkey_index, 1, hdr_len,
0, GFP_KERNEL);
- if (!msg)
+ if (IS_ERR(msg))
return;
format_ack(msg, (struct ib_rmpp_mad *) recv_wc->recv_buf.mad, rmpp_recv);
diff --git a/drivers/infiniband/core/ucma.c b/drivers/infiniband/core/ucma.c
index b41dd26..3ddacf3 100644
--- a/drivers/infiniband/core/ucma.c
+++ b/drivers/infiniband/core/ucma.c
@@ -81,9 +81,7 @@ struct ucma_multicast {
u64 uid;
struct list_head list;
- struct sockaddr addr;
- u8 pad[sizeof(struct sockaddr_in6) -
- sizeof(struct sockaddr)];
+ struct sockaddr_storage addr;
};
struct ucma_event {
@@ -603,11 +601,11 @@ static ssize_t ucma_query_route(struct ucma_file *file,
return PTR_ERR(ctx);
memset(&resp, 0, sizeof resp);
- addr = &ctx->cm_id->route.addr.src_addr;
+ addr = (struct sockaddr *) &ctx->cm_id->route.addr.src_addr;
memcpy(&resp.src_addr, addr, addr->sa_family == AF_INET ?
sizeof(struct sockaddr_in) :
sizeof(struct sockaddr_in6));
- addr = &ctx->cm_id->route.addr.dst_addr;
+ addr = (struct sockaddr *) &ctx->cm_id->route.addr.dst_addr;
memcpy(&resp.dst_addr, addr, addr->sa_family == AF_INET ?
sizeof(struct sockaddr_in) :
sizeof(struct sockaddr_in6));
@@ -913,7 +911,7 @@ static ssize_t ucma_join_multicast(struct ucma_file *file,
mc->uid = cmd.uid;
memcpy(&mc->addr, &cmd.addr, sizeof cmd.addr);
- ret = rdma_join_multicast(ctx->cm_id, &mc->addr, mc);
+ ret = rdma_join_multicast(ctx->cm_id, (struct sockaddr *) &mc->addr, mc);
if (ret)
goto err2;
@@ -929,7 +927,7 @@ static ssize_t ucma_join_multicast(struct ucma_file *file,
return 0;
err3:
- rdma_leave_multicast(ctx->cm_id, &mc->addr);
+ rdma_leave_multicast(ctx->cm_id, (struct sockaddr *) &mc->addr);
ucma_cleanup_mc_events(mc);
err2:
mutex_lock(&mut);
@@ -975,7 +973,7 @@ static ssize_t ucma_leave_multicast(struct ucma_file *file,
goto out;
}
- rdma_leave_multicast(mc->ctx->cm_id, &mc->addr);
+ rdma_leave_multicast(mc->ctx->cm_id, (struct sockaddr *) &mc->addr);
mutex_lock(&mc->ctx->file->mut);
ucma_cleanup_mc_events(mc);
list_del(&mc->list);
diff --git a/drivers/infiniband/hw/cxgb3/cxio_hal.c b/drivers/infiniband/hw/cxgb3/cxio_hal.c
index f6d5747..4dcf08b 100644
--- a/drivers/infiniband/hw/cxgb3/cxio_hal.c
+++ b/drivers/infiniband/hw/cxgb3/cxio_hal.c
@@ -725,9 +725,9 @@ static int __cxio_tpt_op(struct cxio_rdev *rdev_p, u32 reset_tpt_entry,
V_TPT_STAG_TYPE(type) | V_TPT_PDID(pdid));
BUG_ON(page_size >= 28);
tpt.flags_pagesize_qpid = cpu_to_be32(V_TPT_PERM(perm) |
- F_TPT_MW_BIND_ENABLE |
- V_TPT_ADDR_TYPE((zbva ? TPT_ZBTO : TPT_VATO)) |
- V_TPT_PAGE_SIZE(page_size));
+ ((perm & TPT_MW_BIND) ? F_TPT_MW_BIND_ENABLE : 0) |
+ V_TPT_ADDR_TYPE((zbva ? TPT_ZBTO : TPT_VATO)) |
+ V_TPT_PAGE_SIZE(page_size));
tpt.rsvd_pbl_addr = reset_tpt_entry ? 0 :
cpu_to_be32(V_TPT_PBL_ADDR(PBL_OFF(rdev_p, pbl_addr)>>3));
tpt.len = cpu_to_be32(len);
diff --git a/drivers/infiniband/hw/cxgb3/iwch_provider.c b/drivers/infiniband/hw/cxgb3/iwch_provider.c
index b89640a..eb778bf 100644
--- a/drivers/infiniband/hw/cxgb3/iwch_provider.c
+++ b/drivers/infiniband/hw/cxgb3/iwch_provider.c
@@ -1187,28 +1187,6 @@ static ssize_t show_rev(struct device *dev, struct device_attribute *attr,
return sprintf(buf, "%d\n", iwch_dev->rdev.t3cdev_p->type);
}
-static int fw_supports_fastreg(struct iwch_dev *iwch_dev)
-{
- struct ethtool_drvinfo info;
- struct net_device *lldev = iwch_dev->rdev.t3cdev_p->lldev;
- char *cp, *next;
- unsigned fw_maj, fw_min;
-
- rtnl_lock();
- lldev->ethtool_ops->get_drvinfo(lldev, &info);
- rtnl_unlock();
-
- next = info.fw_version+1;
- cp = strsep(&next, ".");
- sscanf(cp, "%i", &fw_maj);
- cp = strsep(&next, ".");
- sscanf(cp, "%i", &fw_min);
-
- PDBG("%s maj %u min %u\n", __func__, fw_maj, fw_min);
-
- return fw_maj > 6 || (fw_maj == 6 && fw_min > 0);
-}
-
static ssize_t show_fw_ver(struct device *dev, struct device_attribute *attr, char *buf)
{
struct iwch_dev *iwch_dev = container_of(dev, struct iwch_dev,
@@ -1325,12 +1303,12 @@ int iwch_register_device(struct iwch_dev *dev)
memset(&dev->ibdev.node_guid, 0, sizeof(dev->ibdev.node_guid));
memcpy(&dev->ibdev.node_guid, dev->rdev.t3cdev_p->lldev->dev_addr, 6);
dev->ibdev.owner = THIS_MODULE;
- dev->device_cap_flags = IB_DEVICE_LOCAL_DMA_LKEY | IB_DEVICE_MEM_WINDOW;
+ dev->device_cap_flags = IB_DEVICE_LOCAL_DMA_LKEY |
+ IB_DEVICE_MEM_WINDOW |
+ IB_DEVICE_MEM_MGT_EXTENSIONS;
/* cxgb3 supports STag 0. */
dev->ibdev.local_dma_lkey = 0;
- if (fw_supports_fastreg(dev))
- dev->device_cap_flags |= IB_DEVICE_MEM_MGT_EXTENSIONS;
dev->ibdev.uverbs_cmd_mask =
(1ull << IB_USER_VERBS_CMD_GET_CONTEXT) |
diff --git a/drivers/infiniband/hw/cxgb3/iwch_provider.h b/drivers/infiniband/hw/cxgb3/iwch_provider.h
index f5ceca0..a237d49 100644
--- a/drivers/infiniband/hw/cxgb3/iwch_provider.h
+++ b/drivers/infiniband/hw/cxgb3/iwch_provider.h
@@ -293,9 +293,16 @@ static inline u32 iwch_ib_to_tpt_access(int acc)
return (acc & IB_ACCESS_REMOTE_WRITE ? TPT_REMOTE_WRITE : 0) |
(acc & IB_ACCESS_REMOTE_READ ? TPT_REMOTE_READ : 0) |
(acc & IB_ACCESS_LOCAL_WRITE ? TPT_LOCAL_WRITE : 0) |
+ (acc & IB_ACCESS_MW_BIND ? TPT_MW_BIND : 0) |
TPT_LOCAL_READ;
}
+static inline u32 iwch_ib_to_tpt_bind_access(int acc)
+{
+ return (acc & IB_ACCESS_REMOTE_WRITE ? TPT_REMOTE_WRITE : 0) |
+ (acc & IB_ACCESS_REMOTE_READ ? TPT_REMOTE_READ : 0);
+}
+
enum iwch_mmid_state {
IWCH_STAG_STATE_VALID,
IWCH_STAG_STATE_INVALID
diff --git a/drivers/infiniband/hw/cxgb3/iwch_qp.c b/drivers/infiniband/hw/cxgb3/iwch_qp.c
index 9a3be3a..3e4585c 100644
--- a/drivers/infiniband/hw/cxgb3/iwch_qp.c
+++ b/drivers/infiniband/hw/cxgb3/iwch_qp.c
@@ -565,7 +565,7 @@ int iwch_bind_mw(struct ib_qp *qp,
wqe->bind.type = TPT_VATO;
/* TBD: check perms */
- wqe->bind.perms = iwch_ib_to_tpt_access(mw_bind->mw_access_flags);
+ wqe->bind.perms = iwch_ib_to_tpt_bind_access(mw_bind->mw_access_flags);
wqe->bind.mr_stag = cpu_to_be32(mw_bind->mr->lkey);
wqe->bind.mw_stag = cpu_to_be32(mw->rkey);
wqe->bind.mw_len = cpu_to_be32(mw_bind->length);
@@ -879,20 +879,13 @@ static int rdma_init(struct iwch_dev *rhp, struct iwch_qp *qhp,
(qhp->attr.mpa_attr.xmit_marker_enabled << 1) |
(qhp->attr.mpa_attr.crc_enabled << 2);
- /*
- * XXX - The IWCM doesn't quite handle getting these
- * attrs set before going into RTS. For now, just turn
- * them on always...
- */
-#if 0
- init_attr.qpcaps = qhp->attr.enableRdmaRead |
- (qhp->attr.enableRdmaWrite << 1) |
- (qhp->attr.enableBind << 2) |
- (qhp->attr.enable_stag0_fastreg << 3) |
- (qhp->attr.enable_stag0_fastreg << 4);
-#else
- init_attr.qpcaps = 0x1f;
-#endif
+ init_attr.qpcaps = uP_RI_QP_RDMA_READ_ENABLE |
+ uP_RI_QP_RDMA_WRITE_ENABLE |
+ uP_RI_QP_BIND_ENABLE;
+ if (!qhp->ibqp.uobject)
+ init_attr.qpcaps |= uP_RI_QP_STAG0_ENABLE |
+ uP_RI_QP_FAST_REGISTER_ENABLE;
+
init_attr.tcp_emss = qhp->ep->emss;
init_attr.ord = qhp->attr.max_ord;
init_attr.ird = qhp->attr.max_ird;
@@ -900,8 +893,6 @@ static int rdma_init(struct iwch_dev *rhp, struct iwch_qp *qhp,
init_attr.qp_dma_size = (1UL << qhp->wq.size_log2);
init_attr.rqe_count = iwch_rqes_posted(qhp);
init_attr.flags = qhp->attr.mpa_attr.initiator ? MPA_INITIATOR : 0;
- if (!qhp->ibqp.uobject)
- init_attr.flags |= PRIV_QP;
if (peer2peer) {
init_attr.rtr_type = RTR_READ;
if (init_attr.ord == 0 && qhp->attr.mpa_attr.initiator)
diff --git a/drivers/infiniband/hw/ipath/ipath_driver.c b/drivers/infiniband/hw/ipath/ipath_driver.c
index daad09a..ad0aab6 100644
--- a/drivers/infiniband/hw/ipath/ipath_driver.c
+++ b/drivers/infiniband/hw/ipath/ipath_driver.c
@@ -1259,7 +1259,7 @@ reloop:
*/
ipath_cdbg(ERRPKT, "Error Pkt, but no eflags! egrbuf"
" %x, len %x hdrq+%x rhf: %Lx\n",
- etail, tlen, l,
+ etail, tlen, l, (unsigned long long)
le64_to_cpu(*(__le64 *) rhf_addr));
if (ipath_debug & __IPATH_ERRPKTDBG) {
u32 j, *d, dw = rsize-2;
@@ -1457,7 +1457,8 @@ static void ipath_reset_availshadow(struct ipath_devdata *dd)
0xaaaaaaaaaaaaaaaaULL); /* All BUSY bits in qword */
if (oldval != dd->ipath_pioavailshadow[i])
ipath_dbg("shadow[%d] was %Lx, now %lx\n",
- i, oldval, dd->ipath_pioavailshadow[i]);
+ i, (unsigned long long) oldval,
+ dd->ipath_pioavailshadow[i]);
}
spin_unlock_irqrestore(&ipath_pioavail_lock, flags);
}
diff --git a/drivers/infiniband/hw/ipath/ipath_iba7220.c b/drivers/infiniband/hw/ipath/ipath_iba7220.c
index fb70712..85b2cd0 100644
--- a/drivers/infiniband/hw/ipath/ipath_iba7220.c
+++ b/drivers/infiniband/hw/ipath/ipath_iba7220.c
@@ -1032,7 +1032,7 @@ static int ipath_7220_bringup_serdes(struct ipath_devdata *dd)
ipath_cdbg(VERBOSE, "done: xgxs=%llx from %llx\n",
(unsigned long long)
ipath_read_kreg64(dd, dd->ipath_kregs->kr_xgxsconfig),
- prev_val);
+ (unsigned long long) prev_val);
guid = be64_to_cpu(dd->ipath_guid);
@@ -1042,7 +1042,8 @@ static int ipath_7220_bringup_serdes(struct ipath_devdata *dd)
ipath_dbg("No GUID for heartbeat, faking %llx\n",
(unsigned long long)guid);
} else
- ipath_cdbg(VERBOSE, "Wrote %llX to HRTBT_GUID\n", guid);
+ ipath_cdbg(VERBOSE, "Wrote %llX to HRTBT_GUID\n",
+ (unsigned long long) guid);
ipath_write_kreg(dd, dd->ipath_kregs->kr_hrtbt_guid, guid);
return ret;
}
@@ -2505,7 +2506,7 @@ done:
if (dd->ipath_flags & IPATH_IB_AUTONEG_INPROG) {
ipath_dbg("Did not get to DDR INIT (%x) after %Lu msecs\n",
ipath_ib_state(dd, dd->ipath_lastibcstat),
- jiffies_to_msecs(jiffies)-startms);
+ (unsigned long long) jiffies_to_msecs(jiffies)-startms);
dd->ipath_flags &= ~IPATH_IB_AUTONEG_INPROG;
if (dd->ipath_autoneg_tries == IPATH_AUTONEG_TRIES) {
dd->ipath_flags |= IPATH_IB_AUTONEG_FAILED;
diff --git a/drivers/infiniband/hw/ipath/ipath_intr.c b/drivers/infiniband/hw/ipath/ipath_intr.c
index 26900b3..6c21b4b 100644
--- a/drivers/infiniband/hw/ipath/ipath_intr.c
+++ b/drivers/infiniband/hw/ipath/ipath_intr.c
@@ -356,9 +356,10 @@ static void handle_e_ibstatuschanged(struct ipath_devdata *dd,
dd->ipath_cregs->cr_iblinkerrrecovcnt);
if (linkrecov != dd->ipath_lastlinkrecov) {
ipath_dbg("IB linkrecov up %Lx (%s %s) recov %Lu\n",
- ibcs, ib_linkstate(dd, ibcs),
+ (unsigned long long) ibcs,
+ ib_linkstate(dd, ibcs),
ipath_ibcstatus_str[ltstate],
- linkrecov);
+ (unsigned long long) linkrecov);
/* and no more until active again */
dd->ipath_lastlinkrecov = 0;
ipath_set_linkstate(dd, IPATH_IB_LINKDOWN);
@@ -1118,9 +1119,11 @@ irqreturn_t ipath_intr(int irq, void *data)
if (unlikely(istat & ~dd->ipath_i_bitsextant))
ipath_dev_err(dd,
"interrupt with unknown interrupts %Lx set\n",
+ (unsigned long long)
istat & ~dd->ipath_i_bitsextant);
else if (istat & ~INFINIPATH_I_ERROR) /* errors do own printing */
- ipath_cdbg(VERBOSE, "intr stat=0x%Lx\n", istat);
+ ipath_cdbg(VERBOSE, "intr stat=0x%Lx\n",
+ (unsigned long long) istat);
if (istat & INFINIPATH_I_ERROR) {
ipath_stats.sps_errints++;
@@ -1128,7 +1131,8 @@ irqreturn_t ipath_intr(int irq, void *data)
dd->ipath_kregs->kr_errorstatus);
if (!estat)
dev_info(&dd->pcidev->dev, "error interrupt (%Lx), "
- "but no error bits set!\n", istat);
+ "but no error bits set!\n",
+ (unsigned long long) istat);
else if (estat == -1LL)
/*
* should we try clearing all, or hope next read
diff --git a/drivers/infiniband/hw/ipath/ipath_verbs.c b/drivers/infiniband/hw/ipath/ipath_verbs.c
index 55c7188..b766e40 100644
--- a/drivers/infiniband/hw/ipath/ipath_verbs.c
+++ b/drivers/infiniband/hw/ipath/ipath_verbs.c
@@ -1021,7 +1021,7 @@ static void sdma_complete(void *cookie, int status)
struct ipath_verbs_txreq *tx = cookie;
struct ipath_qp *qp = tx->qp;
struct ipath_ibdev *dev = to_idev(qp->ibqp.device);
- unsigned int flags;
+ unsigned long flags;
enum ib_wc_status ibs = status == IPATH_SDMA_TXREQ_S_OK ?
IB_WC_SUCCESS : IB_WC_WR_FLUSH_ERR;
@@ -1051,7 +1051,7 @@ static void sdma_complete(void *cookie, int status)
static void decrement_dma_busy(struct ipath_qp *qp)
{
- unsigned int flags;
+ unsigned long flags;
if (atomic_dec_and_test(&qp->s_dma_busy)) {
spin_lock_irqsave(&qp->s_lock, flags);
@@ -1221,7 +1221,7 @@ static int ipath_verbs_send_pio(struct ipath_qp *qp,
unsigned flush_wc;
u32 control;
int ret;
- unsigned int flags;
+ unsigned long flags;
piobuf = ipath_getpiobuf(dd, plen, NULL);
if (unlikely(piobuf == NULL)) {
diff --git a/drivers/infiniband/hw/mlx4/cq.c b/drivers/infiniband/hw/mlx4/cq.c
index a146457..d0866a3 100644
--- a/drivers/infiniband/hw/mlx4/cq.c
+++ b/drivers/infiniband/hw/mlx4/cq.c
@@ -515,17 +515,17 @@ static void mlx4_ib_handle_error_cqe(struct mlx4_err_cqe *cqe,
wc->vendor_err = cqe->vendor_err_syndrome;
}
-static int mlx4_ib_ipoib_csum_ok(__be32 status, __be16 checksum)
+static int mlx4_ib_ipoib_csum_ok(__be16 status, __be16 checksum)
{
- return ((status & cpu_to_be32(MLX4_CQE_IPOIB_STATUS_IPV4 |
- MLX4_CQE_IPOIB_STATUS_IPV4F |
- MLX4_CQE_IPOIB_STATUS_IPV4OPT |
- MLX4_CQE_IPOIB_STATUS_IPV6 |
- MLX4_CQE_IPOIB_STATUS_IPOK)) ==
- cpu_to_be32(MLX4_CQE_IPOIB_STATUS_IPV4 |
- MLX4_CQE_IPOIB_STATUS_IPOK)) &&
- (status & cpu_to_be32(MLX4_CQE_IPOIB_STATUS_UDP |
- MLX4_CQE_IPOIB_STATUS_TCP)) &&
+ return ((status & cpu_to_be16(MLX4_CQE_STATUS_IPV4 |
+ MLX4_CQE_STATUS_IPV4F |
+ MLX4_CQE_STATUS_IPV4OPT |
+ MLX4_CQE_STATUS_IPV6 |
+ MLX4_CQE_STATUS_IPOK)) ==
+ cpu_to_be16(MLX4_CQE_STATUS_IPV4 |
+ MLX4_CQE_STATUS_IPOK)) &&
+ (status & cpu_to_be16(MLX4_CQE_STATUS_UDP |
+ MLX4_CQE_STATUS_TCP)) &&
checksum == cpu_to_be16(0xffff);
}
@@ -582,17 +582,17 @@ repoll:
}
if (!*cur_qp ||
- (be32_to_cpu(cqe->my_qpn) & 0xffffff) != (*cur_qp)->mqp.qpn) {
+ (be32_to_cpu(cqe->vlan_my_qpn) & MLX4_CQE_QPN_MASK) != (*cur_qp)->mqp.qpn) {
/*
* We do not have to take the QP table lock here,
* because CQs will be locked while QPs are removed
* from the table.
*/
mqp = __mlx4_qp_lookup(to_mdev(cq->ibcq.device)->dev,
- be32_to_cpu(cqe->my_qpn));
+ be32_to_cpu(cqe->vlan_my_qpn));
if (unlikely(!mqp)) {
printk(KERN_WARNING "CQ %06x with entry for unknown QPN %06x\n",
- cq->mcq.cqn, be32_to_cpu(cqe->my_qpn) & 0xffffff);
+ cq->mcq.cqn, be32_to_cpu(cqe->vlan_my_qpn) & MLX4_CQE_QPN_MASK);
return -EINVAL;
}
@@ -692,14 +692,13 @@ repoll:
}
wc->slid = be16_to_cpu(cqe->rlid);
- wc->sl = cqe->sl >> 4;
+ wc->sl = be16_to_cpu(cqe->sl_vid >> 12);
g_mlpath_rqpn = be32_to_cpu(cqe->g_mlpath_rqpn);
wc->src_qp = g_mlpath_rqpn & 0xffffff;
wc->dlid_path_bits = (g_mlpath_rqpn >> 24) & 0x7f;
wc->wc_flags |= g_mlpath_rqpn & 0x80000000 ? IB_WC_GRH : 0;
wc->pkey_index = be32_to_cpu(cqe->immed_rss_invalid) & 0x7f;
- wc->csum_ok = mlx4_ib_ipoib_csum_ok(cqe->ipoib_status,
- cqe->checksum);
+ wc->csum_ok = mlx4_ib_ipoib_csum_ok(cqe->status, cqe->checksum);
}
return 0;
@@ -767,7 +766,7 @@ void __mlx4_ib_cq_clean(struct mlx4_ib_cq *cq, u32 qpn, struct mlx4_ib_srq *srq)
*/
while ((int) --prod_index - (int) cq->mcq.cons_index >= 0) {
cqe = get_cqe(cq, prod_index & cq->ibcq.cqe);
- if ((be32_to_cpu(cqe->my_qpn) & 0xffffff) == qpn) {
+ if ((be32_to_cpu(cqe->vlan_my_qpn) & MLX4_CQE_QPN_MASK) == qpn) {
if (srq && !(cqe->owner_sr_opcode & MLX4_CQE_IS_SEND_MASK))
mlx4_ib_free_srq_wqe(srq, be16_to_cpu(cqe->wqe_index));
++nfreed;
diff --git a/drivers/infiniband/hw/mlx4/qp.c b/drivers/infiniband/hw/mlx4/qp.c
index f7bc7dd..f29dbb7 100644
--- a/drivers/infiniband/hw/mlx4/qp.c
+++ b/drivers/infiniband/hw/mlx4/qp.c
@@ -902,7 +902,7 @@ static int __mlx4_ib_modify_qp(struct ib_qp *ibqp,
context->mtu_msgmax = (IB_MTU_4096 << 5) |
ilog2(dev->dev->caps.max_gso_sz);
else
- context->mtu_msgmax = (IB_MTU_4096 << 5) | 11;
+ context->mtu_msgmax = (IB_MTU_4096 << 5) | 12;
} else if (attr_mask & IB_QP_PATH_MTU) {
if (attr->path_mtu < IB_MTU_256 || attr->path_mtu > IB_MTU_4096) {
printk(KERN_ERR "path MTU (%u) is invalid\n",
diff --git a/drivers/infiniband/ulp/ipoib/ipoib_cm.c b/drivers/infiniband/ulp/ipoib/ipoib_cm.c
index 0f2d304..7ebc400 100644
--- a/drivers/infiniband/ulp/ipoib/ipoib_cm.c
+++ b/drivers/infiniband/ulp/ipoib/ipoib_cm.c
@@ -337,7 +337,7 @@ static void ipoib_cm_init_rx_wr(struct net_device *dev,
sge[i].length = PAGE_SIZE;
wr->next = NULL;
- wr->sg_list = priv->cm.rx_sge;
+ wr->sg_list = sge;
wr->num_sge = priv->cm.num_frags;
}
diff --git a/include/linux/mlx4/cq.h b/include/linux/mlx4/cq.h
index 071cf96..6f65b2c 100644
--- a/include/linux/mlx4/cq.h
+++ b/include/linux/mlx4/cq.h
@@ -39,17 +39,18 @@
#include <linux/mlx4/doorbell.h>
struct mlx4_cqe {
- __be32 my_qpn;
+ __be32 vlan_my_qpn;
__be32 immed_rss_invalid;
__be32 g_mlpath_rqpn;
- u8 sl;
- u8 reserved1;
+ __be16 sl_vid;
__be16 rlid;
- __be32 ipoib_status;
+ __be16 status;
+ u8 ipv6_ext_mask;
+ u8 badfcs_enc;
__be32 byte_cnt;
__be16 wqe_index;
__be16 checksum;
- u8 reserved2[3];
+ u8 reserved[3];
u8 owner_sr_opcode;
};
@@ -64,6 +65,11 @@ struct mlx4_err_cqe {
};
enum {
+ MLX4_CQE_VLAN_PRESENT_MASK = 1 << 29,
+ MLX4_CQE_QPN_MASK = 0xffffff,
+};
+
+enum {
MLX4_CQE_OWNER_MASK = 0x80,
MLX4_CQE_IS_SEND_MASK = 0x40,
MLX4_CQE_OPCODE_MASK = 0x1f
@@ -86,13 +92,19 @@ enum {
};
enum {
- MLX4_CQE_IPOIB_STATUS_IPV4 = 1 << 22,
- MLX4_CQE_IPOIB_STATUS_IPV4F = 1 << 23,
- MLX4_CQE_IPOIB_STATUS_IPV6 = 1 << 24,
- MLX4_CQE_IPOIB_STATUS_IPV4OPT = 1 << 25,
- MLX4_CQE_IPOIB_STATUS_TCP = 1 << 26,
- MLX4_CQE_IPOIB_STATUS_UDP = 1 << 27,
- MLX4_CQE_IPOIB_STATUS_IPOK = 1 << 28,
+ MLX4_CQE_STATUS_IPV4 = 1 << 6,
+ MLX4_CQE_STATUS_IPV4F = 1 << 7,
+ MLX4_CQE_STATUS_IPV6 = 1 << 8,
+ MLX4_CQE_STATUS_IPV4OPT = 1 << 9,
+ MLX4_CQE_STATUS_TCP = 1 << 10,
+ MLX4_CQE_STATUS_UDP = 1 << 11,
+ MLX4_CQE_STATUS_IPOK = 1 << 12,
+};
+
+enum {
+ MLX4_CQE_LLC = 1,
+ MLX4_CQE_SNAP = 1 << 1,
+ MLX4_CQE_BAD_FCS = 1 << 4,
};
static inline void mlx4_cq_arm(struct mlx4_cq *cq, u32 cmd,
diff --git a/include/rdma/rdma_cm.h b/include/rdma/rdma_cm.h
index df7faf0..c6b2962 100644
--- a/include/rdma/rdma_cm.h
+++ b/include/rdma/rdma_cm.h
@@ -71,12 +71,8 @@ enum rdma_port_space {
};
struct rdma_addr {
- struct sockaddr src_addr;
- u8 src_pad[sizeof(struct sockaddr_in6) -
- sizeof(struct sockaddr)];
- struct sockaddr dst_addr;
- u8 dst_pad[sizeof(struct sockaddr_in6) -
- sizeof(struct sockaddr)];
+ struct sockaddr_storage src_addr;
+ struct sockaddr_storage dst_addr;
struct rdma_dev_addr dev_addr;
};
^ permalink raw reply related [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
@ 2008-07-26 21:02 Roland Dreier
0 siblings, 0 replies; 223+ messages in thread
From: Roland Dreier @ 2008-07-26 21:02 UTC (permalink / raw)
To: torvalds, akpm; +Cc: general, linux-kernel
Linus, please pull from
master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This tree is also available from kernel.org mirrors at:
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This will get the some last RDMA/InfiniBand changes for 2.6.27. The
only major thing is changes to the iw_nes connection setup handling,
which fix problems with lots of connections:
Faisal Latif (1):
RDMA/nes: CM connection setup/teardown rework
Jack Morgenstein (1):
mlx4: Update/add Mellanox Technologies copyright lines to mlx4 driver files
Roland Dreier (5):
RDMA/ucma: BKL is not needed for ucma_open()
RDMA/ucm: BKL is not needed for ib_ucm_open()
IPoIB/cm: Connected mode is no longer EXPERIMENTAL
IPoIB: Correct help text for INFINIBAND_IPOIB_DEBUG
Merge branches 'bkl-removal', 'ipoib', 'mlx4' and 'nes' into for-linus
Yevgeny Petrilin (1):
mlx4_core: Add VLAN tag field to WQE control segment struct
drivers/infiniband/core/ucm.c | 10 +-
drivers/infiniband/core/ucma.c | 11 +-
drivers/infiniband/hw/mlx4/cq.c | 1 +
drivers/infiniband/hw/mlx4/main.c | 1 +
drivers/infiniband/hw/mlx4/mlx4_ib.h | 1 +
drivers/infiniband/hw/mlx4/mr.c | 1 +
drivers/infiniband/hw/mlx4/qp.c | 1 +
drivers/infiniband/hw/mlx4/srq.c | 1 +
drivers/infiniband/hw/mlx4/user.h | 1 +
drivers/infiniband/hw/nes/nes.c | 4 +-
drivers/infiniband/hw/nes/nes_cm.c | 2034 ++++++++++++++++++---------------
drivers/infiniband/hw/nes/nes_cm.h | 23 +-
drivers/infiniband/hw/nes/nes_hw.c | 9 -
drivers/infiniband/hw/nes/nes_verbs.c | 15 -
drivers/infiniband/ulp/ipoib/Kconfig | 22 +-
drivers/net/mlx4/alloc.c | 1 +
drivers/net/mlx4/catas.c | 1 +
drivers/net/mlx4/cmd.c | 2 +-
drivers/net/mlx4/cq.c | 2 +-
drivers/net/mlx4/eq.c | 2 +-
drivers/net/mlx4/fw.c | 2 +-
drivers/net/mlx4/fw.h | 2 +-
drivers/net/mlx4/icm.c | 2 +-
drivers/net/mlx4/icm.h | 2 +-
drivers/net/mlx4/intf.c | 1 +
drivers/net/mlx4/main.c | 2 +-
drivers/net/mlx4/mcg.c | 1 +
drivers/net/mlx4/mlx4.h | 2 +-
drivers/net/mlx4/mr.c | 2 +-
drivers/net/mlx4/qp.c | 2 +-
drivers/net/mlx4/reset.c | 1 +
drivers/net/mlx4/srq.c | 1 +
include/linux/mlx4/qp.h | 4 +-
33 files changed, 1211 insertions(+), 956 deletions(-)
^ permalink raw reply [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
@ 2008-07-24 15:41 Roland Dreier
0 siblings, 0 replies; 223+ messages in thread
From: Roland Dreier @ 2008-07-24 15:41 UTC (permalink / raw)
To: torvalds, akpm; +Cc: general, linux-kernel
Linus, please pull from
master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This tree is also available from kernel.org mirrors at:
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This will get the some more RDMA/InfiniBand changes for 2.6.27, all of
which have been in linux-next:
Amir Vadai (1):
RDMA/cma: Add RDMA_CM_EVENT_TIMEWAIT_EXIT event
Dotan Barak (1):
RDMA/iwcm: Remove IB_ACCESS_LOCAL_WRITE from remote QP attributes
Jack Morgenstein (2):
mlx4_core: Add module parameter to enable QoS support
mlx4_code: Add missing FW status return code
Joachim Fenkes (2):
IB/ehca: Filter PATH_MIG events if QP was never armed
IB/ehca: Use default value for Local CA ACK Delay if FW returns 0
Julia Lawall (1):
IB/ehca: Release mutex in error path of alloc_small_queue_page()
Or Gerlitz (3):
RDMA/cma: Add RDMA_CM_EVENT_ADDR_CHANGE event
IB/iser: Add support for RDMA_CM_EVENT_ADDR_CHANGE event
IPoIB: Include err code in trace message for ib_sa_path_rec_get() failures
Ralph Campbell (1):
IB/sa_query: Check if sm_ah is NULL in ib_sa_remove_one()
Roland Dreier (7):
IB/mlx4: Rename struct mlx4_lso_seg to mlx4_wqe_lso_seg
mlx4_core: Keep free count for MTT buddy allocator
IB/mthca: Keep free count for MTT buddy allocator
IB/mlx4: Add support for memory management extensions and local DMA L_Key
mlx4_core: Improve error message when not enough UAR pages are available
MAINTAINERS: Remove Glenn Streiff from NetEffect entry
Merge branches 'bkl-removal', 'cma', 'ehca', 'for-2.6.27', 'mlx4', 'mthca' and 'nes' into for-linus
MAINTAINERS | 2 -
drivers/infiniband/core/cma.c | 99 ++++++++++++++++++++++++++++-
drivers/infiniband/core/iwcm.c | 3 +-
drivers/infiniband/core/sa_query.c | 3 +-
drivers/infiniband/hw/ehca/ehca_classes.h | 1 +
drivers/infiniband/hw/ehca/ehca_hca.c | 4 +-
drivers/infiniband/hw/ehca/ehca_irq.c | 4 +
drivers/infiniband/hw/ehca/ehca_qp.c | 2 +
drivers/infiniband/hw/ehca/ipz_pt_fn.c | 1 +
drivers/infiniband/hw/mlx4/cq.c | 12 ++++
drivers/infiniband/hw/mlx4/main.c | 11 +++
drivers/infiniband/hw/mlx4/mlx4_ib.h | 15 +++++
drivers/infiniband/hw/mlx4/mr.c | 70 ++++++++++++++++++++
drivers/infiniband/hw/mlx4/qp.c | 74 ++++++++++++++++++++--
drivers/infiniband/hw/mthca/mthca_dev.h | 1 +
drivers/infiniband/hw/mthca/mthca_mr.c | 26 +++++---
drivers/infiniband/ulp/ipoib/ipoib_main.c | 2 +-
drivers/infiniband/ulp/iser/iser_verbs.c | 1 +
drivers/net/mlx4/cmd.c | 3 +
drivers/net/mlx4/fw.c | 18 +++--
drivers/net/mlx4/fw.h | 2 +-
drivers/net/mlx4/main.c | 2 +
drivers/net/mlx4/mlx4.h | 1 +
drivers/net/mlx4/mr.c | 49 +++++++++++----
drivers/net/mlx4/pd.c | 7 ++
include/linux/mlx4/device.h | 10 +++
include/linux/mlx4/qp.h | 18 ++++--
include/rdma/rdma_cm.h | 4 +-
28 files changed, 396 insertions(+), 49 deletions(-)
^ permalink raw reply [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
@ 2008-07-15 6:51 Roland Dreier
0 siblings, 0 replies; 223+ messages in thread
From: Roland Dreier @ 2008-07-15 6:51 UTC (permalink / raw)
To: torvalds, akpm; +Cc: general, linux-kernel
Linus, please pull from
master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This tree is also available from kernel.org mirrors at:
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This will get the first big batch of RDMA/InfiniBand changes for
2.6.27, all of which have been in linux-next:
Christophe Jaillet (1):
RDMA/nes: Remove unnecessary memset()
Dotan Barak (1):
RDMA: Improve include file coding style
Eli Cohen (12):
IB/mlx4: Optimize QP stamping
IPoIB: Copy small received SKBs in connected mode
IB/mlx4: Configure QPs' max message size based on real device capability
IB/mlx4: Pass congestion management class MADs to the HCA
IPoIB: Remove unused IPOIB_MCAST_STARTED code
IPoIB: Remove priv->mcast_mutex
IPoIB: Only set Q_Key once: after joining broadcast group
IPoIB: Use rtnl lock/unlock when changing device flags
IPoIB: Use dev_set_mtu() to change mtu
IPoIB/cm: Reduce connected mode TX object size
IPoIB: Double default RX/TX ring sizes
IB/mlx4: Use kzalloc() for new QPs so flags are initialized to 0
Joachim Fenkes (2):
IB/ehca: Reject receive work requests if QP is in RESET state
IB/ehca: Make device table externally visible
Jon Mason (1):
RDMA/cxgb3: Propagate HW page size capabilities
Moni Shoua (2):
IB/sa: Fail requests made while creating new SM AH
IPoIB: Refresh paths instead of flushing them on SM change events
Or Gerlitz (2):
RDMA/addr: Keep pointer to netdevice in struct rdma_dev_addr
RDMA/cma: Simplify locking needed for serialization of callbacks
Ralph Campbell (2):
IB/core: Reset to error QP state transition is not allowed
IB/ipath: Use IEEE OUI for vendor_id reported by ibv_query_device()
Robert P. J. Day (1):
IB/ipath: Simplify code using ARRAY_SIZE() macro
Roland Dreier (13):
IB/srp: Remove use of cached P_Key/GID queries
RDMA: Remove subversion $Id tags
IB/mthca: Remove extra code for RESET->ERR QP state transition
IB/mlx4: Remove extra code for RESET->ERR QP state transition
RDMA/cxgb3: Remove write-only iwch_rnic_attributes fields
RDMA/cma: Add missing newlines to printk()s
IPoIB/cm: Fix racy use of receive WR/SGL in ipoib_cm_post_receive_nonsrq()
RDMA/nes: Encapsulate logic nes_put_cqp_request()
RDMA/nes: Get rid of ring_doorbell parameter of nes_post_cqp_request()
IPoIB: Get rid of ipoib_mcast_detach() wrapper
IB/mthca: Remove "stop" flag for catastrophic error polling timer
IB/mthca: Use round_jiffies() for catastrophic error polling timer
IB/mthca: Fix check of max_send_sge for special QPs
Ron Livne (3):
IB/core: Add support for multicast loopback blocking
IB/mlx4: Add support for blocking multicast loopback packets
IPoIB: Use multicast loopback blocking if available
Sean Hefty (1):
RDMA: Fix license text
Stefan Roscher (1):
IB/ehca: In case of lost interrupts, trigger EOI to reenable interrupts
Steve Wise (8):
RDMA/core: Add memory management extensions support
RDMA/cxgb3: MEM_MGT_EXTENSIONS support
RDMA/cxgb3: Fix up some ib_device_attr fields
RDMA/core: Add iWARP protocol statistics attributes in sysfs
RDMA/cxgb3: Add support for protocol statistics
RDMA/cxgb3: Set rkey field for new memory windows in iwch_alloc_mw()
RDMA/core: Add local DMA L_Key support
RDMA/cxgb3: Fixes for zero STag
Vladimir Sokolovsky (2):
IPoIB: add LRO support
mlx4_core: Use MOD_STAT_CFG command to get minimal page size
drivers/infiniband/core/addr.c | 42 +++--
drivers/infiniband/core/agent.h | 2 -
drivers/infiniband/core/cache.c | 2 -
drivers/infiniband/core/cm.c | 2 -
drivers/infiniband/core/cma.c | 162 ++++++++--------
drivers/infiniband/core/core_priv.h | 2 -
drivers/infiniband/core/device.c | 2 -
drivers/infiniband/core/fmr_pool.c | 2 -
drivers/infiniband/core/mad_priv.h | 2 -
drivers/infiniband/core/mad_rmpp.c | 2 -
drivers/infiniband/core/mad_rmpp.h | 2 -
drivers/infiniband/core/packer.c | 2 -
drivers/infiniband/core/sa_query.c | 24 ++-
drivers/infiniband/core/sysfs.c | 122 +++++++++++-
drivers/infiniband/core/ucm.c | 2 -
drivers/infiniband/core/ud_header.c | 2 -
drivers/infiniband/core/umem.c | 2 -
drivers/infiniband/core/user_mad.c | 2 -
drivers/infiniband/core/uverbs.h | 2 -
drivers/infiniband/core/uverbs_cmd.c | 4 +-
drivers/infiniband/core/uverbs_main.c | 2 -
drivers/infiniband/core/verbs.c | 49 ++++-
drivers/infiniband/hw/amso1100/c2_rnic.c | 2 +-
drivers/infiniband/hw/cxgb3/cxio_hal.c | 27 ++-
drivers/infiniband/hw/cxgb3/cxio_hal.h | 5 +-
drivers/infiniband/hw/cxgb3/cxio_wr.h | 103 ++++++++--
drivers/infiniband/hw/cxgb3/iwch.c | 8 +-
drivers/infiniband/hw/cxgb3/iwch.h | 2 -
drivers/infiniband/hw/cxgb3/iwch_cq.c | 15 +-
drivers/infiniband/hw/cxgb3/iwch_provider.c | 199 +++++++++++++++++-
drivers/infiniband/hw/cxgb3/iwch_provider.h | 8 -
drivers/infiniband/hw/cxgb3/iwch_qp.c | 261 ++++++++++++++++++------
drivers/infiniband/hw/ehca/ehca_irq.c | 9 +-
drivers/infiniband/hw/ehca/ehca_main.c | 1 +
drivers/infiniband/hw/ehca/ehca_reqs.c | 14 +-
drivers/infiniband/hw/ehca/hcp_if.c | 10 +
drivers/infiniband/hw/ehca/hcp_if.h | 1 +
drivers/infiniband/hw/ipath/ipath_cq.c | 2 +-
drivers/infiniband/hw/ipath/ipath_iba7220.c | 4 +-
drivers/infiniband/hw/ipath/ipath_mad.c | 6 +-
drivers/infiniband/hw/ipath/ipath_rc.c | 4 +-
drivers/infiniband/hw/ipath/ipath_ruc.c | 4 +-
drivers/infiniband/hw/ipath/ipath_uc.c | 8 +-
drivers/infiniband/hw/ipath/ipath_ud.c | 8 +-
drivers/infiniband/hw/ipath/ipath_verbs.c | 3 +-
drivers/infiniband/hw/mlx4/cq.c | 12 +-
drivers/infiniband/hw/mlx4/mad.c | 3 +-
drivers/infiniband/hw/mlx4/main.c | 7 +-
drivers/infiniband/hw/mlx4/mlx4_ib.h | 3 +-
drivers/infiniband/hw/mlx4/qp.c | 73 +++----
drivers/infiniband/hw/mthca/mthca_allocator.c | 2 -
drivers/infiniband/hw/mthca/mthca_av.c | 2 -
drivers/infiniband/hw/mthca/mthca_catas.c | 17 +--
drivers/infiniband/hw/mthca/mthca_cmd.c | 2 -
drivers/infiniband/hw/mthca/mthca_cmd.h | 2 -
drivers/infiniband/hw/mthca/mthca_config_reg.h | 2 -
drivers/infiniband/hw/mthca/mthca_cq.c | 6 +-
drivers/infiniband/hw/mthca/mthca_dev.h | 3 -
drivers/infiniband/hw/mthca/mthca_doorbell.h | 2 -
drivers/infiniband/hw/mthca/mthca_eq.c | 2 -
drivers/infiniband/hw/mthca/mthca_mad.c | 2 -
drivers/infiniband/hw/mthca/mthca_main.c | 2 -
drivers/infiniband/hw/mthca/mthca_mcg.c | 2 -
drivers/infiniband/hw/mthca/mthca_memfree.c | 2 -
drivers/infiniband/hw/mthca/mthca_memfree.h | 2 -
drivers/infiniband/hw/mthca/mthca_mr.c | 2 -
drivers/infiniband/hw/mthca/mthca_pd.c | 2 -
drivers/infiniband/hw/mthca/mthca_profile.c | 2 -
drivers/infiniband/hw/mthca/mthca_profile.h | 2 -
drivers/infiniband/hw/mthca/mthca_provider.c | 2 -
drivers/infiniband/hw/mthca/mthca_provider.h | 2 -
drivers/infiniband/hw/mthca/mthca_qp.c | 32 +---
drivers/infiniband/hw/mthca/mthca_reset.c | 2 -
drivers/infiniband/hw/mthca/mthca_srq.c | 2 -
drivers/infiniband/hw/mthca/mthca_uar.c | 2 -
drivers/infiniband/hw/mthca/mthca_user.h | 1 -
drivers/infiniband/hw/mthca/mthca_wqe.h | 2 -
drivers/infiniband/hw/nes/nes.c | 2 +-
drivers/infiniband/hw/nes/nes.h | 9 +-
drivers/infiniband/hw/nes/nes_cm.c | 1 -
drivers/infiniband/hw/nes/nes_hw.c | 68 +-----
drivers/infiniband/hw/nes/nes_hw.h | 2 +-
drivers/infiniband/hw/nes/nes_utils.c | 33 +++-
drivers/infiniband/hw/nes/nes_verbs.c | 207 ++++---------------
drivers/infiniband/ulp/ipoib/Kconfig | 1 +
drivers/infiniband/ulp/ipoib/ipoib.h | 48 ++++--
drivers/infiniband/ulp/ipoib/ipoib_cm.c | 104 +++++++---
drivers/infiniband/ulp/ipoib/ipoib_ethtool.c | 46 ++++
drivers/infiniband/ulp/ipoib/ipoib_fs.c | 2 -
drivers/infiniband/ulp/ipoib/ipoib_ib.c | 52 +++--
drivers/infiniband/ulp/ipoib/ipoib_main.c | 115 ++++++++++-
drivers/infiniband/ulp/ipoib/ipoib_multicast.c | 27 +--
drivers/infiniband/ulp/ipoib/ipoib_verbs.c | 69 +++----
drivers/infiniband/ulp/ipoib/ipoib_vlan.c | 2 -
drivers/infiniband/ulp/iser/iscsi_iser.c | 3 -
drivers/infiniband/ulp/iser/iscsi_iser.h | 2 -
drivers/infiniband/ulp/iser/iser_initiator.c | 2 -
drivers/infiniband/ulp/iser/iser_memory.c | 2 -
drivers/infiniband/ulp/iser/iser_verbs.c | 2 -
drivers/infiniband/ulp/srp/ib_srp.c | 15 +-
drivers/infiniband/ulp/srp/ib_srp.h | 2 -
drivers/net/cxgb3/cxgb3_ctl_defs.h | 1 +
drivers/net/cxgb3/cxgb3_offload.c | 7 +
drivers/net/cxgb3/version.h | 2 +-
drivers/net/mlx4/fw.c | 28 +++
drivers/net/mlx4/fw.h | 6 +
drivers/net/mlx4/main.c | 7 +
drivers/net/mlx4/mcg.c | 17 ++-
include/linux/mlx4/device.h | 3 +-
include/rdma/ib_addr.h | 43 +++--
include/rdma/ib_cache.h | 2 -
include/rdma/ib_cm.h | 2 -
include/rdma/ib_fmr_pool.h | 4 +-
include/rdma/ib_mad.h | 17 +-
include/rdma/ib_pack.h | 2 -
include/rdma/ib_sa.h | 2 -
include/rdma/ib_smi.h | 4 +-
include/rdma/ib_user_cm.h | 2 -
include/rdma/ib_user_mad.h | 2 -
include/rdma/ib_user_verbs.h | 7 +-
include/rdma/ib_verbs.h | 149 +++++++++++++-
include/rdma/iw_cm.h | 2 +-
include/rdma/rdma_cm.h | 52 +++---
include/rdma/rdma_cm_ib.h | 50 +++--
124 files changed, 1632 insertions(+), 935 deletions(-)
^ permalink raw reply [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
@ 2008-07-08 21:41 Roland Dreier
0 siblings, 0 replies; 223+ messages in thread
From: Roland Dreier @ 2008-07-08 21:41 UTC (permalink / raw)
To: torvalds, akpm; +Cc: general, linux-kernel, steve
Linus, please pull from
master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This tree is also available from kernel.org mirrors at:
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This will get a fix for one regression introduced earlier in the
2.6.26 cycle:
Steve Wise (1):
RDMA/cxgb3: Fix regression caused by class_device -> device conversion
drivers/infiniband/hw/cxgb3/iwch_provider.c | 4 ++++
1 files changed, 4 insertions(+), 0 deletions(-)
diff --git a/drivers/infiniband/hw/cxgb3/iwch_provider.c b/drivers/infiniband/hw/cxgb3/iwch_provider.c
index 8934178..95f82cf 100644
--- a/drivers/infiniband/hw/cxgb3/iwch_provider.c
+++ b/drivers/infiniband/hw/cxgb3/iwch_provider.c
@@ -1096,7 +1096,9 @@ static ssize_t show_fw_ver(struct device *dev, struct device_attribute *attr, ch
struct net_device *lldev = iwch_dev->rdev.t3cdev_p->lldev;
PDBG("%s dev 0x%p\n", __func__, dev);
+ rtnl_lock();
lldev->ethtool_ops->get_drvinfo(lldev, &info);
+ rtnl_unlock();
return sprintf(buf, "%s\n", info.fw_version);
}
@@ -1109,7 +1111,9 @@ static ssize_t show_hca(struct device *dev, struct device_attribute *attr,
struct net_device *lldev = iwch_dev->rdev.t3cdev_p->lldev;
PDBG("%s dev 0x%p\n", __func__, dev);
+ rtnl_lock();
lldev->ethtool_ops->get_drvinfo(lldev, &info);
+ rtnl_unlock();
return sprintf(buf, "%s\n", info.driver);
}
^ permalink raw reply related [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
@ 2008-06-23 19:23 Roland Dreier
0 siblings, 0 replies; 223+ messages in thread
From: Roland Dreier @ 2008-06-23 19:23 UTC (permalink / raw)
To: torvalds, akpm; +Cc: general, linux-kernel
Linus, please pull from
master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This tree is also available from kernel.org mirrors at:
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This will get a fix for one rare bug seen by SGI on large clusters:
Eli Cohen (1):
IB/mthca: Clear ICM pages before handing to FW
drivers/infiniband/hw/mthca/mthca_memfree.c | 6 +++++-
1 files changed, 5 insertions(+), 1 deletions(-)
diff --git a/drivers/infiniband/hw/mthca/mthca_memfree.c b/drivers/infiniband/hw/mthca/mthca_memfree.c
index b224079..d5862e5 100644
--- a/drivers/infiniband/hw/mthca/mthca_memfree.c
+++ b/drivers/infiniband/hw/mthca/mthca_memfree.c
@@ -109,7 +109,11 @@ static int mthca_alloc_icm_pages(struct scatterlist *mem, int order, gfp_t gfp_m
{
struct page *page;
- page = alloc_pages(gfp_mask, order);
+ /*
+ * Use __GFP_ZERO because buggy firmware assumes ICM pages are
+ * cleared, and subtle failures are seen if they aren't.
+ */
+ page = alloc_pages(gfp_mask | __GFP_ZERO, order);
if (!page)
return -ENOMEM;
^ permalink raw reply related [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
@ 2008-06-18 22:38 Roland Dreier
0 siblings, 0 replies; 223+ messages in thread
From: Roland Dreier @ 2008-06-18 22:38 UTC (permalink / raw)
To: torvalds, akpm; +Cc: general, linux-kernel
Linus, please pull from
master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This tree is also available from kernel.org mirrors at:
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This will get a couple of small fixes:
Jack Morgenstein (1):
IB/uverbs: Fix check of is_closed flag check in ib_uverbs_async_handler()
Roland Dreier (1):
RDMA/nes: Fix off-by-one in nes_reg_user_mr() error path
drivers/infiniband/core/uverbs_main.c | 2 +-
drivers/infiniband/hw/nes/nes_verbs.c | 4 +---
2 files changed, 2 insertions(+), 4 deletions(-)
diff --git a/drivers/infiniband/core/uverbs_main.c b/drivers/infiniband/core/uverbs_main.c
index f806da1..caed42b 100644
--- a/drivers/infiniband/core/uverbs_main.c
+++ b/drivers/infiniband/core/uverbs_main.c
@@ -423,7 +423,7 @@ static void ib_uverbs_async_handler(struct ib_uverbs_file *file,
unsigned long flags;
spin_lock_irqsave(&file->async_file->lock, flags);
- if (!file->async_file->is_closed) {
+ if (file->async_file->is_closed) {
spin_unlock_irqrestore(&file->async_file->lock, flags);
return;
}
diff --git a/drivers/infiniband/hw/nes/nes_verbs.c b/drivers/infiniband/hw/nes/nes_verbs.c
index 99b3c4a..d617da9 100644
--- a/drivers/infiniband/hw/nes/nes_verbs.c
+++ b/drivers/infiniband/hw/nes/nes_verbs.c
@@ -2456,10 +2456,8 @@ static struct ib_mr *nes_reg_user_mr(struct ib_pd *pd, u64 start, u64 length,
if ((page_count!=0)&&(page_count<<12)-(region->offset&(4096-1))>=region->length)
goto enough_pages;
if ((page_count&0x01FF) == 0) {
- if (page_count>(1024*512)) {
+ if (page_count >= 1024 * 512) {
ib_umem_release(region);
- pci_free_consistent(nesdev->pcidev, 4096, vpbl.pbl_vbase,
- vpbl.pbl_pbase);
nes_free_resource(nesadapter,
nesadapter->allocated_mrs, stag_index);
kfree(nesmr);
^ permalink raw reply related [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
@ 2008-06-09 20:10 Roland Dreier
0 siblings, 0 replies; 223+ messages in thread
From: Roland Dreier @ 2008-06-09 20:10 UTC (permalink / raw)
To: torvalds, akpm; +Cc: general, linux-kernel
Linus, please pull from
master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This tree is also available from kernel.org mirrors at:
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This will get a fix for a crash/lockup triggerable by buggy userspace
(that I already sent you as a patch via email), and remove one API
that only appeared in 2.6.26-rc kernels and that we decided should be
exposed in a different way (already queued for 2.6.27 in linux-next).
Roland Dreier (2):
IB/umem: Avoid sign problems when demoting npages to integer
IB/core: Remove IB_DEVICE_SEND_W_INV capability flag
drivers/infiniband/core/umem.c | 2 +-
drivers/infiniband/hw/amso1100/c2_rnic.c | 3 +--
include/rdma/ib_verbs.h | 1 -
3 files changed, 2 insertions(+), 4 deletions(-)
diff --git a/drivers/infiniband/core/umem.c b/drivers/infiniband/core/umem.c
index fe78f7d..a1768db 100644
--- a/drivers/infiniband/core/umem.c
+++ b/drivers/infiniband/core/umem.c
@@ -150,7 +150,7 @@ struct ib_umem *ib_umem_get(struct ib_ucontext *context, unsigned long addr,
ret = 0;
while (npages) {
ret = get_user_pages(current, current->mm, cur_base,
- min_t(int, npages,
+ min_t(unsigned long, npages,
PAGE_SIZE / sizeof (struct page *)),
1, !umem->writable, page_list, vma_list);
diff --git a/drivers/infiniband/hw/amso1100/c2_rnic.c b/drivers/infiniband/hw/amso1100/c2_rnic.c
index 9a054c6..b1441ae 100644
--- a/drivers/infiniband/hw/amso1100/c2_rnic.c
+++ b/drivers/infiniband/hw/amso1100/c2_rnic.c
@@ -455,8 +455,7 @@ int __devinit c2_rnic_init(struct c2_dev *c2dev)
IB_DEVICE_CURR_QP_STATE_MOD |
IB_DEVICE_SYS_IMAGE_GUID |
IB_DEVICE_ZERO_STAG |
- IB_DEVICE_MEM_WINDOW |
- IB_DEVICE_SEND_W_INV);
+ IB_DEVICE_MEM_WINDOW);
/* Allocate the qptr_array */
c2dev->qptr_array = vmalloc(C2_MAX_CQS * sizeof(void *));
diff --git a/include/rdma/ib_verbs.h b/include/rdma/ib_verbs.h
index 911a661..31d30b1 100644
--- a/include/rdma/ib_verbs.h
+++ b/include/rdma/ib_verbs.h
@@ -105,7 +105,6 @@ enum ib_device_cap_flags {
*/
IB_DEVICE_UD_IP_CSUM = (1<<18),
IB_DEVICE_UD_TSO = (1<<19),
- IB_DEVICE_SEND_W_INV = (1<<21),
};
enum ib_atomic_cap {
^ permalink raw reply related [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
@ 2008-06-06 18:26 Roland Dreier
0 siblings, 0 replies; 223+ messages in thread
From: Roland Dreier @ 2008-06-06 18:26 UTC (permalink / raw)
To: torvalds, akpm; +Cc: general, linux-kernel
Linus, please pull from
master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This tree is also available from kernel.org mirrors at:
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This will get some small fixes for various low-level driver issues:
Chien Tung (1):
MAINTAINERS: Update NetEffect (iw_nes) entry
Joachim Fenkes (1):
IB/ehca: Reject send WRs only for RESET, INIT and RTR state
Ralph Campbell (2):
IB/ipath: Fix device capability flags
IB/ipath: Fix SM trap forwarding
Roland Dreier (1):
IB/ipath: Avoid test_bit() on u64 SDMA status value
MAINTAINERS | 4 ++--
drivers/infiniband/hw/ehca/ehca_reqs.c | 6 ++++--
drivers/infiniband/hw/ipath/ipath_kernel.h | 5 +++++
drivers/infiniband/hw/ipath/ipath_mad.c | 4 ++++
drivers/infiniband/hw/ipath/ipath_sdma.c | 12 ++++--------
drivers/infiniband/hw/ipath/ipath_verbs.c | 3 ++-
6 files changed, 21 insertions(+), 13 deletions(-)
diff --git a/MAINTAINERS b/MAINTAINERS
index 0a6d2ca..bd3badb 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -2866,8 +2866,8 @@ S: Maintained
NETEFFECT IWARP RNIC DRIVER (IW_NES)
P: Faisal Latif
M: flatif@neteffect.com
-P: Nishi Gupta
-M: ngupta@neteffect.com
+P: Chien Tung
+M: ctung@neteffect.com
P: Glenn Streiff
M: gstreiff@neteffect.com
L: general@lists.openfabrics.org
diff --git a/drivers/infiniband/hw/ehca/ehca_reqs.c b/drivers/infiniband/hw/ehca/ehca_reqs.c
index bbe0436..f093b00 100644
--- a/drivers/infiniband/hw/ehca/ehca_reqs.c
+++ b/drivers/infiniband/hw/ehca/ehca_reqs.c
@@ -421,8 +421,10 @@ int ehca_post_send(struct ib_qp *qp,
int ret = 0;
unsigned long flags;
- if (unlikely(my_qp->state != IB_QPS_RTS)) {
- ehca_err(qp->device, "QP not in RTS state qpn=%x", qp->qp_num);
+ /* Reject WR if QP is in RESET, INIT or RTR state */
+ if (unlikely(my_qp->state < IB_QPS_RTS)) {
+ ehca_err(qp->device, "Invalid QP state qp_state=%d qpn=%x",
+ my_qp->state, qp->qp_num);
return -EINVAL;
}
diff --git a/drivers/infiniband/hw/ipath/ipath_kernel.h b/drivers/infiniband/hw/ipath/ipath_kernel.h
index 59a8b25..0bd8bcb 100644
--- a/drivers/infiniband/hw/ipath/ipath_kernel.h
+++ b/drivers/infiniband/hw/ipath/ipath_kernel.h
@@ -232,6 +232,11 @@ struct ipath_sdma_desc {
#define IPATH_SDMA_TXREQ_S_ABORTED 2
#define IPATH_SDMA_TXREQ_S_SHUTDOWN 3
+#define IPATH_SDMA_STATUS_SCORE_BOARD_DRAIN_IN_PROG (1ull << 63)
+#define IPATH_SDMA_STATUS_ABORT_IN_PROG (1ull << 62)
+#define IPATH_SDMA_STATUS_INTERNAL_SDMA_ENABLE (1ull << 61)
+#define IPATH_SDMA_STATUS_SCB_EMPTY (1ull << 30)
+
/* max dwords in small buffer packet */
#define IPATH_SMALLBUF_DWORDS (dd->ipath_piosize2k >> 2)
diff --git a/drivers/infiniband/hw/ipath/ipath_mad.c b/drivers/infiniband/hw/ipath/ipath_mad.c
index 1ff46ae..5f9315d 100644
--- a/drivers/infiniband/hw/ipath/ipath_mad.c
+++ b/drivers/infiniband/hw/ipath/ipath_mad.c
@@ -1492,6 +1492,10 @@ static int process_subn(struct ib_device *ibdev, int mad_flags,
goto bail;
}
+ case IB_MGMT_METHOD_TRAP:
+ case IB_MGMT_METHOD_REPORT:
+ case IB_MGMT_METHOD_REPORT_RESP:
+ case IB_MGMT_METHOD_TRAP_REPRESS:
case IB_MGMT_METHOD_GET_RESP:
/*
* The ib_mad module will call us to process responses
diff --git a/drivers/infiniband/hw/ipath/ipath_sdma.c b/drivers/infiniband/hw/ipath/ipath_sdma.c
index 0a8c1b8..eaba032 100644
--- a/drivers/infiniband/hw/ipath/ipath_sdma.c
+++ b/drivers/infiniband/hw/ipath/ipath_sdma.c
@@ -263,14 +263,10 @@ static void sdma_abort_task(unsigned long opaque)
hwstatus = ipath_read_kreg64(dd,
dd->ipath_kregs->kr_senddmastatus);
- if (/* ScoreBoardDrainInProg */
- test_bit(63, &hwstatus) ||
- /* AbortInProg */
- test_bit(62, &hwstatus) ||
- /* InternalSDmaEnable */
- test_bit(61, &hwstatus) ||
- /* ScbEmpty */
- !test_bit(30, &hwstatus)) {
+ if ((hwstatus & (IPATH_SDMA_STATUS_SCORE_BOARD_DRAIN_IN_PROG |
+ IPATH_SDMA_STATUS_ABORT_IN_PROG |
+ IPATH_SDMA_STATUS_INTERNAL_SDMA_ENABLE)) ||
+ !(hwstatus & IPATH_SDMA_STATUS_SCB_EMPTY)) {
if (dd->ipath_sdma_reset_wait > 0) {
/* not done shutting down sdma */
--dd->ipath_sdma_reset_wait;
diff --git a/drivers/infiniband/hw/ipath/ipath_verbs.c b/drivers/infiniband/hw/ipath/ipath_verbs.c
index e0ec540..7779165 100644
--- a/drivers/infiniband/hw/ipath/ipath_verbs.c
+++ b/drivers/infiniband/hw/ipath/ipath_verbs.c
@@ -1494,7 +1494,8 @@ static int ipath_query_device(struct ib_device *ibdev,
props->device_cap_flags = IB_DEVICE_BAD_PKEY_CNTR |
IB_DEVICE_BAD_QKEY_CNTR | IB_DEVICE_SHUTDOWN_PORT |
- IB_DEVICE_SYS_IMAGE_GUID;
+ IB_DEVICE_SYS_IMAGE_GUID | IB_DEVICE_RC_RNR_NAK_GEN |
+ IB_DEVICE_PORT_ACTIVE_EVENT | IB_DEVICE_SRQ_RESIZE;
props->page_size_cap = PAGE_SIZE;
props->vendor_id = dev->dd->ipath_vendorid;
props->vendor_part_id = dev->dd->ipath_deviceid;
^ permalink raw reply related [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
@ 2008-05-23 17:57 Roland Dreier
0 siblings, 0 replies; 223+ messages in thread
From: Roland Dreier @ 2008-05-23 17:57 UTC (permalink / raw)
To: torvalds, akpm; +Cc: general, linux-kernel
Linus, please pull from
master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This tree is also available from kernel.org mirrors at:
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This will get a fixes for various issues:
- Various trivial fixes that get rid of warnings
- A couple of oopsable bugs fixed
- Fixes for mthca/mlx4 driver bugs that stop NFS/RDMA from working
- MAINTAINERS entry for Chelsio drivers
Andrew Morton (1):
IB/mlx4: Fix uninitialized-var warning in mlx4_ib_post_send()
Dave Olson (1):
IB/mad: Fix kernel crash when .process_mad() returns SUCCESS|CONSUMED
Jack Morgenstein (1):
IPoIB: Test for NULL broadcast object in ipiob_mcast_join_finish()
Ralph Campbell (1):
IB/ipath: Fix UC receive completion opcode for RDMA WRITE with immediate
Roland Dreier (4):
IB/ipath: Fix printk format for ipath_sdma_status
RDMA/cxgb3: Fix uninitialized variable warning in iwch_post_send()
IB/mthca: Fix max_sge value returned by query_device
IB/mlx4: Fix creation of kernel QP with max number of send s/g entries
Steve Wise (1):
MAINTAINERS: Add cxgb3 and iw_cxgb3 NIC and iWARP driver entries
MAINTAINERS | 14 ++++++++++++++
drivers/infiniband/core/mad.c | 4 +++-
drivers/infiniband/hw/cxgb3/iwch_qp.c | 2 +-
drivers/infiniband/hw/ipath/ipath_sdma.c | 4 ++--
drivers/infiniband/hw/ipath/ipath_uc.c | 4 ++--
drivers/infiniband/hw/mlx4/qp.c | 15 +++++++++------
drivers/infiniband/hw/mthca/mthca_main.c | 14 +++++++++++++-
drivers/infiniband/ulp/ipoib/ipoib_multicast.c | 6 ++++++
8 files changed, 50 insertions(+), 13 deletions(-)
diff --git a/MAINTAINERS b/MAINTAINERS
index bc1c008..907d8c4 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -1239,6 +1239,20 @@ L: video4linux-list@redhat.com
W: http://linuxtv.org
S: Maintained
+CXGB3 ETHERNET DRIVER (CXGB3)
+P: Divy Le Ray
+M: divy@chelsio.com
+L: netdev@vger.kernel.org
+W: http://www.chelsio.com
+S: Supported
+
+CXGB3 IWARP RNIC DRIVER (IW_CXGB3)
+P: Steve Wise
+M: swise@chelsio.com
+L: general@lists.openfabrics.org
+W: http://www.openfabrics.org
+S: Supported
+
CYBERPRO FB DRIVER
P: Russell King
M: rmk@arm.linux.org.uk
diff --git a/drivers/infiniband/core/mad.c b/drivers/infiniband/core/mad.c
index fbe16d5..1adf2ef 100644
--- a/drivers/infiniband/core/mad.c
+++ b/drivers/infiniband/core/mad.c
@@ -747,7 +747,9 @@ static int handle_outgoing_dr_smp(struct ib_mad_agent_private *mad_agent_priv,
break;
case IB_MAD_RESULT_SUCCESS | IB_MAD_RESULT_CONSUMED:
kmem_cache_free(ib_mad_cache, mad_priv);
- break;
+ kfree(local);
+ ret = 1;
+ goto out;
case IB_MAD_RESULT_SUCCESS:
/* Treat like an incoming receive MAD */
port_priv = ib_get_mad_port(mad_agent_priv->agent.device,
diff --git a/drivers/infiniband/hw/cxgb3/iwch_qp.c b/drivers/infiniband/hw/cxgb3/iwch_qp.c
index 79dbe5b..9926137 100644
--- a/drivers/infiniband/hw/cxgb3/iwch_qp.c
+++ b/drivers/infiniband/hw/cxgb3/iwch_qp.c
@@ -229,7 +229,7 @@ int iwch_post_send(struct ib_qp *ibqp, struct ib_send_wr *wr,
struct ib_send_wr **bad_wr)
{
int err = 0;
- u8 t3_wr_flit_cnt;
+ u8 uninitialized_var(t3_wr_flit_cnt);
enum t3_wr_opcode t3_wr_opcode = 0;
enum t3_wr_flags t3_wr_flags;
struct iwch_qp *qhp;
diff --git a/drivers/infiniband/hw/ipath/ipath_sdma.c b/drivers/infiniband/hw/ipath/ipath_sdma.c
index 3697449..0a8c1b8 100644
--- a/drivers/infiniband/hw/ipath/ipath_sdma.c
+++ b/drivers/infiniband/hw/ipath/ipath_sdma.c
@@ -345,7 +345,7 @@ resched:
* state change
*/
if (jiffies > dd->ipath_sdma_abort_jiffies) {
- ipath_dbg("looping with status 0x%016llx\n",
+ ipath_dbg("looping with status 0x%08lx\n",
dd->ipath_sdma_status);
dd->ipath_sdma_abort_jiffies = jiffies + 5 * HZ;
}
@@ -615,7 +615,7 @@ void ipath_restart_sdma(struct ipath_devdata *dd)
}
spin_unlock_irqrestore(&dd->ipath_sdma_lock, flags);
if (!needed) {
- ipath_dbg("invalid attempt to restart SDMA, status 0x%016llx\n",
+ ipath_dbg("invalid attempt to restart SDMA, status 0x%08lx\n",
dd->ipath_sdma_status);
goto bail;
}
diff --git a/drivers/infiniband/hw/ipath/ipath_uc.c b/drivers/infiniband/hw/ipath/ipath_uc.c
index 7fd18e8..0596ec1 100644
--- a/drivers/infiniband/hw/ipath/ipath_uc.c
+++ b/drivers/infiniband/hw/ipath/ipath_uc.c
@@ -407,12 +407,11 @@ void ipath_uc_rcv(struct ipath_ibdev *dev, struct ipath_ib_header *hdr,
dev->n_pkt_drops++;
goto done;
}
- /* XXX Need to free SGEs */
+ wc.opcode = IB_WC_RECV;
last_imm:
ipath_copy_sge(&qp->r_sge, data, tlen);
wc.wr_id = qp->r_wr_id;
wc.status = IB_WC_SUCCESS;
- wc.opcode = IB_WC_RECV;
wc.qp = &qp->ibqp;
wc.src_qp = qp->remote_qpn;
wc.slid = qp->remote_ah_attr.dlid;
@@ -514,6 +513,7 @@ void ipath_uc_rcv(struct ipath_ibdev *dev, struct ipath_ib_header *hdr,
goto done;
}
wc.byte_len = qp->r_len;
+ wc.opcode = IB_WC_RECV_RDMA_WITH_IMM;
goto last_imm;
case OP(RDMA_WRITE_LAST):
diff --git a/drivers/infiniband/hw/mlx4/qp.c b/drivers/infiniband/hw/mlx4/qp.c
index 8e02ecf..a80df22 100644
--- a/drivers/infiniband/hw/mlx4/qp.c
+++ b/drivers/infiniband/hw/mlx4/qp.c
@@ -333,6 +333,9 @@ static int set_kernel_sq_size(struct mlx4_ib_dev *dev, struct ib_qp_cap *cap,
cap->max_inline_data + sizeof (struct mlx4_wqe_inline_seg)) +
send_wqe_overhead(type, qp->flags);
+ if (s > dev->dev->caps.max_sq_desc_sz)
+ return -EINVAL;
+
/*
* Hermon supports shrinking WQEs, such that a single work
* request can include multiple units of 1 << wqe_shift. This
@@ -372,9 +375,6 @@ static int set_kernel_sq_size(struct mlx4_ib_dev *dev, struct ib_qp_cap *cap,
qp->sq.wqe_shift = ilog2(roundup_pow_of_two(s));
for (;;) {
- if (1 << qp->sq.wqe_shift > dev->dev->caps.max_sq_desc_sz)
- return -EINVAL;
-
qp->sq_max_wqes_per_wr = DIV_ROUND_UP(s, 1U << qp->sq.wqe_shift);
/*
@@ -395,7 +395,8 @@ static int set_kernel_sq_size(struct mlx4_ib_dev *dev, struct ib_qp_cap *cap,
++qp->sq.wqe_shift;
}
- qp->sq.max_gs = ((qp->sq_max_wqes_per_wr << qp->sq.wqe_shift) -
+ qp->sq.max_gs = (min(dev->dev->caps.max_sq_desc_sz,
+ (qp->sq_max_wqes_per_wr << qp->sq.wqe_shift)) -
send_wqe_overhead(type, qp->flags)) /
sizeof (struct mlx4_wqe_data_seg);
@@ -411,7 +412,9 @@ static int set_kernel_sq_size(struct mlx4_ib_dev *dev, struct ib_qp_cap *cap,
cap->max_send_wr = qp->sq.max_post =
(qp->sq.wqe_cnt - qp->sq_spare_wqes) / qp->sq_max_wqes_per_wr;
- cap->max_send_sge = qp->sq.max_gs;
+ cap->max_send_sge = min(qp->sq.max_gs,
+ min(dev->dev->caps.max_sq_sg,
+ dev->dev->caps.max_rq_sg));
/* We don't support inline sends for kernel QPs (yet) */
cap->max_inline_data = 0;
@@ -1457,7 +1460,7 @@ int mlx4_ib_post_send(struct ib_qp *ibqp, struct ib_send_wr *wr,
unsigned ind;
int uninitialized_var(stamp);
int uninitialized_var(size);
- unsigned seglen;
+ unsigned uninitialized_var(seglen);
int i;
spin_lock_irqsave(&qp->sq.lock, flags);
diff --git a/drivers/infiniband/hw/mthca/mthca_main.c b/drivers/infiniband/hw/mthca/mthca_main.c
index 9ebadd6..200cf13 100644
--- a/drivers/infiniband/hw/mthca/mthca_main.c
+++ b/drivers/infiniband/hw/mthca/mthca_main.c
@@ -45,6 +45,7 @@
#include "mthca_cmd.h"
#include "mthca_profile.h"
#include "mthca_memfree.h"
+#include "mthca_wqe.h"
MODULE_AUTHOR("Roland Dreier");
MODULE_DESCRIPTION("Mellanox InfiniBand HCA low-level driver");
@@ -200,7 +201,18 @@ static int mthca_dev_lim(struct mthca_dev *mdev, struct mthca_dev_lim *dev_lim)
mdev->limits.gid_table_len = dev_lim->max_gids;
mdev->limits.pkey_table_len = dev_lim->max_pkeys;
mdev->limits.local_ca_ack_delay = dev_lim->local_ca_ack_delay;
- mdev->limits.max_sg = dev_lim->max_sg;
+ /*
+ * Need to allow for worst case send WQE overhead and check
+ * whether max_desc_sz imposes a lower limit than max_sg; UD
+ * send has the biggest overhead.
+ */
+ mdev->limits.max_sg = min_t(int, dev_lim->max_sg,
+ (dev_lim->max_desc_sz -
+ sizeof (struct mthca_next_seg) -
+ (mthca_is_memfree(mdev) ?
+ sizeof (struct mthca_arbel_ud_seg) :
+ sizeof (struct mthca_tavor_ud_seg))) /
+ sizeof (struct mthca_data_seg));
mdev->limits.max_wqes = dev_lim->max_qp_sz;
mdev->limits.max_qp_init_rdma = dev_lim->max_requester_per_qp;
mdev->limits.reserved_qps = dev_lim->reserved_qps;
diff --git a/drivers/infiniband/ulp/ipoib/ipoib_multicast.c b/drivers/infiniband/ulp/ipoib/ipoib_multicast.c
index d00a2c1..3f663fb 100644
--- a/drivers/infiniband/ulp/ipoib/ipoib_multicast.c
+++ b/drivers/infiniband/ulp/ipoib/ipoib_multicast.c
@@ -194,7 +194,13 @@ static int ipoib_mcast_join_finish(struct ipoib_mcast *mcast,
/* Set the cached Q_Key before we attach if it's the broadcast group */
if (!memcmp(mcast->mcmember.mgid.raw, priv->dev->broadcast + 4,
sizeof (union ib_gid))) {
+ spin_lock_irq(&priv->lock);
+ if (!priv->broadcast) {
+ spin_unlock_irq(&priv->lock);
+ return -EAGAIN;
+ }
priv->qkey = be32_to_cpu(priv->broadcast->mcmember.qkey);
+ spin_unlock_irq(&priv->lock);
priv->tx_wr.wr.ud.remote_qkey = priv->qkey;
}
^ permalink raw reply related [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
@ 2008-05-07 19:17 Roland Dreier
0 siblings, 0 replies; 223+ messages in thread
From: Roland Dreier @ 2008-05-07 19:17 UTC (permalink / raw)
To: torvalds, akpm; +Cc: general, linux-kernel
Linus, please pull from
master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This tree is also available from kernel.org mirrors at:
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This will get a fixes for various low-level HW driver issues:
- cxgb3 severe limits on memory registration size
- ehca QP async event race
- ipath miscellaneous issues
Dave Olson (2):
IB/ipath: Fix bug that can leave sends disabled after freeze recovery
IB/ipath: Need to always request and handle PIO avail interrupts
John Gregor (1):
IB/ipath: Fix SDMA error recovery in absence of link status change
Michael Albaugh (2):
IB/ipath: Only warn about prototype chip during init
IB/ipath: Fix count of packets received by kernel
Ralph Campbell (2):
IB/ipath: Only increment SSN if WQE is put on send queue
IB/ipath: Return the correct opcode for RDMA WRITE with immediate
Roland Dreier (2):
RDMA/cxgb3: Don't add PBL memory to gen_pool in chunks
RDMA/cxgb3: Fix severe limit on userspace memory registration size
Stefan Roscher (1):
IB/ehca: Wait for async events to finish before destroying QP
drivers/infiniband/hw/cxgb3/cxio_hal.c | 90 ++++++++--------
drivers/infiniband/hw/cxgb3/cxio_hal.h | 8 +-
drivers/infiniband/hw/cxgb3/cxio_resource.c | 36 +++++--
drivers/infiniband/hw/cxgb3/iwch_mem.c | 75 +++++++++-----
drivers/infiniband/hw/cxgb3/iwch_provider.c | 68 ++++++++++---
drivers/infiniband/hw/cxgb3/iwch_provider.h | 8 +-
drivers/infiniband/hw/ehca/ehca_classes.h | 2 +
drivers/infiniband/hw/ehca/ehca_irq.c | 4 +
drivers/infiniband/hw/ehca/ehca_qp.c | 5 +
drivers/infiniband/hw/ipath/ipath_driver.c | 138 ++++++++++++++++++++++---
drivers/infiniband/hw/ipath/ipath_file_ops.c | 72 ++++++--------
drivers/infiniband/hw/ipath/ipath_iba7220.c | 26 ++---
drivers/infiniband/hw/ipath/ipath_init_chip.c | 95 ++++++++----------
drivers/infiniband/hw/ipath/ipath_intr.c | 80 ++------------
drivers/infiniband/hw/ipath/ipath_kernel.h | 8 ++-
drivers/infiniband/hw/ipath/ipath_rc.c | 6 +-
drivers/infiniband/hw/ipath/ipath_ruc.c | 7 +-
drivers/infiniband/hw/ipath/ipath_sdma.c | 44 ++++++--
drivers/infiniband/hw/ipath/ipath_verbs.c | 2 +-
19 files changed, 458 insertions(+), 316 deletions(-)
^ permalink raw reply [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
@ 2008-05-05 23:00 Roland Dreier
0 siblings, 0 replies; 223+ messages in thread
From: Roland Dreier @ 2008-05-05 23:00 UTC (permalink / raw)
To: torvalds, akpm; +Cc: general, linux-kernel
Linus, please pull from
master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This tree is also available from kernel.org mirrors at:
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This will get a fixes for:
- mlx4 breakage introduced (by me) with the CQ resize support
- mlx4 breakage with new FW that supports smaller adapter pages
- IPoIB breakage introduced with the separate send CQ support
- longstanding cxgb3 breakage uncovered by stress testing
- ehca minor messiness
Eli Cohen (1):
IB/ipoib: Fix transmit queue stalling forever
Oren Duer (1):
mlx4_core: Support creation of FMRs with pages smaller than 4K
Roland Dreier (1):
IB/mlx4: Fix off-by-one errors in calls to mlx4_ib_free_cq_buf()
Stefan Roscher (1):
IB/ehca: Fix function return types
Steve Wise (3):
RDMA/cxgb3: QP flush fixes
RDMA/cxgb3: Silently ignore close reply after abort.
RDMA/cxgb3: Bump up the MPA connection setup timeout.
drivers/infiniband/hw/cxgb3/cxio_hal.c | 13 ++++++--
drivers/infiniband/hw/cxgb3/cxio_hal.h | 4 +-
drivers/infiniband/hw/cxgb3/iwch_cm.c | 6 ++--
drivers/infiniband/hw/cxgb3/iwch_qp.c | 13 +++++---
drivers/infiniband/hw/ehca/ehca_hca.c | 7 ++--
drivers/infiniband/hw/mlx4/cq.c | 4 +-
drivers/infiniband/ulp/ipoib/ipoib.h | 2 +
drivers/infiniband/ulp/ipoib/ipoib_ib.c | 47 +++++++++++++++++++++++++---
drivers/infiniband/ulp/ipoib/ipoib_verbs.c | 3 +-
drivers/net/mlx4/mr.c | 2 +-
10 files changed, 75 insertions(+), 26 deletions(-)
diff --git a/drivers/infiniband/hw/cxgb3/cxio_hal.c b/drivers/infiniband/hw/cxgb3/cxio_hal.c
index ed2ee4b..5fd8506 100644
--- a/drivers/infiniband/hw/cxgb3/cxio_hal.c
+++ b/drivers/infiniband/hw/cxgb3/cxio_hal.c
@@ -359,9 +359,10 @@ static void insert_recv_cqe(struct t3_wq *wq, struct t3_cq *cq)
cq->sw_wptr++;
}
-void cxio_flush_rq(struct t3_wq *wq, struct t3_cq *cq, int count)
+int cxio_flush_rq(struct t3_wq *wq, struct t3_cq *cq, int count)
{
u32 ptr;
+ int flushed = 0;
PDBG("%s wq %p cq %p\n", __func__, wq, cq);
@@ -369,8 +370,11 @@ void cxio_flush_rq(struct t3_wq *wq, struct t3_cq *cq, int count)
PDBG("%s rq_rptr %u rq_wptr %u skip count %u\n", __func__,
wq->rq_rptr, wq->rq_wptr, count);
ptr = wq->rq_rptr + count;
- while (ptr++ != wq->rq_wptr)
+ while (ptr++ != wq->rq_wptr) {
insert_recv_cqe(wq, cq);
+ flushed++;
+ }
+ return flushed;
}
static void insert_sq_cqe(struct t3_wq *wq, struct t3_cq *cq,
@@ -394,9 +398,10 @@ static void insert_sq_cqe(struct t3_wq *wq, struct t3_cq *cq,
cq->sw_wptr++;
}
-void cxio_flush_sq(struct t3_wq *wq, struct t3_cq *cq, int count)
+int cxio_flush_sq(struct t3_wq *wq, struct t3_cq *cq, int count)
{
__u32 ptr;
+ int flushed = 0;
struct t3_swsq *sqp = wq->sq + Q_PTR2IDX(wq->sq_rptr, wq->sq_size_log2);
ptr = wq->sq_rptr + count;
@@ -405,7 +410,9 @@ void cxio_flush_sq(struct t3_wq *wq, struct t3_cq *cq, int count)
insert_sq_cqe(wq, cq, sqp);
sqp++;
ptr++;
+ flushed++;
}
+ return flushed;
}
/*
diff --git a/drivers/infiniband/hw/cxgb3/cxio_hal.h b/drivers/infiniband/hw/cxgb3/cxio_hal.h
index 2bcff7f..69ab08e 100644
--- a/drivers/infiniband/hw/cxgb3/cxio_hal.h
+++ b/drivers/infiniband/hw/cxgb3/cxio_hal.h
@@ -173,8 +173,8 @@ u32 cxio_hal_get_pdid(struct cxio_hal_resource *rscp);
void cxio_hal_put_pdid(struct cxio_hal_resource *rscp, u32 pdid);
int __init cxio_hal_init(void);
void __exit cxio_hal_exit(void);
-void cxio_flush_rq(struct t3_wq *wq, struct t3_cq *cq, int count);
-void cxio_flush_sq(struct t3_wq *wq, struct t3_cq *cq, int count);
+int cxio_flush_rq(struct t3_wq *wq, struct t3_cq *cq, int count);
+int cxio_flush_sq(struct t3_wq *wq, struct t3_cq *cq, int count);
void cxio_count_rcqes(struct t3_cq *cq, struct t3_wq *wq, int *count);
void cxio_count_scqes(struct t3_cq *cq, struct t3_wq *wq, int *count);
void cxio_flush_hw_cq(struct t3_cq *cq);
diff --git a/drivers/infiniband/hw/cxgb3/iwch_cm.c b/drivers/infiniband/hw/cxgb3/iwch_cm.c
index d44a6df..c325c44 100644
--- a/drivers/infiniband/hw/cxgb3/iwch_cm.c
+++ b/drivers/infiniband/hw/cxgb3/iwch_cm.c
@@ -67,10 +67,10 @@ int peer2peer = 0;
module_param(peer2peer, int, 0644);
MODULE_PARM_DESC(peer2peer, "Support peer2peer ULPs (default=0)");
-static int ep_timeout_secs = 10;
+static int ep_timeout_secs = 60;
module_param(ep_timeout_secs, int, 0644);
MODULE_PARM_DESC(ep_timeout_secs, "CM Endpoint operation timeout "
- "in seconds (default=10)");
+ "in seconds (default=60)");
static int mpa_rev = 1;
module_param(mpa_rev, int, 0644);
@@ -1650,8 +1650,8 @@ static int close_con_rpl(struct t3cdev *tdev, struct sk_buff *skb, void *ctx)
release = 1;
break;
case ABORTING:
- break;
case DEAD:
+ break;
default:
BUG_ON(1);
break;
diff --git a/drivers/infiniband/hw/cxgb3/iwch_qp.c b/drivers/infiniband/hw/cxgb3/iwch_qp.c
index 9b4be88..79dbe5b 100644
--- a/drivers/infiniband/hw/cxgb3/iwch_qp.c
+++ b/drivers/infiniband/hw/cxgb3/iwch_qp.c
@@ -655,6 +655,7 @@ static void __flush_qp(struct iwch_qp *qhp, unsigned long *flag)
{
struct iwch_cq *rchp, *schp;
int count;
+ int flushed;
rchp = get_chp(qhp->rhp, qhp->attr.rcq);
schp = get_chp(qhp->rhp, qhp->attr.scq);
@@ -669,20 +670,22 @@ static void __flush_qp(struct iwch_qp *qhp, unsigned long *flag)
spin_lock(&qhp->lock);
cxio_flush_hw_cq(&rchp->cq);
cxio_count_rcqes(&rchp->cq, &qhp->wq, &count);
- cxio_flush_rq(&qhp->wq, &rchp->cq, count);
+ flushed = cxio_flush_rq(&qhp->wq, &rchp->cq, count);
spin_unlock(&qhp->lock);
spin_unlock_irqrestore(&rchp->lock, *flag);
- (*rchp->ibcq.comp_handler)(&rchp->ibcq, rchp->ibcq.cq_context);
+ if (flushed)
+ (*rchp->ibcq.comp_handler)(&rchp->ibcq, rchp->ibcq.cq_context);
/* locking heirarchy: cq lock first, then qp lock. */
spin_lock_irqsave(&schp->lock, *flag);
spin_lock(&qhp->lock);
cxio_flush_hw_cq(&schp->cq);
cxio_count_scqes(&schp->cq, &qhp->wq, &count);
- cxio_flush_sq(&qhp->wq, &schp->cq, count);
+ flushed = cxio_flush_sq(&qhp->wq, &schp->cq, count);
spin_unlock(&qhp->lock);
spin_unlock_irqrestore(&schp->lock, *flag);
- (*schp->ibcq.comp_handler)(&schp->ibcq, schp->ibcq.cq_context);
+ if (flushed)
+ (*schp->ibcq.comp_handler)(&schp->ibcq, schp->ibcq.cq_context);
/* deref */
if (atomic_dec_and_test(&qhp->refcnt))
@@ -880,7 +883,6 @@ int iwch_modify_qp(struct iwch_dev *rhp, struct iwch_qp *qhp,
ep = qhp->ep;
get_ep(&ep->com);
}
- flush_qp(qhp, &flag);
break;
case IWCH_QP_STATE_TERMINATE:
qhp->attr.state = IWCH_QP_STATE_TERMINATE;
@@ -911,6 +913,7 @@ int iwch_modify_qp(struct iwch_dev *rhp, struct iwch_qp *qhp,
}
switch (attrs->next_state) {
case IWCH_QP_STATE_IDLE:
+ flush_qp(qhp, &flag);
qhp->attr.state = IWCH_QP_STATE_IDLE;
qhp->attr.llp_stream_handle = NULL;
put_ep(&qhp->ep->com);
diff --git a/drivers/infiniband/hw/ehca/ehca_hca.c b/drivers/infiniband/hw/ehca/ehca_hca.c
index 2515cbd..bc3b37d 100644
--- a/drivers/infiniband/hw/ehca/ehca_hca.c
+++ b/drivers/infiniband/hw/ehca/ehca_hca.c
@@ -101,7 +101,6 @@ int ehca_query_device(struct ib_device *ibdev, struct ib_device_attr *props)
props->max_ee = limit_uint(rblock->max_rd_ee_context);
props->max_rdd = limit_uint(rblock->max_rd_domain);
props->max_fmr = limit_uint(rblock->max_mr);
- props->local_ca_ack_delay = limit_uint(rblock->local_ca_ack_delay);
props->max_qp_rd_atom = limit_uint(rblock->max_rr_qp);
props->max_ee_rd_atom = limit_uint(rblock->max_rr_ee_context);
props->max_res_rd_atom = limit_uint(rblock->max_rr_hca);
@@ -115,7 +114,7 @@ int ehca_query_device(struct ib_device *ibdev, struct ib_device_attr *props)
}
props->max_pkeys = 16;
- props->local_ca_ack_delay = limit_uint(rblock->local_ca_ack_delay);
+ props->local_ca_ack_delay = min_t(u8, rblock->local_ca_ack_delay, 255);
props->max_raw_ipv6_qp = limit_uint(rblock->max_raw_ipv6_qp);
props->max_raw_ethy_qp = limit_uint(rblock->max_raw_ethy_qp);
props->max_mcast_grp = limit_uint(rblock->max_mcast_grp);
@@ -136,7 +135,7 @@ query_device1:
return ret;
}
-static int map_mtu(struct ehca_shca *shca, u32 fw_mtu)
+static enum ib_mtu map_mtu(struct ehca_shca *shca, u32 fw_mtu)
{
switch (fw_mtu) {
case 0x1:
@@ -156,7 +155,7 @@ static int map_mtu(struct ehca_shca *shca, u32 fw_mtu)
}
}
-static int map_number_of_vls(struct ehca_shca *shca, u32 vl_cap)
+static u8 map_number_of_vls(struct ehca_shca *shca, u32 vl_cap)
{
switch (vl_cap) {
case 0x1:
diff --git a/drivers/infiniband/hw/mlx4/cq.c b/drivers/infiniband/hw/mlx4/cq.c
index 2f199c5..4521319 100644
--- a/drivers/infiniband/hw/mlx4/cq.c
+++ b/drivers/infiniband/hw/mlx4/cq.c
@@ -246,7 +246,7 @@ err_mtt:
if (context)
ib_umem_release(cq->umem);
else
- mlx4_ib_free_cq_buf(dev, &cq->buf, entries);
+ mlx4_ib_free_cq_buf(dev, &cq->buf, cq->ibcq.cqe);
err_db:
if (!context)
@@ -434,7 +434,7 @@ int mlx4_ib_destroy_cq(struct ib_cq *cq)
mlx4_ib_db_unmap_user(to_mucontext(cq->uobject->context), &mcq->db);
ib_umem_release(mcq->umem);
} else {
- mlx4_ib_free_cq_buf(dev, &mcq->buf, cq->cqe + 1);
+ mlx4_ib_free_cq_buf(dev, &mcq->buf, cq->cqe);
mlx4_db_free(dev->dev, &mcq->db);
}
diff --git a/drivers/infiniband/ulp/ipoib/ipoib.h b/drivers/infiniband/ulp/ipoib/ipoib.h
index 9044f88..ca126fc 100644
--- a/drivers/infiniband/ulp/ipoib/ipoib.h
+++ b/drivers/infiniband/ulp/ipoib/ipoib.h
@@ -334,6 +334,7 @@ struct ipoib_dev_priv {
#endif
int hca_caps;
struct ipoib_ethtool_st ethtool;
+ struct timer_list poll_timer;
};
struct ipoib_ah {
@@ -404,6 +405,7 @@ extern struct workqueue_struct *ipoib_workqueue;
int ipoib_poll(struct napi_struct *napi, int budget);
void ipoib_ib_completion(struct ib_cq *cq, void *dev_ptr);
+void ipoib_send_comp_handler(struct ib_cq *cq, void *dev_ptr);
struct ipoib_ah *ipoib_create_ah(struct net_device *dev,
struct ib_pd *pd, struct ib_ah_attr *attr);
diff --git a/drivers/infiniband/ulp/ipoib/ipoib_ib.c b/drivers/infiniband/ulp/ipoib/ipoib_ib.c
index 97b815c..f429bce 100644
--- a/drivers/infiniband/ulp/ipoib/ipoib_ib.c
+++ b/drivers/infiniband/ulp/ipoib/ipoib_ib.c
@@ -461,6 +461,26 @@ void ipoib_ib_completion(struct ib_cq *cq, void *dev_ptr)
netif_rx_schedule(dev, &priv->napi);
}
+static void drain_tx_cq(struct net_device *dev)
+{
+ struct ipoib_dev_priv *priv = netdev_priv(dev);
+ unsigned long flags;
+
+ spin_lock_irqsave(&priv->tx_lock, flags);
+ while (poll_tx(priv))
+ ; /* nothing */
+
+ if (netif_queue_stopped(dev))
+ mod_timer(&priv->poll_timer, jiffies + 1);
+
+ spin_unlock_irqrestore(&priv->tx_lock, flags);
+}
+
+void ipoib_send_comp_handler(struct ib_cq *cq, void *dev_ptr)
+{
+ drain_tx_cq((struct net_device *)dev_ptr);
+}
+
static inline int post_send(struct ipoib_dev_priv *priv,
unsigned int wr_id,
struct ib_ah *address, u32 qpn,
@@ -555,12 +575,22 @@ void ipoib_send(struct net_device *dev, struct sk_buff *skb,
else
priv->tx_wr.send_flags &= ~IB_SEND_IP_CSUM;
+ if (++priv->tx_outstanding == ipoib_sendq_size) {
+ ipoib_dbg(priv, "TX ring full, stopping kernel net queue\n");
+ if (ib_req_notify_cq(priv->send_cq, IB_CQ_NEXT_COMP))
+ ipoib_warn(priv, "request notify on send CQ failed\n");
+ netif_stop_queue(dev);
+ }
+
if (unlikely(post_send(priv, priv->tx_head & (ipoib_sendq_size - 1),
address->ah, qpn, tx_req, phead, hlen))) {
ipoib_warn(priv, "post_send failed\n");
++dev->stats.tx_errors;
+ --priv->tx_outstanding;
ipoib_dma_unmap_tx(priv->ca, tx_req);
dev_kfree_skb_any(skb);
+ if (netif_queue_stopped(dev))
+ netif_wake_queue(dev);
} else {
dev->trans_start = jiffies;
@@ -568,14 +598,11 @@ void ipoib_send(struct net_device *dev, struct sk_buff *skb,
++priv->tx_head;
skb_orphan(skb);
- if (++priv->tx_outstanding == ipoib_sendq_size) {
- ipoib_dbg(priv, "TX ring full, stopping kernel net queue\n");
- netif_stop_queue(dev);
- }
}
if (unlikely(priv->tx_outstanding > MAX_SEND_CQE))
- poll_tx(priv);
+ while (poll_tx(priv))
+ ; /* nothing */
}
static void __ipoib_reap_ah(struct net_device *dev)
@@ -609,6 +636,11 @@ void ipoib_reap_ah(struct work_struct *work)
round_jiffies_relative(HZ));
}
+static void ipoib_ib_tx_timer_func(unsigned long ctx)
+{
+ drain_tx_cq((struct net_device *)ctx);
+}
+
int ipoib_ib_dev_open(struct net_device *dev)
{
struct ipoib_dev_priv *priv = netdev_priv(dev);
@@ -645,6 +677,10 @@ int ipoib_ib_dev_open(struct net_device *dev)
queue_delayed_work(ipoib_workqueue, &priv->ah_reap_task,
round_jiffies_relative(HZ));
+ init_timer(&priv->poll_timer);
+ priv->poll_timer.function = ipoib_ib_tx_timer_func;
+ priv->poll_timer.data = (unsigned long)dev;
+
set_bit(IPOIB_FLAG_INITIALIZED, &priv->flags);
return 0;
@@ -810,6 +846,7 @@ int ipoib_ib_dev_stop(struct net_device *dev, int flush)
ipoib_dbg(priv, "All sends and receives done.\n");
timeout:
+ del_timer_sync(&priv->poll_timer);
qp_attr.qp_state = IB_QPS_RESET;
if (ib_modify_qp(priv->qp, &qp_attr, IB_QP_STATE))
ipoib_warn(priv, "Failed to modify QP to RESET state\n");
diff --git a/drivers/infiniband/ulp/ipoib/ipoib_verbs.c b/drivers/infiniband/ulp/ipoib/ipoib_verbs.c
index c1e7ece..8766d29 100644
--- a/drivers/infiniband/ulp/ipoib/ipoib_verbs.c
+++ b/drivers/infiniband/ulp/ipoib/ipoib_verbs.c
@@ -187,7 +187,8 @@ int ipoib_transport_dev_init(struct net_device *dev, struct ib_device *ca)
goto out_free_mr;
}
- priv->send_cq = ib_create_cq(priv->ca, NULL, NULL, dev, ipoib_sendq_size, 0);
+ priv->send_cq = ib_create_cq(priv->ca, ipoib_send_comp_handler, NULL,
+ dev, ipoib_sendq_size, 0);
if (IS_ERR(priv->send_cq)) {
printk(KERN_WARNING "%s: failed to create send CQ\n", ca->name);
goto out_free_recv_cq;
diff --git a/drivers/net/mlx4/mr.c b/drivers/net/mlx4/mr.c
index cb46446..03a9abc 100644
--- a/drivers/net/mlx4/mr.c
+++ b/drivers/net/mlx4/mr.c
@@ -551,7 +551,7 @@ int mlx4_fmr_alloc(struct mlx4_dev *dev, u32 pd, u32 access, int max_pages,
u64 mtt_seg;
int err = -ENOMEM;
- if (page_shift < 12 || page_shift >= 32)
+ if (page_shift < (ffs(dev->caps.page_size_cap) - 1) || page_shift >= 32)
return -EINVAL;
/* All MTTs must fit in the same page */
^ permalink raw reply related [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
@ 2008-05-01 3:46 Roland Dreier
0 siblings, 0 replies; 223+ messages in thread
From: Roland Dreier @ 2008-05-01 3:46 UTC (permalink / raw)
To: torvalds, akpm; +Cc: general, linux-kernel
Linus, please pull from
master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This tree is also available from kernel.org mirrors at:
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This will get a couple of fixes for medium-impact bugs. If they can go
into -rc1, great; otherwise the world won't end if they end up in -rc2.
Eli Cohen (1):
IB/ipoib: Fix transmit queue stalling forever
Roland Dreier (1):
IB/mlx4: Fix off-by-one errors in calls to mlx4_ib_free_cq_buf()
drivers/infiniband/hw/mlx4/cq.c | 4 +-
drivers/infiniband/ulp/ipoib/ipoib.h | 2 +
drivers/infiniband/ulp/ipoib/ipoib_ib.c | 47 +++++++++++++++++++++++++---
drivers/infiniband/ulp/ipoib/ipoib_verbs.c | 3 +-
4 files changed, 48 insertions(+), 8 deletions(-)
diff --git a/drivers/infiniband/hw/mlx4/cq.c b/drivers/infiniband/hw/mlx4/cq.c
index 2f199c5..4521319 100644
--- a/drivers/infiniband/hw/mlx4/cq.c
+++ b/drivers/infiniband/hw/mlx4/cq.c
@@ -246,7 +246,7 @@ err_mtt:
if (context)
ib_umem_release(cq->umem);
else
- mlx4_ib_free_cq_buf(dev, &cq->buf, entries);
+ mlx4_ib_free_cq_buf(dev, &cq->buf, cq->ibcq.cqe);
err_db:
if (!context)
@@ -434,7 +434,7 @@ int mlx4_ib_destroy_cq(struct ib_cq *cq)
mlx4_ib_db_unmap_user(to_mucontext(cq->uobject->context), &mcq->db);
ib_umem_release(mcq->umem);
} else {
- mlx4_ib_free_cq_buf(dev, &mcq->buf, cq->cqe + 1);
+ mlx4_ib_free_cq_buf(dev, &mcq->buf, cq->cqe);
mlx4_db_free(dev->dev, &mcq->db);
}
diff --git a/drivers/infiniband/ulp/ipoib/ipoib.h b/drivers/infiniband/ulp/ipoib/ipoib.h
index 9044f88..ca126fc 100644
--- a/drivers/infiniband/ulp/ipoib/ipoib.h
+++ b/drivers/infiniband/ulp/ipoib/ipoib.h
@@ -334,6 +334,7 @@ struct ipoib_dev_priv {
#endif
int hca_caps;
struct ipoib_ethtool_st ethtool;
+ struct timer_list poll_timer;
};
struct ipoib_ah {
@@ -404,6 +405,7 @@ extern struct workqueue_struct *ipoib_workqueue;
int ipoib_poll(struct napi_struct *napi, int budget);
void ipoib_ib_completion(struct ib_cq *cq, void *dev_ptr);
+void ipoib_send_comp_handler(struct ib_cq *cq, void *dev_ptr);
struct ipoib_ah *ipoib_create_ah(struct net_device *dev,
struct ib_pd *pd, struct ib_ah_attr *attr);
diff --git a/drivers/infiniband/ulp/ipoib/ipoib_ib.c b/drivers/infiniband/ulp/ipoib/ipoib_ib.c
index 97b815c..f429bce 100644
--- a/drivers/infiniband/ulp/ipoib/ipoib_ib.c
+++ b/drivers/infiniband/ulp/ipoib/ipoib_ib.c
@@ -461,6 +461,26 @@ void ipoib_ib_completion(struct ib_cq *cq, void *dev_ptr)
netif_rx_schedule(dev, &priv->napi);
}
+static void drain_tx_cq(struct net_device *dev)
+{
+ struct ipoib_dev_priv *priv = netdev_priv(dev);
+ unsigned long flags;
+
+ spin_lock_irqsave(&priv->tx_lock, flags);
+ while (poll_tx(priv))
+ ; /* nothing */
+
+ if (netif_queue_stopped(dev))
+ mod_timer(&priv->poll_timer, jiffies + 1);
+
+ spin_unlock_irqrestore(&priv->tx_lock, flags);
+}
+
+void ipoib_send_comp_handler(struct ib_cq *cq, void *dev_ptr)
+{
+ drain_tx_cq((struct net_device *)dev_ptr);
+}
+
static inline int post_send(struct ipoib_dev_priv *priv,
unsigned int wr_id,
struct ib_ah *address, u32 qpn,
@@ -555,12 +575,22 @@ void ipoib_send(struct net_device *dev, struct sk_buff *skb,
else
priv->tx_wr.send_flags &= ~IB_SEND_IP_CSUM;
+ if (++priv->tx_outstanding == ipoib_sendq_size) {
+ ipoib_dbg(priv, "TX ring full, stopping kernel net queue\n");
+ if (ib_req_notify_cq(priv->send_cq, IB_CQ_NEXT_COMP))
+ ipoib_warn(priv, "request notify on send CQ failed\n");
+ netif_stop_queue(dev);
+ }
+
if (unlikely(post_send(priv, priv->tx_head & (ipoib_sendq_size - 1),
address->ah, qpn, tx_req, phead, hlen))) {
ipoib_warn(priv, "post_send failed\n");
++dev->stats.tx_errors;
+ --priv->tx_outstanding;
ipoib_dma_unmap_tx(priv->ca, tx_req);
dev_kfree_skb_any(skb);
+ if (netif_queue_stopped(dev))
+ netif_wake_queue(dev);
} else {
dev->trans_start = jiffies;
@@ -568,14 +598,11 @@ void ipoib_send(struct net_device *dev, struct sk_buff *skb,
++priv->tx_head;
skb_orphan(skb);
- if (++priv->tx_outstanding == ipoib_sendq_size) {
- ipoib_dbg(priv, "TX ring full, stopping kernel net queue\n");
- netif_stop_queue(dev);
- }
}
if (unlikely(priv->tx_outstanding > MAX_SEND_CQE))
- poll_tx(priv);
+ while (poll_tx(priv))
+ ; /* nothing */
}
static void __ipoib_reap_ah(struct net_device *dev)
@@ -609,6 +636,11 @@ void ipoib_reap_ah(struct work_struct *work)
round_jiffies_relative(HZ));
}
+static void ipoib_ib_tx_timer_func(unsigned long ctx)
+{
+ drain_tx_cq((struct net_device *)ctx);
+}
+
int ipoib_ib_dev_open(struct net_device *dev)
{
struct ipoib_dev_priv *priv = netdev_priv(dev);
@@ -645,6 +677,10 @@ int ipoib_ib_dev_open(struct net_device *dev)
queue_delayed_work(ipoib_workqueue, &priv->ah_reap_task,
round_jiffies_relative(HZ));
+ init_timer(&priv->poll_timer);
+ priv->poll_timer.function = ipoib_ib_tx_timer_func;
+ priv->poll_timer.data = (unsigned long)dev;
+
set_bit(IPOIB_FLAG_INITIALIZED, &priv->flags);
return 0;
@@ -810,6 +846,7 @@ int ipoib_ib_dev_stop(struct net_device *dev, int flush)
ipoib_dbg(priv, "All sends and receives done.\n");
timeout:
+ del_timer_sync(&priv->poll_timer);
qp_attr.qp_state = IB_QPS_RESET;
if (ib_modify_qp(priv->qp, &qp_attr, IB_QP_STATE))
ipoib_warn(priv, "Failed to modify QP to RESET state\n");
diff --git a/drivers/infiniband/ulp/ipoib/ipoib_verbs.c b/drivers/infiniband/ulp/ipoib/ipoib_verbs.c
index c1e7ece..8766d29 100644
--- a/drivers/infiniband/ulp/ipoib/ipoib_verbs.c
+++ b/drivers/infiniband/ulp/ipoib/ipoib_verbs.c
@@ -187,7 +187,8 @@ int ipoib_transport_dev_init(struct net_device *dev, struct ib_device *ca)
goto out_free_mr;
}
- priv->send_cq = ib_create_cq(priv->ca, NULL, NULL, dev, ipoib_sendq_size, 0);
+ priv->send_cq = ib_create_cq(priv->ca, ipoib_send_comp_handler, NULL,
+ dev, ipoib_sendq_size, 0);
if (IS_ERR(priv->send_cq)) {
printk(KERN_WARNING "%s: failed to create send CQ\n", ca->name);
goto out_free_recv_cq;
^ permalink raw reply related [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
@ 2008-04-29 20:57 Roland Dreier
0 siblings, 0 replies; 223+ messages in thread
From: Roland Dreier @ 2008-04-29 20:57 UTC (permalink / raw)
To: torvalds, akpm; +Cc: general, linux-kernel
Linus, please pull from
master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This tree is also available from kernel.org mirrors at:
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This will get a last batch of changes before 2.6.26-rc1:
Eli Cohen (2):
IPoIB: Use separate CQ for UD send completions
IPoIB: Copy child MTU from parent
Eli Dorfman (2):
IB/iser: Move high-volume debug output to higher debug level
IB/iser: Count FMR alignment violations per session
Eric Schneider (1):
RDMA/nes: Add support for SFP+ PHY
Faisal Latif (1):
RDMA/nes: Use LRO
Glenn Streiff (1):
RDMA/nes: Formatting cleanup
Hoang-Nam Nguyen (1):
IB/ehca: handle negative return value from ibmebus_request_irq() properly
Olaf Kirch (2):
mlx4_core: Avoid recycling old FMR R_Keys too soon
IB/mthca: Avoid recycling old FMR R_Keys too soon
Roland Dreier (1):
IB/mthca: Avoid changing userspace ABI to handle DMA write barrier attribute
Stefan Roscher (1):
IB/ehca: Allocate event queue size depending on max number of CQs and QPs
Steve Wise (3):
RDMA/cxgb3: Correctly serialize peer abort path
RDMA/cxgb3: Set the max_mr_size device attribute correctly
RDMA/cxgb3: Support peer-2-peer connection setup
Yevgeny Petrilin (1):
mlx4_core: Add a way to set the "collapsed" CQ flag
drivers/infiniband/hw/cxgb3/cxio_hal.c | 18 ++-
drivers/infiniband/hw/cxgb3/cxio_hal.h | 1 +
drivers/infiniband/hw/cxgb3/cxio_wr.h | 21 ++-
drivers/infiniband/hw/cxgb3/iwch.c | 1 +
drivers/infiniband/hw/cxgb3/iwch.h | 1 +
drivers/infiniband/hw/cxgb3/iwch_cm.c | 167 ++++++++----
drivers/infiniband/hw/cxgb3/iwch_cm.h | 2 +
drivers/infiniband/hw/cxgb3/iwch_provider.c | 2 +-
drivers/infiniband/hw/cxgb3/iwch_provider.h | 3 +
drivers/infiniband/hw/cxgb3/iwch_qp.c | 60 ++++-
drivers/infiniband/hw/ehca/ehca_classes.h | 5 +
drivers/infiniband/hw/ehca/ehca_cq.c | 11 +
drivers/infiniband/hw/ehca/ehca_eq.c | 35 ++--
drivers/infiniband/hw/ehca/ehca_main.c | 36 +++-
drivers/infiniband/hw/ehca/ehca_qp.c | 26 ++-
drivers/infiniband/hw/mlx4/cq.c | 2 +-
drivers/infiniband/hw/mthca/mthca_mr.c | 13 -
drivers/infiniband/hw/mthca/mthca_provider.c | 14 +-
drivers/infiniband/hw/mthca/mthca_provider.h | 1 +
drivers/infiniband/hw/mthca/mthca_user.h | 10 +-
drivers/infiniband/hw/nes/Kconfig | 1 +
drivers/infiniband/hw/nes/nes.c | 4 +
drivers/infiniband/hw/nes/nes.h | 5 +-
drivers/infiniband/hw/nes/nes_cm.c | 8 +-
drivers/infiniband/hw/nes/nes_hw.c | 371 ++++++++++++++++++++------
drivers/infiniband/hw/nes/nes_hw.h | 19 +-
drivers/infiniband/hw/nes/nes_nic.c | 180 ++++++++-----
drivers/infiniband/hw/nes/nes_utils.c | 10 +-
drivers/infiniband/hw/nes/nes_verbs.c | 2 +-
drivers/infiniband/ulp/ipoib/ipoib.h | 7 +-
drivers/infiniband/ulp/ipoib/ipoib_cm.c | 8 +-
drivers/infiniband/ulp/ipoib/ipoib_ethtool.c | 2 +-
drivers/infiniband/ulp/ipoib/ipoib_ib.c | 45 ++--
drivers/infiniband/ulp/ipoib/ipoib_main.c | 3 +-
drivers/infiniband/ulp/ipoib/ipoib_verbs.c | 39 ++-
drivers/infiniband/ulp/ipoib/ipoib_vlan.c | 3 +
drivers/infiniband/ulp/iser/iscsi_iser.c | 4 +-
drivers/infiniband/ulp/iser/iscsi_iser.h | 7 +
drivers/infiniband/ulp/iser/iser_memory.c | 9 +-
drivers/net/cxgb3/version.h | 2 +-
drivers/net/mlx4/cq.c | 4 +-
drivers/net/mlx4/mr.c | 6 -
include/linux/mlx4/device.h | 3 +-
include/scsi/libiscsi.h | 1 +
44 files changed, 845 insertions(+), 327 deletions(-)
^ permalink raw reply [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
@ 2008-04-22 1:26 Roland Dreier
0 siblings, 0 replies; 223+ messages in thread
From: Roland Dreier @ 2008-04-22 1:26 UTC (permalink / raw)
To: torvalds, akpm; +Cc: general, linux-kernel
Linus, please pull from
master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This tree is also available from kernel.org mirrors at:
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This will get a few fixes for various things, including one build fix
for the ipath driver:
Paul Bolle (1):
IB/ipath: Fix module parameter description for disable_sma
Roland Dreier (6):
RDMA/nes: Remove unneeded function declarations
IB/ipath: Remove reference to dev->class_dev
IB/ipath: Build IBA7220 code unconditionally
IB/ipath: Remove dependency on PCI_MSI || HT_IRQ
IB/ipath: Remove tests of PCI_MSI in ipath_iba7220.c
IB/ipath: Correct capitalization "IntX" -> "INTx"
drivers/infiniband/hw/ipath/Kconfig | 2 +-
drivers/infiniband/hw/ipath/Makefile | 6 ++++--
drivers/infiniband/hw/ipath/ipath_driver.c | 2 +-
drivers/infiniband/hw/ipath/ipath_iba7220.c | 23 +++++++++--------------
drivers/infiniband/hw/ipath/ipath_verbs.c | 3 +--
drivers/infiniband/hw/nes/nes.c | 6 ------
drivers/infiniband/hw/nes/nes_nic.c | 9 ---------
7 files changed, 16 insertions(+), 35 deletions(-)
^ permalink raw reply [flat|nested] 223+ messages in thread
* Re: [GIT PULL] please pull infiniband.git
2008-04-17 14:53 Roland Dreier
@ 2008-04-19 8:16 ` Ingo Molnar
0 siblings, 0 replies; 223+ messages in thread
From: Ingo Molnar @ 2008-04-19 8:16 UTC (permalink / raw)
To: Roland Dreier; +Cc: torvalds, akpm, general, linux-kernel
* Roland Dreier <rdreier@cisco.com> wrote:
> IB/ipath: Misc changes to prepare for IB7220 introduction
> IB/ipath: add calls to new 7220 code and enable in build
x86.git auto-testing found that these changes broke the -git build, with
this config:
http://redhat.com/~mingo/misc/config-Sat_Apr_19_09_55_05_CEST_2008.bad
the failure is a link failure:
drivers/built-in.o: In function `ipath_init_one':
ipath_driver.c:(.devinit.text+0x1e5bc): undefined reference to `ipath_init_iba7220_funcs'
disabling CONFIG_INFINIBAND_IPATH=y works this around.
Ingo
^ permalink raw reply [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
@ 2008-04-17 14:53 Roland Dreier
2008-04-19 8:16 ` Ingo Molnar
0 siblings, 1 reply; 223+ messages in thread
From: Roland Dreier @ 2008-04-17 14:53 UTC (permalink / raw)
To: torvalds, akpm; +Cc: general, linux-kernel
Linus, please pull from
master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This tree is also available from kernel.org mirrors at:
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This will get the first batch of things queued for 2.6.26: sparse
cleanups, new HW support for the ipath driver, IPoIB updates, and
miscellaneous fixes all over.
Arthur Jones (7):
IB/ipath: Fix sparse warning about pointer signedness
IB/ipath: Misc sparse warning cleanup
IB/ipath: Provide I/O bus speeds for diagnostic purposes
IB/ipath: Fix link up LED display
IB/ipath: User mode send DMA header file
IB/ipath: User mode send DMA
IB/ipath: Misc changes to prepare for IB7220 introduction
Dave Olson (10):
IB/ipath: Make some constants chip-specific, related cleanup
IB/ipath: Shared context code needs to be sure device is usable
IB/ipath: Enable 4KB MTU
IB/ipath: HW workaround for case where chip can send but not receive
IB/ipath: Make link state transition code ignore (transient) link recovery
IB/ipath: Add support for IBTA 1.2 Heartbeat
IB/ipath: Set LID filtering for HCAs that support it.
IB/ipath: Enable reduced PIO update for HCAs that support it.
IB/ipath: Fix check for no interrupts to reliably fallback to INTx
IB/ipath: add calls to new 7220 code and enable in build
David Dillow (1):
IB/srp: Enforce protocol limit on srp_sg_tablesize
Dotan Barak (3):
IB/core: Check optional verbs before using them
IB/mthca: Update QP state if query QP succeeds
IB/mlx4: Update QP state if query QP succeeds
Eli Cohen (13):
IPoIB: Use checksum offload support if available
IB/mlx4: Add IPoIB checksum offload support
IB/mthca: Add IPoIB checksum offload support
IB/core: Add creation flags to struct ib_qp_init_attr
IB/core: Add IPoIB UD LSO support
IPoIB: Add LSO support
IB/mlx4: Add IPoIB LSO support
IPoIB: Add basic ethtool support
IB/core: Add support for modify CQ
IPoIB: Support modifying IPoIB CQ event moderation
IB/mlx4: Add support for modifying CQ moderation parameters
IB/mlx4: Fix race when detaching a QP from a multicast group
IB/mlx4: Fix incorrect comment
Erez Zilber (2):
IB/iser: Release connection resources on RDMA_CM_EVENT_DEVICE_REMOVAL event
IB/iser: Don't change itt endianness
Harvey Harrison (1):
IB: Replace remaining __FUNCTION__ occurrences with __func__
Hoang-Nam Nguyen (1):
IB/ehca: Remove tgid checking
Jack Morgenstein (3):
mlx4_core: Increase max number of QPs to 128K
IB/mthca: Update module version and release date
IB/mlx4: Update module version and release date
John Gregor (2):
IB/ipath: Head of Line blocking vs forward progress of user apps
IB/ipath: Add code for IBA7220 send DMA
Julia Lawall (1):
RDMA/iwcm: Test rdma_create_id() for IS_ERR rather than 0
Michael Albaugh (5):
IB/ipath: Prevent link-recovery code from negating admin disable
IB/ipath: EEPROM support for 7220 devices, robustness improvements, cleanup
IB/ipath: Allow old and new diagnostic packet formats
IB/ipath: Isolate 7220-specific content
IB/ipath: Support for SerDes portion of IBA7220
Ralph Campbell (18):
IB/ipath: Fix byte order of pioavail in handle_errors()
IB/ipath: Fix error recovery for send buffer status after chip freeze mode
IB/ipath: Don't try to handle freeze mode HW errors if diagnostic mode
IB/ipath: Make debug error message match the constraint that is checked for
IB/ipath: Add code to support multiple link speeds and widths
IB/ipath: Remove useless comments
IB/ipath: Fix sanity checks on QP number of WRs and SGEs
IB/ipath: Change the module author
IB/ipath: Remove some useless (void) casts
IB/ipath: Make send buffers available for kernel if not allocated to user
IB/ipath: Use PIO buffer for RC ACKs
IB/ipath: Fix some white space and code style issues
IB/ipath: Add support for 7220 receive queue changes
IB/ipath: Fix up error handling
IB/ipath: Header file changes to support IBA7220
IB/ipath: HCA-specific code to support IBA7220
IB/ipath: Add IBA7220-specific SERDES initialization data
IB/ipath: Update copyright dates for files changed in 2008
Robert P. J. Day (3):
IB: Use shorter list_splice_init() for brevity
RDMA/nes: Use more concise list_for_each_entry()
IB/ipath: Fix time comparison to use time_after_eq()
Roland Dreier (31):
IB/mthca: Formatting cleanups
IB/mlx4: Convert "if(foo)" to "if (foo)"
mlx4_core: Move opening brace of function onto a new line
RDMA/amso1100: Don't use 0UL as a NULL pointer
RDMA/cxgb3: IDR IDs are signed
IB: Make struct ib_uobject.id a signed int
IB/ipath: Fix sparse warning about shadowed symbol
IB/mlx4: Endianness annotations
IB/cm: Endianness annotations
RDMA/ucma: Endian annotation
RDMA/nes: Trivial endianness annotations
RDMA/nes: Delete unused variables
RDMA/amso1100: Start of endianness annotation
RDMA/amso1100: Endian annotate mqsq allocator
mlx4_core: Fix confusion between mlx4_event and mlx4_dev_event enums
IB/uverbs: Don't store struct file * for event files
IB/uverbs: Use alloc_file() instead of get_empty_filp()
RDMA/nes: Remove redundant NULL check in nes_unregister_ofa_device()
RDMA/nes: Remove unused nes_netdev_exit() function
RDMA/nes: Use proper format and cast to print dma_addr_t
RDMA/nes: Make symbols used only in a single source file static
IB/ehca: Make symbols used only in a single source file static
IB/mthca: Avoid integer overflow when dealing with profile size
IB/mthca: Avoid integer overflow when allocating huge ICM table
IB/ipath: Fix PCI config write size used to clear linkctrl error bits
RDMA/nes: Remove session_id from nes_cm stuff
IB/mlx4: Micro-optimize mlx4_ib_post_send()
IB/core: Add support for "send with invalidate" work requests
RDMA/amso1100: Add support for "send with invalidate" work requests
RDMA/nes: Free IRQ before killing tasklet
IPoIB: Handle case when P_Key is deleted and re-added at same index
Stefan Roscher (1):
IB/ehca: Support all ibv_devinfo values in query_device() and query_port()
Tom Tucker (1):
RDMA/amso1100: Add check for NULL reply_msg in c2_intr()
Vladimir Sokolovsky (1):
IB/mlx4: Add support for resizing CQs
drivers/infiniband/core/cm.c | 63 +-
drivers/infiniband/core/cma.c | 2 +-
drivers/infiniband/core/fmr_pool.c | 3 +-
drivers/infiniband/core/ucma.c | 2 +-
drivers/infiniband/core/uverbs.h | 4 +-
drivers/infiniband/core/uverbs_cmd.c | 14 +-
drivers/infiniband/core/uverbs_main.c | 28 +-
drivers/infiniband/core/verbs.c | 14 +-
drivers/infiniband/hw/amso1100/c2.c | 80 +-
drivers/infiniband/hw/amso1100/c2.h | 16 +-
drivers/infiniband/hw/amso1100/c2_ae.c | 10 +-
drivers/infiniband/hw/amso1100/c2_alloc.c | 12 +-
drivers/infiniband/hw/amso1100/c2_cq.c | 4 +-
drivers/infiniband/hw/amso1100/c2_intr.c | 6 +-
drivers/infiniband/hw/amso1100/c2_mm.c | 2 +-
drivers/infiniband/hw/amso1100/c2_mq.c | 4 +-
drivers/infiniband/hw/amso1100/c2_mq.h | 2 +-
drivers/infiniband/hw/amso1100/c2_provider.c | 85 +-
drivers/infiniband/hw/amso1100/c2_qp.c | 30 +-
drivers/infiniband/hw/amso1100/c2_rnic.c | 31 +-
drivers/infiniband/hw/amso1100/c2_vq.c | 2 +-
drivers/infiniband/hw/amso1100/c2_wr.h | 212 +-
drivers/infiniband/hw/cxgb3/cxio_dbg.c | 24 +-
drivers/infiniband/hw/cxgb3/cxio_hal.c | 84 +-
drivers/infiniband/hw/cxgb3/cxio_resource.c | 12 +-
drivers/infiniband/hw/cxgb3/iwch.c | 6 +-
drivers/infiniband/hw/cxgb3/iwch.h | 2 +-
drivers/infiniband/hw/cxgb3/iwch_cm.c | 166 +-
drivers/infiniband/hw/cxgb3/iwch_cm.h | 4 +-
drivers/infiniband/hw/cxgb3/iwch_cq.c | 4 +-
drivers/infiniband/hw/cxgb3/iwch_ev.c | 12 +-
drivers/infiniband/hw/cxgb3/iwch_mem.c | 6 +-
drivers/infiniband/hw/cxgb3/iwch_provider.c | 79 +-
drivers/infiniband/hw/cxgb3/iwch_provider.h | 4 +-
drivers/infiniband/hw/cxgb3/iwch_qp.c | 42 +-
drivers/infiniband/hw/ehca/ehca_av.c | 31 -
drivers/infiniband/hw/ehca/ehca_classes.h | 2 -
drivers/infiniband/hw/ehca/ehca_cq.c | 19 -
drivers/infiniband/hw/ehca/ehca_hca.c | 129 +-
drivers/infiniband/hw/ehca/ehca_main.c | 19 +-
drivers/infiniband/hw/ehca/ehca_mrmw.c | 42 +-
drivers/infiniband/hw/ehca/ehca_pd.c | 11 -
drivers/infiniband/hw/ehca/ehca_qp.c | 51 +-
drivers/infiniband/hw/ehca/ehca_reqs.c | 2 +-
drivers/infiniband/hw/ehca/ehca_tools.h | 16 +-
drivers/infiniband/hw/ehca/ehca_uverbs.c | 19 -
drivers/infiniband/hw/ipath/Makefile | 3 +
drivers/infiniband/hw/ipath/ipath_7220.h | 57 +
drivers/infiniband/hw/ipath/ipath_common.h | 54 +-
drivers/infiniband/hw/ipath/ipath_debug.h | 2 +
drivers/infiniband/hw/ipath/ipath_diag.c | 35 +-
drivers/infiniband/hw/ipath/ipath_driver.c | 1041 +++++++---
drivers/infiniband/hw/ipath/ipath_eeprom.c | 428 ++++-
drivers/infiniband/hw/ipath/ipath_file_ops.c | 176 ++-
drivers/infiniband/hw/ipath/ipath_iba6110.c | 51 +-
drivers/infiniband/hw/ipath/ipath_iba6120.c | 203 ++-
drivers/infiniband/hw/ipath/ipath_iba7220.c | 2571 ++++++++++++++++++++++++
drivers/infiniband/hw/ipath/ipath_init_chip.c | 312 ++--
drivers/infiniband/hw/ipath/ipath_intr.c | 656 ++++---
drivers/infiniband/hw/ipath/ipath_kernel.h | 304 +++-
drivers/infiniband/hw/ipath/ipath_mad.c | 110 +-
drivers/infiniband/hw/ipath/ipath_qp.c | 59 +-
drivers/infiniband/hw/ipath/ipath_rc.c | 67 +-
drivers/infiniband/hw/ipath/ipath_registers.h | 168 +-
drivers/infiniband/hw/ipath/ipath_ruc.c | 22 +-
drivers/infiniband/hw/ipath/ipath_sd7220.c | 1462 ++++++++++++++
drivers/infiniband/hw/ipath/ipath_sd7220_img.c | 1082 ++++++++++
drivers/infiniband/hw/ipath/ipath_sdma.c | 790 ++++++++
drivers/infiniband/hw/ipath/ipath_srq.c | 5 +-
drivers/infiniband/hw/ipath/ipath_stats.c | 33 +-
drivers/infiniband/hw/ipath/ipath_sysfs.c | 104 +-
drivers/infiniband/hw/ipath/ipath_uc.c | 8 +-
drivers/infiniband/hw/ipath/ipath_ud.c | 7 +-
drivers/infiniband/hw/ipath/ipath_user_sdma.c | 879 ++++++++
drivers/infiniband/hw/ipath/ipath_user_sdma.h | 54 +
drivers/infiniband/hw/ipath/ipath_verbs.c | 413 ++++-
drivers/infiniband/hw/ipath/ipath_verbs.h | 32 +-
drivers/infiniband/hw/mlx4/cq.c | 319 +++-
drivers/infiniband/hw/mlx4/mad.c | 2 +-
drivers/infiniband/hw/mlx4/main.c | 25 +-
drivers/infiniband/hw/mlx4/mlx4_ib.h | 15 +
drivers/infiniband/hw/mlx4/qp.c | 117 +-
drivers/infiniband/hw/mthca/mthca_cmd.c | 6 +-
drivers/infiniband/hw/mthca/mthca_cmd.h | 1 +
drivers/infiniband/hw/mthca/mthca_cq.c | 14 +-
drivers/infiniband/hw/mthca/mthca_dev.h | 14 +-
drivers/infiniband/hw/mthca/mthca_eq.c | 4 +-
drivers/infiniband/hw/mthca/mthca_mad.c | 2 +-
drivers/infiniband/hw/mthca/mthca_main.c | 15 +-
drivers/infiniband/hw/mthca/mthca_memfree.c | 6 +-
drivers/infiniband/hw/mthca/mthca_profile.c | 4 +-
drivers/infiniband/hw/mthca/mthca_profile.h | 2 +-
drivers/infiniband/hw/mthca/mthca_provider.c | 5 +-
drivers/infiniband/hw/mthca/mthca_qp.c | 28 +-
drivers/infiniband/hw/mthca/mthca_wqe.h | 16 +-
drivers/infiniband/hw/nes/nes.c | 15 +-
drivers/infiniband/hw/nes/nes.h | 32 +-
drivers/infiniband/hw/nes/nes_cm.c | 131 +-
drivers/infiniband/hw/nes/nes_cm.h | 35 -
drivers/infiniband/hw/nes/nes_hw.c | 49 +-
drivers/infiniband/hw/nes/nes_nic.c | 26 +-
drivers/infiniband/hw/nes/nes_utils.c | 2 +-
drivers/infiniband/hw/nes/nes_verbs.c | 29 +-
drivers/infiniband/ulp/ipoib/Makefile | 3 +-
drivers/infiniband/ulp/ipoib/ipoib.h | 10 +
drivers/infiniband/ulp/ipoib/ipoib_cm.c | 15 +-
drivers/infiniband/ulp/ipoib/ipoib_ethtool.c | 99 +
drivers/infiniband/ulp/ipoib/ipoib_ib.c | 126 +-
drivers/infiniband/ulp/ipoib/ipoib_main.c | 33 +-
drivers/infiniband/ulp/ipoib/ipoib_verbs.c | 3 +
drivers/infiniband/ulp/iser/iser_initiator.c | 4 +-
drivers/infiniband/ulp/iser/iser_verbs.c | 5 +-
drivers/infiniband/ulp/srp/ib_srp.c | 7 +-
drivers/net/mlx4/catas.c | 2 +-
drivers/net/mlx4/cmd.c | 3 +-
drivers/net/mlx4/cq.c | 72 +-
drivers/net/mlx4/eq.c | 5 +-
drivers/net/mlx4/fw.c | 13 +
drivers/net/mlx4/fw.h | 1 +
drivers/net/mlx4/intf.c | 8 +-
drivers/net/mlx4/main.c | 6 +-
drivers/net/mlx4/mcg.c | 12 +-
drivers/net/mlx4/mlx4.h | 4 +-
include/linux/mlx4/cmd.h | 2 +-
include/linux/mlx4/cq.h | 19 +-
include/linux/mlx4/device.h | 1 +
include/linux/mlx4/driver.h | 3 +-
include/linux/mlx4/qp.h | 15 +-
include/rdma/ib_user_verbs.h | 5 +-
include/rdma/ib_verbs.h | 35 +-
net/sunrpc/xprtrdma/verbs.c | 1 -
131 files changed, 11739 insertions(+), 2287 deletions(-)
create mode 100644 drivers/infiniband/hw/ipath/ipath_7220.h
create mode 100644 drivers/infiniband/hw/ipath/ipath_iba7220.c
create mode 100644 drivers/infiniband/hw/ipath/ipath_sd7220.c
create mode 100644 drivers/infiniband/hw/ipath/ipath_sd7220_img.c
create mode 100644 drivers/infiniband/hw/ipath/ipath_sdma.c
create mode 100644 drivers/infiniband/hw/ipath/ipath_user_sdma.c
create mode 100644 drivers/infiniband/hw/ipath/ipath_user_sdma.h
create mode 100644 drivers/infiniband/ulp/ipoib/ipoib_ethtool.c
^ permalink raw reply [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
@ 2008-03-21 21:02 Roland Dreier
0 siblings, 0 replies; 223+ messages in thread
From: Roland Dreier @ 2008-03-21 21:02 UTC (permalink / raw)
To: torvalds, akpm; +Cc: general, linux-kernel
Linus, please pull from
master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This tree is also available from kernel.org mirrors at:
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
Chien Tung (1):
RDMA/nes: Fix MSS calculation on RDMA path
drivers/infiniband/hw/nes/nes_cm.c | 3 ++-
1 files changed, 2 insertions(+), 1 deletions(-)
diff --git a/drivers/infiniband/hw/nes/nes_cm.c b/drivers/infiniband/hw/nes/nes_cm.c
index 39adb26..0bef878 100644
--- a/drivers/infiniband/hw/nes/nes_cm.c
+++ b/drivers/infiniband/hw/nes/nes_cm.c
@@ -40,6 +40,7 @@
#include <linux/tcp.h>
#include <linux/init.h>
#include <linux/if_arp.h>
+#include <linux/if_vlan.h>
#include <linux/notifier.h>
#include <linux/net.h>
#include <linux/types.h>
@@ -1072,7 +1073,7 @@ static struct nes_cm_node *make_cm_node(struct nes_cm_core *cm_core,
ts = current_kernel_time();
cm_node->tcp_cntxt.loc_seq_num = htonl(ts.tv_nsec);
cm_node->tcp_cntxt.mss = nesvnic->max_frame_size - sizeof(struct iphdr) -
- sizeof(struct tcphdr) - ETH_HLEN;
+ sizeof(struct tcphdr) - ETH_HLEN - VLAN_HLEN;
cm_node->tcp_cntxt.rcv_nxt = 0;
/* get a unique session ID , add thread_id to an upcounter to handle race */
atomic_inc(&cm_core->node_cnt);
^ permalink raw reply related [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
@ 2008-03-13 20:15 Roland Dreier
0 siblings, 0 replies; 223+ messages in thread
From: Roland Dreier @ 2008-03-13 20:15 UTC (permalink / raw)
To: torvalds, akpm; +Cc: general, linux-kernel
Linus, please pull from
master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This tree is also available from kernel.org mirrors at:
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This will get some more small post-2.6.25-rc5 fixes, mostly to the
ipath driver but some to IP-over-IB also:
Or Gerlitz (1):
IPoIB: Don't drop multicast sends when they can be queued
Patrick Marchand Latifi (4):
IB/ipath: Fix potentially wrong RNR retry counter returned in ipath_query_qp()
IB/ipath: Fix RC QP initialization
IB/ipath: Fix error completion put on send CQ instead of recv CQ
IB/ipath: Reset the retry counter for RDMA_READ_RESPONSE_MIDDLE packets
Ralph Campbell (1):
IB/ipath: Fix IB compliance problems with link state vs physical state
Roland Dreier (2):
IPoIB/cm: Set tx_wr.num_sge in connected mode post_send()
IPoIB: Allocate priv->tx_ring with vmalloc()
drivers/infiniband/hw/ipath/ipath_common.h | 2 +-
drivers/infiniband/hw/ipath/ipath_driver.c | 28 ++++++++++-------------
drivers/infiniband/hw/ipath/ipath_kernel.h | 1 +
drivers/infiniband/hw/ipath/ipath_mad.c | 7 ++---
drivers/infiniband/hw/ipath/ipath_qp.c | 13 ++++++-----
drivers/infiniband/hw/ipath/ipath_rc.c | 4 +++
drivers/infiniband/hw/ipath/ipath_registers.h | 2 +-
drivers/infiniband/ulp/ipoib/ipoib_cm.c | 9 +++++--
drivers/infiniband/ulp/ipoib/ipoib_main.c | 9 ++++---
drivers/infiniband/ulp/ipoib/ipoib_multicast.c | 2 +-
10 files changed, 41 insertions(+), 36 deletions(-)
diff --git a/drivers/infiniband/hw/ipath/ipath_common.h b/drivers/infiniband/hw/ipath/ipath_common.h
index 4146210..591901a 100644
--- a/drivers/infiniband/hw/ipath/ipath_common.h
+++ b/drivers/infiniband/hw/ipath/ipath_common.h
@@ -75,7 +75,7 @@
#define IPATH_IB_LINKDOWN 0
#define IPATH_IB_LINKARM 1
#define IPATH_IB_LINKACTIVE 2
-#define IPATH_IB_LINKINIT 3
+#define IPATH_IB_LINKDOWN_ONLY 3
#define IPATH_IB_LINKDOWN_SLEEP 4
#define IPATH_IB_LINKDOWN_DISABLE 5
#define IPATH_IB_LINK_LOOPBACK 6 /* enable local loopback */
diff --git a/drivers/infiniband/hw/ipath/ipath_driver.c b/drivers/infiniband/hw/ipath/ipath_driver.c
index d5ff6ca..ca4d0ac 100644
--- a/drivers/infiniband/hw/ipath/ipath_driver.c
+++ b/drivers/infiniband/hw/ipath/ipath_driver.c
@@ -851,8 +851,7 @@ void ipath_disarm_piobufs(struct ipath_devdata *dd, unsigned first,
* -ETIMEDOUT state can have multiple states set, for any of several
* transitions.
*/
-static int ipath_wait_linkstate(struct ipath_devdata *dd, u32 state,
- int msecs)
+int ipath_wait_linkstate(struct ipath_devdata *dd, u32 state, int msecs)
{
dd->ipath_state_wanted = state;
wait_event_interruptible_timeout(ipath_state_wait,
@@ -1656,8 +1655,8 @@ void ipath_cancel_sends(struct ipath_devdata *dd, int restore_sendctrl)
static void ipath_set_ib_lstate(struct ipath_devdata *dd, int which)
{
static const char *what[4] = {
- [0] = "DOWN",
- [INFINIPATH_IBCC_LINKCMD_INIT] = "INIT",
+ [0] = "NOP",
+ [INFINIPATH_IBCC_LINKCMD_DOWN] = "DOWN",
[INFINIPATH_IBCC_LINKCMD_ARMED] = "ARMED",
[INFINIPATH_IBCC_LINKCMD_ACTIVE] = "ACTIVE"
};
@@ -1672,9 +1671,9 @@ static void ipath_set_ib_lstate(struct ipath_devdata *dd, int which)
(dd, dd->ipath_kregs->kr_ibcstatus) >>
INFINIPATH_IBCS_LINKTRAININGSTATE_SHIFT) &
INFINIPATH_IBCS_LINKTRAININGSTATE_MASK]);
- /* flush all queued sends when going to DOWN or INIT, to be sure that
+ /* flush all queued sends when going to DOWN to be sure that
* they don't block MAD packets */
- if (!linkcmd || linkcmd == INFINIPATH_IBCC_LINKCMD_INIT)
+ if (linkcmd == INFINIPATH_IBCC_LINKCMD_DOWN)
ipath_cancel_sends(dd, 1);
ipath_write_kreg(dd, dd->ipath_kregs->kr_ibcctrl,
@@ -1687,6 +1686,13 @@ int ipath_set_linkstate(struct ipath_devdata *dd, u8 newstate)
int ret;
switch (newstate) {
+ case IPATH_IB_LINKDOWN_ONLY:
+ ipath_set_ib_lstate(dd, INFINIPATH_IBCC_LINKCMD_DOWN <<
+ INFINIPATH_IBCC_LINKCMD_SHIFT);
+ /* don't wait */
+ ret = 0;
+ goto bail;
+
case IPATH_IB_LINKDOWN:
ipath_set_ib_lstate(dd, INFINIPATH_IBCC_LINKINITCMD_POLL <<
INFINIPATH_IBCC_LINKINITCMD_SHIFT);
@@ -1709,16 +1715,6 @@ int ipath_set_linkstate(struct ipath_devdata *dd, u8 newstate)
ret = 0;
goto bail;
- case IPATH_IB_LINKINIT:
- if (dd->ipath_flags & IPATH_LINKINIT) {
- ret = 0;
- goto bail;
- }
- ipath_set_ib_lstate(dd, INFINIPATH_IBCC_LINKCMD_INIT <<
- INFINIPATH_IBCC_LINKCMD_SHIFT);
- lstate = IPATH_LINKINIT;
- break;
-
case IPATH_IB_LINKARM:
if (dd->ipath_flags & IPATH_LINKARMED) {
ret = 0;
diff --git a/drivers/infiniband/hw/ipath/ipath_kernel.h b/drivers/infiniband/hw/ipath/ipath_kernel.h
index 4cc0f95..ecf3f7f 100644
--- a/drivers/infiniband/hw/ipath/ipath_kernel.h
+++ b/drivers/infiniband/hw/ipath/ipath_kernel.h
@@ -767,6 +767,7 @@ void ipath_kreceive(struct ipath_portdata *);
int ipath_setrcvhdrsize(struct ipath_devdata *, unsigned);
int ipath_reset_device(int);
void ipath_get_faststats(unsigned long);
+int ipath_wait_linkstate(struct ipath_devdata *, u32, int);
int ipath_set_linkstate(struct ipath_devdata *, u8);
int ipath_set_mtu(struct ipath_devdata *, u16);
int ipath_set_lid(struct ipath_devdata *, u32, u8);
diff --git a/drivers/infiniband/hw/ipath/ipath_mad.c b/drivers/infiniband/hw/ipath/ipath_mad.c
index d98d5f1..b34b91d 100644
--- a/drivers/infiniband/hw/ipath/ipath_mad.c
+++ b/drivers/infiniband/hw/ipath/ipath_mad.c
@@ -555,10 +555,7 @@ static int recv_subn_set_portinfo(struct ib_smp *smp,
/* FALLTHROUGH */
case IB_PORT_DOWN:
if (lstate == 0)
- if (get_linkdowndefaultstate(dd))
- lstate = IPATH_IB_LINKDOWN_SLEEP;
- else
- lstate = IPATH_IB_LINKDOWN;
+ lstate = IPATH_IB_LINKDOWN_ONLY;
else if (lstate == 1)
lstate = IPATH_IB_LINKDOWN_SLEEP;
else if (lstate == 2)
@@ -568,6 +565,8 @@ static int recv_subn_set_portinfo(struct ib_smp *smp,
else
goto err;
ipath_set_linkstate(dd, lstate);
+ ipath_wait_linkstate(dd, IPATH_LINKINIT | IPATH_LINKARMED |
+ IPATH_LINKACTIVE, 1000);
break;
case IB_PORT_ARMED:
ipath_set_linkstate(dd, IPATH_IB_LINKARM);
diff --git a/drivers/infiniband/hw/ipath/ipath_qp.c b/drivers/infiniband/hw/ipath/ipath_qp.c
index 80dc623..087ed31 100644
--- a/drivers/infiniband/hw/ipath/ipath_qp.c
+++ b/drivers/infiniband/hw/ipath/ipath_qp.c
@@ -329,8 +329,9 @@ struct ipath_qp *ipath_lookup_qpn(struct ipath_qp_table *qpt, u32 qpn)
/**
* ipath_reset_qp - initialize the QP state to the reset state
* @qp: the QP to reset
+ * @type: the QP type
*/
-static void ipath_reset_qp(struct ipath_qp *qp)
+static void ipath_reset_qp(struct ipath_qp *qp, enum ib_qp_type type)
{
qp->remote_qpn = 0;
qp->qkey = 0;
@@ -342,7 +343,7 @@ static void ipath_reset_qp(struct ipath_qp *qp)
qp->s_psn = 0;
qp->r_psn = 0;
qp->r_msn = 0;
- if (qp->ibqp.qp_type == IB_QPT_RC) {
+ if (type == IB_QPT_RC) {
qp->s_state = IB_OPCODE_RC_SEND_LAST;
qp->r_state = IB_OPCODE_RC_SEND_LAST;
} else {
@@ -414,7 +415,7 @@ int ipath_error_qp(struct ipath_qp *qp, enum ib_wc_status err)
wc.wr_id = qp->r_wr_id;
wc.opcode = IB_WC_RECV;
wc.status = err;
- ipath_cq_enter(to_icq(qp->ibqp.send_cq), &wc, 1);
+ ipath_cq_enter(to_icq(qp->ibqp.recv_cq), &wc, 1);
}
wc.status = IB_WC_WR_FLUSH_ERR;
@@ -534,7 +535,7 @@ int ipath_modify_qp(struct ib_qp *ibqp, struct ib_qp_attr *attr,
switch (new_state) {
case IB_QPS_RESET:
- ipath_reset_qp(qp);
+ ipath_reset_qp(qp, ibqp->qp_type);
break;
case IB_QPS_ERR:
@@ -647,7 +648,7 @@ int ipath_query_qp(struct ib_qp *ibqp, struct ib_qp_attr *attr,
attr->port_num = 1;
attr->timeout = qp->timeout;
attr->retry_cnt = qp->s_retry_cnt;
- attr->rnr_retry = qp->s_rnr_retry;
+ attr->rnr_retry = qp->s_rnr_retry_cnt;
attr->alt_port_num = 0;
attr->alt_timeout = 0;
@@ -839,7 +840,7 @@ struct ib_qp *ipath_create_qp(struct ib_pd *ibpd,
goto bail_qp;
}
qp->ip = NULL;
- ipath_reset_qp(qp);
+ ipath_reset_qp(qp, init_attr->qp_type);
break;
default:
diff --git a/drivers/infiniband/hw/ipath/ipath_rc.c b/drivers/infiniband/hw/ipath/ipath_rc.c
index 459e46e..40f3e37 100644
--- a/drivers/infiniband/hw/ipath/ipath_rc.c
+++ b/drivers/infiniband/hw/ipath/ipath_rc.c
@@ -1196,6 +1196,10 @@ static inline void ipath_rc_rcv_resp(struct ipath_ibdev *dev,
list_move_tail(&qp->timerwait,
&dev->pending[dev->pending_index]);
spin_unlock(&dev->pending_lock);
+
+ if (opcode == OP(RDMA_READ_RESPONSE_MIDDLE))
+ qp->s_retry = qp->s_retry_cnt;
+
/*
* Update the RDMA receive state but do the copy w/o
* holding the locks and blocking interrupts.
diff --git a/drivers/infiniband/hw/ipath/ipath_registers.h b/drivers/infiniband/hw/ipath/ipath_registers.h
index 6d2a17f..92ad73a 100644
--- a/drivers/infiniband/hw/ipath/ipath_registers.h
+++ b/drivers/infiniband/hw/ipath/ipath_registers.h
@@ -185,7 +185,7 @@
#define INFINIPATH_IBCC_LINKINITCMD_SLEEP 3
#define INFINIPATH_IBCC_LINKINITCMD_SHIFT 16
#define INFINIPATH_IBCC_LINKCMD_MASK 0x3ULL
-#define INFINIPATH_IBCC_LINKCMD_INIT 1 /* move to 0x11 */
+#define INFINIPATH_IBCC_LINKCMD_DOWN 1 /* move to 0x11 */
#define INFINIPATH_IBCC_LINKCMD_ARMED 2 /* move to 0x21 */
#define INFINIPATH_IBCC_LINKCMD_ACTIVE 3 /* move to 0x31 */
#define INFINIPATH_IBCC_LINKCMD_SHIFT 18
diff --git a/drivers/infiniband/ulp/ipoib/ipoib_cm.c b/drivers/infiniband/ulp/ipoib/ipoib_cm.c
index 52b1beb..2490b2d 100644
--- a/drivers/infiniband/ulp/ipoib/ipoib_cm.c
+++ b/drivers/infiniband/ulp/ipoib/ipoib_cm.c
@@ -38,6 +38,7 @@
#include <net/icmp.h>
#include <linux/icmpv6.h>
#include <linux/delay.h>
+#include <linux/vmalloc.h>
#include "ipoib.h"
@@ -637,6 +638,7 @@ static inline int post_send(struct ipoib_dev_priv *priv,
priv->tx_sge[0].addr = addr;
priv->tx_sge[0].length = len;
+ priv->tx_wr.num_sge = 1;
priv->tx_wr.wr_id = wr_id | IPOIB_OP_CM;
return ib_post_send(tx->qp, &priv->tx_wr, &bad_wr);
@@ -1030,13 +1032,13 @@ static int ipoib_cm_tx_init(struct ipoib_cm_tx *p, u32 qpn,
struct ipoib_dev_priv *priv = netdev_priv(p->dev);
int ret;
- p->tx_ring = kzalloc(ipoib_sendq_size * sizeof *p->tx_ring,
- GFP_KERNEL);
+ p->tx_ring = vmalloc(ipoib_sendq_size * sizeof *p->tx_ring);
if (!p->tx_ring) {
ipoib_warn(priv, "failed to allocate tx ring\n");
ret = -ENOMEM;
goto err_tx;
}
+ memset(p->tx_ring, 0, ipoib_sendq_size * sizeof *p->tx_ring);
p->qp = ipoib_cm_create_tx_qp(p->dev, p);
if (IS_ERR(p->qp)) {
@@ -1077,6 +1079,7 @@ err_id:
ib_destroy_qp(p->qp);
err_qp:
p->qp = NULL;
+ vfree(p->tx_ring);
err_tx:
return ret;
}
@@ -1127,7 +1130,7 @@ timeout:
if (p->qp)
ib_destroy_qp(p->qp);
- kfree(p->tx_ring);
+ vfree(p->tx_ring);
kfree(p);
}
diff --git a/drivers/infiniband/ulp/ipoib/ipoib_main.c b/drivers/infiniband/ulp/ipoib/ipoib_main.c
index f96477a..5728204 100644
--- a/drivers/infiniband/ulp/ipoib/ipoib_main.c
+++ b/drivers/infiniband/ulp/ipoib/ipoib_main.c
@@ -41,6 +41,7 @@
#include <linux/init.h>
#include <linux/slab.h>
#include <linux/kernel.h>
+#include <linux/vmalloc.h>
#include <linux/if_arp.h> /* For ARPHRD_xxx */
@@ -887,13 +888,13 @@ int ipoib_dev_init(struct net_device *dev, struct ib_device *ca, int port)
goto out;
}
- priv->tx_ring = kzalloc(ipoib_sendq_size * sizeof *priv->tx_ring,
- GFP_KERNEL);
+ priv->tx_ring = vmalloc(ipoib_sendq_size * sizeof *priv->tx_ring);
if (!priv->tx_ring) {
printk(KERN_WARNING "%s: failed to allocate TX ring (%d entries)\n",
ca->name, ipoib_sendq_size);
goto out_rx_ring_cleanup;
}
+ memset(priv->tx_ring, 0, ipoib_sendq_size * sizeof *priv->tx_ring);
/* priv->tx_head, tx_tail & tx_outstanding are already 0 */
@@ -903,7 +904,7 @@ int ipoib_dev_init(struct net_device *dev, struct ib_device *ca, int port)
return 0;
out_tx_ring_cleanup:
- kfree(priv->tx_ring);
+ vfree(priv->tx_ring);
out_rx_ring_cleanup:
kfree(priv->rx_ring);
@@ -928,7 +929,7 @@ void ipoib_dev_cleanup(struct net_device *dev)
ipoib_ib_dev_cleanup(dev);
kfree(priv->rx_ring);
- kfree(priv->tx_ring);
+ vfree(priv->tx_ring);
priv->rx_ring = NULL;
priv->tx_ring = NULL;
diff --git a/drivers/infiniband/ulp/ipoib/ipoib_multicast.c b/drivers/infiniband/ulp/ipoib/ipoib_multicast.c
index 2628339..31a53c5 100644
--- a/drivers/infiniband/ulp/ipoib/ipoib_multicast.c
+++ b/drivers/infiniband/ulp/ipoib/ipoib_multicast.c
@@ -650,7 +650,7 @@ void ipoib_mcast_send(struct net_device *dev, void *mgid, struct sk_buff *skb)
*/
spin_lock(&priv->lock);
- if (!test_bit(IPOIB_MCAST_STARTED, &priv->flags) ||
+ if (!test_bit(IPOIB_FLAG_OPER_UP, &priv->flags) ||
!priv->broadcast ||
!test_bit(IPOIB_MCAST_FLAG_ATTACHED, &priv->broadcast->flags)) {
++dev->stats.tx_dropped;
^ permalink raw reply related [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
@ 2008-03-11 4:33 Roland Dreier
0 siblings, 0 replies; 223+ messages in thread
From: Roland Dreier @ 2008-03-11 4:33 UTC (permalink / raw)
To: torvalds, akpm; +Cc: general, linux-kernel
Linus, please pull from
master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This tree is also available from kernel.org mirrors at:
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This will get some more small post-2.6.25-rc5 fixes:
Arne Redlich (2):
IB/iser: Fix list iteration bug
IB/iser: Handle iser_device allocation error gracefully
Arthur Jones (1):
MAINTAINERS: update ipath owner
Jon Mason (2):
RDMA/cxgb3: Return correct max_inline_data when creating a QP
RDMA/cxgb3: Fix iwch_create_cq() off-by-one error
Pete Wyckoff (2):
Revert "IB/fmr_pool: ib_fmr_pool_flush() should flush all dirty FMRs"
IB/fmr_pool: Flush all dirty FMRs from ib_fmr_pool_flush()
Sean Hefty (1):
IB/cm: Flush workqueue when removing device
Steve Wise (1):
RDMA/iwcm: Don't access a cm_id after dropping reference
MAINTAINERS | 2 +-
drivers/infiniband/core/cm.c | 3 +-
drivers/infiniband/core/fmr_pool.c | 38 ++++++++++++---------
drivers/infiniband/core/iwcm.c | 5 ++-
drivers/infiniband/hw/cxgb3/iwch_provider.c | 5 ++-
drivers/infiniband/ulp/iser/iser_verbs.c | 47 ++++++++++++++-------------
6 files changed, 56 insertions(+), 44 deletions(-)
diff --git a/MAINTAINERS b/MAINTAINERS
index fed09b5..f229e16 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -2143,7 +2143,7 @@ L: netdev@vger.kernel.org
S: Maintained
IPATH DRIVER:
-P: Arthur Jones
+P: Ralph Campbell
M: infinipath@qlogic.com
L: general@lists.openfabrics.org
T: git git://git.qlogic.com/ipath-linux-2.6
diff --git a/drivers/infiniband/core/cm.c b/drivers/infiniband/core/cm.c
index b10ade9..4df4051 100644
--- a/drivers/infiniband/core/cm.c
+++ b/drivers/infiniband/core/cm.c
@@ -3759,6 +3759,7 @@ static void cm_remove_one(struct ib_device *device)
port = cm_dev->port[i-1];
ib_modify_port(device, port->port_num, 0, &port_modify);
ib_unregister_mad_agent(port->mad_agent);
+ flush_workqueue(cm.wq);
cm_remove_port_fs(port);
}
kobject_put(&cm_dev->dev_obj);
@@ -3813,6 +3814,7 @@ static void __exit ib_cm_cleanup(void)
cancel_delayed_work(&timewait_info->work.work);
spin_unlock_irq(&cm.lock);
+ ib_unregister_client(&cm_client);
destroy_workqueue(cm.wq);
list_for_each_entry_safe(timewait_info, tmp, &cm.timewait_list, list) {
@@ -3820,7 +3822,6 @@ static void __exit ib_cm_cleanup(void)
kfree(timewait_info);
}
- ib_unregister_client(&cm_client);
class_unregister(&cm_class);
idr_destroy(&cm.local_id_table);
}
diff --git a/drivers/infiniband/core/fmr_pool.c b/drivers/infiniband/core/fmr_pool.c
index 7f00347..06d502c 100644
--- a/drivers/infiniband/core/fmr_pool.c
+++ b/drivers/infiniband/core/fmr_pool.c
@@ -139,7 +139,7 @@ static inline struct ib_pool_fmr *ib_fmr_cache_lookup(struct ib_fmr_pool *pool,
static void ib_fmr_batch_release(struct ib_fmr_pool *pool)
{
int ret;
- struct ib_pool_fmr *fmr, *next;
+ struct ib_pool_fmr *fmr;
LIST_HEAD(unmap_list);
LIST_HEAD(fmr_list);
@@ -158,20 +158,6 @@ static void ib_fmr_batch_release(struct ib_fmr_pool *pool)
#endif
}
- /*
- * The free_list may hold FMRs that have been put there
- * because they haven't reached the max_remap count.
- * Invalidate their mapping as well.
- */
- list_for_each_entry_safe(fmr, next, &pool->free_list, list) {
- if (fmr->remap_count == 0)
- continue;
- hlist_del_init(&fmr->cache_node);
- fmr->remap_count = 0;
- list_add_tail(&fmr->fmr->list, &fmr_list);
- list_move(&fmr->list, &unmap_list);
- }
-
list_splice(&pool->dirty_list, &unmap_list);
INIT_LIST_HEAD(&pool->dirty_list);
pool->dirty_len = 0;
@@ -384,6 +370,11 @@ void ib_destroy_fmr_pool(struct ib_fmr_pool *pool)
i = 0;
list_for_each_entry_safe(fmr, tmp, &pool->free_list, list) {
+ if (fmr->remap_count) {
+ INIT_LIST_HEAD(&fmr_list);
+ list_add_tail(&fmr->fmr->list, &fmr_list);
+ ib_unmap_fmr(&fmr_list);
+ }
ib_dealloc_fmr(fmr->fmr);
list_del(&fmr->list);
kfree(fmr);
@@ -407,8 +398,23 @@ EXPORT_SYMBOL(ib_destroy_fmr_pool);
*/
int ib_flush_fmr_pool(struct ib_fmr_pool *pool)
{
- int serial = atomic_inc_return(&pool->req_ser);
+ int serial;
+ struct ib_pool_fmr *fmr, *next;
+
+ /*
+ * The free_list holds FMRs that may have been used
+ * but have not been remapped enough times to be dirty.
+ * Put them on the dirty list now so that the cleanup
+ * thread will reap them too.
+ */
+ spin_lock_irq(&pool->pool_lock);
+ list_for_each_entry_safe(fmr, next, &pool->free_list, list) {
+ if (fmr->remap_count > 0)
+ list_move(&fmr->list, &pool->dirty_list);
+ }
+ spin_unlock_irq(&pool->pool_lock);
+ serial = atomic_inc_return(&pool->req_ser);
wake_up_process(pool->thread);
if (wait_event_interruptible(pool->force_wait,
diff --git a/drivers/infiniband/core/iwcm.c b/drivers/infiniband/core/iwcm.c
index 223b1aa..81c9195 100644
--- a/drivers/infiniband/core/iwcm.c
+++ b/drivers/infiniband/core/iwcm.c
@@ -839,6 +839,7 @@ static void cm_work_handler(struct work_struct *_work)
unsigned long flags;
int empty;
int ret = 0;
+ int destroy_id;
spin_lock_irqsave(&cm_id_priv->lock, flags);
empty = list_empty(&cm_id_priv->work_list);
@@ -857,9 +858,9 @@ static void cm_work_handler(struct work_struct *_work)
destroy_cm_id(&cm_id_priv->id);
}
BUG_ON(atomic_read(&cm_id_priv->refcount)==0);
+ destroy_id = test_bit(IWCM_F_CALLBACK_DESTROY, &cm_id_priv->flags);
if (iwcm_deref_id(cm_id_priv)) {
- if (test_bit(IWCM_F_CALLBACK_DESTROY,
- &cm_id_priv->flags)) {
+ if (destroy_id) {
BUG_ON(!list_empty(&cm_id_priv->work_list));
free_cm_id(cm_id_priv);
}
diff --git a/drivers/infiniband/hw/cxgb3/iwch_provider.c b/drivers/infiniband/hw/cxgb3/iwch_provider.c
index df1838f..b2ea921 100644
--- a/drivers/infiniband/hw/cxgb3/iwch_provider.c
+++ b/drivers/infiniband/hw/cxgb3/iwch_provider.c
@@ -189,7 +189,7 @@ static struct ib_cq *iwch_create_cq(struct ib_device *ibdev, int entries, int ve
return ERR_PTR(-ENOMEM);
}
chp->rhp = rhp;
- chp->ibcq.cqe = (1 << chp->cq.size_log2) - 1;
+ chp->ibcq.cqe = 1 << chp->cq.size_log2;
spin_lock_init(&chp->lock);
atomic_set(&chp->refcnt, 1);
init_waitqueue_head(&chp->wait);
@@ -819,8 +819,11 @@ static struct ib_qp *iwch_create_qp(struct ib_pd *pd,
kfree(qhp);
return ERR_PTR(-ENOMEM);
}
+
attrs->cap.max_recv_wr = rqsize - 1;
attrs->cap.max_send_wr = sqsize;
+ attrs->cap.max_inline_data = T3_MAX_INLINE;
+
qhp->rhp = rhp;
qhp->attr.pd = php->pdid;
qhp->attr.scq = ((struct iwch_cq *) attrs->send_cq)->cq.cqid;
diff --git a/drivers/infiniband/ulp/iser/iser_verbs.c b/drivers/infiniband/ulp/iser/iser_verbs.c
index 714b8db..993f0a8 100644
--- a/drivers/infiniband/ulp/iser/iser_verbs.c
+++ b/drivers/infiniband/ulp/iser/iser_verbs.c
@@ -237,36 +237,32 @@ static int iser_free_ib_conn_res(struct iser_conn *ib_conn)
static
struct iser_device *iser_device_find_by_ib_device(struct rdma_cm_id *cma_id)
{
- struct list_head *p_list;
- struct iser_device *device = NULL;
+ struct iser_device *device;
mutex_lock(&ig.device_list_mutex);
- p_list = ig.device_list.next;
- while (p_list != &ig.device_list) {
- device = list_entry(p_list, struct iser_device, ig_list);
+ list_for_each_entry(device, &ig.device_list, ig_list)
/* find if there's a match using the node GUID */
if (device->ib_device->node_guid == cma_id->device->node_guid)
- break;
- }
+ goto inc_refcnt;
- if (device == NULL) {
- device = kzalloc(sizeof *device, GFP_KERNEL);
- if (device == NULL)
- goto out;
- /* assign this device to the device */
- device->ib_device = cma_id->device;
- /* init the device and link it into ig device list */
- if (iser_create_device_ib_res(device)) {
- kfree(device);
- device = NULL;
- goto out;
- }
- list_add(&device->ig_list, &ig.device_list);
+ device = kzalloc(sizeof *device, GFP_KERNEL);
+ if (device == NULL)
+ goto out;
+
+ /* assign this device to the device */
+ device->ib_device = cma_id->device;
+ /* init the device and link it into ig device list */
+ if (iser_create_device_ib_res(device)) {
+ kfree(device);
+ device = NULL;
+ goto out;
}
-out:
- BUG_ON(device == NULL);
+ list_add(&device->ig_list, &ig.device_list);
+
+inc_refcnt:
device->refcount++;
+out:
mutex_unlock(&ig.device_list_mutex);
return device;
}
@@ -372,6 +368,12 @@ static void iser_addr_handler(struct rdma_cm_id *cma_id)
int ret;
device = iser_device_find_by_ib_device(cma_id);
+ if (!device) {
+ iser_err("device lookup/creation failed\n");
+ iser_connect_error(cma_id);
+ return;
+ }
+
ib_conn = (struct iser_conn *)cma_id->context;
ib_conn->device = device;
@@ -380,7 +382,6 @@ static void iser_addr_handler(struct rdma_cm_id *cma_id)
iser_err("resolve route failed: %d\n", ret);
iser_connect_error(cma_id);
}
- return;
}
static void iser_route_handler(struct rdma_cm_id *cma_id)
^ permalink raw reply related [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
@ 2008-02-29 22:06 Roland Dreier
0 siblings, 0 replies; 223+ messages in thread
From: Roland Dreier @ 2008-02-29 22:06 UTC (permalink / raw)
To: torvalds, akpm; +Cc: general, linux-kernel
Linus, please pull from
master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This tree is also available from kernel.org mirrors at:
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This will get some more small post-2.6.25-rc3 fixes:
Arthur Jones (1):
MAINTAINERS: update ipath owner
Jon Mason (1):
RDMA/cxgb3: Return correct max_inline_data when creating a QP
Pete Wyckoff (2):
Revert "IB/fmr_pool: ib_fmr_pool_flush() should flush all dirty FMRs"
IB/fmr_pool: Flush all dirty FMRs from ib_fmr_pool_flush()
Sean Hefty (1):
IB/cm: Flush workqueue when removing device
MAINTAINERS | 2 +-
drivers/infiniband/core/cm.c | 3 +-
drivers/infiniband/core/fmr_pool.c | 38 +++++++++++++++-----------
drivers/infiniband/hw/cxgb3/iwch_provider.c | 3 ++
4 files changed, 28 insertions(+), 18 deletions(-)
diff --git a/MAINTAINERS b/MAINTAINERS
index fed09b5..f229e16 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -2143,7 +2143,7 @@ L: netdev@vger.kernel.org
S: Maintained
IPATH DRIVER:
-P: Arthur Jones
+P: Ralph Campbell
M: infinipath@qlogic.com
L: general@lists.openfabrics.org
T: git git://git.qlogic.com/ipath-linux-2.6
diff --git a/drivers/infiniband/core/cm.c b/drivers/infiniband/core/cm.c
index b10ade9..4df4051 100644
--- a/drivers/infiniband/core/cm.c
+++ b/drivers/infiniband/core/cm.c
@@ -3759,6 +3759,7 @@ static void cm_remove_one(struct ib_device *device)
port = cm_dev->port[i-1];
ib_modify_port(device, port->port_num, 0, &port_modify);
ib_unregister_mad_agent(port->mad_agent);
+ flush_workqueue(cm.wq);
cm_remove_port_fs(port);
}
kobject_put(&cm_dev->dev_obj);
@@ -3813,6 +3814,7 @@ static void __exit ib_cm_cleanup(void)
cancel_delayed_work(&timewait_info->work.work);
spin_unlock_irq(&cm.lock);
+ ib_unregister_client(&cm_client);
destroy_workqueue(cm.wq);
list_for_each_entry_safe(timewait_info, tmp, &cm.timewait_list, list) {
@@ -3820,7 +3822,6 @@ static void __exit ib_cm_cleanup(void)
kfree(timewait_info);
}
- ib_unregister_client(&cm_client);
class_unregister(&cm_class);
idr_destroy(&cm.local_id_table);
}
diff --git a/drivers/infiniband/core/fmr_pool.c b/drivers/infiniband/core/fmr_pool.c
index 7f00347..06d502c 100644
--- a/drivers/infiniband/core/fmr_pool.c
+++ b/drivers/infiniband/core/fmr_pool.c
@@ -139,7 +139,7 @@ static inline struct ib_pool_fmr *ib_fmr_cache_lookup(struct ib_fmr_pool *pool,
static void ib_fmr_batch_release(struct ib_fmr_pool *pool)
{
int ret;
- struct ib_pool_fmr *fmr, *next;
+ struct ib_pool_fmr *fmr;
LIST_HEAD(unmap_list);
LIST_HEAD(fmr_list);
@@ -158,20 +158,6 @@ static void ib_fmr_batch_release(struct ib_fmr_pool *pool)
#endif
}
- /*
- * The free_list may hold FMRs that have been put there
- * because they haven't reached the max_remap count.
- * Invalidate their mapping as well.
- */
- list_for_each_entry_safe(fmr, next, &pool->free_list, list) {
- if (fmr->remap_count == 0)
- continue;
- hlist_del_init(&fmr->cache_node);
- fmr->remap_count = 0;
- list_add_tail(&fmr->fmr->list, &fmr_list);
- list_move(&fmr->list, &unmap_list);
- }
-
list_splice(&pool->dirty_list, &unmap_list);
INIT_LIST_HEAD(&pool->dirty_list);
pool->dirty_len = 0;
@@ -384,6 +370,11 @@ void ib_destroy_fmr_pool(struct ib_fmr_pool *pool)
i = 0;
list_for_each_entry_safe(fmr, tmp, &pool->free_list, list) {
+ if (fmr->remap_count) {
+ INIT_LIST_HEAD(&fmr_list);
+ list_add_tail(&fmr->fmr->list, &fmr_list);
+ ib_unmap_fmr(&fmr_list);
+ }
ib_dealloc_fmr(fmr->fmr);
list_del(&fmr->list);
kfree(fmr);
@@ -407,8 +398,23 @@ EXPORT_SYMBOL(ib_destroy_fmr_pool);
*/
int ib_flush_fmr_pool(struct ib_fmr_pool *pool)
{
- int serial = atomic_inc_return(&pool->req_ser);
+ int serial;
+ struct ib_pool_fmr *fmr, *next;
+
+ /*
+ * The free_list holds FMRs that may have been used
+ * but have not been remapped enough times to be dirty.
+ * Put them on the dirty list now so that the cleanup
+ * thread will reap them too.
+ */
+ spin_lock_irq(&pool->pool_lock);
+ list_for_each_entry_safe(fmr, next, &pool->free_list, list) {
+ if (fmr->remap_count > 0)
+ list_move(&fmr->list, &pool->dirty_list);
+ }
+ spin_unlock_irq(&pool->pool_lock);
+ serial = atomic_inc_return(&pool->req_ser);
wake_up_process(pool->thread);
if (wait_event_interruptible(pool->force_wait,
diff --git a/drivers/infiniband/hw/cxgb3/iwch_provider.c b/drivers/infiniband/hw/cxgb3/iwch_provider.c
index df1838f..ee3d63c 100644
--- a/drivers/infiniband/hw/cxgb3/iwch_provider.c
+++ b/drivers/infiniband/hw/cxgb3/iwch_provider.c
@@ -819,8 +819,11 @@ static struct ib_qp *iwch_create_qp(struct ib_pd *pd,
kfree(qhp);
return ERR_PTR(-ENOMEM);
}
+
attrs->cap.max_recv_wr = rqsize - 1;
attrs->cap.max_send_wr = sqsize;
+ attrs->cap.max_inline_data = T3_MAX_INLINE;
+
qhp->rhp = rhp;
qhp->attr.pd = php->pdid;
qhp->attr.scq = ((struct iwch_cq *) attrs->send_cq)->cq.cqid;
^ permalink raw reply related [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
@ 2008-02-27 0:27 Roland Dreier
0 siblings, 0 replies; 223+ messages in thread
From: Roland Dreier @ 2008-02-27 0:27 UTC (permalink / raw)
To: torvalds, akpm; +Cc: general, linux-kernel
Linus, please pull from
master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This tree is also available from kernel.org mirrors at:
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This will get a couple of small post-2.6.25-rc3 fixes, mostly to the
new nes driver:
Adrian Bunk (3):
RDMA/nes: Fix off-by-one
RDMA/nes: Fix a memory leak in schedule_nes_timer()
RDMA/nes: Fix a check-after-use in nes_probe()
Bryan Rosenburg (1):
RDMA/cxgb3: Fix shift calc in build_phys_page_list() for 1-entry page lists
Chien Tung (1):
RDMA/nes: Resurrect error path dead code
Faisal Latif (2):
RDMA/nes: Fix use-after-free in mini_cm_dec_refcnt_listen()
RDMA/nes: Fix CRC endianness for RDMA connection establishment on big-endian
Glenn Streiff (1):
RDMA/nes: Fix use-after-free in nes_create_cq()
John Lacombe (1):
RDMA/nes: Fix interrupt moderation low threshold
Roland Dreier (1):
MAINTAINERS: neteffect update
MAINTAINERS | 2 ++
drivers/infiniband/hw/cxgb3/iwch_mem.c | 10 ++--------
drivers/infiniband/hw/nes/nes.c | 2 +-
drivers/infiniband/hw/nes/nes.h | 15 +++++++++++++++
drivers/infiniband/hw/nes/nes_cm.c | 15 +++++++++------
drivers/infiniband/hw/nes/nes_hw.c | 13 +++++--------
drivers/infiniband/hw/nes/nes_hw.h | 2 +-
drivers/infiniband/hw/nes/nes_verbs.c | 10 ++++------
8 files changed, 39 insertions(+), 30 deletions(-)
^ permalink raw reply [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
@ 2008-02-19 18:51 Roland Dreier
0 siblings, 0 replies; 223+ messages in thread
From: Roland Dreier @ 2008-02-19 18:51 UTC (permalink / raw)
To: torvalds, akpm; +Cc: general, linux-kernel
Linus, please pull from
master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This tree is also available from kernel.org mirrors at:
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This will get a couple of small post-2.6.25-rc2 fixes:
Pradeep Satyanarayana (1):
IPoIB/cm: Fix ipoib_cm_dev_stop() cleanup when drain times out
Roland Dreier (1):
IB/mthca: Free correct MPT on error exit from mthca_fmr_alloc()
drivers/infiniband/hw/mthca/mthca_mr.c | 2 +-
drivers/infiniband/ulp/ipoib/ipoib_cm.c | 10 ++++++----
2 files changed, 7 insertions(+), 5 deletions(-)
diff --git a/drivers/infiniband/hw/mthca/mthca_mr.c b/drivers/infiniband/hw/mthca/mthca_mr.c
index 3b69855..3538da1 100644
--- a/drivers/infiniband/hw/mthca/mthca_mr.c
+++ b/drivers/infiniband/hw/mthca/mthca_mr.c
@@ -686,7 +686,7 @@ err_out_table:
mthca_table_put(dev, dev->mr_table.mpt_table, key);
err_out_mpt_free:
- mthca_free(&dev->mr_table.mpt_alloc, mr->ibmr.lkey);
+ mthca_free(&dev->mr_table.mpt_alloc, key);
return err;
}
diff --git a/drivers/infiniband/ulp/ipoib/ipoib_cm.c b/drivers/infiniband/ulp/ipoib/ipoib_cm.c
index 7dd2ec4..52b1beb 100644
--- a/drivers/infiniband/ulp/ipoib/ipoib_cm.c
+++ b/drivers/infiniband/ulp/ipoib/ipoib_cm.c
@@ -824,7 +824,6 @@ void ipoib_cm_dev_stop(struct net_device *dev)
struct ipoib_dev_priv *priv = netdev_priv(dev);
struct ipoib_cm_rx *p;
unsigned long begin;
- LIST_HEAD(list);
int ret;
if (!IPOIB_CM_SUPPORTED(dev->dev_addr) || !priv->cm.id)
@@ -857,9 +856,12 @@ void ipoib_cm_dev_stop(struct net_device *dev)
/*
* assume the HW is wedged and just free up everything.
*/
- list_splice_init(&priv->cm.rx_flush_list, &list);
- list_splice_init(&priv->cm.rx_error_list, &list);
- list_splice_init(&priv->cm.rx_drain_list, &list);
+ list_splice_init(&priv->cm.rx_flush_list,
+ &priv->cm.rx_reap_list);
+ list_splice_init(&priv->cm.rx_error_list,
+ &priv->cm.rx_reap_list);
+ list_splice_init(&priv->cm.rx_drain_list,
+ &priv->cm.rx_reap_list);
break;
}
spin_unlock_irq(&priv->lock);
^ permalink raw reply related [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
@ 2008-02-18 20:35 Roland Dreier
0 siblings, 0 replies; 223+ messages in thread
From: Roland Dreier @ 2008-02-18 20:35 UTC (permalink / raw)
To: torvalds, akpm; +Cc: general, linux-kernel
Linus, please pull from
master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This tree is also available from kernel.org mirrors at:
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This will get a few post-2.6.25-rc2 fixes, mostly for the new nes driver:
Chien Tung (1):
RDMA/nes: Fix VLAN support
Glenn Streiff (1):
RDMA/nes: Fix MAC interrupt erroneously masked on ifdown
Li Zefan (1):
IB: Fix return value in ib_device_register_sysfs()
Roland Dreier (1):
RDMA/nes: Fix possible array overrun
drivers/infiniband/core/sysfs.c | 4 ++-
drivers/infiniband/hw/nes/nes_nic.c | 62 +++++++++++++++++++++++---------
drivers/infiniband/hw/nes/nes_verbs.c | 2 +-
3 files changed, 48 insertions(+), 20 deletions(-)
diff --git a/drivers/infiniband/core/sysfs.c b/drivers/infiniband/core/sysfs.c
index c864ef7..5a4b2e6 100644
--- a/drivers/infiniband/core/sysfs.c
+++ b/drivers/infiniband/core/sysfs.c
@@ -686,8 +686,10 @@ int ib_device_register_sysfs(struct ib_device *device)
device->ports_parent = kobject_create_and_add("ports",
kobject_get(&class_dev->kobj));
- if (!device->ports_parent)
+ if (!device->ports_parent) {
+ ret = -ENOMEM;
goto err_put;
+ }
if (device->node_type == RDMA_NODE_IB_SWITCH) {
ret = add_port(device, 0);
diff --git a/drivers/infiniband/hw/nes/nes_nic.c b/drivers/infiniband/hw/nes/nes_nic.c
index b6cc265..eee77da 100644
--- a/drivers/infiniband/hw/nes/nes_nic.c
+++ b/drivers/infiniband/hw/nes/nes_nic.c
@@ -148,14 +148,15 @@ static int nes_netdev_open(struct net_device *netdev)
struct nes_device *nesdev = nesvnic->nesdev;
int ret;
int i;
- struct nes_vnic *first_nesvnic;
+ struct nes_vnic *first_nesvnic = NULL;
u32 nic_active_bit;
u32 nic_active;
+ struct list_head *list_pos, *list_temp;
assert(nesdev != NULL);
- first_nesvnic = list_entry(nesdev->nesadapter->nesvnic_list[nesdev->mac_index].next,
- struct nes_vnic, list);
+ if (nesvnic->netdev_open == 1)
+ return 0;
if (netif_msg_ifup(nesvnic))
printk(KERN_INFO PFX "%s: enabling interface\n", netdev->name);
@@ -225,7 +226,18 @@ static int nes_netdev_open(struct net_device *netdev)
nes_write32(nesdev->regs+NES_CQE_ALLOC, NES_CQE_ALLOC_NOTIFY_NEXT |
nesvnic->nic_cq.cq_number);
nes_read32(nesdev->regs+NES_CQE_ALLOC);
-
+ list_for_each_safe(list_pos, list_temp, &nesdev->nesadapter->nesvnic_list[nesdev->mac_index]) {
+ first_nesvnic = container_of(list_pos, struct nes_vnic, list);
+ if (first_nesvnic->netdev_open == 1)
+ break;
+ }
+ if (first_nesvnic->netdev_open == 0) {
+ nes_debug(NES_DBG_INIT, "Setting up MAC interrupt mask.\n");
+ nes_write_indexed(nesdev, NES_IDX_MAC_INT_MASK + (0x200 * nesdev->mac_index),
+ ~(NES_MAC_INT_LINK_STAT_CHG | NES_MAC_INT_XGMII_EXT |
+ NES_MAC_INT_TX_UNDERFLOW | NES_MAC_INT_TX_ERROR));
+ first_nesvnic = nesvnic;
+ }
if (first_nesvnic->linkup) {
/* Enable network packets */
nesvnic->linkup = 1;
@@ -248,6 +260,8 @@ static int nes_netdev_stop(struct net_device *netdev)
struct nes_device *nesdev = nesvnic->nesdev;
u32 nic_active_mask;
u32 nic_active;
+ struct nes_vnic *first_nesvnic = NULL;
+ struct list_head *list_pos, *list_temp;
nes_debug(NES_DBG_SHUTDOWN, "nesvnic=%p, nesdev=%p, netdev=%p %s\n",
nesvnic, nesdev, netdev, netdev->name);
@@ -260,9 +274,20 @@ static int nes_netdev_stop(struct net_device *netdev)
/* Disable network packets */
napi_disable(&nesvnic->napi);
netif_stop_queue(netdev);
- if ((nesdev->netdev[0] == netdev) & (nesvnic->logical_port == nesdev->mac_index)) {
- nes_write_indexed(nesdev,
- NES_IDX_MAC_INT_MASK+(0x200*nesdev->mac_index), 0xffffffff);
+ list_for_each_safe(list_pos, list_temp, &nesdev->nesadapter->nesvnic_list[nesdev->mac_index]) {
+ first_nesvnic = container_of(list_pos, struct nes_vnic, list);
+ if ((first_nesvnic->netdev_open == 1) && (first_nesvnic != nesvnic))
+ break;
+ }
+
+ if (first_nesvnic->netdev_open == 0)
+ nes_write_indexed(nesdev, NES_IDX_MAC_INT_MASK+(0x200*nesdev->mac_index), 0xffffffff);
+ else if ((first_nesvnic != nesvnic) &&
+ (PCI_FUNC(first_nesvnic->nesdev->pcidev->devfn) != PCI_FUNC(nesvnic->nesdev->pcidev->devfn))) {
+ nes_write_indexed(nesdev, NES_IDX_MAC_INT_MASK + (0x200 * nesdev->mac_index), 0xffffffff);
+ nes_write_indexed(first_nesvnic->nesdev, NES_IDX_MAC_INT_MASK + (0x200 * first_nesvnic->nesdev->mac_index),
+ ~(NES_MAC_INT_LINK_STAT_CHG | NES_MAC_INT_XGMII_EXT |
+ NES_MAC_INT_TX_UNDERFLOW | NES_MAC_INT_TX_ERROR));
}
nic_active_mask = ~((u32)(1 << nesvnic->nic_index));
@@ -859,7 +884,6 @@ void nes_netdev_set_multicast_list(struct net_device *netdev)
for (mc_index=0; mc_index < NES_MULTICAST_PF_MAX; mc_index++) {
while (multicast_addr && nesvnic->mcrq_mcast_filter && ((mc_nic_index = nesvnic->mcrq_mcast_filter(nesvnic, multicast_addr->dmi_addr)) == 0))
multicast_addr = multicast_addr->next;
-
if (mc_nic_index < 0)
mc_nic_index = nesvnic->nic_index;
if (multicast_addr) {
@@ -908,7 +932,7 @@ static int nes_netdev_change_mtu(struct net_device *netdev, int new_mtu)
return -EINVAL;
netdev->mtu = new_mtu;
- nesvnic->max_frame_size = new_mtu+ETH_HLEN;
+ nesvnic->max_frame_size = new_mtu + VLAN_ETH_HLEN;
if (netdev->mtu > 1500) {
jumbomode=1;
@@ -1470,10 +1494,15 @@ static void nes_netdev_vlan_rx_register(struct net_device *netdev, struct vlan_g
{
struct nes_vnic *nesvnic = netdev_priv(netdev);
struct nes_device *nesdev = nesvnic->nesdev;
+ struct nes_adapter *nesadapter = nesdev->nesadapter;
u32 u32temp;
+ unsigned long flags;
+ spin_lock_irqsave(&nesadapter->phy_lock, flags);
nesvnic->vlan_grp = grp;
+ nes_debug(NES_DBG_NETDEV, "%s: %s\n", __func__, netdev->name);
+
/* Enable/Disable VLAN Stripping */
u32temp = nes_read_indexed(nesdev, NES_IDX_PCIX_DIAG);
if (grp)
@@ -1482,6 +1511,7 @@ static void nes_netdev_vlan_rx_register(struct net_device *netdev, struct vlan_g
u32temp |= 0x02000000;
nes_write_indexed(nesdev, NES_IDX_PCIX_DIAG, u32temp);
+ spin_unlock_irqrestore(&nesadapter->phy_lock, flags);
}
@@ -1540,7 +1570,7 @@ struct net_device *nes_netdev_init(struct nes_device *nesdev,
nesvnic->msg_enable = netif_msg_init(debug, default_msg);
nesvnic->netdev_index = nesdev->netdev_count;
nesvnic->perfect_filter_index = nesdev->nesadapter->netdev_count;
- nesvnic->max_frame_size = netdev->mtu+netdev->hard_header_len;
+ nesvnic->max_frame_size = netdev->mtu + netdev->hard_header_len + VLAN_HLEN;
curr_qp_map = nic_qp_mapping_per_function[PCI_FUNC(nesdev->pcidev->devfn)];
nesvnic->nic.qp_id = curr_qp_map[nesdev->netdev_count].qpid;
@@ -1610,7 +1640,7 @@ struct net_device *nes_netdev_init(struct nes_device *nesdev,
list_add_tail(&nesvnic->list, &nesdev->nesadapter->nesvnic_list[nesdev->mac_index]);
if ((nesdev->netdev_count == 0) &&
- (PCI_FUNC(nesdev->pcidev->devfn) == nesdev->mac_index)) {
+ (PCI_FUNC(nesdev->pcidev->devfn) == nesdev->mac_index)) {
nes_debug(NES_DBG_INIT, "Setting up PHY interrupt mask. Using register index 0x%04X\n",
NES_IDX_PHY_PCS_CONTROL_STATUS0+(0x200*(nesvnic->logical_port&1)));
u32temp = nes_read_indexed(nesdev, NES_IDX_PHY_PCS_CONTROL_STATUS0 +
@@ -1648,18 +1678,14 @@ struct net_device *nes_netdev_init(struct nes_device *nesdev,
nesvnic->linkup = 1;
}
}
- nes_debug(NES_DBG_INIT, "Setting up MAC interrupt mask.\n");
/* clear the MAC interrupt status, assumes direct logical to physical mapping */
- u32temp = nes_read_indexed(nesdev, NES_IDX_MAC_INT_STATUS+(0x200*nesvnic->logical_port));
+ u32temp = nes_read_indexed(nesdev, NES_IDX_MAC_INT_STATUS + (0x200 * nesdev->mac_index));
nes_debug(NES_DBG_INIT, "Phy interrupt status = 0x%X.\n", u32temp);
- nes_write_indexed(nesdev, NES_IDX_MAC_INT_STATUS+(0x200*nesvnic->logical_port), u32temp);
+ nes_write_indexed(nesdev, NES_IDX_MAC_INT_STATUS + (0x200 * nesdev->mac_index), u32temp);
- if (nesdev->nesadapter->phy_type[nesvnic->logical_port] != NES_PHY_TYPE_IRIS)
+ if (nesdev->nesadapter->phy_type[nesdev->mac_index] != NES_PHY_TYPE_IRIS)
nes_init_phy(nesdev);
- nes_write_indexed(nesdev, NES_IDX_MAC_INT_MASK+(0x200*nesvnic->logical_port),
- ~(NES_MAC_INT_LINK_STAT_CHG | NES_MAC_INT_XGMII_EXT |
- NES_MAC_INT_TX_UNDERFLOW | NES_MAC_INT_TX_ERROR));
}
return netdev;
diff --git a/drivers/infiniband/hw/nes/nes_verbs.c b/drivers/infiniband/hw/nes/nes_verbs.c
index ffd4b42..4dafbe1 100644
--- a/drivers/infiniband/hw/nes/nes_verbs.c
+++ b/drivers/infiniband/hw/nes/nes_verbs.c
@@ -1337,7 +1337,7 @@ static struct ib_qp *nes_create_qp(struct ib_pd *ibpd,
NES_MAX_USER_WQ_REGIONS, nes_ucontext->first_free_wq);
/* nes_debug(NES_DBG_QP, "find_first_zero_biton wqs returned %u\n",
nespd->mmap_db_index); */
- if (nesqp->mmap_sq_db_index > NES_MAX_USER_WQ_REGIONS) {
+ if (nesqp->mmap_sq_db_index >= NES_MAX_USER_WQ_REGIONS) {
nes_debug(NES_DBG_QP,
"db index > max user regions, failing create QP\n");
nes_free_resource(nesadapter, nesadapter->allocated_qps, qp_num);
^ permalink raw reply related [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
@ 2008-02-14 23:31 Roland Dreier
0 siblings, 0 replies; 223+ messages in thread
From: Roland Dreier @ 2008-02-14 23:31 UTC (permalink / raw)
To: torvalds, akpm; +Cc: linux-kernel, general
Linus, please pull from
master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This tree is also available from kernel.org mirrors at:
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This will get a few post-2.6.25-rc1 fixes:
Eli Cohen (1):
IPoIB: Remove unused struct ipoib_cm_tx.ibwc member
Jack Morgenstein (3):
IPoIB: On P_Key change event, reset state properly
IB/mlx4: mlx4_ib_fmr_alloc() should call mlx4_fmr_enable()
mlx4_core: Move table_find from fmr_alloc to fmr_enable
Marcin Slusarz (1):
IB/mthca: Convert to use be16_add_cpu()
Roland Dreier (3):
IB/mthca: Add missing sg_init_table() in mthca_map_user_db()
IB/cm: Remove debug printk()s that snuck upstream
IB/cm: Fix infiniband_cm class kobject ref counting
Sean Hefty (1):
RDMA/cma: Do not issue MRA if user rejects connection request
Steve Wise (1):
RDMA/cxgb3: Fail loopback connections
drivers/infiniband/core/cm.c | 26 ++++++++------------------
drivers/infiniband/core/cma.c | 10 +++++++++-
drivers/infiniband/hw/cxgb3/iwch_cm.c | 17 +++++++++++++++++
drivers/infiniband/hw/mlx4/mr.c | 2 +-
drivers/infiniband/hw/mthca/mthca_cq.c | 2 +-
drivers/infiniband/hw/mthca/mthca_memfree.c | 1 +
drivers/infiniband/ulp/ipoib/ipoib.h | 1 -
drivers/infiniband/ulp/ipoib/ipoib_ib.c | 1 +
drivers/net/mlx4/mr.c | 21 +++++++++++++--------
9 files changed, 51 insertions(+), 30 deletions(-)
diff --git a/drivers/infiniband/core/cm.c b/drivers/infiniband/core/cm.c
index 638b727..b10ade9 100644
--- a/drivers/infiniband/core/cm.c
+++ b/drivers/infiniband/core/cm.c
@@ -3587,8 +3587,6 @@ static void cm_release_port_obj(struct kobject *obj)
{
struct cm_port *cm_port;
- printk(KERN_ERR "free cm port\n");
-
cm_port = container_of(obj, struct cm_port, port_obj);
kfree(cm_port);
}
@@ -3601,8 +3599,6 @@ static void cm_release_dev_obj(struct kobject *obj)
{
struct cm_device *cm_dev;
- printk(KERN_ERR "free cm dev\n");
-
cm_dev = container_of(obj, struct cm_device, dev_obj);
kfree(cm_dev);
}
@@ -3616,18 +3612,12 @@ struct class cm_class = {
};
EXPORT_SYMBOL(cm_class);
-static void cm_remove_fs_obj(struct kobject *obj)
-{
- kobject_put(obj->parent);
- kobject_put(obj);
-}
-
static int cm_create_port_fs(struct cm_port *port)
{
int i, ret;
ret = kobject_init_and_add(&port->port_obj, &cm_port_obj_type,
- kobject_get(&port->cm_dev->dev_obj),
+ &port->cm_dev->dev_obj,
"%d", port->port_num);
if (ret) {
kfree(port);
@@ -3637,7 +3627,7 @@ static int cm_create_port_fs(struct cm_port *port)
for (i = 0; i < CM_COUNTER_GROUPS; i++) {
ret = kobject_init_and_add(&port->counter_group[i].obj,
&cm_counter_obj_type,
- kobject_get(&port->port_obj),
+ &port->port_obj,
"%s", counter_group_names[i]);
if (ret)
goto error;
@@ -3647,8 +3637,8 @@ static int cm_create_port_fs(struct cm_port *port)
error:
while (i--)
- cm_remove_fs_obj(&port->counter_group[i].obj);
- cm_remove_fs_obj(&port->port_obj);
+ kobject_put(&port->counter_group[i].obj);
+ kobject_put(&port->port_obj);
return ret;
}
@@ -3658,9 +3648,9 @@ static void cm_remove_port_fs(struct cm_port *port)
int i;
for (i = 0; i < CM_COUNTER_GROUPS; i++)
- cm_remove_fs_obj(&port->counter_group[i].obj);
+ kobject_put(&port->counter_group[i].obj);
- cm_remove_fs_obj(&port->port_obj);
+ kobject_put(&port->port_obj);
}
static void cm_add_one(struct ib_device *device)
@@ -3744,7 +3734,7 @@ error1:
ib_unregister_mad_agent(port->mad_agent);
cm_remove_port_fs(port);
}
- cm_remove_fs_obj(&cm_dev->dev_obj);
+ kobject_put(&cm_dev->dev_obj);
}
static void cm_remove_one(struct ib_device *device)
@@ -3771,7 +3761,7 @@ static void cm_remove_one(struct ib_device *device)
ib_unregister_mad_agent(port->mad_agent);
cm_remove_port_fs(port);
}
- cm_remove_fs_obj(&cm_dev->dev_obj);
+ kobject_put(&cm_dev->dev_obj);
}
static int __init ib_cm_init(void)
diff --git a/drivers/infiniband/core/cma.c b/drivers/infiniband/core/cma.c
index 1eff1b2..34507da 100644
--- a/drivers/infiniband/core/cma.c
+++ b/drivers/infiniband/core/cma.c
@@ -1107,7 +1107,6 @@ static int cma_req_handler(struct ib_cm_id *cm_id, struct ib_cm_event *ib_event)
event.param.ud.private_data_len =
IB_CM_SIDR_REQ_PRIVATE_DATA_SIZE - offset;
} else {
- ib_send_cm_mra(cm_id, CMA_CM_MRA_SETTING, NULL, 0);
conn_id = cma_new_conn_id(&listen_id->id, ib_event);
cma_set_req_event_data(&event, &ib_event->param.req_rcvd,
ib_event->private_data, offset);
@@ -1130,6 +1129,15 @@ static int cma_req_handler(struct ib_cm_id *cm_id, struct ib_cm_event *ib_event)
ret = conn_id->id.event_handler(&conn_id->id, &event);
if (!ret) {
+ /*
+ * Acquire mutex to prevent user executing rdma_destroy_id()
+ * while we're accessing the cm_id.
+ */
+ mutex_lock(&lock);
+ if (cma_comp(conn_id, CMA_CONNECT) &&
+ !cma_is_ud_ps(conn_id->id.ps))
+ ib_send_cm_mra(cm_id, CMA_CM_MRA_SETTING, NULL, 0);
+ mutex_unlock(&lock);
cma_enable_remove(conn_id);
goto out;
}
diff --git a/drivers/infiniband/hw/cxgb3/iwch_cm.c b/drivers/infiniband/hw/cxgb3/iwch_cm.c
index e9a08fa..320f2b6 100644
--- a/drivers/infiniband/hw/cxgb3/iwch_cm.c
+++ b/drivers/infiniband/hw/cxgb3/iwch_cm.c
@@ -35,6 +35,7 @@
#include <linux/skbuff.h>
#include <linux/timer.h>
#include <linux/notifier.h>
+#include <linux/inetdevice.h>
#include <net/neighbour.h>
#include <net/netevent.h>
@@ -1784,6 +1785,17 @@ err:
return err;
}
+static int is_loopback_dst(struct iw_cm_id *cm_id)
+{
+ struct net_device *dev;
+
+ dev = ip_dev_find(&init_net, cm_id->remote_addr.sin_addr.s_addr);
+ if (!dev)
+ return 0;
+ dev_put(dev);
+ return 1;
+}
+
int iwch_connect(struct iw_cm_id *cm_id, struct iw_cm_conn_param *conn_param)
{
int err = 0;
@@ -1791,6 +1803,11 @@ int iwch_connect(struct iw_cm_id *cm_id, struct iw_cm_conn_param *conn_param)
struct iwch_ep *ep;
struct rtable *rt;
+ if (is_loopback_dst(cm_id)) {
+ err = -ENOSYS;
+ goto out;
+ }
+
ep = alloc_ep(sizeof(*ep), GFP_KERNEL);
if (!ep) {
printk(KERN_ERR MOD "%s - cannot alloc ep.\n", __FUNCTION__);
diff --git a/drivers/infiniband/hw/mlx4/mr.c b/drivers/infiniband/hw/mlx4/mr.c
index 7dc91a3..fe2c2e9 100644
--- a/drivers/infiniband/hw/mlx4/mr.c
+++ b/drivers/infiniband/hw/mlx4/mr.c
@@ -199,7 +199,7 @@ struct ib_fmr *mlx4_ib_fmr_alloc(struct ib_pd *pd, int acc,
if (err)
goto err_free;
- err = mlx4_mr_enable(to_mdev(pd->device)->dev, &fmr->mfmr.mr);
+ err = mlx4_fmr_enable(to_mdev(pd->device)->dev, &fmr->mfmr);
if (err)
goto err_mr;
diff --git a/drivers/infiniband/hw/mthca/mthca_cq.c b/drivers/infiniband/hw/mthca/mthca_cq.c
index 6bd9f13..1e1e336 100644
--- a/drivers/infiniband/hw/mthca/mthca_cq.c
+++ b/drivers/infiniband/hw/mthca/mthca_cq.c
@@ -473,7 +473,7 @@ static void handle_error_cqe(struct mthca_dev *dev, struct mthca_cq *cq,
if (!(new_wqe & cpu_to_be32(0x3f)) || (!cqe->db_cnt && dbd))
return;
- cqe->db_cnt = cpu_to_be16(be16_to_cpu(cqe->db_cnt) - dbd);
+ be16_add_cpu(&cqe->db_cnt, -dbd);
cqe->wqe = new_wqe;
cqe->syndrome = SYNDROME_WR_FLUSH_ERR;
diff --git a/drivers/infiniband/hw/mthca/mthca_memfree.c b/drivers/infiniband/hw/mthca/mthca_memfree.c
index 1f4d27d..252db08 100644
--- a/drivers/infiniband/hw/mthca/mthca_memfree.c
+++ b/drivers/infiniband/hw/mthca/mthca_memfree.c
@@ -542,6 +542,7 @@ struct mthca_user_db_table *mthca_init_user_db_tab(struct mthca_dev *dev)
for (i = 0; i < npages; ++i) {
db_tab->page[i].refcount = 0;
db_tab->page[i].uvirt = 0;
+ sg_init_table(&db_tab->page[i].mem, 1);
}
return db_tab;
diff --git a/drivers/infiniband/ulp/ipoib/ipoib.h b/drivers/infiniband/ulp/ipoib/ipoib.h
index f9b7caa..054fab8 100644
--- a/drivers/infiniband/ulp/ipoib/ipoib.h
+++ b/drivers/infiniband/ulp/ipoib/ipoib.h
@@ -209,7 +209,6 @@ struct ipoib_cm_tx {
unsigned tx_tail;
unsigned long flags;
u32 mtu;
- struct ib_wc ibwc[IPOIB_NUM_WC];
};
struct ipoib_cm_rx_buf {
diff --git a/drivers/infiniband/ulp/ipoib/ipoib_ib.c b/drivers/infiniband/ulp/ipoib/ipoib_ib.c
index 9d3e778..08c4396 100644
--- a/drivers/infiniband/ulp/ipoib/ipoib_ib.c
+++ b/drivers/infiniband/ulp/ipoib/ipoib_ib.c
@@ -780,6 +780,7 @@ static void __ipoib_ib_dev_flush(struct ipoib_dev_priv *priv, int pkey_event)
if (ib_find_pkey(priv->ca, priv->port, priv->pkey, &new_index)) {
clear_bit(IPOIB_PKEY_ASSIGNED, &priv->flags);
ipoib_ib_dev_down(dev, 0);
+ ipoib_ib_dev_stop(dev, 0);
ipoib_pkey_dev_delay_open(dev);
return;
}
diff --git a/drivers/net/mlx4/mr.c b/drivers/net/mlx4/mr.c
index 679dfdb..79b317b 100644
--- a/drivers/net/mlx4/mr.c
+++ b/drivers/net/mlx4/mr.c
@@ -578,13 +578,6 @@ int mlx4_fmr_alloc(struct mlx4_dev *dev, u32 pd, u32 access, int max_pages,
goto err_free;
}
- fmr->mpt = mlx4_table_find(&priv->mr_table.dmpt_table,
- key_to_hw_index(fmr->mr.key), NULL);
- if (!fmr->mpt) {
- err = -ENOMEM;
- goto err_free;
- }
-
return 0;
err_free:
@@ -595,7 +588,19 @@ EXPORT_SYMBOL_GPL(mlx4_fmr_alloc);
int mlx4_fmr_enable(struct mlx4_dev *dev, struct mlx4_fmr *fmr)
{
- return mlx4_mr_enable(dev, &fmr->mr);
+ struct mlx4_priv *priv = mlx4_priv(dev);
+ int err;
+
+ err = mlx4_mr_enable(dev, &fmr->mr);
+ if (err)
+ return err;
+
+ fmr->mpt = mlx4_table_find(&priv->mr_table.dmpt_table,
+ key_to_hw_index(fmr->mr.key), NULL);
+ if (!fmr->mpt)
+ return -ENOMEM;
+
+ return 0;
}
EXPORT_SYMBOL_GPL(mlx4_fmr_enable);
^ permalink raw reply related [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
@ 2008-02-11 22:25 Roland Dreier
0 siblings, 0 replies; 223+ messages in thread
From: Roland Dreier @ 2008-02-11 22:25 UTC (permalink / raw)
To: torvalds, akpm; +Cc: linux-kernel, general
Linus, please pull from
master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This tree is also available from kernel.org mirrors at:
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This will get one build fix:
Olof Johansson (1):
mlx4_core: Fix build break (missing include)
drivers/net/mlx4/alloc.c | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
diff --git a/drivers/net/mlx4/alloc.c b/drivers/net/mlx4/alloc.c
index 521dc03..75ef9d0 100644
--- a/drivers/net/mlx4/alloc.c
+++ b/drivers/net/mlx4/alloc.c
@@ -34,6 +34,7 @@
#include <linux/slab.h>
#include <linux/bitmap.h>
#include <linux/dma-mapping.h>
+#include <linux/vmalloc.h>
#include "mlx4.h"
^ permalink raw reply related [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
@ 2008-02-08 23:16 Roland Dreier
0 siblings, 0 replies; 223+ messages in thread
From: Roland Dreier @ 2008-02-08 23:16 UTC (permalink / raw)
To: torvalds, akpm; +Cc: general, linux-kernel
Linus, please pull from
master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This tree is also available from kernel.org mirrors at:
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This will get the last batch of InfiniBand/RDMA merges for 2.6.25,
mostly preparation for enabling stateless offloads for IP-over-InfiniBand.
Eli Cohen (3):
IPoIB: Add high DMA feature flag
IPoIB: Add send gather support
IB/core: Add IP checksum offload support
Jack Morgenstein (2):
mlx4_core: For 64-bit systems, vmap() kernel queue buffers
IB/mlx4: Use multiple WQ blocks to post smaller send WQEs
Roland Dreier (3):
IB/mlx4: Consolidate code to get an entry from a struct mlx4_buf
mlx4_core: Clean up struct mlx4_buf
IB/core: Remove unused struct ib_device.flags member
drivers/infiniband/hw/mlx4/cq.c | 20 ++--
drivers/infiniband/hw/mlx4/mlx4_ib.h | 2 +
drivers/infiniband/hw/mlx4/qp.c | 216 +++++++++++++++++++++++-----
drivers/infiniband/hw/mlx4/srq.c | 8 +-
drivers/infiniband/ulp/ipoib/ipoib.h | 4 +-
drivers/infiniband/ulp/ipoib/ipoib_cm.c | 10 +-
drivers/infiniband/ulp/ipoib/ipoib_ib.c | 89 +++++++++---
drivers/infiniband/ulp/ipoib/ipoib_main.c | 4 +-
drivers/infiniband/ulp/ipoib/ipoib_verbs.c | 10 +-
drivers/net/mlx4/alloc.c | 48 ++++--
drivers/net/mlx4/mr.c | 4 +-
include/linux/mlx4/device.h | 19 ++-
include/linux/mlx4/qp.h | 4 +
include/rdma/ib_verbs.h | 16 ++-
14 files changed, 342 insertions(+), 112 deletions(-)
^ permalink raw reply [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
@ 2008-02-05 4:49 Roland Dreier
0 siblings, 0 replies; 223+ messages in thread
From: Roland Dreier @ 2008-02-05 4:49 UTC (permalink / raw)
To: torvalds; +Cc: linux-kernel, general, gstreiff
Linus, please pull from
master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This tree is also available from kernel.org mirrors at:
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This will get a second batch of InfiniBand/RDMA batches. In addition
to the usual motley crew of changes, this pull includes a new driver
for NetEffect RNICs in drivers/infiniband/hw/nes. The code could use
some further cleaning, but I don't think it's worth holding off on the
merge.
David Dillow (1):
IB/srp: Retry stale connections
Eli Cohen (2):
IB/mthca: Remove checks for srq->first_free < 0
IB/ib_mthca: Pre-link receive WQEs in Tavor mode
Glenn Streiff (1):
RDMA/nes: Add a driver for NetEffect RNICs
Hoang-Nam Nguyen (1):
IB/ehca: Add PMA support
Jack Morgenstein (2):
IB/mthca: Don't read reserved fields in mthca_QUERY_ADAPTER()
mlx4_core: Don't read reserved fields in mlx4_QUERY_ADAPTER()
Joachim Fenkes (2):
IB/ehca: Prevent sending UD packets to QP0
IB/ehca: Update sma_attr also in case of disruptive config change
Olaf Kirch (1):
IB/mthca: Return proper error codes from mthca_fmr_alloc()
Or Gerlitz (3):
IPoIB: Handle bonding failover race for connected neighbours too
IPoIB: Remove a misleading debug print
IB/fmr_pool: Allocate page list for pool FMRs only when caching enabled
Roland Dreier (4):
mlx4_core: Fix more section mismatches
IB/mthca: Fix and simplify page size calculation in mthca_reg_phys_mr()
IB/mlx4: Actually print out the driver version
IB: Avoid marking __devinitdata as const
Sean Hefty (1):
IB/cm: Add interim support for routed paths
MAINTAINERS | 10 +
drivers/infiniband/Kconfig | 2 +-
drivers/infiniband/Makefile | 1 +
drivers/infiniband/core/cm.c | 89 +-
drivers/infiniband/core/fmr_pool.c | 7 +-
drivers/infiniband/hw/ehca/ehca_classes.h | 1 +
drivers/infiniband/hw/ehca/ehca_irq.c | 2 +
drivers/infiniband/hw/ehca/ehca_iverbs.h | 5 +
drivers/infiniband/hw/ehca/ehca_main.c | 2 +-
drivers/infiniband/hw/ehca/ehca_reqs.c | 4 +
drivers/infiniband/hw/ehca/ehca_sqp.c | 91 +
drivers/infiniband/hw/mlx4/main.c | 10 +-
drivers/infiniband/hw/mthca/mthca_cmd.c | 11 +-
drivers/infiniband/hw/mthca/mthca_main.c | 5 +-
drivers/infiniband/hw/mthca/mthca_mr.c | 8 +-
drivers/infiniband/hw/mthca/mthca_provider.c | 22 +-
drivers/infiniband/hw/mthca/mthca_qp.c | 13 +-
drivers/infiniband/hw/mthca/mthca_srq.c | 47 +-
drivers/infiniband/hw/nes/Kconfig | 16 +
drivers/infiniband/hw/nes/Makefile | 3 +
drivers/infiniband/hw/nes/nes.c | 1152 ++++++++
drivers/infiniband/hw/nes/nes.h | 560 ++++
drivers/infiniband/hw/nes/nes_cm.c | 3088 ++++++++++++++++++++
drivers/infiniband/hw/nes/nes_cm.h | 433 +++
drivers/infiniband/hw/nes/nes_context.h | 193 ++
drivers/infiniband/hw/nes/nes_hw.c | 3080 ++++++++++++++++++++
drivers/infiniband/hw/nes/nes_hw.h | 1206 ++++++++
drivers/infiniband/hw/nes/nes_nic.c | 1703 +++++++++++
drivers/infiniband/hw/nes/nes_user.h | 112 +
drivers/infiniband/hw/nes/nes_utils.c | 917 ++++++
drivers/infiniband/hw/nes/nes_verbs.c | 3917 ++++++++++++++++++++++++++
drivers/infiniband/hw/nes/nes_verbs.h | 169 ++
drivers/infiniband/ulp/ipoib/ipoib_main.c | 19 +-
drivers/infiniband/ulp/srp/ib_srp.c | 53 +-
drivers/infiniband/ulp/srp/ib_srp.h | 1 +
drivers/net/mlx4/fw.c | 6 -
drivers/net/mlx4/fw.h | 3 -
drivers/net/mlx4/main.c | 11 +-
drivers/net/mlx4/mr.c | 2 +-
39 files changed, 16848 insertions(+), 126 deletions(-)
create mode 100644 drivers/infiniband/hw/nes/Kconfig
create mode 100644 drivers/infiniband/hw/nes/Makefile
create mode 100644 drivers/infiniband/hw/nes/nes.c
create mode 100644 drivers/infiniband/hw/nes/nes.h
create mode 100644 drivers/infiniband/hw/nes/nes_cm.c
create mode 100644 drivers/infiniband/hw/nes/nes_cm.h
create mode 100644 drivers/infiniband/hw/nes/nes_context.h
create mode 100644 drivers/infiniband/hw/nes/nes_hw.c
create mode 100644 drivers/infiniband/hw/nes/nes_hw.h
create mode 100644 drivers/infiniband/hw/nes/nes_nic.c
create mode 100644 drivers/infiniband/hw/nes/nes_user.h
create mode 100644 drivers/infiniband/hw/nes/nes_utils.c
create mode 100644 drivers/infiniband/hw/nes/nes_verbs.c
create mode 100644 drivers/infiniband/hw/nes/nes_verbs.h
^ permalink raw reply [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
@ 2008-01-16 22:46 Roland Dreier
0 siblings, 0 replies; 223+ messages in thread
From: Roland Dreier @ 2008-01-16 22:46 UTC (permalink / raw)
To: torvalds; +Cc: general, linux-kernel
Linus, please pull from
master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This tree is also available from kernel.org mirrors at:
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This will get the commit below, which moves a little code around to
make a couple of major MPI implementations work on ipath devices:
drivers/infiniband/hw/ipath/ipath_ud.c | 44 ++++++++++++++++----------------
1 files changed, 22 insertions(+), 22 deletions(-)
commit 0a69631b2869093d7306e8f66cca8eb0a05aa919
Author: Ralph Campbell <ralph.campbell@qlogic.com>
Date: Tue Jan 15 15:58:13 2008 -0800
IB/ipath: Fix receiving UD messages with immediate data
This fixes a small bug in ipath_ud_rcv()'s handling of UD messages
with immediate data. We need to test whether immediate data is
present and update the header size accordingly *before* testing the
packet size from the header against the actual received length.
Otherwise the wrong header size will be used and all messages with
immediate data will be dropped.
This bug keeps MVAPICH-UD and HP MPI from working at all on ipath devices.
Signed-off-by: Ralph Campbell <ralph.campbell@qlogic.com>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
---
diff --git a/drivers/infiniband/hw/ipath/ipath_ud.c b/drivers/infiniband/hw/ipath/ipath_ud.c
index 16a2a93..b3df6f3 100644
--- a/drivers/infiniband/hw/ipath/ipath_ud.c
+++ b/drivers/infiniband/hw/ipath/ipath_ud.c
@@ -455,6 +455,28 @@ void ipath_ud_rcv(struct ipath_ibdev *dev, struct ipath_ib_header *hdr,
}
}
+ /*
+ * The opcode is in the low byte when its in network order
+ * (top byte when in host order).
+ */
+ opcode = be32_to_cpu(ohdr->bth[0]) >> 24;
+ if (qp->ibqp.qp_num > 1 &&
+ opcode == IB_OPCODE_UD_SEND_ONLY_WITH_IMMEDIATE) {
+ if (header_in_data) {
+ wc.imm_data = *(__be32 *) data;
+ data += sizeof(__be32);
+ } else
+ wc.imm_data = ohdr->u.ud.imm_data;
+ wc.wc_flags = IB_WC_WITH_IMM;
+ hdrsize += sizeof(u32);
+ } else if (opcode == IB_OPCODE_UD_SEND_ONLY) {
+ wc.imm_data = 0;
+ wc.wc_flags = 0;
+ } else {
+ dev->n_pkt_drops++;
+ goto bail;
+ }
+
/* Get the number of bytes the message was padded by. */
pad = (be32_to_cpu(ohdr->bth[0]) >> 20) & 3;
if (unlikely(tlen < (hdrsize + pad + 4))) {
@@ -482,28 +504,6 @@ void ipath_ud_rcv(struct ipath_ibdev *dev, struct ipath_ib_header *hdr,
wc.byte_len = tlen + sizeof(struct ib_grh);
/*
- * The opcode is in the low byte when its in network order
- * (top byte when in host order).
- */
- opcode = be32_to_cpu(ohdr->bth[0]) >> 24;
- if (qp->ibqp.qp_num > 1 &&
- opcode == IB_OPCODE_UD_SEND_ONLY_WITH_IMMEDIATE) {
- if (header_in_data) {
- wc.imm_data = *(__be32 *) data;
- data += sizeof(__be32);
- } else
- wc.imm_data = ohdr->u.ud.imm_data;
- wc.wc_flags = IB_WC_WITH_IMM;
- hdrsize += sizeof(u32);
- } else if (opcode == IB_OPCODE_UD_SEND_ONLY) {
- wc.imm_data = 0;
- wc.wc_flags = 0;
- } else {
- dev->n_pkt_drops++;
- goto bail;
- }
-
- /*
* Get the next work request entry to find where to put the data.
*/
if (qp->r_reuse_sge)
^ permalink raw reply related [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
@ 2008-01-08 20:25 Roland Dreier
0 siblings, 0 replies; 223+ messages in thread
From: Roland Dreier @ 2008-01-08 20:25 UTC (permalink / raw)
To: torvalds; +Cc: linux-kernel, general
Linus, please pull from
master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This tree is also available from kernel.org mirrors at:
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This will get a few one-line fixes: change a maintainer email address
that is going away soon, fix a bug that would make the second port on
some HCAs useless, and fix SRP the right way now that the root cause
is fixed via James's tree.
(And just to counter James's suggestion that the SRP user base is
comparable to voyager's: these SRP fixes are coming from a real
production user, and that user is @ornl.gov, which means that SRP is
actually being used to do something involving things like atomic bombs
or sharks with laser beams)
Dave Dillow (1):
IB/srp: Release transport before removing host
Dotan Barak (1):
IB/mlx4: Fix value of pkey_index in QP1 completions
Sean Hefty (1):
MAINTAINERS: Update Sean Hefty's email address
MAINTAINERS | 2 +-
drivers/infiniband/hw/mlx4/cq.c | 2 +-
drivers/infiniband/ulp/srp/ib_srp.c | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/MAINTAINERS b/MAINTAINERS
index 79c711e..56e6159 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -1919,7 +1919,7 @@ INFINIBAND SUBSYSTEM
P: Roland Dreier
M: rolandd@cisco.com
P: Sean Hefty
-M: mshefty@ichips.intel.com
+M: sean.hefty@intel.com
P: Hal Rosenstock
M: hal.rosenstock@gmail.com
L: general@lists.openfabrics.org
diff --git a/drivers/infiniband/hw/mlx4/cq.c b/drivers/infiniband/hw/mlx4/cq.c
index 8bf44da..9d32c49 100644
--- a/drivers/infiniband/hw/mlx4/cq.c
+++ b/drivers/infiniband/hw/mlx4/cq.c
@@ -430,7 +430,7 @@ static int mlx4_ib_poll_one(struct mlx4_ib_cq *cq,
wc->dlid_path_bits = (be32_to_cpu(cqe->g_mlpath_rqpn) >> 24) & 0x7f;
wc->wc_flags |= be32_to_cpu(cqe->g_mlpath_rqpn) & 0x80000000 ?
IB_WC_GRH : 0;
- wc->pkey_index = be32_to_cpu(cqe->immed_rss_invalid) >> 16;
+ wc->pkey_index = be32_to_cpu(cqe->immed_rss_invalid) & 0x7f;
}
return 0;
diff --git a/drivers/infiniband/ulp/srp/ib_srp.c b/drivers/infiniband/ulp/srp/ib_srp.c
index 77e8b90..bdb6f85 100644
--- a/drivers/infiniband/ulp/srp/ib_srp.c
+++ b/drivers/infiniband/ulp/srp/ib_srp.c
@@ -2053,8 +2053,8 @@ static void srp_remove_one(struct ib_device *device)
list_for_each_entry_safe(target, tmp_target,
&host->target_list, list) {
- scsi_remove_host(target->scsi_host);
srp_remove_host(target->scsi_host);
+ scsi_remove_host(target->scsi_host);
srp_disconnect_target(target);
ib_destroy_cm_id(target->cm_id);
srp_free_target_ib(target);
^ permalink raw reply related [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
@ 2007-12-13 17:39 Roland Dreier
0 siblings, 0 replies; 223+ messages in thread
From: Roland Dreier @ 2007-12-13 17:39 UTC (permalink / raw)
To: torvalds; +Cc: linux-kernel, general
Linus, please pull from
master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This tree is also available from kernel.org mirrors at:
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This will pull a few small ehca driver fixes for 2.6.24:
Joachim Fenkes (3):
IB/ehca: Return correct number of SGEs for SRQ
IB/ehca: Serialize HCA-related hCalls if necessary
IB/ehca: Fix lock flag variable location, bump version number
drivers/infiniband/hw/ehca/ehca_classes.h | 1 +
drivers/infiniband/hw/ehca/ehca_main.c | 15 ++++++++++++++-
drivers/infiniband/hw/ehca/ehca_qp.c | 4 ++--
drivers/infiniband/hw/ehca/hcp_if.c | 27 ++++++++++-----------------
drivers/infiniband/hw/ehca/hipz_hw.h | 1 +
5 files changed, 28 insertions(+), 20 deletions(-)
diff --git a/drivers/infiniband/hw/ehca/ehca_classes.h b/drivers/infiniband/hw/ehca/ehca_classes.h
index 87f12d4..74d2b72 100644
--- a/drivers/infiniband/hw/ehca/ehca_classes.h
+++ b/drivers/infiniband/hw/ehca/ehca_classes.h
@@ -322,6 +322,7 @@ extern int ehca_static_rate;
extern int ehca_port_act_time;
extern int ehca_use_hp_mr;
extern int ehca_scaling_code;
+extern int ehca_lock_hcalls;
struct ipzu_queue_resp {
u32 qe_size; /* queue entry size */
diff --git a/drivers/infiniband/hw/ehca/ehca_main.c b/drivers/infiniband/hw/ehca/ehca_main.c
index 90d4334..6a56d86 100644
--- a/drivers/infiniband/hw/ehca/ehca_main.c
+++ b/drivers/infiniband/hw/ehca/ehca_main.c
@@ -43,13 +43,14 @@
#ifdef CONFIG_PPC_64K_PAGES
#include <linux/slab.h>
#endif
+
#include "ehca_classes.h"
#include "ehca_iverbs.h"
#include "ehca_mrmw.h"
#include "ehca_tools.h"
#include "hcp_if.h"
-#define HCAD_VERSION "0024"
+#define HCAD_VERSION "0025"
MODULE_LICENSE("Dual BSD/GPL");
MODULE_AUTHOR("Christoph Raisch <raisch@de.ibm.com>");
@@ -66,6 +67,7 @@ int ehca_poll_all_eqs = 1;
int ehca_static_rate = -1;
int ehca_scaling_code = 0;
int ehca_mr_largepage = 1;
+int ehca_lock_hcalls = -1;
module_param_named(open_aqp1, ehca_open_aqp1, int, S_IRUGO);
module_param_named(debug_level, ehca_debug_level, int, S_IRUGO);
@@ -77,6 +79,7 @@ module_param_named(poll_all_eqs, ehca_poll_all_eqs, int, S_IRUGO);
module_param_named(static_rate, ehca_static_rate, int, S_IRUGO);
module_param_named(scaling_code, ehca_scaling_code, int, S_IRUGO);
module_param_named(mr_largepage, ehca_mr_largepage, int, S_IRUGO);
+module_param_named(lock_hcalls, ehca_lock_hcalls, bool, S_IRUGO);
MODULE_PARM_DESC(open_aqp1,
"AQP1 on startup (0: no (default), 1: yes)");
@@ -102,6 +105,9 @@ MODULE_PARM_DESC(scaling_code,
MODULE_PARM_DESC(mr_largepage,
"use large page for MR (0: use PAGE_SIZE (default), "
"1: use large page depending on MR size");
+MODULE_PARM_DESC(lock_hcalls,
+ "serialize all hCalls made by the driver "
+ "(default: autodetect)");
DEFINE_RWLOCK(ehca_qp_idr_lock);
DEFINE_RWLOCK(ehca_cq_idr_lock);
@@ -258,6 +264,7 @@ static struct cap_descr {
{ HCA_CAP_UD_LL_QP, "HCA_CAP_UD_LL_QP" },
{ HCA_CAP_RESIZE_MR, "HCA_CAP_RESIZE_MR" },
{ HCA_CAP_MINI_QP, "HCA_CAP_MINI_QP" },
+ { HCA_CAP_H_ALLOC_RES_SYNC, "HCA_CAP_H_ALLOC_RES_SYNC" },
};
static int ehca_sense_attributes(struct ehca_shca *shca)
@@ -333,6 +340,12 @@ static int ehca_sense_attributes(struct ehca_shca *shca)
if (EHCA_BMASK_GET(hca_cap_descr[i].mask, shca->hca_cap))
ehca_gen_dbg(" %s", hca_cap_descr[i].descr);
+ /* Autodetect hCall locking -- the "H_ALLOC_RESOURCE synced" flag is
+ * a firmware property, so it's valid across all adapters
+ */
+ if (ehca_lock_hcalls == -1)
+ ehca_lock_hcalls = !(shca->hca_cap & HCA_CAP_H_ALLOC_RES_SYNC);
+
/* translate supported MR page sizes; always support 4K */
shca->hca_cap_mr_pgsize = EHCA_PAGESIZE;
if (ehca_mr_largepage) { /* support extra sizes only if enabled */
diff --git a/drivers/infiniband/hw/ehca/ehca_qp.c b/drivers/infiniband/hw/ehca/ehca_qp.c
index dd12668..eff5fb5 100644
--- a/drivers/infiniband/hw/ehca/ehca_qp.c
+++ b/drivers/infiniband/hw/ehca/ehca_qp.c
@@ -838,7 +838,7 @@ struct ib_srq *ehca_create_srq(struct ib_pd *pd,
/* copy back return values */
srq_init_attr->attr.max_wr = qp_init_attr.cap.max_recv_wr;
- srq_init_attr->attr.max_sge = qp_init_attr.cap.max_recv_sge;
+ srq_init_attr->attr.max_sge = 3;
/* drive SRQ into RTR state */
mqpcb = ehca_alloc_fw_ctrlblock(GFP_KERNEL);
@@ -1750,7 +1750,7 @@ int ehca_query_srq(struct ib_srq *srq, struct ib_srq_attr *srq_attr)
}
srq_attr->max_wr = qpcb->max_nr_outst_recv_wr - 1;
- srq_attr->max_sge = qpcb->actual_nr_sges_in_rq_wqe;
+ srq_attr->max_sge = 3;
srq_attr->srq_limit = EHCA_BMASK_GET(
MQPCB_CURR_SRQ_LIMIT, qpcb->curr_srq_limit);
diff --git a/drivers/infiniband/hw/ehca/hcp_if.c b/drivers/infiniband/hw/ehca/hcp_if.c
index c16a213..7029aa6 100644
--- a/drivers/infiniband/hw/ehca/hcp_if.c
+++ b/drivers/infiniband/hw/ehca/hcp_if.c
@@ -120,26 +120,21 @@ static long ehca_plpar_hcall_norets(unsigned long opcode,
unsigned long arg7)
{
long ret;
- int i, sleep_msecs, do_lock;
- unsigned long flags;
+ int i, sleep_msecs;
+ unsigned long flags = 0;
ehca_gen_dbg("opcode=%lx " HCALL7_REGS_FORMAT,
opcode, arg1, arg2, arg3, arg4, arg5, arg6, arg7);
- /* lock H_FREE_RESOURCE(MR) against itself and H_ALLOC_RESOURCE(MR) */
- if ((opcode == H_FREE_RESOURCE) && (arg7 == 5)) {
- arg7 = 0; /* better not upset firmware */
- do_lock = 1;
- }
-
for (i = 0; i < 5; i++) {
- if (do_lock)
+ /* serialize hCalls to work around firmware issue */
+ if (ehca_lock_hcalls)
spin_lock_irqsave(&hcall_lock, flags);
ret = plpar_hcall_norets(opcode, arg1, arg2, arg3, arg4,
arg5, arg6, arg7);
- if (do_lock)
+ if (ehca_lock_hcalls)
spin_unlock_irqrestore(&hcall_lock, flags);
if (H_IS_LONG_BUSY(ret)) {
@@ -174,24 +169,22 @@ static long ehca_plpar_hcall9(unsigned long opcode,
unsigned long arg9)
{
long ret;
- int i, sleep_msecs, do_lock;
+ int i, sleep_msecs;
unsigned long flags = 0;
ehca_gen_dbg("INPUT -- opcode=%lx " HCALL9_REGS_FORMAT, opcode,
arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9);
- /* lock H_ALLOC_RESOURCE(MR) against itself and H_FREE_RESOURCE(MR) */
- do_lock = ((opcode == H_ALLOC_RESOURCE) && (arg2 == 5));
-
for (i = 0; i < 5; i++) {
- if (do_lock)
+ /* serialize hCalls to work around firmware issue */
+ if (ehca_lock_hcalls)
spin_lock_irqsave(&hcall_lock, flags);
ret = plpar_hcall9(opcode, outs,
arg1, arg2, arg3, arg4, arg5,
arg6, arg7, arg8, arg9);
- if (do_lock)
+ if (ehca_lock_hcalls)
spin_unlock_irqrestore(&hcall_lock, flags);
if (H_IS_LONG_BUSY(ret)) {
@@ -821,7 +814,7 @@ u64 hipz_h_free_resource_mr(const struct ipz_adapter_handle adapter_handle,
return ehca_plpar_hcall_norets(H_FREE_RESOURCE,
adapter_handle.handle, /* r4 */
mr->ipz_mr_handle.handle, /* r5 */
- 0, 0, 0, 0, 5);
+ 0, 0, 0, 0, 0);
}
u64 hipz_h_reregister_pmr(const struct ipz_adapter_handle adapter_handle,
diff --git a/drivers/infiniband/hw/ehca/hipz_hw.h b/drivers/infiniband/hw/ehca/hipz_hw.h
index 485b840..bf996c7 100644
--- a/drivers/infiniband/hw/ehca/hipz_hw.h
+++ b/drivers/infiniband/hw/ehca/hipz_hw.h
@@ -378,6 +378,7 @@ struct hipz_query_hca {
#define HCA_CAP_UD_LL_QP EHCA_BMASK_IBM(16, 16)
#define HCA_CAP_RESIZE_MR EHCA_BMASK_IBM(17, 17)
#define HCA_CAP_MINI_QP EHCA_BMASK_IBM(18, 18)
+#define HCA_CAP_H_ALLOC_RES_SYNC EHCA_BMASK_IBM(19, 19)
/* query port response block */
struct hipz_query_port {
^ permalink raw reply related [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
@ 2007-12-01 4:03 Roland Dreier
0 siblings, 0 replies; 223+ messages in thread
From: Roland Dreier @ 2007-12-01 4:03 UTC (permalink / raw)
To: torvalds; +Cc: general, linux-kernel
Linus, please pull from
master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This tree is also available from kernel.org mirrors at:
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This will get two small fixes for 2.6.24:
Jack Morgenstein (1):
IPoIB: Fix oops if xmit is called when priv->broadcast is NULL
Joachim Fenkes (1):
IB/ehca: Fix static rate if path faster than link
drivers/infiniband/hw/ehca/ehca_av.c | 8 ++++++--
drivers/infiniband/ulp/ipoib/ipoib_main.c | 3 +++
2 files changed, 9 insertions(+), 2 deletions(-)
diff --git a/drivers/infiniband/hw/ehca/ehca_av.c b/drivers/infiniband/hw/ehca/ehca_av.c
index 453eb99..f7782c8 100644
--- a/drivers/infiniband/hw/ehca/ehca_av.c
+++ b/drivers/infiniband/hw/ehca/ehca_av.c
@@ -76,8 +76,12 @@ int ehca_calc_ipd(struct ehca_shca *shca, int port,
link = ib_width_enum_to_int(pa.active_width) * pa.active_speed;
- /* IPD = round((link / path) - 1) */
- *ipd = ((link + (path >> 1)) / path) - 1;
+ if (path >= link)
+ /* no need to throttle if path faster than link */
+ *ipd = 0;
+ else
+ /* IPD = round((link / path) - 1) */
+ *ipd = ((link + (path >> 1)) / path) - 1;
return 0;
}
diff --git a/drivers/infiniband/ulp/ipoib/ipoib_main.c b/drivers/infiniband/ulp/ipoib/ipoib_main.c
index a03a65e..c9f6077 100644
--- a/drivers/infiniband/ulp/ipoib/ipoib_main.c
+++ b/drivers/infiniband/ulp/ipoib/ipoib_main.c
@@ -460,6 +460,9 @@ static struct ipoib_path *path_rec_create(struct net_device *dev, void *gid)
struct ipoib_dev_priv *priv = netdev_priv(dev);
struct ipoib_path *path;
+ if (!priv->broadcast)
+ return NULL;
+
path = kzalloc(sizeof *path, GFP_ATOMIC);
if (!path)
return NULL;
^ permalink raw reply related [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
@ 2007-11-27 6:21 Roland Dreier
0 siblings, 0 replies; 223+ messages in thread
From: Roland Dreier @ 2007-11-27 6:21 UTC (permalink / raw)
To: torvalds; +Cc: general, linux-kernel
Linus, please pull from
master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This tree is also available from kernel.org mirrors at:
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This will pull some small fixes for 2.6.24:
Erez Zilber (1):
IB/iser: Add missing counter increment in iser_data_buf_aligned_len()
Jack Morgenstein (1):
mlx4_core: Fix state check in mlx4_qp_modify()
Joachim Fenkes (1):
IB/ehca: Fix static rate regression
Ralph Campbell (4):
IB/ipath: Fix offset returned to ibv_resize_cq()
IB/ipath: Fix error path in QP creation
IB/ipath: Fix offset returned to ibv_modify_srq()
IB/ipath: Normalize error return codes for posting work requests
drivers/infiniband/hw/ehca/ehca_qp.c | 4 +-
drivers/infiniband/hw/ipath/ipath_cq.c | 19 +++++++++---
drivers/infiniband/hw/ipath/ipath_qp.c | 15 ++++++----
drivers/infiniband/hw/ipath/ipath_srq.c | 44 +++++++++++++++++------------
drivers/infiniband/hw/ipath/ipath_verbs.c | 8 +++--
drivers/infiniband/ulp/iser/iser_memory.c | 6 ++-
drivers/net/mlx4/qp.c | 2 +-
7 files changed, 61 insertions(+), 37 deletions(-)
diff --git a/drivers/infiniband/hw/ehca/ehca_qp.c b/drivers/infiniband/hw/ehca/ehca_qp.c
index 2e3e654..dd12668 100644
--- a/drivers/infiniband/hw/ehca/ehca_qp.c
+++ b/drivers/infiniband/hw/ehca/ehca_qp.c
@@ -1203,7 +1203,7 @@ static int internal_modify_qp(struct ib_qp *ibqp,
mqpcb->service_level = attr->ah_attr.sl;
update_mask |= EHCA_BMASK_SET(MQPCB_MASK_SERVICE_LEVEL, 1);
- if (ehca_calc_ipd(shca, my_qp->init_attr.port_num,
+ if (ehca_calc_ipd(shca, mqpcb->prim_phys_port,
attr->ah_attr.static_rate,
&mqpcb->max_static_rate)) {
ret = -EINVAL;
@@ -1302,7 +1302,7 @@ static int internal_modify_qp(struct ib_qp *ibqp,
mqpcb->source_path_bits_al = attr->alt_ah_attr.src_path_bits;
mqpcb->service_level_al = attr->alt_ah_attr.sl;
- if (ehca_calc_ipd(shca, my_qp->init_attr.port_num,
+ if (ehca_calc_ipd(shca, mqpcb->alt_phys_port,
attr->alt_ah_attr.static_rate,
&mqpcb->max_static_rate_al)) {
ret = -EINVAL;
diff --git a/drivers/infiniband/hw/ipath/ipath_cq.c b/drivers/infiniband/hw/ipath/ipath_cq.c
index 08d8ae1..d1380c7 100644
--- a/drivers/infiniband/hw/ipath/ipath_cq.c
+++ b/drivers/infiniband/hw/ipath/ipath_cq.c
@@ -395,12 +395,9 @@ int ipath_resize_cq(struct ib_cq *ibcq, int cqe, struct ib_udata *udata)
goto bail;
}
- /*
- * Return the address of the WC as the offset to mmap.
- * See ipath_mmap() for details.
- */
+ /* Check that we can write the offset to mmap. */
if (udata && udata->outlen >= sizeof(__u64)) {
- __u64 offset = (__u64) wc;
+ __u64 offset = 0;
ret = ib_copy_to_udata(udata, &offset, sizeof(offset));
if (ret)
@@ -450,6 +447,18 @@ int ipath_resize_cq(struct ib_cq *ibcq, int cqe, struct ib_udata *udata)
struct ipath_mmap_info *ip = cq->ip;
ipath_update_mmap_info(dev, ip, sz, wc);
+
+ /*
+ * Return the offset to mmap.
+ * See ipath_mmap() for details.
+ */
+ if (udata && udata->outlen >= sizeof(__u64)) {
+ ret = ib_copy_to_udata(udata, &ip->offset,
+ sizeof(ip->offset));
+ if (ret)
+ goto bail;
+ }
+
spin_lock_irq(&dev->pending_lock);
if (list_empty(&ip->pending_mmaps))
list_add(&ip->pending_mmaps, &dev->pending_mmaps);
diff --git a/drivers/infiniband/hw/ipath/ipath_qp.c b/drivers/infiniband/hw/ipath/ipath_qp.c
index 6a41fdb..b997ff8 100644
--- a/drivers/infiniband/hw/ipath/ipath_qp.c
+++ b/drivers/infiniband/hw/ipath/ipath_qp.c
@@ -835,7 +835,8 @@ struct ib_qp *ipath_create_qp(struct ib_pd *ibpd,
init_attr->qp_type);
if (err) {
ret = ERR_PTR(err);
- goto bail_rwq;
+ vfree(qp->r_rq.wq);
+ goto bail_qp;
}
qp->ip = NULL;
ipath_reset_qp(qp);
@@ -863,7 +864,7 @@ struct ib_qp *ipath_create_qp(struct ib_pd *ibpd,
sizeof(offset));
if (err) {
ret = ERR_PTR(err);
- goto bail_rwq;
+ goto bail_ip;
}
} else {
u32 s = sizeof(struct ipath_rwq) +
@@ -875,7 +876,7 @@ struct ib_qp *ipath_create_qp(struct ib_pd *ibpd,
qp->r_rq.wq);
if (!qp->ip) {
ret = ERR_PTR(-ENOMEM);
- goto bail_rwq;
+ goto bail_ip;
}
err = ib_copy_to_udata(udata, &(qp->ip->offset),
@@ -907,9 +908,11 @@ struct ib_qp *ipath_create_qp(struct ib_pd *ibpd,
goto bail;
bail_ip:
- kfree(qp->ip);
-bail_rwq:
- vfree(qp->r_rq.wq);
+ if (qp->ip)
+ kref_put(&qp->ip->ref, ipath_release_mmap_info);
+ else
+ vfree(qp->r_rq.wq);
+ ipath_free_qp(&dev->qp_table, qp);
bail_qp:
kfree(qp);
bail_swq:
diff --git a/drivers/infiniband/hw/ipath/ipath_srq.c b/drivers/infiniband/hw/ipath/ipath_srq.c
index 40c36ec..2fef36f 100644
--- a/drivers/infiniband/hw/ipath/ipath_srq.c
+++ b/drivers/infiniband/hw/ipath/ipath_srq.c
@@ -59,7 +59,7 @@ int ipath_post_srq_receive(struct ib_srq *ibsrq, struct ib_recv_wr *wr,
if ((unsigned) wr->num_sge > srq->rq.max_sge) {
*bad_wr = wr;
- ret = -ENOMEM;
+ ret = -EINVAL;
goto bail;
}
@@ -211,11 +211,11 @@ int ipath_modify_srq(struct ib_srq *ibsrq, struct ib_srq_attr *attr,
struct ib_udata *udata)
{
struct ipath_srq *srq = to_isrq(ibsrq);
+ struct ipath_rwq *wq;
int ret = 0;
if (attr_mask & IB_SRQ_MAX_WR) {
struct ipath_rwq *owq;
- struct ipath_rwq *wq;
struct ipath_rwqe *p;
u32 sz, size, n, head, tail;
@@ -236,27 +236,20 @@ int ipath_modify_srq(struct ib_srq *ibsrq, struct ib_srq_attr *attr,
goto bail;
}
- /*
- * Return the address of the RWQ as the offset to mmap.
- * See ipath_mmap() for details.
- */
+ /* Check that we can write the offset to mmap. */
if (udata && udata->inlen >= sizeof(__u64)) {
__u64 offset_addr;
- __u64 offset = (__u64) wq;
+ __u64 offset = 0;
ret = ib_copy_from_udata(&offset_addr, udata,
sizeof(offset_addr));
- if (ret) {
- vfree(wq);
- goto bail;
- }
+ if (ret)
+ goto bail_free;
udata->outbuf = (void __user *) offset_addr;
ret = ib_copy_to_udata(udata, &offset,
sizeof(offset));
- if (ret) {
- vfree(wq);
- goto bail;
- }
+ if (ret)
+ goto bail_free;
}
spin_lock_irq(&srq->rq.lock);
@@ -277,10 +270,8 @@ int ipath_modify_srq(struct ib_srq *ibsrq, struct ib_srq_attr *attr,
else
n -= tail;
if (size <= n) {
- spin_unlock_irq(&srq->rq.lock);
- vfree(wq);
ret = -EINVAL;
- goto bail;
+ goto bail_unlock;
}
n = 0;
p = wq->wq;
@@ -314,6 +305,18 @@ int ipath_modify_srq(struct ib_srq *ibsrq, struct ib_srq_attr *attr,
u32 s = sizeof(struct ipath_rwq) + size * sz;
ipath_update_mmap_info(dev, ip, s, wq);
+
+ /*
+ * Return the offset to mmap.
+ * See ipath_mmap() for details.
+ */
+ if (udata && udata->inlen >= sizeof(__u64)) {
+ ret = ib_copy_to_udata(udata, &ip->offset,
+ sizeof(ip->offset));
+ if (ret)
+ goto bail;
+ }
+
spin_lock_irq(&dev->pending_lock);
if (list_empty(&ip->pending_mmaps))
list_add(&ip->pending_mmaps,
@@ -328,7 +331,12 @@ int ipath_modify_srq(struct ib_srq *ibsrq, struct ib_srq_attr *attr,
srq->limit = attr->srq_limit;
spin_unlock_irq(&srq->rq.lock);
}
+ goto bail;
+bail_unlock:
+ spin_unlock_irq(&srq->rq.lock);
+bail_free:
+ vfree(wq);
bail:
return ret;
}
diff --git a/drivers/infiniband/hw/ipath/ipath_verbs.c b/drivers/infiniband/hw/ipath/ipath_verbs.c
index 74f77e7..c4c9984 100644
--- a/drivers/infiniband/hw/ipath/ipath_verbs.c
+++ b/drivers/infiniband/hw/ipath/ipath_verbs.c
@@ -302,8 +302,10 @@ static int ipath_post_one_send(struct ipath_qp *qp, struct ib_send_wr *wr)
next = qp->s_head + 1;
if (next >= qp->s_size)
next = 0;
- if (next == qp->s_last)
- goto bail_inval;
+ if (next == qp->s_last) {
+ ret = -ENOMEM;
+ goto bail;
+ }
wqe = get_swqe_ptr(qp, qp->s_head);
wqe->wr = *wr;
@@ -404,7 +406,7 @@ static int ipath_post_receive(struct ib_qp *ibqp, struct ib_recv_wr *wr,
if ((unsigned) wr->num_sge > qp->r_rq.max_sge) {
*bad_wr = wr;
- ret = -ENOMEM;
+ ret = -EINVAL;
goto bail;
}
diff --git a/drivers/infiniband/ulp/iser/iser_memory.c b/drivers/infiniband/ulp/iser/iser_memory.c
index d687980..4a17743 100644
--- a/drivers/infiniband/ulp/iser/iser_memory.c
+++ b/drivers/infiniband/ulp/iser/iser_memory.c
@@ -310,13 +310,15 @@ static unsigned int iser_data_buf_aligned_len(struct iser_data_buf *data,
if (i + 1 < data->dma_nents) {
next_addr = ib_sg_dma_address(ibdev, sg_next(sg));
/* are i, i+1 fragments of the same page? */
- if (end_addr == next_addr)
+ if (end_addr == next_addr) {
+ cnt++;
continue;
- else if (!IS_4K_ALIGNED(end_addr)) {
+ } else if (!IS_4K_ALIGNED(end_addr)) {
ret_len = cnt + 1;
break;
}
}
+ cnt++;
}
if (i == data->dma_nents)
ret_len = cnt; /* loop ended */
diff --git a/drivers/net/mlx4/qp.c b/drivers/net/mlx4/qp.c
index 42b4763..fa24e65 100644
--- a/drivers/net/mlx4/qp.c
+++ b/drivers/net/mlx4/qp.c
@@ -113,7 +113,7 @@ int mlx4_qp_modify(struct mlx4_dev *dev, struct mlx4_mtt *mtt,
struct mlx4_cmd_mailbox *mailbox;
int ret = 0;
- if (cur_state >= MLX4_QP_NUM_STATE || cur_state >= MLX4_QP_NUM_STATE ||
+ if (cur_state >= MLX4_QP_NUM_STATE || new_state >= MLX4_QP_NUM_STATE ||
!op[cur_state][new_state])
return -EINVAL;
^ permalink raw reply related [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
@ 2007-11-14 16:23 Roland Dreier
0 siblings, 0 replies; 223+ messages in thread
From: Roland Dreier @ 2007-11-14 16:23 UTC (permalink / raw)
To: torvalds; +Cc: linux-kernel, general
Linus, please pull from
master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This tree is also available from kernel.org mirrors at:
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This will pull some low-level driver fixes for 2.6.24:
Ali Ayoub (1):
mlx4_core: Fix possible bad free in mlx4_buf_free()
Jack Morgenstein (1):
mlx4_core: Fix thinko in QP destroy (incorrect bitmap_free)
Joachim Fenkes (2):
IB/ehca: Return physical link information in query_port()
IB/ehca: Fix static rate calculation
Ralph Campbell (2):
IB/ipath: Fix memory leak in ipath_resize_cq() if copy_to_user() fails
IB/ipath: Fix race with ACK retry timeout list management
Steve Wise (1):
RDMA/cxgb3: Set the max_qp_init_rd_atom attribute in query_device
drivers/infiniband/hw/cxgb3/iwch_provider.c | 1 +
drivers/infiniband/hw/ehca/ehca_av.c | 48 ++++++++++++++++++++++-----
drivers/infiniband/hw/ehca/ehca_classes.h | 1 -
drivers/infiniband/hw/ehca/ehca_hca.c | 20 ++++++++---
drivers/infiniband/hw/ehca/ehca_iverbs.h | 3 ++
drivers/infiniband/hw/ehca/ehca_main.c | 3 --
drivers/infiniband/hw/ehca/ehca_qp.c | 29 +++++++---------
drivers/infiniband/hw/ehca/hipz_hw.h | 6 +++-
drivers/infiniband/hw/ipath/ipath_cq.c | 11 ++++--
drivers/infiniband/hw/ipath/ipath_rc.c | 5 ++-
drivers/net/mlx4/alloc.c | 7 ++--
drivers/net/mlx4/qp.c | 2 +-
12 files changed, 89 insertions(+), 47 deletions(-)
diff --git a/drivers/infiniband/hw/cxgb3/iwch_provider.c b/drivers/infiniband/hw/cxgb3/iwch_provider.c
index f0c7775..b5436ca 100644
--- a/drivers/infiniband/hw/cxgb3/iwch_provider.c
+++ b/drivers/infiniband/hw/cxgb3/iwch_provider.c
@@ -1000,6 +1000,7 @@ static int iwch_query_device(struct ib_device *ibdev,
props->max_sge = dev->attr.max_sge_per_wr;
props->max_sge_rd = 1;
props->max_qp_rd_atom = dev->attr.max_rdma_reads_per_qp;
+ props->max_qp_init_rd_atom = dev->attr.max_rdma_reads_per_qp;
props->max_cq = dev->attr.max_cqs;
props->max_cqe = dev->attr.max_cqes_per_cq;
props->max_mr = dev->attr.max_mem_regs;
diff --git a/drivers/infiniband/hw/ehca/ehca_av.c b/drivers/infiniband/hw/ehca/ehca_av.c
index 97d1086..453eb99 100644
--- a/drivers/infiniband/hw/ehca/ehca_av.c
+++ b/drivers/infiniband/hw/ehca/ehca_av.c
@@ -50,6 +50,38 @@
static struct kmem_cache *av_cache;
+int ehca_calc_ipd(struct ehca_shca *shca, int port,
+ enum ib_rate path_rate, u32 *ipd)
+{
+ int path = ib_rate_to_mult(path_rate);
+ int link, ret;
+ struct ib_port_attr pa;
+
+ if (path_rate == IB_RATE_PORT_CURRENT) {
+ *ipd = 0;
+ return 0;
+ }
+
+ if (unlikely(path < 0)) {
+ ehca_err(&shca->ib_device, "Invalid static rate! path_rate=%x",
+ path_rate);
+ return -EINVAL;
+ }
+
+ ret = ehca_query_port(&shca->ib_device, port, &pa);
+ if (unlikely(ret < 0)) {
+ ehca_err(&shca->ib_device, "Failed to query port ret=%i", ret);
+ return ret;
+ }
+
+ link = ib_width_enum_to_int(pa.active_width) * pa.active_speed;
+
+ /* IPD = round((link / path) - 1) */
+ *ipd = ((link + (path >> 1)) / path) - 1;
+
+ return 0;
+}
+
struct ib_ah *ehca_create_ah(struct ib_pd *pd, struct ib_ah_attr *ah_attr)
{
int ret;
@@ -69,15 +101,13 @@ struct ib_ah *ehca_create_ah(struct ib_pd *pd, struct ib_ah_attr *ah_attr)
av->av.slid_path_bits = ah_attr->src_path_bits;
if (ehca_static_rate < 0) {
- int ah_mult = ib_rate_to_mult(ah_attr->static_rate);
- int ehca_mult =
- ib_rate_to_mult(shca->sport[ah_attr->port_num].rate );
-
- if (ah_mult >= ehca_mult)
- av->av.ipd = 0;
- else
- av->av.ipd = (ah_mult > 0) ?
- ((ehca_mult - 1) / ah_mult) : 0;
+ u32 ipd;
+ if (ehca_calc_ipd(shca, ah_attr->port_num,
+ ah_attr->static_rate, &ipd)) {
+ ret = -EINVAL;
+ goto create_ah_exit1;
+ }
+ av->av.ipd = ipd;
} else
av->av.ipd = ehca_static_rate;
diff --git a/drivers/infiniband/hw/ehca/ehca_classes.h b/drivers/infiniband/hw/ehca/ehca_classes.h
index 2d660ae..87f12d4 100644
--- a/drivers/infiniband/hw/ehca/ehca_classes.h
+++ b/drivers/infiniband/hw/ehca/ehca_classes.h
@@ -95,7 +95,6 @@ struct ehca_sma_attr {
struct ehca_sport {
struct ib_cq *ibcq_aqp1;
struct ib_qp *ibqp_aqp1;
- enum ib_rate rate;
enum ib_port_state port_state;
struct ehca_sma_attr saved_attr;
};
diff --git a/drivers/infiniband/hw/ehca/ehca_hca.c b/drivers/infiniband/hw/ehca/ehca_hca.c
index 15806d1..5bd7b59 100644
--- a/drivers/infiniband/hw/ehca/ehca_hca.c
+++ b/drivers/infiniband/hw/ehca/ehca_hca.c
@@ -151,7 +151,6 @@ int ehca_query_port(struct ib_device *ibdev,
}
memset(props, 0, sizeof(struct ib_port_attr));
- props->state = rblock->state;
switch (rblock->max_mtu) {
case 0x1:
@@ -188,11 +187,20 @@ int ehca_query_port(struct ib_device *ibdev,
props->subnet_timeout = rblock->subnet_timeout;
props->init_type_reply = rblock->init_type_reply;
- props->active_width = IB_WIDTH_12X;
- props->active_speed = 0x1;
-
- /* at the moment (logical) link state is always LINK_UP */
- props->phys_state = 0x5;
+ if (rblock->state && rblock->phys_width) {
+ props->phys_state = rblock->phys_pstate;
+ props->state = rblock->phys_state;
+ props->active_width = rblock->phys_width;
+ props->active_speed = rblock->phys_speed;
+ } else {
+ /* old firmware releases don't report physical
+ * port info, so use default values
+ */
+ props->phys_state = 5;
+ props->state = rblock->state;
+ props->active_width = IB_WIDTH_12X;
+ props->active_speed = 0x1;
+ }
query_port1:
ehca_free_fw_ctrlblock(rblock);
diff --git a/drivers/infiniband/hw/ehca/ehca_iverbs.h b/drivers/infiniband/hw/ehca/ehca_iverbs.h
index dce503b..5485799 100644
--- a/drivers/infiniband/hw/ehca/ehca_iverbs.h
+++ b/drivers/infiniband/hw/ehca/ehca_iverbs.h
@@ -189,6 +189,9 @@ int ehca_mmap(struct ib_ucontext *context, struct vm_area_struct *vma);
void ehca_poll_eqs(unsigned long data);
+int ehca_calc_ipd(struct ehca_shca *shca, int port,
+ enum ib_rate path_rate, u32 *ipd);
+
#ifdef CONFIG_PPC_64K_PAGES
void *ehca_alloc_fw_ctrlblock(gfp_t flags);
void ehca_free_fw_ctrlblock(void *ptr);
diff --git a/drivers/infiniband/hw/ehca/ehca_main.c b/drivers/infiniband/hw/ehca/ehca_main.c
index c6cd38c..90d4334 100644
--- a/drivers/infiniband/hw/ehca/ehca_main.c
+++ b/drivers/infiniband/hw/ehca/ehca_main.c
@@ -327,9 +327,6 @@ static int ehca_sense_attributes(struct ehca_shca *shca)
shca->hw_level = ehca_hw_level;
ehca_gen_dbg(" ... hardware level=%x", shca->hw_level);
- shca->sport[0].rate = IB_RATE_30_GBPS;
- shca->sport[1].rate = IB_RATE_30_GBPS;
-
shca->hca_cap = rblock->hca_cap_indicators;
ehca_gen_dbg(" ... HCA capabilities:");
for (i = 0; i < ARRAY_SIZE(hca_cap_descr); i++)
diff --git a/drivers/infiniband/hw/ehca/ehca_qp.c b/drivers/infiniband/hw/ehca/ehca_qp.c
index de18264..2e3e654 100644
--- a/drivers/infiniband/hw/ehca/ehca_qp.c
+++ b/drivers/infiniband/hw/ehca/ehca_qp.c
@@ -1196,10 +1196,6 @@ static int internal_modify_qp(struct ib_qp *ibqp,
update_mask |= EHCA_BMASK_SET(MQPCB_MASK_QKEY, 1);
}
if (attr_mask & IB_QP_AV) {
- int ah_mult = ib_rate_to_mult(attr->ah_attr.static_rate);
- int ehca_mult = ib_rate_to_mult(shca->sport[my_qp->
- init_attr.port_num].rate);
-
mqpcb->dlid = attr->ah_attr.dlid;
update_mask |= EHCA_BMASK_SET(MQPCB_MASK_DLID, 1);
mqpcb->source_path_bits = attr->ah_attr.src_path_bits;
@@ -1207,11 +1203,12 @@ static int internal_modify_qp(struct ib_qp *ibqp,
mqpcb->service_level = attr->ah_attr.sl;
update_mask |= EHCA_BMASK_SET(MQPCB_MASK_SERVICE_LEVEL, 1);
- if (ah_mult < ehca_mult)
- mqpcb->max_static_rate = (ah_mult > 0) ?
- ((ehca_mult - 1) / ah_mult) : 0;
- else
- mqpcb->max_static_rate = 0;
+ if (ehca_calc_ipd(shca, my_qp->init_attr.port_num,
+ attr->ah_attr.static_rate,
+ &mqpcb->max_static_rate)) {
+ ret = -EINVAL;
+ goto modify_qp_exit2;
+ }
update_mask |= EHCA_BMASK_SET(MQPCB_MASK_MAX_STATIC_RATE, 1);
/*
@@ -1280,10 +1277,6 @@ static int internal_modify_qp(struct ib_qp *ibqp,
(MQPCB_MASK_RDMA_ATOMIC_OUTST_DEST_QP, 1);
}
if (attr_mask & IB_QP_ALT_PATH) {
- int ah_mult = ib_rate_to_mult(attr->alt_ah_attr.static_rate);
- int ehca_mult = ib_rate_to_mult(
- shca->sport[my_qp->init_attr.port_num].rate);
-
if (attr->alt_port_num < 1
|| attr->alt_port_num > shca->num_ports) {
ret = -EINVAL;
@@ -1309,10 +1302,12 @@ static int internal_modify_qp(struct ib_qp *ibqp,
mqpcb->source_path_bits_al = attr->alt_ah_attr.src_path_bits;
mqpcb->service_level_al = attr->alt_ah_attr.sl;
- if (ah_mult > 0 && ah_mult < ehca_mult)
- mqpcb->max_static_rate_al = (ehca_mult - 1) / ah_mult;
- else
- mqpcb->max_static_rate_al = 0;
+ if (ehca_calc_ipd(shca, my_qp->init_attr.port_num,
+ attr->alt_ah_attr.static_rate,
+ &mqpcb->max_static_rate_al)) {
+ ret = -EINVAL;
+ goto modify_qp_exit2;
+ }
/* OpenIB doesn't support alternate retry counts - copy them */
mqpcb->retry_count_al = mqpcb->retry_count;
diff --git a/drivers/infiniband/hw/ehca/hipz_hw.h b/drivers/infiniband/hw/ehca/hipz_hw.h
index d9739e5..485b840 100644
--- a/drivers/infiniband/hw/ehca/hipz_hw.h
+++ b/drivers/infiniband/hw/ehca/hipz_hw.h
@@ -402,7 +402,11 @@ struct hipz_query_port {
u64 max_msg_sz;
u32 max_mtu;
u32 vl_cap;
- u8 reserved2[1900];
+ u32 phys_pstate;
+ u32 phys_state;
+ u32 phys_speed;
+ u32 phys_width;
+ u8 reserved2[1884];
u64 guid_entries[255];
} __attribute__ ((packed));
diff --git a/drivers/infiniband/hw/ipath/ipath_cq.c b/drivers/infiniband/hw/ipath/ipath_cq.c
index 645ed71..08d8ae1 100644
--- a/drivers/infiniband/hw/ipath/ipath_cq.c
+++ b/drivers/infiniband/hw/ipath/ipath_cq.c
@@ -404,7 +404,7 @@ int ipath_resize_cq(struct ib_cq *ibcq, int cqe, struct ib_udata *udata)
ret = ib_copy_to_udata(udata, &offset, sizeof(offset));
if (ret)
- goto bail;
+ goto bail_free;
}
spin_lock_irq(&cq->lock);
@@ -424,10 +424,8 @@ int ipath_resize_cq(struct ib_cq *ibcq, int cqe, struct ib_udata *udata)
else
n = head - tail;
if (unlikely((u32)cqe < n)) {
- spin_unlock_irq(&cq->lock);
- vfree(wc);
ret = -EOVERFLOW;
- goto bail;
+ goto bail_unlock;
}
for (n = 0; tail != head; n++) {
if (cq->ip)
@@ -459,7 +457,12 @@ int ipath_resize_cq(struct ib_cq *ibcq, int cqe, struct ib_udata *udata)
}
ret = 0;
+ goto bail;
+bail_unlock:
+ spin_unlock_irq(&cq->lock);
+bail_free:
+ vfree(wc);
bail:
return ret;
}
diff --git a/drivers/infiniband/hw/ipath/ipath_rc.c b/drivers/infiniband/hw/ipath/ipath_rc.c
index 5c29b2b..120a61b 100644
--- a/drivers/infiniband/hw/ipath/ipath_rc.c
+++ b/drivers/infiniband/hw/ipath/ipath_rc.c
@@ -959,8 +959,9 @@ static int do_rc_ack(struct ipath_qp *qp, u32 aeth, u32 psn, int opcode,
/* If this is a partial ACK, reset the retransmit timer. */
if (qp->s_last != qp->s_tail) {
spin_lock(&dev->pending_lock);
- list_add_tail(&qp->timerwait,
- &dev->pending[dev->pending_index]);
+ if (list_empty(&qp->timerwait))
+ list_add_tail(&qp->timerwait,
+ &dev->pending[dev->pending_index]);
spin_unlock(&dev->pending_lock);
/*
* If we get a partial ACK for a resent operation,
diff --git a/drivers/net/mlx4/alloc.c b/drivers/net/mlx4/alloc.c
index f8d63d3..b226e01 100644
--- a/drivers/net/mlx4/alloc.c
+++ b/drivers/net/mlx4/alloc.c
@@ -171,9 +171,10 @@ void mlx4_buf_free(struct mlx4_dev *dev, int size, struct mlx4_buf *buf)
buf->u.direct.map);
else {
for (i = 0; i < buf->nbufs; ++i)
- dma_free_coherent(&dev->pdev->dev, PAGE_SIZE,
- buf->u.page_list[i].buf,
- buf->u.page_list[i].map);
+ if (buf->u.page_list[i].buf)
+ dma_free_coherent(&dev->pdev->dev, PAGE_SIZE,
+ buf->u.page_list[i].buf,
+ buf->u.page_list[i].map);
kfree(buf->u.page_list);
}
}
diff --git a/drivers/net/mlx4/qp.c b/drivers/net/mlx4/qp.c
index cc4b1be..42b4763 100644
--- a/drivers/net/mlx4/qp.c
+++ b/drivers/net/mlx4/qp.c
@@ -240,7 +240,7 @@ void mlx4_qp_free(struct mlx4_dev *dev, struct mlx4_qp *qp)
mlx4_table_put(dev, &qp_table->auxc_table, qp->qpn);
mlx4_table_put(dev, &qp_table->qp_table, qp->qpn);
- if (qp->qpn < dev->caps.sqp_start + 8)
+ if (qp->qpn >= dev->caps.sqp_start + 8)
mlx4_bitmap_free(&qp_table->bitmap, qp->qpn);
}
EXPORT_SYMBOL_GPL(mlx4_qp_free);
^ permalink raw reply related [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
@ 2007-10-30 22:17 Roland Dreier
0 siblings, 0 replies; 223+ messages in thread
From: Roland Dreier @ 2007-10-30 22:17 UTC (permalink / raw)
To: torvalds; +Cc: general, linux-kernel
Linus, please pull from
master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This tree is also available from kernel.org mirrors at:
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This will pull some fixes for 2.6.24:
Anton Blanchard (1):
IB/fmr_pool: Stop ib_fmr threads from contributing to load average
Dave Olson (1):
IB/ipath: Fix incorrect use of sizeof on msg buffer (function argument)
Michael Albaugh (1):
IB/ipath: Limit length checksummed in eeprom
Ralph Campbell (1):
IB/ipath: Fix a race where s_last is updated without lock held
Roland Dreier (2):
IPoIB/cm: Fix receive QP cleanup
IB/mlx4: Lock SQ lock in mlx4_ib_post_send()
drivers/infiniband/core/fmr_pool.c | 8 ++++----
drivers/infiniband/hw/ipath/ipath_eeprom.c | 10 +++++++++-
drivers/infiniband/hw/ipath/ipath_intr.c | 18 +++++++++---------
drivers/infiniband/hw/ipath/ipath_ruc.c | 14 +++++++++-----
drivers/infiniband/hw/mlx4/qp.c | 4 ++--
drivers/infiniband/ulp/ipoib/ipoib_cm.c | 2 +-
6 files changed, 34 insertions(+), 22 deletions(-)
diff --git a/drivers/infiniband/core/fmr_pool.c b/drivers/infiniband/core/fmr_pool.c
index d7f6452..e8d5f6b 100644
--- a/drivers/infiniband/core/fmr_pool.c
+++ b/drivers/infiniband/core/fmr_pool.c
@@ -291,10 +291,10 @@ struct ib_fmr_pool *ib_create_fmr_pool(struct ib_pd *pd,
atomic_set(&pool->flush_ser, 0);
init_waitqueue_head(&pool->force_wait);
- pool->thread = kthread_create(ib_fmr_cleanup_thread,
- pool,
- "ib_fmr(%s)",
- device->name);
+ pool->thread = kthread_run(ib_fmr_cleanup_thread,
+ pool,
+ "ib_fmr(%s)",
+ device->name);
if (IS_ERR(pool->thread)) {
printk(KERN_WARNING PFX "couldn't start cleanup thread\n");
ret = PTR_ERR(pool->thread);
diff --git a/drivers/infiniband/hw/ipath/ipath_eeprom.c b/drivers/infiniband/hw/ipath/ipath_eeprom.c
index bcfa3cc..e7c25db 100644
--- a/drivers/infiniband/hw/ipath/ipath_eeprom.c
+++ b/drivers/infiniband/hw/ipath/ipath_eeprom.c
@@ -538,7 +538,15 @@ static u8 flash_csum(struct ipath_flash *ifp, int adjust)
u8 *ip = (u8 *) ifp;
u8 csum = 0, len;
- for (len = 0; len < ifp->if_length; len++)
+ /*
+ * Limit length checksummed to max length of actual data.
+ * Checksum of erased eeprom will still be bad, but we avoid
+ * reading past the end of the buffer we were passed.
+ */
+ len = ifp->if_length;
+ if (len > sizeof(struct ipath_flash))
+ len = sizeof(struct ipath_flash);
+ while (len--)
csum += *ip++;
csum -= ifp->if_csum;
csum = ~csum;
diff --git a/drivers/infiniband/hw/ipath/ipath_intr.c b/drivers/infiniband/hw/ipath/ipath_intr.c
index 6a5dd5c..c61f9da 100644
--- a/drivers/infiniband/hw/ipath/ipath_intr.c
+++ b/drivers/infiniband/hw/ipath/ipath_intr.c
@@ -453,7 +453,7 @@ skip_ibchange:
}
static void handle_supp_msgs(struct ipath_devdata *dd,
- unsigned supp_msgs, char msg[512])
+ unsigned supp_msgs, char *msg, int msgsz)
{
/*
* Print the message unless it's ibc status change only, which
@@ -461,9 +461,9 @@ static void handle_supp_msgs(struct ipath_devdata *dd,
*/
if (dd->ipath_lasterror & ~INFINIPATH_E_IBSTATUSCHANGED) {
int iserr;
- iserr = ipath_decode_err(msg, sizeof msg,
- dd->ipath_lasterror &
- ~INFINIPATH_E_IBSTATUSCHANGED);
+ iserr = ipath_decode_err(msg, msgsz,
+ dd->ipath_lasterror &
+ ~INFINIPATH_E_IBSTATUSCHANGED);
if (dd->ipath_lasterror &
~(INFINIPATH_E_RRCVEGRFULL |
INFINIPATH_E_RRCVHDRFULL | INFINIPATH_E_PKTERRS))
@@ -492,8 +492,8 @@ static void handle_supp_msgs(struct ipath_devdata *dd,
}
static unsigned handle_frequent_errors(struct ipath_devdata *dd,
- ipath_err_t errs, char msg[512],
- int *noprint)
+ ipath_err_t errs, char *msg,
+ int msgsz, int *noprint)
{
unsigned long nc;
static unsigned long nextmsg_time;
@@ -512,7 +512,7 @@ static unsigned handle_frequent_errors(struct ipath_devdata *dd,
nextmsg_time = nc + HZ * 3;
}
else if (supp_msgs) {
- handle_supp_msgs(dd, supp_msgs, msg);
+ handle_supp_msgs(dd, supp_msgs, msg, msgsz);
supp_msgs = 0;
nmsgs = 0;
}
@@ -525,14 +525,14 @@ static unsigned handle_frequent_errors(struct ipath_devdata *dd,
static int handle_errors(struct ipath_devdata *dd, ipath_err_t errs)
{
- char msg[512];
+ char msg[128];
u64 ignore_this_time = 0;
int i, iserr = 0;
int chkerrpkts = 0, noprint = 0;
unsigned supp_msgs;
int log_idx;
- supp_msgs = handle_frequent_errors(dd, errs, msg, &noprint);
+ supp_msgs = handle_frequent_errors(dd, errs, msg, sizeof msg, &noprint);
/* don't report errors that are masked */
errs &= ~dd->ipath_maskederrs;
diff --git a/drivers/infiniband/hw/ipath/ipath_ruc.c b/drivers/infiniband/hw/ipath/ipath_ruc.c
index 4b6b7ee..54c61a9 100644
--- a/drivers/infiniband/hw/ipath/ipath_ruc.c
+++ b/drivers/infiniband/hw/ipath/ipath_ruc.c
@@ -630,11 +630,8 @@ bail:;
void ipath_send_complete(struct ipath_qp *qp, struct ipath_swqe *wqe,
enum ib_wc_status status)
{
- u32 last = qp->s_last;
-
- if (++last == qp->s_size)
- last = 0;
- qp->s_last = last;
+ unsigned long flags;
+ u32 last;
/* See ch. 11.2.4.1 and 10.7.3.1 */
if (!(qp->s_flags & IPATH_S_SIGNAL_REQ_WR) ||
@@ -658,4 +655,11 @@ void ipath_send_complete(struct ipath_qp *qp, struct ipath_swqe *wqe,
wc.port_num = 0;
ipath_cq_enter(to_icq(qp->ibqp.send_cq), &wc, 0);
}
+
+ spin_lock_irqsave(&qp->s_lock, flags);
+ last = qp->s_last;
+ if (++last >= qp->s_size)
+ last = 0;
+ qp->s_last = last;
+ spin_unlock_irqrestore(&qp->s_lock, flags);
}
diff --git a/drivers/infiniband/hw/mlx4/qp.c b/drivers/infiniband/hw/mlx4/qp.c
index 6b33224..8cba9c5 100644
--- a/drivers/infiniband/hw/mlx4/qp.c
+++ b/drivers/infiniband/hw/mlx4/qp.c
@@ -1282,7 +1282,7 @@ int mlx4_ib_post_send(struct ib_qp *ibqp, struct ib_send_wr *wr,
int size;
int i;
- spin_lock_irqsave(&qp->rq.lock, flags);
+ spin_lock_irqsave(&qp->sq.lock, flags);
ind = qp->sq.head;
@@ -1448,7 +1448,7 @@ out:
(qp->sq.wqe_cnt - 1));
}
- spin_unlock_irqrestore(&qp->rq.lock, flags);
+ spin_unlock_irqrestore(&qp->sq.lock, flags);
return err;
}
diff --git a/drivers/infiniband/ulp/ipoib/ipoib_cm.c b/drivers/infiniband/ulp/ipoib/ipoib_cm.c
index 8761077..059cf92 100644
--- a/drivers/infiniband/ulp/ipoib/ipoib_cm.c
+++ b/drivers/infiniband/ulp/ipoib/ipoib_cm.c
@@ -60,7 +60,7 @@ static struct ib_qp_attr ipoib_cm_err_attr = {
.qp_state = IB_QPS_ERR
};
-#define IPOIB_CM_RX_DRAIN_WRID 0x7fffffff
+#define IPOIB_CM_RX_DRAIN_WRID 0xffffffff
static struct ib_send_wr ipoib_cm_rx_drain_wr = {
.wr_id = IPOIB_CM_RX_DRAIN_WRID,
^ permalink raw reply related [flat|nested] 223+ messages in thread
* [GIT PULL] please pull infiniband.git
@ 2007-10-23 16:30 Roland Dreier
0 siblings, 0 replies; 223+ messages in thread
From: Roland Dreier @ 2007-10-23 16:30 UTC (permalink / raw)
To: torvalds; +Cc: general, linux-kernel
Linus, please pull from
master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
This tree is also available from kernel.org mirrors at:
git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git for-linus
this will get some more fixes/changes for 2.6.24. I have one more
IPoIB feature (support for CM without SRQs) I hope to send later
today, but we'll see...
Anton Blanchard (1):
IPoIB: Use round_jiffies() for ah_reap_task
Jack Morgenstein (2):
IB/mlx4: Sanity check userspace send queue sizes
mlx4_core: Increase command timeout for INIT_HCA to 10 seconds
Joachim Fenkes (5):
IB/ehca: Supply QP token for SRQ base QPs
IB/ehca: Fix masking error in {,re}reg_phys_mr()
IB/ehca: Fix ehca_encode_hwpage_size() and alloc_fmr()
IB/ehca: Change meaning of hca_cap_mr_pgsize
IB/ehca: Enable large page MRs by default
Michael S. Tsirkin (1):
IPoIB/cm: Use common CQ for CM send completions
Roland Dreier (4):
mlx4_core: Kill mlx4_write64_raw()
IB/mthca: Avoid alignment traps when writing doorbells
IPoIB: Rewrite "if (!likely(...))" as "if (unlikely(!(...)))"
IB/uverbs: Fix checking of userspace object ownership
Sean Hefty (2):
RDMA/cma: Add locking around QP accesses
RDMA/cma: Fix deadlock destroying listen requests
drivers/infiniband/core/cma.c | 160 +++++++++++++------------
drivers/infiniband/core/uverbs_cmd.c | 8 +-
drivers/infiniband/hw/ehca/ehca_classes.h | 1 -
drivers/infiniband/hw/ehca/ehca_hca.c | 1 +
drivers/infiniband/hw/ehca/ehca_main.c | 20 +++-
drivers/infiniband/hw/ehca/ehca_mrmw.c | 57 ++++-----
drivers/infiniband/hw/ehca/ehca_qp.c | 4 +-
drivers/infiniband/hw/mlx4/qp.c | 16 +++-
drivers/infiniband/hw/mthca/mthca_cq.c | 53 +++------
drivers/infiniband/hw/mthca/mthca_doorbell.h | 13 ++-
drivers/infiniband/hw/mthca/mthca_eq.c | 21 +---
drivers/infiniband/hw/mthca/mthca_qp.c | 45 +++-----
drivers/infiniband/hw/mthca/mthca_srq.c | 11 +--
drivers/infiniband/ulp/ipoib/ipoib.h | 15 ++-
drivers/infiniband/ulp/ipoib/ipoib_cm.c | 114 ++++++++-----------
drivers/infiniband/ulp/ipoib/ipoib_ib.c | 52 +++++----
drivers/infiniband/ulp/ipoib/ipoib_main.c | 4 +-
drivers/net/mlx4/fw.c | 2 +-
include/linux/mlx4/doorbell.h | 11 --
19 files changed, 284 insertions(+), 324 deletions(-)
diff --git a/drivers/infiniband/core/cma.c b/drivers/infiniband/core/cma.c
index 93644f8..ee946cc 100644
--- a/drivers/infiniband/core/cma.c
+++ b/drivers/infiniband/core/cma.c
@@ -114,13 +114,16 @@ struct rdma_id_private {
struct rdma_bind_list *bind_list;
struct hlist_node node;
- struct list_head list;
- struct list_head listen_list;
+ struct list_head list; /* listen_any_list or cma_device.list */
+ struct list_head listen_list; /* per device listens */
struct cma_device *cma_dev;
struct list_head mc_list;
+ int internal_id;
enum cma_state state;
spinlock_t lock;
+ struct mutex qp_mutex;
+
struct completion comp;
atomic_t refcount;
wait_queue_head_t wait_remove;
@@ -389,6 +392,7 @@ struct rdma_cm_id *rdma_create_id(rdma_cm_event_handler event_handler,
id_priv->id.event_handler = event_handler;
id_priv->id.ps = ps;
spin_lock_init(&id_priv->lock);
+ mutex_init(&id_priv->qp_mutex);
init_completion(&id_priv->comp);
atomic_set(&id_priv->refcount, 1);
init_waitqueue_head(&id_priv->wait_remove);
@@ -474,61 +478,86 @@ EXPORT_SYMBOL(rdma_create_qp);
void rdma_destroy_qp(struct rdma_cm_id *id)
{
- ib_destroy_qp(id->qp);
+ struct rdma_id_private *id_priv;
+
+ id_priv = container_of(id, struct rdma_id_private, id);
+ mutex_lock(&id_priv->qp_mutex);
+ ib_destroy_qp(id_priv->id.qp);
+ id_priv->id.qp = NULL;
+ mutex_unlock(&id_priv->qp_mutex);
}
EXPORT_SYMBOL(rdma_destroy_qp);
-static int cma_modify_qp_rtr(struct rdma_cm_id *id)
+static int cma_modify_qp_rtr(struct rdma_id_private *id_priv)
{
struct ib_qp_attr qp_attr;
int qp_attr_mask, ret;
- if (!id->qp)
- return 0;
+ mutex_lock(&id_priv->qp_mutex);
+ if (!id_priv->id.qp) {
+ ret = 0;
+ goto out;
+ }
/* Need to update QP attributes from default values. */
qp_attr.qp_state = IB_QPS_INIT;
- ret = rdma_init_qp_attr(id, &qp_attr, &qp_attr_mask);
+ ret = rdma_init_qp_attr(&id_priv->id, &qp_attr, &qp_attr_mask);
if (ret)
- return ret;
+ goto out;
- ret = ib_modify_qp(id->qp, &qp_attr, qp_attr_mask);
+ ret = ib_modify_qp(id_priv->id.qp, &qp_attr, qp_attr_mask);
if (ret)
- return ret;
+ goto out;
qp_attr.qp_state = IB_QPS_RTR;
- ret = rdma_init_qp_attr(id, &qp_attr, &qp_attr_mask);
+ ret = rdma_init_qp_attr(&id_priv->id, &qp_attr, &qp_attr_mask);
if (ret)
- return ret;
+ goto out;
- return ib_modify_qp(id->qp, &qp_attr, qp_attr_mask);
+ ret = ib_modify_qp(id_priv->id.qp, &qp_attr, qp_attr_mask);
+out:
+ mutex_unlock(&id_priv->qp_mutex);
+ return ret;
}
-static int cma_modify_qp_rts(struct rdma_cm_id *id)
+static int cma_modify_qp_rts(struct rdma_id_private *id_priv)
{
struct ib_qp_attr qp_attr;
int qp_attr_mask, ret;
- if (!id->qp)
- return 0;
+ mutex_lock(&id_priv->qp_mutex);
+ if (!id_priv->id.qp) {
+ ret = 0;
+ goto out;
+ }
qp_attr.qp_state = IB_QPS_RTS;
- ret = rdma_init_qp_attr(id, &qp_attr, &qp_attr_mask);
+ ret = rdma_init_qp_attr(&id_priv->id, &qp_attr, &qp_attr_mask);
if (ret)
- return ret;
+ goto out;
- return ib_modify_qp(id->qp, &qp_attr, qp_attr_mask);
+ ret = ib_modify_qp(id_priv->id.qp, &qp_attr, qp_attr_mask);
+out:
+ mutex_unlock(&id_priv->qp_mutex);
+ return ret;
}
-static int cma_modify_qp_err(struct rdma_cm_id *id)
+static int cma_modify_qp_err(struct rdma_id_private *id_priv)
{
struct ib_qp_attr qp_attr;
+ int ret;
- if (!id->qp)
- return 0;
+ mutex_lock(&id_priv->qp_mutex);
+ if (!id_priv->id.qp) {
+ ret = 0;
+ goto out;
+ }
qp_attr.qp_state = IB_QPS_ERR;
- return ib_modify_qp(id->qp, &qp_attr, IB_QP_STATE);
+ ret = ib_modify_qp(id_priv->id.qp, &qp_attr, IB_QP_STATE);
+out:
+ mutex_unlock(&id_priv->qp_mutex);
+ return ret;
}
static int cma_ib_init_qp_attr(struct rdma_id_private *id_priv,
@@ -717,50 +746,27 @@ static void cma_cancel_route(struct rdma_id_private *id_priv)
}
}
-static inline int cma_internal_listen(struct rdma_id_private *id_priv)
-{
- return (id_priv->state == CMA_LISTEN) && id_priv->cma_dev &&
- cma_any_addr(&id_priv->id.route.addr.src_addr);
-}
-
-static void cma_destroy_listen(struct rdma_id_private *id_priv)
-{
- cma_exch(id_priv, CMA_DESTROYING);
-
- if (id_priv->cma_dev) {
- switch (rdma_node_get_transport(id_priv->id.device->node_type)) {
- case RDMA_TRANSPORT_IB:
- if (id_priv->cm_id.ib && !IS_ERR(id_priv->cm_id.ib))
- ib_destroy_cm_id(id_priv->cm_id.ib);
- break;
- case RDMA_TRANSPORT_IWARP:
- if (id_priv->cm_id.iw && !IS_ERR(id_priv->cm_id.iw))
- iw_destroy_cm_id(id_priv->cm_id.iw);
- break;
- default:
- break;
- }
- cma_detach_from_dev(id_priv);
- }
- list_del(&id_priv->listen_list);
-
- cma_deref_id(id_priv);
- wait_for_completion(&id_priv->comp);
-
- kfree(id_priv);
-}
-
static void cma_cancel_listens(struct rdma_id_private *id_priv)
{
struct rdma_id_private *dev_id_priv;
+ /*
+ * Remove from listen_any_list to prevent added devices from spawning
+ * additional listen requests.
+ */
mutex_lock(&lock);
list_del(&id_priv->list);
while (!list_empty(&id_priv->listen_list)) {
dev_id_priv = list_entry(id_priv->listen_list.next,
struct rdma_id_private, listen_list);
- cma_destroy_listen(dev_id_priv);
+ /* sync with device removal to avoid duplicate destruction */
+ list_del_init(&dev_id_priv->list);
+ list_del(&dev_id_priv->listen_list);
+ mutex_unlock(&lock);
+
+ rdma_destroy_id(&dev_id_priv->id);
+ mutex_lock(&lock);
}
mutex_unlock(&lock);
}
@@ -848,6 +854,9 @@ void rdma_destroy_id(struct rdma_cm_id *id)
cma_deref_id(id_priv);
wait_for_completion(&id_priv->comp);
+ if (id_priv->internal_id)
+ cma_deref_id(id_priv->id.context);
+
kfree(id_priv->id.route.path_rec);
kfree(id_priv);
}
@@ -857,11 +866,11 @@ static int cma_rep_recv(struct rdma_id_private *id_priv)
{
int ret;
- ret = cma_modify_qp_rtr(&id_priv->id);
+ ret = cma_modify_qp_rtr(id_priv);
if (ret)
goto reject;
- ret = cma_modify_qp_rts(&id_priv->id);
+ ret = cma_modify_qp_rts(id_priv);
if (ret)
goto reject;
@@ -871,7 +880,7 @@ static int cma_rep_recv(struct rdma_id_private *id_priv)
return 0;
reject:
- cma_modify_qp_err(&id_priv->id);
+ cma_modify_qp_err(id_priv);
ib_send_cm_rej(id_priv->cm_id.ib, IB_CM_REJ_CONSUMER_DEFINED,
NULL, 0, NULL, 0);
return ret;
@@ -947,7 +956,7 @@ static int cma_ib_handler(struct ib_cm_id *cm_id, struct ib_cm_event *ib_event)
/* ignore event */
goto out;
case IB_CM_REJ_RECEIVED:
- cma_modify_qp_err(&id_priv->id);
+ cma_modify_qp_err(id_priv);
event.status = ib_event->param.rej_rcvd.reason;
event.event = RDMA_CM_EVENT_REJECTED;
event.param.conn.private_data = ib_event->private_data;
@@ -1404,14 +1413,13 @@ static void cma_listen_on_dev(struct rdma_id_private *id_priv,
cma_attach_to_dev(dev_id_priv, cma_dev);
list_add_tail(&dev_id_priv->listen_list, &id_priv->listen_list);
+ atomic_inc(&id_priv->refcount);
+ dev_id_priv->internal_id = 1;
ret = rdma_listen(id, id_priv->backlog);
if (ret)
- goto err;
-
- return;
-err:
- cma_destroy_listen(dev_id_priv);
+ printk(KERN_WARNING "RDMA CMA: cma_listen_on_dev, error %d, "
+ "listening on device %s", ret, cma_dev->device->name);
}
static void cma_listen_on_all(struct rdma_id_private *id_priv)
@@ -2264,7 +2272,7 @@ static int cma_connect_iw(struct rdma_id_private *id_priv,
sin = (struct sockaddr_in*) &id_priv->id.route.addr.dst_addr;
cm_id->remote_addr = *sin;
- ret = cma_modify_qp_rtr(&id_priv->id);
+ ret = cma_modify_qp_rtr(id_priv);
if (ret)
goto out;
@@ -2331,7 +2339,7 @@ static int cma_accept_ib(struct rdma_id_private *id_priv,
int qp_attr_mask, ret;
if (id_priv->id.qp) {
- ret = cma_modify_qp_rtr(&id_priv->id);
+ ret = cma_modify_qp_rtr(id_priv);
if (ret)
goto out;
@@ -2370,7 +2378,7 @@ static int cma_accept_iw(struct rdma_id_private *id_priv,
struct iw_cm_conn_param iw_param;
int ret;
- ret = cma_modify_qp_rtr(&id_priv->id);
+ ret = cma_modify_qp_rtr(id_priv);
if (ret)
return ret;
@@ -2442,7 +2450,7 @@ int rdma_accept(struct rdma_cm_id *id, struct rdma_conn_param *conn_param)
return 0;
reject:
- cma_modify_qp_err(id);
+ cma_modify_qp_err(id_priv);
rdma_reject(id, NULL, 0);
return ret;
}
@@ -2512,7 +2520,7 @@ int rdma_disconnect(struct rdma_cm_id *id)
switch (rdma_node_get_transport(id->device->node_type)) {
case RDMA_TRANSPORT_IB:
- ret = cma_modify_qp_err(id);
+ ret = cma_modify_qp_err(id_priv);
if (ret)
goto out;
/* Initiate or respond to a disconnect. */
@@ -2543,9 +2551,11 @@ static int cma_ib_mc_handler(int status, struct ib_sa_multicast *multicast)
cma_disable_remove(id_priv, CMA_ADDR_RESOLVED))
return 0;
+ mutex_lock(&id_priv->qp_mutex);
if (!status && id_priv->id.qp)
status = ib_attach_mcast(id_priv->id.qp, &multicast->rec.mgid,
multicast->rec.mlid);
+ mutex_unlock(&id_priv->qp_mutex);
memset(&event, 0, sizeof event);
event.status = status;
@@ -2757,16 +2767,12 @@ static void cma_process_remove(struct cma_device *cma_dev)
id_priv = list_entry(cma_dev->id_list.next,
struct rdma_id_private, list);
- if (cma_internal_listen(id_priv)) {
- cma_destroy_listen(id_priv);
- continue;
- }
-
+ list_del(&id_priv->listen_list);
list_del_init(&id_priv->list);
atomic_inc(&id_priv->refcount);
mutex_unlock(&lock);
- ret = cma_remove_id_dev(id_priv);
+ ret = id_priv->internal_id ? 1 : cma_remove_id_dev(id_priv);
cma_deref_id(id_priv);
if (ret)
rdma_destroy_id(&id_priv->id);
diff --git a/drivers/infiniband/core/uverbs_cmd.c b/drivers/infiniband/core/uverbs_cmd.c
index 01d7008..495c803 100644
--- a/drivers/infiniband/core/uverbs_cmd.c
+++ b/drivers/infiniband/core/uverbs_cmd.c
@@ -147,8 +147,12 @@ static struct ib_uobject *__idr_get_uobj(struct idr *idr, int id,
spin_lock(&ib_uverbs_idr_lock);
uobj = idr_find(idr, id);
- if (uobj)
- kref_get(&uobj->ref);
+ if (uobj) {
+ if (uobj->context == context)
+ kref_get(&uobj->ref);
+ else
+ uobj = NULL;
+ }
spin_unlock(&ib_uverbs_idr_lock);
return uobj;
diff --git a/drivers/infiniband/hw/ehca/ehca_classes.h b/drivers/infiniband/hw/ehca/ehca_classes.h
index 0f7a55d..365bc5d 100644
--- a/drivers/infiniband/hw/ehca/ehca_classes.h
+++ b/drivers/infiniband/hw/ehca/ehca_classes.h
@@ -323,7 +323,6 @@ extern int ehca_static_rate;
extern int ehca_port_act_time;
extern int ehca_use_hp_mr;
extern int ehca_scaling_code;
-extern int ehca_mr_largepage;
struct ipzu_queue_resp {
u32 qe_size; /* queue entry size */
diff --git a/drivers/infiniband/hw/ehca/ehca_hca.c b/drivers/infiniband/hw/ehca/ehca_hca.c
index 4aa3ffa..15806d1 100644
--- a/drivers/infiniband/hw/ehca/ehca_hca.c
+++ b/drivers/infiniband/hw/ehca/ehca_hca.c
@@ -77,6 +77,7 @@ int ehca_query_device(struct ib_device *ibdev, struct ib_device_attr *props)
}
memset(props, 0, sizeof(struct ib_device_attr));
+ props->page_size_cap = shca->hca_cap_mr_pgsize;
props->fw_ver = rblock->hw_ver;
props->max_mr_size = rblock->max_mr_size;
props->vendor_id = rblock->vendor_id >> 8;
diff --git a/drivers/infiniband/hw/ehca/ehca_main.c b/drivers/infiniband/hw/ehca/ehca_main.c
index 403467f..2f51c13 100644
--- a/drivers/infiniband/hw/ehca/ehca_main.c
+++ b/drivers/infiniband/hw/ehca/ehca_main.c
@@ -65,7 +65,7 @@ int ehca_port_act_time = 30;
int ehca_poll_all_eqs = 1;
int ehca_static_rate = -1;
int ehca_scaling_code = 0;
-int ehca_mr_largepage = 0;
+int ehca_mr_largepage = 1;
module_param_named(open_aqp1, ehca_open_aqp1, int, S_IRUGO);
module_param_named(debug_level, ehca_debug_level, int, S_IRUGO);
@@ -260,13 +260,20 @@ static struct cap_descr {
{ HCA_CAP_MINI_QP, "HCA_CAP_MINI_QP" },
};
-int ehca_sense_attributes(struct ehca_shca *shca)
+static int ehca_sense_attributes(struct ehca_shca *shca)
{
int i, ret = 0;
u64 h_ret;
struct hipz_query_hca *rblock;
struct hipz_query_port *port;
+ static const u32 pgsize_map[] = {
+ HCA_CAP_MR_PGSIZE_4K, 0x1000,
+ HCA_CAP_MR_PGSIZE_64K, 0x10000,
+ HCA_CAP_MR_PGSIZE_1M, 0x100000,
+ HCA_CAP_MR_PGSIZE_16M, 0x1000000,
+ };
+
rblock = ehca_alloc_fw_ctrlblock(GFP_KERNEL);
if (!rblock) {
ehca_gen_err("Cannot allocate rblock memory.");
@@ -329,8 +336,15 @@ int ehca_sense_attributes(struct ehca_shca *shca)
if (EHCA_BMASK_GET(hca_cap_descr[i].mask, shca->hca_cap))
ehca_gen_dbg(" %s", hca_cap_descr[i].descr);
- shca->hca_cap_mr_pgsize = rblock->memory_page_size_supported;
+ /* translate supported MR page sizes; always support 4K */
+ shca->hca_cap_mr_pgsize = EHCA_PAGESIZE;
+ if (ehca_mr_largepage) { /* support extra sizes only if enabled */
+ for (i = 0; i < ARRAY_SIZE(pgsize_map); i += 2)
+ if (rblock->memory_page_size_supported & pgsize_map[i])
+ shca->hca_cap_mr_pgsize |= pgsize_map[i + 1];
+ }
+ /* query max MTU from first port -- it's the same for all ports */
port = (struct hipz_query_port *)rblock;
h_ret = hipz_h_query_port(shca->ipz_hca_handle, 1, port);
if (h_ret != H_SUCCESS) {
diff --git a/drivers/infiniband/hw/ehca/ehca_mrmw.c b/drivers/infiniband/hw/ehca/ehca_mrmw.c
index da88738..bb97915 100644
--- a/drivers/infiniband/hw/ehca/ehca_mrmw.c
+++ b/drivers/infiniband/hw/ehca/ehca_mrmw.c
@@ -72,24 +72,14 @@ enum ehca_mr_pgsize {
static u32 ehca_encode_hwpage_size(u32 pgsize)
{
- u32 idx = 0;
- pgsize >>= 12;
- /*
- * map mr page size into hw code:
- * 0, 1, 2, 3 for 4K, 64K, 1M, 64M
- */
- while (!(pgsize & 1)) {
- idx++;
- pgsize >>= 4;
- }
- return idx;
+ int log = ilog2(pgsize);
+ WARN_ON(log < 12 || log > 24 || log & 3);
+ return (log - 12) / 4;
}
static u64 ehca_get_max_hwpage_size(struct ehca_shca *shca)
{
- if (shca->hca_cap_mr_pgsize & HCA_CAP_MR_PGSIZE_16M)
- return EHCA_MR_PGSIZE16M;
- return EHCA_MR_PGSIZE4K;
+ return 1UL << ilog2(shca->hca_cap_mr_pgsize);
}
static struct ehca_mr *ehca_mr_new(void)
@@ -259,7 +249,7 @@ struct ib_mr *ehca_reg_phys_mr(struct ib_pd *pd,
pginfo.u.phy.num_phys_buf = num_phys_buf;
pginfo.u.phy.phys_buf_array = phys_buf_array;
pginfo.next_hwpage =
- ((u64)iova_start & ~(hw_pgsize - 1)) / hw_pgsize;
+ ((u64)iova_start & ~PAGE_MASK) / hw_pgsize;
ret = ehca_reg_mr(shca, e_mr, iova_start, size, mr_access_flags,
e_pd, &pginfo, &e_mr->ib.ib_mr.lkey,
@@ -296,7 +286,7 @@ struct ib_mr *ehca_reg_user_mr(struct ib_pd *pd, u64 start, u64 length,
container_of(pd->device, struct ehca_shca, ib_device);
struct ehca_pd *e_pd = container_of(pd, struct ehca_pd, ib_pd);
struct ehca_mr_pginfo pginfo;
- int ret;
+ int ret, page_shift;
u32 num_kpages;
u32 num_hwpages;
u64 hwpage_size;
@@ -351,19 +341,20 @@ struct ib_mr *ehca_reg_user_mr(struct ib_pd *pd, u64 start, u64 length,
/* determine number of MR pages */
num_kpages = NUM_CHUNKS((virt % PAGE_SIZE) + length, PAGE_SIZE);
/* select proper hw_pgsize */
- if (ehca_mr_largepage &&
- (shca->hca_cap_mr_pgsize & HCA_CAP_MR_PGSIZE_16M)) {
- int page_shift = PAGE_SHIFT;
- if (e_mr->umem->hugetlb) {
- /* determine page_shift, clamp between 4K and 16M */
- page_shift = (fls64(length - 1) + 3) & ~3;
- page_shift = min(max(page_shift, EHCA_MR_PGSHIFT4K),
- EHCA_MR_PGSHIFT16M);
- }
- hwpage_size = 1UL << page_shift;
- } else
- hwpage_size = EHCA_MR_PGSIZE4K; /* ehca1 only supports 4k */
- ehca_dbg(pd->device, "hwpage_size=%lx", hwpage_size);
+ page_shift = PAGE_SHIFT;
+ if (e_mr->umem->hugetlb) {
+ /* determine page_shift, clamp between 4K and 16M */
+ page_shift = (fls64(length - 1) + 3) & ~3;
+ page_shift = min(max(page_shift, EHCA_MR_PGSHIFT4K),
+ EHCA_MR_PGSHIFT16M);
+ }
+ hwpage_size = 1UL << page_shift;
+
+ /* now that we have the desired page size, shift until it's
+ * supported, too. 4K is always supported, so this terminates.
+ */
+ while (!(hwpage_size & shca->hca_cap_mr_pgsize))
+ hwpage_size >>= 4;
reg_user_mr_fallback:
num_hwpages = NUM_CHUNKS((virt % hwpage_size) + length, hwpage_size);
@@ -547,7 +538,7 @@ int ehca_rereg_phys_mr(struct ib_mr *mr,
pginfo.u.phy.num_phys_buf = num_phys_buf;
pginfo.u.phy.phys_buf_array = phys_buf_array;
pginfo.next_hwpage =
- ((u64)iova_start & ~(hw_pgsize - 1)) / hw_pgsize;
+ ((u64)iova_start & ~PAGE_MASK) / hw_pgsize;
}
if (mr_rereg_mask & IB_MR_REREG_ACCESS)
new_acl = mr_access_flags;
@@ -809,8 +800,9 @@ struct ib_fmr *ehca_alloc_fmr(struct ib_pd *pd,
ib_fmr = ERR_PTR(-EINVAL);
goto alloc_fmr_exit0;
}
- hw_pgsize = ehca_get_max_hwpage_size(shca);
- if ((1 << fmr_attr->page_shift) != hw_pgsize) {
+
+ hw_pgsize = 1 << fmr_attr->page_shift;
+ if (!(hw_pgsize & shca->hca_cap_mr_pgsize)) {
ehca_err(pd->device, "unsupported fmr_attr->page_shift=%x",
fmr_attr->page_shift);
ib_fmr = ERR_PTR(-EINVAL);
@@ -826,6 +818,7 @@ struct ib_fmr *ehca_alloc_fmr(struct ib_pd *pd,
/* register MR on HCA */
memset(&pginfo, 0, sizeof(pginfo));
+ pginfo.hwpage_size = hw_pgsize;
/*
* pginfo.num_hwpages==0, ie register_rpages() will not be called
* but deferred to map_phys_fmr()
diff --git a/drivers/infiniband/hw/ehca/ehca_qp.c b/drivers/infiniband/hw/ehca/ehca_qp.c
index e2bd62b..de18264 100644
--- a/drivers/infiniband/hw/ehca/ehca_qp.c
+++ b/drivers/infiniband/hw/ehca/ehca_qp.c
@@ -451,7 +451,6 @@ static struct ehca_qp *internal_create_qp(
has_srq = 1;
parms.ext_type = EQPT_SRQBASE;
parms.srq_qpn = my_srq->real_qp_num;
- parms.srq_token = my_srq->token;
}
if (is_llqp && has_srq) {
@@ -583,6 +582,9 @@ static struct ehca_qp *internal_create_qp(
goto create_qp_exit1;
}
+ if (has_srq)
+ parms.srq_token = my_qp->token;
+
parms.servicetype = ibqptype2servicetype(qp_type);
if (parms.servicetype < 0) {
ret = -EINVAL;
diff --git a/drivers/infiniband/hw/mlx4/qp.c b/drivers/infiniband/hw/mlx4/qp.c
index 31a480e..6b33224 100644
--- a/drivers/infiniband/hw/mlx4/qp.c
+++ b/drivers/infiniband/hw/mlx4/qp.c
@@ -63,6 +63,10 @@ struct mlx4_ib_sqp {
u8 header_buf[MLX4_IB_UD_HEADER_SIZE];
};
+enum {
+ MLX4_IB_MIN_SQ_STRIDE = 6
+};
+
static const __be32 mlx4_ib_opcode[] = {
[IB_WR_SEND] = __constant_cpu_to_be32(MLX4_OPCODE_SEND),
[IB_WR_SEND_WITH_IMM] = __constant_cpu_to_be32(MLX4_OPCODE_SEND_IMM),
@@ -285,9 +289,17 @@ static int set_kernel_sq_size(struct mlx4_ib_dev *dev, struct ib_qp_cap *cap,
return 0;
}
-static int set_user_sq_size(struct mlx4_ib_qp *qp,
+static int set_user_sq_size(struct mlx4_ib_dev *dev,
+ struct mlx4_ib_qp *qp,
struct mlx4_ib_create_qp *ucmd)
{
+ /* Sanity check SQ size before proceeding */
+ if ((1 << ucmd->log_sq_bb_count) > dev->dev->caps.max_wqes ||
+ ucmd->log_sq_stride >
+ ilog2(roundup_pow_of_two(dev->dev->caps.max_sq_desc_sz)) ||
+ ucmd->log_sq_stride < MLX4_IB_MIN_SQ_STRIDE)
+ return -EINVAL;
+
qp->sq.wqe_cnt = 1 << ucmd->log_sq_bb_count;
qp->sq.wqe_shift = ucmd->log_sq_stride;
@@ -330,7 +342,7 @@ static int create_qp_common(struct mlx4_ib_dev *dev, struct ib_pd *pd,
qp->sq_no_prefetch = ucmd.sq_no_prefetch;
- err = set_user_sq_size(qp, &ucmd);
+ err = set_user_sq_size(dev, qp, &ucmd);
if (err)
goto err;
diff --git a/drivers/infiniband/hw/mthca/mthca_cq.c b/drivers/infiniband/hw/mthca/mthca_cq.c
index be6e1e0..6bd9f13 100644
--- a/drivers/infiniband/hw/mthca/mthca_cq.c
+++ b/drivers/infiniband/hw/mthca/mthca_cq.c
@@ -204,16 +204,11 @@ static void dump_cqe(struct mthca_dev *dev, void *cqe_ptr)
static inline void update_cons_index(struct mthca_dev *dev, struct mthca_cq *cq,
int incr)
{
- __be32 doorbell[2];
-
if (mthca_is_memfree(dev)) {
*cq->set_ci_db = cpu_to_be32(cq->cons_index);
wmb();
} else {
- doorbell[0] = cpu_to_be32(MTHCA_TAVOR_CQ_DB_INC_CI | cq->cqn);
- doorbell[1] = cpu_to_be32(incr - 1);
-
- mthca_write64(doorbell,
+ mthca_write64(MTHCA_TAVOR_CQ_DB_INC_CI | cq->cqn, incr - 1,
dev->kar + MTHCA_CQ_DOORBELL,
MTHCA_GET_DOORBELL_LOCK(&dev->doorbell_lock));
/*
@@ -731,17 +726,12 @@ repoll:
int mthca_tavor_arm_cq(struct ib_cq *cq, enum ib_cq_notify_flags flags)
{
- __be32 doorbell[2];
+ u32 dbhi = ((flags & IB_CQ_SOLICITED_MASK) == IB_CQ_SOLICITED ?
+ MTHCA_TAVOR_CQ_DB_REQ_NOT_SOL :
+ MTHCA_TAVOR_CQ_DB_REQ_NOT) |
+ to_mcq(cq)->cqn;
- doorbell[0] = cpu_to_be32(((flags & IB_CQ_SOLICITED_MASK) ==
- IB_CQ_SOLICITED ?
- MTHCA_TAVOR_CQ_DB_REQ_NOT_SOL :
- MTHCA_TAVOR_CQ_DB_REQ_NOT) |
- to_mcq(cq)->cqn);
- doorbell[1] = (__force __be32) 0xffffffff;
-
- mthca_write64(doorbell,
- to_mdev(cq->device)->kar + MTHCA_CQ_DOORBELL,
+ mthca_write64(dbhi, 0xffffffff, to_mdev(cq->device)->kar + MTHCA_CQ_DOORBELL,
MTHCA_GET_DOORBELL_LOCK(&to_mdev(cq->device)->doorbell_lock));
return 0;
@@ -750,19 +740,16 @@ int mthca_tavor_arm_cq(struct ib_cq *cq, enum ib_cq_notify_flags flags)
int mthca_arbel_arm_cq(struct ib_cq *ibcq, enum ib_cq_notify_flags flags)
{
struct mthca_cq *cq = to_mcq(ibcq);
- __be32 doorbell[2];
- u32 sn;
- __be32 ci;
-
- sn = cq->arm_sn & 3;
- ci = cpu_to_be32(cq->cons_index);
+ __be32 db_rec[2];
+ u32 dbhi;
+ u32 sn = cq->arm_sn & 3;
- doorbell[0] = ci;
- doorbell[1] = cpu_to_be32((cq->cqn << 8) | (2 << 5) | (sn << 3) |
- ((flags & IB_CQ_SOLICITED_MASK) ==
- IB_CQ_SOLICITED ? 1 : 2));
+ db_rec[0] = cpu_to_be32(cq->cons_index);
+ db_rec[1] = cpu_to_be32((cq->cqn << 8) | (2 << 5) | (sn << 3) |
+ ((flags & IB_CQ_SOLICITED_MASK) ==
+ IB_CQ_SOLICITED ? 1 : 2));
- mthca_write_db_rec(doorbell, cq->arm_db);
+ mthca_write_db_rec(db_rec, cq->arm_db);
/*
* Make sure that the doorbell record in host memory is
@@ -770,14 +757,12 @@ int mthca_arbel_arm_cq(struct ib_cq *ibcq, enum ib_cq_notify_flags flags)
*/
wmb();
- doorbell[0] = cpu_to_be32((sn << 28) |
- ((flags & IB_CQ_SOLICITED_MASK) == IB_CQ_SOLICITED ?
- MTHCA_ARBEL_CQ_DB_REQ_NOT_SOL :
- MTHCA_ARBEL_CQ_DB_REQ_NOT) |
- cq->cqn);
- doorbell[1] = ci;
+ dbhi = (sn << 28) |
+ ((flags & IB_CQ_SOLICITED_MASK) == IB_CQ_SOLICITED ?
+ MTHCA_ARBEL_CQ_DB_REQ_NOT_SOL :
+ MTHCA_ARBEL_CQ_DB_REQ_NOT) | cq->cqn;
- mthca_write64(doorbell,
+ mthca_write64(dbhi, cq->cons_index,
to_mdev(ibcq->device)->kar + MTHCA_CQ_DOORBELL,
MTHCA_GET_DOORBELL_LOCK(&to_mdev(ibcq->device)->doorbell_lock));
diff --git a/drivers/infiniband/hw/mthca/mthca_doorbell.h b/drivers/infiniband/hw/mthca/mthca_doorbell.h
index dd9a44d..b374dc3 100644
--- a/drivers/infiniband/hw/mthca/mthca_doorbell.h
+++ b/drivers/infiniband/hw/mthca/mthca_doorbell.h
@@ -58,10 +58,10 @@ static inline void mthca_write64_raw(__be64 val, void __iomem *dest)
__raw_writeq((__force u64) val, dest);
}
-static inline void mthca_write64(__be32 val[2], void __iomem *dest,
+static inline void mthca_write64(u32 hi, u32 lo, void __iomem *dest,
spinlock_t *doorbell_lock)
{
- __raw_writeq(*(u64 *) val, dest);
+ __raw_writeq((__force u64) cpu_to_be64((u64) hi << 32 | lo), dest);
}
static inline void mthca_write_db_rec(__be32 val