i2c-host for v6.17, part 1 Cleanups and refactorings: - lpi2c, riic, st, stm32f7: general improvements - riic: support more flexible IRQ configurations - tegra: fix documentation Improvements: - lpi2c: improve register polling and add atomic transfer - imx: use guarded spinlocks New hardware support: - Samsung Exynos 2200 - Renesas RZ/T2H (R9A09G077), RZ/N2H (R9A09G087) DT binding: - rk3x: enable power domains - nxp: support clock property
Showing the changes to include/uapi (7 of 1157 files). Show all
Unified · Split
| @@ -4,9 +4,9 @@ · 3 unmodified lines | |||
| 4 | #ifndef _UAPI_LINUX_BITS_H | 4 | #ifndef _UAPI_LINUX_BITS_H |
| 5 | #define _UAPI_LINUX_BITS_H | 5 | #define _UAPI_LINUX_BITS_H |
| 6 | 6 | ||
| 7 | #define __GENMASK(h, l) (((~_UL(0)) << (l)) & (~_UL(0) >> (BITS_PER_LONG - 1 - (h)))) | 7 | #define __GENMASK(h, l) (((~_UL(0)) << (l)) & (~_UL(0) >> (__BITS_PER_LONG - 1 - (h)))) |
| 8 | 8 | ||
| 9 | #define __GENMASK_ULL(h, l) (((~_ULL(0)) << (l)) & (~_ULL(0) >> (BITS_PER_LONG_LONG - 1 - (h)))) | 9 | #define __GENMASK_ULL(h, l) (((~_ULL(0)) << (l)) & (~_ULL(0) >> (__BITS_PER_LONG_LONG - 1 - (h)))) |
| 10 | 10 | ||
| 11 | #define __GENMASK_U128(h, l) \ | 11 | #define __GENMASK_U128(h, l) \ |
| 12 | ((_BIT128((h)) << 1) - (_BIT128(l))) | 12 | ((_BIT128((h)) << 1) - (_BIT128(l))) |
| @@ -467,6 +467,10 @@ struct kvm_run { · 466 unmodified lines | |||
| 467 | __u64 leaf; | 467 | __u64 leaf; |
| 468 | __u64 r11, r12, r13, r14; | 468 | __u64 r11, r12, r13, r14; |
| 469 | } get_tdvmcall_info; | 469 | } get_tdvmcall_info; |
| 470 | struct { | ||
| 471 | __u64 ret; | ||
| 472 | __u64 vector; | ||
| 473 | } setup_event_notify; | ||
| 470 | }; | 474 | }; |
| 471 | } tdx; | 475 | } tdx; |
| 472 | /* Fix the size of the union. */ | 476 | /* Fix the size of the union. */ |
| @@ -27,14 +27,14 @@ · 26 unmodified lines | |||
| 27 | * token, rem_id. | 27 | * token, rem_id. |
| 28 | * @MPTCP_EVENT_SUB_ESTABLISHED: A new subflow has been established. 'error' | 28 | * @MPTCP_EVENT_SUB_ESTABLISHED: A new subflow has been established. 'error' |
| 29 | * should not be set. Attributes: token, family, loc_id, rem_id, saddr4 | | 29 | * should not be set. Attributes: token, family, loc_id, rem_id, saddr4 | |
| 30 | * saddr6, daddr4 | daddr6, sport, dport, backup, if_idx [, error]. | 30 | * saddr6, daddr4 | daddr6, sport, dport, backup, if-idx [, error]. |
| 31 | * @MPTCP_EVENT_SUB_CLOSED: A subflow has been closed. An error (copy of | 31 | * @MPTCP_EVENT_SUB_CLOSED: A subflow has been closed. An error (copy of |
| 32 | * sk_err) could be set if an error has been detected for this subflow. | 32 | * sk_err) could be set if an error has been detected for this subflow. |
| 33 | * Attributes: token, family, loc_id, rem_id, saddr4 | saddr6, daddr4 | | 33 | * Attributes: token, family, loc_id, rem_id, saddr4 | saddr6, daddr4 | |
| 34 | * daddr6, sport, dport, backup, if_idx [, error]. | 34 | * daddr6, sport, dport, backup, if-idx [, error]. |
| 35 | * @MPTCP_EVENT_SUB_PRIORITY: The priority of a subflow has changed. 'error' | 35 | * @MPTCP_EVENT_SUB_PRIORITY: The priority of a subflow has changed. 'error' |
| 36 | * should not be set. Attributes: token, family, loc_id, rem_id, saddr4 | | 36 | * should not be set. Attributes: token, family, loc_id, rem_id, saddr4 | |
| 37 | * saddr6, daddr4 | daddr6, sport, dport, backup, if_idx [, error]. | 37 | * saddr6, daddr4 | daddr6, sport, dport, backup, if-idx [, error]. |
| 38 | * @MPTCP_EVENT_LISTENER_CREATED: A new PM listener is created. Attributes: | 38 | * @MPTCP_EVENT_LISTENER_CREATED: A new PM listener is created. Attributes: |
| 39 | * family, sport, saddr4 | saddr6. | 39 | * family, sport, saddr4 | saddr6. |
| 40 | * @MPTCP_EVENT_LISTENER_CLOSED: A PM listener is closed. Attributes: family, | 40 | * @MPTCP_EVENT_LISTENER_CLOSED: A PM listener is closed. Attributes: family, |
| @@ -142,8 +142,6 @@ enum nf_tables_msg_types { · 141 unmodified lines | |||
| 142 | NFT_MSG_DESTROYOBJ, | 142 | NFT_MSG_DESTROYOBJ, |
| 143 | NFT_MSG_DESTROYFLOWTABLE, | 143 | NFT_MSG_DESTROYFLOWTABLE, |
| 144 | NFT_MSG_GETSETELEM_RESET, | 144 | NFT_MSG_GETSETELEM_RESET, |
| 145 | NFT_MSG_NEWDEV, | ||
| 146 | NFT_MSG_DELDEV, | ||
| 147 | NFT_MSG_MAX, | 145 | NFT_MSG_MAX, |
| 148 | }; | 146 | }; |
| 149 | 147 | ||
| @@ -1786,18 +1784,10 @@ enum nft_synproxy_attributes { · 1636 unmodified lines | |||
| 1786 | * enum nft_device_attributes - nf_tables device netlink attributes | 1784 | * enum nft_device_attributes - nf_tables device netlink attributes |
| 1787 | * | 1785 | * |
| 1788 | * @NFTA_DEVICE_NAME: name of this device (NLA_STRING) | 1786 | * @NFTA_DEVICE_NAME: name of this device (NLA_STRING) |
| 1789 | * @NFTA_DEVICE_TABLE: table containing the flowtable or chain hooking into the device (NLA_STRING) | ||
| 1790 | * @NFTA_DEVICE_FLOWTABLE: flowtable hooking into the device (NLA_STRING) | ||
| 1791 | * @NFTA_DEVICE_CHAIN: chain hooking into the device (NLA_STRING) | ||
| 1792 | * @NFTA_DEVICE_SPEC: hook spec matching the device (NLA_STRING) | ||
| 1793 | */ | 1787 | */ |
| 1794 | enum nft_devices_attributes { | 1788 | enum nft_devices_attributes { |
| 1795 | NFTA_DEVICE_UNSPEC, | 1789 | NFTA_DEVICE_UNSPEC, |
| 1796 | NFTA_DEVICE_NAME, | 1790 | NFTA_DEVICE_NAME, |
| 1797 | NFTA_DEVICE_TABLE, | ||
| 1798 | NFTA_DEVICE_FLOWTABLE, | ||
| 1799 | NFTA_DEVICE_CHAIN, | ||
| 1800 | NFTA_DEVICE_SPEC, | ||
| 1801 | __NFTA_DEVICE_MAX | 1791 | __NFTA_DEVICE_MAX |
| 1802 | }; | 1792 | }; |
| 1803 | #define NFTA_DEVICE_MAX (__NFTA_DEVICE_MAX - 1) | 1793 | #define NFTA_DEVICE_MAX (__NFTA_DEVICE_MAX - 1) |
| @@ -25,8 +25,6 @@ enum nfnetlink_groups { · 24 unmodified lines | |||
| 25 | #define NFNLGRP_ACCT_QUOTA NFNLGRP_ACCT_QUOTA | 25 | #define NFNLGRP_ACCT_QUOTA NFNLGRP_ACCT_QUOTA |
| 26 | NFNLGRP_NFTRACE, | 26 | NFNLGRP_NFTRACE, |
| 27 | #define NFNLGRP_NFTRACE NFNLGRP_NFTRACE | 27 | #define NFNLGRP_NFTRACE NFNLGRP_NFTRACE |
| 28 | NFNLGRP_NFT_DEV, | ||
| 29 | #define NFNLGRP_NFT_DEV NFNLGRP_NFT_DEV | ||
| 30 | __NFNLGRP_MAX, | 28 | __NFNLGRP_MAX, |
| 31 | }; | 29 | }; |
| 32 | #define NFNLGRP_MAX (__NFNLGRP_MAX - 1) | 30 | #define NFNLGRP_MAX (__NFNLGRP_MAX - 1) |
| @@ -135,8 +135,28 @@ · 134 unmodified lines | |||
| 135 | #define UBLKSRV_IO_BUF_TOTAL_SIZE (1ULL << UBLKSRV_IO_BUF_TOTAL_BITS) | 135 | #define UBLKSRV_IO_BUF_TOTAL_SIZE (1ULL << UBLKSRV_IO_BUF_TOTAL_BITS) |
| 136 | 136 | ||
| 137 | /* | 137 | /* |
| 138 | * zero copy requires 4k block size, and can remap ublk driver's io | 138 | * ublk server can register data buffers for incoming I/O requests with a sparse |
| 139 | * request into ublksrv's vm space | 139 | * io_uring buffer table. The request buffer can then be used as the data buffer |
| 140 | * for io_uring operations via the fixed buffer index. | ||
| 141 | * Note that the ublk server can never directly access the request data memory. | ||
| 142 | * | ||
| 143 | * To use this feature, the ublk server must first register a sparse buffer | ||
| 144 | * table on an io_uring instance. | ||
| 145 | * When an incoming ublk request is received, the ublk server submits a | ||
| 146 | * UBLK_U_IO_REGISTER_IO_BUF command to that io_uring instance. The | ||
| 147 | * ublksrv_io_cmd's q_id and tag specify the request whose buffer to register | ||
| 148 | * and addr is the index in the io_uring's buffer table to install the buffer. | ||
| 149 | * SQEs can now be submitted to the io_uring to read/write the request's buffer | ||
| 150 | * by enabling fixed buffers (e.g. using IORING_OP_{READ,WRITE}_FIXED or | ||
| 151 | * IORING_URING_CMD_FIXED) and passing the registered buffer index in buf_index. | ||
| 152 | * Once the last io_uring operation using the request's buffer has completed, | ||
| 153 | * the ublk server submits a UBLK_U_IO_UNREGISTER_IO_BUF command with q_id, tag, | ||
| 154 | * and addr again specifying the request buffer to unregister. | ||
| 155 | * The ublk request is completed when its buffer is unregistered from all | ||
| 156 | * io_uring instances and the ublk server issues UBLK_U_IO_COMMIT_AND_FETCH_REQ. | ||
| 157 | * | ||
| 158 | * Not available for UBLK_F_UNPRIVILEGED_DEV, as a ublk server can leak | ||
| 159 | * uninitialized kernel memory by not reading into the full request buffer. | ||
| 140 | */ | 160 | */ |
| 141 | #define UBLK_F_SUPPORT_ZERO_COPY (1ULL << 0) | 161 | #define UBLK_F_SUPPORT_ZERO_COPY (1ULL << 0) |
| 142 | 162 | ||
| @@ -450,10 +470,10 @@ static inline struct ublk_auto_buf_reg ublk_sqe_addr_to_auto_buf_reg( · 307 unmodified lines | |||
| 450 | __u64 sqe_addr) | 470 | __u64 sqe_addr) |
| 451 | { | 471 | { |
| 452 | struct ublk_auto_buf_reg reg = { | 472 | struct ublk_auto_buf_reg reg = { |
| 453 | .index = sqe_addr & 0xffff, | 473 | .index = (__u16)sqe_addr, |
| 454 | .flags = (sqe_addr >> 16) & 0xff, | 474 | .flags = (__u8)(sqe_addr >> 16), |
| 455 | .reserved0 = (sqe_addr >> 24) & 0xff, | 475 | .reserved0 = (__u8)(sqe_addr >> 24), |
| 456 | .reserved1 = sqe_addr >> 32, | 476 | .reserved1 = (__u32)(sqe_addr >> 32), |
| 457 | }; | 477 | }; |
| 458 | 478 | ||
| 459 | return reg; | 479 | return reg; |
| @@ -17,6 +17,10 @@ · 16 unmodified lines | |||
| 17 | #ifndef _UAPI_VM_SOCKETS_H | 17 | #ifndef _UAPI_VM_SOCKETS_H |
| 18 | #define _UAPI_VM_SOCKETS_H | 18 | #define _UAPI_VM_SOCKETS_H |
| 19 | 19 | ||
| 20 | #ifndef __KERNEL__ | ||
| 21 | #include <sys/socket.h> /* for struct sockaddr and sa_family_t */ | ||
| 22 | #endif | ||
| 23 | |||
| 20 | #include <linux/socket.h> | 24 | #include <linux/socket.h> |
| 21 | #include <linux/types.h> | 25 | #include <linux/types.h> |
| 22 | 26 | ||