linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [GIT PULL] please pull infiniband.git
@ 2008-04-17 14:53 Roland Dreier
  2008-04-19  8:16 ` Ingo Molnar
  0 siblings, 1 reply; 9+ 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] 9+ messages in thread

* Re: [GIT PULL] please pull infiniband.git
  2008-04-17 14:53 [GIT PULL] please pull infiniband.git Roland Dreier
@ 2008-04-19  8:16 ` Ingo Molnar
  2008-04-19 14:11   ` [ofa-general] " Roland Dreier
  0 siblings, 1 reply; 9+ 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] 9+ messages in thread

* Re: [ofa-general] Re: [GIT PULL] please pull infiniband.git
  2008-04-19  8:16 ` Ingo Molnar
@ 2008-04-19 14:11   ` Roland Dreier
  2008-04-19 14:18     ` Roland Dreier
  2008-04-19 15:20     ` Dave Olson
  0 siblings, 2 replies; 9+ messages in thread
From: Roland Dreier @ 2008-04-19 14:11 UTC (permalink / raw)
  To: Ingo Molnar, Ralph Campbell, Dave Olson
  Cc: akpm, torvalds, linux-kernel, general

 > 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'

Thanks.  The relevant parts of the config are

    # CONFIG_PCI_MSI is not set
    CONFIG_HT_IRQ=y
    CONFIG_INFINIBAND_IPATH=y

The problem is that the iba7220 files don't get built in that case, but
the main driver file tries to call ipath_init_iba7220 anyway.

This is fixed by the patch below, which makes the iba7220 file build
unconditionally.

I also removed the dependency on HT_IRQ || PCI_MSI in the Kconfig, since
the iba7220 support should work without it.  I know we discussed this
before, but looking closer at the code, the dependency seems pointless
to me, since it's still possible to build a driver that doesn't work if
a particular system needs, say HT_IRQ, and the user selects PCI_MSI.
And since iba7220 doesn't need either, we might as well let people build
that.

If this is OK with everyone, I will merge this with a proper changelog.

 - R.

diff --git a/drivers/infiniband/hw/ipath/Kconfig b/drivers/infiniband/hw/ipath/Kconfig
index 044da58..3c7968f 100644
--- a/drivers/infiniband/hw/ipath/Kconfig
+++ b/drivers/infiniband/hw/ipath/Kconfig
@@ -1,6 +1,6 @@
 config INFINIBAND_IPATH
 	tristate "QLogic InfiniPath Driver"
-	depends on (PCI_MSI || HT_IRQ) && 64BIT && NET
+	depends on 64BIT && NET
 	---help---
 	This is a driver for QLogic InfiniPath host channel adapters,
 	including InfiniBand verbs support.  This driver allows these
diff --git a/drivers/infiniband/hw/ipath/Makefile b/drivers/infiniband/hw/ipath/Makefile
index 75a6c91..bf94500 100644
--- a/drivers/infiniband/hw/ipath/Makefile
+++ b/drivers/infiniband/hw/ipath/Makefile
@@ -29,11 +29,13 @@ ib_ipath-y := \
 	ipath_user_pages.o \
 	ipath_user_sdma.o \
 	ipath_verbs_mcast.o \
-	ipath_verbs.o
+	ipath_verbs.o \
+	ipath_iba7220.o \
+	ipath_sd7220.o \
+	ipath_sd7220_img.o
 
 ib_ipath-$(CONFIG_HT_IRQ) += ipath_iba6110.o
 ib_ipath-$(CONFIG_PCI_MSI) += ipath_iba6120.o
-ib_ipath-$(CONFIG_PCI_MSI) += ipath_iba7220.o ipath_sd7220.o ipath_sd7220_img.o
 
 ib_ipath-$(CONFIG_X86_64) += ipath_wc_x86_64.o
 ib_ipath-$(CONFIG_PPC64) += ipath_wc_ppc64.o

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* Re: [ofa-general] Re: [GIT PULL] please pull infiniband.git
  2008-04-19 14:11   ` [ofa-general] " Roland Dreier
@ 2008-04-19 14:18     ` Roland Dreier
  2008-04-19 15:20     ` Dave Olson
  1 sibling, 0 replies; 9+ messages in thread
From: Roland Dreier @ 2008-04-19 14:18 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: Ralph Campbell, Dave Olson, akpm, torvalds, linux-kernel, general

By the way (only peripherally related), it seems all the #ifdef
CONFIG_PCI_MSI tests in ipath_iba7220.c can be removed, since the code
should work fine even if PCI_MSI is not set...

 - R.

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [ofa-general] Re: [GIT PULL] please pull infiniband.git
  2008-04-19 14:11   ` [ofa-general] " Roland Dreier
  2008-04-19 14:18     ` Roland Dreier
@ 2008-04-19 15:20     ` Dave Olson
  2008-04-19 16:12       ` Roland Dreier
  1 sibling, 1 reply; 9+ messages in thread
From: Dave Olson @ 2008-04-19 15:20 UTC (permalink / raw)
  To: Roland Dreier
  Cc: Ingo Molnar, Ralph Campbell, akpm, torvalds, linux-kernel, general

On Sat, 19 Apr 2008, Roland Dreier wrote:
|  >  drivers/built-in.o: In function `ipath_init_one':
|  >  ipath_driver.c:(.devinit.text+0x1e5bc): undefined reference to `ipath_init_iba7220_funcs'

Yes, that issue should be fixed.  Our preference was to not build
if it wouldn't work.  We'd have to add the conditional check at
the function setup routines.


| I also removed the dependency on HT_IRQ || PCI_MSI in the Kconfig, since
| the iba7220 support should work without it.  I know we discussed this
| before, but looking closer at the code, the dependency seems pointless
| to me, since it's still possible to build a driver that doesn't work if
| a particular system needs, say HT_IRQ, and the user selects PCI_MSI.
| And since iba7220 doesn't need either, we might as well let people build
| that.
| 
| If this is OK with everyone, I will merge this with a proper changelog.

At this point, I guess I'd agree.  We've added checks for "no interrupt"
after the driver is loaded, so I guess that covers the issue well
enough.

Dave Olson
dave.olson@qlogic.com

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [ofa-general] Re: [GIT PULL] please pull infiniband.git
  2008-04-19 15:20     ` Dave Olson
@ 2008-04-19 16:12       ` Roland Dreier
  2008-04-20 14:47         ` Dave Olson
  0 siblings, 1 reply; 9+ messages in thread
From: Roland Dreier @ 2008-04-19 16:12 UTC (permalink / raw)
  To: Dave Olson
  Cc: Ingo Molnar, Ralph Campbell, akpm, torvalds, linux-kernel, general

 > |  >  drivers/built-in.o: In function `ipath_init_one':
 > |  >  ipath_driver.c:(.devinit.text+0x1e5bc): undefined reference to `ipath_init_iba7220_funcs'
 > 
 > Yes, that issue should be fixed.  Our preference was to not build
 > if it wouldn't work.  We'd have to add the conditional check at
 > the function setup routines.

Not sure I really follow this response... ipath_driver.c has

	case PCI_DEVICE_ID_INFINIPATH_7220:
#ifndef CONFIG_PCI_MSI
		ipath_dbg("CONFIG_PCI_MSI is not enabled, "
			  "using IntX for unit %u\n", dd->ipath_unit);
#endif
		ipath_init_iba7220_funcs(dd);
		break;

so clearly ipath_init_iba7220_funcs() was intended to be built and used
even if CONFIG_PCI_MSI was not defined.  From the code it looks like all
should work fine if PCI_MSI is not set, so I don't know what you mean
about conditional checks.

(BTW since I'm looking at this code, "IntX" should probably be
capitalized as "INTx" to match what the PCI specs say)

 - R.

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [ofa-general] Re: [GIT PULL] please pull infiniband.git
  2008-04-19 16:12       ` Roland Dreier
@ 2008-04-20 14:47         ` Dave Olson
  2008-04-21  1:55           ` Roland Dreier
  0 siblings, 1 reply; 9+ messages in thread
From: Dave Olson @ 2008-04-20 14:47 UTC (permalink / raw)
  To: Roland Dreier
  Cc: Ingo Molnar, Ralph Campbell, akpm, torvalds, linux-kernel, general

On Sat, 19 Apr 2008, Roland Dreier wrote:
| Not sure I really follow this response... ipath_driver.c has
| 
| 	case PCI_DEVICE_ID_INFINIPATH_7220:
| #ifndef CONFIG_PCI_MSI
| 		ipath_dbg("CONFIG_PCI_MSI is not enabled, "
| 			  "using IntX for unit %u\n", dd->ipath_unit);
| #endif
| 		ipath_init_iba7220_funcs(dd);
| 		break;
| 
| so clearly ipath_init_iba7220_funcs() was intended to be built and used
| even if CONFIG_PCI_MSI was not defined.  From the code it looks like all
| should work fine if PCI_MSI is not set, so I don't know what you mean
| about conditional checks.

Actually, it wasn't.  It was a late cleanup for another problem, and
we didn't worry about the other issue, and should have.

| (BTW since I'm looking at this code, "IntX" should probably be
| capitalized as "INTx" to match what the PCI specs say)

True.

Dave Olson
dave.olson@qlogic.com

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [ofa-general] Re: [GIT PULL] please pull infiniband.git
  2008-04-20 14:47         ` Dave Olson
@ 2008-04-21  1:55           ` Roland Dreier
  2008-04-21  2:35             ` Dave Olson
  0 siblings, 1 reply; 9+ messages in thread
From: Roland Dreier @ 2008-04-21  1:55 UTC (permalink / raw)
  To: Dave Olson
  Cc: Ingo Molnar, Ralph Campbell, akpm, torvalds, linux-kernel, general

 > | Not sure I really follow this response... ipath_driver.c has
 > | 
 > | 	case PCI_DEVICE_ID_INFINIPATH_7220:
 > | #ifndef CONFIG_PCI_MSI
 > | 		ipath_dbg("CONFIG_PCI_MSI is not enabled, "
 > | 			  "using IntX for unit %u\n", dd->ipath_unit);
 > | #endif
 > | 		ipath_init_iba7220_funcs(dd);
 > | 		break;
 > | 
 > | so clearly ipath_init_iba7220_funcs() was intended to be built and used
 > | even if CONFIG_PCI_MSI was not defined.  From the code it looks like all
 > | should work fine if PCI_MSI is not set, so I don't know what you mean
 > | about conditional checks.
 > 
 > Actually, it wasn't.  It was a late cleanup for another problem, and
 > we didn't worry about the other issue, and should have.

Sorry, I still don't follow.  What is the antecedent of "it"?  What was
"the other issue"?

I'm not sure I know the right fix for the build breakage.  It seems
there are two possibilities:

 - build the iba7220 support unconditionally (the patch I posted).

 - change the case statement I quoted above so that the
   ipath_init_iba7220_funcs() call is inside the #ifdef block (and add
   an error message if CONFIG_PCI_MSI is not defined, as for the 6120
   block in the same case statement).

Since it seems iba7220 works with INTx interrupts, the first choice
makes the most sense to me.

And since all the pci_msi functions have stubs that just fail
unconditionally if CONFIG_PCI_MSI is not defined, it seems we can remove
the #ifdef CONFIG_PCI_MSI from the iba7220 files.

And given that at least some device support works even if neither
PCI_MSI nor HT_IRQ is defined, then it makes sense to me to remove that
Kconfig dependency.

If I have something wrong, please let me know.

 - R.

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [ofa-general] Re: [GIT PULL] please pull infiniband.git
  2008-04-21  1:55           ` Roland Dreier
@ 2008-04-21  2:35             ` Dave Olson
  0 siblings, 0 replies; 9+ messages in thread
From: Dave Olson @ 2008-04-21  2:35 UTC (permalink / raw)
  To: Roland Dreier
  Cc: Ingo Molnar, Ralph Campbell, akpm, torvalds, linux-kernel, general

On Sun, 20 Apr 2008, Roland Dreier wrote:
|  > | so clearly ipath_init_iba7220_funcs() was intended to be built and used
|  > | even if CONFIG_PCI_MSI was not defined.  From the code it looks like all
|  > | should work fine if PCI_MSI is not set, so I don't know what you mean
|  > | about conditional checks.
|  > 
|  > Actually, it wasn't.  It was a late cleanup for another problem, and
|  > we didn't worry about the other issue, and should have.
| 
| Sorry, I still don't follow.  What is the antecedent of "it"?  What was
| "the other issue"?

The CONFIG_PCI_MSI check where init_iba7220 is called.

| I'm not sure I know the right fix for the build breakage.  It seems
| there are two possibilities:
| 
|  - build the iba7220 support unconditionally (the patch I posted).

Yep; I already said I was OK with that.  It's simplest, let's go with it.

| And given that at least some device support works even if neither
| PCI_MSI nor HT_IRQ is defined, then it makes sense to me to remove that
| Kconfig dependency.

Go ahead.

Dave Olson
dave.olson@qlogic.com

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2008-04-21  2:35 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-04-17 14:53 [GIT PULL] please pull infiniband.git Roland Dreier
2008-04-19  8:16 ` Ingo Molnar
2008-04-19 14:11   ` [ofa-general] " Roland Dreier
2008-04-19 14:18     ` Roland Dreier
2008-04-19 15:20     ` Dave Olson
2008-04-19 16:12       ` Roland Dreier
2008-04-20 14:47         ` Dave Olson
2008-04-21  1:55           ` Roland Dreier
2008-04-21  2:35             ` Dave Olson

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).