diff mbox

IB: Move PCI dependency from root KConfig to HW's KConfigs

Message ID 20170626085313.6052-1-yuval.shaia@oracle.com (mailing list archive)
State Rejected
Headers show

Commit Message

Yuval Shaia June 26, 2017, 8:53 a.m. UTC
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(-)

Comments

Leon Romanovsky June 26, 2017, 10:02 a.m. UTC | #1
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
Yuval Shaia June 26, 2017, 10:38 a.m. UTC | #2
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
Leon Romanovsky June 26, 2017, 11:57 a.m. UTC | #3
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
>
>
kernel test robot June 26, 2017, 2:33 p.m. UTC | #4
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
kernel test robot June 27, 2017, 6:48 p.m. UTC | #5
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 mbox

Patch

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