Message ID | 20170626085313.6052-1-yuval.shaia@oracle.com (mailing list archive) |
---|---|
State | Rejected |
Headers | show |
On Mon, Jun 26, 2017 at 11:53:13AM +0300, Yuval Shaia wrote: > No reason to have dependency on PCI for the entire infiniband stack so > move it to KConfig of only the drivers that actually using PCI. > > Signed-off-by: Yuval Shaia <yuval.shaia@oracle.com> > --- > drivers/infiniband/Kconfig | 1 - > drivers/infiniband/hw/cxgb3/Kconfig | 1 + > drivers/infiniband/hw/cxgb4/Kconfig | 1 + > drivers/infiniband/hw/hfi1/Kconfig | 1 + > drivers/infiniband/hw/i40iw/Kconfig | 1 + > drivers/infiniband/hw/qedr/Kconfig | 1 + > drivers/infiniband/hw/qib/Kconfig | 1 + > drivers/infiniband/sw/rdmavt/Kconfig | 1 + Why do you need PCI for rdmavt? > drivers/infiniband/ulp/ipoib/Kconfig | 1 + > 9 files changed, 8 insertions(+), 1 deletion(-) > > diff --git a/drivers/infiniband/Kconfig b/drivers/infiniband/Kconfig > index 234fe01..568088a 100644 > --- a/drivers/infiniband/Kconfig > +++ b/drivers/infiniband/Kconfig > @@ -1,6 +1,5 @@ > menuconfig INFINIBAND > tristate "InfiniBand support" > - depends on PCI || BROKEN By the way, do you know why are we dependent on BROKEN? Thanks
On Mon, Jun 26, 2017 at 01:02:31PM +0300, Leon Romanovsky wrote: > On Mon, Jun 26, 2017 at 11:53:13AM +0300, Yuval Shaia wrote: > > No reason to have dependency on PCI for the entire infiniband stack so > > move it to KConfig of only the drivers that actually using PCI. > > > > Signed-off-by: Yuval Shaia <yuval.shaia@oracle.com> > > --- > > drivers/infiniband/Kconfig | 1 - > > drivers/infiniband/hw/cxgb3/Kconfig | 1 + > > drivers/infiniband/hw/cxgb4/Kconfig | 1 + > > drivers/infiniband/hw/hfi1/Kconfig | 1 + > > drivers/infiniband/hw/i40iw/Kconfig | 1 + > > drivers/infiniband/hw/qedr/Kconfig | 1 + > > drivers/infiniband/hw/qib/Kconfig | 1 + > > drivers/infiniband/sw/rdmavt/Kconfig | 1 + > > Why do you need PCI for rdmavt? Saw calls such as get_pci_dev so just suspect, but you are right, i don't see why SW device needs PCI. > > > drivers/infiniband/ulp/ipoib/Kconfig | 1 + > > 9 files changed, 8 insertions(+), 1 deletion(-) > > > > diff --git a/drivers/infiniband/Kconfig b/drivers/infiniband/Kconfig > > index 234fe01..568088a 100644 > > --- a/drivers/infiniband/Kconfig > > +++ b/drivers/infiniband/Kconfig > > @@ -1,6 +1,5 @@ > > menuconfig INFINIBAND > > tristate "InfiniBand support" > > - depends on PCI || BROKEN > > By the way, do you know why are we dependent on BROKEN? No, assume that it is like if PCI is not defined the "break" configuration or something like that. Will be happy if you can shad some light on that. > > Thanks -- 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
On Mon, Jun 26, 2017 at 01:38:52PM +0300, Yuval Shaia wrote: > On Mon, Jun 26, 2017 at 01:02:31PM +0300, Leon Romanovsky wrote: > > On Mon, Jun 26, 2017 at 11:53:13AM +0300, Yuval Shaia wrote: > > > No reason to have dependency on PCI for the entire infiniband stack so > > > move it to KConfig of only the drivers that actually using PCI. > > > > > > Signed-off-by: Yuval Shaia <yuval.shaia@oracle.com> > > > --- > > > drivers/infiniband/Kconfig | 1 - > > > drivers/infiniband/hw/cxgb3/Kconfig | 1 + > > > drivers/infiniband/hw/cxgb4/Kconfig | 1 + > > > drivers/infiniband/hw/hfi1/Kconfig | 1 + > > > drivers/infiniband/hw/i40iw/Kconfig | 1 + > > > drivers/infiniband/hw/qedr/Kconfig | 1 + > > > drivers/infiniband/hw/qib/Kconfig | 1 + > > > drivers/infiniband/sw/rdmavt/Kconfig | 1 + > > > > Why do you need PCI for rdmavt? > > Saw calls such as get_pci_dev so just suspect, but you are right, i don't > see why SW device needs PCI. > > > > > > drivers/infiniband/ulp/ipoib/Kconfig | 1 + > > > 9 files changed, 8 insertions(+), 1 deletion(-) > > > > > > diff --git a/drivers/infiniband/Kconfig b/drivers/infiniband/Kconfig > > > index 234fe01..568088a 100644 > > > --- a/drivers/infiniband/Kconfig > > > +++ b/drivers/infiniband/Kconfig > > > @@ -1,6 +1,5 @@ > > > menuconfig INFINIBAND > > > tristate "InfiniBand support" > > > - depends on PCI || BROKEN > > > > By the way, do you know why are we dependent on BROKEN? > > No, assume that it is like if PCI is not defined the "break" configuration > or something like that. > Will be happy if you can shad some light on that. I don't know too, it was set more than 10 years ago. I doubt if it is relevant nowadays. Thanks > > > > > Thanks > >
Hi Yuval, [auto build test ERROR on rdma/master] [also build test ERROR on v4.12-rc7 next-20170626] [if your patch is applied to the wrong git tree, please drop us a note to help improve the system] url: https://github.com/0day-ci/linux/commits/Yuval-Shaia/IB-Move-PCI-dependency-from-root-KConfig-to-HW-s-KConfigs/20170626-185305 base: https://git.kernel.org/pub/scm/linux/kernel/git/dledford/rdma.git master config: blackfin-allyesconfig (attached as .config) compiler: bfin-uclinux-gcc (GCC) 6.2.0 reproduce: wget https://raw.githubusercontent.com/01org/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # save the attached .config to linux build tree make.cross ARCH=blackfin All error/warnings (new ones prefixed by >>): In file included from drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.c:39:0: >> drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.h:473:2: error: expected specifier-qualifier-list before 'DECLARE_PCI_UNMAP_ADDR' DECLARE_PCI_UNMAP_ADDR(rx_msgunmap); /* for dma_unmap_single() */ ^~~~~~~~~~~~~~~~~~~~~~ drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.h:496:2: error: expected specifier-qualifier-list before 'DECLARE_PCI_UNMAP_ADDR' DECLARE_PCI_UNMAP_ADDR(tx_msgunmap); /* for dma_unmap_single() */ ^~~~~~~~~~~~~~~~~~~~~~ drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.c: In function 'kiblnd_map_tx_pages': >> drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.c:1540:19: error: 'struct kib_tx' has no member named 'tx_pages'; did you mean 'tx_pool'? __u64 *pages = tx->tx_pages; ^~ drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.c: In function 'kiblnd_fmr_pool_map': drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.c:1619:19: error: 'struct kib_tx' has no member named 'tx_pages'; did you mean 'tx_pool'? __u64 *pages = tx->tx_pages; ^~ >> drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.c:1620:24: error: 'struct kib_tx' has no member named 'tx_rd'; did you mean 'tx_msg'? bool is_rx = (rd != tx->tx_rd); ^~ >> drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.c:1685:28: error: 'struct kib_tx' has no member named 'tx_frags'; did you mean 'tx_status'? n = ib_map_mr_sg(mr, tx->tx_frags, ^~ >> drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.c:1686:10: error: 'struct kib_tx' has no member named 'tx_nfrags' tx->tx_nfrags, NULL, PAGE_SIZE); ^~ In file included from include/uapi/linux/stddef.h:1:0, from include/linux/stddef.h:4, from include/uapi/linux/posix_types.h:4, from include/uapi/linux/types.h:13, from include/linux/types.h:5, from include/asm-generic/div64.h:23, from ./arch/blackfin/include/generated/asm/div64.h:1, from drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.c:37: drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.c:1687:25: error: 'struct kib_tx' has no member named 'tx_nfrags' if (unlikely(n != tx->tx_nfrags)) { ^ include/linux/compiler.h:179:42: note: in definition of macro 'unlikely' # define unlikely(x) __builtin_expect(!!(x), 0) ^ In file included from drivers/staging/lustre/lnet/klnds/o2iblnd/../../../include/linux/libcfs/libcfs.h:77:0, from drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.h:66, from drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.c:39: drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.c:1689:18: error: 'struct kib_tx' has no member named 'tx_nfrags' n, tx->tx_nfrags); ^ drivers/staging/lustre/lnet/klnds/o2iblnd/../../../include/linux/libcfs/libcfs_debug.h:222:41: note: in definition of macro '__CDEBUG' libcfs_debug_msg(&msgdata, format, ## __VA_ARGS__); \ ^~~~~~~~~~~ >> drivers/staging/lustre/lnet/klnds/o2iblnd/../../../include/linux/libcfs/libcfs_debug.h:236:29: note: in expansion of macro 'CDEBUG_LIMIT' #define CERROR(format, ...) CDEBUG_LIMIT(D_ERROR, format, ## __VA_ARGS__) ^~~~~~~~~~~~ >> drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.c:1688:6: note: in expansion of macro 'CERROR' CERROR("Failed to map mr %d/%d elements\n", ^~~~~~ drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.c: In function 'kiblnd_destroy_tx_pool': drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.c:1987:9: error: 'struct kib_tx' has no member named 'tx_pages'; did you mean 'tx_pool'? if (tx->tx_pages) ^~ In file included from include/uapi/linux/stddef.h:1:0, from include/linux/stddef.h:4, from include/uapi/linux/posix_types.h:4, from include/uapi/linux/types.h:13, from include/linux/types.h:5, from include/asm-generic/div64.h:23, from ./arch/blackfin/include/generated/asm/div64.h:1, from drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.c:37: drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.c:1988:18: error: 'struct kib_tx' has no member named 'tx_pages'; did you mean 'tx_pool'? LIBCFS_FREE(tx->tx_pages, ^ include/linux/compiler.h:179:42: note: in definition of macro 'unlikely' # define unlikely(x) __builtin_expect(!!(x), 0) ^ >> drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.c:1988:4: note: in expansion of macro 'LIBCFS_FREE' LIBCFS_FREE(tx->tx_pages, ^~~~~~~~~~~ In file included from drivers/staging/lustre/lnet/klnds/o2iblnd/../../../include/linux/libcfs/libcfs.h:77:0, from drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.h:66, from drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.c:39: drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.c:1990:19: error: 'struct kib_tx' has no member named 'tx_pages'; did you mean 'tx_pool'? sizeof(*tx->tx_pages)); ^ drivers/staging/lustre/lnet/klnds/o2iblnd/../../../include/linux/libcfs/libcfs_debug.h:222:41: note: in definition of macro '__CDEBUG' libcfs_debug_msg(&msgdata, format, ## __VA_ARGS__); \ ^~~~~~~~~~~ >> drivers/staging/lustre/lnet/klnds/o2iblnd/../../../include/linux/libcfs/libcfs_debug.h:236:29: note: in expansion of macro 'CDEBUG_LIMIT' #define CERROR(format, ...) CDEBUG_LIMIT(D_ERROR, format, ## __VA_ARGS__) ^~~~~~~~~~~~ >> drivers/staging/lustre/lnet/klnds/o2iblnd/../../../include/linux/libcfs/libcfs_private.h:148:3: note: in expansion of macro 'CERROR' CERROR("LIBCFS: free NULL '" #ptr "' (%d bytes) at " \ ^~~~~~ >> drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.c:1988:4: note: in expansion of macro 'LIBCFS_FREE' LIBCFS_FREE(tx->tx_pages, ^~~~~~~~~~~ In file included from drivers/staging/lustre/lnet/klnds/o2iblnd/../../../include/linux/libcfs/libcfs.h:79:0, from drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.h:66, from drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.c:39: drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.c:1988:18: error: 'struct kib_tx' has no member named 'tx_pages'; did you mean 'tx_pool'? LIBCFS_FREE(tx->tx_pages, ^ drivers/staging/lustre/lnet/klnds/o2iblnd/../../../include/linux/libcfs/libcfs_private.h:152:9: note: in definition of macro 'LIBCFS_FREE' kvfree(ptr); \ ^~~ drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.c:1991:9: error: 'struct kib_tx' has no member named 'tx_frags'; did you mean 'tx_status'? if (tx->tx_frags) ^~ In file included from include/uapi/linux/stddef.h:1:0, from include/linux/stddef.h:4, from include/uapi/linux/posix_types.h:4, from include/uapi/linux/types.h:13, from include/linux/types.h:5, from include/asm-generic/div64.h:23, from ./arch/blackfin/include/generated/asm/div64.h:1, from drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.c:37: drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.c:1992:18: error: 'struct kib_tx' has no member named 'tx_frags'; did you mean 'tx_status'? LIBCFS_FREE(tx->tx_frags, ^ include/linux/compiler.h:179:42: note: in definition of macro 'unlikely' # define unlikely(x) __builtin_expect(!!(x), 0) ^ drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.c:1992:4: note: in expansion of macro 'LIBCFS_FREE' LIBCFS_FREE(tx->tx_frags, ^~~~~~~~~~~ In file included from drivers/staging/lustre/lnet/klnds/o2iblnd/../../../include/linux/libcfs/libcfs.h:77:0, from drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.h:66, from drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.c:39: drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.c:1994:20: error: 'struct kib_tx' has no member named 'tx_frags'; did you mean 'tx_status'? sizeof(*tx->tx_frags)); ^ drivers/staging/lustre/lnet/klnds/o2iblnd/../../../include/linux/libcfs/libcfs_debug.h:222:41: note: in definition of macro '__CDEBUG' libcfs_debug_msg(&msgdata, format, ## __VA_ARGS__); \ ^~~~~~~~~~~ >> drivers/staging/lustre/lnet/klnds/o2iblnd/../../../include/linux/libcfs/libcfs_debug.h:236:29: note: in expansion of macro 'CDEBUG_LIMIT' #define CERROR(format, ...) CDEBUG_LIMIT(D_ERROR, format, ## __VA_ARGS__) ^~~~~~~~~~~~ >> drivers/staging/lustre/lnet/klnds/o2iblnd/../../../include/linux/libcfs/libcfs_private.h:148:3: note: in expansion of macro 'CERROR' CERROR("LIBCFS: free NULL '" #ptr "' (%d bytes) at " \ ^~~~~~ drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.c:1992:4: note: in expansion of macro 'LIBCFS_FREE' LIBCFS_FREE(tx->tx_frags, ^~~~~~~~~~~ In file included from drivers/staging/lustre/lnet/klnds/o2iblnd/../../../include/linux/libcfs/libcfs.h:79:0, from drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.h:66, from drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.c:39: drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.c:1992:18: error: 'struct kib_tx' has no member named 'tx_frags'; did you mean 'tx_status'? LIBCFS_FREE(tx->tx_frags, ^ drivers/staging/lustre/lnet/klnds/o2iblnd/../../../include/linux/libcfs/libcfs_private.h:152:9: note: in definition of macro 'LIBCFS_FREE' kvfree(ptr); \ ^~~ >> drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.c:1995:9: error: 'struct kib_tx' has no member named 'tx_wrq'; did you mean 'tx_msg'? if (tx->tx_wrq) ^~ In file included from include/uapi/linux/stddef.h:1:0, from include/linux/stddef.h:4, from include/uapi/linux/posix_types.h:4, from include/uapi/linux/types.h:13, from include/linux/types.h:5, from include/asm-generic/div64.h:23, from ./arch/blackfin/include/generated/asm/div64.h:1, from drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.c:37: drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.c:1996:18: error: 'struct kib_tx' has no member named 'tx_wrq'; did you mean 'tx_msg'? LIBCFS_FREE(tx->tx_wrq, ^ include/linux/compiler.h:179:42: note: in definition of macro 'unlikely' # define unlikely(x) __builtin_expect(!!(x), 0) ^ drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.c:1996:4: note: in expansion of macro 'LIBCFS_FREE' LIBCFS_FREE(tx->tx_wrq, ^~~~~~~~~~~ In file included from drivers/staging/lustre/lnet/klnds/o2iblnd/../../../include/linux/libcfs/libcfs.h:77:0, from drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.h:66, from drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.c:39: drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.c:1998:19: error: 'struct kib_tx' has no member named 'tx_wrq'; did you mean 'tx_msg'? sizeof(*tx->tx_wrq)); ^ drivers/staging/lustre/lnet/klnds/o2iblnd/../../../include/linux/libcfs/libcfs_debug.h:222:41: note: in definition of macro '__CDEBUG' libcfs_debug_msg(&msgdata, format, ## __VA_ARGS__); \ ^~~~~~~~~~~ >> drivers/staging/lustre/lnet/klnds/o2iblnd/../../../include/linux/libcfs/libcfs_debug.h:236:29: note: in expansion of macro 'CDEBUG_LIMIT' #define CERROR(format, ...) CDEBUG_LIMIT(D_ERROR, format, ## __VA_ARGS__) ^~~~~~~~~~~~ >> drivers/staging/lustre/lnet/klnds/o2iblnd/../../../include/linux/libcfs/libcfs_private.h:148:3: note: in expansion of macro 'CERROR' CERROR("LIBCFS: free NULL '" #ptr "' (%d bytes) at " \ ^~~~~~ drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.c:1996:4: note: in expansion of macro 'LIBCFS_FREE' LIBCFS_FREE(tx->tx_wrq, ^~~~~~~~~~~ In file included from drivers/staging/lustre/lnet/klnds/o2iblnd/../../../include/linux/libcfs/libcfs.h:79:0, from drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.h:66, from drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.c:39: drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.c:1996:18: error: 'struct kib_tx' has no member named 'tx_wrq'; did you mean 'tx_msg'? LIBCFS_FREE(tx->tx_wrq, ^ drivers/staging/lustre/lnet/klnds/o2iblnd/../../../include/linux/libcfs/libcfs_private.h:152:9: note: in definition of macro 'LIBCFS_FREE' kvfree(ptr); \ ^~~ >> drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.c:1999:9: error: 'struct kib_tx' has no member named 'tx_sge'; did you mean 'tx_msg'? if (tx->tx_sge) ^~ In file included from include/uapi/linux/stddef.h:1:0, from include/linux/stddef.h:4, from include/uapi/linux/posix_types.h:4, from include/uapi/linux/types.h:13, from include/linux/types.h:5, from include/asm-generic/div64.h:23, from ./arch/blackfin/include/generated/asm/div64.h:1, from drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.c:37: drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.c:2000:18: error: 'struct kib_tx' has no member named 'tx_sge'; did you mean 'tx_msg'? LIBCFS_FREE(tx->tx_sge, ^ include/linux/compiler.h:179:42: note: in definition of macro 'unlikely' # define unlikely(x) __builtin_expect(!!(x), 0) ^ drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.c:2000:4: note: in expansion of macro 'LIBCFS_FREE' LIBCFS_FREE(tx->tx_sge, ^~~~~~~~~~~ In file included from drivers/staging/lustre/lnet/klnds/o2iblnd/../../../include/linux/libcfs/libcfs.h:77:0, from drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.h:66, from drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.c:39: drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.c:2002:19: error: 'struct kib_tx' has no member named 'tx_sge'; did you mean 'tx_msg'? sizeof(*tx->tx_sge)); ^ drivers/staging/lustre/lnet/klnds/o2iblnd/../../../include/linux/libcfs/libcfs_debug.h:222:41: note: in definition of macro '__CDEBUG' libcfs_debug_msg(&msgdata, format, ## __VA_ARGS__); \ ^~~~~~~~~~~ >> drivers/staging/lustre/lnet/klnds/o2iblnd/../../../include/linux/libcfs/libcfs_debug.h:236:29: note: in expansion of macro 'CDEBUG_LIMIT' #define CERROR(format, ...) CDEBUG_LIMIT(D_ERROR, format, ## __VA_ARGS__) ^~~~~~~~~~~~ >> drivers/staging/lustre/lnet/klnds/o2iblnd/../../../include/linux/libcfs/libcfs_private.h:148:3: note: in expansion of macro 'CERROR' CERROR("LIBCFS: free NULL '" #ptr "' (%d bytes) at " \ ^~~~~~ drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.c:2000:4: note: in expansion of macro 'LIBCFS_FREE' LIBCFS_FREE(tx->tx_sge, ^~~~~~~~~~~ In file included from drivers/staging/lustre/lnet/klnds/o2iblnd/../../../include/linux/libcfs/libcfs.h:79:0, from drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.h:66, from drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.c:39: drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.c:2000:18: error: 'struct kib_tx' has no member named 'tx_sge'; did you mean 'tx_msg'? LIBCFS_FREE(tx->tx_sge, ^ drivers/staging/lustre/lnet/klnds/o2iblnd/../../../include/linux/libcfs/libcfs_private.h:152:9: note: in definition of macro 'LIBCFS_FREE' kvfree(ptr); \ ^~~ drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.c:2003:9: error: 'struct kib_tx' has no member named 'tx_rd'; did you mean 'tx_msg'? if (tx->tx_rd) ^~ In file included from include/uapi/linux/stddef.h:1:0, from include/linux/stddef.h:4, from include/uapi/linux/posix_types.h:4, from include/uapi/linux/types.h:13, from include/linux/types.h:5, from include/asm-generic/div64.h:23, from ./arch/blackfin/include/generated/asm/div64.h:1, from drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.c:37: drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.c:2004:18: error: 'struct kib_tx' has no member named 'tx_rd'; did you mean 'tx_msg'? LIBCFS_FREE(tx->tx_rd, ^ include/linux/compiler.h:179:42: note: in definition of macro 'unlikely' # define unlikely(x) __builtin_expect(!!(x), 0) ^ drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.c:2004:4: note: in expansion of macro 'LIBCFS_FREE' LIBCFS_FREE(tx->tx_rd, ^~~~~~~~~~~ In file included from drivers/staging/lustre/lnet/klnds/o2iblnd/../../../include/linux/libcfs/libcfs.h:79:0, from drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.h:66, from drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.c:39: drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.c:2004:18: error: 'struct kib_tx' has no member named 'tx_rd'; did you mean 'tx_msg'? LIBCFS_FREE(tx->tx_rd, ^ drivers/staging/lustre/lnet/klnds/o2iblnd/../../../include/linux/libcfs/libcfs_private.h:152:9: note: in definition of macro 'LIBCFS_FREE' kvfree(ptr); \ ^~~ In file included from include/uapi/linux/stddef.h:1:0, from include/linux/stddef.h:4, from include/uapi/linux/posix_types.h:4, from include/uapi/linux/types.h:13, from include/linux/types.h:5, from include/asm-generic/div64.h:23, from ./arch/blackfin/include/generated/asm/div64.h:1, from drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.c:37: drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.c: In function 'kiblnd_create_tx_pool': drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.c:2066:32: error: 'struct kib_tx' has no member named 'tx_pages'; did you mean 'tx_pool'? LNET_MAX_IOV * sizeof(*tx->tx_pages)); ^ include/linux/compiler.h:179:42: note: in definition of macro 'unlikely' # define unlikely(x) __builtin_expect(!!(x), 0) ^ >> drivers/staging/lustre/lnet/klnds/o2iblnd/../../../include/linux/libcfs/libcfs_private.h:63:23: note: in expansion of macro 'LASSERTF' #define LASSERT(cond) LASSERTF(cond, "\n") ^~~~~~~~ -- In file included from drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c:37:0: >> drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.h:473:2: error: expected specifier-qualifier-list before 'DECLARE_PCI_UNMAP_ADDR' DECLARE_PCI_UNMAP_ADDR(rx_msgunmap); /* for dma_unmap_single() */ ^~~~~~~~~~~~~~~~~~~~~~ drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.h:496:2: error: expected specifier-qualifier-list before 'DECLARE_PCI_UNMAP_ADDR' DECLARE_PCI_UNMAP_ADDR(tx_msgunmap); /* for dma_unmap_single() */ ^~~~~~~~~~~~~~~~~~~~~~ drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c: In function 'kiblnd_tx_done': >> drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c:82:4: error: 'struct kib_tx' has no member named 'tx_nwrq' tx->tx_nwrq = 0; ^~ In file included from include/uapi/linux/stddef.h:1:0, from include/linux/stddef.h:4, from include/uapi/linux/posix_types.h:4, from include/uapi/linux/types.h:13, from include/linux/types.h:5, from include/linux/list.h:4, from include/linux/module.h:9, from drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.h:37, from drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c:37: drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c: In function 'kiblnd_get_idle_tx': drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c:126:13: error: 'struct kib_tx' has no member named 'tx_nwrq' LASSERT(!tx->tx_nwrq); ^ include/linux/compiler.h:179:42: note: in definition of macro 'unlikely' # define unlikely(x) __builtin_expect(!!(x), 0) ^ >> drivers/staging/lustre/lnet/klnds/o2iblnd/../../../include/linux/libcfs/libcfs_private.h:63:23: note: in expansion of macro 'LASSERTF' #define LASSERT(cond) LASSERTF(cond, "\n") ^~~~~~~~ >> drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c:126:2: note: in expansion of macro 'LASSERT' LASSERT(!tx->tx_nwrq); ^~~~~~~ >> drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c:134:13: error: 'struct kib_tx' has no member named 'tx_nfrags' LASSERT(!tx->tx_nfrags); ^ include/linux/compiler.h:179:42: note: in definition of macro 'unlikely' # define unlikely(x) __builtin_expect(!!(x), 0) ^ >> drivers/staging/lustre/lnet/klnds/o2iblnd/../../../include/linux/libcfs/libcfs_private.h:63:23: note: in expansion of macro 'LASSERTF' #define LASSERT(cond) LASSERTF(cond, "\n") ^~~~~~~~ drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c:134:2: note: in expansion of macro 'LASSERT' LASSERT(!tx->tx_nfrags); ^~~~~~~ drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c: In function 'kiblnd_post_rx': >> drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c:168:4: error: 'struct kib_rx' has no member named 'rx_sge'; did you mean 'rx_msg'? rx->rx_sge.lkey = conn->ibc_hdev->ibh_pd->local_dma_lkey; ^~ drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c:169:4: error: 'struct kib_rx' has no member named 'rx_sge'; did you mean 'rx_msg'? rx->rx_sge.addr = rx->rx_msgaddr; ^~ drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c:170:4: error: 'struct kib_rx' has no member named 'rx_sge'; did you mean 'rx_msg'? rx->rx_sge.length = IBLND_MSG_SIZE; ^~ >> drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c:172:4: error: 'struct kib_rx' has no member named 'rx_wrq'; did you mean 'rx_nob'? rx->rx_wrq.next = NULL; ^~ drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c:173:4: error: 'struct kib_rx' has no member named 'rx_wrq'; did you mean 'rx_nob'? rx->rx_wrq.sg_list = &rx->rx_sge; ^~ drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c:173:26: error: 'struct kib_rx' has no member named 'rx_sge'; did you mean 'rx_msg'? rx->rx_wrq.sg_list = &rx->rx_sge; ^~ drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c:174:4: error: 'struct kib_rx' has no member named 'rx_wrq'; did you mean 'rx_nob'? rx->rx_wrq.num_sge = 1; ^~ drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c:175:4: error: 'struct kib_rx' has no member named 'rx_wrq'; did you mean 'rx_nob'? rx->rx_wrq.wr_id = kiblnd_ptr2wreqid(rx, IBLND_WID_RX); ^~ drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c:191:43: error: 'struct kib_rx' has no member named 'rx_wrq'; did you mean 'rx_nob'? rc = ib_post_recv(conn->ibc_cmid->qp, &rx->rx_wrq, &bad_wrq); ^~ drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c: In function 'kiblnd_handle_rx': drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c:420:5: error: 'struct kib_tx' has no member named 'tx_nwrq' tx->tx_nwrq = 0; /* overwrite PUT_REQ */ ^~ drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c: In function 'kiblnd_fmr_map_tx': >> drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c:575:51: error: 'struct kib_tx' has no member named 'fmr' rc = kiblnd_fmr_pool_map(fps, tx, rd, nob, 0, &tx->fmr); ^~ drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c:585:17: error: 'struct kib_tx' has no member named 'fmr' rd->rd_key = tx->fmr.fmr_key; ^~ drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c: In function 'kiblnd_unmap_tx': drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c:600:28: error: 'struct kib_tx' has no member named 'fmr' kiblnd_fmr_pool_unmap(&tx->fmr, tx->tx_status); ^~ drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c:602:8: error: 'struct kib_tx' has no member named 'tx_nfrags' if (tx->tx_nfrags) { ^~ >> drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c:604:11: error: 'struct kib_tx' has no member named 'tx_frags'; did you mean 'tx_status'? tx->tx_frags, tx->tx_nfrags, tx->tx_dmadir); ^~ drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c:604:25: error: 'struct kib_tx' has no member named 'tx_nfrags' tx->tx_frags, tx->tx_nfrags, tx->tx_dmadir); ^~ >> drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c:604:40: error: 'struct kib_tx' has no member named 'tx_dmadir'; did you mean 'tx_deadline'? tx->tx_frags, tx->tx_nfrags, tx->tx_dmadir); ^~ drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c:605:5: error: 'struct kib_tx' has no member named 'tx_nfrags' tx->tx_nfrags = 0; ^~ drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c: In function 'kiblnd_map_tx': drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c:621:4: error: 'struct kib_tx' has no member named 'tx_dmadir'; did you mean 'tx_deadline'? tx->tx_dmadir = (rd != tx->tx_rd) ? DMA_FROM_DEVICE : DMA_TO_DEVICE; ^~ >> drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c:621:27: error: 'struct kib_tx' has no member named 'tx_rd'; did you mean 'tx_msg'? tx->tx_dmadir = (rd != tx->tx_rd) ? DMA_FROM_DEVICE : DMA_TO_DEVICE; ^~ drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c:622:4: error: 'struct kib_tx' has no member named 'tx_nfrags' tx->tx_nfrags = nfrags; ^~ drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c:624:55: error: 'struct kib_tx' has no member named 'tx_frags'; did you mean 'tx_status'? rd->rd_nfrags = kiblnd_dma_map_sg(hdev->ibh_ibdev, tx->tx_frags, ^~ drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c:625:10: error: 'struct kib_tx' has no member named 'tx_nfrags' tx->tx_nfrags, tx->tx_dmadir); ^~ drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c:625:25: error: 'struct kib_tx' has no member named 'tx_dmadir'; did you mean 'tx_deadline'? tx->tx_nfrags, tx->tx_dmadir); ^~ drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c:629:24: error: 'struct kib_tx' has no member named 'tx_frags'; did you mean 'tx_status'? hdev->ibh_ibdev, &tx->tx_frags[i]); ^~ drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c:631:24: error: 'struct kib_tx' has no member named 'tx_frags'; did you mean 'tx_status'? hdev->ibh_ibdev, &tx->tx_frags[i]); ^~ drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c: In function 'kiblnd_setup_rd_iov': drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c:664:9: error: 'struct kib_tx' has no member named 'tx_frags'; did you mean 'tx_status'? sg = tx->tx_frags; ^~ drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c:696:42: error: 'struct kib_tx' has no member named 'tx_frags'; did you mean 'tx_status'? return kiblnd_map_tx(ni, tx, rd, sg - tx->tx_frags); ^~ drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c: In function 'kiblnd_setup_rd_kiov': drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c:721:9: error: 'struct kib_tx' has no member named 'tx_frags'; did you mean 'tx_status'? sg = tx->tx_frags; ^~ drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c:741:42: error: 'struct kib_tx' has no member named 'tx_frags'; did you mean 'tx_status'? return kiblnd_map_tx(ni, tx, rd, sg - tx->tx_frags); ^~ In file included from include/uapi/linux/stddef.h:1:0, from include/linux/stddef.h:4, from include/uapi/linux/posix_types.h:4, from include/uapi/linux/types.h:13, from include/linux/types.h:5, from include/linux/list.h:4, from include/linux/module.h:9, from drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.h:37, from drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c:37: drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c: In function 'kiblnd_post_tx_locked': drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c:757:12: error: 'struct kib_tx' has no member named 'tx_nwrq' LASSERT(tx->tx_nwrq > 0); ^ include/linux/compiler.h:179:42: note: in definition of macro 'unlikely' # define unlikely(x) __builtin_expect(!!(x), 0) ^ >> drivers/staging/lustre/lnet/klnds/o2iblnd/../../../include/linux/libcfs/libcfs_private.h:63:23: note: in expansion of macro 'LASSERTF' #define LASSERT(cond) LASSERTF(cond, "\n") ^~~~~~~~ drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c:757:2: note: in expansion of macro 'LASSERT' LASSERT(tx->tx_nwrq > 0); ^~~~~~~ drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c:836:43: error: 'struct kib_tx' has no member named 'fmr' struct kib_fast_reg_descriptor *frd = tx->fmr.fmr_frd; ^~ >> drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c:837:31: error: 'struct kib_tx' has no member named 'tx_wrq'; did you mean 'tx_msg'? struct ib_send_wr *bad = &tx->tx_wrq[tx->tx_nwrq - 1].wr; ^~ drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c:837:42: error: 'struct kib_tx' has no member named 'tx_nwrq' struct ib_send_wr *bad = &tx->tx_wrq[tx->tx_nwrq - 1].wr; ^~ drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c:838:31: error: 'struct kib_tx' has no member named 'tx_wrq'; did you mean 'tx_msg'? struct ib_send_wr *wrq = &tx->tx_wrq[0].wr; ^~ drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c:847:37: error: 'struct kib_tx' has no member named 'tx_wrq'; did you mean 'tx_msg'? frd->frd_fastreg_wr.wr.next = &tx->tx_wrq[0].wr; ^~ drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c: In function 'kiblnd_init_tx_msg': >> drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c:1020:26: error: 'struct kib_tx' has no member named 'tx_sge'; did you mean 'tx_msg'? struct ib_sge *sge = &tx->tx_sge[tx->tx_nwrq]; ^~ drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c:1020:37: error: 'struct kib_tx' has no member named 'tx_nwrq' struct ib_sge *sge = &tx->tx_sge[tx->tx_nwrq]; ^~ drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c:1021:30: error: 'struct kib_tx' has no member named 'tx_wrq'; did you mean 'tx_msg'? struct ib_rdma_wr *wrq = &tx->tx_wrq[tx->tx_nwrq]; ^~ drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c:1021:41: error: 'struct kib_tx' has no member named 'tx_nwrq' struct ib_rdma_wr *wrq = &tx->tx_wrq[tx->tx_nwrq]; ^~ In file included from include/uapi/linux/stddef.h:1:0, from include/linux/stddef.h:4, from include/uapi/linux/posix_types.h:4, from include/uapi/linux/types.h:13, from include/linux/types.h:5, from include/linux/list.h:4, from include/linux/module.h:9, from drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.h:37, from drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c:37: drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c:1024:12: error: 'struct kib_tx' has no member named 'tx_nwrq' LASSERT(tx->tx_nwrq >= 0); ^ include/linux/compiler.h:179:42: note: in definition of macro 'unlikely' # define unlikely(x) __builtin_expect(!!(x), 0) ^ >> drivers/staging/lustre/lnet/klnds/o2iblnd/../../../include/linux/libcfs/libcfs_private.h:63:23: note: in expansion of macro 'LASSERTF' #define LASSERT(cond) LASSERTF(cond, "\n") ^~~~~~~~ drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c:1024:2: note: in expansion of macro 'LASSERT' LASSERT(tx->tx_nwrq >= 0); ^~~~~~~ drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c:1025:12: error: 'struct kib_tx' has no member named 'tx_nwrq' LASSERT(tx->tx_nwrq < IBLND_MAX_RDMA_FRAGS + 1); ^ include/linux/compiler.h:179:42: note: in definition of macro 'unlikely' # define unlikely(x) __builtin_expect(!!(x), 0) ^ >> drivers/staging/lustre/lnet/klnds/o2iblnd/../../../include/linux/libcfs/libcfs_private.h:63:23: note: in expansion of macro 'LASSERTF' #define LASSERT(cond) LASSERTF(cond, "\n") ^~~~~~~~ drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c:1025:2: note: in expansion of macro 'LASSERT' LASSERT(tx->tx_nwrq < IBLND_MAX_RDMA_FRAGS + 1); ^~~~~~~ drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c:1043:4: error: 'struct kib_tx' has no member named 'tx_nwrq' tx->tx_nwrq++; ^~ drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c: In function 'kiblnd_init_rdma': drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c:1051:34: error: 'struct kib_tx' has no member named 'tx_rd'; did you mean 'tx_msg'? struct kib_rdma_desc *srcrd = tx->tx_rd; ^~ drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c:1052:26: error: 'struct kib_tx' has no member named 'tx_sge'; did you mean 'tx_msg'? struct ib_sge *sge = &tx->tx_sge[0]; ^~ In file included from include/uapi/linux/stddef.h:1:0, from include/linux/stddef.h:4, from include/uapi/linux/posix_types.h:4, from include/uapi/linux/types.h:13, from include/linux/types.h:5, from include/linux/list.h:4, from include/linux/module.h:9, from drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.h:37, from drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c:37: drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c:1060:13: error: 'struct kib_tx' has no member named 'tx_nwrq' LASSERT(!tx->tx_nwrq); ^ include/linux/compiler.h:179:42: note: in definition of macro 'unlikely' # define unlikely(x) __builtin_expect(!!(x), 0) ^ >> drivers/staging/lustre/lnet/klnds/o2iblnd/../../../include/linux/libcfs/libcfs_private.h:63:23: note: in expansion of macro 'LASSERTF' #define LASSERT(cond) LASSERTF(cond, "\n") ^~~~~~~~ drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c:1060:2: note: in expansion of macro 'LASSERT' LASSERT(!tx->tx_nwrq); ^~~~~~~ drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c:1086:9: error: 'struct kib_tx' has no member named 'tx_nwrq' if (tx->tx_nwrq >= IBLND_MAX_RDMA_FRAGS) { ^~ drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c:1100:12: error: 'struct kib_tx' has no member named 'tx_sge'; did you mean 'tx_msg'? sge = &tx->tx_sge[tx->tx_nwrq]; ^~ drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c:1100:23: error: 'struct kib_tx' has no member named 'tx_nwrq' sge = &tx->tx_sge[tx->tx_nwrq]; ^~ drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c:1105:12: error: 'struct kib_tx' has no member named 'tx_wrq'; did you mean 'tx_msg'? wrq = &tx->tx_wrq[tx->tx_nwrq]; ^~ drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c:1105:23: error: 'struct kib_tx' has no member named 'tx_nwrq' wrq = &tx->tx_wrq[tx->tx_nwrq]; ^~ drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c:1123:5: error: 'struct kib_tx' has no member named 'tx_nwrq' tx->tx_nwrq++; ^~ drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c:1129:5: error: 'struct kib_tx' has no member named 'tx_nwrq' tx->tx_nwrq = 0; ^~ In file included from include/uapi/linux/stddef.h:1:0, from include/linux/stddef.h:4, from include/uapi/linux/posix_types.h:4, from include/uapi/linux/types.h:13, from include/linux/types.h:5, from include/linux/list.h:4, from include/linux/module.h:9, from drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.h:37, from drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c:37: drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c: In function 'kiblnd_queue_tx_locked': drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c:1144:12: error: 'struct kib_tx' has no member named 'tx_nwrq' LASSERT(tx->tx_nwrq > 0); /* work items set up */ ^ include/linux/compiler.h:179:42: note: in definition of macro 'unlikely' # define unlikely(x) __builtin_expect(!!(x), 0) ^ >> drivers/staging/lustre/lnet/klnds/o2iblnd/../../../include/linux/libcfs/libcfs_private.h:63:23: note: in expansion of macro 'LASSERTF' #define LASSERT(cond) LASSERTF(cond, "\n") ^~~~~~~~ drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c:1144:2: note: in expansion of macro 'LASSERT' LASSERT(tx->tx_nwrq > 0); /* work items set up */ ^~~~~~~ drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c: In function 'kiblnd_launch_tx': drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c:1373:19: error: 'struct kib_tx' has no member named 'tx_nwrq' LASSERT(!tx || tx->tx_nwrq > 0); /* work items have been set up */ ^ include/linux/compiler.h:179:42: note: in definition of macro 'unlikely' # define unlikely(x) __builtin_expect(!!(x), 0) ^ >> drivers/staging/lustre/lnet/klnds/o2iblnd/../../../include/linux/libcfs/libcfs_private.h:63:23: note: in expansion of macro 'LASSERTF' #define LASSERT(cond) LASSERTF(cond, "\n") ^~~~~~~~ drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c:1373:2: note: in expansion of macro 'LASSERT' LASSERT(!tx || tx->tx_nwrq > 0); /* work items have been set up */ ^~~~~~~ drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c: In function 'kiblnd_send': drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c:1603:39: error: 'struct kib_tx' has no member named 'tx_rd'; did you mean 'tx_msg'? rc = kiblnd_setup_rd_iov(ni, tx, tx->tx_rd, ^~ drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c:1607:40: error: 'struct kib_tx' has no member named 'tx_rd'; did you mean 'tx_msg'? rc = kiblnd_setup_rd_kiov(ni, tx, tx->tx_rd, ^~ drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c: In function 'kiblnd_reply': drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c:1675:38: error: 'struct kib_tx' has no member named 'tx_rd'; did you mean 'tx_msg'? rc = kiblnd_setup_rd_iov(ni, tx, tx->tx_rd, ^~ drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c:1678:39: error: 'struct kib_tx' has no member named 'tx_rd'; did you mean 'tx_msg'? rc = kiblnd_setup_rd_kiov(ni, tx, tx->tx_rd, ^~ drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c: In function 'kiblnd_setup_rd_iov': .. vim +/DECLARE_PCI_UNMAP_ADDR +473 drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.h d7e09d039 Peng Tao 2013-05-02 457 #define IBLND_REJECT_CONN_UNCOMPAT 4 /* incompatible version peer */ d7e09d039 Peng Tao 2013-05-02 458 #define IBLND_REJECT_CONN_STALE 5 /* stale peer */ 2fb44f2b0 Jeremy Filizetti 2016-03-02 459 /* peer's rdma frags doesn't match mine */ 2fb44f2b0 Jeremy Filizetti 2016-03-02 460 #define IBLND_REJECT_RDMA_FRAGS 6 2fb44f2b0 Jeremy Filizetti 2016-03-02 461 /* peer's msg queue size doesn't match mine */ 2fb44f2b0 Jeremy Filizetti 2016-03-02 462 #define IBLND_REJECT_MSG_QUEUE_SIZE 7 d7e09d039 Peng Tao 2013-05-02 463 d7e09d039 Peng Tao 2013-05-02 464 /***********************************************************************/ d7e09d039 Peng Tao 2013-05-02 465 8d9de3f48 James Simmons 2016-06-10 466 struct kib_rx { /* receive message */ d7e09d039 Peng Tao 2013-05-02 467 struct list_head rx_list; /* queue for attention */ d7e09d039 Peng Tao 2013-05-02 468 struct kib_conn *rx_conn; /* owning conn */ d0bed0352 Jeff Becker 2015-08-24 469 int rx_nob; /* # bytes received (-1 while posted) */ d7e09d039 Peng Tao 2013-05-02 470 enum ib_wc_status rx_status; /* completion status */ 8d9de3f48 James Simmons 2016-06-10 471 struct kib_msg *rx_msg; /* message buffer (host vaddr) */ d7e09d039 Peng Tao 2013-05-02 472 __u64 rx_msgaddr; /* message buffer (I/O addr) */ d7e09d039 Peng Tao 2013-05-02 @473 DECLARE_PCI_UNMAP_ADDR(rx_msgunmap); /* for dma_unmap_single() */ d7e09d039 Peng Tao 2013-05-02 474 struct ib_recv_wr rx_wrq; /* receive work item... */ d7e09d039 Peng Tao 2013-05-02 475 struct ib_sge rx_sge; /* ...and its memory */ 8d9de3f48 James Simmons 2016-06-10 476 }; d7e09d039 Peng Tao 2013-05-02 477 d7e09d039 Peng Tao 2013-05-02 478 #define IBLND_POSTRX_DONT_POST 0 /* don't post */ d7e09d039 Peng Tao 2013-05-02 479 #define IBLND_POSTRX_NO_CREDIT 1 /* post: no credits */ d7e09d039 Peng Tao 2013-05-02 480 #define IBLND_POSTRX_PEER_CREDIT 2 /* post: give peer back 1 credit */ d0bed0352 Jeff Becker 2015-08-24 481 #define IBLND_POSTRX_RSRVD_CREDIT 3 /* post: give self back 1 reserved credit */ :::::: The code at line 473 was first introduced by commit :::::: d7e09d0397e84eefbabfd9cb353221f3c6448d83 staging: add Lustre file system client support :::::: TO: Peng Tao <bergwolf@gmail.com> :::::: CC: Greg Kroah-Hartman <gregkh@linuxfoundation.org> --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation
Hi Yuval,
[auto build test WARNING on rdma/master]
[also build test WARNING on v4.12-rc7 next-20170627]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]
url: https://github.com/0day-ci/linux/commits/Yuval-Shaia/IB-Move-PCI-dependency-from-root-KConfig-to-HW-s-KConfigs/20170626-185305
base: https://git.kernel.org/pub/scm/linux/kernel/git/dledford/rdma.git master
config: cris-allmodconfig (attached as .config)
compiler: cris-linux-gcc (GCC) 6.2.0
reproduce:
wget https://raw.githubusercontent.com/01org/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# save the attached .config to linux build tree
make.cross ARCH=cris
All warnings (new ones prefixed by >>):
In file included from include/linux/list.h:8:0,
from include/linux/module.h:9,
from drivers/infiniband/ulp/srp/ib_srp.c:35:
drivers/infiniband/ulp/srp/ib_srp.c: In function 'srp_add_one':
include/linux/kernel.h:767:16: warning: comparison of distinct pointer types lacks a cast
(void) (&max1 == &max2); \
^
include/linux/kernel.h:770:2: note: in expansion of macro '__max'
__max(typeof(x), typeof(y), \
^~~~~
>> drivers/infiniband/ulp/srp/ib_srp.c:3595:19: note: in expansion of macro 'max'
mr_page_shift = max(12, ffs(attr->page_size_cap) - 1);
^~~
vim +/max +3595 drivers/infiniband/ulp/srp/ib_srp.c
f5358a172 Roland Dreier 2006-06-17 3579 struct srp_device *srp_dev;
042dd765b Bart Van Assche 2016-11-21 3580 struct ib_device_attr *attr = &device->attrs;
aef9ec39c Roland Dreier 2005-11-02 3581 struct srp_host *host;
4139032b4 Hal Rosenstock 2015-06-29 3582 int mr_page_shift, p;
52ede08f0 Bart Van Assche 2014-05-20 3583 u64 max_pages_per_mr;
5f071777f Christoph Hellwig 2016-09-05 3584 unsigned int flags = 0;
aef9ec39c Roland Dreier 2005-11-02 3585
249f06561 Bart Van Assche 2016-06-03 3586 srp_dev = kzalloc(sizeof(*srp_dev), GFP_KERNEL);
f5358a172 Roland Dreier 2006-06-17 3587 if (!srp_dev)
4a061b287 Or Gerlitz 2015-12-18 3588 return;
f5358a172 Roland Dreier 2006-06-17 3589
f5358a172 Roland Dreier 2006-06-17 3590 /*
f5358a172 Roland Dreier 2006-06-17 3591 * Use the smallest page size supported by the HCA, down to a
8f26c9ff9 David Dillow 2011-01-14 3592 * minimum of 4096 bytes. We're unlikely to build large sglists
8f26c9ff9 David Dillow 2011-01-14 3593 * out of smaller entries.
f5358a172 Roland Dreier 2006-06-17 3594 */
042dd765b Bart Van Assche 2016-11-21 @3595 mr_page_shift = max(12, ffs(attr->page_size_cap) - 1);
52ede08f0 Bart Van Assche 2014-05-20 3596 srp_dev->mr_page_size = 1 << mr_page_shift;
52ede08f0 Bart Van Assche 2014-05-20 3597 srp_dev->mr_page_mask = ~((u64) srp_dev->mr_page_size - 1);
042dd765b Bart Van Assche 2016-11-21 3598 max_pages_per_mr = attr->max_mr_size;
52ede08f0 Bart Van Assche 2014-05-20 3599 do_div(max_pages_per_mr, srp_dev->mr_page_size);
509c5f33f Bart Van Assche 2016-05-12 3600 pr_debug("%s: %llu / %u = %llu <> %u\n", __func__,
042dd765b Bart Van Assche 2016-11-21 3601 attr->max_mr_size, srp_dev->mr_page_size,
509c5f33f Bart Van Assche 2016-05-12 3602 max_pages_per_mr, SRP_MAX_PAGES_PER_MR);
52ede08f0 Bart Van Assche 2014-05-20 3603 srp_dev->max_pages_per_mr = min_t(u64, SRP_MAX_PAGES_PER_MR,
:::::: The code at line 3595 was first introduced by commit
:::::: 042dd765bdf401c0ccdeb16717b0c2a0b1405f18 IB/srp: Introduce a local variable in srp_add_one()
:::::: TO: Bart Van Assche <bart.vanassche@sandisk.com>
:::::: CC: Doug Ledford <dledford@redhat.com>
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
diff --git a/drivers/infiniband/Kconfig b/drivers/infiniband/Kconfig index 234fe01..568088a 100644 --- a/drivers/infiniband/Kconfig +++ b/drivers/infiniband/Kconfig @@ -1,6 +1,5 @@ menuconfig INFINIBAND tristate "InfiniBand support" - depends on PCI || BROKEN depends on HAS_IOMEM depends on NET depends on INET diff --git a/drivers/infiniband/hw/cxgb3/Kconfig b/drivers/infiniband/hw/cxgb3/Kconfig index 2b6352b..bd32926 100644 --- a/drivers/infiniband/hw/cxgb3/Kconfig +++ b/drivers/infiniband/hw/cxgb3/Kconfig @@ -1,5 +1,6 @@ config INFINIBAND_CXGB3 tristate "Chelsio RDMA Driver" + depends on PCI || BROKEN depends on CHELSIO_T3 && INET select GENERIC_ALLOCATOR ---help--- diff --git a/drivers/infiniband/hw/cxgb4/Kconfig b/drivers/infiniband/hw/cxgb4/Kconfig index afe8b28..7910fdd 100644 --- a/drivers/infiniband/hw/cxgb4/Kconfig +++ b/drivers/infiniband/hw/cxgb4/Kconfig @@ -1,6 +1,7 @@ config INFINIBAND_CXGB4 tristate "Chelsio T4/T5 RDMA Driver" depends on CHELSIO_T4 && INET && (IPV6 || IPV6=n) + depends on PCI || BROKEN select CHELSIO_LIB select GENERIC_ALLOCATOR ---help--- diff --git a/drivers/infiniband/hw/hfi1/Kconfig b/drivers/infiniband/hw/hfi1/Kconfig index f6ea088..5072d08 100644 --- a/drivers/infiniband/hw/hfi1/Kconfig +++ b/drivers/infiniband/hw/hfi1/Kconfig @@ -1,6 +1,7 @@ config INFINIBAND_HFI1 tristate "Intel OPA Gen1 support" depends on X86_64 && INFINIBAND_RDMAVT && I2C + depends on PCI || BROKEN select MMU_NOTIFIER select CRC32 select I2C_ALGOBIT diff --git a/drivers/infiniband/hw/i40iw/Kconfig b/drivers/infiniband/hw/i40iw/Kconfig index 6e7d27a..9cfef13 100644 --- a/drivers/infiniband/hw/i40iw/Kconfig +++ b/drivers/infiniband/hw/i40iw/Kconfig @@ -1,6 +1,7 @@ config INFINIBAND_I40IW tristate "Intel(R) Ethernet X722 iWARP Driver" depends on INET && I40E + depends on PCI || BROKEN select GENERIC_ALLOCATOR ---help--- Intel(R) Ethernet X722 iWARP Driver diff --git a/drivers/infiniband/hw/qedr/Kconfig b/drivers/infiniband/hw/qedr/Kconfig index 6c9f392..8db2966 100644 --- a/drivers/infiniband/hw/qedr/Kconfig +++ b/drivers/infiniband/hw/qedr/Kconfig @@ -1,6 +1,7 @@ config INFINIBAND_QEDR tristate "QLogic RoCE driver" depends on 64BIT && QEDE + depends on PCI || BROKEN select QED_LL2 select QED_RDMA ---help--- diff --git a/drivers/infiniband/hw/qib/Kconfig b/drivers/infiniband/hw/qib/Kconfig index e0fdb92..522a6fc 100644 --- a/drivers/infiniband/hw/qib/Kconfig +++ b/drivers/infiniband/hw/qib/Kconfig @@ -1,6 +1,7 @@ config INFINIBAND_QIB tristate "Intel PCIe HCA support" depends on 64BIT && INFINIBAND_RDMAVT + depends on PCI || BROKEN ---help--- This is a low-level driver for Intel PCIe QLE InfiniBand host channel adapters. This driver does not support the Intel diff --git a/drivers/infiniband/sw/rdmavt/Kconfig b/drivers/infiniband/sw/rdmavt/Kconfig index fdd001c..605bfb1 100644 --- a/drivers/infiniband/sw/rdmavt/Kconfig +++ b/drivers/infiniband/sw/rdmavt/Kconfig @@ -1,6 +1,7 @@ config INFINIBAND_RDMAVT tristate "RDMA verbs transport library" depends on 64BIT + depends on PCI || BROKEN select DMA_VIRT_OPS ---help--- This is a common software verbs provider for RDMA networks. diff --git a/drivers/infiniband/ulp/ipoib/Kconfig b/drivers/infiniband/ulp/ipoib/Kconfig index cda8eac..5aec880 100644 --- a/drivers/infiniband/ulp/ipoib/Kconfig +++ b/drivers/infiniband/ulp/ipoib/Kconfig @@ -1,6 +1,7 @@ config INFINIBAND_IPOIB tristate "IP-over-InfiniBand" depends on NETDEVICES && INET && (IPV6 || IPV6=n) + depends on PCI || BROKEN ---help--- Support for the IP-over-InfiniBand protocol (IPoIB). This transports IP packets over InfiniBand so you can use your IB
No reason to have dependency on PCI for the entire infiniband stack so move it to KConfig of only the drivers that actually using PCI. Signed-off-by: Yuval Shaia <yuval.shaia@oracle.com> --- drivers/infiniband/Kconfig | 1 - drivers/infiniband/hw/cxgb3/Kconfig | 1 + drivers/infiniband/hw/cxgb4/Kconfig | 1 + drivers/infiniband/hw/hfi1/Kconfig | 1 + drivers/infiniband/hw/i40iw/Kconfig | 1 + drivers/infiniband/hw/qedr/Kconfig | 1 + drivers/infiniband/hw/qib/Kconfig | 1 + drivers/infiniband/sw/rdmavt/Kconfig | 1 + drivers/infiniband/ulp/ipoib/Kconfig | 1 + 9 files changed, 8 insertions(+), 1 deletion(-)