All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH rdma-rc] RDMA: Remove kernel private defines and reference to header from UAPI
@ 2017-02-07 17:46 Leon Romanovsky
       [not found] ` <20170207174600.27218-1-leon-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
  0 siblings, 1 reply; 7+ messages in thread
From: Leon Romanovsky @ 2017-02-07 17:46 UTC (permalink / raw)
  To: Doug Ledford; +Cc: linux-rdma-u79uwXL29TY76Z2rM5mHXA, Bodong Wang, Matan Barak

Remove references to private kernel header and defines from exported
ib_user_verb.h file.

The code snippet below is used to reproduce the issue:

 #include <stdio.h>
 #include <rdma/ib_user_verb.h>

 int main(void)
 {
	printf("IB_USER_VERBS_ABI_VERSION = %d\n", IB_USER_VERBS_ABI_VERSION);
	return 0;
 }

It fails during compilation phase with an error:
➜  /tmp gcc main.c
main.c:2:31: fatal error: rdma/ib_user_verb.h: No such file or directory
 #include <rdma/ib_user_verb.h>
                               ^
compilation terminated.

Fixes: 189aba99e700 ("IB/uverbs: Extend modify_qp and support packet pacing")
CC: Bodong Wang <bodong-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
CC: Matan Barak <matanb-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
Reported-by: Slava Shwartsman <slavash-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
Signed-off-by: Leon Romanovsky <leon-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
---
 include/uapi/rdma/ib_user_verbs.h | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/include/uapi/rdma/ib_user_verbs.h b/include/uapi/rdma/ib_user_verbs.h
index dfdfe4e92d31..c56f525b041d 100644
--- a/include/uapi/rdma/ib_user_verbs.h
+++ b/include/uapi/rdma/ib_user_verbs.h
@@ -37,7 +37,6 @@
 #define IB_USER_VERBS_H

 #include <linux/types.h>
-#include <rdma/ib_verbs.h>

 /*
  * Increment this value if any changes that break userspace ABI
@@ -548,11 +547,11 @@ enum {
 };

 enum {
-	IB_USER_LEGACY_LAST_QP_ATTR_MASK = IB_QP_DEST_QPN
+	IB_USER_LEGACY_LAST_QP_ATTR_MASK = 1ULL << 20,
 };

 enum {
-	IB_USER_LAST_QP_ATTR_MASK = IB_QP_RATE_LIMIT
+	IB_USER_LAST_QP_ATTR_MASK = 1ULL << 25,
 };

 struct ib_uverbs_ex_create_qp {
--
2.11.1

--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

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

* Re: [PATCH rdma-rc] RDMA: Remove kernel private defines and reference to header from UAPI
       [not found] ` <20170207174600.27218-1-leon-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
@ 2017-02-08  8:26   ` Sl Sh
  2017-02-08  8:28   ` Christoph Hellwig
  1 sibling, 0 replies; 7+ messages in thread
From: Sl Sh @ 2017-02-08  8:26 UTC (permalink / raw)
  To: Leon Romanovsky
  Cc: Doug Ledford, linux-rdma-u79uwXL29TY76Z2rM5mHXA, Bodong Wang,
	Matan Barak

Works for me.

Tested-by: Slava Shwartsman <slavash-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>

On Tue, Feb 7, 2017 at 7:46 PM, Leon Romanovsky <leon-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org> wrote:
> Remove references to private kernel header and defines from exported
> ib_user_verb.h file.
>
> The code snippet below is used to reproduce the issue:
>
>  #include <stdio.h>
>  #include <rdma/ib_user_verb.h>
>
>  int main(void)
>  {
>         printf("IB_USER_VERBS_ABI_VERSION = %d\n", IB_USER_VERBS_ABI_VERSION);
>         return 0;
>  }
>
> It fails during compilation phase with an error:
> ➜  /tmp gcc main.c
> main.c:2:31: fatal error: rdma/ib_user_verb.h: No such file or directory
>  #include <rdma/ib_user_verb.h>
>                                ^
> compilation terminated.
>
> Fixes: 189aba99e700 ("IB/uverbs: Extend modify_qp and support packet pacing")
> CC: Bodong Wang <bodong-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
> CC: Matan Barak <matanb-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
> Reported-by: Slava Shwartsman <slavash-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
> Signed-off-by: Leon Romanovsky <leon-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
> ---
>  include/uapi/rdma/ib_user_verbs.h | 5 ++---
>  1 file changed, 2 insertions(+), 3 deletions(-)
>
> diff --git a/include/uapi/rdma/ib_user_verbs.h b/include/uapi/rdma/ib_user_verbs.h
> index dfdfe4e92d31..c56f525b041d 100644
> --- a/include/uapi/rdma/ib_user_verbs.h
> +++ b/include/uapi/rdma/ib_user_verbs.h
> @@ -37,7 +37,6 @@
>  #define IB_USER_VERBS_H
>
>  #include <linux/types.h>
> -#include <rdma/ib_verbs.h>
>
>  /*
>   * Increment this value if any changes that break userspace ABI
> @@ -548,11 +547,11 @@ enum {
>  };
>
>  enum {
> -       IB_USER_LEGACY_LAST_QP_ATTR_MASK = IB_QP_DEST_QPN
> +       IB_USER_LEGACY_LAST_QP_ATTR_MASK = 1ULL << 20,
>  };
>
>  enum {
> -       IB_USER_LAST_QP_ATTR_MASK = IB_QP_RATE_LIMIT
> +       IB_USER_LAST_QP_ATTR_MASK = 1ULL << 25,
>  };
>
>  struct ib_uverbs_ex_create_qp {
> --
> 2.11.1
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
> the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html



-- 
Thank you in advance,

Slava Shwartsman
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

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

* Re: [PATCH rdma-rc] RDMA: Remove kernel private defines and reference to header from UAPI
       [not found] ` <20170207174600.27218-1-leon-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
  2017-02-08  8:26   ` Sl Sh
@ 2017-02-08  8:28   ` Christoph Hellwig
       [not found]     ` <20170208082850.GA11087-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org>
  1 sibling, 1 reply; 7+ messages in thread
From: Christoph Hellwig @ 2017-02-08  8:28 UTC (permalink / raw)
  To: Leon Romanovsky
  Cc: Doug Ledford, linux-rdma-u79uwXL29TY76Z2rM5mHXA, Bodong Wang,
	Matan Barak

>  #include <linux/types.h>
> -#include <rdma/ib_verbs.h>
> 
>  /*
>   * Increment this value if any changes that break userspace ABI
> @@ -548,11 +547,11 @@ enum {
>  };
> 
>  enum {
> -	IB_USER_LEGACY_LAST_QP_ATTR_MASK = IB_QP_DEST_QPN
> +	IB_USER_LEGACY_LAST_QP_ATTR_MASK = 1ULL << 20,
>  };
> 
>  enum {
> -	IB_USER_LAST_QP_ATTR_MASK = IB_QP_RATE_LIMIT
> +	IB_USER_LAST_QP_ATTR_MASK = 1ULL << 25,

I disagree with the upendcoding.  These constant should be moved to
the user verbs header instead.
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

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

* Re: [PATCH rdma-rc] RDMA: Remove kernel private defines and reference to header from UAPI
       [not found]     ` <20170208082850.GA11087-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org>
@ 2017-02-08 10:00       ` Leon Romanovsky
       [not found]         ` <20170208100043.GC6005-U/DQcQFIOTAAJjI8aNfphQ@public.gmane.org>
  0 siblings, 1 reply; 7+ messages in thread
From: Leon Romanovsky @ 2017-02-08 10:00 UTC (permalink / raw)
  To: Christoph Hellwig
  Cc: Doug Ledford, linux-rdma-u79uwXL29TY76Z2rM5mHXA, Bodong Wang,
	Matan Barak

[-- Attachment #1: Type: text/plain, Size: 838 bytes --]

On Wed, Feb 08, 2017 at 12:28:50AM -0800, Christoph Hellwig wrote:
> >  #include <linux/types.h>
> > -#include <rdma/ib_verbs.h>
> >
> >  /*
> >   * Increment this value if any changes that break userspace ABI
> > @@ -548,11 +547,11 @@ enum {
> >  };
> >
> >  enum {
> > -	IB_USER_LEGACY_LAST_QP_ATTR_MASK = IB_QP_DEST_QPN
> > +	IB_USER_LEGACY_LAST_QP_ATTR_MASK = 1ULL << 20,
> >  };
> >
> >  enum {
> > -	IB_USER_LAST_QP_ATTR_MASK = IB_QP_RATE_LIMIT
> > +	IB_USER_LAST_QP_ATTR_MASK = 1ULL << 25,
>
> I disagree with the upendcoding.  These constant should be moved to
> the user verbs header instead.

These constants are part of much larger enum ib_qp_attr_mask. IMHO copy
two values from that enum isn't good, but copy whole enum (mostly not
needed for the users) is bad either. So I decided to open code it as a fix
for -rc7.

Thanks

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

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

* Re: [PATCH rdma-rc] RDMA: Remove kernel private defines and reference to header from UAPI
       [not found]         ` <20170208100043.GC6005-U/DQcQFIOTAAJjI8aNfphQ@public.gmane.org>
@ 2017-02-08 11:53           ` Christoph Hellwig
       [not found]             ` <20170208115349.GA18879-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org>
  2017-02-08 12:33           ` Matan Barak
  1 sibling, 1 reply; 7+ messages in thread
From: Christoph Hellwig @ 2017-02-08 11:53 UTC (permalink / raw)
  To: Leon Romanovsky
  Cc: Christoph Hellwig, Doug Ledford,
	linux-rdma-u79uwXL29TY76Z2rM5mHXA, Bodong Wang, Matan Barak

On Wed, Feb 08, 2017 at 12:00:43PM +0200, Leon Romanovsky wrote:
> These constants are part of much larger enum ib_qp_attr_mask. IMHO copy
> two values from that enum isn't good, but copy whole enum (mostly not
> needed for the users) is bad either. So I decided to open code it as a fix
> for -rc7.

At least add comments mentioning the proper symbolic values then.
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

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

* Re: [PATCH rdma-rc] RDMA: Remove kernel private defines and reference to header from UAPI
       [not found]         ` <20170208100043.GC6005-U/DQcQFIOTAAJjI8aNfphQ@public.gmane.org>
  2017-02-08 11:53           ` Christoph Hellwig
@ 2017-02-08 12:33           ` Matan Barak
  1 sibling, 0 replies; 7+ messages in thread
From: Matan Barak @ 2017-02-08 12:33 UTC (permalink / raw)
  To: Leon Romanovsky, Christoph Hellwig
  Cc: Doug Ledford, linux-rdma-u79uwXL29TY76Z2rM5mHXA, Bodong Wang

On 08/02/2017 12:00, Leon Romanovsky wrote:
> On Wed, Feb 08, 2017 at 12:28:50AM -0800, Christoph Hellwig wrote:
>>>  #include <linux/types.h>
>>> -#include <rdma/ib_verbs.h>
>>>
>>>  /*
>>>   * Increment this value if any changes that break userspace ABI
>>> @@ -548,11 +547,11 @@ enum {
>>>  };
>>>
>>>  enum {
>>> -	IB_USER_LEGACY_LAST_QP_ATTR_MASK = IB_QP_DEST_QPN
>>> +	IB_USER_LEGACY_LAST_QP_ATTR_MASK = 1ULL << 20,
>>>  };
>>>
>>>  enum {
>>> -	IB_USER_LAST_QP_ATTR_MASK = IB_QP_RATE_LIMIT
>>> +	IB_USER_LAST_QP_ATTR_MASK = 1ULL << 25,
>>
>> I disagree with the upendcoding.  These constant should be moved to
>> the user verbs header instead.
>
> These constants are part of much larger enum ib_qp_attr_mask. IMHO copy
> two values from that enum isn't good, but copy whole enum (mostly not
> needed for the users) is bad either. So I decided to open code it as a fix
> for -rc7.
>
> Thanks
>

IMHO, since these enum values are actually passed between user-space to 
kernel (attr_mask), it's acceptable to expose all enum values.
Otherwise, the user-space should define all these symbols by by itself, 
so why bother introduce only this explicit symbol?
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

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

* Re: [PATCH rdma-rc] RDMA: Remove kernel private defines and reference to header from UAPI
       [not found]             ` <20170208115349.GA18879-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org>
@ 2017-02-08 14:52               ` Leon Romanovsky
  0 siblings, 0 replies; 7+ messages in thread
From: Leon Romanovsky @ 2017-02-08 14:52 UTC (permalink / raw)
  To: Christoph Hellwig
  Cc: Doug Ledford, linux-rdma-u79uwXL29TY76Z2rM5mHXA, Bodong Wang,
	Matan Barak

[-- Attachment #1: Type: text/plain, Size: 483 bytes --]

On Wed, Feb 08, 2017 at 03:53:49AM -0800, Christoph Hellwig wrote:
> On Wed, Feb 08, 2017 at 12:00:43PM +0200, Leon Romanovsky wrote:
> > These constants are part of much larger enum ib_qp_attr_mask. IMHO copy
> > two values from that enum isn't good, but copy whole enum (mostly not
> > needed for the users) is bad either. So I decided to open code it as a fix
> > for -rc7.
>
> At least add comments mentioning the proper symbolic values then.

Sure, I'll send an update.

Thanks

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

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

end of thread, other threads:[~2017-02-08 14:52 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-02-07 17:46 [PATCH rdma-rc] RDMA: Remove kernel private defines and reference to header from UAPI Leon Romanovsky
     [not found] ` <20170207174600.27218-1-leon-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
2017-02-08  8:26   ` Sl Sh
2017-02-08  8:28   ` Christoph Hellwig
     [not found]     ` <20170208082850.GA11087-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org>
2017-02-08 10:00       ` Leon Romanovsky
     [not found]         ` <20170208100043.GC6005-U/DQcQFIOTAAJjI8aNfphQ@public.gmane.org>
2017-02-08 11:53           ` Christoph Hellwig
     [not found]             ` <20170208115349.GA18879-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org>
2017-02-08 14:52               ` Leon Romanovsky
2017-02-08 12:33           ` Matan Barak

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.