Skip to content

Commit 5e80a1a

Browse files
authored
Merge pull request torvalds#216 from zandrey/5.10.x+fslc
Update 5.10.x+fslc to v5.10.8
2 parents 78ef553 + 9f88734 commit 5e80a1a

File tree

103 files changed

+829
-375
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

103 files changed

+829
-375
lines changed

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# SPDX-License-Identifier: GPL-2.0
22
VERSION = 5
33
PATCHLEVEL = 10
4-
SUBLEVEL = 7
4+
SUBLEVEL = 8
55
EXTRAVERSION =
66
NAME = Kleptomaniac Octopus
77

arch/Kconfig

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1053,6 +1053,12 @@ config ARCH_WANT_LD_ORPHAN_WARN
10531053
by the linker, since the locations of such sections can change between linker
10541054
versions.
10551055

1056+
config ARCH_SPLIT_ARG64
1057+
bool
1058+
help
1059+
If a 32-bit architecture requires 64-bit arguments to be split into
1060+
pairs of 32-bit arguments, select this option.
1061+
10561062
source "kernel/gcov/Kconfig"
10571063

10581064
source "scripts/gcc-plugins/Kconfig"

arch/arm/mach-omap2/omap_device.c

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -230,10 +230,12 @@ static int _omap_device_notifier_call(struct notifier_block *nb,
230230
break;
231231
case BUS_NOTIFY_BIND_DRIVER:
232232
od = to_omap_device(pdev);
233-
if (od && (od->_state == OMAP_DEVICE_STATE_ENABLED) &&
234-
pm_runtime_status_suspended(dev)) {
233+
if (od) {
235234
od->_driver_status = BUS_NOTIFY_BIND_DRIVER;
236-
pm_runtime_set_active(dev);
235+
if (od->_state == OMAP_DEVICE_STATE_ENABLED &&
236+
pm_runtime_status_suspended(dev)) {
237+
pm_runtime_set_active(dev);
238+
}
237239
}
238240
break;
239241
case BUS_NOTIFY_ADD_DEVICE:

arch/arm64/include/asm/processor.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,8 @@
9696
#endif /* CONFIG_ARM64_FORCE_52BIT */
9797

9898
extern phys_addr_t arm64_dma_phys_limit;
99-
#define ARCH_LOW_ADDRESS_LIMIT (arm64_dma_phys_limit - 1)
99+
extern phys_addr_t arm64_dma32_phys_limit;
100+
#define ARCH_LOW_ADDRESS_LIMIT ((arm64_dma_phys_limit ? : arm64_dma32_phys_limit) - 1)
100101

101102
struct debug_info {
102103
#ifdef CONFIG_HAVE_HW_BREAKPOINT

arch/arm64/kernel/cpufeature.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2552,7 +2552,7 @@ static void verify_hyp_capabilities(void)
25522552
int parange, ipa_max;
25532553
unsigned int safe_vmid_bits, vmid_bits;
25542554

2555-
if (!IS_ENABLED(CONFIG_KVM) || !IS_ENABLED(CONFIG_KVM_ARM_HOST))
2555+
if (!IS_ENABLED(CONFIG_KVM))
25562556
return;
25572557

25582558
safe_mmfr1 = read_sanitised_ftr_reg(SYS_ID_AA64MMFR1_EL1);

arch/arm64/kvm/sys_regs.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -663,6 +663,10 @@ static void reset_pmcr(struct kvm_vcpu *vcpu, const struct sys_reg_desc *r)
663663
{
664664
u64 pmcr, val;
665665

666+
/* No PMU available, PMCR_EL0 may UNDEF... */
667+
if (!kvm_arm_support_pmu_v3())
668+
return;
669+
666670
pmcr = read_sysreg(pmcr_el0);
667671
/*
668672
* Writable bits of PMCR_EL0 (ARMV8_PMU_PMCR_MASK) are reset to UNKNOWN

arch/arm64/mm/init.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ EXPORT_SYMBOL(memstart_addr);
6060
* bit addressable memory area.
6161
*/
6262
phys_addr_t arm64_dma_phys_limit __ro_after_init;
63-
static phys_addr_t arm64_dma32_phys_limit __ro_after_init;
63+
phys_addr_t arm64_dma32_phys_limit __ro_after_init;
6464

6565
#ifdef CONFIG_KEXEC_CORE
6666
/*

arch/powerpc/kernel/head_book3s_32.S

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -262,10 +262,19 @@ __secondary_hold_acknowledge:
262262
MachineCheck:
263263
EXCEPTION_PROLOG_0
264264
#ifdef CONFIG_PPC_CHRP
265+
#ifdef CONFIG_VMAP_STACK
266+
mr r11, r1
267+
mfspr r1, SPRN_SPRG_THREAD
268+
lwz r1, RTAS_SP(r1)
269+
cmpwi cr1, r1, 0
270+
bne cr1, 7f
271+
mr r1, r11
272+
#else
265273
mfspr r11, SPRN_SPRG_THREAD
266274
lwz r11, RTAS_SP(r11)
267275
cmpwi cr1, r11, 0
268276
bne cr1, 7f
277+
#endif
269278
#endif /* CONFIG_PPC_CHRP */
270279
EXCEPTION_PROLOG_1 for_rtas=1
271280
7: EXCEPTION_PROLOG_2

arch/x86/Kconfig

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ config X86_32
1818
select MODULES_USE_ELF_REL
1919
select OLD_SIGACTION
2020
select GENERIC_VDSO_32
21+
select ARCH_SPLIT_ARG64
2122

2223
config X86_64
2324
def_bool y

block/genhd.c

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -256,14 +256,17 @@ struct hd_struct *disk_part_iter_next(struct disk_part_iter *piter)
256256
part = rcu_dereference(ptbl->part[piter->idx]);
257257
if (!part)
258258
continue;
259+
get_device(part_to_dev(part));
260+
piter->part = part;
259261
if (!part_nr_sects_read(part) &&
260262
!(piter->flags & DISK_PITER_INCL_EMPTY) &&
261263
!(piter->flags & DISK_PITER_INCL_EMPTY_PART0 &&
262-
piter->idx == 0))
264+
piter->idx == 0)) {
265+
put_device(part_to_dev(part));
266+
piter->part = NULL;
263267
continue;
268+
}
264269

265-
get_device(part_to_dev(part));
266-
piter->part = part;
267270
piter->idx += inc;
268271
break;
269272
}

drivers/base/regmap/regmap-debugfs.c

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -582,18 +582,23 @@ void regmap_debugfs_init(struct regmap *map)
582582
devname = dev_name(map->dev);
583583

584584
if (name) {
585-
map->debugfs_name = kasprintf(GFP_KERNEL, "%s-%s",
585+
if (!map->debugfs_name) {
586+
map->debugfs_name = kasprintf(GFP_KERNEL, "%s-%s",
586587
devname, name);
588+
if (!map->debugfs_name)
589+
return;
590+
}
587591
name = map->debugfs_name;
588592
} else {
589593
name = devname;
590594
}
591595

592596
if (!strcmp(name, "dummy")) {
593597
kfree(map->debugfs_name);
594-
595598
map->debugfs_name = kasprintf(GFP_KERNEL, "dummy%d",
596599
dummy_index);
600+
if (!map->debugfs_name)
601+
return;
597602
name = map->debugfs_name;
598603
dummy_index++;
599604
}

drivers/block/Kconfig

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -451,6 +451,7 @@ config BLK_DEV_RBD
451451
config BLK_DEV_RSXX
452452
tristate "IBM Flash Adapter 900GB Full Height PCIe Device Driver"
453453
depends on PCI
454+
select CRC32
454455
help
455456
Device driver for IBM's high speed PCIe SSD
456457
storage device: Flash Adapter 900GB Full Height.

drivers/block/rnbd/rnbd-clt.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1671,7 +1671,8 @@ static void rnbd_destroy_sessions(void)
16711671
*/
16721672

16731673
list_for_each_entry_safe(sess, sn, &sess_list, list) {
1674-
WARN_ON(!rnbd_clt_get_sess(sess));
1674+
if (!rnbd_clt_get_sess(sess))
1675+
continue;
16751676
close_rtrs(sess);
16761677
list_for_each_entry_safe(dev, tn, &sess->devs_list, list) {
16771678
/*

drivers/cpufreq/powernow-k8.c

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -878,9 +878,9 @@ static int get_transition_latency(struct powernow_k8_data *data)
878878

879879
/* Take a frequency, and issue the fid/vid transition command */
880880
static int transition_frequency_fidvid(struct powernow_k8_data *data,
881-
unsigned int index)
881+
unsigned int index,
882+
struct cpufreq_policy *policy)
882883
{
883-
struct cpufreq_policy *policy;
884884
u32 fid = 0;
885885
u32 vid = 0;
886886
int res;
@@ -912,9 +912,6 @@ static int transition_frequency_fidvid(struct powernow_k8_data *data,
912912
freqs.old = find_khz_freq_from_fid(data->currfid);
913913
freqs.new = find_khz_freq_from_fid(fid);
914914

915-
policy = cpufreq_cpu_get(smp_processor_id());
916-
cpufreq_cpu_put(policy);
917-
918915
cpufreq_freq_transition_begin(policy, &freqs);
919916
res = transition_fid_vid(data, fid, vid);
920917
cpufreq_freq_transition_end(policy, &freqs, res);
@@ -969,7 +966,7 @@ static long powernowk8_target_fn(void *arg)
969966

970967
powernow_k8_acpi_pst_values(data, newstate);
971968

972-
ret = transition_frequency_fidvid(data, newstate);
969+
ret = transition_frequency_fidvid(data, newstate, pol);
973970

974971
if (ret) {
975972
pr_err("transition frequency failed\n");

drivers/dma/dw-edma/dw-edma-core.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -86,12 +86,12 @@ static struct dw_edma_chunk *dw_edma_alloc_chunk(struct dw_edma_desc *desc)
8686

8787
if (desc->chunk) {
8888
/* Create and add new element into the linked list */
89-
desc->chunks_alloc++;
90-
list_add_tail(&chunk->list, &desc->chunk->list);
9189
if (!dw_edma_alloc_burst(chunk)) {
9290
kfree(chunk);
9391
return NULL;
9492
}
93+
desc->chunks_alloc++;
94+
list_add_tail(&chunk->list, &desc->chunk->list);
9595
} else {
9696
/* List head */
9797
chunk->burst = NULL;

drivers/dma/mediatek/mtk-hsdma.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1007,6 +1007,7 @@ static int mtk_hsdma_probe(struct platform_device *pdev)
10071007
return 0;
10081008

10091009
err_free:
1010+
mtk_hsdma_hw_deinit(hsdma);
10101011
of_dma_controller_free(pdev->dev.of_node);
10111012
err_unregister:
10121013
dma_async_device_unregister(dd);

drivers/dma/milbeaut-xdmac.c

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -351,7 +351,7 @@ static int milbeaut_xdmac_probe(struct platform_device *pdev)
351351

352352
ret = dma_async_device_register(ddev);
353353
if (ret)
354-
return ret;
354+
goto disable_xdmac;
355355

356356
ret = of_dma_controller_register(dev->of_node,
357357
of_dma_simple_xlate, mdev);
@@ -364,6 +364,8 @@ static int milbeaut_xdmac_probe(struct platform_device *pdev)
364364

365365
unregister_dmac:
366366
dma_async_device_unregister(ddev);
367+
disable_xdmac:
368+
disable_xdmac(mdev);
367369
return ret;
368370
}
369371

drivers/dma/xilinx/xilinx_dma.c

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2781,7 +2781,7 @@ static int xilinx_dma_chan_probe(struct xilinx_dma_device *xdev,
27812781
has_dre = false;
27822782

27832783
if (!has_dre)
2784-
xdev->common.copy_align = fls(width - 1);
2784+
xdev->common.copy_align = (enum dmaengine_alignment)fls(width - 1);
27852785

27862786
if (of_device_is_compatible(node, "xlnx,axi-vdma-mm2s-channel") ||
27872787
of_device_is_compatible(node, "xlnx,axi-dma-mm2s-channel") ||
@@ -2900,7 +2900,8 @@ static int xilinx_dma_chan_probe(struct xilinx_dma_device *xdev,
29002900
static int xilinx_dma_child_probe(struct xilinx_dma_device *xdev,
29012901
struct device_node *node)
29022902
{
2903-
int ret, i, nr_channels = 1;
2903+
int ret, i;
2904+
u32 nr_channels = 1;
29042905

29052906
ret = of_property_read_u32(node, "dma-channels", &nr_channels);
29062907
if (xdev->dma_config->dmatype == XDMA_TYPE_AXIMCDMA && ret < 0)
@@ -3112,7 +3113,11 @@ static int xilinx_dma_probe(struct platform_device *pdev)
31123113
}
31133114

31143115
/* Register the DMA engine with the core */
3115-
dma_async_device_register(&xdev->common);
3116+
err = dma_async_device_register(&xdev->common);
3117+
if (err) {
3118+
dev_err(xdev->dev, "failed to register the dma device\n");
3119+
goto error;
3120+
}
31163121

31173122
err = of_dma_controller_register(node, of_dma_xilinx_xlate,
31183123
xdev);

drivers/gpu/drm/i915/display/intel_display_types.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1382,6 +1382,9 @@ struct intel_dp {
13821382
bool ycbcr_444_to_420;
13831383
} dfp;
13841384

1385+
/* To control wakeup latency, e.g. for irq-driven dp aux transfers. */
1386+
struct pm_qos_request pm_qos;
1387+
13851388
/* Display stream compression testing */
13861389
bool force_dsc_en;
13871390

drivers/gpu/drm/i915/display/intel_dp.c

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1411,7 +1411,7 @@ intel_dp_aux_xfer(struct intel_dp *intel_dp,
14111411
* lowest possible wakeup latency and so prevent the cpu from going into
14121412
* deep sleep states.
14131413
*/
1414-
cpu_latency_qos_update_request(&i915->pm_qos, 0);
1414+
cpu_latency_qos_update_request(&intel_dp->pm_qos, 0);
14151415

14161416
intel_dp_check_edp(intel_dp);
14171417

@@ -1544,7 +1544,7 @@ intel_dp_aux_xfer(struct intel_dp *intel_dp,
15441544

15451545
ret = recv_bytes;
15461546
out:
1547-
cpu_latency_qos_update_request(&i915->pm_qos, PM_QOS_DEFAULT_VALUE);
1547+
cpu_latency_qos_update_request(&intel_dp->pm_qos, PM_QOS_DEFAULT_VALUE);
15481548

15491549
if (vdd)
15501550
edp_panel_vdd_off(intel_dp, false);
@@ -1776,6 +1776,9 @@ static i915_reg_t skl_aux_data_reg(struct intel_dp *intel_dp, int index)
17761776
static void
17771777
intel_dp_aux_fini(struct intel_dp *intel_dp)
17781778
{
1779+
if (cpu_latency_qos_request_active(&intel_dp->pm_qos))
1780+
cpu_latency_qos_remove_request(&intel_dp->pm_qos);
1781+
17791782
kfree(intel_dp->aux.name);
17801783
}
17811784

@@ -1818,6 +1821,7 @@ intel_dp_aux_init(struct intel_dp *intel_dp)
18181821
aux_ch_name(dig_port->aux_ch),
18191822
port_name(encoder->port));
18201823
intel_dp->aux.transfer = intel_dp_aux_transfer;
1824+
cpu_latency_qos_add_request(&intel_dp->pm_qos, PM_QOS_DEFAULT_VALUE);
18211825
}
18221826

18231827
bool intel_dp_source_supports_hbr2(struct intel_dp *intel_dp)

drivers/gpu/drm/i915/i915_drv.c

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -577,8 +577,6 @@ static int i915_driver_hw_probe(struct drm_i915_private *dev_priv)
577577

578578
pci_set_master(pdev);
579579

580-
cpu_latency_qos_add_request(&dev_priv->pm_qos, PM_QOS_DEFAULT_VALUE);
581-
582580
intel_gt_init_workarounds(dev_priv);
583581

584582
/* On the 945G/GM, the chipset reports the MSI capability on the
@@ -623,7 +621,6 @@ static int i915_driver_hw_probe(struct drm_i915_private *dev_priv)
623621
err_msi:
624622
if (pdev->msi_enabled)
625623
pci_disable_msi(pdev);
626-
cpu_latency_qos_remove_request(&dev_priv->pm_qos);
627624
err_mem_regions:
628625
intel_memory_regions_driver_release(dev_priv);
629626
err_ggtt:
@@ -645,8 +642,6 @@ static void i915_driver_hw_remove(struct drm_i915_private *dev_priv)
645642

646643
if (pdev->msi_enabled)
647644
pci_disable_msi(pdev);
648-
649-
cpu_latency_qos_remove_request(&dev_priv->pm_qos);
650645
}
651646

652647
/**

drivers/gpu/drm/i915/i915_drv.h

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -892,9 +892,6 @@ struct drm_i915_private {
892892

893893
bool display_irqs_enabled;
894894

895-
/* To control wakeup latency, e.g. for irq-driven dp aux transfers. */
896-
struct pm_qos_request pm_qos;
897-
898895
/* Sideband mailbox protection */
899896
struct mutex sb_lock;
900897
struct pm_qos_request sb_qos;

0 commit comments

Comments
 (0)