Merge tag 'i2c-host-6.17-pt1' of git://git.kernel.org/pub/scm/linux/kernel/git/andi.shyti/linux into i2c/for-mergewindow
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
This commit is contained in:
@@ -4,9 +4,9 @@
|
||||
#ifndef _UAPI_LINUX_BITS_H
|
||||
#define _UAPI_LINUX_BITS_H
|
||||
|
||||
#define __GENMASK(h, l) (((~_UL(0)) << (l)) & (~_UL(0) >> (BITS_PER_LONG - 1 - (h))))
|
||||
#define __GENMASK(h, l) (((~_UL(0)) << (l)) & (~_UL(0) >> (__BITS_PER_LONG - 1 - (h))))
|
||||
|
||||
#define __GENMASK_ULL(h, l) (((~_ULL(0)) << (l)) & (~_ULL(0) >> (BITS_PER_LONG_LONG - 1 - (h))))
|
||||
#define __GENMASK_ULL(h, l) (((~_ULL(0)) << (l)) & (~_ULL(0) >> (__BITS_PER_LONG_LONG - 1 - (h))))
|
||||
|
||||
#define __GENMASK_U128(h, l) \
|
||||
((_BIT128((h)) << 1) - (_BIT128(l)))
|
||||
|
||||
@@ -467,6 +467,10 @@ struct kvm_run {
|
||||
__u64 leaf;
|
||||
__u64 r11, r12, r13, r14;
|
||||
} get_tdvmcall_info;
|
||||
struct {
|
||||
__u64 ret;
|
||||
__u64 vector;
|
||||
} setup_event_notify;
|
||||
};
|
||||
} tdx;
|
||||
/* Fix the size of the union. */
|
||||
|
||||
@@ -27,14 +27,14 @@
|
||||
* token, rem_id.
|
||||
* @MPTCP_EVENT_SUB_ESTABLISHED: A new subflow has been established. 'error'
|
||||
* should not be set. Attributes: token, family, loc_id, rem_id, saddr4 |
|
||||
* saddr6, daddr4 | daddr6, sport, dport, backup, if_idx [, error].
|
||||
* saddr6, daddr4 | daddr6, sport, dport, backup, if-idx [, error].
|
||||
* @MPTCP_EVENT_SUB_CLOSED: A subflow has been closed. An error (copy of
|
||||
* sk_err) could be set if an error has been detected for this subflow.
|
||||
* Attributes: token, family, loc_id, rem_id, saddr4 | saddr6, daddr4 |
|
||||
* daddr6, sport, dport, backup, if_idx [, error].
|
||||
* daddr6, sport, dport, backup, if-idx [, error].
|
||||
* @MPTCP_EVENT_SUB_PRIORITY: The priority of a subflow has changed. 'error'
|
||||
* should not be set. Attributes: token, family, loc_id, rem_id, saddr4 |
|
||||
* saddr6, daddr4 | daddr6, sport, dport, backup, if_idx [, error].
|
||||
* saddr6, daddr4 | daddr6, sport, dport, backup, if-idx [, error].
|
||||
* @MPTCP_EVENT_LISTENER_CREATED: A new PM listener is created. Attributes:
|
||||
* family, sport, saddr4 | saddr6.
|
||||
* @MPTCP_EVENT_LISTENER_CLOSED: A PM listener is closed. Attributes: family,
|
||||
|
||||
@@ -142,8 +142,6 @@ enum nf_tables_msg_types {
|
||||
NFT_MSG_DESTROYOBJ,
|
||||
NFT_MSG_DESTROYFLOWTABLE,
|
||||
NFT_MSG_GETSETELEM_RESET,
|
||||
NFT_MSG_NEWDEV,
|
||||
NFT_MSG_DELDEV,
|
||||
NFT_MSG_MAX,
|
||||
};
|
||||
|
||||
@@ -1786,18 +1784,10 @@ enum nft_synproxy_attributes {
|
||||
* enum nft_device_attributes - nf_tables device netlink attributes
|
||||
*
|
||||
* @NFTA_DEVICE_NAME: name of this device (NLA_STRING)
|
||||
* @NFTA_DEVICE_TABLE: table containing the flowtable or chain hooking into the device (NLA_STRING)
|
||||
* @NFTA_DEVICE_FLOWTABLE: flowtable hooking into the device (NLA_STRING)
|
||||
* @NFTA_DEVICE_CHAIN: chain hooking into the device (NLA_STRING)
|
||||
* @NFTA_DEVICE_SPEC: hook spec matching the device (NLA_STRING)
|
||||
*/
|
||||
enum nft_devices_attributes {
|
||||
NFTA_DEVICE_UNSPEC,
|
||||
NFTA_DEVICE_NAME,
|
||||
NFTA_DEVICE_TABLE,
|
||||
NFTA_DEVICE_FLOWTABLE,
|
||||
NFTA_DEVICE_CHAIN,
|
||||
NFTA_DEVICE_SPEC,
|
||||
__NFTA_DEVICE_MAX
|
||||
};
|
||||
#define NFTA_DEVICE_MAX (__NFTA_DEVICE_MAX - 1)
|
||||
|
||||
@@ -25,8 +25,6 @@ enum nfnetlink_groups {
|
||||
#define NFNLGRP_ACCT_QUOTA NFNLGRP_ACCT_QUOTA
|
||||
NFNLGRP_NFTRACE,
|
||||
#define NFNLGRP_NFTRACE NFNLGRP_NFTRACE
|
||||
NFNLGRP_NFT_DEV,
|
||||
#define NFNLGRP_NFT_DEV NFNLGRP_NFT_DEV
|
||||
__NFNLGRP_MAX,
|
||||
};
|
||||
#define NFNLGRP_MAX (__NFNLGRP_MAX - 1)
|
||||
|
||||
@@ -135,8 +135,28 @@
|
||||
#define UBLKSRV_IO_BUF_TOTAL_SIZE (1ULL << UBLKSRV_IO_BUF_TOTAL_BITS)
|
||||
|
||||
/*
|
||||
* zero copy requires 4k block size, and can remap ublk driver's io
|
||||
* request into ublksrv's vm space
|
||||
* ublk server can register data buffers for incoming I/O requests with a sparse
|
||||
* io_uring buffer table. The request buffer can then be used as the data buffer
|
||||
* for io_uring operations via the fixed buffer index.
|
||||
* Note that the ublk server can never directly access the request data memory.
|
||||
*
|
||||
* To use this feature, the ublk server must first register a sparse buffer
|
||||
* table on an io_uring instance.
|
||||
* When an incoming ublk request is received, the ublk server submits a
|
||||
* UBLK_U_IO_REGISTER_IO_BUF command to that io_uring instance. The
|
||||
* ublksrv_io_cmd's q_id and tag specify the request whose buffer to register
|
||||
* and addr is the index in the io_uring's buffer table to install the buffer.
|
||||
* SQEs can now be submitted to the io_uring to read/write the request's buffer
|
||||
* by enabling fixed buffers (e.g. using IORING_OP_{READ,WRITE}_FIXED or
|
||||
* IORING_URING_CMD_FIXED) and passing the registered buffer index in buf_index.
|
||||
* Once the last io_uring operation using the request's buffer has completed,
|
||||
* the ublk server submits a UBLK_U_IO_UNREGISTER_IO_BUF command with q_id, tag,
|
||||
* and addr again specifying the request buffer to unregister.
|
||||
* The ublk request is completed when its buffer is unregistered from all
|
||||
* io_uring instances and the ublk server issues UBLK_U_IO_COMMIT_AND_FETCH_REQ.
|
||||
*
|
||||
* Not available for UBLK_F_UNPRIVILEGED_DEV, as a ublk server can leak
|
||||
* uninitialized kernel memory by not reading into the full request buffer.
|
||||
*/
|
||||
#define UBLK_F_SUPPORT_ZERO_COPY (1ULL << 0)
|
||||
|
||||
@@ -450,10 +470,10 @@ static inline struct ublk_auto_buf_reg ublk_sqe_addr_to_auto_buf_reg(
|
||||
__u64 sqe_addr)
|
||||
{
|
||||
struct ublk_auto_buf_reg reg = {
|
||||
.index = sqe_addr & 0xffff,
|
||||
.flags = (sqe_addr >> 16) & 0xff,
|
||||
.reserved0 = (sqe_addr >> 24) & 0xff,
|
||||
.reserved1 = sqe_addr >> 32,
|
||||
.index = (__u16)sqe_addr,
|
||||
.flags = (__u8)(sqe_addr >> 16),
|
||||
.reserved0 = (__u8)(sqe_addr >> 24),
|
||||
.reserved1 = (__u32)(sqe_addr >> 32),
|
||||
};
|
||||
|
||||
return reg;
|
||||
|
||||
@@ -17,6 +17,10 @@
|
||||
#ifndef _UAPI_VM_SOCKETS_H
|
||||
#define _UAPI_VM_SOCKETS_H
|
||||
|
||||
#ifndef __KERNEL__
|
||||
#include <sys/socket.h> /* for struct sockaddr and sa_family_t */
|
||||
#endif
|
||||
|
||||
#include <linux/socket.h>
|
||||
#include <linux/types.h>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user