History

Merge branches 'x86/vt-d', 'x86/amd', 'arm/smmu', 'arm/omap', 'generic-dma-ops' and 'core' into next

Joerg Roedel committed 7 years ago

Commit d95c3886 parents 0bcfa62 5cd3f2e 8dd8f00 9378bfe ceedd5f 29fcea89583 files · +20879 −63346Browse files

Showing the changes to include/uapi (8 of 9583 files). Show all

Unified · Split

8 files
  1. include/uapi/linux/bpf.h +4 −2
  2. include/uapi/linux/fuse.h +6 −1
  3. include/uapi/linux/iommu.h +155 −0
  4. include/uapi/linux/psp-sev.h +1 −4
  5. include/uapi/linux/snmp.h +1 −0
  6. include/uapi/linux/wmi.h +1 −4
  7. include/uapi/misc/habanalabs.h +20 −2
  8. include/uapi/sound/sof/abi.h +1 −1
include/uapi/linux/bpf.h+4−2
@@ -192,6 +192,8 @@ enum bpf_attach_type { · 191 unmodified lines
192192 BPF_LIRC_MODE2,
193193 BPF_FLOW_DISSECTOR,
194194 BPF_CGROUP_SYSCTL,
195+ BPF_CGROUP_UDP4_RECVMSG,
196+ BPF_CGROUP_UDP6_RECVMSG,
195197 __MAX_BPF_ATTACH_TYPE
196198 };
197199
@@ -3376,8 +3378,8 @@ struct bpf_raw_tracepoint_args { · 3178 unmodified lines
33763378 /* DIRECT: Skip the FIB rules and go to FIB table associated with device
33773379 * OUTPUT: Do lookup from egress perspective; default is ingress
33783380 */
3379−#define BPF_FIB_LOOKUP_DIRECT BIT(0)
3380−#define BPF_FIB_LOOKUP_OUTPUT BIT(1)
3381+#define BPF_FIB_LOOKUP_DIRECT (1U << 0)
3382+#define BPF_FIB_LOOKUP_OUTPUT (1U << 1)
33813383
33823384 enum {
33833385 BPF_FIB_LKUP_RET_SUCCESS, /* lookup successful */
include/uapi/linux/fuse.h+6−1
@@ -130,6 +130,9 @@ · 129 unmodified lines
130130 * 7.30
131131 * - add FUSE_EXPLICIT_INVAL_DATA
132132 * - add FUSE_IOCTL_COMPAT_X32
133+ *
134+ * 7.31
135+ * - add FUSE_WRITE_KILL_PRIV flag
133136 */
134137
135138 #ifndef _LINUX_FUSE_H
@@ -165,7 +168,7 @@ · 29 unmodified lines
165168 #define FUSE_KERNEL_VERSION 7
166169
167170 /** Minor version number of this interface */
168−#define FUSE_KERNEL_MINOR_VERSION 30
171+#define FUSE_KERNEL_MINOR_VERSION 31
169172
170173 /** The node ID of the root inode */
171174 #define FUSE_ROOT_ID 1
@@ -327,9 +330,11 @@ struct fuse_file_lock { · 155 unmodified lines
327330 *
328331 * FUSE_WRITE_CACHE: delayed write from page cache, file handle is guessed
329332 * FUSE_WRITE_LOCKOWNER: lock_owner field is valid
333+ * FUSE_WRITE_KILL_PRIV: kill suid and sgid bits
330334 */
331335 #define FUSE_WRITE_CACHE (1 << 0)
332336 #define FUSE_WRITE_LOCKOWNER (1 << 1)
337+#define FUSE_WRITE_KILL_PRIV (1 << 2)
333338
334339 /**
335340 * Read flags
include/uapi/linux/iommu.h+155−0
@@ -0,0 +1,155 @@
1+/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
2+/*
3+ * IOMMU user API definitions
4+ */
5+
6+#ifndef _UAPI_IOMMU_H
7+#define _UAPI_IOMMU_H
8+
9+#include <linux/types.h>
10+
11+#define IOMMU_FAULT_PERM_READ (1 << 0) /* read */
12+#define IOMMU_FAULT_PERM_WRITE (1 << 1) /* write */
13+#define IOMMU_FAULT_PERM_EXEC (1 << 2) /* exec */
14+#define IOMMU_FAULT_PERM_PRIV (1 << 3) /* privileged */
15+
16+/* Generic fault types, can be expanded IRQ remapping fault */
17+enum iommu_fault_type {
18+ IOMMU_FAULT_DMA_UNRECOV = 1, /* unrecoverable fault */
19+ IOMMU_FAULT_PAGE_REQ, /* page request fault */
20+};
21+
22+enum iommu_fault_reason {
23+ IOMMU_FAULT_REASON_UNKNOWN = 0,
24+
25+ /* Could not access the PASID table (fetch caused external abort) */
26+ IOMMU_FAULT_REASON_PASID_FETCH,
27+
28+ /* PASID entry is invalid or has configuration errors */
29+ IOMMU_FAULT_REASON_BAD_PASID_ENTRY,
30+
31+ /*
32+ * PASID is out of range (e.g. exceeds the maximum PASID
33+ * supported by the IOMMU) or disabled.
34+ */
35+ IOMMU_FAULT_REASON_PASID_INVALID,
36+
37+ /*
38+ * An external abort occurred fetching (or updating) a translation
39+ * table descriptor
40+ */
41+ IOMMU_FAULT_REASON_WALK_EABT,
42+
43+ /*
44+ * Could not access the page table entry (Bad address),
45+ * actual translation fault
46+ */
47+ IOMMU_FAULT_REASON_PTE_FETCH,
48+
49+ /* Protection flag check failed */
50+ IOMMU_FAULT_REASON_PERMISSION,
51+
52+ /* access flag check failed */
53+ IOMMU_FAULT_REASON_ACCESS,
54+
55+ /* Output address of a translation stage caused Address Size fault */
56+ IOMMU_FAULT_REASON_OOR_ADDRESS,
57+};
58+
59+/**
60+ * struct iommu_fault_unrecoverable - Unrecoverable fault data
61+ * @reason: reason of the fault, from &enum iommu_fault_reason
62+ * @flags: parameters of this fault (IOMMU_FAULT_UNRECOV_* values)
63+ * @pasid: Process Address Space ID
64+ * @perm: requested permission access using by the incoming transaction
65+ * (IOMMU_FAULT_PERM_* values)
66+ * @addr: offending page address
67+ * @fetch_addr: address that caused a fetch abort, if any
68+ */
69+struct iommu_fault_unrecoverable {
70+ __u32 reason;
71+#define IOMMU_FAULT_UNRECOV_PASID_VALID (1 << 0)
72+#define IOMMU_FAULT_UNRECOV_ADDR_VALID (1 << 1)
73+#define IOMMU_FAULT_UNRECOV_FETCH_ADDR_VALID (1 << 2)
74+ __u32 flags;
75+ __u32 pasid;
76+ __u32 perm;
77+ __u64 addr;
78+ __u64 fetch_addr;
79+};
80+
81+/**
82+ * struct iommu_fault_page_request - Page Request data
83+ * @flags: encodes whether the corresponding fields are valid and whether this
84+ * is the last page in group (IOMMU_FAULT_PAGE_REQUEST_* values)
85+ * @pasid: Process Address Space ID
86+ * @grpid: Page Request Group Index
87+ * @perm: requested page permissions (IOMMU_FAULT_PERM_* values)
88+ * @addr: page address
89+ * @private_data: device-specific private information
90+ */
91+struct iommu_fault_page_request {
92+#define IOMMU_FAULT_PAGE_REQUEST_PASID_VALID (1 << 0)
93+#define IOMMU_FAULT_PAGE_REQUEST_LAST_PAGE (1 << 1)
94+#define IOMMU_FAULT_PAGE_REQUEST_PRIV_DATA (1 << 2)
95+ __u32 flags;
96+ __u32 pasid;
97+ __u32 grpid;
98+ __u32 perm;
99+ __u64 addr;
100+ __u64 private_data[2];
101+};
102+
103+/**
104+ * struct iommu_fault - Generic fault data
105+ * @type: fault type from &enum iommu_fault_type
106+ * @padding: reserved for future use (should be zero)
107+ * @event: fault event, when @type is %IOMMU_FAULT_DMA_UNRECOV
108+ * @prm: Page Request message, when @type is %IOMMU_FAULT_PAGE_REQ
109+ * @padding2: sets the fault size to allow for future extensions
110+ */
111+struct iommu_fault {
112+ __u32 type;
113+ __u32 padding;
114+ union {
115+ struct iommu_fault_unrecoverable event;
116+ struct iommu_fault_page_request prm;
117+ __u8 padding2[56];
118+ };
119+};
120+
121+/**
122+ * enum iommu_page_response_code - Return status of fault handlers
123+ * @IOMMU_PAGE_RESP_SUCCESS: Fault has been handled and the page tables
124+ * populated, retry the access. This is "Success" in PCI PRI.
125+ * @IOMMU_PAGE_RESP_FAILURE: General error. Drop all subsequent faults from
126+ * this device if possible. This is "Response Failure" in PCI PRI.
127+ * @IOMMU_PAGE_RESP_INVALID: Could not handle this fault, don't retry the
128+ * access. This is "Invalid Request" in PCI PRI.
129+ */
130+enum iommu_page_response_code {
131+ IOMMU_PAGE_RESP_SUCCESS = 0,
132+ IOMMU_PAGE_RESP_INVALID,
133+ IOMMU_PAGE_RESP_FAILURE,
134+};
135+
136+/**
137+ * struct iommu_page_response - Generic page response information
138+ * @version: API version of this structure
139+ * @flags: encodes whether the corresponding fields are valid
140+ * (IOMMU_FAULT_PAGE_RESPONSE_* values)
141+ * @pasid: Process Address Space ID
142+ * @grpid: Page Request Group Index
143+ * @code: response code from &enum iommu_page_response_code
144+ */
145+struct iommu_page_response {
146+#define IOMMU_PAGE_RESP_VERSION_1 1
147+ __u32 version;
148+#define IOMMU_PAGE_RESP_PASID_VALID (1 << 0)
149+ __u32 flags;
150+ __u32 pasid;
151+ __u32 grpid;
152+ __u32 code;
153+};
154+
155+#endif /* _UAPI_IOMMU_H */
include/uapi/linux/psp-sev.h+1−4
@@ -1,3 +1,4 @@
1+/* SPDX-License-Identifier: GPL-2.0-only */
12 /*
23 * Userspace interface for AMD Secure Encrypted Virtualization (SEV)
34 * platform management commands.
@@ -7,10 +8,6 @@ · 3 unmodified lines
78 * Author: Brijesh Singh <brijesh.singh@amd.com>
89 *
910 * SEV API specification is available at: https://developer.amd.com/sev/
10− *
11− * This program is free software; you can redistribute it and/or modify
12− * it under the terms of the GNU General Public License version 2 as
13− * published by the Free Software Foundation.
1411 */
1512
1613 #ifndef __PSP_SEV_USER_H__
include/uapi/linux/snmp.h+1−0
@@ -283,6 +283,7 @@ enum · 282 unmodified lines
283283 LINUX_MIB_TCPACKCOMPRESSED, /* TCPAckCompressed */
284284 LINUX_MIB_TCPZEROWINDOWDROP, /* TCPZeroWindowDrop */
285285 LINUX_MIB_TCPRCVQDROP, /* TCPRcvQDrop */
286+ LINUX_MIB_TCPWQUEUETOOBIG, /* TCPWqueueTooBig */
286287 __LINUX_MIB_MAX
287288 };
288289
include/uapi/linux/wmi.h+1−4
@@ -1,11 +1,8 @@
1+/* SPDX-License-Identifier: GPL-2.0-only */
12 /*
23 * User API methods for ACPI-WMI mapping driver
34 *
45 * Copyright (C) 2017 Dell, Inc.
5− *
6− * This program is free software; you can redistribute it and/or modify
7− * it under the terms of the GNU General Public License version 2 as
8− * published by the Free Software Foundation.
96 */
107 #ifndef _UAPI_LINUX_WMI_H
118 #define _UAPI_LINUX_WMI_H
include/uapi/misc/habanalabs.h+20−2
@@ -413,6 +413,10 @@ struct hl_debug_params_spmu { · 412 unmodified lines
413413 #define HL_DEBUG_OP_SPMU 5
414414 /* Opcode for timestamp */
415415 #define HL_DEBUG_OP_TIMESTAMP 6
416+/* Opcode for setting the device into or out of debug mode. The enable
417+ * variable should be 1 for enabling debug mode and 0 for disabling it
418+ */
419+#define HL_DEBUG_OP_SET_MODE 7
416420
417421 struct hl_debug_args {
418422 /*
@@ -574,8 +578,22 @@ struct hl_debug_args { · 155 unmodified lines
574578 *
575579 * This IOCTL allows the user to get debug traces from the chip.
576580 *
577− * The user needs to provide the register index and essential data such as
578− * buffer address and size.
581+ * Before the user can send configuration requests of the various
582+ * debug/profile engines, it needs to set the device into debug mode.
583+ * This is because the debug/profile infrastructure is shared component in the
584+ * device and we can't allow multiple users to access it at the same time.
585+ *
586+ * Once a user set the device into debug mode, the driver won't allow other
587+ * users to "work" with the device, i.e. open a FD. If there are multiple users
588+ * opened on the device, the driver won't allow any user to debug the device.
589+ *
590+ * For each configuration request, the user needs to provide the register index
591+ * and essential data such as buffer address and size.
592+ *
593+ * Once the user has finished using the debug/profile engines, he should
594+ * set the device into non-debug mode, i.e. disable debug mode.
595+ *
596+ * The driver can decide to "kick out" the user if he abuses this interface.
579597 *
580598 */
581599 #define HL_IOCTL_DEBUG \
include/uapi/sound/sof/abi.h+1−1
@@ -26,7 +26,7 @@ · 25 unmodified lines
2626
2727 /* SOF ABI version major, minor and patch numbers */
2828 #define SOF_ABI_MAJOR 3
29−#define SOF_ABI_MINOR 4
29+#define SOF_ABI_MINOR 6
3030 #define SOF_ABI_PATCH 0
3131
3232 /* SOF ABI version number. Format within 32bit word is MMmmmppp */