Import of kernel-6.12.0-124.40.1.el10_1
This commit is contained in:
parent
ccfd2c6f1e
commit
007e3badbb
@ -15,7 +15,7 @@ kernel-policy: global
|
||||
definitions:
|
||||
-
|
||||
type: enum
|
||||
name: encap_type
|
||||
name: encap-type
|
||||
name-prefix: fou-encap-
|
||||
enum-name:
|
||||
entries: [ unspec, direct, gue ]
|
||||
@ -39,30 +39,32 @@ attribute-sets:
|
||||
-
|
||||
name: ipproto
|
||||
type: u8
|
||||
checks:
|
||||
min: 1
|
||||
-
|
||||
name: type
|
||||
type: u8
|
||||
-
|
||||
name: remcsum_nopartial
|
||||
name: remcsum-nopartial
|
||||
type: flag
|
||||
-
|
||||
name: local_v4
|
||||
name: local-v4
|
||||
type: u32
|
||||
-
|
||||
name: local_v6
|
||||
name: local-v6
|
||||
type: binary
|
||||
checks:
|
||||
min-len: 16
|
||||
-
|
||||
name: peer_v4
|
||||
name: peer-v4
|
||||
type: u32
|
||||
-
|
||||
name: peer_v6
|
||||
name: peer-v6
|
||||
type: binary
|
||||
checks:
|
||||
min-len: 16
|
||||
-
|
||||
name: peer_port
|
||||
name: peer-port
|
||||
type: u16
|
||||
byte-order: big-endian
|
||||
-
|
||||
@ -90,12 +92,12 @@ operations:
|
||||
- port
|
||||
- ipproto
|
||||
- type
|
||||
- remcsum_nopartial
|
||||
- local_v4
|
||||
- peer_v4
|
||||
- local_v6
|
||||
- peer_v6
|
||||
- peer_port
|
||||
- remcsum-nopartial
|
||||
- local-v4
|
||||
- peer-v4
|
||||
- local-v6
|
||||
- peer-v6
|
||||
- peer-port
|
||||
- ifindex
|
||||
|
||||
-
|
||||
@ -112,11 +114,11 @@ operations:
|
||||
- af
|
||||
- ifindex
|
||||
- port
|
||||
- peer_port
|
||||
- local_v4
|
||||
- peer_v4
|
||||
- local_v6
|
||||
- peer_v6
|
||||
- peer-port
|
||||
- local-v4
|
||||
- peer-v4
|
||||
- local-v6
|
||||
- peer-v6
|
||||
|
||||
-
|
||||
name: get
|
||||
|
||||
@ -12,7 +12,7 @@ RHEL_MINOR = 1
|
||||
#
|
||||
# Use this spot to avoid future merge conflicts.
|
||||
# Do not trim this comment.
|
||||
RHEL_RELEASE = 124.39.1
|
||||
RHEL_RELEASE = 124.40.1
|
||||
|
||||
#
|
||||
# RHEL_REBASE_NUM
|
||||
|
||||
@ -1146,17 +1146,15 @@ static inline pte_t pte_mkhuge(pte_t pte)
|
||||
#define IPTE_NODAT 0x400
|
||||
#define IPTE_GUEST_ASCE 0x800
|
||||
|
||||
static __always_inline void __ptep_rdp(unsigned long addr, pte_t *ptep,
|
||||
unsigned long opt, unsigned long asce,
|
||||
int local)
|
||||
static __always_inline void __ptep_rdp(unsigned long addr, pte_t *ptep, int local)
|
||||
{
|
||||
unsigned long pto;
|
||||
|
||||
pto = __pa(ptep) & ~(PTRS_PER_PTE * sizeof(pte_t) - 1);
|
||||
asm volatile(".insn rrf,0xb98b0000,%[r1],%[r2],%[asce],%[m4]"
|
||||
asm volatile(".insn rrf,0xb98b0000,%[r1],%[r2],%%r0,%[m4]"
|
||||
: "+m" (*ptep)
|
||||
: [r1] "a" (pto), [r2] "a" ((addr & PAGE_MASK) | opt),
|
||||
[asce] "a" (asce), [m4] "i" (local));
|
||||
: [r1] "a" (pto), [r2] "a" (addr & PAGE_MASK),
|
||||
[m4] "i" (local));
|
||||
}
|
||||
|
||||
static __always_inline void __ptep_ipte(unsigned long address, pte_t *ptep,
|
||||
@ -1340,7 +1338,7 @@ static inline void flush_tlb_fix_spurious_fault(struct vm_area_struct *vma,
|
||||
* A local RDP can be used to do the flush.
|
||||
*/
|
||||
if (MACHINE_HAS_RDP && !(pte_val(*ptep) & _PAGE_PROTECT))
|
||||
__ptep_rdp(address, ptep, 0, 0, 1);
|
||||
__ptep_rdp(address, ptep, 1);
|
||||
}
|
||||
#define flush_tlb_fix_spurious_fault flush_tlb_fix_spurious_fault
|
||||
|
||||
|
||||
@ -303,9 +303,9 @@ void ptep_reset_dat_prot(struct mm_struct *mm, unsigned long addr, pte_t *ptep,
|
||||
preempt_disable();
|
||||
atomic_inc(&mm->context.flush_count);
|
||||
if (cpumask_equal(mm_cpumask(mm), cpumask_of(smp_processor_id())))
|
||||
__ptep_rdp(addr, ptep, 0, 0, 1);
|
||||
__ptep_rdp(addr, ptep, 1);
|
||||
else
|
||||
__ptep_rdp(addr, ptep, 0, 0, 0);
|
||||
__ptep_rdp(addr, ptep, 0);
|
||||
/*
|
||||
* PTE is not invalidated by RDP, only _PAGE_PROTECT is cleared. That
|
||||
* means it is still valid and active, and must not be changed according
|
||||
|
||||
@ -436,6 +436,7 @@ rules:
|
||||
- net/dns_resolver/.*: modules-core
|
||||
- net/hsr/.*: modules-core
|
||||
- net/ife/.*: modules-core
|
||||
- net/ipv4/fou.ko: modules-extra
|
||||
- net/ipv4/netfilter/arp.*: modules-extra
|
||||
- net/ipv4/netfilter/ip[_t].*: modules-extra
|
||||
- net/ipv4/tcp_bic.*: modules-extra
|
||||
@ -450,6 +451,7 @@ rules:
|
||||
- net/ipv4/tcp_westwood.*: modules-extra
|
||||
- net/ipv4/tcp_yeah.*: modules-extra
|
||||
- net/ipv4/.*: modules-core
|
||||
- net/ipv6/fou6.ko: modules-extra
|
||||
- net/ipv6/netfilter/ebt.*: modules-extra
|
||||
- net/ipv6/netfilter/ip6[_t].*: modules-extra
|
||||
- net/ipv6/.*: modules-core
|
||||
|
||||
@ -1260,8 +1260,8 @@ CONFIG_IP_PIMSM_V2=y
|
||||
CONFIG_SYN_COOKIES=y
|
||||
CONFIG_NET_IPVTI=m
|
||||
CONFIG_NET_UDP_TUNNEL=m
|
||||
# CONFIG_NET_FOU is not set
|
||||
# CONFIG_NET_FOU_IP_TUNNELS is not set
|
||||
CONFIG_NET_FOU=m
|
||||
CONFIG_NET_FOU_IP_TUNNELS=y
|
||||
CONFIG_INET_AH=m
|
||||
CONFIG_INET_ESP=m
|
||||
CONFIG_INET_ESP_OFFLOAD=m
|
||||
@ -1317,6 +1317,8 @@ CONFIG_IPV6_SIT_6RD=y
|
||||
CONFIG_IPV6_NDISC_NODETYPE=y
|
||||
CONFIG_IPV6_TUNNEL=m
|
||||
CONFIG_IPV6_GRE=m
|
||||
CONFIG_IPV6_FOU=m
|
||||
CONFIG_IPV6_FOU_TUNNEL=m
|
||||
CONFIG_IPV6_MULTIPLE_TABLES=y
|
||||
# CONFIG_IPV6_SUBTREES is not set
|
||||
CONFIG_IPV6_MROUTE=y
|
||||
|
||||
@ -1257,8 +1257,8 @@ CONFIG_IP_PIMSM_V2=y
|
||||
CONFIG_SYN_COOKIES=y
|
||||
CONFIG_NET_IPVTI=m
|
||||
CONFIG_NET_UDP_TUNNEL=m
|
||||
# CONFIG_NET_FOU is not set
|
||||
# CONFIG_NET_FOU_IP_TUNNELS is not set
|
||||
CONFIG_NET_FOU=m
|
||||
CONFIG_NET_FOU_IP_TUNNELS=y
|
||||
CONFIG_INET_AH=m
|
||||
CONFIG_INET_ESP=m
|
||||
CONFIG_INET_ESP_OFFLOAD=m
|
||||
@ -1314,6 +1314,8 @@ CONFIG_IPV6_SIT_6RD=y
|
||||
CONFIG_IPV6_NDISC_NODETYPE=y
|
||||
CONFIG_IPV6_TUNNEL=m
|
||||
CONFIG_IPV6_GRE=m
|
||||
CONFIG_IPV6_FOU=m
|
||||
CONFIG_IPV6_FOU_TUNNEL=m
|
||||
CONFIG_IPV6_MULTIPLE_TABLES=y
|
||||
# CONFIG_IPV6_SUBTREES is not set
|
||||
CONFIG_IPV6_MROUTE=y
|
||||
|
||||
@ -1263,8 +1263,8 @@ CONFIG_IP_PIMSM_V2=y
|
||||
CONFIG_SYN_COOKIES=y
|
||||
CONFIG_NET_IPVTI=m
|
||||
CONFIG_NET_UDP_TUNNEL=m
|
||||
# CONFIG_NET_FOU is not set
|
||||
# CONFIG_NET_FOU_IP_TUNNELS is not set
|
||||
CONFIG_NET_FOU=m
|
||||
CONFIG_NET_FOU_IP_TUNNELS=y
|
||||
CONFIG_INET_AH=m
|
||||
CONFIG_INET_ESP=m
|
||||
CONFIG_INET_ESP_OFFLOAD=m
|
||||
@ -1320,6 +1320,8 @@ CONFIG_IPV6_SIT_6RD=y
|
||||
CONFIG_IPV6_NDISC_NODETYPE=y
|
||||
CONFIG_IPV6_TUNNEL=m
|
||||
CONFIG_IPV6_GRE=m
|
||||
CONFIG_IPV6_FOU=m
|
||||
CONFIG_IPV6_FOU_TUNNEL=m
|
||||
CONFIG_IPV6_MULTIPLE_TABLES=y
|
||||
# CONFIG_IPV6_SUBTREES is not set
|
||||
CONFIG_IPV6_MROUTE=y
|
||||
|
||||
@ -1247,8 +1247,8 @@ CONFIG_IP_PIMSM_V2=y
|
||||
CONFIG_SYN_COOKIES=y
|
||||
CONFIG_NET_IPVTI=m
|
||||
CONFIG_NET_UDP_TUNNEL=m
|
||||
# CONFIG_NET_FOU is not set
|
||||
# CONFIG_NET_FOU_IP_TUNNELS is not set
|
||||
CONFIG_NET_FOU=m
|
||||
CONFIG_NET_FOU_IP_TUNNELS=y
|
||||
CONFIG_INET_AH=m
|
||||
CONFIG_INET_ESP=m
|
||||
CONFIG_INET_ESP_OFFLOAD=m
|
||||
@ -1304,6 +1304,8 @@ CONFIG_IPV6_SIT_6RD=y
|
||||
CONFIG_IPV6_NDISC_NODETYPE=y
|
||||
CONFIG_IPV6_TUNNEL=m
|
||||
CONFIG_IPV6_GRE=m
|
||||
CONFIG_IPV6_FOU=m
|
||||
CONFIG_IPV6_FOU_TUNNEL=m
|
||||
CONFIG_IPV6_MULTIPLE_TABLES=y
|
||||
# CONFIG_IPV6_SUBTREES is not set
|
||||
CONFIG_IPV6_MROUTE=y
|
||||
|
||||
@ -1244,8 +1244,8 @@ CONFIG_IP_PIMSM_V2=y
|
||||
CONFIG_SYN_COOKIES=y
|
||||
CONFIG_NET_IPVTI=m
|
||||
CONFIG_NET_UDP_TUNNEL=m
|
||||
# CONFIG_NET_FOU is not set
|
||||
# CONFIG_NET_FOU_IP_TUNNELS is not set
|
||||
CONFIG_NET_FOU=m
|
||||
CONFIG_NET_FOU_IP_TUNNELS=y
|
||||
CONFIG_INET_AH=m
|
||||
CONFIG_INET_ESP=m
|
||||
CONFIG_INET_ESP_OFFLOAD=m
|
||||
@ -1301,6 +1301,8 @@ CONFIG_IPV6_SIT_6RD=y
|
||||
CONFIG_IPV6_NDISC_NODETYPE=y
|
||||
CONFIG_IPV6_TUNNEL=m
|
||||
CONFIG_IPV6_GRE=m
|
||||
CONFIG_IPV6_FOU=m
|
||||
CONFIG_IPV6_FOU_TUNNEL=m
|
||||
CONFIG_IPV6_MULTIPLE_TABLES=y
|
||||
# CONFIG_IPV6_SUBTREES is not set
|
||||
CONFIG_IPV6_MROUTE=y
|
||||
|
||||
@ -1249,8 +1249,8 @@ CONFIG_IP_PIMSM_V2=y
|
||||
CONFIG_SYN_COOKIES=y
|
||||
CONFIG_NET_IPVTI=m
|
||||
CONFIG_NET_UDP_TUNNEL=m
|
||||
# CONFIG_NET_FOU is not set
|
||||
# CONFIG_NET_FOU_IP_TUNNELS is not set
|
||||
CONFIG_NET_FOU=m
|
||||
CONFIG_NET_FOU_IP_TUNNELS=y
|
||||
CONFIG_INET_AH=m
|
||||
CONFIG_INET_ESP=m
|
||||
CONFIG_INET_ESP_OFFLOAD=m
|
||||
@ -1306,6 +1306,8 @@ CONFIG_IPV6_SIT_6RD=y
|
||||
CONFIG_IPV6_NDISC_NODETYPE=y
|
||||
CONFIG_IPV6_TUNNEL=m
|
||||
CONFIG_IPV6_GRE=m
|
||||
CONFIG_IPV6_FOU=m
|
||||
CONFIG_IPV6_FOU_TUNNEL=m
|
||||
CONFIG_IPV6_MULTIPLE_TABLES=y
|
||||
# CONFIG_IPV6_SUBTREES is not set
|
||||
CONFIG_IPV6_MROUTE=y
|
||||
|
||||
@ -1246,8 +1246,8 @@ CONFIG_IP_PIMSM_V2=y
|
||||
CONFIG_SYN_COOKIES=y
|
||||
CONFIG_NET_IPVTI=m
|
||||
CONFIG_NET_UDP_TUNNEL=m
|
||||
# CONFIG_NET_FOU is not set
|
||||
# CONFIG_NET_FOU_IP_TUNNELS is not set
|
||||
CONFIG_NET_FOU=m
|
||||
CONFIG_NET_FOU_IP_TUNNELS=y
|
||||
CONFIG_INET_AH=m
|
||||
CONFIG_INET_ESP=m
|
||||
CONFIG_INET_ESP_OFFLOAD=m
|
||||
@ -1303,6 +1303,8 @@ CONFIG_IPV6_SIT_6RD=y
|
||||
CONFIG_IPV6_NDISC_NODETYPE=y
|
||||
CONFIG_IPV6_TUNNEL=m
|
||||
CONFIG_IPV6_GRE=m
|
||||
CONFIG_IPV6_FOU=m
|
||||
CONFIG_IPV6_FOU_TUNNEL=m
|
||||
CONFIG_IPV6_MULTIPLE_TABLES=y
|
||||
# CONFIG_IPV6_SUBTREES is not set
|
||||
CONFIG_IPV6_MROUTE=y
|
||||
|
||||
@ -1260,8 +1260,8 @@ CONFIG_IP_PIMSM_V2=y
|
||||
CONFIG_SYN_COOKIES=y
|
||||
CONFIG_NET_IPVTI=m
|
||||
CONFIG_NET_UDP_TUNNEL=m
|
||||
# CONFIG_NET_FOU is not set
|
||||
# CONFIG_NET_FOU_IP_TUNNELS is not set
|
||||
CONFIG_NET_FOU=m
|
||||
CONFIG_NET_FOU_IP_TUNNELS=y
|
||||
CONFIG_INET_AH=m
|
||||
CONFIG_INET_ESP=m
|
||||
CONFIG_INET_ESP_OFFLOAD=m
|
||||
@ -1317,6 +1317,8 @@ CONFIG_IPV6_SIT_6RD=y
|
||||
CONFIG_IPV6_NDISC_NODETYPE=y
|
||||
CONFIG_IPV6_TUNNEL=m
|
||||
CONFIG_IPV6_GRE=m
|
||||
CONFIG_IPV6_FOU=m
|
||||
CONFIG_IPV6_FOU_TUNNEL=m
|
||||
CONFIG_IPV6_MULTIPLE_TABLES=y
|
||||
# CONFIG_IPV6_SUBTREES is not set
|
||||
CONFIG_IPV6_MROUTE=y
|
||||
|
||||
@ -1052,8 +1052,8 @@ CONFIG_IP_PIMSM_V2=y
|
||||
CONFIG_SYN_COOKIES=y
|
||||
CONFIG_NET_IPVTI=m
|
||||
CONFIG_NET_UDP_TUNNEL=m
|
||||
# CONFIG_NET_FOU is not set
|
||||
# CONFIG_NET_FOU_IP_TUNNELS is not set
|
||||
CONFIG_NET_FOU=m
|
||||
CONFIG_NET_FOU_IP_TUNNELS=y
|
||||
CONFIG_INET_AH=m
|
||||
CONFIG_INET_ESP=m
|
||||
CONFIG_INET_ESP_OFFLOAD=m
|
||||
@ -1109,6 +1109,8 @@ CONFIG_IPV6_SIT_6RD=y
|
||||
CONFIG_IPV6_NDISC_NODETYPE=y
|
||||
CONFIG_IPV6_TUNNEL=m
|
||||
CONFIG_IPV6_GRE=m
|
||||
CONFIG_IPV6_FOU=m
|
||||
CONFIG_IPV6_FOU_TUNNEL=m
|
||||
CONFIG_IPV6_MULTIPLE_TABLES=y
|
||||
# CONFIG_IPV6_SUBTREES is not set
|
||||
CONFIG_IPV6_MROUTE=y
|
||||
|
||||
@ -1055,8 +1055,8 @@ CONFIG_IP_PIMSM_V2=y
|
||||
CONFIG_SYN_COOKIES=y
|
||||
CONFIG_NET_IPVTI=m
|
||||
CONFIG_NET_UDP_TUNNEL=m
|
||||
# CONFIG_NET_FOU is not set
|
||||
# CONFIG_NET_FOU_IP_TUNNELS is not set
|
||||
CONFIG_NET_FOU=m
|
||||
CONFIG_NET_FOU_IP_TUNNELS=y
|
||||
CONFIG_INET_AH=m
|
||||
CONFIG_INET_ESP=m
|
||||
CONFIG_INET_ESP_OFFLOAD=m
|
||||
@ -1112,6 +1112,8 @@ CONFIG_IPV6_SIT_6RD=y
|
||||
CONFIG_IPV6_NDISC_NODETYPE=y
|
||||
CONFIG_IPV6_TUNNEL=m
|
||||
CONFIG_IPV6_GRE=m
|
||||
CONFIG_IPV6_FOU=m
|
||||
CONFIG_IPV6_FOU_TUNNEL=m
|
||||
CONFIG_IPV6_MULTIPLE_TABLES=y
|
||||
# CONFIG_IPV6_SUBTREES is not set
|
||||
CONFIG_IPV6_MROUTE=y
|
||||
|
||||
@ -857,8 +857,8 @@ CONFIG_IP_PIMSM_V2=y
|
||||
CONFIG_SYN_COOKIES=y
|
||||
CONFIG_NET_IPVTI=m
|
||||
CONFIG_NET_UDP_TUNNEL=m
|
||||
# CONFIG_NET_FOU is not set
|
||||
# CONFIG_NET_FOU_IP_TUNNELS is not set
|
||||
CONFIG_NET_FOU=m
|
||||
CONFIG_NET_FOU_IP_TUNNELS=y
|
||||
CONFIG_INET_AH=m
|
||||
CONFIG_INET_ESP=m
|
||||
CONFIG_INET_ESP_OFFLOAD=m
|
||||
@ -914,6 +914,8 @@ CONFIG_IPV6_SIT_6RD=y
|
||||
CONFIG_IPV6_NDISC_NODETYPE=y
|
||||
CONFIG_IPV6_TUNNEL=m
|
||||
CONFIG_IPV6_GRE=m
|
||||
CONFIG_IPV6_FOU=m
|
||||
CONFIG_IPV6_FOU_TUNNEL=m
|
||||
CONFIG_IPV6_MULTIPLE_TABLES=y
|
||||
# CONFIG_IPV6_SUBTREES is not set
|
||||
CONFIG_IPV6_MROUTE=y
|
||||
|
||||
@ -881,8 +881,8 @@ CONFIG_IP_PIMSM_V2=y
|
||||
CONFIG_SYN_COOKIES=y
|
||||
CONFIG_NET_IPVTI=m
|
||||
CONFIG_NET_UDP_TUNNEL=m
|
||||
# CONFIG_NET_FOU is not set
|
||||
# CONFIG_NET_FOU_IP_TUNNELS is not set
|
||||
CONFIG_NET_FOU=m
|
||||
CONFIG_NET_FOU_IP_TUNNELS=y
|
||||
CONFIG_INET_AH=m
|
||||
CONFIG_INET_ESP=m
|
||||
CONFIG_INET_ESP_OFFLOAD=m
|
||||
@ -938,6 +938,8 @@ CONFIG_IPV6_SIT_6RD=y
|
||||
CONFIG_IPV6_NDISC_NODETYPE=y
|
||||
CONFIG_IPV6_TUNNEL=m
|
||||
CONFIG_IPV6_GRE=m
|
||||
CONFIG_IPV6_FOU=m
|
||||
CONFIG_IPV6_FOU_TUNNEL=m
|
||||
CONFIG_IPV6_MULTIPLE_TABLES=y
|
||||
# CONFIG_IPV6_SUBTREES is not set
|
||||
CONFIG_IPV6_MROUTE=y
|
||||
|
||||
@ -1350,8 +1350,8 @@ CONFIG_IP_PIMSM_V2=y
|
||||
CONFIG_SYN_COOKIES=y
|
||||
CONFIG_NET_IPVTI=m
|
||||
CONFIG_NET_UDP_TUNNEL=m
|
||||
# CONFIG_NET_FOU is not set
|
||||
# CONFIG_NET_FOU_IP_TUNNELS is not set
|
||||
CONFIG_NET_FOU=m
|
||||
CONFIG_NET_FOU_IP_TUNNELS=y
|
||||
CONFIG_INET_AH=m
|
||||
CONFIG_INET_ESP=m
|
||||
CONFIG_INET_ESP_OFFLOAD=m
|
||||
@ -1407,6 +1407,8 @@ CONFIG_IPV6_SIT_6RD=y
|
||||
CONFIG_IPV6_NDISC_NODETYPE=y
|
||||
CONFIG_IPV6_TUNNEL=m
|
||||
CONFIG_IPV6_GRE=m
|
||||
CONFIG_IPV6_FOU=m
|
||||
CONFIG_IPV6_FOU_TUNNEL=m
|
||||
CONFIG_IPV6_MULTIPLE_TABLES=y
|
||||
# CONFIG_IPV6_SUBTREES is not set
|
||||
CONFIG_IPV6_MROUTE=y
|
||||
|
||||
@ -1336,8 +1336,8 @@ CONFIG_IP_PIMSM_V2=y
|
||||
CONFIG_SYN_COOKIES=y
|
||||
CONFIG_NET_IPVTI=m
|
||||
CONFIG_NET_UDP_TUNNEL=m
|
||||
# CONFIG_NET_FOU is not set
|
||||
# CONFIG_NET_FOU_IP_TUNNELS is not set
|
||||
CONFIG_NET_FOU=m
|
||||
CONFIG_NET_FOU_IP_TUNNELS=y
|
||||
CONFIG_INET_AH=m
|
||||
CONFIG_INET_ESP=m
|
||||
CONFIG_INET_ESP_OFFLOAD=m
|
||||
@ -1393,6 +1393,8 @@ CONFIG_IPV6_SIT_6RD=y
|
||||
CONFIG_IPV6_NDISC_NODETYPE=y
|
||||
CONFIG_IPV6_TUNNEL=m
|
||||
CONFIG_IPV6_GRE=m
|
||||
CONFIG_IPV6_FOU=m
|
||||
CONFIG_IPV6_FOU_TUNNEL=m
|
||||
CONFIG_IPV6_MULTIPLE_TABLES=y
|
||||
# CONFIG_IPV6_SUBTREES is not set
|
||||
CONFIG_IPV6_MROUTE=y
|
||||
|
||||
@ -1332,8 +1332,8 @@ CONFIG_IP_PIMSM_V2=y
|
||||
CONFIG_SYN_COOKIES=y
|
||||
CONFIG_NET_IPVTI=m
|
||||
CONFIG_NET_UDP_TUNNEL=m
|
||||
# CONFIG_NET_FOU is not set
|
||||
# CONFIG_NET_FOU_IP_TUNNELS is not set
|
||||
CONFIG_NET_FOU=m
|
||||
CONFIG_NET_FOU_IP_TUNNELS=y
|
||||
CONFIG_INET_AH=m
|
||||
CONFIG_INET_ESP=m
|
||||
CONFIG_INET_ESP_OFFLOAD=m
|
||||
@ -1389,6 +1389,8 @@ CONFIG_IPV6_SIT_6RD=y
|
||||
CONFIG_IPV6_NDISC_NODETYPE=y
|
||||
CONFIG_IPV6_TUNNEL=m
|
||||
CONFIG_IPV6_GRE=m
|
||||
CONFIG_IPV6_FOU=m
|
||||
CONFIG_IPV6_FOU_TUNNEL=m
|
||||
CONFIG_IPV6_MULTIPLE_TABLES=y
|
||||
# CONFIG_IPV6_SUBTREES is not set
|
||||
CONFIG_IPV6_MROUTE=y
|
||||
|
||||
@ -1346,8 +1346,8 @@ CONFIG_IP_PIMSM_V2=y
|
||||
CONFIG_SYN_COOKIES=y
|
||||
CONFIG_NET_IPVTI=m
|
||||
CONFIG_NET_UDP_TUNNEL=m
|
||||
# CONFIG_NET_FOU is not set
|
||||
# CONFIG_NET_FOU_IP_TUNNELS is not set
|
||||
CONFIG_NET_FOU=m
|
||||
CONFIG_NET_FOU_IP_TUNNELS=y
|
||||
CONFIG_INET_AH=m
|
||||
CONFIG_INET_ESP=m
|
||||
CONFIG_INET_ESP_OFFLOAD=m
|
||||
@ -1403,6 +1403,8 @@ CONFIG_IPV6_SIT_6RD=y
|
||||
CONFIG_IPV6_NDISC_NODETYPE=y
|
||||
CONFIG_IPV6_TUNNEL=m
|
||||
CONFIG_IPV6_GRE=m
|
||||
CONFIG_IPV6_FOU=m
|
||||
CONFIG_IPV6_FOU_TUNNEL=m
|
||||
CONFIG_IPV6_MULTIPLE_TABLES=y
|
||||
# CONFIG_IPV6_SUBTREES is not set
|
||||
CONFIG_IPV6_MROUTE=y
|
||||
|
||||
@ -1350,8 +1350,8 @@ CONFIG_IP_PIMSM_V2=y
|
||||
CONFIG_SYN_COOKIES=y
|
||||
CONFIG_NET_IPVTI=m
|
||||
CONFIG_NET_UDP_TUNNEL=m
|
||||
# CONFIG_NET_FOU is not set
|
||||
# CONFIG_NET_FOU_IP_TUNNELS is not set
|
||||
CONFIG_NET_FOU=m
|
||||
CONFIG_NET_FOU_IP_TUNNELS=y
|
||||
CONFIG_INET_AH=m
|
||||
CONFIG_INET_ESP=m
|
||||
CONFIG_INET_ESP_OFFLOAD=m
|
||||
@ -1407,6 +1407,8 @@ CONFIG_IPV6_SIT_6RD=y
|
||||
CONFIG_IPV6_NDISC_NODETYPE=y
|
||||
CONFIG_IPV6_TUNNEL=m
|
||||
CONFIG_IPV6_GRE=m
|
||||
CONFIG_IPV6_FOU=m
|
||||
CONFIG_IPV6_FOU_TUNNEL=m
|
||||
CONFIG_IPV6_MULTIPLE_TABLES=y
|
||||
# CONFIG_IPV6_SUBTREES is not set
|
||||
CONFIG_IPV6_MROUTE=y
|
||||
|
||||
@ -1336,8 +1336,8 @@ CONFIG_IP_PIMSM_V2=y
|
||||
CONFIG_SYN_COOKIES=y
|
||||
CONFIG_NET_IPVTI=m
|
||||
CONFIG_NET_UDP_TUNNEL=m
|
||||
# CONFIG_NET_FOU is not set
|
||||
# CONFIG_NET_FOU_IP_TUNNELS is not set
|
||||
CONFIG_NET_FOU=m
|
||||
CONFIG_NET_FOU_IP_TUNNELS=y
|
||||
CONFIG_INET_AH=m
|
||||
CONFIG_INET_ESP=m
|
||||
CONFIG_INET_ESP_OFFLOAD=m
|
||||
@ -1393,6 +1393,8 @@ CONFIG_IPV6_SIT_6RD=y
|
||||
CONFIG_IPV6_NDISC_NODETYPE=y
|
||||
CONFIG_IPV6_TUNNEL=m
|
||||
CONFIG_IPV6_GRE=m
|
||||
CONFIG_IPV6_FOU=m
|
||||
CONFIG_IPV6_FOU_TUNNEL=m
|
||||
CONFIG_IPV6_MULTIPLE_TABLES=y
|
||||
# CONFIG_IPV6_SUBTREES is not set
|
||||
CONFIG_IPV6_MROUTE=y
|
||||
|
||||
@ -1332,8 +1332,8 @@ CONFIG_IP_PIMSM_V2=y
|
||||
CONFIG_SYN_COOKIES=y
|
||||
CONFIG_NET_IPVTI=m
|
||||
CONFIG_NET_UDP_TUNNEL=m
|
||||
# CONFIG_NET_FOU is not set
|
||||
# CONFIG_NET_FOU_IP_TUNNELS is not set
|
||||
CONFIG_NET_FOU=m
|
||||
CONFIG_NET_FOU_IP_TUNNELS=y
|
||||
CONFIG_INET_AH=m
|
||||
CONFIG_INET_ESP=m
|
||||
CONFIG_INET_ESP_OFFLOAD=m
|
||||
@ -1389,6 +1389,8 @@ CONFIG_IPV6_SIT_6RD=y
|
||||
CONFIG_IPV6_NDISC_NODETYPE=y
|
||||
CONFIG_IPV6_TUNNEL=m
|
||||
CONFIG_IPV6_GRE=m
|
||||
CONFIG_IPV6_FOU=m
|
||||
CONFIG_IPV6_FOU_TUNNEL=m
|
||||
CONFIG_IPV6_MULTIPLE_TABLES=y
|
||||
# CONFIG_IPV6_SUBTREES is not set
|
||||
CONFIG_IPV6_MROUTE=y
|
||||
|
||||
@ -1346,8 +1346,8 @@ CONFIG_IP_PIMSM_V2=y
|
||||
CONFIG_SYN_COOKIES=y
|
||||
CONFIG_NET_IPVTI=m
|
||||
CONFIG_NET_UDP_TUNNEL=m
|
||||
# CONFIG_NET_FOU is not set
|
||||
# CONFIG_NET_FOU_IP_TUNNELS is not set
|
||||
CONFIG_NET_FOU=m
|
||||
CONFIG_NET_FOU_IP_TUNNELS=y
|
||||
CONFIG_INET_AH=m
|
||||
CONFIG_INET_ESP=m
|
||||
CONFIG_INET_ESP_OFFLOAD=m
|
||||
@ -1403,6 +1403,8 @@ CONFIG_IPV6_SIT_6RD=y
|
||||
CONFIG_IPV6_NDISC_NODETYPE=y
|
||||
CONFIG_IPV6_TUNNEL=m
|
||||
CONFIG_IPV6_GRE=m
|
||||
CONFIG_IPV6_FOU=m
|
||||
CONFIG_IPV6_FOU_TUNNEL=m
|
||||
CONFIG_IPV6_MULTIPLE_TABLES=y
|
||||
# CONFIG_IPV6_SUBTREES is not set
|
||||
CONFIG_IPV6_MROUTE=y
|
||||
|
||||
@ -3385,18 +3385,20 @@ static irqreturn_t ice_misc_intr_thread_fn(int __always_unused irq, void *data)
|
||||
if (ice_is_reset_in_progress(pf->state))
|
||||
goto skip_irq;
|
||||
|
||||
if (test_and_clear_bit(ICE_MISC_THREAD_TX_TSTAMP, pf->misc_thread)) {
|
||||
/* Process outstanding Tx timestamps. If there is more work,
|
||||
* re-arm the interrupt to trigger again.
|
||||
*/
|
||||
if (ice_ptp_process_ts(pf) == ICE_TX_TSTAMP_WORK_PENDING) {
|
||||
wr32(hw, PFINT_OICR, PFINT_OICR_TSYN_TX_M);
|
||||
ice_flush(hw);
|
||||
}
|
||||
}
|
||||
if (test_and_clear_bit(ICE_MISC_THREAD_TX_TSTAMP, pf->misc_thread))
|
||||
ice_ptp_process_ts(pf);
|
||||
|
||||
skip_irq:
|
||||
ice_irq_dynamic_ena(hw, NULL, NULL);
|
||||
ice_flush(hw);
|
||||
|
||||
if (ice_ptp_tx_tstamps_pending(pf)) {
|
||||
/* If any new Tx timestamps happened while in interrupt,
|
||||
* re-arm the interrupt to trigger it again.
|
||||
*/
|
||||
wr32(hw, PFINT_OICR, PFINT_OICR_TSYN_TX_M);
|
||||
ice_flush(hw);
|
||||
}
|
||||
|
||||
return IRQ_HANDLED;
|
||||
}
|
||||
|
||||
@ -666,6 +666,9 @@ static void ice_ptp_process_tx_tstamp(struct ice_ptp_tx *tx)
|
||||
pf = ptp_port_to_pf(ptp_port);
|
||||
hw = &pf->hw;
|
||||
|
||||
if (!tx->init)
|
||||
return;
|
||||
|
||||
/* Read the Tx ready status first */
|
||||
if (tx->has_ready_bitmap) {
|
||||
err = ice_get_phy_tx_tstamp_ready(hw, tx->block, &tstamp_ready);
|
||||
@ -762,14 +765,9 @@ skip_ts_read:
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* ice_ptp_tx_tstamp_owner - Process Tx timestamps for all ports on the device
|
||||
* @pf: Board private structure
|
||||
*/
|
||||
static enum ice_tx_tstamp_work ice_ptp_tx_tstamp_owner(struct ice_pf *pf)
|
||||
static void ice_ptp_tx_tstamp_owner(struct ice_pf *pf)
|
||||
{
|
||||
struct ice_ptp_port *port;
|
||||
unsigned int i;
|
||||
|
||||
mutex_lock(&pf->adapter->ports.lock);
|
||||
list_for_each_entry(port, &pf->adapter->ports.ports, list_node) {
|
||||
@ -781,49 +779,6 @@ static enum ice_tx_tstamp_work ice_ptp_tx_tstamp_owner(struct ice_pf *pf)
|
||||
ice_ptp_process_tx_tstamp(tx);
|
||||
}
|
||||
mutex_unlock(&pf->adapter->ports.lock);
|
||||
|
||||
for (i = 0; i < ICE_GET_QUAD_NUM(pf->hw.ptp.num_lports); i++) {
|
||||
u64 tstamp_ready;
|
||||
int err;
|
||||
|
||||
/* Read the Tx ready status first */
|
||||
err = ice_get_phy_tx_tstamp_ready(&pf->hw, i, &tstamp_ready);
|
||||
if (err)
|
||||
break;
|
||||
else if (tstamp_ready)
|
||||
return ICE_TX_TSTAMP_WORK_PENDING;
|
||||
}
|
||||
|
||||
return ICE_TX_TSTAMP_WORK_DONE;
|
||||
}
|
||||
|
||||
/**
|
||||
* ice_ptp_tx_tstamp - Process Tx timestamps for this function.
|
||||
* @tx: Tx tracking structure to initialize
|
||||
*
|
||||
* Returns: ICE_TX_TSTAMP_WORK_PENDING if there are any outstanding incomplete
|
||||
* Tx timestamps, or ICE_TX_TSTAMP_WORK_DONE otherwise.
|
||||
*/
|
||||
static enum ice_tx_tstamp_work ice_ptp_tx_tstamp(struct ice_ptp_tx *tx)
|
||||
{
|
||||
bool more_timestamps;
|
||||
unsigned long flags;
|
||||
|
||||
if (!tx->init)
|
||||
return ICE_TX_TSTAMP_WORK_DONE;
|
||||
|
||||
/* Process the Tx timestamp tracker */
|
||||
ice_ptp_process_tx_tstamp(tx);
|
||||
|
||||
/* Check if there are outstanding Tx timestamps */
|
||||
spin_lock_irqsave(&tx->lock, flags);
|
||||
more_timestamps = tx->init && !bitmap_empty(tx->in_use, tx->len);
|
||||
spin_unlock_irqrestore(&tx->lock, flags);
|
||||
|
||||
if (more_timestamps)
|
||||
return ICE_TX_TSTAMP_WORK_PENDING;
|
||||
|
||||
return ICE_TX_TSTAMP_WORK_DONE;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -2837,32 +2792,94 @@ s8 ice_ptp_request_ts(struct ice_ptp_tx *tx, struct sk_buff *skb)
|
||||
return idx + tx->offset;
|
||||
}
|
||||
|
||||
/**
|
||||
* ice_ptp_process_ts - Process the PTP Tx timestamps
|
||||
* @pf: Board private structure
|
||||
*
|
||||
* Returns: ICE_TX_TSTAMP_WORK_PENDING if there are any outstanding Tx
|
||||
* timestamps that need processing, and ICE_TX_TSTAMP_WORK_DONE otherwise.
|
||||
*/
|
||||
enum ice_tx_tstamp_work ice_ptp_process_ts(struct ice_pf *pf)
|
||||
void ice_ptp_process_ts(struct ice_pf *pf)
|
||||
{
|
||||
switch (pf->ptp.tx_interrupt_mode) {
|
||||
case ICE_PTP_TX_INTERRUPT_NONE:
|
||||
/* This device has the clock owner handle timestamps for it */
|
||||
return ICE_TX_TSTAMP_WORK_DONE;
|
||||
return;
|
||||
case ICE_PTP_TX_INTERRUPT_SELF:
|
||||
/* This device handles its own timestamps */
|
||||
return ice_ptp_tx_tstamp(&pf->ptp.port.tx);
|
||||
ice_ptp_process_tx_tstamp(&pf->ptp.port.tx);
|
||||
return;
|
||||
case ICE_PTP_TX_INTERRUPT_ALL:
|
||||
/* This device handles timestamps for all ports */
|
||||
return ice_ptp_tx_tstamp_owner(pf);
|
||||
ice_ptp_tx_tstamp_owner(pf);
|
||||
return;
|
||||
default:
|
||||
WARN_ONCE(1, "Unexpected Tx timestamp interrupt mode %u\n",
|
||||
pf->ptp.tx_interrupt_mode);
|
||||
return ICE_TX_TSTAMP_WORK_DONE;
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
static bool ice_port_has_timestamps(struct ice_ptp_tx *tx)
|
||||
{
|
||||
bool more_timestamps;
|
||||
|
||||
scoped_guard(spinlock_irqsave, &tx->lock) {
|
||||
if (!tx->init)
|
||||
return false;
|
||||
|
||||
more_timestamps = !bitmap_empty(tx->in_use, tx->len);
|
||||
}
|
||||
|
||||
return more_timestamps;
|
||||
}
|
||||
|
||||
static bool ice_any_port_has_timestamps(struct ice_pf *pf)
|
||||
{
|
||||
struct ice_ptp_port *port;
|
||||
|
||||
scoped_guard(mutex, &pf->adapter->ports.lock) {
|
||||
list_for_each_entry(port, &pf->adapter->ports.ports,
|
||||
list_node) {
|
||||
struct ice_ptp_tx *tx = &port->tx;
|
||||
|
||||
if (ice_port_has_timestamps(tx))
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
bool ice_ptp_tx_tstamps_pending(struct ice_pf *pf)
|
||||
{
|
||||
struct ice_hw *hw = &pf->hw;
|
||||
unsigned int i;
|
||||
|
||||
/* Check software indicator */
|
||||
switch (pf->ptp.tx_interrupt_mode) {
|
||||
case ICE_PTP_TX_INTERRUPT_NONE:
|
||||
return false;
|
||||
case ICE_PTP_TX_INTERRUPT_SELF:
|
||||
if (ice_port_has_timestamps(&pf->ptp.port.tx))
|
||||
return true;
|
||||
break;
|
||||
case ICE_PTP_TX_INTERRUPT_ALL:
|
||||
if (ice_any_port_has_timestamps(pf))
|
||||
return true;
|
||||
break;
|
||||
default:
|
||||
WARN_ONCE(1, "Unexpected Tx timestamp interrupt mode %u\n",
|
||||
pf->ptp.tx_interrupt_mode);
|
||||
break;
|
||||
}
|
||||
|
||||
/* Check hardware indicator */
|
||||
for (i = 0; i < ICE_GET_QUAD_NUM(hw->ptp.num_lports); i++) {
|
||||
u64 tstamp_ready = 0;
|
||||
int err;
|
||||
|
||||
err = ice_get_phy_tx_tstamp_ready(&pf->hw, i, &tstamp_ready);
|
||||
if (err || tstamp_ready)
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* ice_ptp_ts_irq - Process the PTP Tx timestamps in IRQ context
|
||||
* @pf: Board private structure
|
||||
@ -2909,7 +2926,9 @@ irqreturn_t ice_ptp_ts_irq(struct ice_pf *pf)
|
||||
return IRQ_WAKE_THREAD;
|
||||
case ICE_MAC_E830:
|
||||
/* E830 can read timestamps in the top half using rd32() */
|
||||
if (ice_ptp_process_ts(pf) == ICE_TX_TSTAMP_WORK_PENDING) {
|
||||
ice_ptp_process_ts(pf);
|
||||
|
||||
if (ice_ptp_tx_tstamps_pending(pf)) {
|
||||
/* Process outstanding Tx timestamps. If there
|
||||
* is more work, re-arm the interrupt to trigger again.
|
||||
*/
|
||||
@ -3362,8 +3381,9 @@ static void ice_ptp_init_tx_interrupt_mode(struct ice_pf *pf)
|
||||
{
|
||||
switch (pf->hw.mac_type) {
|
||||
case ICE_MAC_GENERIC:
|
||||
/* E822 based PHY has the clock owner process the interrupt
|
||||
* for all ports.
|
||||
case ICE_MAC_GENERIC_3K_E825:
|
||||
/* E82x hardware has the clock owner process timestamps for
|
||||
* all ports.
|
||||
*/
|
||||
if (ice_pf_src_tmr_owned(pf))
|
||||
pf->ptp.tx_interrupt_mode = ICE_PTP_TX_INTERRUPT_ALL;
|
||||
|
||||
@ -302,8 +302,9 @@ void ice_ptp_extts_event(struct ice_pf *pf);
|
||||
s8 ice_ptp_request_ts(struct ice_ptp_tx *tx, struct sk_buff *skb);
|
||||
void ice_ptp_req_tx_single_tstamp(struct ice_ptp_tx *tx, u8 idx);
|
||||
void ice_ptp_complete_tx_single_tstamp(struct ice_ptp_tx *tx);
|
||||
enum ice_tx_tstamp_work ice_ptp_process_ts(struct ice_pf *pf);
|
||||
void ice_ptp_process_ts(struct ice_pf *pf);
|
||||
irqreturn_t ice_ptp_ts_irq(struct ice_pf *pf);
|
||||
bool ice_ptp_tx_tstamps_pending(struct ice_pf *pf);
|
||||
u64 ice_ptp_read_src_clk_reg(struct ice_pf *pf,
|
||||
struct ptp_system_timestamp *sts);
|
||||
|
||||
@ -339,16 +340,18 @@ static inline void ice_ptp_req_tx_single_tstamp(struct ice_ptp_tx *tx, u8 idx)
|
||||
|
||||
static inline void ice_ptp_complete_tx_single_tstamp(struct ice_ptp_tx *tx) { }
|
||||
|
||||
static inline bool ice_ptp_process_ts(struct ice_pf *pf)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
static inline void ice_ptp_process_ts(struct ice_pf *pf) { }
|
||||
|
||||
static inline irqreturn_t ice_ptp_ts_irq(struct ice_pf *pf)
|
||||
{
|
||||
return IRQ_HANDLED;
|
||||
}
|
||||
|
||||
static inline bool ice_ptp_tx_tstamps_pending(struct ice_pf *pf)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
static inline u64 ice_ptp_read_src_clk_reg(struct ice_pf *pf,
|
||||
struct ptp_system_timestamp *sts)
|
||||
{
|
||||
|
||||
@ -449,6 +449,8 @@ static ssize_t zfcp_sysfs_unit_add_store(struct device *dev,
|
||||
if (kstrtoull(buf, 0, (unsigned long long *) &fcp_lun))
|
||||
return -EINVAL;
|
||||
|
||||
flush_work(&port->rport_work);
|
||||
|
||||
retval = zfcp_unit_add(port, fcp_lun);
|
||||
if (retval)
|
||||
return retval;
|
||||
|
||||
@ -178,6 +178,7 @@ cifs_get_spnego_key(struct cifs_ses *sesInfo,
|
||||
saved_cred = override_creds(spnego_cred);
|
||||
spnego_key = request_key(&cifs_spnego_key_type, description, "");
|
||||
revert_creds(saved_cred);
|
||||
trace_smb3_kerberos_auth(server, sesInfo, PTR_ERR_OR_ZERO(spnego_key));
|
||||
|
||||
#ifdef CONFIG_CIFS_DEBUG2
|
||||
if (cifsFYI && !IS_ERR(spnego_key)) {
|
||||
|
||||
@ -781,6 +781,7 @@ struct TCP_Server_Info {
|
||||
struct session_key session_key;
|
||||
unsigned long lstrp; /* when we got last response from this server */
|
||||
unsigned long neg_start; /* when negotiate started (jiffies) */
|
||||
unsigned long reconn_delay; /* when resched session and tcon reconnect */
|
||||
struct cifs_secmech secmech; /* crypto sec mech functs, descriptors */
|
||||
#define CIFS_NEGFLAVOR_UNENCAP 1 /* wct == 17, but no ext_sec */
|
||||
#define CIFS_NEGFLAVOR_EXTENDED 2 /* wct == 17, ext_sec bit set */
|
||||
@ -2385,4 +2386,24 @@ static inline bool cifs_netbios_name(const char *name, size_t namelen)
|
||||
(le32_to_cpu((tcon)->fsAttrInfo.Attributes) & \
|
||||
FILE_SUPPORTS_REPARSE_POINTS))
|
||||
|
||||
#define CIFS_RECONN_DELAY_SECS 30
|
||||
#define CIFS_MAX_RECONN_DELAY (4 * CIFS_RECONN_DELAY_SECS)
|
||||
|
||||
static inline void cifs_queue_server_reconn(struct TCP_Server_Info *server)
|
||||
{
|
||||
if (!delayed_work_pending(&server->reconnect)) {
|
||||
WRITE_ONCE(server->reconn_delay, 0);
|
||||
mod_delayed_work(cifsiod_wq, &server->reconnect, 0);
|
||||
}
|
||||
}
|
||||
|
||||
static inline void cifs_requeue_server_reconn(struct TCP_Server_Info *server)
|
||||
{
|
||||
unsigned long delay = READ_ONCE(server->reconn_delay);
|
||||
|
||||
delay = umin(delay + CIFS_RECONN_DELAY_SECS, CIFS_MAX_RECONN_DELAY);
|
||||
WRITE_ONCE(server->reconn_delay, delay);
|
||||
queue_delayed_work(cifsiod_wq, &server->reconnect, delay * HZ);
|
||||
}
|
||||
|
||||
#endif /* _CIFS_GLOB_H */
|
||||
|
||||
@ -9,6 +9,7 @@
|
||||
#define _CIFSPROTO_H
|
||||
#include <linux/nls.h>
|
||||
#include <linux/ctype.h>
|
||||
#include "cifsglob.h"
|
||||
#include "trace.h"
|
||||
#ifdef CONFIG_CIFS_DFS_UPCALL
|
||||
#include "dfs_cache.h"
|
||||
|
||||
@ -429,7 +429,7 @@ static int __cifs_reconnect(struct TCP_Server_Info *server,
|
||||
spin_unlock(&server->srv_lock);
|
||||
cifs_swn_reset_server_dstaddr(server);
|
||||
cifs_server_unlock(server);
|
||||
mod_delayed_work(cifsiod_wq, &server->reconnect, 0);
|
||||
cifs_queue_server_reconn(server);
|
||||
}
|
||||
} while (server->tcpStatus == CifsNeedReconnect);
|
||||
|
||||
@ -568,7 +568,7 @@ static int reconnect_dfs_server(struct TCP_Server_Info *server)
|
||||
spin_unlock(&server->srv_lock);
|
||||
cifs_swn_reset_server_dstaddr(server);
|
||||
cifs_server_unlock(server);
|
||||
mod_delayed_work(cifsiod_wq, &server->reconnect, 0);
|
||||
cifs_queue_server_reconn(server);
|
||||
} while (server->tcpStatus == CifsNeedReconnect);
|
||||
|
||||
dfs_cache_noreq_update_tgthint(ref_path, target_hint);
|
||||
@ -4245,8 +4245,10 @@ cifs_setup_session(const unsigned int xid, struct cifs_ses *ses,
|
||||
struct sockaddr_in6 *addr6 = (struct sockaddr_in6 *)&pserver->dstaddr;
|
||||
struct sockaddr_in *addr = (struct sockaddr_in *)&pserver->dstaddr;
|
||||
bool is_binding = false;
|
||||
bool new_ses;
|
||||
|
||||
spin_lock(&ses->ses_lock);
|
||||
new_ses = ses->ses_status == SES_NEW;
|
||||
cifs_dbg(FYI, "%s: channel connect bitmap: 0x%lx\n",
|
||||
__func__, ses->chans_need_reconnect);
|
||||
|
||||
@ -4332,7 +4334,10 @@ cifs_setup_session(const unsigned int xid, struct cifs_ses *ses,
|
||||
}
|
||||
|
||||
if (rc) {
|
||||
cifs_server_dbg(VFS, "Send error in SessSetup = %d\n", rc);
|
||||
if (new_ses) {
|
||||
cifs_server_dbg(VFS, "failed to create a new SMB session with %s: %d\n",
|
||||
get_security_type_str(ses->sectype), rc);
|
||||
}
|
||||
spin_lock(&ses->ses_lock);
|
||||
if (ses->ses_status == SES_IN_SETUP)
|
||||
ses->ses_status = SES_NEED_RECON;
|
||||
|
||||
@ -463,7 +463,7 @@ skip_add_channels:
|
||||
spin_unlock(&ses->ses_lock);
|
||||
|
||||
if (smb2_command != SMB2_INTERNAL_CMD)
|
||||
mod_delayed_work(cifsiod_wq, &server->reconnect, 0);
|
||||
cifs_queue_server_reconn(server);
|
||||
|
||||
atomic_inc(&tconInfoReconnectCount);
|
||||
out:
|
||||
@ -1628,8 +1628,6 @@ SMB2_auth_kerberos(struct SMB2_sess_data *sess_data)
|
||||
spnego_key = cifs_get_spnego_key(ses, server);
|
||||
if (IS_ERR(spnego_key)) {
|
||||
rc = PTR_ERR(spnego_key);
|
||||
if (rc == -ENOKEY)
|
||||
cifs_dbg(VFS, "Verify user has a krb5 ticket and keyutils is installed\n");
|
||||
spnego_key = NULL;
|
||||
goto out;
|
||||
}
|
||||
@ -4246,7 +4244,7 @@ void smb2_reconnect_server(struct work_struct *work)
|
||||
done:
|
||||
cifs_dbg(FYI, "Reconnecting tcons and channels finished\n");
|
||||
if (resched)
|
||||
queue_delayed_work(cifsiod_wq, &server->reconnect, 2 * HZ);
|
||||
cifs_requeue_server_reconn(server);
|
||||
mutex_unlock(&pserver->reconnect_mutex);
|
||||
|
||||
/* now we can safely release srv struct */
|
||||
@ -4270,7 +4268,7 @@ SMB2_echo(struct TCP_Server_Info *server)
|
||||
server->ops->need_neg(server)) {
|
||||
spin_unlock(&server->srv_lock);
|
||||
/* No need to send echo on newly established connections */
|
||||
mod_delayed_work(cifsiod_wq, &server->reconnect, 0);
|
||||
cifs_queue_server_reconn(server);
|
||||
return rc;
|
||||
}
|
||||
spin_unlock(&server->srv_lock);
|
||||
|
||||
@ -4,5 +4,7 @@
|
||||
*
|
||||
* Author(s): Steve French <stfrench@microsoft.com>
|
||||
*/
|
||||
#include "cifsglob.h"
|
||||
#include "cifs_spnego.h"
|
||||
#define CREATE_TRACE_POINTS
|
||||
#include "trace.h"
|
||||
|
||||
@ -1560,6 +1560,49 @@ DEFINE_SMB3_CREDIT_EVENT(waitff_credits);
|
||||
DEFINE_SMB3_CREDIT_EVENT(overflow_credits);
|
||||
DEFINE_SMB3_CREDIT_EVENT(set_credits);
|
||||
|
||||
TRACE_EVENT(smb3_kerberos_auth,
|
||||
TP_PROTO(struct TCP_Server_Info *server,
|
||||
struct cifs_ses *ses,
|
||||
int rc),
|
||||
TP_ARGS(server, ses, rc),
|
||||
TP_STRUCT__entry(
|
||||
__field(pid_t, pid)
|
||||
__field(uid_t, uid)
|
||||
__field(uid_t, cruid)
|
||||
__string(host, server->hostname)
|
||||
__string(user, ses->user_name)
|
||||
__array(__u8, addr, sizeof(struct sockaddr_storage))
|
||||
__array(char, sec, sizeof("ntlmsspi"))
|
||||
__array(char, upcall_target, sizeof("mount"))
|
||||
__field(int, rc)
|
||||
),
|
||||
TP_fast_assign(
|
||||
__entry->pid = current->pid;
|
||||
__entry->uid = from_kuid_munged(&init_user_ns, ses->linux_uid);
|
||||
__entry->cruid = from_kuid_munged(&init_user_ns, ses->cred_uid);
|
||||
__assign_str(host);
|
||||
__assign_str(user);
|
||||
memcpy(__entry->addr, &server->dstaddr, sizeof(__entry->addr));
|
||||
|
||||
if (server->sec_kerberos)
|
||||
memcpy(__entry->sec, "krb5", sizeof("krb5"));
|
||||
else if (server->sec_mskerberos)
|
||||
memcpy(__entry->sec, "mskrb5", sizeof("mskrb5"));
|
||||
else if (server->sec_iakerb)
|
||||
memcpy(__entry->sec, "iakerb", sizeof("iakerb"));
|
||||
else
|
||||
memcpy(__entry->sec, "krb5", sizeof("krb5"));
|
||||
|
||||
if (ses->upcall_target == UPTARGET_MOUNT)
|
||||
memcpy(__entry->upcall_target, "mount", sizeof("mount"));
|
||||
else
|
||||
memcpy(__entry->upcall_target, "app", sizeof("app"));
|
||||
__entry->rc = rc;
|
||||
),
|
||||
TP_printk("vers=%d host=%s ip=%pISpsfc sec=%s uid=%d cruid=%d user=%s pid=%d upcall_target=%s err=%d",
|
||||
CIFS_SPNEGO_UPCALL_VERSION, __get_str(host), __entry->addr,
|
||||
__entry->sec, __entry->uid, __entry->cruid, __get_str(user),
|
||||
__entry->pid, __entry->upcall_target, __entry->rc))
|
||||
|
||||
TRACE_EVENT(smb3_tcon_ref,
|
||||
TP_PROTO(unsigned int tcon_debug_id, int ref,
|
||||
|
||||
0
include/config/IPV6_FOU
Normal file
0
include/config/IPV6_FOU
Normal file
0
include/config/IPV6_FOU_TUNNEL
Normal file
0
include/config/IPV6_FOU_TUNNEL
Normal file
0
include/config/NET_FOU
Normal file
0
include/config/NET_FOU
Normal file
0
include/config/NET_FOU_IP_TUNNELS
Normal file
0
include/config/NET_FOU_IP_TUNNELS
Normal file
@ -170,6 +170,7 @@ CONFIG_PCI_PASID=y
|
||||
CONFIG_IP_VS_MH_TAB_INDEX=12
|
||||
CONFIG_CRYPTO_KPP=y
|
||||
CONFIG_GENERIC_STRNLEN_USER=y
|
||||
CONFIG_NET_FOU=m
|
||||
CONFIG_OF_IRQ=y
|
||||
CONFIG_SCF_TORTURE_TEST=m
|
||||
CONFIG_I2C_TEGRA_BPMP=m
|
||||
@ -353,6 +354,7 @@ CONFIG_BLK_DEV_BSG=y
|
||||
CONFIG_MEDIA_PCI_SUPPORT=y
|
||||
CONFIG_AT803X_PHY=m
|
||||
CONFIG_MACVTAP=m
|
||||
CONFIG_IPV6_FOU=m
|
||||
CONFIG_DRM_DISPLAY_HDMI_HELPER=y
|
||||
CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m
|
||||
CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
|
||||
@ -1623,6 +1625,7 @@ CONFIG_IPV6_GRE=m
|
||||
CONFIG_MXC_CLK=y
|
||||
CONFIG_KEYBOARD_GPIO=m
|
||||
CONFIG_MMC_DW_PLTFM=m
|
||||
CONFIG_NET_FOU_IP_TUNNELS=y
|
||||
CONFIG_DRM_LOAD_EDID_FIRMWARE=y
|
||||
CONFIG_SND_USB_AUDIO=m
|
||||
CONFIG_CRYPTO_DRBG_CTR=y
|
||||
@ -2859,6 +2862,7 @@ CONFIG_BRCMFMAC_SDIO=y
|
||||
CONFIG_ACPI_APEI_EINJ_CXL=y
|
||||
CONFIG_RTC_DRV_ABX80X=m
|
||||
CONFIG_DM_CRYPT=m
|
||||
CONFIG_IPV6_FOU_TUNNEL=m
|
||||
CONFIG_IRQ_SIM=y
|
||||
CONFIG_HID_THRUSTMASTER=m
|
||||
CONFIG_RV_REACTORS=y
|
||||
|
||||
@ -170,6 +170,7 @@
|
||||
#define CONFIG_IP_VS_MH_TAB_INDEX 12
|
||||
#define CONFIG_CRYPTO_KPP 1
|
||||
#define CONFIG_GENERIC_STRNLEN_USER 1
|
||||
#define CONFIG_NET_FOU_MODULE 1
|
||||
#define CONFIG_OF_IRQ 1
|
||||
#define CONFIG_SCF_TORTURE_TEST_MODULE 1
|
||||
#define CONFIG_I2C_TEGRA_BPMP_MODULE 1
|
||||
@ -353,6 +354,7 @@
|
||||
#define CONFIG_MEDIA_PCI_SUPPORT 1
|
||||
#define CONFIG_AT803X_PHY_MODULE 1
|
||||
#define CONFIG_MACVTAP_MODULE 1
|
||||
#define CONFIG_IPV6_FOU_MODULE 1
|
||||
#define CONFIG_DRM_DISPLAY_HDMI_HELPER 1
|
||||
#define CONFIG_NETFILTER_XT_MATCH_PHYSDEV_MODULE 1
|
||||
#define CONFIG_USB_ANNOUNCE_NEW_DEVICES 1
|
||||
@ -1623,6 +1625,7 @@
|
||||
#define CONFIG_MXC_CLK 1
|
||||
#define CONFIG_KEYBOARD_GPIO_MODULE 1
|
||||
#define CONFIG_MMC_DW_PLTFM_MODULE 1
|
||||
#define CONFIG_NET_FOU_IP_TUNNELS 1
|
||||
#define CONFIG_DRM_LOAD_EDID_FIRMWARE 1
|
||||
#define CONFIG_SND_USB_AUDIO_MODULE 1
|
||||
#define CONFIG_CRYPTO_DRBG_CTR 1
|
||||
@ -2859,6 +2862,7 @@
|
||||
#define CONFIG_ACPI_APEI_EINJ_CXL 1
|
||||
#define CONFIG_RTC_DRV_ABX80X_MODULE 1
|
||||
#define CONFIG_DM_CRYPT_MODULE 1
|
||||
#define CONFIG_IPV6_FOU_TUNNEL_MODULE 1
|
||||
#define CONFIG_IRQ_SIM 1
|
||||
#define CONFIG_HID_THRUSTMASTER_MODULE 1
|
||||
#define CONFIG_RV_REACTORS 1
|
||||
|
||||
@ -329,6 +329,8 @@
|
||||
--cfg=CONFIG_CRYPTO_KPP="y"
|
||||
--cfg=CONFIG_GENERIC_STRNLEN_USER
|
||||
--cfg=CONFIG_GENERIC_STRNLEN_USER="y"
|
||||
--cfg=CONFIG_NET_FOU
|
||||
--cfg=CONFIG_NET_FOU="m"
|
||||
--cfg=CONFIG_OF_IRQ
|
||||
--cfg=CONFIG_OF_IRQ="y"
|
||||
--cfg=CONFIG_SCF_TORTURE_TEST
|
||||
@ -688,6 +690,8 @@
|
||||
--cfg=CONFIG_AT803X_PHY="m"
|
||||
--cfg=CONFIG_MACVTAP
|
||||
--cfg=CONFIG_MACVTAP="m"
|
||||
--cfg=CONFIG_IPV6_FOU
|
||||
--cfg=CONFIG_IPV6_FOU="m"
|
||||
--cfg=CONFIG_DRM_DISPLAY_HDMI_HELPER
|
||||
--cfg=CONFIG_DRM_DISPLAY_HDMI_HELPER="y"
|
||||
--cfg=CONFIG_NETFILTER_XT_MATCH_PHYSDEV
|
||||
@ -3185,6 +3189,8 @@
|
||||
--cfg=CONFIG_KEYBOARD_GPIO="m"
|
||||
--cfg=CONFIG_MMC_DW_PLTFM
|
||||
--cfg=CONFIG_MMC_DW_PLTFM="m"
|
||||
--cfg=CONFIG_NET_FOU_IP_TUNNELS
|
||||
--cfg=CONFIG_NET_FOU_IP_TUNNELS="y"
|
||||
--cfg=CONFIG_DRM_LOAD_EDID_FIRMWARE
|
||||
--cfg=CONFIG_DRM_LOAD_EDID_FIRMWARE="y"
|
||||
--cfg=CONFIG_SND_USB_AUDIO
|
||||
@ -5616,6 +5622,8 @@
|
||||
--cfg=CONFIG_RTC_DRV_ABX80X="m"
|
||||
--cfg=CONFIG_DM_CRYPT
|
||||
--cfg=CONFIG_DM_CRYPT="m"
|
||||
--cfg=CONFIG_IPV6_FOU_TUNNEL
|
||||
--cfg=CONFIG_IPV6_FOU_TUNNEL="m"
|
||||
--cfg=CONFIG_IRQ_SIM
|
||||
--cfg=CONFIG_IRQ_SIM="y"
|
||||
--cfg=CONFIG_HID_THRUSTMASTER
|
||||
|
||||
@ -215,6 +215,9 @@ static int gue_udp_recv(struct sock *sk, struct sk_buff *skb)
|
||||
return gue_control_message(skb, guehdr);
|
||||
|
||||
proto_ctype = guehdr->proto_ctype;
|
||||
if (unlikely(!proto_ctype))
|
||||
goto drop;
|
||||
|
||||
__skb_pull(skb, sizeof(struct udphdr) + hdrlen);
|
||||
skb_reset_transport_header(skb);
|
||||
|
||||
|
||||
@ -14,7 +14,7 @@
|
||||
const struct nla_policy fou_nl_policy[FOU_ATTR_IFINDEX + 1] = {
|
||||
[FOU_ATTR_PORT] = { .type = NLA_U16, },
|
||||
[FOU_ATTR_AF] = { .type = NLA_U8, },
|
||||
[FOU_ATTR_IPPROTO] = { .type = NLA_U8, },
|
||||
[FOU_ATTR_IPPROTO] = NLA_POLICY_MIN(NLA_U8, 1),
|
||||
[FOU_ATTR_TYPE] = { .type = NLA_U8, },
|
||||
[FOU_ATTR_REMCSUM_NOPARTIAL] = { .type = NLA_FLAG, },
|
||||
[FOU_ATTR_LOCAL_V4] = { .type = NLA_U32, },
|
||||
|
||||
@ -416,8 +416,6 @@ smc_clc_msg_decl_valid(struct smc_clc_msg_decline *dclc)
|
||||
{
|
||||
struct smc_clc_msg_hdr *hdr = &dclc->hdr;
|
||||
|
||||
if (hdr->typev1 != SMC_TYPE_R && hdr->typev1 != SMC_TYPE_D)
|
||||
return false;
|
||||
if (hdr->version == SMC_V1) {
|
||||
if (ntohs(hdr->length) != sizeof(struct smc_clc_msg_decline))
|
||||
return false;
|
||||
|
||||
1
redhat/configs/common/generic/CONFIG_NET_FOU
Normal file
1
redhat/configs/common/generic/CONFIG_NET_FOU
Normal file
@ -0,0 +1 @@
|
||||
CONFIG_NET_FOU=m
|
||||
1
redhat/configs/common/generic/CONFIG_NET_FOU_IP_TUNNELS
Normal file
1
redhat/configs/common/generic/CONFIG_NET_FOU_IP_TUNNELS
Normal file
@ -0,0 +1 @@
|
||||
CONFIG_NET_FOU_IP_TUNNELS=y
|
||||
@ -1 +0,0 @@
|
||||
# CONFIG_NET_FOU is not set
|
||||
@ -1 +0,0 @@
|
||||
# CONFIG_NET_FOU_IP_TUNNELS is not set
|
||||
@ -1,3 +1,20 @@
|
||||
* Thu Feb 19 2026 CKI KWF Bot <cki-ci-bot+kwf-gitlab-com@redhat.com> [6.12.0-124.40.1.el10_1]
|
||||
- s390/mm: Fix __ptep_rdp() inline assembly (Mete Durlu) [RHEL-143715]
|
||||
- ice: PTP: fix missing timestamps on E825 hardware (CKI Backport Bot) [RHEL-148168]
|
||||
- fou: Don't allow 0 for FOU_ATTR_IPPROTO. (Xin Long) [RHEL-144984]
|
||||
- tools: ynl: Specify --no-line-number in ynl-regen.sh. (Xin Long) [RHEL-144984]
|
||||
- gue: Fix skb memleak with inner IP protocol 0. (Xin Long) [RHEL-144984]
|
||||
- netlink: specs: fou: replace underscores with dashes in names (Xin Long) [RHEL-144984]
|
||||
- redhat: enable FOU modules in kernel-modules-extra (Xin Long) [RHEL-144984]
|
||||
- net/smc: Remove validation of reserved bits in CLC Decline message (CKI Backport Bot) [RHEL-143717]
|
||||
- scsi: s390: zfcp: Ensure synchronous unit_add (CKI Backport Bot) [RHEL-143733]
|
||||
- smb: client: Add tracepoint for krb5 auth (Paulo Alcantara) [RHEL-145511]
|
||||
- smb: client: improve error message when creating SMB session (Paulo Alcantara) [RHEL-145511]
|
||||
- smb: client: relax session and tcon reconnect attempts (Paulo Alcantara) [RHEL-145511]
|
||||
- cifs: #include cifsglob.h before trace.h to allow structs in tracepoints (Paulo Alcantara) [RHEL-145511]
|
||||
- ALSA: hda/realtek - Enable Mute LED for Lenovo platform (Jaroslav Kysela) [RHEL-141440]
|
||||
Resolves: RHEL-141440, RHEL-143715, RHEL-143717, RHEL-143733, RHEL-144984, RHEL-145511, RHEL-148168
|
||||
|
||||
* Tue Feb 17 2026 CKI KWF Bot <cki-ci-bot+kwf-gitlab-com@redhat.com> [6.12.0-124.39.1.el10_1]
|
||||
- exfat: fix double free in delayed_free (CKI Backport Bot) [RHEL-146406] {CVE-2025-38206}
|
||||
- mlxsw: spectrum_mr: Fix use-after-free when updating multicast route stats (CKI Backport Bot) [RHEL-143196] {CVE-2025-68800}
|
||||
|
||||
@ -436,6 +436,7 @@ rules:
|
||||
- net/dns_resolver/.*: modules-core
|
||||
- net/hsr/.*: modules-core
|
||||
- net/ife/.*: modules-core
|
||||
- net/ipv4/fou.ko: modules-extra
|
||||
- net/ipv4/netfilter/arp.*: modules-extra
|
||||
- net/ipv4/netfilter/ip[_t].*: modules-extra
|
||||
- net/ipv4/tcp_bic.*: modules-extra
|
||||
@ -450,6 +451,7 @@ rules:
|
||||
- net/ipv4/tcp_westwood.*: modules-extra
|
||||
- net/ipv4/tcp_yeah.*: modules-extra
|
||||
- net/ipv4/.*: modules-core
|
||||
- net/ipv6/fou6.ko: modules-extra
|
||||
- net/ipv6/netfilter/ebt.*: modules-extra
|
||||
- net/ipv6/netfilter/ip6[_t].*: modules-extra
|
||||
- net/ipv6/.*: modules-core
|
||||
|
||||
@ -4825,6 +4825,20 @@ static void alc295_fixup_hp_mute_led_coefbit11(struct hda_codec *codec,
|
||||
}
|
||||
}
|
||||
|
||||
static void alc233_fixup_lenovo_coef_micmute_led(struct hda_codec *codec,
|
||||
const struct hda_fixup *fix, int action)
|
||||
{
|
||||
struct alc_spec *spec = codec->spec;
|
||||
|
||||
if (action == HDA_FIXUP_ACT_PRE_PROBE) {
|
||||
spec->mic_led_coef.idx = 0x10;
|
||||
spec->mic_led_coef.mask = 1 << 13;
|
||||
spec->mic_led_coef.on = 0;
|
||||
spec->mic_led_coef.off = 1 << 13;
|
||||
snd_hda_gen_add_micmute_led_cdev(codec, coef_micmute_led_set);
|
||||
}
|
||||
}
|
||||
|
||||
static void alc285_fixup_hp_mute_led(struct hda_codec *codec,
|
||||
const struct hda_fixup *fix, int action)
|
||||
{
|
||||
@ -5115,6 +5129,39 @@ static void alc280_fixup_hp_gpio2_mic_hotkey(struct hda_codec *codec,
|
||||
}
|
||||
}
|
||||
|
||||
/* GPIO2 = mic mute hotkey
|
||||
* GPIO3 = mic mute LED
|
||||
*/
|
||||
static void alc233_fixup_lenovo_gpio2_mic_hotkey(struct hda_codec *codec,
|
||||
const struct hda_fixup *fix, int action)
|
||||
{
|
||||
struct alc_spec *spec = codec->spec;
|
||||
|
||||
alc233_fixup_lenovo_coef_micmute_led(codec, fix, action);
|
||||
if (action == HDA_FIXUP_ACT_PRE_PROBE) {
|
||||
alc_update_coef_idx(codec, 0x10, 1<<2, 1<<2);
|
||||
if (alc_register_micmute_input_device(codec) != 0)
|
||||
return;
|
||||
|
||||
spec->gpio_mask |= 0x04;
|
||||
spec->gpio_dir |= 0x0;
|
||||
snd_hda_codec_write_cache(codec, codec->core.afg, 0,
|
||||
AC_VERB_SET_GPIO_UNSOLICITED_RSP_MASK, 0x04);
|
||||
snd_hda_jack_detect_enable_callback(codec, codec->core.afg,
|
||||
gpio2_mic_hotkey_event);
|
||||
return;
|
||||
}
|
||||
|
||||
if (!spec->kb_dev)
|
||||
return;
|
||||
|
||||
switch (action) {
|
||||
case HDA_FIXUP_ACT_FREE:
|
||||
input_unregister_device(spec->kb_dev);
|
||||
spec->kb_dev = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
/* Line2 = mic mute hotkey
|
||||
* GPIO2 = mic mute LED
|
||||
*/
|
||||
@ -8038,6 +8085,7 @@ enum {
|
||||
ALC294_FIXUP_ASUS_CS35L41_SPI_2,
|
||||
ALC274_FIXUP_HP_AIO_BIND_DACS,
|
||||
ALC287_FIXUP_PREDATOR_SPK_CS35L41_I2C_2,
|
||||
ALC233_FIXUP_LENOVO_GPIO2_MIC_HOTKEY,
|
||||
};
|
||||
|
||||
/* A special fixup for Lenovo C940 and Yoga Duet 7;
|
||||
@ -10426,6 +10474,10 @@ static const struct hda_fixup alc269_fixups[] = {
|
||||
.type = HDA_FIXUP_FUNC,
|
||||
.v.func = alc274_fixup_hp_aio_bind_dacs,
|
||||
},
|
||||
[ALC233_FIXUP_LENOVO_GPIO2_MIC_HOTKEY] = {
|
||||
.type = HDA_FIXUP_FUNC,
|
||||
.v.func = alc233_fixup_lenovo_gpio2_mic_hotkey,
|
||||
},
|
||||
};
|
||||
|
||||
static const struct hda_quirk alc269_fixup_tbl[] = {
|
||||
@ -11270,7 +11322,12 @@ static const struct hda_quirk alc269_fixup_tbl[] = {
|
||||
SND_PCI_QUIRK(0x17aa, 0x3176, "ThinkCentre Station", ALC283_FIXUP_HEADSET_MIC),
|
||||
SND_PCI_QUIRK(0x17aa, 0x3178, "ThinkCentre Station", ALC283_FIXUP_HEADSET_MIC),
|
||||
SND_PCI_QUIRK(0x17aa, 0x31af, "ThinkCentre Station", ALC623_FIXUP_LENOVO_THINKSTATION_P340),
|
||||
SND_PCI_QUIRK(0x17aa, 0x3341, "Lenovo ThinkCentre M90 Gen4", ALC233_FIXUP_LENOVO_GPIO2_MIC_HOTKEY),
|
||||
SND_PCI_QUIRK(0x17aa, 0x3342, "Lenovo ThinkCentre M90 Gen4", ALC233_FIXUP_LENOVO_GPIO2_MIC_HOTKEY),
|
||||
SND_PCI_QUIRK(0x17aa, 0x3343, "Lenovo ThinkCentre M70 Gen4", ALC233_FIXUP_LENOVO_GPIO2_MIC_HOTKEY),
|
||||
SND_PCI_QUIRK(0x17aa, 0x3344, "Lenovo ThinkCentre M70 Gen4", ALC233_FIXUP_LENOVO_GPIO2_MIC_HOTKEY),
|
||||
SND_PCI_QUIRK(0x17aa, 0x334b, "Lenovo ThinkCentre M70 Gen5", ALC283_FIXUP_HEADSET_MIC),
|
||||
SND_PCI_QUIRK(0x17aa, 0x334f, "Lenovo ThinkCentre M90a Gen5", ALC233_FIXUP_LENOVO_GPIO2_MIC_HOTKEY),
|
||||
SND_PCI_QUIRK(0x17aa, 0x3384, "ThinkCentre M90a PRO", ALC233_FIXUP_LENOVO_L2MH_LOW_ENLED),
|
||||
SND_PCI_QUIRK(0x17aa, 0x3386, "ThinkCentre M90a Gen6", ALC233_FIXUP_LENOVO_L2MH_LOW_ENLED),
|
||||
SND_PCI_QUIRK(0x17aa, 0x3387, "ThinkCentre M70a Gen6", ALC233_FIXUP_LENOVO_L2MH_LOW_ENLED),
|
||||
|
||||
@ -21,7 +21,7 @@ files=$(git grep --files-with-matches '^/\* YNL-GEN \(kernel\|uapi\|user\)')
|
||||
for f in $files; do
|
||||
# params: 0 1 2 3
|
||||
# $YAML YNL-GEN kernel $mode
|
||||
params=( $(git grep -B1 -h '/\* YNL-GEN' $f | sed 's@/\*\(.*\)\*/@\1@') )
|
||||
params=( $(git grep --no-line-number -B1 -h '/\* YNL-GEN' $f | sed 's@/\*\(.*\)\*/@\1@') )
|
||||
args=$(sed -n 's@/\* YNL-ARG \(.*\) \*/@\1@p' $f)
|
||||
|
||||
if [ $f -nt ${params[0]} -a -z "$force" ]; then
|
||||
|
||||
@ -1,3 +1,3 @@
|
||||
sbat,1,SBAT Version,sbat,1,https://github.com/rhboot/shim/blob/main/SBAT.md
|
||||
kernel-uki-virt-addons.centos,1,Red Hat,kernel-uki-virt-addons,6.12.0-124.39.1.el10.x86_64,mailto:secalert@redhat.com
|
||||
kernel-uki-virt-addons.almalinux,1,AlmaLinux,kernel-uki-virt-addons,6.12.0-124.39.1.el10.x86_64,mailto:security@almalinux.org
|
||||
kernel-uki-virt-addons.centos,1,Red Hat,kernel-uki-virt-addons,6.12.0-124.40.1.el10.x86_64,mailto:secalert@redhat.com
|
||||
kernel-uki-virt-addons.almalinux,1,AlmaLinux,kernel-uki-virt-addons,6.12.0-124.40.1.el10.x86_64,mailto:security@almalinux.org
|
||||
|
||||
4
uki.sbat
4
uki.sbat
@ -1,3 +1,3 @@
|
||||
sbat,1,SBAT Version,sbat,1,https://github.com/rhboot/shim/blob/main/SBAT.md
|
||||
kernel-uki-virt.centos,1,Red Hat,kernel-uki-virt,6.12.0-124.39.1.el10.x86_64,mailto:secalert@redhat.com
|
||||
kernel-uki-virt.almalinux,1,AlmaLinux,kernel-uki-virt,6.12.0-124.39.1.el10.x86_64,mailto:security@almalinux.org
|
||||
kernel-uki-virt.centos,1,Red Hat,kernel-uki-virt,6.12.0-124.40.1.el10.x86_64,mailto:secalert@redhat.com
|
||||
kernel-uki-virt.almalinux,1,AlmaLinux,kernel-uki-virt,6.12.0-124.40.1.el10.x86_64,mailto:security@almalinux.org
|
||||
|
||||
Loading…
Reference in New Issue
Block a user