-LINUX_VERSION-5.10 = .201
-LINUX_KERNEL_HASH-5.10.201 = 6afc06598fa8e3bc907cff75f995f372df51d40a284e260de78a3421b1f18218
+LINUX_VERSION-5.10 = .203
+LINUX_KERNEL_HASH-5.10.203 = 56ebcef9ce34012ff2804ed06648b842a7862880b794ed02d16387ece6b92877
}
--- a/drivers/usb/core/hub.c
+++ b/drivers/usb/core/hub.c
-@@ -5662,7 +5662,7 @@ static void port_event(struct usb_hub *h
+@@ -5663,7 +5663,7 @@ static void port_event(struct usb_hub *h
port_dev->over_current_count++;
port_over_current_notify(port_dev);
static inline int mmc_blk_part_switch(struct mmc_card *card,
unsigned int part_type);
static void mmc_blk_rw_rq_prep(struct mmc_queue_req *mqrq,
-@@ -2907,6 +2914,7 @@ static int mmc_blk_probe(struct mmc_card
+@@ -2909,6 +2916,7 @@ static int mmc_blk_probe(struct mmc_card
{
struct mmc_blk_data *md, *part_md;
char cap_str[10];
/*
* Check that the card supports the command class(es) we need.
-@@ -2914,7 +2922,16 @@ static int mmc_blk_probe(struct mmc_card
+@@ -2916,7 +2924,16 @@ static int mmc_blk_probe(struct mmc_card
if (!(card->csd.cmdclass & CCC_BLOCK_READ))
return -ENODEV;
card->complete_wq = alloc_workqueue("mmc_complete",
WQ_MEM_RECLAIM | WQ_HIGHPRI, 0);
-@@ -2929,9 +2946,14 @@ static int mmc_blk_probe(struct mmc_card
+@@ -2931,9 +2948,14 @@ static int mmc_blk_probe(struct mmc_card
string_get_size((u64)get_capacity(md->disk), 512, STRING_UNITS_2,
cap_str, sizeof(cap_str));
goto out;
--- a/drivers/mmc/core/core.c
+++ b/drivers/mmc/core/core.c
-@@ -1885,7 +1885,8 @@ EXPORT_SYMBOL(mmc_erase);
+@@ -1888,7 +1888,8 @@ EXPORT_SYMBOL(mmc_erase);
int mmc_can_erase(struct mmc_card *card)
{
* @dev: the device whose endpoint is being disabled
--- a/include/linux/usb.h
+++ b/include/linux/usb.h
-@@ -1850,6 +1850,8 @@ extern int usb_clear_halt(struct usb_dev
+@@ -1843,6 +1843,8 @@ extern int usb_clear_halt(struct usb_dev
extern int usb_reset_configuration(struct usb_device *dev);
extern int usb_set_interface(struct usb_device *dev, int ifnum, int alternate);
extern void usb_reset_endpoint(struct usb_device *dev, unsigned int epaddr);
#define USB_VENDOR_ID_BELKIN 0x050d
#define USB_DEVICE_ID_FLIP_KVM 0x3201
-@@ -1282,6 +1285,9 @@
+@@ -1283,6 +1286,9 @@
#define USB_VENDOR_ID_XAT 0x2505
#define USB_DEVICE_ID_XAT_CSR 0x0220
{ HID_USB_DEVICE(USB_VENDOR_ID_CHICONY, USB_DEVICE_ID_CHICONY_MULTI_TOUCH), HID_QUIRK_MULTI_INPUT },
{ HID_USB_DEVICE(USB_VENDOR_ID_CHICONY, USB_DEVICE_ID_CHICONY_PIXART_USB_OPTICAL_MOUSE), HID_QUIRK_ALWAYS_POLL },
{ HID_USB_DEVICE(USB_VENDOR_ID_CHICONY, USB_DEVICE_ID_CHICONY_PIXART_USB_OPTICAL_MOUSE2), HID_QUIRK_ALWAYS_POLL },
-@@ -198,6 +199,7 @@ static const struct hid_device_id hid_qu
+@@ -199,6 +200,7 @@ static const struct hid_device_id hid_qu
{ HID_USB_DEVICE(USB_VENDOR_ID_WISEGROUP, USB_DEVICE_ID_QUAD_USB_JOYPAD), HID_QUIRK_NOGET | HID_QUIRK_MULTI_INPUT },
{ HID_USB_DEVICE(USB_VENDOR_ID_XIN_MO, USB_DEVICE_ID_XIN_MO_DUAL_ARCADE), HID_QUIRK_MULTI_INPUT },
{ HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_GROUP_AUDIO), HID_QUIRK_NOGET },
struct rcar_du_device *rcdu = rcrtc->dev;
--- a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c
+++ b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c
-@@ -693,7 +693,7 @@ static void rockchip_drm_set_win_enabled
+@@ -701,7 +701,7 @@ static void rockchip_drm_set_win_enabled
}
static void vop_crtc_atomic_disable(struct drm_crtc *crtc,
{
struct vop *vop = to_vop(crtc);
-@@ -1261,8 +1261,10 @@ static void vop_crtc_atomic_begin(struct
+@@ -1269,8 +1269,10 @@ static void vop_crtc_atomic_begin(struct
}
static void vop_crtc_atomic_enable(struct drm_crtc *crtc,
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
-@@ -5640,17 +5640,19 @@ static void dm_update_crtc_active_planes
+@@ -5641,17 +5641,19 @@ static void dm_update_crtc_active_planes
}
static int dm_crtc_helper_atomic_check(struct drm_crtc *crtc,
WARN_ON(1);
return ret;
}
-@@ -5661,8 +5663,8 @@ static int dm_crtc_helper_atomic_check(s
+@@ -5662,8 +5664,8 @@ static int dm_crtc_helper_atomic_check(s
* planes are disabled, which is not supported by the hardware. And there is legacy
* userspace which stops using the HW cursor altogether in response to the resulting EINVAL.
*/
/* Skip the writeback encoder. */
--- a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c
+++ b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c
-@@ -1416,8 +1416,10 @@ static void vop_wait_for_irq_handler(str
+@@ -1424,8 +1424,10 @@ static void vop_wait_for_irq_handler(str
}
static int vop_crtc_atomic_check(struct drm_crtc *crtc,
struct drm_device *dev = rcrtc->crtc.dev;
--- a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c
+++ b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c
-@@ -1247,8 +1247,10 @@ static void vop_crtc_gamma_set(struct vo
+@@ -1255,8 +1255,10 @@ static void vop_crtc_gamma_set(struct vo
}
static void vop_crtc_atomic_begin(struct drm_crtc *crtc,
struct vop *vop = to_vop(crtc);
/*
-@@ -1463,8 +1465,10 @@ static int vop_crtc_atomic_check(struct
+@@ -1471,8 +1473,10 @@ static int vop_crtc_atomic_check(struct
}
static void vop_crtc_atomic_flush(struct drm_crtc *crtc,
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
-@@ -6566,9 +6566,7 @@ void amdgpu_dm_connector_init_helper(str
+@@ -6567,9 +6567,7 @@ void amdgpu_dm_connector_init_helper(str
if (connector_type == DRM_MODE_CONNECTOR_HDMIA ||
connector_type == DRM_MODE_CONNECTOR_DisplayPort ||
connector_type == DRM_MODE_CONNECTOR_eDP) {
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
-@@ -5511,25 +5511,6 @@ static int fill_hdr_info_packet(const st
+@@ -5512,25 +5512,6 @@ static int fill_hdr_info_packet(const st
return 0;
}
static int
amdgpu_dm_connector_atomic_check(struct drm_connector *conn,
struct drm_atomic_state *state)
-@@ -5545,7 +5526,7 @@ amdgpu_dm_connector_atomic_check(struct
+@@ -5546,7 +5527,7 @@ amdgpu_dm_connector_atomic_check(struct
if (!crtc)
return 0;
static const struct drm_display_mode innolux_at070tn92_mode = {
.clock = 33333,
.hdisplay = 800,
-@@ -4084,6 +4116,9 @@ static const struct of_device_id platfor
+@@ -4085,6 +4117,9 @@ static const struct of_device_id platfor
.compatible = "innolux,at043tn24",
.data = &innolux_at043tn24,
}, {
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
-@@ -5027,7 +5027,6 @@ static void dm_disable_vblank(struct drm
+@@ -5028,7 +5028,6 @@ static void dm_disable_vblank(struct drm
static const struct drm_crtc_funcs amdgpu_dm_crtc_funcs = {
.reset = dm_crtc_reset_state,
.destroy = amdgpu_dm_crtc_destroy,
/* -----------------------------------------------------------------------------
--- a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c
+++ b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c
-@@ -1649,7 +1649,6 @@ static const struct drm_crtc_funcs vop_c
+@@ -1657,7 +1657,6 @@ static const struct drm_crtc_funcs vop_c
.disable_vblank = vop_crtc_disable_vblank,
.set_crc_source = vop_crtc_set_crc_source,
.verify_crc_source = vop_crtc_verify_crc_source,
--- a/drivers/usb/host/xhci-ring.c
+++ b/drivers/usb/host/xhci-ring.c
-@@ -4277,9 +4277,9 @@ void xhci_queue_new_dequeue_state(struct
+@@ -4275,9 +4275,9 @@ void xhci_queue_new_dequeue_state(struct
}
ep = &xhci->devs[slot_id]->eps[ep_index];
if ((ep->ep_state & SET_DEQ_PENDING)) {
+++ /dev/null
-From: Pablo Neira Ayuso <pablo@netfilter.org>
-Date: Tue, 23 Mar 2021 00:56:28 +0100
-Subject: [PATCH] netfilter: nftables: update table flags from the commit
- phase
-
-Do not update table flags from the preparation phase. Store the flags
-update into the transaction, then update the flags from the commit
-phase.
-
-Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
----
-
---- a/include/net/netfilter/nf_tables.h
-+++ b/include/net/netfilter/nf_tables.h
-@@ -1479,13 +1479,16 @@ struct nft_trans_chain {
-
- struct nft_trans_table {
- bool update;
-- bool enable;
-+ u8 state;
-+ u32 flags;
- };
-
- #define nft_trans_table_update(trans) \
- (((struct nft_trans_table *)trans->data)->update)
--#define nft_trans_table_enable(trans) \
-- (((struct nft_trans_table *)trans->data)->enable)
-+#define nft_trans_table_state(trans) \
-+ (((struct nft_trans_table *)trans->data)->state)
-+#define nft_trans_table_flags(trans) \
-+ (((struct nft_trans_table *)trans->data)->flags)
-
- struct nft_trans_elem {
- struct nft_set *set;
---- a/net/netfilter/nf_tables_api.c
-+++ b/net/netfilter/nf_tables_api.c
-@@ -1074,6 +1074,12 @@ static void nf_tables_table_disable(stru
- nft_table_disable(net, table, 0);
- }
-
-+enum {
-+ NFT_TABLE_STATE_UNCHANGED = 0,
-+ NFT_TABLE_STATE_DORMANT,
-+ NFT_TABLE_STATE_WAKEUP
-+};
-+
- static int nf_tables_updtable(struct nft_ctx *ctx)
- {
- struct nft_trans *trans;
-@@ -1097,19 +1103,17 @@ static int nf_tables_updtable(struct nft
-
- if ((flags & NFT_TABLE_F_DORMANT) &&
- !(ctx->table->flags & NFT_TABLE_F_DORMANT)) {
-- nft_trans_table_enable(trans) = false;
-+ nft_trans_table_state(trans) = NFT_TABLE_STATE_DORMANT;
- } else if (!(flags & NFT_TABLE_F_DORMANT) &&
- ctx->table->flags & NFT_TABLE_F_DORMANT) {
-- ctx->table->flags &= ~NFT_TABLE_F_DORMANT;
- ret = nf_tables_table_enable(ctx->net, ctx->table);
- if (ret >= 0)
-- nft_trans_table_enable(trans) = true;
-- else
-- ctx->table->flags |= NFT_TABLE_F_DORMANT;
-+ nft_trans_table_state(trans) = NFT_TABLE_STATE_WAKEUP;
- }
- if (ret < 0)
- goto err;
-
-+ nft_trans_table_flags(trans) = flags;
- nft_trans_table_update(trans) = true;
- nft_trans_commit_list_add_tail(ctx->net, trans);
- return 0;
-@@ -8475,11 +8479,10 @@ static int nf_tables_commit(struct net *
- switch (trans->msg_type) {
- case NFT_MSG_NEWTABLE:
- if (nft_trans_table_update(trans)) {
-- if (!nft_trans_table_enable(trans)) {
-- nf_tables_table_disable(net,
-- trans->ctx.table);
-- trans->ctx.table->flags |= NFT_TABLE_F_DORMANT;
-- }
-+ if (nft_trans_table_state(trans) == NFT_TABLE_STATE_DORMANT)
-+ nf_tables_table_disable(net, trans->ctx.table);
-+
-+ trans->ctx.table->flags = nft_trans_table_flags(trans);
- } else {
- nft_clear(net, trans->ctx.table);
- }
-@@ -8728,11 +8731,9 @@ static int __nf_tables_abort(struct net
- switch (trans->msg_type) {
- case NFT_MSG_NEWTABLE:
- if (nft_trans_table_update(trans)) {
-- if (nft_trans_table_enable(trans)) {
-- nf_tables_table_disable(net,
-- trans->ctx.table);
-- trans->ctx.table->flags |= NFT_TABLE_F_DORMANT;
-- }
-+ if (nft_trans_table_state(trans) == NFT_TABLE_STATE_WAKEUP)
-+ nf_tables_table_disable(net, trans->ctx.table);
-+
- nft_trans_destroy(trans);
- } else {
- list_del_rcu(&trans->ctx.table->list);
u32 mahr = ravb_read(ndev, MAHR);
u32 malr = ravb_read(ndev, MALR);
-@@ -2191,7 +2193,7 @@ static int ravb_probe(struct platform_de
+@@ -2202,7 +2204,7 @@ static int ravb_probe(struct platform_de
priv->msg_enable = RAVB_DEF_MSG_ENABLE;
/* Read and set MAC address */
#define QUECTEL_VENDOR_ID 0x2c7c
/* These Quectel products use Quectel's vendor ID */
-@@ -1185,6 +1187,11 @@ static const struct usb_device_id option
+@@ -1187,6 +1189,11 @@ static const struct usb_device_id option
.driver_info = ZLP },
{ USB_DEVICE(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_BG96),
.driver_info = RSVD(4) },
--- a/drivers/firmware/qcom_scm.c
+++ b/drivers/firmware/qcom_scm.c
-@@ -1268,6 +1268,7 @@ static const struct of_device_id qcom_sc
+@@ -1275,6 +1275,7 @@ static const struct of_device_id qcom_sc
SCM_HAS_BUS_CLK)
},
{ .compatible = "qcom,scm-ipq4019" },
phydev->mii_ts->link_state(phydev->mii_ts, phydev);
--- a/drivers/net/phy/phylink.c
+++ b/drivers/net/phy/phylink.c
-@@ -931,7 +931,8 @@ void phylink_destroy(struct phylink *pl)
+@@ -932,7 +932,8 @@ void phylink_destroy(struct phylink *pl)
}
EXPORT_SYMBOL_GPL(phylink_destroy);
--- a/drivers/net/phy/phylink.c
+++ b/drivers/net/phy/phylink.c
-@@ -1449,6 +1449,11 @@ int phylink_ethtool_ksettings_set(struct
+@@ -1450,6 +1450,11 @@ int phylink_ethtool_ksettings_set(struct
* the presence of a PHY, this should not be changed as that
* should be determined from the media side advertisement.
*/
return phy_ethtool_ksettings_set(pl->phydev, kset);
}
-@@ -1750,8 +1755,11 @@ int phylink_ethtool_get_eee(struct phyli
+@@ -1751,8 +1756,11 @@ int phylink_ethtool_get_eee(struct phyli
ASSERT_RTNL();
return ret;
}
-@@ -1768,8 +1776,11 @@ int phylink_ethtool_set_eee(struct phyli
+@@ -1769,8 +1777,11 @@ int phylink_ethtool_set_eee(struct phyli
ASSERT_RTNL();
--- a/drivers/net/bonding/bond_main.c
+++ b/drivers/net/bonding/bond_main.c
-@@ -2050,6 +2050,8 @@ int bond_enslave(struct net_device *bond
+@@ -2056,6 +2056,8 @@ int bond_enslave(struct net_device *bond
goto err_unregister;
}