mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-12 07:37:31 -04:00
Merge tag 'LA.UM.9.14.1.r1-21100-QCM6490.QISI15.0' of https://git.codelinaro.org/clo/la/kernel/msm-5.4 into android13-5.4-lahaina
LA.UM.9.14.1.r1-21100-QCM6490.QISI15.0 * tag 'LA.UM.9.14.1.r1-21100-QCM6490.QISI15.0' of https://git.codelinaro.org/clo/la/kernel/msm-5.4: msm:kgsl: Prevent sign extension on alignments reverting all USB patches msm: eva: OOB write issue in fence processing kgsl: gmu: Use num_vma for safe GMU VMAs array access net: Add netdevice notification for bridge activity bridge: port structure members from 5.4 kernel net: bridge: Fix for co-located mode UPSTREAM: usb: gadget: configfs: Add frame-based frame format support kgsl: Add buffer overflow check for perfcounter dynamic list usb: gadget: uvc: Add grey and I420 YUV UVC format support mtd: msm_qpic_nand: Use flash device ECC capability for erase page mtd: msm_qpic_nand: check for page_erased bit along with op_err UPSTREAM: usb: dwc3: Wait for EndXfer command completion netfilter: fix NATTYPE refresh timeout issue usb: gadget: uvc: Modify UVC_NUM_REQUESTS reverting enum-conversion, Handle CPU state and all USB patches msm: cvp: Fix for kernel address exposure vulnerability to user cnss: Init reserved memory device cnss: Dump stack by stack_trace_print cnss: Add support for building CNSS as a loadable module FROMLIST: media: venus: Add a check for packet size Add configures to enable CNSS platform driver FROMLIST: media: venus: Fix OOB read due to missing payload bound check dma-mapping-fast: Fix PMD offset calculation for non-2M aligned start aperture crypto: qcedev - fix UAF in crypto-qti driver msm: adsprpc: Prevent refcount increment for duplicate dmahandles dmaengine: msm_gpi: fix to avoid null pointer access mdm: ipa3: support IPoGRE new IOCTL and proc params msm: mhi_dev: Workqueue to handle host wakeup in M3+D0 iommu: Fix invalid access in av8l_fast_unmap_public msm: mhi_dev: Handle host wakeup in M3/D0 msm: ep_pcie: Wake host in D3cold handling if wake is pending FROMGIT: media: venus: hfi: add a check to handle OOB in sfr region FROMGIT: media: venus: hfi: add check to handle incorrect queue size FROMGIT: media: venus: hfi_parser: add check to avoid out of bound access Revert "msm_ipa: Install exception rule for PPPoE-MPLS" firmware: qcom_scm: do not clear dump mode from shutdown msm: adsprpc: Avoid taking reference for group_info adsprpc: Handle UAF scenario in put_args msm: eva: Adding kref count for cvp_get_inst_from_id wifi: cfg80211: Increase akm_suites array size in cfg80211_crypto_settings thermal: qcom: Add support to update tsens trip based on nvmem data Conflicts: Makefile arch/arm64/include/asm/cputype.h drivers/char/adsprpc.c drivers/hid/hid-ids.h drivers/net/usb/rtl8150.c drivers/platform/Kconfig drivers/platform/Makefile drivers/soc/qcom/mdt_loader.c drivers/soc/qcom/rpmh-rsc.c drivers/usb/core/quirks.c drivers/usb/dwc3/dwc3-qcom.c drivers/usb/dwc3/gadget.c drivers/usb/gadget/function/f_fs.c drivers/usb/gadget/function/f_ncm.c mm/slub.c mm/zsmalloc.c net/ipv4/tcp_output.c scripts/Makefile.extrawarn Change-Id: Ia4f3356ed4a105a2f3b0feda3e78725a01a970b2
This commit is contained in:
commit
9f0d3e60bc
132 changed files with 1676 additions and 1149 deletions
|
|
@ -2,7 +2,7 @@
|
|||
/*
|
||||
* Copyright (c) 2012-2021, The Linux Foundation. All rights reserved.
|
||||
*
|
||||
* Copyright (c) 2022-2024 Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
* Copyright (c) 2022-2025 Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
*/
|
||||
|
||||
#ifndef _UAPI_MSM_IPA_H_
|
||||
|
|
@ -152,8 +152,9 @@
|
|||
#define IPA_IOCTL_SET_EXT_ROUTER_MODE 95
|
||||
#define IPA_IOCTL_ADD_DEL_DSCP_PCP_MAPPING 96
|
||||
#define IPA_IOCTL_SEND_VLAN_MUXID_MAPPING 97
|
||||
#define IPA_IOCTL_SEND_TUNNEL_TEMPLATE_INFO 98
|
||||
#define IPA_IOCTL_QUERY_TUNNEL_FEATURE 99
|
||||
#define IPA_IOCTL_SEND_TUNNEL_TEMPLATE_INFO 98
|
||||
#define IPA_IOCTL_QUERY_TUNNEL_FEATURE 99
|
||||
#define IPA_IOCTL_ADD_IPOGRE_MAPPING 100
|
||||
/**
|
||||
* max size of the header to be inserted
|
||||
*/
|
||||
|
|
@ -976,8 +977,12 @@ enum ipa_eth_pdu_evt {
|
|||
#define IPA_ENABLE_ETH_PDU_MODE_EVENT_MAX IPA_ENABLE_ETH_PDU_MODE_EVENT_MAX
|
||||
};
|
||||
|
||||
|
||||
#define IPA_EVENT_MAX_NUM (IPA_ENABLE_ETH_PDU_MODE_EVENT_MAX)
|
||||
enum ipa_ipogre_event {
|
||||
IPA_IPOGRE_NOTIFY_EVENT = IPA_ENABLE_ETH_PDU_MODE_EVENT_MAX,
|
||||
IPA_IPOGRE_EVENT_MAX
|
||||
#define IPA_IPOGRE_EVENT_MAX IPA_IPOGRE_EVENT_MAX
|
||||
};
|
||||
#define IPA_EVENT_MAX_NUM (IPA_IPOGRE_EVENT_MAX)
|
||||
#define IPA_EVENT_MAX ((int)IPA_EVENT_MAX_NUM)
|
||||
|
||||
/**
|
||||
|
|
@ -1140,48 +1145,6 @@ static inline const char *exception_type_as_str(enum ipa_exception_type t)
|
|||
"???";
|
||||
}
|
||||
|
||||
/**
|
||||
* Macro ipa_exception_type_pppoe
|
||||
*
|
||||
* This macro is for describing which field is to be looked at for
|
||||
* exception path consideration.
|
||||
*
|
||||
* NOTE 1: The field implies an offset into the packet under
|
||||
* consideration. This offset will be calculated on behalf of
|
||||
* the user of this API.
|
||||
*
|
||||
* NOTE 2: When exceptions are generated/sent in an ipa_exception
|
||||
* structure, they will considered to be from the upload
|
||||
* perspective. And when appropriate, a corresponding, and
|
||||
* perhaps inverted, downlink exception will be automatically
|
||||
* created on the callers behalf. As an example: If a
|
||||
* FIELD_UDP_SRC_PORT is sent, an uplink exception will be
|
||||
* created for udp source port, and a corresponding
|
||||
* FIELD_UDP_DST_PORT will be automatically created for the
|
||||
* downlink.
|
||||
*/
|
||||
#define FIELD_IP_PROTOCOL_PPPOE (FIELD_ETHER_TYPE + 1)
|
||||
#define FIELD_TCP_SRC_PORT_PPPOE (FIELD_IP_PROTOCOL_PPPOE + 1)
|
||||
#define FIELD_TCP_DST_PORT_PPPOE (FIELD_TCP_SRC_PORT_PPPOE + 1)
|
||||
#define FIELD_UDP_SRC_PORT_PPPOE (FIELD_TCP_DST_PORT_PPPOE + 1)
|
||||
#define FIELD_UDP_DST_PORT_PPPOE (FIELD_UDP_SRC_PORT_PPPOE + 1)
|
||||
#define FIELD_ETHER_TYPE_PPPOE (FIELD_UDP_DST_PORT_PPPOE + 1)
|
||||
#define FIELD_PPPOE_MAX (FIELD_ETHER_TYPE_PPPOE + 1)
|
||||
|
||||
/* Function to read PPPoE exception in string format */
|
||||
static inline const char *pppoe_exception_type_as_str(uint32_t t)
|
||||
{
|
||||
return
|
||||
(t == FIELD_IP_PROTOCOL_PPPOE) ? "pppoe_ip_protocol" :
|
||||
(t == FIELD_TCP_SRC_PORT_PPPOE) ? "pppoe_tcp_src_port" :
|
||||
(t == FIELD_TCP_DST_PORT_PPPOE) ? "pppoe_tcp_dst_port" :
|
||||
(t == FIELD_UDP_SRC_PORT_PPPOE) ? "pppoe_udp_src_port" :
|
||||
(t == FIELD_UDP_DST_PORT_PPPOE) ? "pppoe_udp_dst_port" :
|
||||
(t == FIELD_ETHER_TYPE_PPPOE) ? "pppoe_ether_type" :
|
||||
(t == FIELD_PPPOE_MAX) ? "pppoe_max" :
|
||||
"???";
|
||||
}
|
||||
|
||||
#define IP_TYPE_EXCEPTION(x) \
|
||||
((x) == FIELD_IP_PROTOCOL || \
|
||||
(x) == FIELD_TCP_SRC_PORT || \
|
||||
|
|
@ -1262,7 +1225,6 @@ struct ipa_field_val_equation_gen {
|
|||
* @payload_length: Payload length.
|
||||
* @ext_attrib_mask: Extended attributes.
|
||||
* @l2tp_udp_next_hdr: next header in L2TP tunneling
|
||||
* @p_exception : exception to enable for mpls-pppoe
|
||||
* @field_val_equ: for finding a value at a particular offset
|
||||
*/
|
||||
struct ipa_rule_attrib {
|
||||
|
|
@ -1308,7 +1270,7 @@ struct ipa_rule_attrib {
|
|||
__u16 payload_length;
|
||||
__u32 ext_attrib_mask;
|
||||
__u8 l2tp_udp_next_hdr;
|
||||
__u8 p_exception;
|
||||
__u8 padding1;
|
||||
struct ipa_field_val_equation_gen fld_val_eq;
|
||||
};
|
||||
|
||||
|
|
@ -1594,9 +1556,11 @@ enum ipa_hdr_proc_type {
|
|||
IPA_HDR_PROC_EoGRE_HEADER_REMOVE,
|
||||
IPA_HDR_PROC_WWAN_TO_ETHII_EX,
|
||||
IPA_HDR_PROC_GRE_HEADER_ADD,
|
||||
IPA_HDR_PROC_GRE_HEADER_REMOVE
|
||||
IPA_HDR_PROC_GRE_HEADER_REMOVE,
|
||||
IPA_HDR_PROC_IPOGRE_HEADER_ADD,
|
||||
IPA_HDR_PROC_IPOGRE_HEADER_REMOVE
|
||||
};
|
||||
#define IPA_HDR_PROC_MAX (IPA_HDR_PROC_GRE_HEADER_REMOVE + 1)
|
||||
#define IPA_HDR_PROC_MAX (IPA_HDR_PROC_IPOGRE_HEADER_REMOVE + 1)
|
||||
|
||||
/**
|
||||
* struct ipa_rt_rule - attributes of a routing rule
|
||||
|
|
@ -2001,6 +1965,68 @@ struct ipa_ioc_eogre_info {
|
|||
struct IpaDscpVlanPcpMap_t map_info;
|
||||
};
|
||||
|
||||
#define MAX_FLOW_PER_IPOGRE_TUNNEL 10
|
||||
|
||||
/**
|
||||
* struct ipa_ipogre_info -
|
||||
* @ipv4_src: Specifies source v4 address if GRE tunnel is ipv4
|
||||
* @ipv4_dst: Specifies destination v4 address if GRE tunnel is ipv4
|
||||
* @ipv6_src: Specifies source v6 address if GRE tunnel is ipv6
|
||||
* @ipv6_dst: Specifies destination v6 address if GRE tunnel is ipv6
|
||||
* @iptype: Specifies GRE tunnel's ip address type
|
||||
* @tunnel_id: Specifies tunnel id
|
||||
*/
|
||||
|
||||
struct ipa_ipogre_tunnel_info {
|
||||
uint32_t ipv4_src;
|
||||
uint32_t ipv4_dst;
|
||||
uint32_t ipv6_src[4];
|
||||
uint32_t ipv6_dst[4];
|
||||
enum ipa_ip_type iptype;
|
||||
uint8_t tunnel_id;
|
||||
} __packed;
|
||||
|
||||
/**
|
||||
* struct ipa_ipogre_info -
|
||||
* @ipv4_src: Specifies source v4 address if GRE tunnel is ipv4
|
||||
* @ipv4_src_subnet: Specifies source v4 address subnet if GRE tunnel is ipv4
|
||||
* @ipv4_dst: Specifies destination v4 address if GRE tunnel is ipv4
|
||||
* @ipv4_dst_subnet: Specifies destination v4 address subnet if GRE tunnel is ipv4
|
||||
* @ipv6_src: Specifies source v6 address if GRE tunnel is ipv6
|
||||
* @ipv6_src_subnet: Specifies source v6 address subnet if GRE tunnel is ipv6
|
||||
* @ipv6_dst: Specifies destination v6 address if GRE tunnel is ipv6
|
||||
* @ipv6_dst_subnet: Specifies destination v6 address subnet if GRE tunnel is ipv6
|
||||
* @iptype: Specifies GRE tunnel's ip address type
|
||||
* @protocol: Specifies protocol of the data traffic
|
||||
*/
|
||||
|
||||
struct ipa_ipogre_flow_info {
|
||||
uint32_t ipv4_src;
|
||||
uint32_t ipv4_src_subnet;
|
||||
uint32_t ipv4_dst;
|
||||
uint32_t ipv4_dst_subnet;
|
||||
uint32_t ipv6_src[4];
|
||||
uint32_t ipv6_dst[4];
|
||||
uint32_t src_port;
|
||||
uint32_t dst_port;
|
||||
enum ipa_ip_type iptype;
|
||||
uint8_t protocol;
|
||||
uint8_t ipv6_src_subnet;
|
||||
uint8_t ipv6_dst_subnet;
|
||||
} __packed;
|
||||
|
||||
/**
|
||||
* struct ipa_ipogre_info -
|
||||
* @ipogre_tunnel_info: Specifies tunnel information
|
||||
* @ipogre_flow_info: Specifies flows to be offloaded
|
||||
* @ipa_ipogre_num_flow: Specifies number of flow to be offloaded
|
||||
*/
|
||||
|
||||
struct ipa_ioc_ipogre_info {
|
||||
struct ipa_ipogre_tunnel_info ipogre_tunnel_info;
|
||||
struct ipa_ipogre_flow_info ipogre_flow_info[MAX_FLOW_PER_IPOGRE_TUNNEL];
|
||||
uint8_t ipa_ipogre_num_flow;
|
||||
};
|
||||
/**
|
||||
* struct ipa_eogre_header_add_procparams -
|
||||
* @eth_hdr_retained: Specifies if Ethernet header is retained or not
|
||||
|
|
@ -2092,6 +2118,45 @@ struct ipa_gre_hdr_proc_ctx_params {
|
|||
struct ipa_gre_header_remove_procparams hdr_remove_param;
|
||||
};
|
||||
|
||||
/**
|
||||
* struct ipa_ipogre_header_add_procparams -
|
||||
* @input_ip_version: Specifies if Input header is IPV4(0) or IPV6(1)
|
||||
* @output_ip_version: Specifies if template header's outer IP is IPV4(0)
|
||||
* or IPV6(1)
|
||||
* @Tunnel_Id: Tunnel id associated with the header.
|
||||
* @Mux_Id: Specifies mux id associated with the template header
|
||||
*/
|
||||
struct ipa_ipogre_header_add_procparams {
|
||||
uint32_t input_ip_version : 1;
|
||||
uint32_t output_ip_version : 1;
|
||||
uint32_t tunnel_id : 4;
|
||||
uint32_t mux_id : 8;
|
||||
uint32_t reserved :18;
|
||||
};
|
||||
|
||||
/**
|
||||
* struct ipa_ipogre_header_remove_procparams -
|
||||
* @hdr_len_remove: Specifies how much (in bytes) of the header needs
|
||||
* to be removed
|
||||
* @input_ip_version: Specifies if Input header is IPV4(0) or IPV6(1)
|
||||
* @Tunnel_Id: Tunnel id associated with the header.
|
||||
*/
|
||||
struct ipa_ipogre_header_remove_procparams {
|
||||
uint32_t hdr_len_remove : 8;
|
||||
uint32_t input_ip_version : 1;
|
||||
uint32_t tunnel_id : 4;
|
||||
uint32_t reserved :19;
|
||||
};
|
||||
|
||||
/**
|
||||
* struct ipa_ipogre_hdr_proc_ctx_params -
|
||||
* @hdr_add_param: parameters for header add
|
||||
* @hdr_remove_param: parameters for header remove
|
||||
*/
|
||||
struct ipa_ipogre_hdr_proc_ctx_params {
|
||||
struct ipa_ipogre_header_add_procparams hdr_add_param;
|
||||
struct ipa_ipogre_header_remove_procparams hdr_remove_param;
|
||||
};
|
||||
/**
|
||||
* struct ipa_eth_II_to_eth_II_ex_procparams -
|
||||
* @input_ethhdr_negative_offset: Specifies where the ethernet hdr offset is
|
||||
|
|
@ -2154,6 +2219,7 @@ struct ipa_hdr_proc_ctx_add {
|
|||
struct ipa_eth_II_to_eth_II_ex_procparams generic_params;
|
||||
struct ipa_wwan_to_eth_II_ex_procparams generic_params_v2;
|
||||
struct ipa_gre_hdr_proc_ctx_params gre_params;
|
||||
struct ipa_ipogre_hdr_proc_ctx_params ipogre_params;
|
||||
};
|
||||
|
||||
#define IPA_L2TP_HDR_PROC_SUPPORT
|
||||
|
|
@ -4264,6 +4330,10 @@ struct ipa_ioc_dscp_pcp_map_info {
|
|||
IPA_IOCTL_QUERY_TUNNEL_FEATURE, \
|
||||
uint8_t)
|
||||
|
||||
#define IPA_IOC_ADD_IPoGRE_MAPPING _IOWR(IPA_IOC_MAGIC, \
|
||||
IPA_IOCTL_ADD_IPOGRE_MAPPING, \
|
||||
struct ipa_ioc_ipogre_info)
|
||||
|
||||
/*
|
||||
* unique magic number of the Tethering bridge ioctls
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -2465,6 +2465,13 @@ enum nl80211_commands {
|
|||
* @NL80211_ATTR_HE_6GHZ_CAPABILITY: HE 6 GHz Band Capability element (from
|
||||
* association request when used with NL80211_CMD_NEW_STATION).
|
||||
*
|
||||
* @NL80211_ATTR_MAX_NUM_AKM_SUITES: U16 attribute. Indicates maximum number of
|
||||
* AKM suites allowed for %NL80211_CMD_CONNECT, %NL80211_CMD_ASSOCIATE and
|
||||
* %NL80211_CMD_START_AP in %NL80211_CMD_GET_WIPHY response. If this
|
||||
* attribute is not present userspace shall consider maximum number of AKM
|
||||
* suites allowed as %NL80211_MAX_NR_AKM_SUITES which is the legacy maximum
|
||||
* number prior to the introduction of this attribute.
|
||||
*
|
||||
* @NUM_NL80211_ATTR: total number of nl80211_attrs available
|
||||
* @NL80211_ATTR_MAX: highest attribute number currently defined
|
||||
* @__NL80211_ATTR_AFTER_LAST: internal use
|
||||
|
|
@ -2942,6 +2949,8 @@ enum nl80211_attrs {
|
|||
|
||||
NL80211_ATTR_HE_6GHZ_CAPABILITY,
|
||||
|
||||
NL80211_ATTR_MAX_NUM_AKM_SUITES = 316,
|
||||
|
||||
/* add attributes here, update the policy in nl80211.c */
|
||||
|
||||
__NL80211_ATTR_AFTER_LAST,
|
||||
|
|
@ -2994,6 +3003,11 @@ enum nl80211_attrs {
|
|||
#define NL80211_HE_MIN_CAPABILITY_LEN 16
|
||||
#define NL80211_HE_MAX_CAPABILITY_LEN 54
|
||||
#define NL80211_MAX_NR_CIPHER_SUITES 5
|
||||
|
||||
/*
|
||||
* NL80211_MAX_NR_AKM_SUITES is obsolete when %NL80211_ATTR_MAX_NUM_AKM_SUITES
|
||||
* present in %NL80211_CMD_GET_WIPHY response.
|
||||
*/
|
||||
#define NL80211_MAX_NR_AKM_SUITES 2
|
||||
|
||||
#define NL80211_MIN_REMAIN_ON_CHANNEL_TIME 10
|
||||
|
|
|
|||
|
|
@ -597,5 +597,63 @@ struct UVC_FRAME_MJPEG(n) { \
|
|||
__le32 dwFrameInterval[n]; \
|
||||
} __attribute__ ((packed))
|
||||
|
||||
/* Frame Based Payload - 3.1.1. Frame Based Video Format Descriptor */
|
||||
struct uvc_format_framebased {
|
||||
__u8 bLength;
|
||||
__u8 bDescriptorType;
|
||||
__u8 bDescriptorSubType;
|
||||
__u8 bFormatIndex;
|
||||
__u8 bNumFrameDescriptors;
|
||||
__u8 guidFormat[16];
|
||||
__u8 bBitsPerPixel;
|
||||
__u8 bDefaultFrameIndex;
|
||||
__u8 bAspectRatioX;
|
||||
__u8 bAspectRatioY;
|
||||
__u8 bmInterfaceFlags;
|
||||
__u8 bCopyProtect;
|
||||
__u8 bVariableSize;
|
||||
} __attribute__((__packed__));
|
||||
|
||||
#define UVC_DT_FORMAT_FRAMEBASED_SIZE 28
|
||||
|
||||
/* Frame Based Payload - 3.1.2. Frame Based Video Frame Descriptor */
|
||||
struct uvc_frame_framebased {
|
||||
__u8 bLength;
|
||||
__u8 bDescriptorType;
|
||||
__u8 bDescriptorSubType;
|
||||
__u8 bFrameIndex;
|
||||
__u8 bmCapabilities;
|
||||
__u16 wWidth;
|
||||
__u16 wHeight;
|
||||
__u32 dwMinBitRate;
|
||||
__u32 dwMaxBitRate;
|
||||
__u32 dwDefaultFrameInterval;
|
||||
__u8 bFrameIntervalType;
|
||||
__u32 dwBytesPerLine;
|
||||
__u32 dwFrameInterval[];
|
||||
} __attribute__((__packed__));
|
||||
|
||||
#define UVC_DT_FRAME_FRAMEBASED_SIZE(n) (26+4*(n))
|
||||
|
||||
#define UVC_FRAME_FRAMEBASED(n) \
|
||||
uvc_frame_framebased_##n
|
||||
|
||||
#define DECLARE_UVC_FRAME_FRAMEBASED(n) \
|
||||
struct UVC_FRAME_FRAMEBASED(n) { \
|
||||
__u8 bLength; \
|
||||
__u8 bDescriptorType; \
|
||||
__u8 bDescriptorSubType; \
|
||||
__u8 bFrameIndex; \
|
||||
__u8 bmCapabilities; \
|
||||
__u16 wWidth; \
|
||||
__u16 wHeight; \
|
||||
__u32 dwMinBitRate; \
|
||||
__u32 dwMaxBitRate; \
|
||||
__u32 dwDefaultFrameInterval; \
|
||||
__u8 bFrameIntervalType; \
|
||||
__u32 dwBytesPerLine; \
|
||||
__u32 dwFrameInterval[n]; \
|
||||
} __attribute__ ((packed))
|
||||
|
||||
#endif /* __LINUX_USB_VIDEO_H */
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue