Something is odd, lots and lots of fuzz...
--- a/sound/pci/hda/patch_realtek.c
+++ b/sound/pci/hda/patch_realtek.c
-@@ -7029,6 +7029,7 @@ static const struct snd_pci_quirk alc269
+@@ -7028,6 +7028,7 @@ static const struct snd_pci_quirk alc269
SND_PCI_QUIRK(0x1025, 0x132a, "Acer TravelMate B114-21", ALC233_FIXUP_ACER_HEADSET_MIC),
SND_PCI_QUIRK(0x1025, 0x1330, "Acer TravelMate X514-51T", ALC255_FIXUP_ACER_HEADSET_MIC),
SND_PCI_QUIRK(0x1028, 0x0470, "Dell M101z", ALC269_FIXUP_DELL_M101Z),
--- a/sound/pci/hda/patch_realtek.c
+++ b/sound/pci/hda/patch_realtek.c
-@@ -5844,6 +5844,7 @@ enum {
+@@ -5843,6 +5843,7 @@ enum {
ALC298_FIXUP_LENOVO_SPK_VOLUME,
ALC256_FIXUP_DELL_INSPIRON_7559_SUBWOOFER,
ALC269_FIXUP_ATIV_BOOK_8,
ALC221_FIXUP_HP_MIC_NO_PRESENCE,
ALC256_FIXUP_ASUS_HEADSET_MODE,
ALC256_FIXUP_ASUS_MIC,
-@@ -6642,6 +6643,16 @@ static const struct hda_fixup alc269_fix
+@@ -6641,6 +6642,16 @@ static const struct hda_fixup alc269_fix
.chained = true,
.chain_id = ALC269_FIXUP_NO_SHUTUP
},
[ALC221_FIXUP_HP_MIC_NO_PRESENCE] = {
.type = HDA_FIXUP_PINS,
.v.pins = (const struct hda_pintbl[]) {
-@@ -7136,6 +7147,7 @@ static const struct snd_pci_quirk alc269
+@@ -7135,6 +7146,7 @@ static const struct snd_pci_quirk alc269
SND_PCI_QUIRK(0x103c, 0x2335, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC1),
SND_PCI_QUIRK(0x103c, 0x2336, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC1),
SND_PCI_QUIRK(0x103c, 0x2337, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC1),
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
- drivers/nfc/nxp-nci/i2c.c | 8 ++++++--
+ drivers/nfc/nxp-nci/i2c.c | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
-diff --git a/drivers/nfc/nxp-nci/i2c.c b/drivers/nfc/nxp-nci/i2c.c
-index 16c52d4c833c..e4e0744e2470 100644
--- a/drivers/nfc/nxp-nci/i2c.c
+++ b/drivers/nfc/nxp-nci/i2c.c
-@@ -138,7 +138,9 @@ static int nxp_nci_i2c_fw_read(struct nxp_nci_i2c_phy *phy,
+@@ -138,7 +138,9 @@ static int nxp_nci_i2c_fw_read(struct nx
skb_put_data(*skb, &header, NXP_NCI_FW_HDR_LEN);
r = i2c_master_recv(client, skb_put(*skb, frame_len), frame_len);
nfc_err(&client->dev,
"Invalid frame length: %u (expected %zu)\n",
r, frame_len);
-@@ -182,7 +184,9 @@ static int nxp_nci_i2c_nci_read(struct nxp_nci_i2c_phy *phy,
- return 0;
+@@ -179,7 +181,9 @@ static int nxp_nci_i2c_nci_read(struct n
+ skb_put_data(*skb, (void *)&header, NCI_CTRL_HDR_SIZE);
r = i2c_master_recv(client, skb_put(*skb, header.plen), header.plen);
- if (r != header.plen) {
nfc_err(&client->dev,
"Invalid frame payload length: %u (expected %u)\n",
r, header.plen);
---
-2.35.1
-
--- a/sound/pci/hda/patch_realtek.c
+++ b/sound/pci/hda/patch_realtek.c
-@@ -9087,6 +9087,7 @@ static const struct snd_pci_quirk alc269
+@@ -9086,6 +9086,7 @@ static const struct snd_pci_quirk alc269
SND_PCI_QUIRK(0x1d72, 0x1602, "RedmiBook", ALC255_FIXUP_XIAOMI_HEADSET_MIC),
SND_PCI_QUIRK(0x1d72, 0x1701, "XiaomiNotebook Pro", ALC298_FIXUP_DELL1_MIC_NO_PRESENCE),
SND_PCI_QUIRK(0x1d72, 0x1901, "RedmiBook 14", ALC256_FIXUP_ASUS_HEADSET_MIC),
--- a/sound/pci/hda/patch_realtek.c
+++ b/sound/pci/hda/patch_realtek.c
-@@ -10928,6 +10928,7 @@ static const struct snd_pci_quirk alc662
+@@ -10927,6 +10927,7 @@ static const struct snd_pci_quirk alc662
SND_PCI_QUIRK(0x103c, 0x1632, "HP RP5800", ALC662_FIXUP_HP_RP5800),
SND_PCI_QUIRK(0x103c, 0x8719, "HP", ALC897_FIXUP_HP_HSMIC_VERB),
SND_PCI_QUIRK(0x103c, 0x873e, "HP", ALC671_FIXUP_HP_HEADSET_MIC2),
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
- net/ipv4/fib_semantics.c | 2 +-
- net/ipv4/nexthop.c | 5 +++--
- net/ipv6/route.c | 2 +-
+ net/ipv4/fib_semantics.c | 2 +-
+ net/ipv4/nexthop.c | 5 +++--
+ net/ipv6/route.c | 2 +-
3 files changed, 5 insertions(+), 4 deletions(-)
-diff --git a/net/ipv4/fib_semantics.c b/net/ipv4/fib_semantics.c
-index 845adb92ef70..70c866308abe 100644
--- a/net/ipv4/fib_semantics.c
+++ b/net/ipv4/fib_semantics.c
-@@ -1831,7 +1831,7 @@ int fib_dump_info(struct sk_buff *skb, u32 portid, u32 seq, int event,
+@@ -1831,7 +1831,7 @@ int fib_dump_info(struct sk_buff *skb, u
goto nla_put_failure;
if (nexthop_is_blackhole(fi->nh))
rtm->rtm_type = RTN_BLACKHOLE;
goto offload;
}
-diff --git a/net/ipv4/nexthop.c b/net/ipv4/nexthop.c
-index 8bd3f5e3c0e7..2a17dc9413ae 100644
--- a/net/ipv4/nexthop.c
+++ b/net/ipv4/nexthop.c
-@@ -882,7 +882,7 @@ static void __remove_nexthop_fib(struct net *net, struct nexthop *nh)
+@@ -882,7 +882,7 @@ static void __remove_nexthop_fib(struct
/* __ip6_del_rt does a release, so do a hold here */
fib6_info_hold(f6i);
ipv6_stub->ip6_del_rt(net, f6i,
}
}
-@@ -1194,7 +1194,8 @@ static int insert_nexthop(struct net *net, struct nexthop *new_nh,
+@@ -1194,7 +1194,8 @@ out:
if (!rc) {
nh_base_seq_inc(net);
nexthop_notify(RTM_NEWNEXTHOP, new_nh, &cfg->nlinfo);
nexthop_replace_notify(net, new_nh, &cfg->nlinfo);
}
-diff --git a/net/ipv6/route.c b/net/ipv6/route.c
-index e67505c6d856..cdf215442d37 100644
--- a/net/ipv6/route.c
+++ b/net/ipv6/route.c
-@@ -5641,7 +5641,7 @@ static int rt6_fill_node(struct net *net, struct sk_buff *skb,
+@@ -5634,7 +5634,7 @@ static int rt6_fill_node(struct net *net
if (nexthop_is_blackhole(rt->nh))
rtm->rtm_type = RTN_BLACKHOLE;
rt6_fill_node_nexthop(skb, rt->nh, &nh_flags) < 0)
goto nla_put_failure;
---
-2.35.1
-
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
- drivers/nfc/nxp-nci/i2c.c | 8 ++++++--
+ drivers/nfc/nxp-nci/i2c.c | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
-diff --git a/drivers/nfc/nxp-nci/i2c.c b/drivers/nfc/nxp-nci/i2c.c
-index 3943a30053b3..f426dcdfcdd6 100644
--- a/drivers/nfc/nxp-nci/i2c.c
+++ b/drivers/nfc/nxp-nci/i2c.c
-@@ -122,7 +122,9 @@ static int nxp_nci_i2c_fw_read(struct nxp_nci_i2c_phy *phy,
+@@ -122,7 +122,9 @@ static int nxp_nci_i2c_fw_read(struct nx
skb_put_data(*skb, &header, NXP_NCI_FW_HDR_LEN);
r = i2c_master_recv(client, skb_put(*skb, frame_len), frame_len);
nfc_err(&client->dev,
"Invalid frame length: %u (expected %zu)\n",
r, frame_len);
-@@ -166,7 +168,9 @@ static int nxp_nci_i2c_nci_read(struct nxp_nci_i2c_phy *phy,
- return 0;
+@@ -163,7 +165,9 @@ static int nxp_nci_i2c_nci_read(struct n
+ skb_put_data(*skb, (void *)&header, NCI_CTRL_HDR_SIZE);
r = i2c_master_recv(client, skb_put(*skb, header.plen), header.plen);
- if (r != header.plen) {
nfc_err(&client->dev,
"Invalid frame payload length: %u (expected %u)\n",
r, header.plen);
---
-2.35.1
-
--- a/sound/pci/hda/patch_realtek.c
+++ b/sound/pci/hda/patch_realtek.c
-@@ -9158,6 +9158,7 @@ static const struct snd_pci_quirk alc269
+@@ -9157,6 +9157,7 @@ static const struct snd_pci_quirk alc269
SND_PCI_QUIRK(0x1d72, 0x1602, "RedmiBook", ALC255_FIXUP_XIAOMI_HEADSET_MIC),
SND_PCI_QUIRK(0x1d72, 0x1701, "XiaomiNotebook Pro", ALC298_FIXUP_DELL1_MIC_NO_PRESENCE),
SND_PCI_QUIRK(0x1d72, 0x1901, "RedmiBook 14", ALC256_FIXUP_ASUS_HEADSET_MIC),
--- a/sound/pci/hda/patch_realtek.c
+++ b/sound/pci/hda/patch_realtek.c
-@@ -11003,6 +11003,7 @@ static const struct snd_pci_quirk alc662
+@@ -11002,6 +11002,7 @@ static const struct snd_pci_quirk alc662
SND_PCI_QUIRK(0x103c, 0x1632, "HP RP5800", ALC662_FIXUP_HP_RP5800),
SND_PCI_QUIRK(0x103c, 0x8719, "HP", ALC897_FIXUP_HP_HSMIC_VERB),
SND_PCI_QUIRK(0x103c, 0x873e, "HP", ALC671_FIXUP_HP_HEADSET_MIC2),
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
- sound/usb/quirks-table.h | 132 +++++++++++++++++++++++++++++++++++++++
- sound/usb/quirks.c | 4 ++
+ sound/usb/quirks-table.h | 132 +++++++++++++++++++++++++++++++++++++++++++++++
+ sound/usb/quirks.c | 4 +
2 files changed, 136 insertions(+)
-diff --git a/sound/usb/quirks-table.h b/sound/usb/quirks-table.h
-index 7067d314fecd..f93201a830b5 100644
--- a/sound/usb/quirks-table.h
+++ b/sound/usb/quirks-table.h
-@@ -4167,6 +4167,138 @@ YAMAHA_DEVICE(0x7010, "UB99"),
- }
- }
+@@ -4169,6 +4169,138 @@ YAMAHA_DEVICE(0x7010, "UB99"),
},
-+{
-+ /*
+ {
+ /*
+ * Fiero SC-01 (firmware v1.0.0 @ 48 kHz)
+ */
+ USB_DEVICE(0x2b53, 0x0023),
+ }
+ }
+},
- {
- /*
++{
++ /*
* Fiero SC-01 (firmware v1.1.0)
-diff --git a/sound/usb/quirks.c b/sound/usb/quirks.c
-index 51138350f03c..968d90caeefa 100644
+ */
+ USB_DEVICE(0x2b53, 0x0031),
--- a/sound/usb/quirks.c
+++ b/sound/usb/quirks.c
-@@ -1915,6 +1915,10 @@ static const struct usb_audio_quirk_flags_table quirk_flags_table[] = {
+@@ -1911,6 +1911,10 @@ static const struct usb_audio_quirk_flag
QUIRK_FLAG_ALIGN_TRANSFER),
DEVICE_FLG(0x1224, 0x2a25, /* Jieli Technology USB PHY 2.0 */
QUIRK_FLAG_GET_SAMPLE_RATE),
DEVICE_FLG(0x2b53, 0x0031, /* Fiero SC-01 (firmware v1.1.0) */
QUIRK_FLAG_GENERIC_IMPLICIT_FB),
---
-2.35.1
-
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
- sound/usb/quirks-table.h | 68 ++++++++++++++++++++++++++++++++++++++++
- sound/usb/quirks.c | 2 ++
+ sound/usb/quirks-table.h | 68 +++++++++++++++++++++++++++++++++++++++++++++++
+ sound/usb/quirks.c | 2 +
2 files changed, 70 insertions(+)
-diff --git a/sound/usb/quirks-table.h b/sound/usb/quirks-table.h
-index 853da162fd18..7067d314fecd 100644
--- a/sound/usb/quirks-table.h
+++ b/sound/usb/quirks-table.h
@@ -4167,6 +4167,74 @@ YAMAHA_DEVICE(0x7010, "UB99"),
#undef USB_DEVICE_VENDOR_SPEC
#undef USB_AUDIO_DEVICE
-diff --git a/sound/usb/quirks.c b/sound/usb/quirks.c
-index a7bcae0a2c75..51138350f03c 100644
--- a/sound/usb/quirks.c
+++ b/sound/usb/quirks.c
-@@ -1915,6 +1915,8 @@ static const struct usb_audio_quirk_flags_table quirk_flags_table[] = {
+@@ -1911,6 +1911,8 @@ static const struct usb_audio_quirk_flag
QUIRK_FLAG_ALIGN_TRANSFER),
DEVICE_FLG(0x1224, 0x2a25, /* Jieli Technology USB PHY 2.0 */
QUIRK_FLAG_GET_SAMPLE_RATE),
/* Vendor matches */
VENDOR_FLG(0x045e, /* MS Lifecam */
---
-2.35.1
-
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
- sound/usb/quirks-table.h | 48 ++++++++++++++++++++++++++++++++++++++++
- sound/usb/quirks.c | 3 +++
+ sound/usb/quirks-table.h | 48 +++++++++++++++++++++++++++++++++++++++++++++++
+ sound/usb/quirks.c | 3 ++
2 files changed, 51 insertions(+)
-diff --git a/sound/usb/quirks-table.h b/sound/usb/quirks-table.h
-index 4f56e1784932..853da162fd18 100644
--- a/sound/usb/quirks-table.h
+++ b/sound/usb/quirks-table.h
-@@ -3802,6 +3802,54 @@ YAMAHA_DEVICE(0x7010, "UB99"),
- }
+@@ -3803,6 +3803,54 @@ YAMAHA_DEVICE(0x7010, "UB99"),
},
-+/*
+ /*
+ * MacroSilicon MS2100/MS2106 based AV capture cards
+ *
+ * These claim 96kHz 1ch in the descriptors, but are actually 48kHz 2ch.
+ }
+},
+
- /*
++/*
* MacroSilicon MS2109 based HDMI capture cards
*
-diff --git a/sound/usb/quirks.c b/sound/usb/quirks.c
-index 12ce69b04f63..a7bcae0a2c75 100644
+ * These claim 96kHz 1ch in the descriptors, but are actually 48kHz 2ch.
--- a/sound/usb/quirks.c
+++ b/sound/usb/quirks.c
-@@ -1478,6 +1478,7 @@ void snd_usb_set_format_quirk(struct snd_usb_substream *subs,
+@@ -1478,6 +1478,7 @@ void snd_usb_set_format_quirk(struct snd
case USB_ID(0x041e, 0x3f19): /* E-Mu 0204 USB */
set_format_emu_quirk(subs, fmt);
break;
case USB_ID(0x534d, 0x2109): /* MacroSilicon MS2109 */
subs->stream_offset_adj = 2;
break;
-@@ -1908,6 +1909,8 @@ static const struct usb_audio_quirk_flags_table quirk_flags_table[] = {
+@@ -1904,6 +1905,8 @@ static const struct usb_audio_quirk_flag
QUIRK_FLAG_IGNORE_CTL_ERROR),
DEVICE_FLG(0x413c, 0xa506, /* Dell AE515 sound bar */
QUIRK_FLAG_GET_SAMPLE_RATE),
DEVICE_FLG(0x534d, 0x2109, /* MacroSilicon MS2109 */
QUIRK_FLAG_ALIGN_TRANSFER),
DEVICE_FLG(0x1224, 0x2a25, /* Jieli Technology USB PHY 2.0 */
---
-2.35.1
-
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
- sound/soc/codecs/rt700.c | 12 +++++-------
- sound/soc/codecs/rt711-sdca.c | 10 +++-------
- sound/soc/codecs/rt711.c | 12 +++++-------
+ sound/soc/codecs/rt700.c | 12 +++++-------
+ sound/soc/codecs/rt711-sdca.c | 10 +++-------
+ sound/soc/codecs/rt711.c | 12 +++++-------
3 files changed, 13 insertions(+), 21 deletions(-)
-diff --git a/sound/soc/codecs/rt700.c b/sound/soc/codecs/rt700.c
-index c70fe8b06e6d..e049d672ccfd 100644
--- a/sound/soc/codecs/rt700.c
+++ b/sound/soc/codecs/rt700.c
-@@ -1124,6 +1124,11 @@ int rt700_init(struct device *dev, struct regmap *sdw_regmap,
+@@ -1114,6 +1114,11 @@ int rt700_init(struct device *dev, struc
mutex_init(&rt700->disable_irq_lock);
/*
* Mark hw_init to false
* HW init will be performed when device reports present
-@@ -1218,13 +1223,6 @@ int rt700_io_init(struct device *dev, struct sdw_slave *slave)
+@@ -1208,13 +1213,6 @@ int rt700_io_init(struct device *dev, st
/* Finish Initial Settings, set power to D3 */
regmap_write(rt700->regmap, RT700_SET_AUDIO_POWER_STATE, AC_PWRST_D3);
/*
* if set_jack callback occurred early than io_init,
* we set up the jack detection function now
-diff --git a/sound/soc/codecs/rt711-sdca.c b/sound/soc/codecs/rt711-sdca.c
-index 2950cde029f7..60aef52b3fe4 100644
--- a/sound/soc/codecs/rt711-sdca.c
+++ b/sound/soc/codecs/rt711-sdca.c
-@@ -1417,6 +1417,9 @@ int rt711_sdca_init(struct device *dev, struct regmap *regmap,
+@@ -1414,6 +1414,9 @@ int rt711_sdca_init(struct device *dev,
mutex_init(&rt711->calibrate_mutex);
mutex_init(&rt711->disable_irq_lock);
/*
* Mark hw_init to false
* HW init will be performed when device reports present
-@@ -1548,13 +1551,6 @@ int rt711_sdca_io_init(struct device *dev, struct sdw_slave *slave)
+@@ -1545,13 +1548,6 @@ int rt711_sdca_io_init(struct device *de
rt711_sdca_index_update_bits(rt711, RT711_VENDOR_HDA_CTL,
RT711_PUSH_BTN_INT_CTL0, 0x20, 0x00);
/* calibration */
ret = rt711_sdca_calibration(rt711);
if (ret < 0)
-diff --git a/sound/soc/codecs/rt711.c b/sound/soc/codecs/rt711.c
-index 344bfbc5683d..51a98e730fc8 100644
--- a/sound/soc/codecs/rt711.c
+++ b/sound/soc/codecs/rt711.c
-@@ -1202,6 +1202,10 @@ int rt711_init(struct device *dev, struct regmap *sdw_regmap,
+@@ -1199,6 +1199,10 @@ int rt711_init(struct device *dev, struc
mutex_init(&rt711->calibrate_mutex);
mutex_init(&rt711->disable_irq_lock);
/*
* Mark hw_init to false
* HW init will be performed when device reports present
-@@ -1309,14 +1313,8 @@ int rt711_io_init(struct device *dev, struct sdw_slave *slave)
+@@ -1306,14 +1310,8 @@ int rt711_io_init(struct device *dev, st
if (rt711->first_hw_init)
rt711_calibration(rt711);
/*
* if set_jack callback occurred early than io_init,
---
-2.35.1
-
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
- sound/soc/codecs/rt711-sdw.c | 3 +++
- sound/soc/codecs/rt711.c | 2 +-
+ sound/soc/codecs/rt711-sdw.c | 3 +++
+ sound/soc/codecs/rt711.c | 2 +-
2 files changed, 4 insertions(+), 1 deletion(-)
-diff --git a/sound/soc/codecs/rt711-sdw.c b/sound/soc/codecs/rt711-sdw.c
-index f49c94baa37c..4fe68bcf2a7c 100644
--- a/sound/soc/codecs/rt711-sdw.c
+++ b/sound/soc/codecs/rt711-sdw.c
-@@ -474,6 +474,9 @@ static int rt711_sdw_remove(struct sdw_slave *slave)
+@@ -474,6 +474,9 @@ static int rt711_sdw_remove(struct sdw_s
if (rt711->first_hw_init)
pm_runtime_disable(&slave->dev);
return 0;
}
-diff --git a/sound/soc/codecs/rt711.c b/sound/soc/codecs/rt711.c
-index fafb0ba8349f..6e9b532a6271 100644
--- a/sound/soc/codecs/rt711.c
+++ b/sound/soc/codecs/rt711.c
-@@ -1199,6 +1199,7 @@ int rt711_init(struct device *dev, struct regmap *sdw_regmap,
+@@ -1196,6 +1196,7 @@ int rt711_init(struct device *dev, struc
rt711->sdw_regmap = sdw_regmap;
rt711->regmap = regmap;
mutex_init(&rt711->disable_irq_lock);
/*
-@@ -1313,7 +1314,6 @@ int rt711_io_init(struct device *dev, struct sdw_slave *slave)
+@@ -1310,7 +1311,6 @@ int rt711_io_init(struct device *dev, st
rt711_jack_detect_handler);
INIT_DELAYED_WORK(&rt711->jack_btn_check_work,
rt711_btn_check_handler);
INIT_WORK(&rt711->calibration_work, rt711_calibration_work);
schedule_work(&rt711->calibration_work);
}
---
-2.35.1
-
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
- sound/soc/codecs/rt711-sdca-sdw.c | 3 +++
- sound/soc/codecs/rt711-sdca.c | 2 +-
+ sound/soc/codecs/rt711-sdca-sdw.c | 3 +++
+ sound/soc/codecs/rt711-sdca.c | 2 +-
2 files changed, 4 insertions(+), 1 deletion(-)
-diff --git a/sound/soc/codecs/rt711-sdca-sdw.c b/sound/soc/codecs/rt711-sdca-sdw.c
-index c722a2b0041f..a085b2f530aa 100644
--- a/sound/soc/codecs/rt711-sdca-sdw.c
+++ b/sound/soc/codecs/rt711-sdca-sdw.c
-@@ -373,6 +373,9 @@ static int rt711_sdca_sdw_remove(struct sdw_slave *slave)
+@@ -373,6 +373,9 @@ static int rt711_sdca_sdw_remove(struct
if (rt711->first_hw_init)
pm_runtime_disable(&slave->dev);
return 0;
}
-diff --git a/sound/soc/codecs/rt711-sdca.c b/sound/soc/codecs/rt711-sdca.c
-index c15fb98eac86..66555cb5d1e4 100644
--- a/sound/soc/codecs/rt711-sdca.c
+++ b/sound/soc/codecs/rt711-sdca.c
-@@ -1414,6 +1414,7 @@ int rt711_sdca_init(struct device *dev, struct regmap *regmap,
+@@ -1411,6 +1411,7 @@ int rt711_sdca_init(struct device *dev,
rt711->regmap = regmap;
rt711->mbq_regmap = mbq_regmap;
mutex_init(&rt711->disable_irq_lock);
/*
-@@ -1552,7 +1553,6 @@ int rt711_sdca_io_init(struct device *dev, struct sdw_slave *slave)
+@@ -1549,7 +1550,6 @@ int rt711_sdca_io_init(struct device *de
rt711_sdca_jack_detect_handler);
INIT_DELAYED_WORK(&rt711->jack_btn_check_work,
rt711_sdca_btn_check_handler);
}
/* calibration */
---
-2.35.1
-
Signed-off-by: David Sterba <dsterba@suse.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
- fs/btrfs/check-integrity.c | 2 +-
- fs/btrfs/extent-tree.c | 19 ++-
- fs/btrfs/extent_io.c | 18 +--
- fs/btrfs/extent_map.c | 4 +-
- fs/btrfs/raid56.c | 127 +++++++++---------
- fs/btrfs/raid56.h | 8 +-
- fs/btrfs/reada.c | 26 ++--
- fs/btrfs/scrub.c | 115 ++++++++--------
- fs/btrfs/volumes.c | 267 ++++++++++++++++++-------------------
- fs/btrfs/volumes.h | 38 ++++--
- fs/btrfs/zoned.c | 16 +--
+ fs/btrfs/check-integrity.c | 2
+ fs/btrfs/extent-tree.c | 19 +--
+ fs/btrfs/extent_io.c | 18 +--
+ fs/btrfs/extent_map.c | 4
+ fs/btrfs/raid56.c | 127 ++++++++++-----------
+ fs/btrfs/raid56.h | 8 -
+ fs/btrfs/reada.c | 26 ++--
+ fs/btrfs/scrub.c | 115 +++++++++----------
+ fs/btrfs/volumes.c | 267 ++++++++++++++++++++++-----------------------
+ fs/btrfs/volumes.h | 38 ++++--
+ fs/btrfs/zoned.c | 16 +-
11 files changed, 325 insertions(+), 315 deletions(-)
-diff --git a/fs/btrfs/check-integrity.c b/fs/btrfs/check-integrity.c
-index 86816088927f..81b11124b67a 100644
--- a/fs/btrfs/check-integrity.c
+++ b/fs/btrfs/check-integrity.c
-@@ -1455,7 +1455,7 @@ static int btrfsic_map_block(struct btrfsic_state *state, u64 bytenr, u32 len,
+@@ -1455,7 +1455,7 @@ static int btrfsic_map_block(struct btrf
struct btrfs_fs_info *fs_info = state->fs_info;
int ret;
u64 length;
struct btrfs_device *device;
length = len;
-diff --git a/fs/btrfs/extent-tree.c b/fs/btrfs/extent-tree.c
-index f11616f61dd6..e3514f9a4e8d 100644
--- a/fs/btrfs/extent-tree.c
+++ b/fs/btrfs/extent-tree.c
-@@ -1266,7 +1266,7 @@ static int btrfs_issue_discard(struct block_device *bdev, u64 start, u64 len,
+@@ -1266,7 +1266,7 @@ static int btrfs_issue_discard(struct bl
return ret;
}
{
struct btrfs_device *dev = stripe->dev;
struct btrfs_fs_info *fs_info = dev->fs_info;
-@@ -1313,22 +1313,21 @@ int btrfs_discard_extent(struct btrfs_fs_info *fs_info, u64 bytenr,
+@@ -1313,22 +1313,21 @@ int btrfs_discard_extent(struct btrfs_fs
u64 discarded_bytes = 0;
u64 end = bytenr + num_bytes;
u64 cur = bytenr;
/*
* Error can be -ENOMEM, -ENOENT (no such chunk mapping) or
* -EOPNOTSUPP. For any such error, @num_bytes is not updated,
-@@ -1337,8 +1336,8 @@ int btrfs_discard_extent(struct btrfs_fs_info *fs_info, u64 bytenr,
+@@ -1337,8 +1336,8 @@ int btrfs_discard_extent(struct btrfs_fs
if (ret < 0)
goto out;
u64 bytes;
struct btrfs_device *device = stripe->dev;
-@@ -1361,7 +1360,7 @@ int btrfs_discard_extent(struct btrfs_fs_info *fs_info, u64 bytenr,
+@@ -1361,7 +1360,7 @@ int btrfs_discard_extent(struct btrfs_fs
* And since there are two loops, explicitly
* go to out to avoid confusion.
*/
goto out;
}
-@@ -1372,7 +1371,7 @@ int btrfs_discard_extent(struct btrfs_fs_info *fs_info, u64 bytenr,
+@@ -1372,7 +1371,7 @@ int btrfs_discard_extent(struct btrfs_fs
*/
ret = 0;
}
cur += num_bytes;
}
out:
-diff --git a/fs/btrfs/extent_io.c b/fs/btrfs/extent_io.c
-index 059bd0753e27..b791e280af0c 100644
--- a/fs/btrfs/extent_io.c
+++ b/fs/btrfs/extent_io.c
-@@ -2290,7 +2290,7 @@ int repair_io_failure(struct btrfs_fs_info *fs_info, u64 ino, u64 start,
+@@ -2290,7 +2290,7 @@ int repair_io_failure(struct btrfs_fs_in
struct btrfs_device *dev;
u64 map_length = 0;
u64 sector;
int ret;
ASSERT(!(fs_info->sb->s_flags & SB_RDONLY));
-@@ -2304,7 +2304,7 @@ int repair_io_failure(struct btrfs_fs_info *fs_info, u64 ino, u64 start,
+@@ -2304,7 +2304,7 @@ int repair_io_failure(struct btrfs_fs_in
map_length = length;
/*
* associated to its stripes that don't go away while we are doing the
* read repair operation.
*/
-@@ -2317,28 +2317,28 @@ int repair_io_failure(struct btrfs_fs_info *fs_info, u64 ino, u64 start,
+@@ -2317,28 +2317,28 @@ int repair_io_failure(struct btrfs_fs_in
* stripe's dev and sector.
*/
ret = btrfs_map_block(fs_info, BTRFS_MAP_READ, logical,
if (!dev || !dev->bdev ||
!test_bit(BTRFS_DEV_STATE_WRITEABLE, &dev->dev_state)) {
btrfs_bio_counter_dec(fs_info);
-diff --git a/fs/btrfs/extent_map.c b/fs/btrfs/extent_map.c
-index 4a8e02f7b6c7..5a36add21305 100644
--- a/fs/btrfs/extent_map.c
+++ b/fs/btrfs/extent_map.c
-@@ -360,7 +360,7 @@ static void extent_map_device_set_bits(struct extent_map *em, unsigned bits)
+@@ -360,7 +360,7 @@ static void extent_map_device_set_bits(s
int i;
for (i = 0; i < map->num_stripes; i++) {
struct btrfs_device *device = stripe->dev;
set_extent_bits_nowait(&device->alloc_state, stripe->physical,
-@@ -375,7 +375,7 @@ static void extent_map_device_clear_bits(struct extent_map *em, unsigned bits)
+@@ -375,7 +375,7 @@ static void extent_map_device_clear_bits
int i;
for (i = 0; i < map->num_stripes; i++) {
struct btrfs_device *device = stripe->dev;
__clear_extent_bit(&device->alloc_state, stripe->physical,
-diff --git a/fs/btrfs/raid56.c b/fs/btrfs/raid56.c
-index d8d268ca8aa7..893d93e3c516 100644
--- a/fs/btrfs/raid56.c
+++ b/fs/btrfs/raid56.c
@@ -61,7 +61,7 @@ enum btrfs_rbio_ops {
/* while we're doing rmw on a stripe
* we put it into a hash table so we can
-@@ -271,7 +271,7 @@ static void cache_rbio_pages(struct btrfs_raid_bio *rbio)
+@@ -271,7 +271,7 @@ static void cache_rbio_pages(struct btrf
*/
static int rbio_bucket(struct btrfs_raid_bio *rbio)
{
/*
* we shift down quite a bit. We're using byte
-@@ -559,8 +559,7 @@ static int rbio_can_merge(struct btrfs_raid_bio *last,
+@@ -559,8 +559,7 @@ static int rbio_can_merge(struct btrfs_r
test_bit(RBIO_CACHE_BIT, &cur->flags))
return 0;
return 0;
/* we can't merge with different operations */
-@@ -673,7 +672,7 @@ static noinline int lock_stripe_add(struct btrfs_raid_bio *rbio)
+@@ -673,7 +672,7 @@ static noinline int lock_stripe_add(stru
spin_lock_irqsave(&h->lock, flags);
list_for_each_entry(cur, &h->hash_list, hash_list) {
continue;
spin_lock(&cur->bio_list_lock);
-@@ -838,7 +837,7 @@ static void __free_raid_bio(struct btrfs_raid_bio *rbio)
+@@ -838,7 +837,7 @@ static void __free_raid_bio(struct btrfs
}
}
kfree(rbio);
}
-@@ -906,7 +905,7 @@ static void raid_write_end_io(struct bio *bio)
+@@ -906,7 +905,7 @@ static void raid_write_end_io(struct bio
/* OK, we have read all the stripes we need to. */
max_errors = (rbio->operation == BTRFS_RBIO_PARITY_SCRUB) ?
if (atomic_read(&rbio->error) > max_errors)
err = BLK_STS_IOERR;
-@@ -961,12 +960,12 @@ static unsigned long rbio_nr_pages(unsigned long stripe_len, int nr_stripes)
+@@ -961,12 +960,12 @@ static unsigned long rbio_nr_pages(unsig
* this does not allocate any pages for rbio->pages.
*/
static struct btrfs_raid_bio *alloc_rbio(struct btrfs_fs_info *fs_info,
int num_pages = rbio_nr_pages(stripe_len, real_stripes);
int stripe_npages = DIV_ROUND_UP(stripe_len, PAGE_SIZE);
void *p;
-@@ -987,7 +986,7 @@ static struct btrfs_raid_bio *alloc_rbio(struct btrfs_fs_info *fs_info,
+@@ -987,7 +986,7 @@ static struct btrfs_raid_bio *alloc_rbio
spin_lock_init(&rbio->bio_list_lock);
INIT_LIST_HEAD(&rbio->stripe_cache);
INIT_LIST_HEAD(&rbio->hash_list);
rbio->fs_info = fs_info;
rbio->stripe_len = stripe_len;
rbio->nr_pages = num_pages;
-@@ -1015,9 +1014,9 @@ static struct btrfs_raid_bio *alloc_rbio(struct btrfs_fs_info *fs_info,
+@@ -1015,9 +1014,9 @@ static struct btrfs_raid_bio *alloc_rbio
CONSUME_ALLOC(rbio->finish_pbitmap, BITS_TO_LONGS(stripe_npages));
#undef CONSUME_ALLOC
nr_data = real_stripes - 2;
else
BUG();
-@@ -1077,10 +1076,10 @@ static int rbio_add_io_page(struct btrfs_raid_bio *rbio,
+@@ -1077,10 +1076,10 @@ static int rbio_add_io_page(struct btrfs
struct bio *last = bio_list->tail;
int ret;
struct bio *bio;
disk_start = stripe->physical + (page_index << PAGE_SHIFT);
/* if the device is missing, just fail this stripe */
-@@ -1155,7 +1154,7 @@ static void index_rbio_pages(struct btrfs_raid_bio *rbio)
+@@ -1155,7 +1154,7 @@ static void index_rbio_pages(struct btrf
int i = 0;
start = bio->bi_iter.bi_sector << 9;
page_index = stripe_offset >> PAGE_SHIFT;
if (bio_flagged(bio, BIO_CLONED))
-@@ -1179,7 +1178,7 @@ static void index_rbio_pages(struct btrfs_raid_bio *rbio)
+@@ -1179,7 +1178,7 @@ static void index_rbio_pages(struct btrf
*/
static noinline void finish_rmw(struct btrfs_raid_bio *rbio)
{
void **pointers = rbio->finish_pointers;
int nr_data = rbio->nr_data;
int stripe;
-@@ -1284,11 +1283,11 @@ static noinline void finish_rmw(struct btrfs_raid_bio *rbio)
+@@ -1284,11 +1283,11 @@ static noinline void finish_rmw(struct b
}
}
continue;
for (pagenr = 0; pagenr < rbio->stripe_npages; pagenr++) {
-@@ -1302,7 +1301,7 @@ static noinline void finish_rmw(struct btrfs_raid_bio *rbio)
+@@ -1302,7 +1301,7 @@ static noinline void finish_rmw(struct b
}
ret = rbio_add_io_page(rbio, &bio_list, page,
pagenr, rbio->stripe_len);
if (ret)
goto cleanup;
-@@ -1339,12 +1338,12 @@ static int find_bio_stripe(struct btrfs_raid_bio *rbio,
+@@ -1339,12 +1338,12 @@ static int find_bio_stripe(struct btrfs_
{
u64 physical = bio->bi_iter.bi_sector;
int i;
if (in_range(physical, stripe->physical, rbio->stripe_len) &&
stripe->dev->bdev && bio->bi_bdev == stripe->dev->bdev) {
return i;
-@@ -1365,7 +1364,7 @@ static int find_logical_bio_stripe(struct btrfs_raid_bio *rbio,
+@@ -1365,7 +1364,7 @@ static int find_logical_bio_stripe(struc
int i;
for (i = 0; i < rbio->nr_data; i++) {
if (in_range(logical, stripe_start, rbio->stripe_len))
return i;
-@@ -1456,7 +1455,7 @@ static void raid_rmw_end_io(struct bio *bio)
+@@ -1456,7 +1455,7 @@ static void raid_rmw_end_io(struct bio *
if (!atomic_dec_and_test(&rbio->stripes_pending))
return;
goto cleanup;
/*
-@@ -1538,8 +1537,8 @@ static int raid56_rmw_stripe(struct btrfs_raid_bio *rbio)
+@@ -1538,8 +1537,8 @@ static int raid56_rmw_stripe(struct btrf
}
/*
*/
atomic_set(&rbio->stripes_pending, bios_to_read);
while ((bio = bio_list_pop(&bio_list))) {
-@@ -1720,16 +1719,16 @@ static void btrfs_raid_unplug(struct blk_plug_cb *cb, bool from_schedule)
+@@ -1720,16 +1719,16 @@ static void btrfs_raid_unplug(struct blk
* our main entry point for writes from the rest of the FS.
*/
int raid56_parity_write(struct btrfs_fs_info *fs_info, struct bio *bio,
return PTR_ERR(rbio);
}
bio_list_add(&rbio->bio_list, bio);
-@@ -1842,7 +1841,7 @@ static void __raid_recover_end_io(struct btrfs_raid_bio *rbio)
+@@ -1842,7 +1841,7 @@ static void __raid_recover_end_io(struct
}
/* all raid6 handling here */
/*
* single failure, rebuild from parity raid5
* style
-@@ -1874,8 +1873,8 @@ static void __raid_recover_end_io(struct btrfs_raid_bio *rbio)
+@@ -1874,8 +1873,8 @@ static void __raid_recover_end_io(struct
* here due to a crc mismatch and we can't give them the
* data they want
*/
RAID5_P_STRIPE) {
err = BLK_STS_IOERR;
goto cleanup;
-@@ -1887,7 +1886,7 @@ static void __raid_recover_end_io(struct btrfs_raid_bio *rbio)
+@@ -1887,7 +1886,7 @@ static void __raid_recover_end_io(struct
goto pstripe;
}
raid6_datap_recov(rbio->real_stripes,
PAGE_SIZE, faila, pointers);
} else {
-@@ -2006,7 +2005,7 @@ static void raid_recover_end_io(struct bio *bio)
+@@ -2006,7 +2005,7 @@ static void raid_recover_end_io(struct b
if (!atomic_dec_and_test(&rbio->stripes_pending))
return;
rbio_orig_end_io(rbio, BLK_STS_IOERR);
else
__raid_recover_end_io(rbio);
-@@ -2074,7 +2073,7 @@ static int __raid56_parity_recover(struct btrfs_raid_bio *rbio)
+@@ -2074,7 +2073,7 @@ static int __raid56_parity_recover(struc
* were up to date, or we might have no bios to read because
* the devices were gone.
*/
__raid_recover_end_io(rbio);
return 0;
} else {
-@@ -2083,8 +2082,8 @@ static int __raid56_parity_recover(struct btrfs_raid_bio *rbio)
+@@ -2083,8 +2082,8 @@ static int __raid56_parity_recover(struc
}
/*
*/
atomic_set(&rbio->stripes_pending, bios_to_read);
while ((bio = bio_list_pop(&bio_list))) {
-@@ -2117,21 +2116,21 @@ static int __raid56_parity_recover(struct btrfs_raid_bio *rbio)
+@@ -2117,21 +2116,21 @@ cleanup:
* of the drive.
*/
int raid56_parity_recover(struct btrfs_fs_info *fs_info, struct bio *bio,
return PTR_ERR(rbio);
}
-@@ -2142,11 +2141,11 @@ int raid56_parity_recover(struct btrfs_fs_info *fs_info, struct bio *bio,
+@@ -2142,11 +2141,11 @@ int raid56_parity_recover(struct btrfs_f
rbio->faila = find_logical_bio_stripe(rbio, bio);
if (rbio->faila == -1) {
btrfs_warn(fs_info,
kfree(rbio);
return -EIO;
}
-@@ -2155,7 +2154,7 @@ int raid56_parity_recover(struct btrfs_fs_info *fs_info, struct bio *bio,
+@@ -2155,7 +2154,7 @@ int raid56_parity_recover(struct btrfs_f
btrfs_bio_counter_inc_noblocked(fs_info);
rbio->generic_bio_cnt = 1;
} else {
}
/*
-@@ -2214,7 +2213,7 @@ static void read_rebuild_work(struct btrfs_work *work)
+@@ -2214,7 +2213,7 @@ static void read_rebuild_work(struct btr
/*
* The following code is used to scrub/replace the parity stripe
*
*
* Note: We need make sure all the pages that add into the scrub/replace
* raid bio are correct and not be changed during the scrub/replace. That
-@@ -2223,14 +2222,14 @@ static void read_rebuild_work(struct btrfs_work *work)
+@@ -2223,14 +2222,14 @@ static void read_rebuild_work(struct btr
struct btrfs_raid_bio *
raid56_parity_alloc_scrub_rbio(struct btrfs_fs_info *fs_info, struct bio *bio,
if (IS_ERR(rbio))
return NULL;
bio_list_add(&rbio->bio_list, bio);
-@@ -2242,12 +2241,12 @@ raid56_parity_alloc_scrub_rbio(struct btrfs_fs_info *fs_info, struct bio *bio,
+@@ -2242,12 +2241,12 @@ raid56_parity_alloc_scrub_rbio(struct bt
rbio->operation = BTRFS_RBIO_PARITY_SCRUB;
/*
rbio->scrubp = i;
break;
}
-@@ -2260,7 +2259,7 @@ raid56_parity_alloc_scrub_rbio(struct btrfs_fs_info *fs_info, struct bio *bio,
+@@ -2260,7 +2259,7 @@ raid56_parity_alloc_scrub_rbio(struct bt
bitmap_copy(rbio->dbitmap, dbitmap, stripe_nsectors);
/*
* so we can free it at rbio_orig_end_io().
*/
rbio->generic_bio_cnt = 1;
-@@ -2275,10 +2274,10 @@ void raid56_add_scrub_pages(struct btrfs_raid_bio *rbio, struct page *page,
+@@ -2275,10 +2274,10 @@ void raid56_add_scrub_pages(struct btrfs
int stripe_offset;
int index;
index = stripe_offset >> PAGE_SHIFT;
rbio->bio_pages[index] = page;
}
-@@ -2312,7 +2311,7 @@ static int alloc_rbio_essential_pages(struct btrfs_raid_bio *rbio)
+@@ -2312,7 +2311,7 @@ static int alloc_rbio_essential_pages(st
static noinline void finish_parity_scrub(struct btrfs_raid_bio *rbio,
int need_check)
{
void **pointers = rbio->finish_pointers;
unsigned long *pbitmap = rbio->finish_pbitmap;
int nr_data = rbio->nr_data;
-@@ -2335,7 +2334,7 @@ static noinline void finish_parity_scrub(struct btrfs_raid_bio *rbio,
+@@ -2335,7 +2334,7 @@ static noinline void finish_parity_scrub
else
BUG();
is_replace = 1;
bitmap_copy(pbitmap, rbio->dbitmap, rbio->stripe_npages);
}
-@@ -2435,7 +2434,7 @@ static noinline void finish_parity_scrub(struct btrfs_raid_bio *rbio,
+@@ -2435,7 +2434,7 @@ writeback:
page = rbio_stripe_page(rbio, rbio->scrubp, pagenr);
ret = rbio_add_io_page(rbio, &bio_list, page,
pagenr, rbio->stripe_len);
if (ret)
goto cleanup;
-@@ -2483,7 +2482,7 @@ static inline int is_data_stripe(struct btrfs_raid_bio *rbio, int stripe)
+@@ -2483,7 +2482,7 @@ static inline int is_data_stripe(struct
*/
static void validate_rbio_for_parity_scrub(struct btrfs_raid_bio *rbio)
{
goto cleanup;
if (rbio->faila >= 0 || rbio->failb >= 0) {
-@@ -2504,7 +2503,7 @@ static void validate_rbio_for_parity_scrub(struct btrfs_raid_bio *rbio)
+@@ -2504,7 +2503,7 @@ static void validate_rbio_for_parity_scr
* the data, so the capability of the repair is declined.
* (In the case of RAID5, we can not repair anything)
*/
goto cleanup;
/*
-@@ -2625,8 +2624,8 @@ static void raid56_parity_scrub_stripe(struct btrfs_raid_bio *rbio)
+@@ -2625,8 +2624,8 @@ static void raid56_parity_scrub_stripe(s
}
/*
*/
atomic_set(&rbio->stripes_pending, bios_to_read);
while ((bio = bio_list_pop(&bio_list))) {
-@@ -2671,11 +2670,11 @@ void raid56_parity_submit_scrub_rbio(struct btrfs_raid_bio *rbio)
+@@ -2671,11 +2670,11 @@ void raid56_parity_submit_scrub_rbio(str
struct btrfs_raid_bio *
raid56_alloc_missing_rbio(struct btrfs_fs_info *fs_info, struct bio *bio,
if (IS_ERR(rbio))
return NULL;
-@@ -2695,7 +2694,7 @@ raid56_alloc_missing_rbio(struct btrfs_fs_info *fs_info, struct bio *bio,
+@@ -2695,7 +2694,7 @@ raid56_alloc_missing_rbio(struct btrfs_f
}
/*
* so we can free it at rbio_orig_end_io()
*/
rbio->generic_bio_cnt = 1;
-diff --git a/fs/btrfs/raid56.h b/fs/btrfs/raid56.h
-index 2503485db859..838d3a5e07ef 100644
--- a/fs/btrfs/raid56.h
+++ b/fs/btrfs/raid56.h
@@ -31,24 +31,24 @@ struct btrfs_raid_bio;
void raid56_submit_missing_rbio(struct btrfs_raid_bio *rbio);
int btrfs_alloc_stripe_hash_table(struct btrfs_fs_info *info);
-diff --git a/fs/btrfs/reada.c b/fs/btrfs/reada.c
-index 06713a8fe26b..eb96fdc3be25 100644
--- a/fs/btrfs/reada.c
+++ b/fs/btrfs/reada.c
-@@ -227,7 +227,7 @@ int btree_readahead_hook(struct extent_buffer *eb, int err)
+@@ -227,7 +227,7 @@ start_machine:
}
static struct reada_zone *reada_find_zone(struct btrfs_device *dev, u64 logical,
{
struct btrfs_fs_info *fs_info = dev->fs_info;
int ret;
-@@ -275,11 +275,11 @@ static struct reada_zone *reada_find_zone(struct btrfs_device *dev, u64 logical,
+@@ -275,11 +275,11 @@ static struct reada_zone *reada_find_zon
kref_init(&zone->refcnt);
zone->elems = 0;
zone->device = dev; /* our device always sits at index 0 */
spin_lock(&fs_info->reada_lock);
ret = radix_tree_insert(&dev->reada_zones,
-@@ -309,7 +309,7 @@ static struct reada_extent *reada_find_extent(struct btrfs_fs_info *fs_info,
+@@ -309,7 +309,7 @@ static struct reada_extent *reada_find_e
int ret;
struct reada_extent *re = NULL;
struct reada_extent *re_exist = NULL;
struct btrfs_device *dev;
struct btrfs_device *prev_dev;
u64 length;
-@@ -345,28 +345,28 @@ static struct reada_extent *reada_find_extent(struct btrfs_fs_info *fs_info,
+@@ -345,28 +345,28 @@ static struct reada_extent *reada_find_e
*/
length = fs_info->nodesize;
ret = btrfs_map_block(fs_info, BTRFS_MAP_GET_READ_MIRRORS, logical,
if (!zone)
continue;
-@@ -464,7 +464,7 @@ static struct reada_extent *reada_find_extent(struct btrfs_fs_info *fs_info,
+@@ -464,7 +464,7 @@ static struct reada_extent *reada_find_e
if (!have_zone)
goto error;
return re;
error:
-@@ -488,7 +488,7 @@ static struct reada_extent *reada_find_extent(struct btrfs_fs_info *fs_info,
+@@ -488,7 +488,7 @@ error:
kref_put(&zone->refcnt, reada_zone_release);
spin_unlock(&fs_info->reada_lock);
}
kfree(re);
return re_exist;
}
-diff --git a/fs/btrfs/scrub.c b/fs/btrfs/scrub.c
-index 6f2787b21530..0785d9d645fc 100644
--- a/fs/btrfs/scrub.c
+++ b/fs/btrfs/scrub.c
@@ -57,7 +57,7 @@ struct scrub_ctx;
u64 map_length;
};
-@@ -254,7 +254,7 @@ static void scrub_put_ctx(struct scrub_ctx *sctx);
+@@ -254,7 +254,7 @@ static void scrub_put_ctx(struct scrub_c
static inline int scrub_is_page_on_raid56(struct scrub_page *spage)
{
return spage->recover &&
}
static void scrub_pending_bio_inc(struct scrub_ctx *sctx)
-@@ -798,7 +798,7 @@ static inline void scrub_put_recover(struct btrfs_fs_info *fs_info,
+@@ -798,7 +798,7 @@ static inline void scrub_put_recover(str
{
if (refcount_dec_and_test(&recover->refs)) {
btrfs_bio_counter_dec(fs_info);
kfree(recover);
}
}
-@@ -1027,8 +1027,7 @@ static int scrub_handle_errored_block(struct scrub_block *sblock_to_check)
+@@ -1027,8 +1027,7 @@ static int scrub_handle_errored_block(st
sblock_other = sblocks_for_recheck + mirror_index;
} else {
struct scrub_recover *r = sblock_bad->pagev[0]->recover;
if (mirror_index >= max_allowed)
break;
-@@ -1218,14 +1217,14 @@ static int scrub_handle_errored_block(struct scrub_block *sblock_to_check)
+@@ -1218,14 +1217,14 @@ out:
return 0;
}
}
static inline void scrub_stripe_index_and_offset(u64 logical, u64 map_type,
-@@ -1269,7 +1268,7 @@ static int scrub_setup_recheck_block(struct scrub_block *original_sblock,
+@@ -1269,7 +1268,7 @@ static int scrub_setup_recheck_block(str
u64 flags = original_sblock->pagev[0]->flags;
u64 have_csum = original_sblock->pagev[0]->have_csum;
struct scrub_recover *recover;
u64 sublen;
u64 mapped_length;
u64 stripe_offset;
-@@ -1288,7 +1287,7 @@ static int scrub_setup_recheck_block(struct scrub_block *original_sblock,
+@@ -1288,7 +1287,7 @@ static int scrub_setup_recheck_block(str
while (length > 0) {
sublen = min_t(u64, length, fs_info->sectorsize);
mapped_length = sublen;
/*
* With a length of sectorsize, each returned stripe represents
-@@ -1296,27 +1295,27 @@ static int scrub_setup_recheck_block(struct scrub_block *original_sblock,
+@@ -1296,27 +1295,27 @@ static int scrub_setup_recheck_block(str
*/
btrfs_bio_counter_inc_blocked(fs_info);
ret = btrfs_map_sblock(fs_info, BTRFS_MAP_GET_READ_MIRRORS,
for (mirror_index = 0; mirror_index < nmirrors;
mirror_index++) {
-@@ -1348,17 +1347,17 @@ static int scrub_setup_recheck_block(struct scrub_block *original_sblock,
+@@ -1348,17 +1347,17 @@ leave_nomem:
sctx->fs_info->csum_size);
scrub_stripe_index_and_offset(logical,
BUG_ON(page_index >= original_sblock->page_count);
spage->physical_for_dev_replace =
-@@ -1401,7 +1400,7 @@ static int scrub_submit_raid56_bio_wait(struct btrfs_fs_info *fs_info,
+@@ -1401,7 +1400,7 @@ static int scrub_submit_raid56_bio_wait(
bio->bi_end_io = scrub_bio_wait_endio;
mirror_num = spage->sblock->pagev[0]->mirror_num;
spage->recover->map_length,
mirror_num, 0);
if (ret)
-@@ -2203,7 +2202,7 @@ static void scrub_missing_raid56_pages(struct scrub_block *sblock)
+@@ -2203,7 +2202,7 @@ static void scrub_missing_raid56_pages(s
struct btrfs_fs_info *fs_info = sctx->fs_info;
u64 length = sblock->page_count * PAGE_SIZE;
u64 logical = sblock->pagev[0]->logical;
struct bio *bio;
struct btrfs_raid_bio *rbio;
int ret;
-@@ -2211,19 +2210,19 @@ static void scrub_missing_raid56_pages(struct scrub_block *sblock)
+@@ -2211,19 +2210,19 @@ static void scrub_missing_raid56_pages(s
btrfs_bio_counter_inc_blocked(fs_info);
ret = btrfs_map_sblock(fs_info, BTRFS_MAP_GET_READ_MIRRORS, logical,
}
bio = btrfs_io_bio_alloc(0);
-@@ -2231,7 +2230,7 @@ static void scrub_missing_raid56_pages(struct scrub_block *sblock)
+@@ -2231,7 +2230,7 @@ static void scrub_missing_raid56_pages(s
bio->bi_private = sblock;
bio->bi_end_io = scrub_missing_raid56_end_io;
if (!rbio)
goto rbio_out;
-@@ -2249,9 +2248,9 @@ static void scrub_missing_raid56_pages(struct scrub_block *sblock)
+@@ -2249,9 +2248,9 @@ static void scrub_missing_raid56_pages(s
rbio_out:
bio_put(bio);
spin_lock(&sctx->stat_lock);
sctx->stat.malloc_errors++;
spin_unlock(&sctx->stat_lock);
-@@ -2826,7 +2825,7 @@ static void scrub_parity_check_and_repair(struct scrub_parity *sparity)
+@@ -2826,7 +2825,7 @@ static void scrub_parity_check_and_repai
struct btrfs_fs_info *fs_info = sctx->fs_info;
struct bio *bio;
struct btrfs_raid_bio *rbio;
u64 length;
int ret;
-@@ -2838,16 +2837,16 @@ static void scrub_parity_check_and_repair(struct scrub_parity *sparity)
+@@ -2838,16 +2837,16 @@ static void scrub_parity_check_and_repai
btrfs_bio_counter_inc_blocked(fs_info);
ret = btrfs_map_sblock(fs_info, BTRFS_MAP_WRITE, sparity->logic_start,
length, sparity->scrub_dev,
sparity->dbitmap,
sparity->nsectors);
-@@ -2860,9 +2859,9 @@ static void scrub_parity_check_and_repair(struct scrub_parity *sparity)
+@@ -2860,9 +2859,9 @@ static void scrub_parity_check_and_repai
rbio_out:
bio_put(bio);
bitmap_or(sparity->ebitmap, sparity->ebitmap, sparity->dbitmap,
sparity->nsectors);
spin_lock(&sctx->stat_lock);
-@@ -2901,7 +2900,7 @@ static noinline_for_stack int scrub_raid56_parity(struct scrub_ctx *sctx,
+@@ -2901,7 +2900,7 @@ static noinline_for_stack int scrub_raid
struct btrfs_root *root = fs_info->extent_root;
struct btrfs_root *csum_root = fs_info->csum_root;
struct btrfs_extent_item *extent;
u64 flags;
int ret;
int slot;
-@@ -3044,22 +3043,22 @@ static noinline_for_stack int scrub_raid56_parity(struct scrub_ctx *sctx,
+@@ -3044,22 +3043,22 @@ again:
extent_len);
mapped_length = extent_len;
ret = btrfs_lookup_csums_range(csum_root,
extent_logical,
-@@ -4311,20 +4310,20 @@ static void scrub_remap_extent(struct btrfs_fs_info *fs_info,
+@@ -4309,20 +4308,20 @@ static void scrub_remap_extent(struct bt
int *extent_mirror_num)
{
u64 mapped_length;
+ *extent_dev = bioc->stripes[0].dev;
+ btrfs_put_bioc(bioc);
}
-diff --git a/fs/btrfs/volumes.c b/fs/btrfs/volumes.c
-index 89ce0b449c22..2a93d80be9bf 100644
--- a/fs/btrfs/volumes.c
+++ b/fs/btrfs/volumes.c
-@@ -251,7 +251,7 @@ static void btrfs_dev_stat_print_on_load(struct btrfs_device *device);
+@@ -251,7 +251,7 @@ static void btrfs_dev_stat_print_on_load
static int __btrfs_map_block(struct btrfs_fs_info *fs_info,
enum btrfs_map_op op,
u64 logical, u64 *length,
int mirror_num, int need_raid_map);
/*
-@@ -5868,7 +5868,7 @@ static int find_live_mirror(struct btrfs_fs_info *fs_info,
+@@ -5832,7 +5832,7 @@ static int find_live_mirror(struct btrfs
}
/* Bubble-sort the stripe set to put the parity/syndrome stripes last */
{
int i;
int again = 1;
-@@ -5877,52 +5877,53 @@ static void sort_parity_stripes(struct btrfs_bio *bbio, int num_stripes)
+@@ -5841,52 +5841,53 @@ static void sort_parity_stripes(struct b
again = 0;
for (i = 0; i < num_stripes - 1; i++) {
/* Swap if parity is on a smaller index */
}
/* can REQ_OP_DISCARD be sent with other REQ like REQ_OP_WRITE? */
-@@ -5932,11 +5933,11 @@ void btrfs_put_bbio(struct btrfs_bio *bbio)
+@@ -5896,11 +5897,11 @@ void btrfs_put_bbio(struct btrfs_bio *bb
*/
static int __btrfs_map_block_for_discard(struct btrfs_fs_info *fs_info,
u64 logical, u64 *length_ret,
u64 length = *length_ret;
u64 offset;
u64 stripe_nr;
-@@ -5955,8 +5956,8 @@ static int __btrfs_map_block_for_discard(struct btrfs_fs_info *fs_info,
+@@ -5919,8 +5920,8 @@ static int __btrfs_map_block_for_discard
int ret = 0;
int i;
em = btrfs_get_chunk_map(fs_info, logical, length);
if (IS_ERR(em))
-@@ -6019,26 +6020,25 @@ static int __btrfs_map_block_for_discard(struct btrfs_fs_info *fs_info,
+@@ -5983,26 +5984,25 @@ static int __btrfs_map_block_for_discard
&stripe_index);
}
/*
* Special for the first stripe and
-@@ -6049,19 +6049,17 @@ static int __btrfs_map_block_for_discard(struct btrfs_fs_info *fs_info,
+@@ -6013,19 +6013,17 @@ static int __btrfs_map_block_for_discard
* off end_off
*/
if (i < sub_stripes)
}
stripe_index++;
-@@ -6071,9 +6069,9 @@ static int __btrfs_map_block_for_discard(struct btrfs_fs_info *fs_info,
+@@ -6035,9 +6033,9 @@ static int __btrfs_map_block_for_discard
}
}
out:
free_extent_map(em);
return ret;
-@@ -6097,7 +6095,7 @@ static int get_extra_mirror_from_replace(struct btrfs_fs_info *fs_info,
+@@ -6061,7 +6059,7 @@ static int get_extra_mirror_from_replace
u64 srcdev_devid, int *mirror_num,
u64 *physical)
{
int num_stripes;
int index_srcdev = 0;
int found = 0;
-@@ -6106,20 +6104,20 @@ static int get_extra_mirror_from_replace(struct btrfs_fs_info *fs_info,
+@@ -6070,20 +6068,20 @@ static int get_extra_mirror_from_replace
int ret = 0;
ret = __btrfs_map_block(fs_info, BTRFS_MAP_GET_READ_MIRRORS,
return -EIO;
}
-@@ -6129,7 +6127,7 @@ static int get_extra_mirror_from_replace(struct btrfs_fs_info *fs_info,
+@@ -6093,7 +6091,7 @@ static int get_extra_mirror_from_replace
* pointer to the one of the target drive.
*/
for (i = 0; i < num_stripes; i++) {
continue;
/*
-@@ -6137,15 +6135,15 @@ static int get_extra_mirror_from_replace(struct btrfs_fs_info *fs_info,
+@@ -6101,15 +6099,15 @@ static int get_extra_mirror_from_replace
* mirror with the lowest physical address
*/
if (found &&
ASSERT(found);
if (!found)
-@@ -6176,12 +6174,12 @@ static bool is_block_group_to_copy(struct btrfs_fs_info *fs_info, u64 logical)
+@@ -6140,12 +6138,12 @@ static bool is_block_group_to_copy(struc
}
static void handle_ops_on_dev_replace(enum btrfs_map_op op,
u64 srcdev_devid = dev_replace->srcdev->devid;
int tgtdev_indexes = 0;
int num_stripes = *num_stripes_ret;
-@@ -6211,17 +6209,17 @@ static void handle_ops_on_dev_replace(enum btrfs_map_op op,
+@@ -6175,17 +6173,17 @@ static void handle_ops_on_dev_replace(en
*/
index_where_to_add = num_stripes;
for (i = 0; i < num_stripes; i++) {
index_where_to_add++;
max_errors++;
tgtdev_indexes++;
-@@ -6241,30 +6239,29 @@ static void handle_ops_on_dev_replace(enum btrfs_map_op op,
+@@ -6205,30 +6203,29 @@ static void handle_ops_on_dev_replace(en
* full copy of the source drive.
*/
for (i = 0; i < num_stripes; i++) {
tgtdev_indexes++;
num_stripes++;
-@@ -6273,8 +6270,8 @@ static void handle_ops_on_dev_replace(enum btrfs_map_op op,
+@@ -6237,8 +6234,8 @@ static void handle_ops_on_dev_replace(en
*num_stripes_ret = num_stripes;
*max_errors_ret = max_errors;
}
static bool need_full_stripe(enum btrfs_map_op op)
-@@ -6377,7 +6374,7 @@ int btrfs_get_io_geometry(struct btrfs_fs_info *fs_info, struct extent_map *em,
+@@ -6341,7 +6338,7 @@ int btrfs_get_io_geometry(struct btrfs_f
static int __btrfs_map_block(struct btrfs_fs_info *fs_info,
enum btrfs_map_op op,
u64 logical, u64 *length,
int mirror_num, int need_raid_map)
{
struct extent_map *em;
-@@ -6392,7 +6389,7 @@ static int __btrfs_map_block(struct btrfs_fs_info *fs_info,
+@@ -6356,7 +6353,7 @@ static int __btrfs_map_block(struct btrf
int num_stripes;
int max_errors = 0;
int tgtdev_indexes = 0;
struct btrfs_dev_replace *dev_replace = &fs_info->dev_replace;
int dev_replace_is_ongoing = 0;
int num_alloc_stripes;
-@@ -6401,7 +6398,7 @@ static int __btrfs_map_block(struct btrfs_fs_info *fs_info,
+@@ -6365,7 +6362,7 @@ static int __btrfs_map_block(struct btrf
u64 raid56_full_stripe_start = (u64)-1;
struct btrfs_io_geometry geom;
ASSERT(op != BTRFS_MAP_DISCARD);
em = btrfs_get_chunk_map(fs_info, logical, *length);
-@@ -6545,20 +6542,20 @@ static int __btrfs_map_block(struct btrfs_fs_info *fs_info,
+@@ -6509,20 +6506,20 @@ static int __btrfs_map_block(struct btrf
tgtdev_indexes = num_stripes;
}
if (map->type & BTRFS_BLOCK_GROUP_RAID56_MASK && need_raid_map &&
(need_full_stripe(op) || mirror_num > 1)) {
u64 tmp;
-@@ -6570,15 +6567,15 @@ static int __btrfs_map_block(struct btrfs_fs_info *fs_info,
+@@ -6534,15 +6531,15 @@ static int __btrfs_map_block(struct btrf
/* Fill in the logical address of each stripe */
tmp = stripe_nr * data_stripes;
for (i = 0; i < data_stripes; i++)
}
if (need_full_stripe(op))
-@@ -6586,15 +6583,15 @@ static int __btrfs_map_block(struct btrfs_fs_info *fs_info,
+@@ -6550,15 +6547,15 @@ static int __btrfs_map_block(struct btrf
if (dev_replace_is_ongoing && dev_replace->tgtdev != NULL &&
need_full_stripe(op)) {
/*
* this is the case that REQ_READ && dev_replace_is_ongoing &&
-@@ -6603,9 +6600,9 @@ static int __btrfs_map_block(struct btrfs_fs_info *fs_info,
+@@ -6567,9 +6564,9 @@ static int __btrfs_map_block(struct btrf
*/
if (patch_the_first_stripe_for_dev_replace && num_stripes > 0) {
WARN_ON(num_stripes > 1);
}
out:
if (dev_replace_is_ongoing) {
-@@ -6619,40 +6616,40 @@ static int __btrfs_map_block(struct btrfs_fs_info *fs_info,
+@@ -6583,40 +6580,40 @@ out:
int btrfs_map_block(struct btrfs_fs_info *fs_info, enum btrfs_map_op op,
u64 logical, u64 *length,
if (bio->bi_status == BLK_STS_IOERR ||
bio->bi_status == BLK_STS_TARGET) {
struct btrfs_device *dev = btrfs_io_bio(bio)->device;
-@@ -6670,22 +6667,22 @@ static void btrfs_end_bio(struct bio *bio)
+@@ -6634,22 +6631,22 @@ static void btrfs_end_bio(struct bio *bi
}
}
bio->bi_status = BLK_STS_IOERR;
} else {
/*
-@@ -6695,18 +6692,18 @@ static void btrfs_end_bio(struct bio *bio)
+@@ -6659,18 +6656,18 @@ static void btrfs_end_bio(struct bio *bi
bio->bi_status = BLK_STS_OK;
}
btrfs_io_bio(bio)->device = dev;
bio->bi_end_io = btrfs_end_bio;
bio->bi_iter.bi_sector = physical >> 9;
-@@ -6736,20 +6733,20 @@ static void submit_stripe_bio(struct btrfs_bio *bbio, struct bio *bio,
+@@ -6700,20 +6697,20 @@ static void submit_stripe_bio(struct btr
btrfsic_submit_bio(bio);
}
}
}
-@@ -6764,35 +6761,35 @@ blk_status_t btrfs_map_bio(struct btrfs_fs_info *fs_info, struct bio *bio,
+@@ -6728,35 +6725,35 @@ blk_status_t btrfs_map_bio(struct btrfs_
int ret;
int dev_nr;
int total_devs;
map_length, mirror_num, 1);
}
-@@ -6808,12 +6805,12 @@ blk_status_t btrfs_map_bio(struct btrfs_fs_info *fs_info, struct bio *bio,
+@@ -6772,12 +6769,12 @@ blk_status_t btrfs_map_bio(struct btrfs_
}
for (dev_nr = 0; dev_nr < total_devs; dev_nr++) {
continue;
}
-@@ -6822,7 +6819,7 @@ blk_status_t btrfs_map_bio(struct btrfs_fs_info *fs_info, struct bio *bio,
+@@ -6786,7 +6783,7 @@ blk_status_t btrfs_map_bio(struct btrfs_
else
bio = first_bio;
}
btrfs_bio_counter_dec(fs_info);
return BLK_STS_OK;
-diff --git a/fs/btrfs/volumes.h b/fs/btrfs/volumes.h
-index 30288b728bbb..dfd7457709b3 100644
--- a/fs/btrfs/volumes.h
+++ b/fs/btrfs/volumes.h
@@ -306,11 +306,11 @@ struct btrfs_fs_devices {
*/
struct btrfs_io_bio {
unsigned int mirror_num;
-@@ -339,13 +339,29 @@ static inline void btrfs_io_bio_free_csum(struct btrfs_io_bio *io_bio)
+@@ -339,13 +339,29 @@ static inline void btrfs_io_bio_free_csu
}
}
struct btrfs_balance_args;
struct btrfs_balance_progress;
-@@ -457,14 +473,14 @@ static inline enum btrfs_map_op btrfs_op(struct bio *bio)
+@@ -441,14 +457,14 @@ static inline enum btrfs_map_op btrfs_op
}
}
int btrfs_get_io_geometry(struct btrfs_fs_info *fs_info, struct extent_map *map,
enum btrfs_map_op op, u64 logical,
struct btrfs_io_geometry *io_geom);
-diff --git a/fs/btrfs/zoned.c b/fs/btrfs/zoned.c
-index 3bc2f92cd197..ce4eeffc4f12 100644
--- a/fs/btrfs/zoned.c
+++ b/fs/btrfs/zoned.c
-@@ -1502,27 +1502,27 @@ int btrfs_zoned_issue_zeroout(struct btrfs_device *device, u64 physical, u64 len
+@@ -1502,27 +1502,27 @@ int btrfs_zoned_issue_zeroout(struct btr
static int read_zone_info(struct btrfs_fs_info *fs_info, u64 logical,
struct blk_zone *zone)
{
/* Missing device */
if (!dev->bdev)
---
-2.35.1
-
--- a/fs/btrfs/inode.c
+++ b/fs/btrfs/inode.c
-@@ -7957,7 +7957,19 @@ static int btrfs_dio_iomap_begin(struct
+@@ -7956,7 +7956,19 @@ static int btrfs_dio_iomap_begin(struct
if (test_bit(EXTENT_FLAG_COMPRESSED, &em->flags) ||
em->block_start == EXTENT_MAP_INLINE) {
free_extent_map(em);
Link: https://patchwork.freedesktop.org/patch/msgid/20220607182338.344270-4-javierm@redhat.com
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
- drivers/video/fbdev/core/fbmem.c | 12 ++++++++++++
+ drivers/video/fbdev/core/fbmem.c | 12 ++++++++++++
1 file changed, 12 insertions(+)
-diff --git a/drivers/video/fbdev/core/fbmem.c b/drivers/video/fbdev/core/fbmem.c
-index 6d7868cc1fca..528c87ff14d8 100644
--- a/drivers/video/fbdev/core/fbmem.c
+++ b/drivers/video/fbdev/core/fbmem.c
@@ -19,6 +19,7 @@
#include <linux/mm.h>
#include <linux/mman.h>
#include <linux/vt.h>
-@@ -1786,6 +1787,17 @@ int remove_conflicting_framebuffers(struct apertures_struct *a,
+@@ -1774,6 +1775,17 @@ int remove_conflicting_framebuffers(stru
do_free = true;
}
mutex_lock(®istration_lock);
do_remove_conflicting_framebuffers(a, name, primary);
mutex_unlock(®istration_lock);
---
-2.35.1
-
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
- include/net/netfilter/nf_tables.h | 14 +++---
- net/netfilter/nf_tables_api.c | 72 ++++++++++++++++++++++---------
+ include/net/netfilter/nf_tables.h | 14 ++++---
+ net/netfilter/nf_tables_api.c | 72 ++++++++++++++++++++++++++------------
2 files changed, 60 insertions(+), 26 deletions(-)
-diff --git a/include/net/netfilter/nf_tables.h b/include/net/netfilter/nf_tables.h
-index bcfee89012a1..f56a1071c005 100644
--- a/include/net/netfilter/nf_tables.h
+++ b/include/net/netfilter/nf_tables.h
-@@ -642,18 +642,22 @@ static inline void nft_set_ext_prepare(struct nft_set_ext_tmpl *tmpl)
+@@ -636,18 +636,22 @@ static inline void nft_set_ext_prepare(s
tmpl->len = sizeof(struct nft_set_ext);
}
}
static inline void nft_set_ext_init(struct nft_set_ext *ext,
-diff --git a/net/netfilter/nf_tables_api.c b/net/netfilter/nf_tables_api.c
-index 65d96439e2be..a32acf056e32 100644
--- a/net/netfilter/nf_tables_api.c
+++ b/net/netfilter/nf_tables_api.c
-@@ -5736,8 +5736,11 @@ static int nft_add_set_elem(struct nft_ctx *ctx, struct nft_set *set,
+@@ -5729,8 +5729,11 @@ static int nft_add_set_elem(struct nft_c
if (!nla[NFTA_SET_ELEM_KEY] && !(flags & NFT_SET_ELEM_CATCHALL))
return -EINVAL;
if (set->flags & NFT_SET_MAP) {
if (nla[NFTA_SET_ELEM_DATA] == NULL &&
-@@ -5846,7 +5849,9 @@ static int nft_add_set_elem(struct nft_ctx *ctx, struct nft_set *set,
+@@ -5839,7 +5842,9 @@ static int nft_add_set_elem(struct nft_c
if (err < 0)
goto err_set_elem_expr;
}
if (nla[NFTA_SET_ELEM_KEY_END]) {
-@@ -5855,22 +5860,31 @@ static int nft_add_set_elem(struct nft_ctx *ctx, struct nft_set *set,
+@@ -5848,22 +5853,31 @@ static int nft_add_set_elem(struct nft_c
if (err < 0)
goto err_parse_key;
}
if (nla[NFTA_SET_ELEM_OBJREF] != NULL) {
-@@ -5885,7 +5899,9 @@ static int nft_add_set_elem(struct nft_ctx *ctx, struct nft_set *set,
+@@ -5878,7 +5892,9 @@ static int nft_add_set_elem(struct nft_c
err = PTR_ERR(obj);
goto err_parse_key_end;
}
}
if (nla[NFTA_SET_ELEM_DATA] != NULL) {
-@@ -5919,7 +5935,9 @@ static int nft_add_set_elem(struct nft_ctx *ctx, struct nft_set *set,
+@@ -5912,7 +5928,9 @@ static int nft_add_set_elem(struct nft_c
NFT_VALIDATE_NEED);
}
}
/* The full maximum length of userdata can exceed the maximum
-@@ -5929,9 +5947,12 @@ static int nft_add_set_elem(struct nft_ctx *ctx, struct nft_set *set,
+@@ -5922,9 +5940,12 @@ static int nft_add_set_elem(struct nft_c
ulen = 0;
if (nla[NFTA_SET_ELEM_USERDATA] != NULL) {
ulen = nla_len(nla[NFTA_SET_ELEM_USERDATA]);
}
err = -ENOMEM;
-@@ -6157,8 +6178,11 @@ static int nft_del_setelem(struct nft_ctx *ctx, struct nft_set *set,
+@@ -6150,8 +6171,11 @@ static int nft_del_setelem(struct nft_ct
nft_set_ext_prepare(&tmpl);
if (nla[NFTA_SET_ELEM_KEY]) {
err = nft_setelem_parse_key(ctx, set, &elem.key.val,
-@@ -6166,16 +6190,20 @@ static int nft_del_setelem(struct nft_ctx *ctx, struct nft_set *set,
+@@ -6159,16 +6183,20 @@ static int nft_del_setelem(struct nft_ct
if (err < 0)
return err;
}
err = -ENOMEM;
-@@ -6183,7 +6211,7 @@ static int nft_del_setelem(struct nft_ctx *ctx, struct nft_set *set,
+@@ -6176,7 +6204,7 @@ static int nft_del_setelem(struct nft_ct
elem.key_end.val.data, NULL, 0, 0,
GFP_KERNEL);
if (elem.priv == NULL)
ext = nft_set_elem_ext(set, elem.priv);
if (flags)
-@@ -6207,6 +6235,8 @@ static int nft_del_setelem(struct nft_ctx *ctx, struct nft_set *set,
+@@ -6200,6 +6228,8 @@ fail_ops:
kfree(trans);
fail_trans:
kfree(elem.priv);
fail_elem:
nft_data_release(&elem.key.val, NFT_DATA_VALUE);
return err;
---
-2.35.1
-
--- a/sound/pci/hda/patch_realtek.c
+++ b/sound/pci/hda/patch_realtek.c
-@@ -9425,6 +9425,7 @@ static const struct snd_pci_quirk alc269
+@@ -9424,6 +9424,7 @@ static const struct snd_pci_quirk alc269
SND_PCI_QUIRK(0x1d72, 0x1602, "RedmiBook", ALC255_FIXUP_XIAOMI_HEADSET_MIC),
SND_PCI_QUIRK(0x1d72, 0x1701, "XiaomiNotebook Pro", ALC298_FIXUP_DELL1_MIC_NO_PRESENCE),
SND_PCI_QUIRK(0x1d72, 0x1901, "RedmiBook 14", ALC256_FIXUP_ASUS_HEADSET_MIC),
--- a/sound/pci/hda/patch_realtek.c
+++ b/sound/pci/hda/patch_realtek.c
-@@ -11271,6 +11271,7 @@ static const struct snd_pci_quirk alc662
+@@ -11270,6 +11270,7 @@ static const struct snd_pci_quirk alc662
SND_PCI_QUIRK(0x103c, 0x1632, "HP RP5800", ALC662_FIXUP_HP_RP5800),
SND_PCI_QUIRK(0x103c, 0x8719, "HP", ALC897_FIXUP_HP_HSMIC_VERB),
SND_PCI_QUIRK(0x103c, 0x873e, "HP", ALC671_FIXUP_HP_HEADSET_MIC2),
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
- sound/usb/quirks-table.h | 132 +++++++++++++++++++++++++++++++++++++++
- sound/usb/quirks.c | 4 ++
+ sound/usb/quirks-table.h | 132 +++++++++++++++++++++++++++++++++++++++++++++++
+ sound/usb/quirks.c | 4 +
2 files changed, 136 insertions(+)
-diff --git a/sound/usb/quirks-table.h b/sound/usb/quirks-table.h
-index 7067d314fecd..f93201a830b5 100644
--- a/sound/usb/quirks-table.h
+++ b/sound/usb/quirks-table.h
-@@ -4167,6 +4167,138 @@ YAMAHA_DEVICE(0x7010, "UB99"),
- }
- }
+@@ -4169,6 +4169,138 @@ YAMAHA_DEVICE(0x7010, "UB99"),
},
-+{
-+ /*
+ {
+ /*
+ * Fiero SC-01 (firmware v1.0.0 @ 48 kHz)
+ */
+ USB_DEVICE(0x2b53, 0x0023),
+ }
+ }
+},
- {
- /*
++{
++ /*
* Fiero SC-01 (firmware v1.1.0)
-diff --git a/sound/usb/quirks.c b/sound/usb/quirks.c
-index 51138350f03c..968d90caeefa 100644
+ */
+ USB_DEVICE(0x2b53, 0x0031),
--- a/sound/usb/quirks.c
+++ b/sound/usb/quirks.c
-@@ -1915,6 +1915,10 @@ static const struct usb_audio_quirk_flags_table quirk_flags_table[] = {
+@@ -1911,6 +1911,10 @@ static const struct usb_audio_quirk_flag
QUIRK_FLAG_ALIGN_TRANSFER),
DEVICE_FLG(0x1224, 0x2a25, /* Jieli Technology USB PHY 2.0 */
QUIRK_FLAG_GET_SAMPLE_RATE),
DEVICE_FLG(0x2b53, 0x0031, /* Fiero SC-01 (firmware v1.1.0) */
QUIRK_FLAG_GENERIC_IMPLICIT_FB),
---
-2.35.1
-
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
- sound/usb/quirks-table.h | 68 ++++++++++++++++++++++++++++++++++++++++
- sound/usb/quirks.c | 2 ++
+ sound/usb/quirks-table.h | 68 +++++++++++++++++++++++++++++++++++++++++++++++
+ sound/usb/quirks.c | 2 +
2 files changed, 70 insertions(+)
-diff --git a/sound/usb/quirks-table.h b/sound/usb/quirks-table.h
-index 853da162fd18..7067d314fecd 100644
--- a/sound/usb/quirks-table.h
+++ b/sound/usb/quirks-table.h
@@ -4167,6 +4167,74 @@ YAMAHA_DEVICE(0x7010, "UB99"),
#undef USB_DEVICE_VENDOR_SPEC
#undef USB_AUDIO_DEVICE
-diff --git a/sound/usb/quirks.c b/sound/usb/quirks.c
-index a7bcae0a2c75..51138350f03c 100644
--- a/sound/usb/quirks.c
+++ b/sound/usb/quirks.c
-@@ -1915,6 +1915,8 @@ static const struct usb_audio_quirk_flags_table quirk_flags_table[] = {
+@@ -1911,6 +1911,8 @@ static const struct usb_audio_quirk_flag
QUIRK_FLAG_ALIGN_TRANSFER),
DEVICE_FLG(0x1224, 0x2a25, /* Jieli Technology USB PHY 2.0 */
QUIRK_FLAG_GET_SAMPLE_RATE),
/* Vendor matches */
VENDOR_FLG(0x045e, /* MS Lifecam */
---
-2.35.1
-
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
- sound/usb/quirks-table.h | 48 ++++++++++++++++++++++++++++++++++++++++
- sound/usb/quirks.c | 3 +++
+ sound/usb/quirks-table.h | 48 +++++++++++++++++++++++++++++++++++++++++++++++
+ sound/usb/quirks.c | 3 ++
2 files changed, 51 insertions(+)
-diff --git a/sound/usb/quirks-table.h b/sound/usb/quirks-table.h
-index 4f56e1784932..853da162fd18 100644
--- a/sound/usb/quirks-table.h
+++ b/sound/usb/quirks-table.h
-@@ -3802,6 +3802,54 @@ YAMAHA_DEVICE(0x7010, "UB99"),
- }
+@@ -3803,6 +3803,54 @@ YAMAHA_DEVICE(0x7010, "UB99"),
},
-+/*
+ /*
+ * MacroSilicon MS2100/MS2106 based AV capture cards
+ *
+ * These claim 96kHz 1ch in the descriptors, but are actually 48kHz 2ch.
+ }
+},
+
- /*
++/*
* MacroSilicon MS2109 based HDMI capture cards
*
-diff --git a/sound/usb/quirks.c b/sound/usb/quirks.c
-index 12ce69b04f63..a7bcae0a2c75 100644
+ * These claim 96kHz 1ch in the descriptors, but are actually 48kHz 2ch.
--- a/sound/usb/quirks.c
+++ b/sound/usb/quirks.c
-@@ -1478,6 +1478,7 @@ void snd_usb_set_format_quirk(struct snd_usb_substream *subs,
+@@ -1478,6 +1478,7 @@ void snd_usb_set_format_quirk(struct snd
case USB_ID(0x041e, 0x3f19): /* E-Mu 0204 USB */
set_format_emu_quirk(subs, fmt);
break;
case USB_ID(0x534d, 0x2109): /* MacroSilicon MS2109 */
subs->stream_offset_adj = 2;
break;
-@@ -1908,6 +1909,8 @@ static const struct usb_audio_quirk_flags_table quirk_flags_table[] = {
+@@ -1904,6 +1905,8 @@ static const struct usb_audio_quirk_flag
QUIRK_FLAG_IGNORE_CTL_ERROR),
DEVICE_FLG(0x413c, 0xa506, /* Dell AE515 sound bar */
QUIRK_FLAG_GET_SAMPLE_RATE),
DEVICE_FLG(0x534d, 0x2109, /* MacroSilicon MS2109 */
QUIRK_FLAG_ALIGN_TRANSFER),
DEVICE_FLG(0x1224, 0x2a25, /* Jieli Technology USB PHY 2.0 */
---
-2.35.1
-
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
- sound/soc/codecs/rt700.c | 12 +++++-------
- sound/soc/codecs/rt711-sdca.c | 10 +++-------
- sound/soc/codecs/rt711.c | 12 +++++-------
+ sound/soc/codecs/rt700.c | 12 +++++-------
+ sound/soc/codecs/rt711-sdca.c | 10 +++-------
+ sound/soc/codecs/rt711.c | 12 +++++-------
3 files changed, 13 insertions(+), 21 deletions(-)
-diff --git a/sound/soc/codecs/rt700.c b/sound/soc/codecs/rt700.c
-index b16fbde02986..3de3406d653e 100644
--- a/sound/soc/codecs/rt700.c
+++ b/sound/soc/codecs/rt700.c
-@@ -1124,6 +1124,11 @@ int rt700_init(struct device *dev, struct regmap *sdw_regmap,
+@@ -1114,6 +1114,11 @@ int rt700_init(struct device *dev, struc
mutex_init(&rt700->disable_irq_lock);
/*
* Mark hw_init to false
* HW init will be performed when device reports present
-@@ -1218,13 +1223,6 @@ int rt700_io_init(struct device *dev, struct sdw_slave *slave)
+@@ -1208,13 +1213,6 @@ int rt700_io_init(struct device *dev, st
/* Finish Initial Settings, set power to D3 */
regmap_write(rt700->regmap, RT700_SET_AUDIO_POWER_STATE, AC_PWRST_D3);
/*
* if set_jack callback occurred early than io_init,
* we set up the jack detection function now
-diff --git a/sound/soc/codecs/rt711-sdca.c b/sound/soc/codecs/rt711-sdca.c
-index 83e4c4e4d1e2..dfe3c9299ebd 100644
--- a/sound/soc/codecs/rt711-sdca.c
+++ b/sound/soc/codecs/rt711-sdca.c
-@@ -1417,6 +1417,9 @@ int rt711_sdca_init(struct device *dev, struct regmap *regmap,
+@@ -1414,6 +1414,9 @@ int rt711_sdca_init(struct device *dev,
mutex_init(&rt711->calibrate_mutex);
mutex_init(&rt711->disable_irq_lock);
/*
* Mark hw_init to false
* HW init will be performed when device reports present
-@@ -1548,13 +1551,6 @@ int rt711_sdca_io_init(struct device *dev, struct sdw_slave *slave)
+@@ -1545,13 +1548,6 @@ int rt711_sdca_io_init(struct device *de
rt711_sdca_index_update_bits(rt711, RT711_VENDOR_HDA_CTL,
RT711_PUSH_BTN_INT_CTL0, 0x20, 0x00);
/* calibration */
ret = rt711_sdca_calibration(rt711);
if (ret < 0)
-diff --git a/sound/soc/codecs/rt711.c b/sound/soc/codecs/rt711.c
-index 18a0de77c477..9df800abfc2d 100644
--- a/sound/soc/codecs/rt711.c
+++ b/sound/soc/codecs/rt711.c
-@@ -1209,6 +1209,10 @@ int rt711_init(struct device *dev, struct regmap *sdw_regmap,
+@@ -1206,6 +1206,10 @@ int rt711_init(struct device *dev, struc
mutex_init(&rt711->calibrate_mutex);
mutex_init(&rt711->disable_irq_lock);
/*
* Mark hw_init to false
* HW init will be performed when device reports present
-@@ -1316,14 +1320,8 @@ int rt711_io_init(struct device *dev, struct sdw_slave *slave)
+@@ -1313,14 +1317,8 @@ int rt711_io_init(struct device *dev, st
if (rt711->first_hw_init)
rt711_calibration(rt711);
/*
* if set_jack callback occurred early than io_init,
---
-2.35.1
-
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
- sound/soc/codecs/rt711-sdw.c | 3 +++
- sound/soc/codecs/rt711.c | 2 +-
+ sound/soc/codecs/rt711-sdw.c | 3 +++
+ sound/soc/codecs/rt711.c | 2 +-
2 files changed, 4 insertions(+), 1 deletion(-)
-diff --git a/sound/soc/codecs/rt711-sdw.c b/sound/soc/codecs/rt711-sdw.c
-index f49c94baa37c..4fe68bcf2a7c 100644
--- a/sound/soc/codecs/rt711-sdw.c
+++ b/sound/soc/codecs/rt711-sdw.c
-@@ -474,6 +474,9 @@ static int rt711_sdw_remove(struct sdw_slave *slave)
+@@ -474,6 +474,9 @@ static int rt711_sdw_remove(struct sdw_s
if (rt711->first_hw_init)
pm_runtime_disable(&slave->dev);
return 0;
}
-diff --git a/sound/soc/codecs/rt711.c b/sound/soc/codecs/rt711.c
-index 9958067e80f1..db70d8073c0b 100644
--- a/sound/soc/codecs/rt711.c
+++ b/sound/soc/codecs/rt711.c
-@@ -1206,6 +1206,7 @@ int rt711_init(struct device *dev, struct regmap *sdw_regmap,
+@@ -1203,6 +1203,7 @@ int rt711_init(struct device *dev, struc
rt711->sdw_regmap = sdw_regmap;
rt711->regmap = regmap;
mutex_init(&rt711->disable_irq_lock);
/*
-@@ -1320,7 +1321,6 @@ int rt711_io_init(struct device *dev, struct sdw_slave *slave)
+@@ -1317,7 +1318,6 @@ int rt711_io_init(struct device *dev, st
rt711_jack_detect_handler);
INIT_DELAYED_WORK(&rt711->jack_btn_check_work,
rt711_btn_check_handler);
INIT_WORK(&rt711->calibration_work, rt711_calibration_work);
schedule_work(&rt711->calibration_work);
}
---
-2.35.1
-
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
- sound/soc/codecs/rt711-sdca-sdw.c | 3 +++
- sound/soc/codecs/rt711-sdca.c | 2 +-
+ sound/soc/codecs/rt711-sdca-sdw.c | 3 +++
+ sound/soc/codecs/rt711-sdca.c | 2 +-
2 files changed, 4 insertions(+), 1 deletion(-)
-diff --git a/sound/soc/codecs/rt711-sdca-sdw.c b/sound/soc/codecs/rt711-sdca-sdw.c
-index c722a2b0041f..a085b2f530aa 100644
--- a/sound/soc/codecs/rt711-sdca-sdw.c
+++ b/sound/soc/codecs/rt711-sdca-sdw.c
-@@ -373,6 +373,9 @@ static int rt711_sdca_sdw_remove(struct sdw_slave *slave)
+@@ -373,6 +373,9 @@ static int rt711_sdca_sdw_remove(struct
if (rt711->first_hw_init)
pm_runtime_disable(&slave->dev);
return 0;
}
-diff --git a/sound/soc/codecs/rt711-sdca.c b/sound/soc/codecs/rt711-sdca.c
-index 9d59e653b941..8a0b74d3fa9e 100644
--- a/sound/soc/codecs/rt711-sdca.c
+++ b/sound/soc/codecs/rt711-sdca.c
-@@ -1414,6 +1414,7 @@ int rt711_sdca_init(struct device *dev, struct regmap *regmap,
+@@ -1411,6 +1411,7 @@ int rt711_sdca_init(struct device *dev,
rt711->regmap = regmap;
rt711->mbq_regmap = mbq_regmap;
mutex_init(&rt711->disable_irq_lock);
/*
-@@ -1552,7 +1553,6 @@ int rt711_sdca_io_init(struct device *dev, struct sdw_slave *slave)
+@@ -1549,7 +1550,6 @@ int rt711_sdca_io_init(struct device *de
rt711_sdca_jack_detect_handler);
INIT_DELAYED_WORK(&rt711->jack_btn_check_work,
rt711_sdca_btn_check_handler);
}
/* calibration */
---
-2.35.1
-
Cc: stable@vger.kernel.org
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
- .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 43 +++++++++++++++++--
+ drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 43 ++++++++++++++++++++--
1 file changed, 40 insertions(+), 3 deletions(-)
-diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
-index bfbd701a4c9a..810965bd0692 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
-@@ -464,6 +464,26 @@ static void dm_pflip_high_irq(void *interrupt_params)
+@@ -464,6 +464,26 @@ static void dm_pflip_high_irq(void *inte
vrr_active, (int) !e);
}
static void dm_vupdate_high_irq(void *interrupt_params)
{
struct common_irq_params *irq_params = interrupt_params;
-@@ -502,7 +522,7 @@ static void dm_vupdate_high_irq(void *interrupt_params)
+@@ -502,7 +522,7 @@ static void dm_vupdate_high_irq(void *in
* if a pageflip happened inside front-porch.
*/
if (vrr_active) {
/* BTR processing for pre-DCE12 ASICs */
if (acrtc->dm_irq_params.stream &&
-@@ -554,7 +574,7 @@ static void dm_crtc_high_irq(void *interrupt_params)
+@@ -554,7 +574,7 @@ static void dm_crtc_high_irq(void *inter
* to dm_vupdate_high_irq after end of front-porch.
*/
if (!vrr_active)
/**
* Following stuff must happen at start of vblank, for crc
-@@ -9199,6 +9219,7 @@ static void amdgpu_dm_commit_planes(struct drm_atomic_state *state,
+@@ -9202,6 +9222,7 @@ static void amdgpu_dm_commit_planes(stru
struct amdgpu_bo *abo;
uint32_t target_vblank, last_flip_vblank;
bool vrr_active = amdgpu_dm_vrr_active(acrtc_state);
bool pflip_present = false;
struct {
struct dc_surface_update surface_updates[MAX_SURFACES];
-@@ -9234,8 +9255,13 @@ static void amdgpu_dm_commit_planes(struct drm_atomic_state *state,
+@@ -9237,8 +9258,13 @@ static void amdgpu_dm_commit_planes(stru
struct dm_plane_state *dm_new_plane_state = to_dm_plane_state(new_plane_state);
/* Cursor plane is handled after stream updates */
if (!fb || !crtc || pcrtc != crtc)
continue;
-@@ -9397,6 +9423,17 @@ static void amdgpu_dm_commit_planes(struct drm_atomic_state *state,
+@@ -9400,6 +9426,17 @@ static void amdgpu_dm_commit_planes(stru
bundle->stream_update.vrr_infopacket =
&acrtc_state->stream->vrr_infopacket;
}
}
/* Update the planes if changed or disable if we don't have any. */
---
-2.35.1
-
Link: https://patchwork.freedesktop.org/patch/msgid/20220607182338.344270-4-javierm@redhat.com
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
- drivers/video/fbdev/core/fbmem.c | 12 ++++++++++++
+ drivers/video/fbdev/core/fbmem.c | 12 ++++++++++++
1 file changed, 12 insertions(+)
-diff --git a/drivers/video/fbdev/core/fbmem.c b/drivers/video/fbdev/core/fbmem.c
-index 85de02d0d3aa..643383d74edc 100644
--- a/drivers/video/fbdev/core/fbmem.c
+++ b/drivers/video/fbdev/core/fbmem.c
@@ -19,6 +19,7 @@
#include <linux/mm.h>
#include <linux/mman.h>
#include <linux/vt.h>
-@@ -1787,6 +1788,17 @@ int remove_conflicting_framebuffers(struct apertures_struct *a,
+@@ -1775,6 +1776,17 @@ int remove_conflicting_framebuffers(stru
do_free = true;
}
mutex_lock(®istration_lock);
do_remove_conflicting_framebuffers(a, name, primary);
mutex_unlock(®istration_lock);
---
-2.35.1
-
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
- net/mptcp/protocol.c | 4 ++--
+ net/mptcp/protocol.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
-diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c
-index b0fb1fc0bd4a..b52fd250cb3a 100644
--- a/net/mptcp/protocol.c
+++ b/net/mptcp/protocol.c
-@@ -2840,12 +2840,12 @@ static void mptcp_copy_inaddrs(struct sock *msk, const struct sock *ssk)
+@@ -2830,12 +2830,12 @@ static void mptcp_copy_inaddrs(struct so
static int mptcp_disconnect(struct sock *sk, int flags)
{
struct sock *ssk = mptcp_subflow_tcp_sock(subflow);
__mptcp_close_ssk(sk, ssk, subflow, MPTCP_CF_FASTCLOSE);
---
-2.35.1
-
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
- include/net/netfilter/nf_tables.h | 14 +++---
- net/netfilter/nf_tables_api.c | 72 ++++++++++++++++++++++---------
+ include/net/netfilter/nf_tables.h | 14 ++++---
+ net/netfilter/nf_tables_api.c | 72 ++++++++++++++++++++++++++------------
2 files changed, 60 insertions(+), 26 deletions(-)
-diff --git a/include/net/netfilter/nf_tables.h b/include/net/netfilter/nf_tables.h
-index 279ae0fff7ad..f0c3a1ee197c 100644
--- a/include/net/netfilter/nf_tables.h
+++ b/include/net/netfilter/nf_tables.h
-@@ -657,18 +657,22 @@ static inline void nft_set_ext_prepare(struct nft_set_ext_tmpl *tmpl)
+@@ -657,18 +657,22 @@ static inline void nft_set_ext_prepare(s
tmpl->len = sizeof(struct nft_set_ext);
}
}
static inline void nft_set_ext_init(struct nft_set_ext *ext,
-diff --git a/net/netfilter/nf_tables_api.c b/net/netfilter/nf_tables_api.c
-index a136148627e7..de3dc35ce609 100644
--- a/net/netfilter/nf_tables_api.c
+++ b/net/netfilter/nf_tables_api.c
-@@ -5831,8 +5831,11 @@ static int nft_add_set_elem(struct nft_ctx *ctx, struct nft_set *set,
+@@ -5824,8 +5824,11 @@ static int nft_add_set_elem(struct nft_c
if (!nla[NFTA_SET_ELEM_KEY] && !(flags & NFT_SET_ELEM_CATCHALL))
return -EINVAL;
if (set->flags & NFT_SET_MAP) {
if (nla[NFTA_SET_ELEM_DATA] == NULL &&
-@@ -5941,7 +5944,9 @@ static int nft_add_set_elem(struct nft_ctx *ctx, struct nft_set *set,
+@@ -5934,7 +5937,9 @@ static int nft_add_set_elem(struct nft_c
if (err < 0)
goto err_set_elem_expr;
}
if (nla[NFTA_SET_ELEM_KEY_END]) {
-@@ -5950,22 +5955,31 @@ static int nft_add_set_elem(struct nft_ctx *ctx, struct nft_set *set,
+@@ -5943,22 +5948,31 @@ static int nft_add_set_elem(struct nft_c
if (err < 0)
goto err_parse_key;
}
if (nla[NFTA_SET_ELEM_OBJREF] != NULL) {
-@@ -5980,7 +5994,9 @@ static int nft_add_set_elem(struct nft_ctx *ctx, struct nft_set *set,
+@@ -5973,7 +5987,9 @@ static int nft_add_set_elem(struct nft_c
err = PTR_ERR(obj);
goto err_parse_key_end;
}
}
if (nla[NFTA_SET_ELEM_DATA] != NULL) {
-@@ -6014,7 +6030,9 @@ static int nft_add_set_elem(struct nft_ctx *ctx, struct nft_set *set,
+@@ -6007,7 +6023,9 @@ static int nft_add_set_elem(struct nft_c
NFT_VALIDATE_NEED);
}
}
/* The full maximum length of userdata can exceed the maximum
-@@ -6024,9 +6042,12 @@ static int nft_add_set_elem(struct nft_ctx *ctx, struct nft_set *set,
+@@ -6017,9 +6035,12 @@ static int nft_add_set_elem(struct nft_c
ulen = 0;
if (nla[NFTA_SET_ELEM_USERDATA] != NULL) {
ulen = nla_len(nla[NFTA_SET_ELEM_USERDATA]);
}
err = -ENOMEM;
-@@ -6252,8 +6273,11 @@ static int nft_del_setelem(struct nft_ctx *ctx, struct nft_set *set,
+@@ -6245,8 +6266,11 @@ static int nft_del_setelem(struct nft_ct
nft_set_ext_prepare(&tmpl);
if (nla[NFTA_SET_ELEM_KEY]) {
err = nft_setelem_parse_key(ctx, set, &elem.key.val,
-@@ -6261,16 +6285,20 @@ static int nft_del_setelem(struct nft_ctx *ctx, struct nft_set *set,
+@@ -6254,16 +6278,20 @@ static int nft_del_setelem(struct nft_ct
if (err < 0)
return err;
}
err = -ENOMEM;
-@@ -6278,7 +6306,7 @@ static int nft_del_setelem(struct nft_ctx *ctx, struct nft_set *set,
+@@ -6271,7 +6299,7 @@ static int nft_del_setelem(struct nft_ct
elem.key_end.val.data, NULL, 0, 0,
GFP_KERNEL_ACCOUNT);
if (elem.priv == NULL)
ext = nft_set_elem_ext(set, elem.priv);
if (flags)
-@@ -6302,6 +6330,8 @@ static int nft_del_setelem(struct nft_ctx *ctx, struct nft_set *set,
+@@ -6295,6 +6323,8 @@ fail_ops:
kfree(trans);
fail_trans:
kfree(elem.priv);
fail_elem:
nft_data_release(&elem.key.val, NFT_DATA_VALUE);
return err;
---
-2.35.1
-
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
- net/ipv4/fib_semantics.c | 2 +-
- net/ipv4/nexthop.c | 5 +++--
- net/ipv6/route.c | 2 +-
+ net/ipv4/fib_semantics.c | 2 +-
+ net/ipv4/nexthop.c | 5 +++--
+ net/ipv6/route.c | 2 +-
3 files changed, 5 insertions(+), 4 deletions(-)
-diff --git a/net/ipv4/fib_semantics.c b/net/ipv4/fib_semantics.c
-index 1c4fef385ef6..720f65f7bd0b 100644
--- a/net/ipv4/fib_semantics.c
+++ b/net/ipv4/fib_semantics.c
-@@ -1811,7 +1811,7 @@ int fib_dump_info(struct sk_buff *skb, u32 portid, u32 seq, int event,
+@@ -1811,7 +1811,7 @@ int fib_dump_info(struct sk_buff *skb, u
goto nla_put_failure;
if (nexthop_is_blackhole(fi->nh))
rtm->rtm_type = RTN_BLACKHOLE;
goto offload;
}
-diff --git a/net/ipv4/nexthop.c b/net/ipv4/nexthop.c
-index e459a391e607..853a75a8fbaf 100644
--- a/net/ipv4/nexthop.c
+++ b/net/ipv4/nexthop.c
-@@ -1858,7 +1858,7 @@ static void __remove_nexthop_fib(struct net *net, struct nexthop *nh)
+@@ -1858,7 +1858,7 @@ static void __remove_nexthop_fib(struct
/* __ip6_del_rt does a release, so do a hold here */
fib6_info_hold(f6i);
ipv6_stub->ip6_del_rt(net, f6i,
}
}
-@@ -2361,7 +2361,8 @@ static int insert_nexthop(struct net *net, struct nexthop *new_nh,
+@@ -2361,7 +2361,8 @@ out:
if (!rc) {
nh_base_seq_inc(net);
nexthop_notify(RTM_NEWNEXTHOP, new_nh, &cfg->nlinfo);
nexthop_replace_notify(net, new_nh, &cfg->nlinfo);
}
-diff --git a/net/ipv6/route.c b/net/ipv6/route.c
-index 83786de847ab..a87b96a256af 100644
--- a/net/ipv6/route.c
+++ b/net/ipv6/route.c
-@@ -5737,7 +5737,7 @@ static int rt6_fill_node(struct net *net, struct sk_buff *skb,
+@@ -5730,7 +5730,7 @@ static int rt6_fill_node(struct net *net
if (nexthop_is_blackhole(rt->nh))
rtm->rtm_type = RTN_BLACKHOLE;
rt6_fill_node_nexthop(skb, rt->nh, &nh_flags) < 0)
goto nla_put_failure;
---
-2.35.1
-
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
- drivers/nfc/nxp-nci/i2c.c | 8 ++++++--
+ drivers/nfc/nxp-nci/i2c.c | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
-diff --git a/drivers/nfc/nxp-nci/i2c.c b/drivers/nfc/nxp-nci/i2c.c
-index e8f3b35afbee..ae2ba08d8ac3 100644
--- a/drivers/nfc/nxp-nci/i2c.c
+++ b/drivers/nfc/nxp-nci/i2c.c
-@@ -122,7 +122,9 @@ static int nxp_nci_i2c_fw_read(struct nxp_nci_i2c_phy *phy,
+@@ -122,7 +122,9 @@ static int nxp_nci_i2c_fw_read(struct nx
skb_put_data(*skb, &header, NXP_NCI_FW_HDR_LEN);
r = i2c_master_recv(client, skb_put(*skb, frame_len), frame_len);
nfc_err(&client->dev,
"Invalid frame length: %u (expected %zu)\n",
r, frame_len);
-@@ -166,7 +168,9 @@ static int nxp_nci_i2c_nci_read(struct nxp_nci_i2c_phy *phy,
- return 0;
+@@ -163,7 +165,9 @@ static int nxp_nci_i2c_nci_read(struct n
+ skb_put_data(*skb, (void *)&header, NCI_CTRL_HDR_SIZE);
r = i2c_master_recv(client, skb_put(*skb, header.plen), header.plen);
- if (r != header.plen) {
nfc_err(&client->dev,
"Invalid frame payload length: %u (expected %u)\n",
r, header.plen);
---
-2.35.1
-
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
- drivers/platform/x86/thinkpad_acpi.c | 45 +++++++++++-----------------
+ drivers/platform/x86/thinkpad_acpi.c | 45 ++++++++++++++---------------------
1 file changed, 18 insertions(+), 27 deletions(-)
-diff --git a/drivers/platform/x86/thinkpad_acpi.c b/drivers/platform/x86/thinkpad_acpi.c
-index aa6ffeaa3932..b4d6a356b746 100644
--- a/drivers/platform/x86/thinkpad_acpi.c
+++ b/drivers/platform/x86/thinkpad_acpi.c
-@@ -10300,21 +10300,15 @@ static struct ibm_struct proxsensor_driver_data = {
+@@ -10299,21 +10299,15 @@ static struct ibm_struct proxsensor_driv
#define DYTC_DISABLE_CQL DYTC_SET_COMMAND(DYTC_FUNCTION_CQL, DYTC_MODE_MMC_BALANCE, 0)
#define DYTC_ENABLE_CQL DYTC_SET_COMMAND(DYTC_FUNCTION_CQL, DYTC_MODE_MMC_BALANCE, 1)
switch (dytcmode) {
case DYTC_MODE_MMC_LOWPOWER:
*profile = PLATFORM_PROFILE_LOW_POWER;
-@@ -10331,7 +10325,7 @@ static int convert_dytc_to_profile(int dytcmode, enum platform_profile_option *p
+@@ -10330,7 +10324,7 @@ static int convert_dytc_to_profile(int d
}
return 0;
}
switch (dytcmode) {
case DYTC_MODE_PSC_LOWPOWER:
*profile = PLATFORM_PROFILE_LOW_POWER;
-@@ -10353,21 +10347,21 @@ static int convert_profile_to_dytc(enum platform_profile_option profile, int *pe
+@@ -10352,21 +10346,21 @@ static int convert_profile_to_dytc(enum
{
switch (profile) {
case PLATFORM_PROFILE_LOW_POWER:
*perfmode = DYTC_MODE_PSC_PERFORM;
break;
default: /* Unknown profile */
-@@ -10446,7 +10440,7 @@ static int dytc_profile_set(struct platform_profile_handler *pprof,
+@@ -10445,7 +10439,7 @@ static int dytc_profile_set(struct platf
if (err)
goto unlock;
if (profile == PLATFORM_PROFILE_BALANCED) {
/*
* To get back to balanced mode we need to issue a reset command.
-@@ -10465,7 +10459,7 @@ static int dytc_profile_set(struct platform_profile_handler *pprof,
+@@ -10464,7 +10458,7 @@ static int dytc_profile_set(struct platf
goto unlock;
}
}
err = dytc_command(DYTC_SET_COMMAND(DYTC_FUNCTION_PSC, perfmode, 1), &output);
if (err)
goto unlock;
-@@ -10484,12 +10478,12 @@ static void dytc_profile_refresh(void)
+@@ -10483,12 +10477,12 @@ static void dytc_profile_refresh(void)
int perfmode;
mutex_lock(&dytc_mutex);
err = dytc_command(DYTC_CMD_GET, &output);
mutex_unlock(&dytc_mutex);
-@@ -10518,7 +10512,6 @@ static int tpacpi_dytc_profile_init(struct ibm_init_struct *iibm)
+@@ -10517,7 +10511,6 @@ static int tpacpi_dytc_profile_init(stru
set_bit(PLATFORM_PROFILE_BALANCED, dytc_profile.choices);
set_bit(PLATFORM_PROFILE_PERFORMANCE, dytc_profile.choices);
err = dytc_command(DYTC_CMD_QUERY, &output);
if (err)
return err;
-@@ -10531,13 +10524,12 @@ static int tpacpi_dytc_profile_init(struct ibm_init_struct *iibm)
+@@ -10530,13 +10523,12 @@ static int tpacpi_dytc_profile_init(stru
return -ENODEV;
/* Check what capabilities are supported */
/*
* Check if MMC_GET functionality available
* Version > 6 and return success from MMC_GET command
-@@ -10548,8 +10540,8 @@ static int tpacpi_dytc_profile_init(struct ibm_init_struct *iibm)
+@@ -10547,8 +10539,8 @@ static int tpacpi_dytc_profile_init(stru
if (!err && ((output & DYTC_ERR_MASK) == DYTC_ERR_SUCCESS))
dytc_mmc_get_available = true;
}
} else {
dbg_printk(TPACPI_DBG_INIT, "No DYTC support available\n");
return -ENODEV;
-@@ -10575,7 +10567,6 @@ static int tpacpi_dytc_profile_init(struct ibm_init_struct *iibm)
+@@ -10574,7 +10566,6 @@ static int tpacpi_dytc_profile_init(stru
static void dytc_profile_exit(void)
{
platform_profile_remove();
}
---
-2.35.1
-
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
- drivers/platform/x86/thinkpad_acpi.c | 5 +++++
+ drivers/platform/x86/thinkpad_acpi.c | 5 +++++
1 file changed, 5 insertions(+)
-diff --git a/drivers/platform/x86/thinkpad_acpi.c b/drivers/platform/x86/thinkpad_acpi.c
-index b4d6a356b746..a8b383051528 100644
--- a/drivers/platform/x86/thinkpad_acpi.c
+++ b/drivers/platform/x86/thinkpad_acpi.c
-@@ -10541,6 +10541,11 @@ static int tpacpi_dytc_profile_init(struct ibm_init_struct *iibm)
+@@ -10540,6 +10540,11 @@ static int tpacpi_dytc_profile_init(stru
dytc_mmc_get_available = true;
}
} else if (dytc_capabilities & BIT(DYTC_FC_PSC)) { /* PSC MODE */
pr_debug("PSC is supported\n");
} else {
dbg_printk(TPACPI_DBG_INIT, "No DYTC support available\n");
---
-2.35.1
-
net-atlantic-remove-aq_nic_deinit-when-resume.patch
kvm-x86-fully-initialize-struct-kvm_lapic_irq-in-kvm.patch
net-tls-check-for-errors-in-tls_device_init.patch
-acpi-video-fix-acpi_video_handles_brightness_key_pre.patch
mm-sysctl-fix-missing-numa_stat-when-config_hugetlb_.patch
x86-kvm-fix-setcc-emulation-for-return-thunks.patch
x86-sev-avoid-using-__x86_return_thunk.patch
Acked-by: Eugenio Pérez <eperezma@redhat.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
- drivers/vdpa/mlx5/net/mlx5_vnet.c | 31 ++++++++++++++++++++-----------
+ drivers/vdpa/mlx5/net/mlx5_vnet.c | 31 ++++++++++++++++++++-----------
1 file changed, 20 insertions(+), 11 deletions(-)
-diff --git a/drivers/vdpa/mlx5/net/mlx5_vnet.c b/drivers/vdpa/mlx5/net/mlx5_vnet.c
-index c290386aa2f3..ae4cfbd927fd 100644
--- a/drivers/vdpa/mlx5/net/mlx5_vnet.c
+++ b/drivers/vdpa/mlx5/net/mlx5_vnet.c
-@@ -1965,7 +1965,6 @@ static int verify_driver_features(struct mlx5_vdpa_dev *mvdev, u64 features)
+@@ -1963,7 +1963,6 @@ static int verify_driver_features(struct
static int setup_virtqueues(struct mlx5_vdpa_dev *mvdev)
{
struct mlx5_vdpa_net *ndev = to_mlx5_vdpa_ndev(mvdev);
int err;
int i;
-@@ -1975,16 +1974,6 @@ static int setup_virtqueues(struct mlx5_vdpa_dev *mvdev)
+@@ -1973,16 +1972,6 @@ static int setup_virtqueues(struct mlx5_
goto err_vq;
}
return 0;
err_vq:
-@@ -2257,6 +2246,21 @@ static void clear_vqs_ready(struct mlx5_vdpa_net *ndev)
+@@ -2255,6 +2244,21 @@ static void clear_vqs_ready(struct mlx5_
ndev->mvdev.cvq.ready = false;
}
static void mlx5_vdpa_set_status(struct vdpa_device *vdev, u8 status)
{
struct mlx5_vdpa_dev *mvdev = to_mvdev(vdev);
-@@ -2269,6 +2273,11 @@ static void mlx5_vdpa_set_status(struct vdpa_device *vdev, u8 status)
+@@ -2267,6 +2271,11 @@ static void mlx5_vdpa_set_status(struct
if ((status ^ ndev->mvdev.status) & VIRTIO_CONFIG_S_DRIVER_OK) {
if (status & VIRTIO_CONFIG_S_DRIVER_OK) {
err = setup_driver(mvdev);
if (err) {
mlx5_vdpa_warn(mvdev, "failed to setup driver\n");
---
-2.35.1
-
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
- tools/testing/selftests/wireguard/qemu/Makefile | 5 ++---
+ tools/testing/selftests/wireguard/qemu/Makefile | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
-diff --git a/tools/testing/selftests/wireguard/qemu/Makefile b/tools/testing/selftests/wireguard/qemu/Makefile
-index e8a82e495d2e..fcc3f668b807 100644
--- a/tools/testing/selftests/wireguard/qemu/Makefile
+++ b/tools/testing/selftests/wireguard/qemu/Makefile
@@ -19,8 +19,6 @@ endif
default: qemu
-@@ -325,8 +323,9 @@ $(KERNEL_BUILD_PATH)/.config: $(TOOLCHAIN_PATH)/.installed kernel.config arch/$(
+@@ -324,8 +322,9 @@ $(KERNEL_BUILD_PATH)/.config: $(TOOLCHAI
cd $(KERNEL_BUILD_PATH) && ARCH=$(KERNEL_ARCH) $(KERNEL_PATH)/scripts/kconfig/merge_config.sh -n $(KERNEL_BUILD_PATH)/.config $(KERNEL_BUILD_PATH)/minimal.config
$(if $(findstring yes,$(DEBUG_KERNEL)),cp debug.config $(KERNEL_BUILD_PATH) && cd $(KERNEL_BUILD_PATH) && ARCH=$(KERNEL_ARCH) $(KERNEL_PATH)/scripts/kconfig/merge_config.sh -n $(KERNEL_BUILD_PATH)/.config debug.config,)
$(TOOLCHAIN_PATH)/$(CHOST)/include/linux/.installed: | $(KERNEL_BUILD_PATH)/.config $(TOOLCHAIN_PATH)/.installed
rm -rf $(TOOLCHAIN_PATH)/$(CHOST)/include/linux
---
-2.35.1
-
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
- drivers/nfc/nxp-nci/i2c.c | 8 ++++++--
+ drivers/nfc/nxp-nci/i2c.c | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
-diff --git a/drivers/nfc/nxp-nci/i2c.c b/drivers/nfc/nxp-nci/i2c.c
-index 3943a30053b3..f426dcdfcdd6 100644
--- a/drivers/nfc/nxp-nci/i2c.c
+++ b/drivers/nfc/nxp-nci/i2c.c
-@@ -122,7 +122,9 @@ static int nxp_nci_i2c_fw_read(struct nxp_nci_i2c_phy *phy,
+@@ -122,7 +122,9 @@ static int nxp_nci_i2c_fw_read(struct nx
skb_put_data(*skb, &header, NXP_NCI_FW_HDR_LEN);
r = i2c_master_recv(client, skb_put(*skb, frame_len), frame_len);
nfc_err(&client->dev,
"Invalid frame length: %u (expected %zu)\n",
r, frame_len);
-@@ -166,7 +168,9 @@ static int nxp_nci_i2c_nci_read(struct nxp_nci_i2c_phy *phy,
- return 0;
+@@ -163,7 +165,9 @@ static int nxp_nci_i2c_nci_read(struct n
+ skb_put_data(*skb, (void *)&header, NCI_CTRL_HDR_SIZE);
r = i2c_master_recv(client, skb_put(*skb, header.plen), header.plen);
- if (r != header.plen) {
nfc_err(&client->dev,
"Invalid frame payload length: %u (expected %u)\n",
r, header.plen);
---
-2.35.1
-