* [PATCH v06 02/36] uapi scsi/scsi_bsg_fc.h: use __u8, __u32 and __u64 from linux/types.h
[not found] <20170806164428.2273-1-mikko.rapeli@iki.fi>
@ 2017-08-06 16:43 ` Mikko Rapeli
2017-08-06 16:43 ` [PATCH v06 03/36] uapi scsi/scsi_netlink.h: use __u8, __u16 " Mikko Rapeli
2017-08-06 16:43 ` [PATCH v06 04/36] uapi scsi/scsi_netlink_fc.h: use __u16, __u32 " Mikko Rapeli
2 siblings, 0 replies; 7+ messages in thread
From: Mikko Rapeli @ 2017-08-06 16:43 UTC (permalink / raw)
To: linux-kernel, linux-api; +Cc: Mikko Rapeli, linux-scsi
Fixes userspace compilation errors like:
scsi/scsi_bsg_fc.h:83:2: error: unknown type name ‘uint8_t’
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
Cc: linux-scsi@vger.kernel.org
---
include/uapi/scsi/scsi_bsg_fc.h | 54 +++++++++++++++++++++--------------------
1 file changed, 28 insertions(+), 26 deletions(-)
diff --git a/include/uapi/scsi/scsi_bsg_fc.h b/include/uapi/scsi/scsi_bsg_fc.h
index 3031b900b087..1a2044755636 100644
--- a/include/uapi/scsi/scsi_bsg_fc.h
+++ b/include/uapi/scsi/scsi_bsg_fc.h
@@ -22,6 +22,8 @@
#ifndef SCSI_BSG_FC_H
#define SCSI_BSG_FC_H
+#include <linux/types.h>
+
/*
* This file intended to be included by both kernel and user space
*/
@@ -80,10 +82,10 @@
* with the transport upon completion of the login.
*/
struct fc_bsg_host_add_rport {
- uint8_t reserved;
+ __u8 reserved;
/* FC Address Identier of the remote port to login to */
- uint8_t port_id[3];
+ __u8 port_id[3];
};
/* Response:
@@ -101,10 +103,10 @@ struct fc_bsg_host_add_rport {
* remain logged in with the remote port.
*/
struct fc_bsg_host_del_rport {
- uint8_t reserved;
+ __u8 reserved;
/* FC Address Identier of the remote port to logout of */
- uint8_t port_id[3];
+ __u8 port_id[3];
};
/* Response:
@@ -125,10 +127,10 @@ struct fc_bsg_host_els {
* ELS Command Code being sent (must be the same as byte 0
* of the payload)
*/
- uint8_t command_code;
+ __u8 command_code;
/* FC Address Identier of the remote port to send the ELS to */
- uint8_t port_id[3];
+ __u8 port_id[3];
};
/* Response:
@@ -165,14 +167,14 @@ struct fc_bsg_ctels_reply {
* Note: x_RJT/BSY status will indicae that the rjt_data field
* is valid and contains the reason/explanation values.
*/
- uint32_t status; /* See FC_CTELS_STATUS_xxx */
+ __u32 status; /* See FC_CTELS_STATUS_xxx */
/* valid if status is not FC_CTELS_STATUS_OK */
struct {
- uint8_t action; /* fragment_id for CT REJECT */
- uint8_t reason_code;
- uint8_t reason_explanation;
- uint8_t vendor_unique;
+ __u8 action; /* fragment_id for CT REJECT */
+ __u8 reason_code;
+ __u8 reason_explanation;
+ __u8 vendor_unique;
} rjt_data;
};
@@ -188,17 +190,17 @@ struct fc_bsg_ctels_reply {
* and whether to tear it down after the request.
*/
struct fc_bsg_host_ct {
- uint8_t reserved;
+ __u8 reserved;
/* FC Address Identier of the remote port to send the ELS to */
- uint8_t port_id[3];
+ __u8 port_id[3];
/*
* We need words 0-2 of the generic preamble for the LLD's
*/
- uint32_t preamble_word0; /* revision & IN_ID */
- uint32_t preamble_word1; /* GS_Type, GS_SubType, Options, Rsvd */
- uint32_t preamble_word2; /* Cmd Code, Max Size */
+ __u32 preamble_word0; /* revision & IN_ID */
+ __u32 preamble_word1; /* GS_Type, GS_SubType, Options, Rsvd */
+ __u32 preamble_word2; /* Cmd Code, Max Size */
};
/* Response:
@@ -218,17 +220,17 @@ struct fc_bsg_host_vendor {
* Identifies the vendor that the message is formatted for. This
* should be the recipient of the message.
*/
- uint64_t vendor_id;
+ __u64 vendor_id;
/* start of vendor command area */
- uint32_t vendor_cmd[0];
+ __u32 vendor_cmd[0];
};
/* Response:
*/
struct fc_bsg_host_vendor_reply {
/* start of vendor response area */
- uint32_t vendor_rsp[0];
+ __u32 vendor_rsp[0];
};
@@ -247,7 +249,7 @@ struct fc_bsg_rport_els {
* ELS Command Code being sent (must be the same as
* byte 0 of the payload)
*/
- uint8_t els_code;
+ __u8 els_code;
};
/* Response:
@@ -265,9 +267,9 @@ struct fc_bsg_rport_ct {
/*
* We need words 0-2 of the generic preamble for the LLD's
*/
- uint32_t preamble_word0; /* revision & IN_ID */
- uint32_t preamble_word1; /* GS_Type, GS_SubType, Options, Rsvd */
- uint32_t preamble_word2; /* Cmd Code, Max Size */
+ __u32 preamble_word0; /* revision & IN_ID */
+ __u32 preamble_word1; /* GS_Type, GS_SubType, Options, Rsvd */
+ __u32 preamble_word2; /* Cmd Code, Max Size */
};
/* Response:
*
@@ -279,7 +281,7 @@ struct fc_bsg_rport_ct {
/* request (CDB) structure of the sg_io_v4 */
struct fc_bsg_request {
- uint32_t msgcode;
+ __u32 msgcode;
union {
struct fc_bsg_host_add_rport h_addrport;
struct fc_bsg_host_del_rport h_delrport;
@@ -303,10 +305,10 @@ struct fc_bsg_reply {
* msg and status fields. The per-msgcode reply structure
* will contain valid data.
*/
- uint32_t result;
+ __u32 result;
/* If there was reply_payload, how much was recevied ? */
- uint32_t reply_payload_rcv_len;
+ __u32 reply_payload_rcv_len;
union {
struct fc_bsg_host_vendor_reply vendor_reply;
--
2.13.3
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH v06 03/36] uapi scsi/scsi_netlink.h: use __u8, __u16 and __u64 from linux/types.h
[not found] <20170806164428.2273-1-mikko.rapeli@iki.fi>
2017-08-06 16:43 ` [PATCH v06 02/36] uapi scsi/scsi_bsg_fc.h: use __u8, __u32 and __u64 from linux/types.h Mikko Rapeli
@ 2017-08-06 16:43 ` Mikko Rapeli
2017-08-06 16:43 ` [PATCH v06 04/36] uapi scsi/scsi_netlink_fc.h: use __u16, __u32 " Mikko Rapeli
2 siblings, 0 replies; 7+ messages in thread
From: Mikko Rapeli @ 2017-08-06 16:43 UTC (permalink / raw)
To: linux-kernel, linux-api; +Cc: Mikko Rapeli, linux-scsi
Fixes userspace compilation errors like:
scsi/scsi_netlink.h:43:2: error: unknown type name ‘uint8_t’
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
Cc: linux-scsi@vger.kernel.org
---
include/uapi/scsi/scsi_netlink.h | 22 +++++++++++-----------
1 file changed, 11 insertions(+), 11 deletions(-)
diff --git a/include/uapi/scsi/scsi_netlink.h b/include/uapi/scsi/scsi_netlink.h
index 62b4edab15d3..36b53a769a04 100644
--- a/include/uapi/scsi/scsi_netlink.h
+++ b/include/uapi/scsi/scsi_netlink.h
@@ -22,8 +22,8 @@
#ifndef SCSI_NETLINK_H
#define SCSI_NETLINK_H
-#include <linux/netlink.h>
#include <linux/types.h>
+#include <linux/netlink.h>
/*
* This file intended to be included by both kernel and user space
@@ -40,12 +40,12 @@
/* SCSI_TRANSPORT_MSG event message header */
struct scsi_nl_hdr {
- uint8_t version;
- uint8_t transport;
- uint16_t magic;
- uint16_t msgtype;
- uint16_t msglen;
-} __attribute__((aligned(sizeof(uint64_t))));
+ __u8 version;
+ __u8 transport;
+ __u16 magic;
+ __u16 msgtype;
+ __u16 msglen;
+} __attribute__((aligned(sizeof(__u64))));
/* scsi_nl_hdr->version value */
#define SCSI_NL_VERSION 1
@@ -89,10 +89,10 @@ struct scsi_nl_hdr {
*/
struct scsi_nl_host_vendor_msg {
struct scsi_nl_hdr snlh; /* must be 1st element ! */
- uint64_t vendor_id;
- uint16_t host_no;
- uint16_t vmsg_datalen;
-} __attribute__((aligned(sizeof(uint64_t))));
+ __u64 vendor_id;
+ __u16 host_no;
+ __u16 vmsg_datalen;
+} __attribute__((aligned(sizeof(__u64))));
/*
--
2.13.3
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH v06 04/36] uapi scsi/scsi_netlink_fc.h: use __u16, __u32 and __u64 from linux/types.h
[not found] <20170806164428.2273-1-mikko.rapeli@iki.fi>
2017-08-06 16:43 ` [PATCH v06 02/36] uapi scsi/scsi_bsg_fc.h: use __u8, __u32 and __u64 from linux/types.h Mikko Rapeli
2017-08-06 16:43 ` [PATCH v06 03/36] uapi scsi/scsi_netlink.h: use __u8, __u16 " Mikko Rapeli
@ 2017-08-06 16:43 ` Mikko Rapeli
2017-08-06 18:22 ` James Bottomley
2 siblings, 1 reply; 7+ messages in thread
From: Mikko Rapeli @ 2017-08-06 16:43 UTC (permalink / raw)
To: linux-kernel, linux-api; +Cc: Mikko Rapeli, linux-scsi
Fixes userspace compilation errors like:
scsi/scsi_netlink_fc.h:60:2: error: expected specifier-qualifier-list before ‘uint64_t’
Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
Cc: linux-scsi@vger.kernel.org
---
include/uapi/scsi/scsi_netlink_fc.h | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/include/uapi/scsi/scsi_netlink_fc.h b/include/uapi/scsi/scsi_netlink_fc.h
index cbf76e479761..2493a0f533dc 100644
--- a/include/uapi/scsi/scsi_netlink_fc.h
+++ b/include/uapi/scsi/scsi_netlink_fc.h
@@ -57,14 +57,14 @@
*/
struct fc_nl_event {
struct scsi_nl_hdr snlh; /* must be 1st element ! */
- uint64_t seconds;
- uint64_t vendor_id;
- uint16_t host_no;
- uint16_t event_datalen;
- uint32_t event_num;
- uint32_t event_code;
- uint32_t event_data;
-} __attribute__((aligned(sizeof(uint64_t))));
+ __u64 seconds;
+ __u64 vendor_id;
+ __u16 host_no;
+ __u16 event_datalen;
+ __u32 event_num;
+ __u32 event_code;
+ __u32 event_data;
+} __attribute__((aligned(sizeof(__u64))));
#endif /* SCSI_NETLINK_FC_H */
--
2.13.3
^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH v06 04/36] uapi scsi/scsi_netlink_fc.h: use __u16, __u32 and __u64 from linux/types.h
2017-08-06 16:43 ` [PATCH v06 04/36] uapi scsi/scsi_netlink_fc.h: use __u16, __u32 " Mikko Rapeli
@ 2017-08-06 18:22 ` James Bottomley
[not found] ` <1502043773.2673.9.camel-d9PhHud1JfjCXq6kfMZ53/egYHeGw8Jk@public.gmane.org>
0 siblings, 1 reply; 7+ messages in thread
From: James Bottomley @ 2017-08-06 18:22 UTC (permalink / raw)
To: Mikko Rapeli, linux-kernel, linux-api; +Cc: linux-scsi
On Sun, 2017-08-06 at 18:43 +0200, Mikko Rapeli wrote:
> Fixes userspace compilation errors like:
>
> scsi/scsi_netlink_fc.h:60:2: error: expected specifier-qualifier-list
> before ‘uint64_t’
Rather than patching the kernel, why not #include <stdint.h> in your
userspace programme?
James
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH v06 04/36] uapi scsi/scsi_netlink_fc.h: use __u16, __u32 and __u64 from linux/types.h
[not found] ` <1502043773.2673.9.camel-d9PhHud1JfjCXq6kfMZ53/egYHeGw8Jk@public.gmane.org>
@ 2017-08-06 20:42 ` Mikko Rapeli
2017-08-06 22:09 ` James Bottomley
0 siblings, 1 reply; 7+ messages in thread
From: Mikko Rapeli @ 2017-08-06 20:42 UTC (permalink / raw)
To: James Bottomley
Cc: linux-kernel-u79uwXL29TY76Z2rM5mHXA,
linux-api-u79uwXL29TY76Z2rM5mHXA,
linux-scsi-u79uwXL29TY76Z2rM5mHXA
Hi,
On Sun, Aug 06, 2017 at 11:22:53AM -0700, James Bottomley wrote:
> On Sun, 2017-08-06 at 18:43 +0200, Mikko Rapeli wrote:
> > Fixes userspace compilation errors like:
> >
> > scsi/scsi_netlink_fc.h:60:2: error: expected specifier-qualifier-list
> > before ‘uint64_t’
>
> Rather than patching the kernel, why not #include <stdint.h> in your
> userspace programme?
The userspace program is actually a test which checks that uapi headers
compile alone because several headers are not compiling at all and/or
require special tricks. The test is available here:
http://marc.info/?l=linux-kernel&m=150203944104544&w=2
I have tried that approach before but then:
https://lkml.org/lkml/2015/6/1/160
For some subsystems like fuse the above message was not enough and they
are including stdint.h in userspace. What shall we do with this old
scsi header file?
-Mikko
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH v06 04/36] uapi scsi/scsi_netlink_fc.h: use __u16, __u32 and __u64 from linux/types.h
2017-08-06 20:42 ` Mikko Rapeli
@ 2017-08-06 22:09 ` James Bottomley
[not found] ` <1502057361.2673.21.camel-d9PhHud1JfjCXq6kfMZ53/egYHeGw8Jk@public.gmane.org>
0 siblings, 1 reply; 7+ messages in thread
From: James Bottomley @ 2017-08-06 22:09 UTC (permalink / raw)
To: Mikko Rapeli; +Cc: linux-kernel, linux-api, linux-scsi
On Sun, 2017-08-06 at 23:42 +0300, Mikko Rapeli wrote:
> Hi,
>
> On Sun, Aug 06, 2017 at 11:22:53AM -0700, James Bottomley wrote:
> >
> > On Sun, 2017-08-06 at 18:43 +0200, Mikko Rapeli wrote:
> > >
> > > Fixes userspace compilation errors like:
> > >
> > > scsi/scsi_netlink_fc.h:60:2: error: expected specifier-qualifier-
> > > list before ‘uint64_t’
> >
> > Rather than patching the kernel, why not #include <stdint.h> in
> > your userspace programme?
>
> The userspace program is actually a test which checks that uapi
> headers compile alone because several headers are not compiling at
> all and/or require special tricks. The test is available here:
>
> http://marc.info/?l=linux-kernel&m=150203944104544&w=2
But you don't seem to be detecting or fixing an existing problem.
These types are width unambiguous and all current consumers of these
headers include stdint.h so you're churning the kernel for a problem
which doesn't currently exist for any consumer of this header.
I can agree not adding any more external uint<x>_t types for newly
exported headers so new consumers don't depend on an external standard
is reasonable, so checkpatch should warn if someone tries to add them;
I just don't see the benefit of going over the whole kernel changing
stuff that has worked fine for years. Now if you can tell me there's
an actual bug somewhere, that's different ...
James
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH v06 04/36] uapi scsi/scsi_netlink_fc.h: use __u16, __u32 and __u64 from linux/types.h
[not found] ` <1502057361.2673.21.camel-d9PhHud1JfjCXq6kfMZ53/egYHeGw8Jk@public.gmane.org>
@ 2017-08-07 6:08 ` Mikko Rapeli
0 siblings, 0 replies; 7+ messages in thread
From: Mikko Rapeli @ 2017-08-07 6:08 UTC (permalink / raw)
To: James Bottomley
Cc: linux-kernel-u79uwXL29TY76Z2rM5mHXA,
linux-api-u79uwXL29TY76Z2rM5mHXA,
linux-scsi-u79uwXL29TY76Z2rM5mHXA
On Sun, Aug 06, 2017 at 03:09:21PM -0700, James Bottomley wrote:
> On Sun, 2017-08-06 at 23:42 +0300, Mikko Rapeli wrote:
> > Hi,
> >
> > On Sun, Aug 06, 2017 at 11:22:53AM -0700, James Bottomley wrote:
> > >
> > > On Sun, 2017-08-06 at 18:43 +0200, Mikko Rapeli wrote:
> > > >
> > > > Fixes userspace compilation errors like:
> > > >
> > > > scsi/scsi_netlink_fc.h:60:2: error: expected specifier-qualifier-
> > > > list before ‘uint64_t’
> > >
> > > Rather than patching the kernel, why not #include <stdint.h> in
> > > your userspace programme?
> >
> > The userspace program is actually a test which checks that uapi
> > headers compile alone because several headers are not compiling at
> > all and/or require special tricks. The test is available here:
> >
> > http://marc.info/?l=linux-kernel&m=150203944104544&w=2
>
> But you don't seem to be detecting or fixing an existing problem.
> These types are width unambiguous and all current consumers of these
> headers include stdint.h so you're churning the kernel for a problem
> which doesn't currently exist for any consumer of this header.
The header file dependencies of scsi/scsi_netlink_fc.h are not explicit.
I will propose a patch which includes <stdint.h> in userspace then.
> I can agree not adding any more external uint<x>_t types for newly
> exported headers so new consumers don't depend on an external standard
> is reasonable, so checkpatch should warn if someone tries to add them;
> I just don't see the benefit of going over the whole kernel changing
> stuff that has worked fine for years. Now if you can tell me there's
> an actual bug somewhere, that's different ...
Tools parsing and checking uapi headers need to be able to compile them
and thus need the explicit list of dependencies. If <stdint.h> is a
required dependency, then scsi/scsi_netlink_fc.h should include it.
scsi/scsi_netlink_fc.h is one of 42 problematic headers left in current
kernel and I want to fix it one way or the other.
-Mikko
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2017-08-07 6:08 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <20170806164428.2273-1-mikko.rapeli@iki.fi>
2017-08-06 16:43 ` [PATCH v06 02/36] uapi scsi/scsi_bsg_fc.h: use __u8, __u32 and __u64 from linux/types.h Mikko Rapeli
2017-08-06 16:43 ` [PATCH v06 03/36] uapi scsi/scsi_netlink.h: use __u8, __u16 " Mikko Rapeli
2017-08-06 16:43 ` [PATCH v06 04/36] uapi scsi/scsi_netlink_fc.h: use __u16, __u32 " Mikko Rapeli
2017-08-06 18:22 ` James Bottomley
[not found] ` <1502043773.2673.9.camel-d9PhHud1JfjCXq6kfMZ53/egYHeGw8Jk@public.gmane.org>
2017-08-06 20:42 ` Mikko Rapeli
2017-08-06 22:09 ` James Bottomley
[not found] ` <1502057361.2673.21.camel-d9PhHud1JfjCXq6kfMZ53/egYHeGw8Jk@public.gmane.org>
2017-08-07 6:08 ` Mikko Rapeli
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox