diff mbox

[v2] cxl: Use fixed width predefined types in data structure.

Message ID 1470398520-20463-1-git-send-email-felix@linux.vnet.ibm.com (mailing list archive)
State Accepted
Headers show

Commit Message

Philippe Bergheaud Aug. 5, 2016, 12:02 p.m. UTC
This patch fixes a regression introduced by commit b810253.

It substitutes the type __u8 to u8 in the uapi header cxl.h,
because the latter is not always defined in userland build
environments, in particular when cross-compiling libcxl on
x86_64 linux machines (RHEL6.7 and Ubuntu 16.04).

This patch also changes the size of the field data_size, and
makes it constant, to support 32-bit userland applications
running on big-endian ppc64 kernels transparently.

This breaks the (young) API that has been merged in v4.8.

Signed-off-by: Philippe Bergheaud <felix@linux.vnet.ibm.com>
---
Changes since v1:
  Added an explanation for the proposed API change in the log.

Note:
As far as I know, cxlflash is the only known user of the API.

 include/uapi/misc/cxl.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Frederic Barrat Aug. 8, 2016, 2:59 p.m. UTC | #1
Le 05/08/2016 à 14:02, Philippe Bergheaud a écrit :
> This patch fixes a regression introduced by commit b810253.
>
> It substitutes the type __u8 to u8 in the uapi header cxl.h,
> because the latter is not always defined in userland build
> environments, in particular when cross-compiling libcxl on
> x86_64 linux machines (RHEL6.7 and Ubuntu 16.04).
>
> This patch also changes the size of the field data_size, and
> makes it constant, to support 32-bit userland applications
> running on big-endian ppc64 kernels transparently.
>
> This breaks the (young) API that has been merged in v4.8.
>
> Signed-off-by: Philippe Bergheaud <felix@linux.vnet.ibm.com>
> ---
> Changes since v1:
>   Added an explanation for the proposed API change in the log.
>
> Note:
> As far as I know, cxlflash is the only known user of the API.


Yes, ideally, we'd like to change the type of 'data_size' to something 
smaller/constant and were expecting it's still doable since the API was 
merged to 4.8 and the expected user (cxlflash) hasn't started using the 
API yet.

Reviewed-by: Frederic Barrat <fbarrat@linux.vnet.ibm.com>

   Fred
Michael Ellerman Aug. 9, 2016, 12:24 a.m. UTC | #2
Frederic Barrat <fbarrat@linux.vnet.ibm.com> writes:

> Le 05/08/2016 à 14:02, Philippe Bergheaud a écrit :
>> This patch fixes a regression introduced by commit b810253.
>>
>> It substitutes the type __u8 to u8 in the uapi header cxl.h,
>> because the latter is not always defined in userland build
>> environments, in particular when cross-compiling libcxl on
>> x86_64 linux machines (RHEL6.7 and Ubuntu 16.04).
>>
>> This patch also changes the size of the field data_size, and
>> makes it constant, to support 32-bit userland applications
>> running on big-endian ppc64 kernels transparently.
>>
>> This breaks the (young) API that has been merged in v4.8.
>>
>> Signed-off-by: Philippe Bergheaud <felix@linux.vnet.ibm.com>
>> ---
>> Changes since v1:
>>   Added an explanation for the proposed API change in the log.
>>
>> Note:
>> As far as I know, cxlflash is the only known user of the API.
>
>
> Yes, ideally, we'd like to change the type of 'data_size' to something 
> smaller/constant and were expecting it's still doable since the API was 
> merged to 4.8 and the expected user (cxlflash) hasn't started using the 
> API yet.

Yep that's fine, it just needed to be mentioned in the change log.

We don't guarantee that an ABI merged in -rc1 doesn't change in -rc2.
But we do (in general) guarantee that an ABI in a released kernel (ie.
4.8 final), never changes.

cheers
Michael Ellerman Aug. 9, 2016, 11:26 a.m. UTC | #3
On Fri, 2016-05-08 at 12:02:00 UTC, Philippe Bergheaud wrote:
> This patch fixes a regression introduced by commit b810253.
> 
> It substitutes the type __u8 to u8 in the uapi header cxl.h,
> because the latter is not always defined in userland build
> environments, in particular when cross-compiling libcxl on
> x86_64 linux machines (RHEL6.7 and Ubuntu 16.04).
> 
> This patch also changes the size of the field data_size, and
> makes it constant, to support 32-bit userland applications
> running on big-endian ppc64 kernels transparently.
> 
> This breaks the (young) API that has been merged in v4.8.
> 
> Signed-off-by: Philippe Bergheaud <felix@linux.vnet.ibm.com>

Applied to powerpc fixes, thanks.

https://git.kernel.org/powerpc/c/cbd74e1bc8129efb9908f130a8

cheers
diff mbox

Patch

diff --git a/include/uapi/misc/cxl.h b/include/uapi/misc/cxl.h
index cbae529..180d526 100644
--- a/include/uapi/misc/cxl.h
+++ b/include/uapi/misc/cxl.h
@@ -136,8 +136,8 @@  struct cxl_event_afu_driver_reserved {
 	 *
 	 * Of course the contents will be ABI, but that's up the AFU driver.
 	 */
-	size_t data_size;
-	u8 data[];
+	__u32 data_size;
+	__u8 data[];
 };
 
 struct cxl_event {