Kernel
Threads by month
- ----- 2025 -----
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
April 2022
- 10 participants
- 40 discussions

[PATCH openEuler-5.10 1/5] arm64: kdump: Update the name of crashk_low_res
by Zheng Zengkai 28 Apr '22
by Zheng Zengkai 28 Apr '22
28 Apr '22
From: Zhen Lei <thunder.leizhen(a)huawei.com>
hulk inclusion
category: bugfix
bugzilla: https://gitee.com/openeuler/kernel/issues/I545H8
CVE: NA
-------------------------------------------------------------------------
To be consistent with the style of other ARCHs such as x86, the kexec
commit b5a34a20984c ("arm64: support more than one crash kernel regions")
requires all crash regions to be named "Crash kernel". Update the name of
crashk_low_res, so that we can directly use the latest kexec tool without
having to maintain a private version.
Signed-off-by: Zhen Lei <thunder.leizhen(a)huawei.com>
Reviewed-by: Kefeng Wang <wangkefeng.wang(a)huawei.com>
Signed-off-by: Zheng Zengkai <zhengzengkai(a)huawei.com>
---
arch/arm64/kernel/setup.c | 9 +--------
1 file changed, 1 insertion(+), 8 deletions(-)
diff --git a/arch/arm64/kernel/setup.c b/arch/arm64/kernel/setup.c
index 2dd3ea837d35..ddca8d27fca6 100644
--- a/arch/arm64/kernel/setup.c
+++ b/arch/arm64/kernel/setup.c
@@ -274,16 +274,9 @@ static void __init request_standard_resources(void)
request_memmap_resources(res);
#ifdef CONFIG_KEXEC_CORE
- /*
- * Userspace will find "Crash kernel" or "Crash kernel (low)"
- * region in /proc/iomem.
- * In order to distinct from the high region and make no effect
- * to the use of existing kexec-tools, rename the low region as
- * "Crash kernel (low)".
- */
+ /* Userspace will find "Crash kernel" region in /proc/iomem. */
if (crashk_low_res.end && crashk_low_res.start >= res->start &&
crashk_low_res.end <= res->end) {
- crashk_low_res.name = "Crash kernel (low)";
request_resource(res, &crashk_low_res);
}
if (crashk_res.end && crashk_res.start >= res->start &&
--
2.20.1
1
4

[PATCH openEuler-5.10 1/6] Revert "xfrm: rate limit SA mapping change message to user space"
by Zheng Zengkai 28 Apr '22
by Zheng Zengkai 28 Apr '22
28 Apr '22
hulk inclusion
category: bugfix
bugzilla: https://gitee.com/openeuler/kernel/issues/I531X9
Reference: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id…
--------------------------------
This reverts commit 71022a70c75395d2edbd2bf83101794f65719a69.
Signed-off-by: Zheng Zengkai <zhengzengkai(a)huawei.com>
Acked-by: Xie XiuQi <xiexiuqi(a)huawei.com>
---
include/net/xfrm.h | 5 -----
include/uapi/linux/xfrm.h | 1 -
net/xfrm/xfrm_compat.c | 6 ++----
net/xfrm/xfrm_state.c | 23 +----------------------
net/xfrm/xfrm_user.c | 18 +-----------------
5 files changed, 4 insertions(+), 49 deletions(-)
diff --git a/include/net/xfrm.h b/include/net/xfrm.h
index c3437ae77e7d..f2875c629d06 100644
--- a/include/net/xfrm.h
+++ b/include/net/xfrm.h
@@ -199,11 +199,6 @@ struct xfrm_state {
struct xfrm_algo_aead *aead;
const char *geniv;
- /* mapping change rate limiting */
- __be16 new_mapping_sport;
- u32 new_mapping; /* seconds */
- u32 mapping_maxage; /* seconds for input SA */
-
/* Data for encapsulator */
struct xfrm_encap_tmpl *encap;
struct sock __rcu *encap_sk;
diff --git a/include/uapi/linux/xfrm.h b/include/uapi/linux/xfrm.h
index 2290c98b47cf..ffc6a5391bb7 100644
--- a/include/uapi/linux/xfrm.h
+++ b/include/uapi/linux/xfrm.h
@@ -308,7 +308,6 @@ enum xfrm_attr_type_t {
XFRMA_SET_MARK, /* __u32 */
XFRMA_SET_MARK_MASK, /* __u32 */
XFRMA_IF_ID, /* __u32 */
- XFRMA_MTIMER_THRESH, /* __u32 in seconds for input SA */
__XFRMA_MAX
#define XFRMA_OUTPUT_MARK XFRMA_SET_MARK /* Compatibility */
diff --git a/net/xfrm/xfrm_compat.c b/net/xfrm/xfrm_compat.c
index a0f62fa02e06..2bf269390163 100644
--- a/net/xfrm/xfrm_compat.c
+++ b/net/xfrm/xfrm_compat.c
@@ -127,7 +127,6 @@ static const struct nla_policy compat_policy[XFRMA_MAX+1] = {
[XFRMA_SET_MARK] = { .type = NLA_U32 },
[XFRMA_SET_MARK_MASK] = { .type = NLA_U32 },
[XFRMA_IF_ID] = { .type = NLA_U32 },
- [XFRMA_MTIMER_THRESH] = { .type = NLA_U32 },
};
static struct nlmsghdr *xfrm_nlmsg_put_compat(struct sk_buff *skb,
@@ -275,10 +274,9 @@ static int xfrm_xlate64_attr(struct sk_buff *dst, const struct nlattr *src)
case XFRMA_SET_MARK:
case XFRMA_SET_MARK_MASK:
case XFRMA_IF_ID:
- case XFRMA_MTIMER_THRESH:
return xfrm_nla_cpy(dst, src, nla_len(src));
default:
- BUILD_BUG_ON(XFRMA_MAX != XFRMA_MTIMER_THRESH);
+ BUILD_BUG_ON(XFRMA_MAX != XFRMA_IF_ID);
pr_warn_once("unsupported nla_type %d\n", src->nla_type);
return -EOPNOTSUPP;
}
@@ -433,7 +431,7 @@ static int xfrm_xlate32_attr(void *dst, const struct nlattr *nla,
int err;
if (type > XFRMA_MAX) {
- BUILD_BUG_ON(XFRMA_MAX != XFRMA_MTIMER_THRESH);
+ BUILD_BUG_ON(XFRMA_MAX != XFRMA_IF_ID);
NL_SET_ERR_MSG(extack, "Bad attribute");
return -EOPNOTSUPP;
}
diff --git a/net/xfrm/xfrm_state.c b/net/xfrm/xfrm_state.c
index 65e2805fa113..c158e70e8ae1 100644
--- a/net/xfrm/xfrm_state.c
+++ b/net/xfrm/xfrm_state.c
@@ -1557,9 +1557,6 @@ static struct xfrm_state *xfrm_state_clone(struct xfrm_state *orig,
x->km.seq = orig->km.seq;
x->replay = orig->replay;
x->preplay = orig->preplay;
- x->mapping_maxage = orig->mapping_maxage;
- x->new_mapping = 0;
- x->new_mapping_sport = 0;
return x;
@@ -2211,7 +2208,7 @@ int km_query(struct xfrm_state *x, struct xfrm_tmpl *t, struct xfrm_policy *pol)
}
EXPORT_SYMBOL(km_query);
-static int __km_new_mapping(struct xfrm_state *x, xfrm_address_t *ipaddr, __be16 sport)
+int km_new_mapping(struct xfrm_state *x, xfrm_address_t *ipaddr, __be16 sport)
{
int err = -EINVAL;
struct xfrm_mgr *km;
@@ -2226,24 +2223,6 @@ static int __km_new_mapping(struct xfrm_state *x, xfrm_address_t *ipaddr, __be16
rcu_read_unlock();
return err;
}
-
-int km_new_mapping(struct xfrm_state *x, xfrm_address_t *ipaddr, __be16 sport)
-{
- int ret = 0;
-
- if (x->mapping_maxage) {
- if ((jiffies / HZ - x->new_mapping) > x->mapping_maxage ||
- x->new_mapping_sport != sport) {
- x->new_mapping_sport = sport;
- x->new_mapping = jiffies / HZ;
- ret = __km_new_mapping(x, ipaddr, sport);
- }
- } else {
- ret = __km_new_mapping(x, ipaddr, sport);
- }
-
- return ret;
-}
EXPORT_SYMBOL(km_new_mapping);
void km_policy_expired(struct xfrm_policy *pol, int dir, int hard, u32 portid)
diff --git a/net/xfrm/xfrm_user.c b/net/xfrm/xfrm_user.c
index d0fdfbf4c5f7..ddf1b3a5f7c1 100644
--- a/net/xfrm/xfrm_user.c
+++ b/net/xfrm/xfrm_user.c
@@ -282,10 +282,6 @@ static int verify_newsa_info(struct xfrm_usersa_info *p,
err = 0;
- if (attrs[XFRMA_MTIMER_THRESH])
- if (!attrs[XFRMA_ENCAP])
- err = -EINVAL;
-
out:
return err;
}
@@ -525,7 +521,6 @@ static void xfrm_update_ae_params(struct xfrm_state *x, struct nlattr **attrs,
struct nlattr *lt = attrs[XFRMA_LTIME_VAL];
struct nlattr *et = attrs[XFRMA_ETIMER_THRESH];
struct nlattr *rt = attrs[XFRMA_REPLAY_THRESH];
- struct nlattr *mt = attrs[XFRMA_MTIMER_THRESH];
if (re) {
struct xfrm_replay_state_esn *replay_esn;
@@ -557,9 +552,6 @@ static void xfrm_update_ae_params(struct xfrm_state *x, struct nlattr **attrs,
if (rt)
x->replay_maxdiff = nla_get_u32(rt);
-
- if (mt)
- x->mapping_maxage = nla_get_u32(mt);
}
static void xfrm_smark_init(struct nlattr **attrs, struct xfrm_mark *m)
@@ -977,13 +969,8 @@ static int copy_to_user_state_extra(struct xfrm_state *x,
if (ret)
goto out;
}
- if (x->security) {
+ if (x->security)
ret = copy_sec_ctx(x->security, skb);
- if (ret)
- goto out;
- }
- if (x->mapping_maxage)
- ret = nla_put_u32(skb, XFRMA_MTIMER_THRESH, x->mapping_maxage);
out:
return ret;
}
@@ -2937,9 +2924,6 @@ static inline unsigned int xfrm_sa_len(struct xfrm_state *x)
/* Must count x->lastused as it may become non-zero behind our back. */
l += nla_total_size_64bit(sizeof(u64));
- if (x->mapping_maxage)
- l += nla_total_size(sizeof(x->mapping_maxage));
-
return l;
}
--
2.20.1
1
5

[PATCH openEuler-5.10 01/13] ixgbe: add the ability for the PF to disable VF link state
by Zheng Zengkai 27 Apr '22
by Zheng Zengkai 27 Apr '22
27 Apr '22
From: Slawomir Mrozowicz <slawomirx.mrozowicz(a)intel.com>
mainline inclusion
from mainline-v5.18-rc1
commit 366fd1000995d4cf64e1a61a0d78a051550b9841
category: bugfix
bugzilla: 186597, https://gitee.com/src-openeuler/kernel/issues/I532H9
CVE: CVE-2021-33061
Reference: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?…
--------------------------------
Add support for ndo_set_vf_link_state the Network Device Option that
allows the PF driver to control the virtual link state of the VF devices.
Without this change a VF cannot be disabled/enabled by the administrator.
In the implementation the auto state takes over PF link state to
VF link setting, the enable state is not supported, the disable state
shut off the VF link regardless of the PF setting.
Signed-off-by: Slawomir Mrozowicz <slawomirx.mrozowicz(a)intel.com>
Tested-by: Konrad Jankowski <konrad0.jankowski(a)intel.com>
Signed-off-by: Tony Nguyen <anthony.l.nguyen(a)intel.com>
Signed-off-by: Ziyang Xuan <william.xuanziyang(a)huawei.com>
Reviewed-by: Wei Yongjun <weiyongjun1(a)huawei.com>
Reviewed-by: Xiu Jianfeng <xiujianfeng(a)huawei.com>
Signed-off-by: Zheng Zengkai <zhengzengkai(a)huawei.com>
---
drivers/net/ethernet/intel/ixgbe/ixgbe.h | 2 +
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 11 +-
drivers/net/ethernet/intel/ixgbe/ixgbe_mbx.h | 2 +
.../net/ethernet/intel/ixgbe/ixgbe_sriov.c | 207 ++++++++++++++----
.../net/ethernet/intel/ixgbe/ixgbe_sriov.h | 4 +-
5 files changed, 182 insertions(+), 44 deletions(-)
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe.h b/drivers/net/ethernet/intel/ixgbe/ixgbe.h
index de0fc6ecf491..21bdae9eac75 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe.h
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe.h
@@ -177,6 +177,8 @@ struct vf_data_storage {
u16 pf_vlan; /* When set, guest VLAN config not allowed. */
u16 pf_qos;
u16 tx_rate;
+ int link_enable;
+ int link_state;
u8 spoofchk_enabled;
bool rss_query_enabled;
u8 trusted;
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
index 0109b47b2fe6..c0a56308dfd6 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
@@ -5683,6 +5683,9 @@ static void ixgbe_up_complete(struct ixgbe_adapter *adapter)
ctrl_ext = IXGBE_READ_REG(hw, IXGBE_CTRL_EXT);
ctrl_ext |= IXGBE_CTRL_EXT_PFRSTD;
IXGBE_WRITE_REG(hw, IXGBE_CTRL_EXT, ctrl_ext);
+
+ /* update setting rx tx for all active vfs */
+ ixgbe_set_all_vfs(adapter);
}
void ixgbe_reinit_locked(struct ixgbe_adapter *adapter)
@@ -6140,11 +6143,8 @@ void ixgbe_down(struct ixgbe_adapter *adapter)
for (i = 0 ; i < adapter->num_vfs; i++)
adapter->vfinfo[i].clear_to_send = false;
- /* ping all the active vfs to let them know we are going down */
- ixgbe_ping_all_vfs(adapter);
-
- /* Disable all VFTE/VFRE TX/RX */
- ixgbe_disable_tx_rx(adapter);
+ /* update setting rx tx for all active vfs */
+ ixgbe_set_all_vfs(adapter);
}
/* disable transmits in the hardware now that interrupts are off */
@@ -10255,6 +10255,7 @@ static const struct net_device_ops ixgbe_netdev_ops = {
.ndo_set_vf_vlan = ixgbe_ndo_set_vf_vlan,
.ndo_set_vf_rate = ixgbe_ndo_set_vf_bw,
.ndo_set_vf_spoofchk = ixgbe_ndo_set_vf_spoofchk,
+ .ndo_set_vf_link_state = ixgbe_ndo_set_vf_link_state,
.ndo_set_vf_rss_query_en = ixgbe_ndo_set_vf_rss_query_en,
.ndo_set_vf_trust = ixgbe_ndo_set_vf_trust,
.ndo_get_vf_config = ixgbe_ndo_get_vf_config,
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_mbx.h b/drivers/net/ethernet/intel/ixgbe/ixgbe_mbx.h
index a148534d7256..8f4316b19278 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_mbx.h
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_mbx.h
@@ -85,6 +85,8 @@ enum ixgbe_pfvf_api_rev {
#define IXGBE_VF_IPSEC_ADD 0x0d
#define IXGBE_VF_IPSEC_DEL 0x0e
+#define IXGBE_VF_GET_LINK_STATE 0x10 /* get vf link state */
+
/* length of permanent address message returned from PF */
#define IXGBE_VF_PERMADDR_MSG_LEN 4
/* word in permanent address message with the current multicast type */
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c
index 214a38de3f41..7f11c0a8e7a9 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c
@@ -96,6 +96,7 @@ static int __ixgbe_enable_sriov(struct ixgbe_adapter *adapter,
for (i = 0; i < num_vfs; i++) {
/* enable spoof checking for all VFs */
adapter->vfinfo[i].spoofchk_enabled = true;
+ adapter->vfinfo[i].link_enable = true;
/* We support VF RSS querying only for 82599 and x540
* devices at the moment. These devices share RSS
@@ -820,6 +821,57 @@ static inline void ixgbe_write_qde(struct ixgbe_adapter *adapter, u32 vf,
}
}
+/**
+ * ixgbe_set_vf_rx_tx - Set VF rx tx
+ * @adapter: Pointer to adapter struct
+ * @vf: VF identifier
+ *
+ * Set or reset correct transmit and receive for vf
+ **/
+static void ixgbe_set_vf_rx_tx(struct ixgbe_adapter *adapter, int vf)
+{
+ u32 reg_cur_tx, reg_cur_rx, reg_req_tx, reg_req_rx;
+ struct ixgbe_hw *hw = &adapter->hw;
+ u32 reg_offset, vf_shift;
+
+ vf_shift = vf % 32;
+ reg_offset = vf / 32;
+
+ reg_cur_tx = IXGBE_READ_REG(hw, IXGBE_VFTE(reg_offset));
+ reg_cur_rx = IXGBE_READ_REG(hw, IXGBE_VFRE(reg_offset));
+
+ if (adapter->vfinfo[vf].link_enable) {
+ reg_req_tx = reg_cur_tx | 1 << vf_shift;
+ reg_req_rx = reg_cur_rx | 1 << vf_shift;
+ } else {
+ reg_req_tx = reg_cur_tx & ~(1 << vf_shift);
+ reg_req_rx = reg_cur_rx & ~(1 << vf_shift);
+ }
+
+ /* The 82599 cannot support a mix of jumbo and non-jumbo PF/VFs.
+ * For more info take a look at ixgbe_set_vf_lpe
+ */
+ if (adapter->hw.mac.type == ixgbe_mac_82599EB) {
+ struct net_device *dev = adapter->netdev;
+ int pf_max_frame = dev->mtu + ETH_HLEN;
+
+#if IS_ENABLED(CONFIG_FCOE)
+ if (dev->features & NETIF_F_FCOE_MTU)
+ pf_max_frame = max_t(int, pf_max_frame,
+ IXGBE_FCOE_JUMBO_FRAME_SIZE);
+#endif /* CONFIG_FCOE */
+
+ if (pf_max_frame > ETH_FRAME_LEN)
+ reg_req_rx = reg_cur_rx & ~(1 << vf_shift);
+ }
+
+ /* Enable/Disable particular VF */
+ if (reg_cur_tx != reg_req_tx)
+ IXGBE_WRITE_REG(hw, IXGBE_VFTE(reg_offset), reg_req_tx);
+ if (reg_cur_rx != reg_req_rx)
+ IXGBE_WRITE_REG(hw, IXGBE_VFRE(reg_offset), reg_req_rx);
+}
+
static int ixgbe_vf_reset_msg(struct ixgbe_adapter *adapter, u32 vf)
{
struct ixgbe_ring_feature *vmdq = &adapter->ring_feature[RING_F_VMDQ];
@@ -845,11 +897,6 @@ static int ixgbe_vf_reset_msg(struct ixgbe_adapter *adapter, u32 vf)
vf_shift = vf % 32;
reg_offset = vf / 32;
- /* enable transmit for vf */
- reg = IXGBE_READ_REG(hw, IXGBE_VFTE(reg_offset));
- reg |= BIT(vf_shift);
- IXGBE_WRITE_REG(hw, IXGBE_VFTE(reg_offset), reg);
-
/* force drop enable for all VF Rx queues */
reg = IXGBE_QDE_ENABLE;
if (adapter->vfinfo[vf].pf_vlan)
@@ -857,27 +904,7 @@ static int ixgbe_vf_reset_msg(struct ixgbe_adapter *adapter, u32 vf)
ixgbe_write_qde(adapter, vf, reg);
- /* enable receive for vf */
- reg = IXGBE_READ_REG(hw, IXGBE_VFRE(reg_offset));
- reg |= BIT(vf_shift);
- /*
- * The 82599 cannot support a mix of jumbo and non-jumbo PF/VFs.
- * For more info take a look at ixgbe_set_vf_lpe
- */
- if (adapter->hw.mac.type == ixgbe_mac_82599EB) {
- struct net_device *dev = adapter->netdev;
- int pf_max_frame = dev->mtu + ETH_HLEN;
-
-#ifdef CONFIG_FCOE
- if (dev->features & NETIF_F_FCOE_MTU)
- pf_max_frame = max_t(int, pf_max_frame,
- IXGBE_FCOE_JUMBO_FRAME_SIZE);
-
-#endif /* CONFIG_FCOE */
- if (pf_max_frame > ETH_FRAME_LEN)
- reg &= ~BIT(vf_shift);
- }
- IXGBE_WRITE_REG(hw, IXGBE_VFRE(reg_offset), reg);
+ ixgbe_set_vf_rx_tx(adapter, vf);
/* enable VF mailbox for further messages */
adapter->vfinfo[vf].clear_to_send = true;
@@ -1202,6 +1229,26 @@ static int ixgbe_update_vf_xcast_mode(struct ixgbe_adapter *adapter,
return 0;
}
+static int ixgbe_get_vf_link_state(struct ixgbe_adapter *adapter,
+ u32 *msgbuf, u32 vf)
+{
+ u32 *link_state = &msgbuf[1];
+
+ /* verify the PF is supporting the correct API */
+ switch (adapter->vfinfo[vf].vf_api) {
+ case ixgbe_mbox_api_12:
+ case ixgbe_mbox_api_13:
+ case ixgbe_mbox_api_14:
+ break;
+ default:
+ return -EOPNOTSUPP;
+ }
+
+ *link_state = adapter->vfinfo[vf].link_enable;
+
+ return 0;
+}
+
static int ixgbe_rcv_msg_from_vf(struct ixgbe_adapter *adapter, u32 vf)
{
u32 mbx_size = IXGBE_VFMAILBOX_SIZE;
@@ -1267,6 +1314,9 @@ static int ixgbe_rcv_msg_from_vf(struct ixgbe_adapter *adapter, u32 vf)
case IXGBE_VF_UPDATE_XCAST_MODE:
retval = ixgbe_update_vf_xcast_mode(adapter, msgbuf, vf);
break;
+ case IXGBE_VF_GET_LINK_STATE:
+ retval = ixgbe_get_vf_link_state(adapter, msgbuf, vf);
+ break;
case IXGBE_VF_IPSEC_ADD:
retval = ixgbe_ipsec_vf_add_sa(adapter, msgbuf, vf);
break;
@@ -1322,18 +1372,6 @@ void ixgbe_msg_task(struct ixgbe_adapter *adapter)
}
}
-void ixgbe_disable_tx_rx(struct ixgbe_adapter *adapter)
-{
- struct ixgbe_hw *hw = &adapter->hw;
-
- /* disable transmit and receive for all vfs */
- IXGBE_WRITE_REG(hw, IXGBE_VFTE(0), 0);
- IXGBE_WRITE_REG(hw, IXGBE_VFTE(1), 0);
-
- IXGBE_WRITE_REG(hw, IXGBE_VFRE(0), 0);
- IXGBE_WRITE_REG(hw, IXGBE_VFRE(1), 0);
-}
-
static inline void ixgbe_ping_vf(struct ixgbe_adapter *adapter, int vf)
{
struct ixgbe_hw *hw = &adapter->hw;
@@ -1359,6 +1397,21 @@ void ixgbe_ping_all_vfs(struct ixgbe_adapter *adapter)
}
}
+/**
+ * ixgbe_set_all_vfs - update vfs queues
+ * @adapter: Pointer to adapter struct
+ *
+ * Update setting transmit and receive queues for all vfs
+ **/
+void ixgbe_set_all_vfs(struct ixgbe_adapter *adapter)
+{
+ int i;
+
+ for (i = 0 ; i < adapter->num_vfs; i++)
+ ixgbe_set_vf_link_state(adapter, i,
+ adapter->vfinfo[i].link_state);
+}
+
int ixgbe_ndo_set_vf_mac(struct net_device *netdev, int vf, u8 *mac)
{
struct ixgbe_adapter *adapter = netdev_priv(netdev);
@@ -1656,6 +1709,84 @@ int ixgbe_ndo_set_vf_spoofchk(struct net_device *netdev, int vf, bool setting)
return 0;
}
+/**
+ * ixgbe_set_vf_link_state - Set link state
+ * @adapter: Pointer to adapter struct
+ * @vf: VF identifier
+ * @state: required link state
+ *
+ * Set a link force state on/off a single vf
+ **/
+void ixgbe_set_vf_link_state(struct ixgbe_adapter *adapter, int vf, int state)
+{
+ adapter->vfinfo[vf].link_state = state;
+
+ switch (state) {
+ case IFLA_VF_LINK_STATE_AUTO:
+ if (test_bit(__IXGBE_DOWN, &adapter->state))
+ adapter->vfinfo[vf].link_enable = false;
+ else
+ adapter->vfinfo[vf].link_enable = true;
+ break;
+ case IFLA_VF_LINK_STATE_ENABLE:
+ adapter->vfinfo[vf].link_enable = true;
+ break;
+ case IFLA_VF_LINK_STATE_DISABLE:
+ adapter->vfinfo[vf].link_enable = false;
+ break;
+ }
+
+ ixgbe_set_vf_rx_tx(adapter, vf);
+
+ /* restart the VF */
+ adapter->vfinfo[vf].clear_to_send = false;
+ ixgbe_ping_vf(adapter, vf);
+}
+
+/**
+ * ixgbe_ndo_set_vf_link_state - Set link state
+ * @netdev: network interface device structure
+ * @vf: VF identifier
+ * @state: required link state
+ *
+ * Set the link state of a specified VF, regardless of physical link state
+ **/
+int ixgbe_ndo_set_vf_link_state(struct net_device *netdev, int vf, int state)
+{
+ struct ixgbe_adapter *adapter = netdev_priv(netdev);
+ int ret = 0;
+
+ if (vf < 0 || vf >= adapter->num_vfs) {
+ dev_err(&adapter->pdev->dev,
+ "NDO set VF link - invalid VF identifier %d\n", vf);
+ return -EINVAL;
+ }
+
+ switch (state) {
+ case IFLA_VF_LINK_STATE_ENABLE:
+ dev_info(&adapter->pdev->dev,
+ "NDO set VF %d link state %d - not supported\n",
+ vf, state);
+ break;
+ case IFLA_VF_LINK_STATE_DISABLE:
+ dev_info(&adapter->pdev->dev,
+ "NDO set VF %d link state disable\n", vf);
+ ixgbe_set_vf_link_state(adapter, vf, state);
+ break;
+ case IFLA_VF_LINK_STATE_AUTO:
+ dev_info(&adapter->pdev->dev,
+ "NDO set VF %d link state auto\n", vf);
+ ixgbe_set_vf_link_state(adapter, vf, state);
+ break;
+ default:
+ dev_err(&adapter->pdev->dev,
+ "NDO set VF %d - invalid link state %d\n", vf, state);
+ ret = -EINVAL;
+ }
+
+ return ret;
+}
+
int ixgbe_ndo_set_vf_rss_query_en(struct net_device *netdev, int vf,
bool setting)
{
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.h b/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.h
index 3ec21923c89c..0690ecb8dfa3 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.h
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.h
@@ -17,8 +17,8 @@ void ixgbe_restore_vf_multicasts(struct ixgbe_adapter *adapter);
#endif
void ixgbe_msg_task(struct ixgbe_adapter *adapter);
int ixgbe_vf_configuration(struct pci_dev *pdev, unsigned int event_mask);
-void ixgbe_disable_tx_rx(struct ixgbe_adapter *adapter);
void ixgbe_ping_all_vfs(struct ixgbe_adapter *adapter);
+void ixgbe_set_all_vfs(struct ixgbe_adapter *adapter);
int ixgbe_ndo_set_vf_mac(struct net_device *netdev, int queue, u8 *mac);
int ixgbe_ndo_set_vf_vlan(struct net_device *netdev, int queue, u16 vlan,
u8 qos, __be16 vlan_proto);
@@ -31,7 +31,9 @@ int ixgbe_ndo_set_vf_rss_query_en(struct net_device *netdev, int vf,
int ixgbe_ndo_set_vf_trust(struct net_device *netdev, int vf, bool setting);
int ixgbe_ndo_get_vf_config(struct net_device *netdev,
int vf, struct ifla_vf_info *ivi);
+int ixgbe_ndo_set_vf_link_state(struct net_device *netdev, int vf, int state);
void ixgbe_check_vf_rate_limit(struct ixgbe_adapter *adapter);
+void ixgbe_set_vf_link_state(struct ixgbe_adapter *adapter, int vf, int state);
int ixgbe_disable_sriov(struct ixgbe_adapter *adapter);
#ifdef CONFIG_PCI_IOV
void ixgbe_enable_sriov(struct ixgbe_adapter *adapter, unsigned int max_vfs);
--
2.20.1
1
12

[PATCH openEuler-5.10 01/42] can: usb_8dev: usb_8dev_start_xmit(): fix double dev_kfree_skb() in error path
by Zheng Zengkai 27 Apr '22
by Zheng Zengkai 27 Apr '22
27 Apr '22
From: Hangyu Hua <hbh25y(a)gmail.com>
stable inclusion
from stable-v5.10.110
commit 5318cdf4fd834856ce71238b064f35386f9ef528
category: bugfix
bugzilla: 186592 https://gitee.com/src-openeuler/kernel/issues/I51YBQ?from=project-issue
CVE: CVE-2022-28388
Reference: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id…
--------------------------------
commit 3d3925ff6433f98992685a9679613a2cc97f3ce2 upstream.
There is no need to call dev_kfree_skb() when usb_submit_urb() fails
because can_put_echo_skb() deletes original skb and
can_free_echo_skb() deletes the cloned skb.
Fixes: 0024d8ad1639 ("can: usb_8dev: Add support for USB2CAN interface from 8 devices")
Link: https://lore.kernel.org/all/20220311080614.45229-1-hbh25y@gmail.com
Cc: stable(a)vger.kernel.org
Signed-off-by: Hangyu Hua <hbh25y(a)gmail.com>
Signed-off-by: Marc Kleine-Budde <mkl(a)pengutronix.de>
Signed-off-by: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
Signed-off-by: Ziyang Xuan <william.xuanziyang(a)huawei.com>
Reviewed-by: Wei Yongjun <weiyongjun1(a)huawei.com>
Reviewed-by: Xiu Jianfeng <xiujianfeng(a)huawei.com>
Signed-off-by: Zheng Zengkai <zhengzengkai(a)huawei.com>
---
drivers/net/can/usb/usb_8dev.c | 30 ++++++++++++++----------------
1 file changed, 14 insertions(+), 16 deletions(-)
diff --git a/drivers/net/can/usb/usb_8dev.c b/drivers/net/can/usb/usb_8dev.c
index ca7c55d6a41d..985e00aee4ee 100644
--- a/drivers/net/can/usb/usb_8dev.c
+++ b/drivers/net/can/usb/usb_8dev.c
@@ -670,9 +670,20 @@ static netdev_tx_t usb_8dev_start_xmit(struct sk_buff *skb,
atomic_inc(&priv->active_tx_urbs);
err = usb_submit_urb(urb, GFP_ATOMIC);
- if (unlikely(err))
- goto failed;
- else if (atomic_read(&priv->active_tx_urbs) >= MAX_TX_URBS)
+ if (unlikely(err)) {
+ can_free_echo_skb(netdev, context->echo_index);
+
+ usb_unanchor_urb(urb);
+ usb_free_coherent(priv->udev, size, buf, urb->transfer_dma);
+
+ atomic_dec(&priv->active_tx_urbs);
+
+ if (err == -ENODEV)
+ netif_device_detach(netdev);
+ else
+ netdev_warn(netdev, "failed tx_urb %d\n", err);
+ stats->tx_dropped++;
+ } else if (atomic_read(&priv->active_tx_urbs) >= MAX_TX_URBS)
/* Slow down tx path */
netif_stop_queue(netdev);
@@ -691,19 +702,6 @@ static netdev_tx_t usb_8dev_start_xmit(struct sk_buff *skb,
return NETDEV_TX_BUSY;
-failed:
- can_free_echo_skb(netdev, context->echo_index);
-
- usb_unanchor_urb(urb);
- usb_free_coherent(priv->udev, size, buf, urb->transfer_dma);
-
- atomic_dec(&priv->active_tx_urbs);
-
- if (err == -ENODEV)
- netif_device_detach(netdev);
- else
- netdev_warn(netdev, "failed tx_urb %d\n", err);
-
nomembuf:
usb_free_urb(urb);
--
2.20.1
1
41
Backport 5.10.94 LTS patches from upstream.
Complicts:
Already merged(-11):
f2fs: fix to do sanity check in is_alive()
RDMA/hns: Validate the pkey index
iommu/iova: Fix race between FQ timeout and teardown By 1bfe3f8bbb24 iommu/iova: wait 'fq_timer' handler to finish before destroying 'fq'
scsi: block: pm: Always set request queue runtime active in blk_post_runtime_resume()
mwifiex: Fix skb_over_panic in mwifiex_usb_recv() By 7c24452ca6d mwifiex_usb: Fix skb_over_panic in mwifiex_usb_recv
audit: ensure userspace is penalized the same as the kernel when under pressure By 29d444b2cd53 audit: ensure userspace is penalized the same as the kernel when under pressure
jffs2: GC deadlock reading a page that is used in jffs2_write_begin()
ext4: Fix BUG_ON in ext4_bread when write quota data
ext4: fix null-ptr-deref in '__ext4_journal_ensure_credits'
RDMA/hns: Modify the mapping attribute of doorbell to device Use mainline mainline-v5.15-rc3 solution by 8d4553b61b1c RDMA/hns: Modify the mapping attribute of doorbell to device
block: Fix fsync always failed if once failed Use mainline mainline-v5.17 solution by 2ffb13b95b88 block: Fix fsync always failed if once failed
Context conflict:
mm_zone: add function to check if managed dma zone exists
sched/fair: Fix per-CPU kthread and wakee stacking for asym CPU capacity
x86/kbuild: Enable CONFIG_KALLSYMS_ALL=y in the defconfigs
PCI: pciehp: Use down_read/write_nested(reset_lock) to fix lockdep errors
Will be merged separately(-2):
arm64: lib: Annotate {clear, copy}_page() as position-independent
arm64: clear_page() shouldn't use DC ZVA when DCZID_EL0.DZP == 1
Implement changed(reverted old one and reapplied the LTS patch, +1):
sched/rt: Try to restart rt period timer when rt runtime exceeded
Modified(fix build error):
iommu/io-pgtable-arm: Fix table descriptor paddr formatting
Total patches: 560 - 11 - 2 + 1(the reverted patch) = 548
Adam Ford (1):
clk: imx8mn: Fix imx8mn_clko1_sels
Adrian Hunter (1):
perf script: Fix hex dump character output
Alex Deucher (1):
drm/amdgpu/display: set vblank_disable_immediate for DC
Alexander Aring (4):
fs: dlm: use sk->sk_socket instead of con->sock
fs: dlm: don't call kernel_getpeername() in error_report()
fs: dlm: fix build with CONFIG_IPV6 disabled
fs: dlm: filter user dlm messages for kernel locks
Alexander Gordeev (1):
s390/mm: fix 2KB pgtable release race
Alexander Stein (4):
arm64: dts: amlogic: meson-g12: Fix GPU operating point table node
name
arm64: dts: amlogic: Fix SPI NOR flash node name for ODROID N2/N2+
dt-bindings: display: meson-dw-hdmi: add missing sound-name-prefix
property
dt-bindings: display: meson-vpu: Add missing amlogic,canvas property
Alexei Starovoitov (1):
bpf: Adjust BTF log size limit.
Alexey Kardashevskiy (2):
KVM: PPC: Book3S: Suppress warnings when allocating too big memory
slots
KVM: PPC: Book3S: Suppress failed alloc warning in H_COPY_TOFROM_GUEST
Aline Santana Cordeiro (1):
media: staging: media: atomisp: pci: Balance braces around conditional
statements in file atomisp_cmd.c
Alistair Francis (1):
HID: quirks: Allow inverting the absolute X/Y values
Alistair Popple (1):
mm/hmm.c: allow VM_MIXEDMAP to work with hmm_range_fault
Alyssa Ross (1):
ASoC: fsl_mqs: fix MODULE_ALIAS
Amelie Delaunay (1):
dmaengine: stm32-mdma: fix STM32_MDMA_CTBR_TSEL_MASK
Ammar Faizi (2):
tools/nolibc: x86-64: Fix startup code bug
powerpc/xive: Add missing null check after calling kmalloc
Anders Roxell (2):
selftests: clone3: clone3: add case CLONE3_ARGS_NO_TEST
powerpc/cell: Fix clang -Wimplicit-fallthrough warning
Andre Przywara (1):
ARM: 9159/1: decompressor: Avoid UNPREDICTABLE NOP encoding
Andreas Oetken (1):
mtd: Fixed breaking list in __mtd_del_partition.
Andrey Konovalov (1):
lib/test_meminit: destroy cache in kmem_cache_alloc_bulk() test
Andrey Ryabinin (1):
cputime, cpuacct: Include guest time in user time in cpuacct.stat
Andrii Nakryiko (1):
selftests/bpf: Fix bpf_object leak in skb_ctx selftest
Anilkumar Kolli (1):
ath11k: Use host CE parameters for CE interrupts configuration
Antoine Tenart (1):
net-sysfs: update the queue counts in the unregistration path
Anton Vasilyev (1):
media: dw2102: Fix use after free
Antony Antony (3):
xfrm: interface with if_id 0 should return error
xfrm: state and policy should fail if XFRMA_IF_ID 0
xfrm: rate limit SA mapping change message to user space
Arnaud Pouliquen (1):
rpmsg: core: Clean up resources on announce_create failure.
Arnd Bergmann (1):
dmaengine: pxa/mmp: stop referencing config->slave_id
Arseny Demidov (1):
hwmon: (mr75203) fix wrong power-up delay value
Athira Rajeev (2):
powerpc/perf: MMCR0 control for PMU registers under PMCC=00
powerpc/perf: Fix PMU callbacks to clear pending PMI before resetting
an overflown PMC
Avihai Horon (2):
RDMA/core: Let ib_find_gid() continue search even after empty entry
RDMA/cma: Let cma_resolve_ib_dev() continue search even after empty
entry
Aya Levin (2):
net/mlx5e: Fix page DMA map/unmap attributes
Revert "net/mlx5e: Block offload of outer header csum for UDP tunnels"
Baochen Qiang (2):
ath11k: Fix crash caused by uninitialized TX ring
ath11k: Avoid false DEADLOCK warning reported by lockdep
Baoquan He (3):
mm_zone: add function to check if managed dma zone exists
dma/pool: create dma atomic pool only if dma zone has managed pages
mm/page_alloc.c: do not warn allocation failure on zone DMA if no
managed pages
Bart Van Assche (2):
scsi: ufs: Fix race conditions related to driver data
scsi: core: Show SCMD_LAST in text form
Baruch Siach (3):
arm64: dts: qcom: ipq6018: Fix gpio-ranges property
of: base: Fix phandle argument length mismatch error message
of: base: Improve argument length mismatch error
Ben Greear (1):
ath11k: Fix napi related hang
Ben Hutchings (1):
firmware: Update Kconfig help text for Google firmware
Ben Skeggs (1):
drm/nouveau/pmu/gm200-: avoid touching PMU outside of
DEVINIT/PREOS/ACR
Benjamin Li (3):
wcn36xx: ensure pairing of init_scan/finish_scan and
start_scan/end_scan
wcn36xx: populate band before determining rate on RX
wcn36xx: fix RX BD rate mapping for 5GHz legacy rates
Bernard Zhao (1):
selinux: fix potential memleak in selinux_add_opt()
Bhaskar Chowdhury (1):
crypto: qat - fix spelling mistake: "messge" -> "message"
Biju Das (1):
arm64: dts: renesas: cat875: Add rx/tx delays
Biwen Li (1):
arm64: dts: ls1028a-qds: move rtc node to the correct i2c bus
Bixuan Cui (1):
ALSA: oss: fix compile error when OSS_DEBUG is enabled
Borislav Petkov (4):
x86/mce: Allow instrumentation during task work queueing
x86/mce: Mark mce_panic() noinstr
x86/mce: Mark mce_end() noinstr
x86/mce: Mark mce_read_aux() noinstr
Brian Norris (8):
drm/panel: kingdisplay-kd097d04: Delete panel on attach() failure
drm/panel: innolux-p079zca: Delete panel on attach() failure
drm/rockchip: dsi: Fix unbalanced clock on probe error
drm/rockchip: dsi: Hold pm-runtime across bind/unbind
drm/rockchip: dsi: Disable PLL clock on bind error
drm/rockchip: dsi: Reconfigure hardware on resume()
mwifiex: Fix possible ABBA deadlock
drm/bridge: analogix_dp: Make PSR-exit block less
Bryan O'Donoghue (5):
wcn36xx: Indicate beacon not connection loss on MISSED_BEACON_IND
wcn36xx: Fix DMA channel enable/disable cycle
wcn36xx: Release DMA channel descriptor allocations
wcn36xx: Put DXE block into reset before freeing memory
media: venus: core, venc, vdec: Fix probe dependency error
Cezary Rojewski (1):
ASoC: Intel: catpt: Test dmaengine_submit() result before moving on
Changcheng Deng (1):
PM: AVS: qcom-cpr: Use div64_ul instead of do_div
Chao Yu (1):
f2fs: fix to reserve space for IO align feature
Chen Jun (1):
tpm: add request_locality before write TPM_INT_ENABLE
Chengfeng Ye (3):
crypto: qce - fix uaf on qce_ahash_register_one
crypto: qce - fix uaf on qce_skcipher_register_one
HSI: core: Fix return freed object in hsi_new_client
Chengguang Xu (1):
RDMA/rxe: Fix a typo in opcode name
Christian Eggers (1):
mtd: rawnand: gpmi: Add ERR007117 protection for nfc_apply_timings
Christian Hewitt (2):
arm64: dts: meson-gxbb-wetek: fix HDMI in early boot
arm64: dts: meson-gxbb-wetek: fix missing GPIO binding
Christian König (1):
drm/radeon: fix error handling in radeon_driver_open_kms
Christian Lamparter (1):
ARM: dts: gemini: NAS4220-B: fis-index-block with 128 KiB sectors
Christoph Hellwig (2):
dm: fix alloc_dax error handling in alloc_dev
scsi: sr: Don't use GFP_DMA
Christophe JAILLET (3):
media: venus: core: Fix a potential NULL pointer dereference in an
error handling path
media: venus: core: Fix a resource leak in the error handling path of
'venus_probe()'
RDMA/bnxt_re: Scan the whole bitmap when checking if "disabling RCFW
with pending cmd-bit"
Christophe Jaillet (1):
tpm_tis: Fix an error handling path in 'tpm_tis_core_init()'
Christophe Leroy (7):
lkdtm: Fix content of section containing lkdtm_rodata_do_nothing()
powerpc/irq: Add helper to set regs->softe
powerpc/32s: Fix shift-out-of-bounds in KASAN init
powerpc/powermac: Add additional missing lockdep_register_key()
powerpc/powermac: Add missing lockdep_register_key()
w1: Misuse of get_user()/put_user() reported by sparse
powerpc/40x: Map 32Mbytes of memory at startup
Chunguang Xu (1):
ext4: fix a possible ABBA deadlock due to busy PA
Claudiu Beznea (2):
mfd: atmel-flexcom: Remove #ifdef CONFIG_PM_SLEEP
mfd: atmel-flexcom: Use .resume_noirq
Clément Léger (1):
software node: fix wrong node passed to find nargs_prop
Conor Dooley (1):
clk: bm1880: remove kfrees on static allocations
Dafna Hirschfeld (1):
media: mtk-vcodec: call v4l2_m2m_ctx_release first when file is
released
Dan Carpenter (7):
drm/bridge: display-connector: fix an uninitialized pointer in probe()
media: atomisp: fix uninitialized bug in gmin_get_pmic_id_and_addr()
drm/vboxvideo: fix a NULL vs IS_ERR() check
rocker: fix a sleeping in atomic bug
Bluetooth: L2CAP: uninitialized variables in l2cap_sock_setsockopt()
ax25: uninitialized variable in ax25_setsockopt()
netrom: fix api breakage in nr_setsockopt()
Daniel Borkmann (1):
bpf: Don't promote bogus looking registers after null check.
Daniel Thompson (1):
Documentation: dmaengine: Correctly describe dmatest with channel
unset
Danielle Ratson (2):
mlxsw: pci: Add shutdown method in PCI driver
mlxsw: pci: Avoid flow control for EMAD packets
David Heidelberg (1):
arm64: dts: qcom: msm8996: drop not documented adreno properties
Dillon Min (3):
media: videobuf2: Fix the size printk format
ARM: dts: stm32: fix dtbs_check warning on ili9341 dts binding on
stm32f429 disco
clk: stm32: Fix ltdc's clock turn off by clk_disable_unused() after
system enter shell
Dinh Nguyen (1):
EDAC/synopsys: Use the quirk for version instead of ddr version
Dmitry Baryshkov (2):
arm64: dts: qcom: msm8916: fix MMC controller aliases
drm/msm/dpu: fix safe status debugfs file
Dmitry Osipenko (1):
gpu: host1x: Add back arm_iommu_detach_device()
Dmitry Torokhov (1):
HID: vivaldi: fix handling devices not using numbered reports
Dominik Brodowski (1):
pcmcia: fix setting of kthread task states
Dongliang Mu (1):
media: em28xx: fix memory leak in em28xx_init_dev
Doyle, Patrick (1):
mtd: nand: bbt: Fix corner case in bad block table handling
Eli Cohen (1):
vdpa/mlx5: Fix wrong configuration of virtio_version_1_0
Eric Dumazet (7):
xfrm: fix a small bug in xfrm_sa_len()
ppp: ensure minimum packet size in ppp_write()
ipv4: update fib_info_cnt under spinlock protection
ipv4: avoid quadratic behavior in netns dismantle
af_unix: annote lockless accesses to unix_tot_inflight &
gc_in_progress
inet: frags: annotate races around fqdir->dead and fqdir->high_thresh
netns: add schedule point in ops_exit_list()
Eric W. Biederman (1):
taskstats: Cleanup the use of task->exit_code
Fabio Estevam (3):
media: imx-pxp: Initialize the spinlock prior to using it
regmap: Call regmap_debugfs_exit() prior to _init()
ath10k: Fix the MTU size on QCA9377 SDIO
Fabrice Gasnier (1):
counter: stm32-lptimer-cnt: remove iio counter abi
Filipe Manana (2):
btrfs: fix deadlock between quota enable and other quota operations
btrfs: respect the max size in the header when activating swap file
Florian Fainelli (1):
net: mdio: Demote probed message to debug print
Florian Westphal (2):
netfilter: bridge: add support for pppoe filtering
netfilter: nft_set_pipapo: allocate pcpu scratch maps on clone
Frank Rowand (1):
of: unittest: 64 bit dma address test requires arch support
Frederic Weisbecker (1):
rcu/exp: Mark current CPU as exp-QS in IPI loop second pass
Fugang Duan (1):
tty: serial: imx: disable UCR4_OREN in .stop_rx() instead of
.shutdown()
Gang Li (1):
shmem: fix a race between shmem_unused_huge_shrink and
shmem_evict_inode
George G. Davis (1):
mtd: hyperbus: rpc-if: fix bug in rpcif_hb_remove
German Gomez (1):
perf evsel: Override attr->sample_period for non-libpfm4 events
Ghalem Boudour (1):
xfrm: fix policy lookup for ipv6 gre packets
Giovanni Cabiddu (1):
crypto: qat - fix undetected PFVF timeout in ACK loop
Guillaume Nault (3):
xfrm: Don't accidentally set RTO_ONLINK in decode_session4()
gre: Don't accidentally set RTO_ONLINK in gre_fill_metadata_dst()
libcxgb: Don't accidentally set RTO_ONLINK in cxgb_find_route()
Hans Verkuil (2):
media: v4l2-ioctl.c: readbuffers depends on V4L2_CAP_READWRITE
media: cec-pin: fix interrupt en/disable handling
Hans de Goede (9):
ACPI: scan: Create platform device for BCM4752 and LNV4752 ACPI nodes
media: atomisp-ov2680: Fix ov2680_set_fmt() clobbering the exposure
drm: panel-orientation-quirks: Add quirk for the Lenovo Yoga Book
X91F/L
gpiolib: acpi: Do not set the IRQ type if the IRQ is already in use
ACPI / x86: Drop PWM2 device on Lenovo Yoga Book from always present
table
ACPI: Change acpi_device_always_present() into
acpi_device_override_status()
ACPI / x86: Allow specifying acpi_device_override_status() quirks by
path
ACPI / x86: Add not-present quirk for the PCI0.SDHB.BRC1 device on the
GPD win
PCI: pciehp: Use down_read/write_nested(reset_lock) to fix lockdep
errors
Hari Bathini (2):
powerpc: handle kdump appropriately with crash_kexec_post_notifiers
option
powerpc/fadump: Fix inaccurate CPU state info in vmcore generated with
panic
Harshad Shirwadkar (1):
ext4: initialize err_blk before calling __ext4_get_inode_loc
Hector Martin (1):
iommu/io-pgtable-arm: Fix table descriptor paddr formatting
Heiko Carstens (1):
selftests/ftrace: make kprobe profile testcase description unique
Heiner Kallweit (2):
i2c: i801: Don't silently correct invalid transfer size
crypto: omap-aes - Fix broken pm_runtime_and_get() usage
Herbert Xu (2):
crypto: stm32 - Fix last sparse warning in
stm32_cryp_check_ctr_counter
crypto: stm32 - Revert broken pm_runtime_resume_and_get changes
Hou Tao (1):
bpf: Disallow BPF_LOG_KERNEL log level for bpf(BPF_BTF_LOAD)
Hyeong-Jun Kim (1):
f2fs: compress: fix potential deadlock of compress file
Igor Pylypiv (1):
scsi: pm80xx: Update WARN_ON check in pm8001_mpi_build_cmd()
Ilan Peer (2):
iwlwifi: mvm: Fix calculation of frame length
iwlwifi: mvm: Increase the scan timeout guard to 30 seconds
Ilia Mirkin (1):
drm/nouveau/kms/nv04: use vzalloc for nv04_display
Ingo Molnar (1):
x86/kbuild: Enable CONFIG_KALLSYMS_ALL=y in the defconfigs
Iwona Winiarska (1):
gpio: aspeed: Convert aspeed_gpio.lock to raw_spinlock
Jackie Liu (1):
drm/msm/dp: displayPort driver need algorithm rational
Jakub Kicinski (1):
selftests: harness: avoid false negatives if test has no ASSERTs
James Hilliard (1):
media: uvcvideo: Increase UVC_CTRL_CONTROL_TIMEOUT to 5 seconds.
James Smart (1):
scsi: lpfc: Trigger SLI4 firmware dump before doing driver cleanup
Jammy Huang (2):
media: aspeed: fix mode-detect always time out at 2nd run
media: aspeed: Update signal status immediately to ensure sane hw
state
Jan Kara (4):
ext4: avoid trim error on fs with small groups
udf: Fix error handling in udf_new_inode()
ext4: make sure to reset inode lockdep class when quota enabling fails
ext4: make sure quota gets properly shutdown on error
Jan Kiszka (1):
soc: ti: pruss: fix referenced node in error message
Jann Horn (1):
HID: uhid: Fix worker destroying device without any protection
Jason A. Donenfeld (1):
random: do not throw away excess input to crng_fast_load
Jason Gerecke (3):
HID: wacom: Reset expected and received contact counts at the same
time
HID: wacom: Ignore the confidence flag when a touch is removed
HID: wacom: Avoid using stale array indicies to read contact count
Jens Wiklander (1):
tee: fix put order in teedev_close_context()
Jernej Skrabec (1):
media: hantro: Fix probe func error path
Jiasheng Jiang (9):
media: coda/imx-vdoa: Handle dma_set_coherent_mask error codes
power: reset: mt6397: Check for null res pointer
staging: greybus: audio: Check null pointer
fsl/fman: Check for null pointer after calling devm_ioremap
Bluetooth: hci_bcm: Check for error irq
can: xilinx_can: xcan_probe(): check for error irq
ASoC: rt5663: Handle device_property_read_u32_array error codes
ASoC: mediatek: Check for error clk pointer
ASoC: samsung: idma: Check of ioremap return value
Jie Wang (1):
net: bonding: fix bond_xmit_broadcast return value error bug
Jim Quinlan (1):
of: unittest: fix warning on PowerPC frame size warning
Joakim Tjernlund (1):
i2c: mpc: Correct I2C reset procedure
Joe Thornber (2):
dm btree: add a defensive bounds check to insert_at()
dm space map common: add bounds check to sm_ll_lookup_bitmap()
Joerg Roedel (1):
x86/mm: Flush global TLB when switching to trampoline page-table
Johan Hovold (9):
media: flexcop-usb: fix control-message timeouts
media: mceusb: fix control-message timeouts
media: em28xx: fix control-message timeouts
media: cpia2: fix control-message timeouts
media: s2255: fix control-message timeouts
media: redrat3: fix control-message timeouts
media: pvrusb2: fix control-message timeouts
media: stk1160: fix control-message timeouts
can: softing_cs: softingcs_probe(): fix memleak on registration
failure
Johannes Berg (6):
iwlwifi: mvm: fix 32-bit build in FTM
um: fix ndelay/udelay defines
um: virtio_uml: Fix time-travel external time propagation
iwlwifi: mvm: synchronize with FW after multicast commands
iwlwifi: fix leaks/bad data after failed firmware load
iwlwifi: remove module loading failure message
John David Anglin (2):
parisc: Avoid calling faulthandler_disabled() twice
parisc: Fix lpa and lpa_user defines
Jonathan Cameron (1):
iio: adc: ti-adc081c: Partial revert of removal of ACPI IDs
Jordan Niethe (1):
powerpc/64s: Convert some cpu_setup() and cpu_restore() functions to C
Josef Bacik (3):
btrfs: remove BUG_ON() in find_parent_nodes()
btrfs: remove BUG_ON(!eie) in find_parent_nodes
btrfs: check the root node for uptodate before returning it
José Expósito (5):
HID: hid-uclogic-params: Invalid parameter check in
uclogic_params_init
HID: hid-uclogic-params: Invalid parameter check in
uclogic_params_get_str_desc
HID: hid-uclogic-params: Invalid parameter check in
uclogic_params_huion_init
HID: hid-uclogic-params: Invalid parameter check in
uclogic_params_frame_init_v1_buttonpad
HID: apple: Do not reset quirks when the Fn key is not found
Julia Lawall (4):
powerpc/6xx: add missing of_node_put
powerpc/powernv: add missing of_node_put
powerpc/cell: add missing of_node_put
powerpc/btext: add missing of_node_put
Kai-Heng Feng (1):
usb: hub: Add delay for SuperSpeed hub resume to let links transit to
U0
Kajol Jain (1):
bpf: Remove config check to enable bpf support for branch records
Kamal Heib (2):
RDMA/qedr: Fix reporting max_{send/recv}_wr attrs
RDMA/cxgb4: Set queue pair state when being queried
Karthikeyan Kathirvel (2):
ath11k: clear the keys properly via DISABLE_KEY
ath11k: reset RSN/WPA present state for open BSS
Kees Cook (2):
x86/uaccess: Move variable into switch case statement
char/mwave: Adjust io port register size
Kevin Bracey (1):
net_sched: restore "mpu xxx" handling
Kirill A. Shutemov (1):
ACPICA: Hardware: Do not flush CPU cache when entering S4 and S5
Kishon Vijay Abraham I (1):
arm64: dts: ti: j7200-main: Fix 'dtbs_check' serdes_ln_ctrl node
Konrad Dybcio (1):
regulator: qcom_smd: Align probe function with rpmh-regulator
Krzysztof Kozlowski (1):
nfc: llcp: fix NULL error pointer dereference on sendmsg() after
failed bind()
Kunihiko Hayashi (2):
spi: uniphier: Fix a bug that doesn't point to private data correctly
dmaengine: uniphier-xdmac: Fix type of address variables
Kuniyuki Iwashima (1):
bpf: Fix SO_RCVBUF/SO_SNDBUF handling in _bpf_setsockopt().
Lad Prabhakar (2):
mtd: hyperbus: rpc-if: Check return value of rpcif_sw_init()
memory: renesas-rpc-if: Return error in case devm_ioremap_resource()
fails
Lakshmi Sowjanya D (1):
i2c: designware-pci: Fix to change data types of hcnt and lcnt
parameters
Laurence de Bruxelles (1):
rtc: pxa: fix null pointer dereference
Laurent Pinchart (1):
drm: rcar-du: Fix CRTC timings when CMM is used
Leon Romanovsky (1):
devlink: Remove misleading internal_flags from health reporter dump
Li Hua (1):
sched/rt: Try to restart rt period timer when rt runtime exceeded
Lino Sanfilippo (1):
serial: amba-pl011: do not request memory region twice
Linus Lüssing (1):
batman-adv: allow netlink usage in unprivileged containers
Lizhi Hou (1):
tty: serial: uartlite: allow 64 bit address
Luca Coelho (1):
iwlwifi: pcie: make sure prph_info is set when treating wakeup IRQ
Lucas De Marchi (1):
x86/gpu: Reserve stolen memory for first integrated Intel GPU
Lucas Stach (2):
drm/etnaviv: consider completed fence seqno in hang check
drm/etnaviv: limit submit sizes
Luiz Augusto von Dentz (4):
Bluetooth: L2CAP: Fix not initializing sk_peer_pid
Bluetooth: L2CAP: Fix using wrong mode
Bluetooth: vhci: Set HCI_QUIRK_VALID_LE_STATES
Bluetooth: hci_sync: Fix not setting adv set duration
Lukas Bulwahn (5):
ASoC: uniphier: drop selecting non-existing SND_SOC_UNIPHIER_AIO_DMA
mips: add SYS_HAS_CPU_MIPS64_R5 config for MIPS Release 5 support
mips: fix Kconfig reference to PHYS_ADDR_T_64BIT
ARM: imx: rename DEBUG_IMX21_IMX27_UART to DEBUG_IMX27_UART
Documentation: refer to config RANDOMIZE_BASE for kernel address-space
randomization
Lukas Wunner (3):
serial: pl010: Drop CR register reset on set_termios
serial: core: Keep mctrl register state and cached copy in sync
serial: Fix incorrect rs485 polarity on uart open
Luís Henriques (1):
ext4: set csum seed in tmp inode while migrating to extents
Lv Yunlong (1):
wireless: iwlwifi: Fix a double free in iwl_txq_dyn_alloc_dma
Mansur Alisha Shaik (1):
media: venus: avoid calling core_clk_setrate() concurrently during
concurrent video sessions
Maor Dickman (1):
net/mlx5e: Don't block routes with nexthop objects in SW
Marc Kleine-Budde (3):
can: mcp251xfd: add missing newline to printed strings
can: softing: softing_startstop(): fix set but not used variable
warning
can: mcp251xfd: mcp251xfd_tef_obj_read(): fix typo in error message
Marc Zyngier (1):
irqchip/gic-v4: Disable redistributors' view of the VPE table at boot
time
Marcelo Tosatti (1):
KVM: VMX: switch blocked_vcpu_on_cpu_lock to raw spinlock
Marco Chiappero (2):
crypto: qat - remove unnecessary collision prevention step in PFVF
crypto: qat - make pfvf send message direction agnostic
Marek Behún (1):
ARM: dts: armada-38x: Add generic compatible to UART nodes
Marek Vasut (1):
crypto: stm32/crc32 - Fix kernel BUG triggered in probe()
Marijn Suijten (6):
backlight: qcom-wled: Validate enabled string indices in DT
backlight: qcom-wled: Pass number of elements to read to
read_u32_array
backlight: qcom-wled: Fix off-by-one maximum with default num_strings
backlight: qcom-wled: Override default length with
qcom,enabled-strings
backlight: qcom-wled: Use cpu_to_le16 macro to perform conversion
backlight: qcom-wled: Respect enabled-strings in set_brightness
Marina Nikolic (1):
amdgpu/pm: Make sysfs pm attributes as read-only for VFs
Mark Langsdorf (1):
ACPICA: actypes.h: Expand the ACPI_ACCESS_ definitions
Martin Blumenstingl (1):
clk: meson: gxbb: Fix the SDM_EN bit for MPLL0 on GXBB
Martyn Welch (1):
drm/bridge: megachips: Ensure both bridges are probed before
registration
Mateusz Jończyk (1):
rtc: cmos: take rtc_lock while reading from CMOS
Matthias Schiffer (1):
scripts/dtc: dtx_diff: remove broken example from help text
Mauro Carvalho Chehab (7):
media: atomisp: fix enum formats logic
media: atomisp: fix try_fmt logic
media: atomisp: set per-device's default mode
media: atomisp: handle errors at sh_css_create_isp_params()
media: m920x: don't use stack on USB reads
scripts: sphinx-pre-install: add required ctex dependency
scripts: sphinx-pre-install: Fix ctex support on Debian
Maxim Levitsky (1):
iommu/amd: Restore GA log/tail pointer on host resume
Maxime Ripard (4):
clk: bcm-2835: Pick the closest clock rate
clk: bcm-2835: Remove rounding up the dividers
drm/vc4: hdmi: Set a default HSM rate
drm/vc4: hdmi: Make sure the device is powered with CEC
Meng Li (1):
crypto: caam - replace this_cpu_ptr with raw_cpu_ptr
Miaoqian Lin (6):
Bluetooth: hci_qca: Fix NULL vs IS_ERR_OR_NULL check in
qca_serdev_probe
usb: dwc3: qcom: Fix NULL vs IS_ERR checking in dwc3_qcom_probe
spi: spi-meson-spifc: Add missing pm_runtime_disable() in
meson_spifc_probe
phy: mediatek: Fix missing check in mtk_mipi_tx_probe
parisc: pdc_stable: Fix memory leak in pdcs_register_pathentries
lib82596: Fix IRQ check in sni_82596_probe
Michael Ellerman (1):
powerpc/smp: Move setup_profiling_timer() under CONFIG_PROFILING
Michael Kuron (1):
media: dib0700: fix undefined behavior in tuner shutdown
Michael S. Tsirkin (1):
virtio_ring: mark ring unused on error
Michal Suchanek (1):
debugfs: lockdown: Allow reading debugfs files that are not world
readable
Mika Westerberg (1):
thunderbolt: Runtime PM activate both ends of the device link
Moshe Shemesh (2):
net/mlx5: Set command entry semaphore up once got index free
Revert "net/mlx5: Add retry mechanism to the command entry index
allocation"
Nathan Chancellor (3):
x86/boot/compressed: Move CLANG_FLAGS to beginning of KBUILD_CFLAGS
iwlwifi: mvm: Use div_s64 instead of do_div in
iwl_mvm_ftm_rtt_smoothing()
MIPS: Loongson64: Use three arguments for slti
Nathan Errera (1):
iwlwifi: mvm: test roc running status bits before removing the sta
Neal Liu (1):
usb: uhci: add aspeed ast2600 uhci support
Neil Armstrong (1):
drm/bridge: dw-hdmi: handle ELD when DRM_BRIDGE_ATTACH_NO_CONNECTOR
Nicholas Piggin (3):
powerpc/perf: move perf irq/nmi handling details into traps.c
powerpc/watchdog: Fix missed watchdog reset due to memory ordering
race
powerpc/64s/radix: Fix huge vmap false positive
Nicolas Toromanoff (6):
crypto: stm32/cryp - fix CTR counter carry
crypto: stm32/cryp - fix xts and race condition in crypto_engine
requests
crypto: stm32/cryp - check early input data
crypto: stm32/cryp - fix double pm exit
crypto: stm32/cryp - fix lrw chaining mode
crypto: stm32/cryp - fix bugs and crash in tests
Niklas Söderlund (2):
dt-bindings: thermal: Fix definition of cooling-maps contribution
property
media: rcar-vin: Update format alignment constraints
Nishanth Menon (3):
arm64: dts: ti: k3-j7200: Fix the L2 cache sets
arm64: dts: ti: k3-j721e: Fix the L2 cache sets
arm64: dts: ti: k3-j7200: Correct the d-cache-sets info
Oleksandr Andrushchenko (1):
xen/gntdev: fix unmap notification order
Oleksij Rempel (1):
thermal/drivers/imx: Implement runtime PM support
Pali Rohár (5):
PCI: pci-bridge-emul: Make expansion ROM Base Address register
read-only
PCI: pci-bridge-emul: Properly mark reserved PCIe bits in PCI config
space
PCI: pci-bridge-emul: Fix definitions of reserved bits
PCI: pci-bridge-emul: Correctly set PCIe capabilities
PCI: pci-bridge-emul: Set PCI_STATUS_CAP_LIST for PCIe device
Panicker Harish (1):
Bluetooth: hci_qca: Stop IBS timer during BT OFF
Paolo Abeni (1):
bpf: Do not WARN in bpf_warn_invalid_xdp_action()
Patrick Williams (1):
tpm: fix NPE on probe for missing device
Paul Cercueil (3):
mtd: rawnand: davinci: Don't calculate ECC when reading page
mtd: rawnand: davinci: Avoid duplicated page read
mtd: rawnand: davinci: Rewrite function description
Paul Chaignon (1):
bpftool: Enable line buffering for stdout
Paul E. McKenney (1):
clocksource: Reduce clocksource-skew threshold
Paul Gerber (1):
thermal/drivers/imx8mm: Enable ADC when enabling monitor
Pavankumar Kondeti (1):
usb: gadget: f_fs: Use stream_open() for endpoint files
Pavel Skripkin (2):
Bluetooth: stop proccessing malicious adv data
net: mcs7830: handle usb read errors properly
Peiwei Hu (1):
powerpc/prom_init: Fix improper check of prom_getprop()
Peng Fan (1):
arm64: dts: ti: k3-j721e: correct cache-sets info
Petr Cvachoucek (1):
ubifs: Error path in ubifs_remount_rw() seems to wrongly free write
buffers
Philipp Zabel (1):
media: coda: fix CODA960 JPEG encoder buffer overflow
Ping-Ke Shih (1):
mac80211: allow non-standard VHT MCS-10/11
Po-Hao Huang (1):
rtw88: 8822c: update rx settings to prevent potential hw deadlock
Qiang Yu (1):
drm/lima: fix warning when CONFIG_DEBUG_SG=y & CONFIG_DMA_API_DEBUG=y
Quentin Monnet (1):
bpftool: Remove inclusion of utilities.mak from Makefiles
Rafael J. Wysocki (5):
ACPI: EC: Rework flushing of EC work while suspended to idle
PM: runtime: Add safety net to supplier device release
cpufreq: Fix initialization of min and max frequency QoS requests
ACPICA: Utilities: Avoid deleting the same object twice in a row
ACPICA: Executer: Fix the REFCLASS_REFOF case in
acpi_ex_opcode_1A_0T_1R()
Rameshkumar Sundaram (2):
ath11k: Send PPDU_STATS_CFG with proper pdev mask to firmware
ath11k: Fix deleting uninitialized kernel timer during fragment cache
flush
Randy Dunlap (5):
mips: lantiq: add support for clk_set_parent()
mips: bcm63xx: add support for clk_set_parent()
um: registers: Rename function names to avoid conflicts and build
problems
media: correct MEDIA_TEST_SUPPORT help text
Documentation: fix firewire.rst ABI file path error
Rob Herring (1):
PCI: xgene: Fix IB window setup
Robert Hancock (10):
clk: si5341: Fix clock HW provider cleanup
net: axienet: increase reset timeout
net: axienet: Wait for PhyRstCmplt after core reset
net: axienet: reset core on initialization prior to MDIO access
net: axienet: add missing memory barriers
net: axienet: limit minimum TX ring size
net: axienet: Fix TX ring slot available check
net: axienet: fix number of TX ring slots for available check
net: axienet: fix for TX busy handling
net: axienet: increase default TX ring size to 128
Robert Marko (2):
arm64: dts: marvell: cn9130: add GPIO and SPI aliases
arm64: dts: marvell: cn9130: enable CP0 GPIO controllers
Robert Schlabbach (1):
media: si2157: Fix "warm" tuner state detection
Robin Murphy (1):
drm/tegra: vic: Fix DMA API misuse
Russell King (Oracle) (4):
net: phy: prefer 1000baseT over 1000baseKX
net: phy: marvell: configure RGMII delays for 88E1118
net: gemini: allow any RGMII interface mode
net: sfp: fix high power modules without diagnostic monitoring
Ryuta NAKANISHI (1):
phy: uniphier-usb3ss: fix unintended writing zeros to PHY register
Sakari Ailus (2):
device property: Fix fwnode_graph_devcon_match() fwnode leak
Documentation: ACPI: Fix data node reference documentation
Sam Protsenko (1):
dt-bindings: watchdog: Require samsung,syscon-phandle for Exynos7
Sameer Pujar (2):
arm64: tegra: Fix Tegra194 HDA {clock,reset}-names ordering
arm64: tegra: Remove non existent Tegra194 reset
Sean Wang (1):
Bluetooth: btmtksdio: fix resume failure
Sean Young (1):
media: igorplugusb: receiver overflow should be reported
Sebastian Andrzej Siewior (1):
ext4: destroy ext4_fc_dentry_cachep kmemcache on module removal
Sebastian Gottschall (1):
ath10k: Fix tx hanging
Sergey Shtylyov (3):
mmc: meson-mx-sdhc: add IRQ check
mmc: meson-mx-sdio: add IRQ check
bcmgenet: add WOL IRQ check
Shaul Triebitz (1):
iwlwifi: mvm: avoid clearing a just saved session protection id
Shengjiu Wang (1):
ASoC: fsl_asrc: refine the check of available clock divider
Sicelo A. Mhlongo (1):
ARM: dts: omap3-n900: Fix lp5523 for multi color
Srinivas Kandagatla (2):
arm64: dts: qcom: c630: Fix soundcard setup
nvmem: core: set size for sysfs bin file
Sriram R (1):
ath11k: Avoid NULL ptr access during mgmt tx cleanup
Stafford Horne (1):
openrisc: Add clone3 ABI wrapper
Stanimir Varbanov (1):
media: venus: pm_helpers: Control core power domain manually
Stefan Riedmueller (1):
mtd: rawnand: gpmi: Remove explicit default gpmi clock setting for
i.MX6
Stephan Müller (1):
crypto: jitter - consider 32 LSB for APT
Stephen Boyd (2):
drm/bridge: ti-sn65dsi86: Set max register for regmap
clk: Emit a stern warning with writable debugfs enabled
Sudeep Holla (1):
ACPICA: Fix wrong interpretation of PCC address
Suravee Suthikulpanit (1):
iommu/amd: Remove iommu_init_ga()
Suresh Kumar (1):
net: bonding: debug: avoid printing debug logs when bond is not
notifying peers
Suresh Udipi (2):
media: rcar-csi2: Correct the selection of hsfreqrange
media: rcar-csi2: Optimize the selection PHTW register
Sven Eckelmann (1):
ath11k: Fix ETSI regd with weather radar overlap
Takashi Iwai (5):
ALSA: jack: Add missing rwsem around snd_ctl_remove() calls
ALSA: PCM: Add missing rwsem around snd_ctl_remove() calls
ALSA: hda: Add missing rwsem around snd_ctl_remove() calls
ALSA: usb-audio: Drop superfluous '0' in Presonus Studio 1810c's ID
ALSA: seq: Set upper limit of processed events
Tasos Sahanidis (1):
floppy: Fix hang in watchdog when disk is ejected
Thadeu Lima de Souza Cascardo (1):
selftests/powerpc/spectre_v2: Return skip code when miss_percent is
high
Theodore Ts'o (1):
ext4: don't use the orphan list when migrating an inode
Thierry Reding (1):
arm64: tegra: Adjust length of CCPLEX cluster MMIO region
Thomas Gleixner (1):
PCI/MSI: Fix pci_irq_vector()/pci_irq_get_affinity()
Thomas Hellström (1):
dma_fence_array: Fix PENDING_ERROR leak in dma_fence_array_signaled()
Thomas Weißschuh (1):
ACPI: battery: Add the ThinkPad "Not Charging" quirk
Tianjia Zhang (1):
MIPS: Octeon: Fix build errors using clang
Tobias Waldekranz (3):
powerpc/fsl/dts: Enable WA for erratum A-009885 on fman3l MDIO buses
net/fsl: xgmac_mdio: Add workaround for erratum A-009885
net/fsl: xgmac_mdio: Fix incorrect iounmap when removing module
Todd Kjos (1):
binder: fix handling of error during copy
Toke Høiland-Jørgensen (1):
xdp: check prog type before updating BPF link
Tom Rix (2):
net: ethernet: mtk_eth_soc: fix error checking in mtk_mac_config()
net: mscc: ocelot: fix using match before it is set
Tsuchiya Yuto (7):
media: atomisp: add missing media_device_cleanup() in
atomisp_unregister_entities()
media: atomisp: fix punit_ddr_dvfs_enable() argument for mrfld_power
up case
media: atomisp: fix inverted logic in buffers_needed()
media: atomisp: do not use err var when checking port validity for
ISP2400
media: atomisp: fix inverted error check for
ia_css_mipi_is_source_port_valid()
media: atomisp: fix ifdefs in sh_css.c
media: atomisp: add NULL check for asd obtained from
atomisp_video_pipe
Tudor Ambarus (8):
tty: serial: atmel: Check return code of dmaengine_submit()
tty: serial: atmel: Call dma_async_issue_pending()
dmaengine: at_xdmac: Don't start transactions at tx_submit level
dmaengine: at_xdmac: Start transfer for cyclic channels in
issue_pending
dmaengine: at_xdmac: Print debug message after realeasing the lock
dmaengine: at_xdmac: Fix concurrency over xfers_list
dmaengine: at_xdmac: Fix lld view setting
dmaengine: at_xdmac: Fix at_xdmac_lld struct definition
Tzung-Bi Shih (2):
ASoC: mediatek: mt8173: fix device_node leak
ASoC: mediatek: mt8183: fix device_node leak
Ulf Hansson (1):
mmc: core: Fixup storing of OCR for MMC_QUIRK_NONSTD_SDIO
Vincent Donnefort (2):
sched/fair: Fix detection of per-CPU kthreads waking a task
sched/fair: Fix per-CPU kthread and wakee stacking for asym CPU
capacity
Waiman Long (1):
clocksource: Avoid accidental unstable marking of clocksources
Wan Jiabing (1):
ARM: shmobile: rcar-gen2: Add missing of_node_put()
Wang Hai (4):
drm: fix null-ptr-deref in drm_dev_init_release()
Bluetooth: cmtp: fix possible panic when cmtp_init_sockets() fails
media: dmxdev: fix UAF when dvb_register_device() fails
media: msi001: fix possible null-ptr-deref in msi001_probe()
Wei Yongjun (3):
usb: ftdi-elan: fix memory leak on device disconnect
misc: lattice-ecp3-config: Fix task hung when firmware load failed
Bluetooth: Fix debugfs entry leak in hci_register_dev()
Wen Gong (1):
ath11k: avoid deadlock by change ieee80211_queue_work for
regd_update_work
Wen Gu (1):
net/smc: Fix hung_task when removing SMC-R devices
William Kucharski (1):
cgroup: Trace event cgroup id fields should be u64
Willy Tarreau (2):
tools/nolibc: i386: fix initial stack alignment
tools/nolibc: fix incorrect truncation of exit code
Xiangyang Zhang (1):
tracing/kprobes: 'nmissed' not showed correctly for kretprobe
Xie Yongji (1):
fuse: Pass correct lend value to filemap_write_and_wait_range()
Xin Xiong (1):
netfilter: ipt_CLUSTERIP: fix refcount leak in clusterip_tg_check()
Xin Yin (3):
ext4: fix fast commit may miss tracking range for FALLOC_FL_ZERO_RANGE
ext4: use ext4_ext_remove_space() for fast commit replay delete range
ext4: fast commit may miss tracking unwritten range during ftruncate
Xiongwei Song (1):
floppy: Add max size check for user space request
Yang Li (1):
drm/amd/display: check top_pipe_to_program pointer
Yang Yingliang (3):
media: si470x-i2c: fix possible memory leak in si470x_i2c_probe()
staging: rtl8192e: return error code from rtllib_softmac_init()
staging: rtl8192e: rtllib_module: fix error handle case in
alloc_rtllib()
Ye Guojin (1):
MIPS: OCTEON: add put_device() after of_find_device_by_node()
Yifeng Li (1):
PCI: Add function 1 DMA alias quirk for Marvell 88SE9125 SATA
controller
Yunfei Wang (1):
iommu/io-pgtable-arm-v7s: Add error handle for page table allocation
failure
Zechuan Chen (1):
perf probe: Fix ppc64 'perf probe add events failed' case
Zekun Shen (4):
ar5523: Fix null-ptr-deref with unexpected WDCMSG_TARGET_START reply
rsi: Fix use-after-free in rsi_rx_done_handler()
rsi: Fix out-of-bounds read in rsi_read_pkt()
ath9k: Fix out-of-bound memcpy in ath9k_hif_usb_rx_stream
Zhang Zixun (1):
x86/mce/inject: Avoid out-of-bounds write when setting flags
Zheng Zengkai (1):
Revert "sched/rt: Try to restart rt period timer when rt runtime
exceeded"
Zheyu Ma (1):
media: b2c2: Add missing check in flexcop_pci_isr:
Zhou Qingyang (9):
drm/amdgpu: Fix a NULL pointer dereference in
amdgpu_connector_lcd_native_mode()
drm/radeon/radeon_kms: Fix a NULL pointer dereference in
radeon_driver_open_kms()
media: dib8000: Fix a memleak in dib8000_init()
media: saa7146: mxb: Fix a NULL pointer dereference in mxb_attach()
ath11k: Fix a NULL pointer dereference in ath11k_mac_op_hw_scan()
pcmcia: rsrc_nonstatic: Fix a NULL pointer dereference in
__nonstatic_find_io_region()
pcmcia: rsrc_nonstatic: Fix a NULL pointer dereference in
nonstatic_find_mem_region()
media: saa7146: hexium_orion: Fix a NULL pointer dereference in
hexium_attach()
media: saa7146: hexium_gemini: Fix a NULL pointer dereference in
hexium_attach()
Zizhuang Deng (1):
lib/mpi: Add the return value check of kcalloc()
Zongmin Zhou (1):
drm/amdgpu: fixup bad vram size on gmc v8
xinhui pan (1):
drm/ttm: Put BO in its memory manager's lru list
.../ABI/testing/sysfs-bus-iio-lptimer-stm32 | 62 --
Documentation/admin-guide/hw-vuln/spectre.rst | 2 +-
.../display/amlogic,meson-dw-hdmi.yaml | 5 +
.../bindings/display/amlogic,meson-vpu.yaml | 6 +
.../bindings/thermal/thermal-zones.yaml | 9 +-
.../bindings/watchdog/samsung-wdt.yaml | 5 +-
.../driver-api/dmaengine/dmatest.rst | 7 +-
Documentation/driver-api/firewire.rst | 4 +-
.../acpi/dsd/data-node-references.rst | 10 +-
arch/arm/Kconfig.debug | 14 +-
arch/arm/boot/compressed/efi-header.S | 22 +-
arch/arm/boot/compressed/head.S | 3 +-
arch/arm/boot/dts/armada-38x.dtsi | 4 +-
arch/arm/boot/dts/gemini-nas4220b.dts | 2 +-
arch/arm/boot/dts/omap3-n900.dts | 50 +-
arch/arm/boot/dts/stm32f429-disco.dts | 2 +-
arch/arm/include/debug/imx-uart.h | 18 +-
.../mach-shmobile/regulator-quirk-rcar-gen2.c | 5 +-
.../boot/dts/amlogic/meson-g12-common.dtsi | 2 +-
.../dts/amlogic/meson-g12b-odroid-n2.dtsi | 2 +-
.../boot/dts/amlogic/meson-gxbb-wetek.dtsi | 3 +
.../boot/dts/freescale/fsl-ls1028a-qds.dts | 14 +-
arch/arm64/boot/dts/marvell/cn9130.dtsi | 15 +
arch/arm64/boot/dts/nvidia/tegra186.dtsi | 2 +-
arch/arm64/boot/dts/nvidia/tegra194.dtsi | 9 +-
arch/arm64/boot/dts/qcom/ipq6018.dtsi | 2 +-
arch/arm64/boot/dts/qcom/msm8916.dtsi | 4 +-
arch/arm64/boot/dts/qcom/msm8996.dtsi | 3 -
.../boot/dts/qcom/sdm850-lenovo-yoga-c630.dts | 27 +
arch/arm64/boot/dts/renesas/cat875.dtsi | 1 +
arch/arm64/boot/dts/ti/k3-j7200-main.dtsi | 2 +-
arch/arm64/boot/dts/ti/k3-j7200.dtsi | 6 +-
arch/arm64/boot/dts/ti/k3-j721e.dtsi | 6 +-
arch/mips/Kconfig | 6 +-
arch/mips/bcm63xx/clk.c | 6 +
arch/mips/cavium-octeon/octeon-platform.c | 2 +
arch/mips/cavium-octeon/octeon-usb.c | 1 +
.../asm/mach-loongson64/kernel-entry-init.h | 4 +-
arch/mips/include/asm/octeon/cvmx-bootinfo.h | 4 +-
arch/mips/lantiq/clk.c | 6 +
arch/openrisc/include/asm/syscalls.h | 2 +
arch/openrisc/kernel/entry.S | 5 +
arch/parisc/include/asm/special_insns.h | 44 +-
arch/parisc/kernel/traps.c | 2 +-
arch/powerpc/boot/dts/fsl/qoriq-fman3l-0.dtsi | 2 +
arch/powerpc/include/asm/cpu_setup_power.h | 12 +
arch/powerpc/include/asm/hw_irq.h | 51 +-
arch/powerpc/include/asm/reg.h | 1 +
arch/powerpc/kernel/btext.c | 4 +-
arch/powerpc/kernel/cpu_setup_power.S | 252 -----
arch/powerpc/kernel/cpu_setup_power.c | 272 +++++
arch/powerpc/kernel/cputable.c | 12 +-
arch/powerpc/kernel/dt_cpu_ftrs.c | 1 +
arch/powerpc/kernel/fadump.c | 8 +
arch/powerpc/kernel/head_40x.S | 9 +-
arch/powerpc/kernel/prom_init.c | 2 +-
arch/powerpc/kernel/smp.c | 42 +
arch/powerpc/kernel/traps.c | 31 +-
arch/powerpc/kernel/watchdog.c | 41 +-
arch/powerpc/kvm/book3s_hv.c | 8 +-
arch/powerpc/kvm/book3s_hv_nested.c | 2 +-
arch/powerpc/mm/book3s64/radix_pgtable.c | 4 +-
arch/powerpc/mm/kasan/book3s_32.c | 3 +-
arch/powerpc/mm/pgtable_64.c | 14 +-
arch/powerpc/perf/core-book3s.c | 97 +-
arch/powerpc/perf/core-fsl-emb.c | 25 -
arch/powerpc/perf/isa207-common.c | 8 +
arch/powerpc/platforms/cell/iommu.c | 1 +
arch/powerpc/platforms/cell/pervasive.c | 1 +
arch/powerpc/platforms/embedded6xx/hlwd-pic.c | 1 +
arch/powerpc/platforms/powermac/low_i2c.c | 3 +
arch/powerpc/platforms/powernv/opal-lpc.c | 1 +
arch/powerpc/sysdev/xive/spapr.c | 3 +
arch/s390/mm/pgalloc.c | 4 +-
arch/um/drivers/virtio_uml.c | 4 +
arch/um/include/asm/delay.h | 4 +-
arch/um/include/shared/registers.h | 4 +-
arch/um/os-Linux/registers.c | 4 +-
arch/um/os-Linux/start_up.c | 2 +-
arch/x86/boot/compressed/Makefile | 7 +-
arch/x86/configs/i386_defconfig | 1 +
arch/x86/configs/x86_64_defconfig | 1 +
arch/x86/include/asm/realmode.h | 1 +
arch/x86/include/asm/uaccess.h | 5 +-
arch/x86/kernel/cpu/mce/core.c | 42 +-
arch/x86/kernel/cpu/mce/inject.c | 2 +-
arch/x86/kernel/early-quirks.c | 10 +-
arch/x86/kernel/reboot.c | 12 +-
arch/x86/kernel/tsc.c | 1 +
arch/x86/kvm/vmx/posted_intr.c | 16 +-
arch/x86/realmode/init.c | 26 +
arch/x86/um/syscalls_64.c | 3 +-
crypto/jitterentropy.c | 3 +-
drivers/acpi/acpica/exfield.c | 7 +-
drivers/acpi/acpica/exoparg1.c | 3 +-
drivers/acpi/acpica/hwesleep.c | 4 +-
drivers/acpi/acpica/hwsleep.c | 4 +-
drivers/acpi/acpica/hwxfsleep.c | 2 -
drivers/acpi/acpica/utdelete.c | 1 +
drivers/acpi/battery.c | 22 +
drivers/acpi/bus.c | 4 +-
drivers/acpi/ec.c | 57 +-
drivers/acpi/internal.h | 2 +
drivers/acpi/scan.c | 13 +-
drivers/acpi/x86/utils.c | 116 ++-
drivers/android/binder.c | 4 +-
drivers/base/core.c | 3 +-
drivers/base/power/runtime.c | 41 +-
drivers/base/property.c | 4 +-
drivers/base/regmap/regmap.c | 1 +
drivers/base/swnode.c | 2 +-
drivers/block/floppy.c | 6 +-
drivers/bluetooth/btmtksdio.c | 2 +
drivers/bluetooth/hci_bcm.c | 7 +-
drivers/bluetooth/hci_qca.c | 5 +-
drivers/bluetooth/hci_vhci.c | 2 +
drivers/char/mwave/3780i.h | 2 +-
drivers/char/random.c | 19 +-
drivers/char/tpm/tpm_tis_core.c | 14 +-
drivers/clk/bcm/clk-bcm2835.c | 13 +-
drivers/clk/clk-bm1880.c | 20 +-
drivers/clk/clk-si5341.c | 2 +-
drivers/clk/clk-stm32f4.c | 4 -
drivers/clk/clk.c | 18 +
drivers/clk/imx/clk-imx8mn.c | 6 +-
drivers/clk/meson/gxbb.c | 44 +-
drivers/counter/Kconfig | 2 +-
drivers/counter/stm32-lptimer-cnt.c | 297 +-----
drivers/cpufreq/cpufreq.c | 4 +-
drivers/crypto/caam/caamalg_qi2.c | 2 +-
drivers/crypto/omap-aes.c | 2 +-
drivers/crypto/qat/qat_common/adf_pf2vf_msg.c | 45 +-
drivers/crypto/qat/qat_common/adf_vf2pf_msg.c | 4 +-
drivers/crypto/qce/sha.c | 2 +-
drivers/crypto/qce/skcipher.c | 2 +-
drivers/crypto/stm32/stm32-crc32.c | 4 +-
drivers/crypto/stm32/stm32-cryp.c | 938 +++++++-----------
drivers/crypto/stm32/stm32-hash.c | 6 +-
drivers/dma-buf/dma-fence-array.c | 6 +-
drivers/dma/at_xdmac.c | 57 +-
drivers/dma/mmp_pdma.c | 6 -
drivers/dma/pxa_dma.c | 7 -
drivers/dma/stm32-mdma.c | 2 +-
drivers/dma/uniphier-xdmac.c | 5 +-
drivers/edac/synopsys_edac.c | 3 +-
drivers/firmware/google/Kconfig | 6 +-
drivers/gpio/gpio-aspeed.c | 52 +-
drivers/gpio/gpiolib-acpi.c | 15 +-
.../gpu/drm/amd/amdgpu/amdgpu_connectors.c | 6 +
drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c | 1 -
drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c | 13 +-
.../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 3 +
drivers/gpu/drm/amd/display/dc/core/dc.c | 3 +-
drivers/gpu/drm/amd/pm/amdgpu_pm.c | 6 +
.../gpu/drm/bridge/analogix/analogix_dp_reg.c | 14 +-
drivers/gpu/drm/bridge/display-connector.c | 2 +-
.../bridge/megachips-stdpxxxx-ge-b850v3-fw.c | 40 +-
.../drm/bridge/synopsys/dw-hdmi-ahb-audio.c | 10 +-
.../gpu/drm/bridge/synopsys/dw-hdmi-audio.h | 4 +-
.../drm/bridge/synopsys/dw-hdmi-i2s-audio.c | 9 +-
drivers/gpu/drm/bridge/synopsys/dw-hdmi.c | 12 +-
drivers/gpu/drm/bridge/ti-sn65dsi86.c | 1 +
drivers/gpu/drm/drm_drv.c | 9 +-
.../gpu/drm/drm_panel_orientation_quirks.c | 6 +
drivers/gpu/drm/etnaviv/etnaviv_gem_submit.c | 6 +
drivers/gpu/drm/etnaviv/etnaviv_gpu.h | 1 +
drivers/gpu/drm/etnaviv/etnaviv_sched.c | 4 +-
drivers/gpu/drm/lima/lima_device.c | 1 +
drivers/gpu/drm/mediatek/mtk_mipi_tx.c | 2 +
drivers/gpu/drm/msm/Kconfig | 1 +
drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c | 4 +-
drivers/gpu/drm/nouveau/dispnv04/disp.c | 4 +-
.../gpu/drm/nouveau/nvkm/subdev/pmu/base.c | 37 +-
drivers/gpu/drm/panel/panel-innolux-p079zca.c | 10 +-
.../drm/panel/panel-kingdisplay-kd097d04.c | 8 +-
drivers/gpu/drm/radeon/radeon_kms.c | 42 +-
drivers/gpu/drm/rcar-du/rcar_du_crtc.c | 20 +-
.../gpu/drm/rockchip/dw-mipi-dsi-rockchip.c | 82 +-
drivers/gpu/drm/tegra/vic.c | 7 +-
drivers/gpu/drm/ttm/ttm_bo.c | 2 +
drivers/gpu/drm/vboxvideo/vbox_main.c | 4 +-
drivers/gpu/drm/vc4/vc4_hdmi.c | 24 +-
drivers/gpu/host1x/dev.c | 15 +
drivers/hid/hid-apple.c | 2 +-
drivers/hid/hid-input.c | 6 +
drivers/hid/hid-uclogic-params.c | 31 +-
drivers/hid/hid-vivaldi.c | 34 +-
drivers/hid/uhid.c | 29 +-
drivers/hid/wacom_wac.c | 39 +-
drivers/hsi/hsi_core.c | 1 +
drivers/hwmon/mr75203.c | 2 +-
drivers/i2c/busses/i2c-designware-pcidrv.c | 8 +-
drivers/i2c/busses/i2c-i801.c | 15 +-
drivers/i2c/busses/i2c-mpc.c | 23 +-
drivers/iio/adc/ti-adc081c.c | 22 +-
drivers/infiniband/core/cma.c | 12 +-
drivers/infiniband/core/device.c | 3 +-
drivers/infiniband/hw/bnxt_re/qplib_rcfw.c | 6 +-
drivers/infiniband/hw/bnxt_re/qplib_rcfw.h | 1 -
drivers/infiniband/hw/cxgb4/qp.c | 1 +
drivers/infiniband/hw/qedr/verbs.c | 2 +
drivers/infiniband/sw/rxe/rxe_opcode.c | 2 +-
drivers/iommu/amd/init.c | 48 +-
drivers/iommu/io-pgtable-arm-v7s.c | 6 +-
drivers/iommu/io-pgtable-arm.c | 11 +-
drivers/irqchip/irq-gic-v3.c | 16 +
drivers/md/dm.c | 4 +-
drivers/md/persistent-data/dm-btree.c | 8 +-
.../md/persistent-data/dm-space-map-common.c | 5 +
drivers/media/Kconfig | 8 +-
drivers/media/cec/core/cec-pin.c | 31 +-
drivers/media/common/saa7146/saa7146_fops.c | 2 +-
.../common/videobuf2/videobuf2-dma-contig.c | 8 +-
drivers/media/dvb-core/dmxdev.c | 18 +-
drivers/media/dvb-frontends/dib8000.c | 4 +-
drivers/media/pci/b2c2/flexcop-pci.c | 3 +
drivers/media/pci/saa7146/hexium_gemini.c | 7 +-
drivers/media/pci/saa7146/hexium_orion.c | 8 +-
drivers/media/pci/saa7146/mxb.c | 8 +-
drivers/media/platform/aspeed-video.c | 14 +-
drivers/media/platform/coda/coda-common.c | 8 +-
drivers/media/platform/coda/coda-jpeg.c | 21 +-
drivers/media/platform/coda/imx-vdoa.c | 6 +-
drivers/media/platform/imx-pxp.c | 4 +-
.../platform/mtk-vcodec/mtk_vcodec_enc_drv.c | 2 +-
drivers/media/platform/qcom/venus/core.c | 39 +-
drivers/media/platform/qcom/venus/core.h | 2 -
.../media/platform/qcom/venus/pm_helpers.c | 94 +-
.../media/platform/qcom/venus/pm_helpers.h | 7 +-
drivers/media/platform/rcar-vin/rcar-csi2.c | 18 +-
drivers/media/platform/rcar-vin/rcar-v4l2.c | 15 +-
drivers/media/radio/si470x/radio-si470x-i2c.c | 3 +-
drivers/media/rc/igorplugusb.c | 4 +-
drivers/media/rc/mceusb.c | 8 +-
drivers/media/rc/redrat3.c | 22 +-
drivers/media/tuners/msi001.c | 7 +
drivers/media/tuners/si2157.c | 2 +-
drivers/media/usb/b2c2/flexcop-usb.c | 10 +-
drivers/media/usb/b2c2/flexcop-usb.h | 12 +-
drivers/media/usb/cpia2/cpia2_usb.c | 4 +-
drivers/media/usb/dvb-usb/dib0700_core.c | 2 -
drivers/media/usb/dvb-usb/dw2102.c | 338 ++++---
drivers/media/usb/dvb-usb/m920x.c | 12 +-
drivers/media/usb/em28xx/em28xx-cards.c | 18 +-
drivers/media/usb/em28xx/em28xx-core.c | 4 +-
drivers/media/usb/pvrusb2/pvrusb2-hdw.c | 8 +-
drivers/media/usb/s2255/s2255drv.c | 4 +-
drivers/media/usb/stk1160/stk1160-core.c | 4 +-
drivers/media/usb/uvc/uvcvideo.h | 2 +-
drivers/media/v4l2-core/v4l2-ioctl.c | 4 +-
drivers/memory/renesas-rpc-if.c | 2 +-
drivers/mfd/atmel-flexcom.c | 11 +-
drivers/misc/lattice-ecp3-config.c | 12 +-
drivers/misc/lkdtm/Makefile | 2 +-
drivers/mmc/core/sdio.c | 4 +-
drivers/mmc/host/meson-mx-sdhc-mmc.c | 5 +
drivers/mmc/host/meson-mx-sdio.c | 5 +
drivers/mtd/hyperbus/rpc-if.c | 8 +-
drivers/mtd/mtdpart.c | 2 +-
drivers/mtd/nand/bbt.c | 2 +-
drivers/mtd/nand/raw/davinci_nand.c | 16 +-
drivers/mtd/nand/raw/gpmi-nand/gpmi-nand.c | 37 +-
drivers/net/bonding/bond_main.c | 36 +-
drivers/net/can/softing/softing_cs.c | 2 +-
drivers/net/can/softing/softing_fw.c | 11 +-
.../net/can/spi/mcp251xfd/mcp251xfd-core.c | 6 +-
drivers/net/can/xilinx_can.c | 7 +-
.../net/ethernet/broadcom/genet/bcmgenet.c | 10 +-
.../net/ethernet/chelsio/libcxgb/libcxgb_cm.c | 3 +-
drivers/net/ethernet/cortina/gemini.c | 9 +-
drivers/net/ethernet/freescale/fman/mac.c | 21 +-
drivers/net/ethernet/freescale/xgmac_mdio.c | 28 +-
drivers/net/ethernet/i825xx/sni_82596.c | 3 +-
drivers/net/ethernet/mediatek/mtk_eth_soc.c | 2 +-
drivers/net/ethernet/mellanox/mlx5/core/cmd.c | 36 +-
.../ethernet/mellanox/mlx5/core/en/xsk/pool.c | 4 +-
.../net/ethernet/mellanox/mlx5/core/en_main.c | 10 +-
.../net/ethernet/mellanox/mlx5/core/en_rx.c | 7 +-
.../net/ethernet/mellanox/mlx5/core/lag_mp.c | 6 +-
drivers/net/ethernet/mellanox/mlxsw/cmd.h | 12 +
drivers/net/ethernet/mellanox/mlxsw/pci.c | 7 +-
drivers/net/ethernet/mscc/ocelot_flower.c | 15 +-
drivers/net/ethernet/rocker/rocker_ofdpa.c | 3 +-
.../net/ethernet/xilinx/xilinx_axienet_main.c | 135 ++-
drivers/net/phy/marvell.c | 6 +
drivers/net/phy/mdio_bus.c | 2 +-
drivers/net/phy/phy-core.c | 2 +-
drivers/net/phy/sfp.c | 25 +-
drivers/net/ppp/ppp_generic.c | 7 +-
drivers/net/usb/mcs7830.c | 12 +-
drivers/net/wireless/ath/ar5523/ar5523.c | 4 +
drivers/net/wireless/ath/ath10k/core.c | 19 +-
drivers/net/wireless/ath/ath10k/htt_tx.c | 3 +
drivers/net/wireless/ath/ath10k/hw.h | 3 +
drivers/net/wireless/ath/ath10k/txrx.c | 2 -
drivers/net/wireless/ath/ath11k/ahb.c | 28 +-
drivers/net/wireless/ath/ath11k/core.h | 2 +-
drivers/net/wireless/ath/ath11k/dp.h | 3 +-
drivers/net/wireless/ath/ath11k/dp_tx.c | 2 +-
drivers/net/wireless/ath/ath11k/hal.c | 22 +
drivers/net/wireless/ath/ath11k/hal.h | 2 +
drivers/net/wireless/ath/ath11k/hw.c | 2 -
drivers/net/wireless/ath/ath11k/mac.c | 52 +-
drivers/net/wireless/ath/ath11k/pci.c | 12 +-
drivers/net/wireless/ath/ath11k/reg.c | 103 +-
drivers/net/wireless/ath/ath11k/wmi.c | 5 +-
drivers/net/wireless/ath/ath9k/hif_usb.c | 7 +
drivers/net/wireless/ath/wcn36xx/dxe.c | 49 +-
drivers/net/wireless/ath/wcn36xx/main.c | 34 +-
drivers/net/wireless/ath/wcn36xx/smd.c | 8 +-
drivers/net/wireless/ath/wcn36xx/txrx.c | 41 +-
drivers/net/wireless/ath/wcn36xx/wcn36xx.h | 1 +
drivers/net/wireless/intel/iwlwifi/iwl-drv.c | 17 +-
.../intel/iwlwifi/mvm/ftm-initiator.c | 2 +-
.../net/wireless/intel/iwlwifi/mvm/mac80211.c | 17 +
drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c | 27 +
drivers/net/wireless/intel/iwlwifi/mvm/scan.c | 2 +-
.../wireless/intel/iwlwifi/mvm/time-event.c | 27 +-
drivers/net/wireless/intel/iwlwifi/pcie/rx.c | 7 +-
drivers/net/wireless/intel/iwlwifi/queue/tx.c | 1 +
.../net/wireless/marvell/mwifiex/sta_event.c | 8 +-
drivers/net/wireless/realtek/rtw88/main.c | 2 +-
drivers/net/wireless/realtek/rtw88/rtw8821c.h | 2 +-
drivers/net/wireless/realtek/rtw88/rtw8822b.c | 2 +-
drivers/net/wireless/realtek/rtw88/rtw8822c.c | 2 +-
drivers/net/wireless/rsi/rsi_91x_main.c | 4 +
drivers/net/wireless/rsi/rsi_91x_usb.c | 9 +-
drivers/net/wireless/rsi/rsi_usb.h | 2 +
drivers/nvmem/core.c | 2 +
drivers/of/base.c | 11 +-
drivers/of/unittest.c | 21 +-
drivers/parisc/pdc_stable.c | 4 +-
drivers/pci/controller/pci-aardvark.c | 4 +-
drivers/pci/controller/pci-mvebu.c | 8 +
drivers/pci/controller/pci-xgene.c | 2 +-
drivers/pci/hotplug/pciehp.h | 3 +
drivers/pci/hotplug/pciehp_core.c | 2 +-
drivers/pci/hotplug/pciehp_hpc.c | 21 +-
drivers/pci/msi.c | 26 +-
drivers/pci/pci-bridge-emul.c | 70 +-
drivers/pci/quirks.c | 3 +
drivers/pcmcia/cs.c | 8 +-
drivers/pcmcia/rsrc_nonstatic.c | 6 +
drivers/phy/socionext/phy-uniphier-usb3ss.c | 10 +-
drivers/power/reset/mt6323-poweroff.c | 3 +
drivers/regulator/qcom_smd-regulator.c | 100 +-
drivers/rpmsg/rpmsg_core.c | 20 +-
drivers/rtc/rtc-cmos.c | 3 +
drivers/rtc/rtc-pxa.c | 4 +
drivers/scsi/lpfc/lpfc.h | 2 +-
drivers/scsi/lpfc/lpfc_attr.c | 62 +-
drivers/scsi/lpfc/lpfc_hbadisc.c | 8 +-
drivers/scsi/lpfc/lpfc_sli.c | 6 -
drivers/scsi/pm8001/pm8001_hwi.c | 4 +-
drivers/scsi/scsi_debugfs.c | 1 +
drivers/scsi/sr.c | 2 +-
drivers/scsi/sr_vendor.c | 4 +-
drivers/scsi/ufs/tc-dwc-g210-pci.c | 1 -
drivers/scsi/ufs/ufshcd-pci.c | 2 -
drivers/scsi/ufs/ufshcd-pltfrm.c | 2 -
drivers/scsi/ufs/ufshcd.c | 7 +
drivers/soc/mediatek/mtk-scpsys.c | 15 +-
drivers/soc/qcom/cpr.c | 2 +-
drivers/soc/ti/pruss.c | 2 +-
drivers/spi/spi-meson-spifc.c | 1 +
drivers/spi/spi-uniphier.c | 11 +-
drivers/staging/greybus/audio_topology.c | 15 +
drivers/staging/media/atomisp/i2c/ov2680.h | 24 -
.../staging/media/atomisp/pci/atomisp_cmd.c | 92 +-
.../staging/media/atomisp/pci/atomisp_fops.c | 11 +
.../media/atomisp/pci/atomisp_gmin_platform.c | 2 +-
.../staging/media/atomisp/pci/atomisp_ioctl.c | 185 +++-
.../media/atomisp/pci/atomisp_subdev.c | 15 +-
.../media/atomisp/pci/atomisp_subdev.h | 3 +
.../staging/media/atomisp/pci/atomisp_v4l2.c | 13 +-
.../staging/media/atomisp/pci/atomisp_v4l2.h | 3 +-
drivers/staging/media/atomisp/pci/sh_css.c | 27 +-
.../staging/media/atomisp/pci/sh_css_mipi.c | 41 +-
.../staging/media/atomisp/pci/sh_css_params.c | 8 +-
drivers/staging/media/hantro/hantro_drv.c | 3 +-
drivers/staging/rtl8192e/rtllib.h | 2 +-
drivers/staging/rtl8192e/rtllib_module.c | 16 +-
drivers/staging/rtl8192e/rtllib_softmac.c | 6 +-
drivers/tee/tee_core.c | 4 +-
drivers/thermal/imx8mm_thermal.c | 3 +
drivers/thermal/imx_thermal.c | 145 ++-
drivers/thunderbolt/acpi.c | 13 +
drivers/tty/serial/amba-pl010.c | 3 -
drivers/tty/serial/amba-pl011.c | 27 +-
drivers/tty/serial/atmel_serial.c | 14 +
drivers/tty/serial/imx.c | 7 +-
drivers/tty/serial/serial_core.c | 7 +-
drivers/tty/serial/uartlite.c | 2 +-
drivers/usb/core/hub.c | 5 +-
drivers/usb/dwc3/dwc3-qcom.c | 7 +-
drivers/usb/gadget/function/f_fs.c | 4 +-
drivers/usb/host/uhci-platform.c | 3 +-
drivers/usb/misc/ftdi-elan.c | 1 +
drivers/vdpa/mlx5/net/mlx5_vnet.c | 2 -
drivers/video/backlight/qcom-wled.c | 122 ++-
drivers/virtio/virtio_ring.c | 4 +-
drivers/w1/slaves/w1_ds28e04.c | 26 +-
drivers/xen/gntdev.c | 6 +-
fs/btrfs/backref.c | 21 +-
fs/btrfs/ctree.c | 19 +-
fs/btrfs/inode.c | 11 +
fs/btrfs/qgroup.c | 19 +
fs/debugfs/file.c | 2 +-
fs/dlm/lock.c | 9 +
fs/dlm/lowcomms.c | 45 +-
fs/ext4/ext4.h | 1 +
fs/ext4/extents.c | 2 -
fs/ext4/fast_commit.c | 18 +-
fs/ext4/inode.c | 14 +-
fs/ext4/ioctl.c | 2 -
fs/ext4/mballoc.c | 48 +-
fs/ext4/migrate.c | 23 +-
fs/ext4/super.c | 25 +-
fs/f2fs/compress.c | 50 +-
fs/f2fs/f2fs.h | 11 +
fs/f2fs/segment.h | 3 +-
fs/f2fs/super.c | 44 +
fs/f2fs/sysfs.c | 4 +-
fs/fuse/file.c | 2 +-
fs/ubifs/super.c | 1 -
fs/udf/ialloc.c | 2 +
include/acpi/acpi_bus.h | 5 +-
include/acpi/actypes.h | 10 +-
include/linux/bpf_verifier.h | 7 +
include/linux/clocksource.h | 3 +
include/linux/hid.h | 2 +
include/linux/mmzone.h | 9 +
include/linux/pm_runtime.h | 3 +
include/net/inet_frag.h | 11 +-
include/net/ipv6_frag.h | 3 +-
include/net/sch_generic.h | 5 +
include/net/xfrm.h | 5 +
include/trace/events/cgroup.h | 12 +-
include/uapi/linux/xfrm.h | 1 +
kernel/bpf/btf.c | 3 +-
kernel/bpf/verifier.c | 18 +-
kernel/dma/pool.c | 4 +-
kernel/rcu/tree_exp.h | 1 +
kernel/sched/cputime.c | 4 +-
kernel/sched/fair.c | 4 +-
kernel/sched/rt.c | 33 +-
kernel/time/clocksource.c | 96 +-
kernel/time/jiffies.c | 15 +-
kernel/trace/bpf_trace.c | 6 +-
kernel/trace/trace_kprobe.c | 5 +-
kernel/tsacct.c | 7 +-
lib/mpi/mpi-mod.c | 2 +
lib/test_hmm.c | 24 +
lib/test_meminit.c | 1 +
mm/hmm.c | 5 +-
mm/page_alloc.c | 19 +-
mm/shmem.c | 37 +-
net/ax25/af_ax25.c | 10 +-
net/batman-adv/netlink.c | 30 +-
net/bluetooth/cmtp/core.c | 4 +-
net/bluetooth/hci_core.c | 1 +
net/bluetooth/hci_event.c | 8 +-
net/bluetooth/hci_request.c | 2 +-
net/bluetooth/l2cap_sock.c | 45 +-
net/bridge/br_netfilter_hooks.c | 7 +-
net/core/dev.c | 6 +
net/core/devlink.c | 2 -
net/core/filter.c | 8 +-
net/core/net-sysfs.c | 3 +
net/core/net_namespace.c | 4 +-
net/ipv4/fib_semantics.c | 47 +-
net/ipv4/inet_fragment.c | 8 +-
net/ipv4/ip_fragment.c | 3 +-
net/ipv4/ip_gre.c | 5 +-
net/ipv4/netfilter/ipt_CLUSTERIP.c | 5 +-
net/ipv6/ip6_gre.c | 5 +-
net/mac80211/rx.c | 2 +-
net/netfilter/nft_set_pipapo.c | 8 +
net/netrom/af_netrom.c | 12 +-
net/nfc/llcp_sock.c | 5 +
net/sched/sch_generic.c | 1 +
net/smc/smc_core.c | 17 +-
net/unix/garbage.c | 14 +-
net/unix/scm.c | 6 +-
net/xfrm/xfrm_compat.c | 6 +-
net/xfrm/xfrm_interface.c | 14 +-
net/xfrm/xfrm_policy.c | 24 +-
net/xfrm/xfrm_state.c | 23 +-
net/xfrm/xfrm_user.c | 41 +-
scripts/dtc/dtx_diff | 8 +-
scripts/sphinx-pre-install | 4 +
security/selinux/hooks.c | 12 +-
sound/core/jack.c | 3 +
sound/core/oss/pcm_oss.c | 2 +-
sound/core/pcm.c | 6 +-
sound/core/seq/seq_queue.c | 14 +-
sound/pci/hda/hda_codec.c | 3 +
sound/soc/codecs/rt5663.c | 12 +-
sound/soc/fsl/fsl_asrc.c | 69 +-
sound/soc/fsl/fsl_mqs.c | 2 +-
sound/soc/intel/catpt/dsp.c | 14 +-
sound/soc/mediatek/mt8173/mt8173-max98090.c | 3 +
.../mediatek/mt8173/mt8173-rt5650-rt5514.c | 2 +
.../mediatek/mt8173/mt8173-rt5650-rt5676.c | 2 +
sound/soc/mediatek/mt8173/mt8173-rt5650.c | 2 +
.../mediatek/mt8183/mt8183-da7219-max98357.c | 6 +-
.../mt8183/mt8183-mt6358-ts3a227-max98357.c | 7 +-
sound/soc/samsung/idma.c | 2 +
sound/soc/uniphier/Kconfig | 2 -
sound/usb/format.c | 2 +-
sound/usb/mixer_quirks.c | 2 +-
sound/usb/quirks.c | 2 +-
tools/bpf/bpftool/Documentation/Makefile | 1 -
tools/bpf/bpftool/Makefile | 1 -
tools/bpf/bpftool/main.c | 2 +
tools/include/nolibc/nolibc.h | 33 +-
tools/perf/util/debug.c | 2 +-
tools/perf/util/evsel.c | 25 +-
tools/perf/util/probe-event.c | 3 +
.../selftests/bpf/prog_tests/skb_ctx.c | 2 +
tools/testing/selftests/clone3/clone3.c | 6 +
.../selftests/ftrace/test.d/kprobe/profile.tc | 2 +-
tools/testing/selftests/kselftest_harness.h | 2 +-
.../selftests/powerpc/security/spectre_v2.c | 2 +-
tools/testing/selftests/vm/hmm-tests.c | 42 +
525 files changed, 5467 insertions(+), 3290 deletions(-)
delete mode 100644 Documentation/ABI/testing/sysfs-bus-iio-lptimer-stm32
create mode 100644 arch/powerpc/include/asm/cpu_setup_power.h
delete mode 100644 arch/powerpc/kernel/cpu_setup_power.S
create mode 100644 arch/powerpc/kernel/cpu_setup_power.c
--
2.20.1
1
547
Hello every one
The release team is collecting requirements for openEuler 22.09 version.
Please submit intel arch feature add into release-plan.md,the url address is below
https://gitee.com/openeuler/release-management/blob/master/openEuler-22.09/…
We are looking forward to features of intel can merge into openEuler 22.09.
1
0

[PATCH openEuler-1.0-LTS] x86/tsc: Make cur->adjusted values in package#1 to be the same
by LeoLiuoc 26 Apr '22
by LeoLiuoc 26 Apr '22
26 Apr '22
zhaoxin inclusion
category: bugfix
bugzilla: https://gitee.com/openeuler/kernel/issues/I54V2W
CVE: NA
----------------------------------------------------------------
When resume from S4 on Zhaoxin 2 packages platform that support
X86_FEATURE_TSC_ADJUST,
the following warning messages appear:
[ 327.445302] [Firmware Bug]: TSC ADJUST differs: CPU15 45960750 -->
78394770. Restoring
[ 329.209120] [Firmware Bug]: TSC ADJUST differs: CPU14 45960750 -->
78394770. Restoring
[ 329.209128] [Firmware Bug]: TSC ADJUST differs: CPU13 45960750 -->
78394770. Restoring
[ 329.209138] [Firmware Bug]: TSC ADJUST differs: CPU12 45960750 -->
78394770. Restoring
[ 329.209151] [Firmware Bug]: TSC ADJUST differs: CPU11 45960750 -->
78394770. Restoring
[ 329.209160] [Firmware Bug]: TSC ADJUST differs: CPU10 45960750 -->
78394770. Restoring
[ 329.209169] [Firmware Bug]: TSC ADJUST differs: CPU9 45960750 -->
78394770. Restoring
The reason is:
Step 1: Bring up.
TSC is sync after bring up with following settings:
MSR 0x3b cur->adjusted
Package#0 CPU 0-7 0 0
Package#1 first CPU value1 value1
Package#1 non-first CPU value1 value1
Step 2: Suspend to S4.
Settings in Step 1 are not changed in this Step.
Step 3: Bring up caused by S4 wake up event.
TSC is sync when bring up with following settings:
MSR 0x3b cur->adjusted
Package#0 CPU 0-7 0 0
Package#1 first CPU value2 value2
Package#1 non-first CPU value2 value2
Step 4: Resume from S4.
When resuming from S4, Current TSC synchronous mechanism
cause following settings:
MSR 0x3b cur->adjusted
Package#0 CPU 0-7 0 0
Package#1 first CPU value2 value2
Package#1 non-first CPU value2 value1
In these Steps, value1 != 0 and value2 != value1.
In Step4, as function tsc_store_and_check_tsc_adjust() do, when the value
of MSR 0x3b on the non-first online CPU in package#1 is equal to the value
of cur->adjusted on the first online CPU in the same package,
the cur->adjusted value on this non-first online CPU will hold the old
value1.
This cause function tsc_verify_tsc_adjust() set the value of MSR 0x3b on the
non-first online CPUs in the package#1 to the old value1 and print the
beginning warning messages.
Fix it by setting cur->adjusted value on the non-first online CPU in a
package
to the value of MSR 0x3b on the same CPU when they are not equal.
Signed-off-by: LeoLiu-oc <LeoLiu-oc(a)zhaoxin.com>
---
arch/x86/kernel/tsc_sync.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/arch/x86/kernel/tsc_sync.c b/arch/x86/kernel/tsc_sync.c
index ec534f978867..e0cc4170325c 100644
--- a/arch/x86/kernel/tsc_sync.c
+++ b/arch/x86/kernel/tsc_sync.c
@@ -190,6 +190,11 @@ bool tsc_store_and_check_tsc_adjust(bool bootcpu)
if (bootval != ref->adjusted) {
cur->adjusted = ref->adjusted;
wrmsrl(MSR_IA32_TSC_ADJUST, ref->adjusted);
+ } else if (cur->adjusted != bootval) {
+ if (boot_cpu_data.x86_vendor == X86_VENDOR_CENTAUR ||
+ boot_cpu_data.x86_vendor == X86_VENDOR_ZHAOXIN) {
+ cur->adjusted = bootval;
+ }
}
/*
* We have the TSCs forced to be in sync on this package. Skip sync
--
2.20.1
1
0

[PATCH openEuler-1.0-LTS] Add support for PxSCT.LPM set based on actual LPM circumstances
by LeoLiuoc 26 Apr '22
by LeoLiuoc 26 Apr '22
26 Apr '22
zhaoxin inclusion
category: bugfix
bugzilla: https://gitee.com/openeuler/kernel/issues/I54V2K
CVE: NA
----------------------------------------------------------------
AHCI Spec shows that the PxSCTL.IPM field in each port must be programmed
to disallow device initiated LPM requests when HBA can not support
transitions to the LPM state. The current LPM driver has no restrictions
on LPM transitions when enabling device initiated LPM.
Signed-off-by: LeoLiu-oc <LeoLiu-oc(a)zhaoxin.com>
---
drivers/ata/libata-core.c | 17 +++++++++++++++--
1 file changed, 15 insertions(+), 2 deletions(-)
diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c
index 290ff99bf1d8..c21a079f6d34 100644
--- a/drivers/ata/libata-core.c
+++ b/drivers/ata/libata-core.c
@@ -3975,6 +3975,9 @@ int sata_link_scr_lpm(struct ata_link *link, enum
ata_lpm_policy policy,
bool spm_wakeup)
{
struct ata_eh_context *ehc = &link->eh_context;
+ struct ata_port *ap = ata_is_host_link(link) ? link->ap : NULL;
+ struct device *dev = ap ? ap->host->dev : NULL;
+ struct pci_dev *pdev = (!dev || !dev_is_pci(dev)) ? NULL :
to_pci_dev(dev);
bool woken_up = false;
u32 scontrol;
int rc;
@@ -4001,10 +4004,20 @@ int sata_link_scr_lpm(struct ata_link *link,
enum ata_lpm_policy policy,
case ATA_LPM_MED_POWER_WITH_DIPM:
case ATA_LPM_MIN_POWER_WITH_PARTIAL:
case ATA_LPM_MIN_POWER:
- if (ata_link_nr_enabled(link) > 0)
+ if (ata_link_nr_enabled(link) > 0) {
/* no restrictions on LPM transitions */
scontrol &= ~(0x7 << 8);
- else {
+ /*
+ * If Host does not support partial, then disallows it,
+ * the same for slumber.
+ */
+ if (pdev && pdev->vendor == PCI_VENDOR_ID_ZHAOXIN) {
+ if (!(link->ap->host->flags & ATA_HOST_PART))
+ scontrol |= (0x1 << 8);
+ if (!(link->ap->host->flags & ATA_HOST_SSC))
+ scontrol |= (0x2 << 8);
+ }
+ } else {
/* empty port, power off */
scontrol &= ~0xf;
scontrol |= (0x1 << 2);
--
2.20.1
1
0

[PATCH openEuler-1.0-LTS] Adding support for PxSCT.LPM setting based on actual LPM circumstances
by LeoLiuoc 26 Apr '22
by LeoLiuoc 26 Apr '22
26 Apr '22
zhaoxin inclusion
category: bugfix
bugzilla: https://gitee.com/openeuler/kernel/issues/I54V27
CVE: NA
----------------------------------------------------------------
In AHCI spec, PhyRdy Change Interrupt cannot coexist with
Link Power Management (LPM). While LPM driver would disable
PhyRdy Change interrupt without checking whether HBA supports
LPM or not before enabling it. Therefore, if enabling LPM from
LPM driver by default, we can not disable it from BIOS without
influence Hotplug out capability.
Signed-off-by: LeoLiu-oc <LeoLiu-oc(a)zhaoxin.com>
---
drivers/ata/ahci.c | 11 +++++++++++
drivers/ata/libata-eh.c | 7 +++++++
include/linux/libata.h | 3 +++
3 files changed, 21 insertions(+)
diff --git a/drivers/ata/ahci.c b/drivers/ata/ahci.c
index ebb2bfd4ab0a..8ed2f42b85fd 100644
--- a/drivers/ata/ahci.c
+++ b/drivers/ata/ahci.c
@@ -1855,6 +1855,17 @@ static int ahci_init_one(struct pci_dev *pdev,
const struct pci_device_id *ent)
else
dev_info(&pdev->dev, "SSS flag set, parallel bus scan
disabled\n");
+ if (pdev->vendor == PCI_VENDOR_ID_ZHAOXIN) {
+ if (hpriv->cap & HOST_CAP_PART)
+ host->flags |= ATA_HOST_PART;
+
+ if (hpriv->cap & HOST_CAP_SSC)
+ host->flags |= ATA_HOST_SSC;
+
+ if (hpriv->cap2 & HOST_CAP2_SDS)
+ host->flags |= ATA_HOST_DEVSLP;
+ }
+
if (pi.flags & ATA_FLAG_EM)
ahci_reset_em(host);
diff --git a/drivers/ata/libata-eh.c b/drivers/ata/libata-eh.c
index ccc80ff57eb2..e4e0e6d94741 100644
--- a/drivers/ata/libata-eh.c
+++ b/drivers/ata/libata-eh.c
@@ -3448,6 +3448,8 @@ static int ata_eh_set_lpm(struct ata_link *link,
enum ata_lpm_policy policy,
struct ata_device **r_failed_dev)
{
struct ata_port *ap = ata_is_host_link(link) ? link->ap : NULL;
+ struct device *device = ap->host->dev;
+ struct pci_dev *pdev = (!device || !dev_is_pci(device)) ? NULL :
to_pci_dev(device);
struct ata_eh_context *ehc = &link->eh_context;
struct ata_device *dev, *link_dev = NULL, *lpm_dev = NULL;
enum ata_lpm_policy old_policy = link->lpm_policy;
@@ -3456,6 +3458,11 @@ static int ata_eh_set_lpm(struct ata_link *link,
enum ata_lpm_policy policy,
unsigned int err_mask;
int rc;
+ /* if controller does not support lpm, then sets no LPM flags */
+ if ((pdev && pdev->vendor == PCI_VENDOR_ID_ZHAOXIN) &&
+ !(ap->host->flags & (ATA_HOST_PART | ATA_HOST_SSC |
ATA_HOST_DEVSLP)))
+ link->flags |= ATA_LFLAG_NO_LPM;
+
/* if the link or host doesn't do LPM, noop */
if ((link->flags & ATA_LFLAG_NO_LPM) || (ap && !ap->ops->set_lpm))
return 0;
diff --git a/include/linux/libata.h b/include/linux/libata.h
index dc164b7ebbb0..1cec68e5b104 100644
--- a/include/linux/libata.h
+++ b/include/linux/libata.h
@@ -276,6 +276,9 @@ enum {
ATA_HOST_STARTED = (1 << 1), /* Host started */
ATA_HOST_PARALLEL_SCAN = (1 << 2), /* Ports on this host can
be scanned in parallel */
ATA_HOST_IGNORE_ATA = (1 << 3), /* Ignore ATA devices on
this host. */
+ ATA_HOST_PART = (1 << 4), /* Host support partial. */
+ ATA_HOST_SSC = (1 << 5), /* Host support slumber. */
+ ATA_HOST_DEVSLP = (1 << 6), /* Host support devslp. */
/* bits 24:31 of host->flags are reserved for LLD specific flags */
--
2.20.1
1
0

[PATCH openEuler-1.0-LTS] XHCI:Fix some device identify fail when enable xHCI runtime suspend
by LeoLiuoc 26 Apr '22
by LeoLiuoc 26 Apr '22
26 Apr '22
zhaoxin inclusion
category: bugfix
bugzilla: https://gitee.com/openeuler/kernel/issues/I54V16
CVE: NA
----------------------------------------------------------------
If plug out device form xhci with runtime suspend enabled.
On the one hand, driver will disconnect this device and send disabled
slot command to xhci.
On the other hand, without no device connect to xhci, PM core will
call xhci suspend function to let xhci go to D3 to save power.
However there is a temporal competition to get xhci lock between
disable slot command interrupt and xhci suspend.
If xhci suspend function get xhci lock first, then this function will
clear xhci command ring. It will get error command trb when driver to
handle disable slot command interrupt. This is a serious error for
driver and driver will cleanup xhci. So,any device connect to this
xhci port again will not be recognized.
In order to fix this issues, we let disable slot command interrupt ISR
to get xhci lock first. So, add a delay in xhci suspend function before
to get xhci lock.
Signed-off-by: LeoLiu-oc <LeoLiu-oc(a)zhaoxin.com>
---
drivers/usb/host/xhci-pci.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/drivers/usb/host/xhci-pci.c b/drivers/usb/host/xhci-pci.c
index 238a32cc311c..4c2376a4c1d6 100644
--- a/drivers/usb/host/xhci-pci.c
+++ b/drivers/usb/host/xhci-pci.c
@@ -223,6 +223,9 @@ static void xhci_pci_quirks(struct device *dev,
struct xhci_hcd *xhci)
xhci->quirks |= XHCI_ZHAOXIN_HOST;
}
+ if (pdev->vendor == PCI_VENDOR_ID_ZHAOXIN)
+ xhci->quirks |= XHCI_SUSPEND_DELAY;
+
/* See https://bugzilla.kernel.org/show_bug.cgi?id=79511 */
if (pdev->vendor == PCI_VENDOR_ID_VIA &&
pdev->device == 0x3432)
--
2.20.1
1
0