Skip to content

Commit 1c16140

Browse files
committed
Merge remote-tracking branch 'stable/linux-6.1.y' into rpi-6.1.y
2 parents 3182234 + 5302e81 commit 1c16140

File tree

213 files changed

+2472
-1316
lines changed

Some content is hidden

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

213 files changed

+2472
-1316
lines changed

Documentation/admin-guide/device-mapper/dm-init.rst

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,3 +123,11 @@ Other examples (per target):
123123
0 1638400 verity 1 8:1 8:2 4096 4096 204800 1 sha256
124124
fb1a5a0f00deb908d8b53cb270858975e76cf64105d412ce764225d53b8f3cfd
125125
51934789604d1b92399c52e7cb149d1b3a1b74bbbcb103b2a0aaacbed5c08584
126+
127+
For setups using device-mapper on top of asynchronously probed block
128+
devices (MMC, USB, ..), it may be necessary to tell dm-init to
129+
explicitly wait for them to become available before setting up the
130+
device-mapper tables. This can be done with the "dm-mod.waitfor="
131+
module parameter, which takes a list of devices to wait for::
132+
133+
dm-mod.waitfor=<device1>[,..,<deviceN>]

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 = 6
33
PATCHLEVEL = 1
4-
SUBLEVEL = 39
4+
SUBLEVEL = 41
55
EXTRAVERSION =
66
NAME = Curry Ramen
77

arch/mips/include/asm/kvm_host.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -317,7 +317,7 @@ struct kvm_vcpu_arch {
317317
unsigned int aux_inuse;
318318

319319
/* COP0 State */
320-
struct mips_coproc *cop0;
320+
struct mips_coproc cop0;
321321

322322
/* Resume PC after MMIO completion */
323323
unsigned long io_pc;
@@ -698,7 +698,7 @@ static inline bool kvm_mips_guest_can_have_fpu(struct kvm_vcpu_arch *vcpu)
698698
static inline bool kvm_mips_guest_has_fpu(struct kvm_vcpu_arch *vcpu)
699699
{
700700
return kvm_mips_guest_can_have_fpu(vcpu) &&
701-
kvm_read_c0_guest_config1(vcpu->cop0) & MIPS_CONF1_FP;
701+
kvm_read_c0_guest_config1(&vcpu->cop0) & MIPS_CONF1_FP;
702702
}
703703

704704
static inline bool kvm_mips_guest_can_have_msa(struct kvm_vcpu_arch *vcpu)
@@ -710,7 +710,7 @@ static inline bool kvm_mips_guest_can_have_msa(struct kvm_vcpu_arch *vcpu)
710710
static inline bool kvm_mips_guest_has_msa(struct kvm_vcpu_arch *vcpu)
711711
{
712712
return kvm_mips_guest_can_have_msa(vcpu) &&
713-
kvm_read_c0_guest_config3(vcpu->cop0) & MIPS_CONF3_MSA;
713+
kvm_read_c0_guest_config3(&vcpu->cop0) & MIPS_CONF3_MSA;
714714
}
715715

716716
struct kvm_mips_callbacks {

arch/mips/kernel/cpu-probe.c

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1675,7 +1675,10 @@ static inline void decode_cpucfg(struct cpuinfo_mips *c)
16751675

16761676
static inline void cpu_probe_loongson(struct cpuinfo_mips *c, unsigned int cpu)
16771677
{
1678+
c->cputype = CPU_LOONGSON64;
1679+
16781680
/* All Loongson processors covered here define ExcCode 16 as GSExc. */
1681+
decode_configs(c);
16791682
c->options |= MIPS_CPU_GSEXCEX;
16801683

16811684
switch (c->processor_id & PRID_IMP_MASK) {
@@ -1685,7 +1688,6 @@ static inline void cpu_probe_loongson(struct cpuinfo_mips *c, unsigned int cpu)
16851688
case PRID_REV_LOONGSON2K_R1_1:
16861689
case PRID_REV_LOONGSON2K_R1_2:
16871690
case PRID_REV_LOONGSON2K_R1_3:
1688-
c->cputype = CPU_LOONGSON64;
16891691
__cpu_name[cpu] = "Loongson-2K";
16901692
set_elf_platform(cpu, "gs264e");
16911693
set_isa(c, MIPS_CPU_ISA_M64R2);
@@ -1698,14 +1700,12 @@ static inline void cpu_probe_loongson(struct cpuinfo_mips *c, unsigned int cpu)
16981700
switch (c->processor_id & PRID_REV_MASK) {
16991701
case PRID_REV_LOONGSON3A_R2_0:
17001702
case PRID_REV_LOONGSON3A_R2_1:
1701-
c->cputype = CPU_LOONGSON64;
17021703
__cpu_name[cpu] = "ICT Loongson-3";
17031704
set_elf_platform(cpu, "loongson3a");
17041705
set_isa(c, MIPS_CPU_ISA_M64R2);
17051706
break;
17061707
case PRID_REV_LOONGSON3A_R3_0:
17071708
case PRID_REV_LOONGSON3A_R3_1:
1708-
c->cputype = CPU_LOONGSON64;
17091709
__cpu_name[cpu] = "ICT Loongson-3";
17101710
set_elf_platform(cpu, "loongson3a");
17111711
set_isa(c, MIPS_CPU_ISA_M64R2);
@@ -1725,7 +1725,6 @@ static inline void cpu_probe_loongson(struct cpuinfo_mips *c, unsigned int cpu)
17251725
c->ases &= ~MIPS_ASE_VZ; /* VZ of Loongson-3A2000/3000 is incomplete */
17261726
break;
17271727
case PRID_IMP_LOONGSON_64G:
1728-
c->cputype = CPU_LOONGSON64;
17291728
__cpu_name[cpu] = "ICT Loongson-3";
17301729
set_elf_platform(cpu, "loongson3a");
17311730
set_isa(c, MIPS_CPU_ISA_M64R2);
@@ -1735,8 +1734,6 @@ static inline void cpu_probe_loongson(struct cpuinfo_mips *c, unsigned int cpu)
17351734
panic("Unknown Loongson Processor ID!");
17361735
break;
17371736
}
1738-
1739-
decode_configs(c);
17401737
}
17411738
#else
17421739
static inline void cpu_probe_loongson(struct cpuinfo_mips *c, unsigned int cpu) { }

arch/mips/kvm/emulate.c

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -312,7 +312,7 @@ int kvm_get_badinstrp(u32 *opc, struct kvm_vcpu *vcpu, u32 *out)
312312
*/
313313
int kvm_mips_count_disabled(struct kvm_vcpu *vcpu)
314314
{
315-
struct mips_coproc *cop0 = vcpu->arch.cop0;
315+
struct mips_coproc *cop0 = &vcpu->arch.cop0;
316316

317317
return (vcpu->arch.count_ctl & KVM_REG_MIPS_COUNT_CTL_DC) ||
318318
(kvm_read_c0_guest_cause(cop0) & CAUSEF_DC);
@@ -384,7 +384,7 @@ static inline ktime_t kvm_mips_count_time(struct kvm_vcpu *vcpu)
384384
*/
385385
static u32 kvm_mips_read_count_running(struct kvm_vcpu *vcpu, ktime_t now)
386386
{
387-
struct mips_coproc *cop0 = vcpu->arch.cop0;
387+
struct mips_coproc *cop0 = &vcpu->arch.cop0;
388388
ktime_t expires, threshold;
389389
u32 count, compare;
390390
int running;
@@ -444,7 +444,7 @@ static u32 kvm_mips_read_count_running(struct kvm_vcpu *vcpu, ktime_t now)
444444
*/
445445
u32 kvm_mips_read_count(struct kvm_vcpu *vcpu)
446446
{
447-
struct mips_coproc *cop0 = vcpu->arch.cop0;
447+
struct mips_coproc *cop0 = &vcpu->arch.cop0;
448448

449449
/* If count disabled just read static copy of count */
450450
if (kvm_mips_count_disabled(vcpu))
@@ -502,7 +502,7 @@ ktime_t kvm_mips_freeze_hrtimer(struct kvm_vcpu *vcpu, u32 *count)
502502
static void kvm_mips_resume_hrtimer(struct kvm_vcpu *vcpu,
503503
ktime_t now, u32 count)
504504
{
505-
struct mips_coproc *cop0 = vcpu->arch.cop0;
505+
struct mips_coproc *cop0 = &vcpu->arch.cop0;
506506
u32 compare;
507507
u64 delta;
508508
ktime_t expire;
@@ -603,7 +603,7 @@ int kvm_mips_restore_hrtimer(struct kvm_vcpu *vcpu, ktime_t before,
603603
*/
604604
void kvm_mips_write_count(struct kvm_vcpu *vcpu, u32 count)
605605
{
606-
struct mips_coproc *cop0 = vcpu->arch.cop0;
606+
struct mips_coproc *cop0 = &vcpu->arch.cop0;
607607
ktime_t now;
608608

609609
/* Calculate bias */
@@ -649,7 +649,7 @@ void kvm_mips_init_count(struct kvm_vcpu *vcpu, unsigned long count_hz)
649649
*/
650650
int kvm_mips_set_count_hz(struct kvm_vcpu *vcpu, s64 count_hz)
651651
{
652-
struct mips_coproc *cop0 = vcpu->arch.cop0;
652+
struct mips_coproc *cop0 = &vcpu->arch.cop0;
653653
int dc;
654654
ktime_t now;
655655
u32 count;
@@ -696,7 +696,7 @@ int kvm_mips_set_count_hz(struct kvm_vcpu *vcpu, s64 count_hz)
696696
*/
697697
void kvm_mips_write_compare(struct kvm_vcpu *vcpu, u32 compare, bool ack)
698698
{
699-
struct mips_coproc *cop0 = vcpu->arch.cop0;
699+
struct mips_coproc *cop0 = &vcpu->arch.cop0;
700700
int dc;
701701
u32 old_compare = kvm_read_c0_guest_compare(cop0);
702702
s32 delta = compare - old_compare;
@@ -779,7 +779,7 @@ void kvm_mips_write_compare(struct kvm_vcpu *vcpu, u32 compare, bool ack)
779779
*/
780780
static ktime_t kvm_mips_count_disable(struct kvm_vcpu *vcpu)
781781
{
782-
struct mips_coproc *cop0 = vcpu->arch.cop0;
782+
struct mips_coproc *cop0 = &vcpu->arch.cop0;
783783
u32 count;
784784
ktime_t now;
785785

@@ -806,7 +806,7 @@ static ktime_t kvm_mips_count_disable(struct kvm_vcpu *vcpu)
806806
*/
807807
void kvm_mips_count_disable_cause(struct kvm_vcpu *vcpu)
808808
{
809-
struct mips_coproc *cop0 = vcpu->arch.cop0;
809+
struct mips_coproc *cop0 = &vcpu->arch.cop0;
810810

811811
kvm_set_c0_guest_cause(cop0, CAUSEF_DC);
812812
if (!(vcpu->arch.count_ctl & KVM_REG_MIPS_COUNT_CTL_DC))
@@ -826,7 +826,7 @@ void kvm_mips_count_disable_cause(struct kvm_vcpu *vcpu)
826826
*/
827827
void kvm_mips_count_enable_cause(struct kvm_vcpu *vcpu)
828828
{
829-
struct mips_coproc *cop0 = vcpu->arch.cop0;
829+
struct mips_coproc *cop0 = &vcpu->arch.cop0;
830830
u32 count;
831831

832832
kvm_clear_c0_guest_cause(cop0, CAUSEF_DC);
@@ -852,7 +852,7 @@ void kvm_mips_count_enable_cause(struct kvm_vcpu *vcpu)
852852
*/
853853
int kvm_mips_set_count_ctl(struct kvm_vcpu *vcpu, s64 count_ctl)
854854
{
855-
struct mips_coproc *cop0 = vcpu->arch.cop0;
855+
struct mips_coproc *cop0 = &vcpu->arch.cop0;
856856
s64 changed = count_ctl ^ vcpu->arch.count_ctl;
857857
s64 delta;
858858
ktime_t expire, now;

arch/mips/kvm/mips.c

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -659,7 +659,7 @@ static int kvm_mips_copy_reg_indices(struct kvm_vcpu *vcpu, u64 __user *indices)
659659
static int kvm_mips_get_reg(struct kvm_vcpu *vcpu,
660660
const struct kvm_one_reg *reg)
661661
{
662-
struct mips_coproc *cop0 = vcpu->arch.cop0;
662+
struct mips_coproc *cop0 = &vcpu->arch.cop0;
663663
struct mips_fpu_struct *fpu = &vcpu->arch.fpu;
664664
int ret;
665665
s64 v;
@@ -771,7 +771,7 @@ static int kvm_mips_get_reg(struct kvm_vcpu *vcpu,
771771
static int kvm_mips_set_reg(struct kvm_vcpu *vcpu,
772772
const struct kvm_one_reg *reg)
773773
{
774-
struct mips_coproc *cop0 = vcpu->arch.cop0;
774+
struct mips_coproc *cop0 = &vcpu->arch.cop0;
775775
struct mips_fpu_struct *fpu = &vcpu->arch.fpu;
776776
s64 v;
777777
s64 vs[2];
@@ -1111,7 +1111,7 @@ int kvm_vm_ioctl_check_extension(struct kvm *kvm, long ext)
11111111
int kvm_cpu_has_pending_timer(struct kvm_vcpu *vcpu)
11121112
{
11131113
return kvm_mips_pending_timer(vcpu) ||
1114-
kvm_read_c0_guest_cause(vcpu->arch.cop0) & C_TI;
1114+
kvm_read_c0_guest_cause(&vcpu->arch.cop0) & C_TI;
11151115
}
11161116

11171117
int kvm_arch_vcpu_dump_regs(struct kvm_vcpu *vcpu)
@@ -1135,7 +1135,7 @@ int kvm_arch_vcpu_dump_regs(struct kvm_vcpu *vcpu)
11351135
kvm_debug("\thi: 0x%08lx\n", vcpu->arch.hi);
11361136
kvm_debug("\tlo: 0x%08lx\n", vcpu->arch.lo);
11371137

1138-
cop0 = vcpu->arch.cop0;
1138+
cop0 = &vcpu->arch.cop0;
11391139
kvm_debug("\tStatus: 0x%08x, Cause: 0x%08x\n",
11401140
kvm_read_c0_guest_status(cop0),
11411141
kvm_read_c0_guest_cause(cop0));
@@ -1257,7 +1257,7 @@ static int __kvm_mips_handle_exit(struct kvm_vcpu *vcpu)
12571257

12581258
case EXCCODE_TLBS:
12591259
kvm_debug("TLB ST fault: cause %#x, status %#x, PC: %p, BadVaddr: %#lx\n",
1260-
cause, kvm_read_c0_guest_status(vcpu->arch.cop0), opc,
1260+
cause, kvm_read_c0_guest_status(&vcpu->arch.cop0), opc,
12611261
badvaddr);
12621262

12631263
++vcpu->stat.tlbmiss_st_exits;
@@ -1329,7 +1329,7 @@ static int __kvm_mips_handle_exit(struct kvm_vcpu *vcpu)
13291329
kvm_get_badinstr(opc, vcpu, &inst);
13301330
kvm_err("Exception Code: %d, not yet handled, @ PC: %p, inst: 0x%08x BadVaddr: %#lx Status: %#x\n",
13311331
exccode, opc, inst, badvaddr,
1332-
kvm_read_c0_guest_status(vcpu->arch.cop0));
1332+
kvm_read_c0_guest_status(&vcpu->arch.cop0));
13331333
kvm_arch_vcpu_dump_regs(vcpu);
13341334
run->exit_reason = KVM_EXIT_INTERNAL_ERROR;
13351335
ret = RESUME_HOST;
@@ -1402,7 +1402,7 @@ int noinstr kvm_mips_handle_exit(struct kvm_vcpu *vcpu)
14021402
/* Enable FPU for guest and restore context */
14031403
void kvm_own_fpu(struct kvm_vcpu *vcpu)
14041404
{
1405-
struct mips_coproc *cop0 = vcpu->arch.cop0;
1405+
struct mips_coproc *cop0 = &vcpu->arch.cop0;
14061406
unsigned int sr, cfg5;
14071407

14081408
preempt_disable();
@@ -1446,7 +1446,7 @@ void kvm_own_fpu(struct kvm_vcpu *vcpu)
14461446
/* Enable MSA for guest and restore context */
14471447
void kvm_own_msa(struct kvm_vcpu *vcpu)
14481448
{
1449-
struct mips_coproc *cop0 = vcpu->arch.cop0;
1449+
struct mips_coproc *cop0 = &vcpu->arch.cop0;
14501450
unsigned int sr, cfg5;
14511451

14521452
preempt_disable();

arch/mips/kvm/stats.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,9 +54,9 @@ void kvm_mips_dump_stats(struct kvm_vcpu *vcpu)
5454
kvm_info("\nKVM VCPU[%d] COP0 Access Profile:\n", vcpu->vcpu_id);
5555
for (i = 0; i < N_MIPS_COPROC_REGS; i++) {
5656
for (j = 0; j < N_MIPS_COPROC_SEL; j++) {
57-
if (vcpu->arch.cop0->stat[i][j])
57+
if (vcpu->arch.cop0.stat[i][j])
5858
kvm_info("%s[%d]: %lu\n", kvm_cop0_str[i], j,
59-
vcpu->arch.cop0->stat[i][j]);
59+
vcpu->arch.cop0.stat[i][j]);
6060
}
6161
}
6262
#endif

arch/mips/kvm/trace.h

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -322,11 +322,11 @@ TRACE_EVENT_FN(kvm_guest_mode_change,
322322
),
323323

324324
TP_fast_assign(
325-
__entry->epc = kvm_read_c0_guest_epc(vcpu->arch.cop0);
325+
__entry->epc = kvm_read_c0_guest_epc(&vcpu->arch.cop0);
326326
__entry->pc = vcpu->arch.pc;
327-
__entry->badvaddr = kvm_read_c0_guest_badvaddr(vcpu->arch.cop0);
328-
__entry->status = kvm_read_c0_guest_status(vcpu->arch.cop0);
329-
__entry->cause = kvm_read_c0_guest_cause(vcpu->arch.cop0);
327+
__entry->badvaddr = kvm_read_c0_guest_badvaddr(&vcpu->arch.cop0);
328+
__entry->status = kvm_read_c0_guest_status(&vcpu->arch.cop0);
329+
__entry->cause = kvm_read_c0_guest_cause(&vcpu->arch.cop0);
330330
),
331331

332332
TP_printk("EPC: 0x%08lx PC: 0x%08lx Status: 0x%08x Cause: 0x%08x BadVAddr: 0x%08lx",

arch/mips/kvm/vz.c

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -422,7 +422,7 @@ static void _kvm_vz_restore_htimer(struct kvm_vcpu *vcpu,
422422
*/
423423
static void kvm_vz_restore_timer(struct kvm_vcpu *vcpu)
424424
{
425-
struct mips_coproc *cop0 = vcpu->arch.cop0;
425+
struct mips_coproc *cop0 = &vcpu->arch.cop0;
426426
u32 cause, compare;
427427

428428
compare = kvm_read_sw_gc0_compare(cop0);
@@ -517,7 +517,7 @@ static void _kvm_vz_save_htimer(struct kvm_vcpu *vcpu,
517517
*/
518518
static void kvm_vz_save_timer(struct kvm_vcpu *vcpu)
519519
{
520-
struct mips_coproc *cop0 = vcpu->arch.cop0;
520+
struct mips_coproc *cop0 = &vcpu->arch.cop0;
521521
u32 gctl0, compare, cause;
522522

523523
gctl0 = read_c0_guestctl0();
@@ -863,7 +863,7 @@ static unsigned long mips_process_maar(unsigned int op, unsigned long val)
863863

864864
static void kvm_write_maari(struct kvm_vcpu *vcpu, unsigned long val)
865865
{
866-
struct mips_coproc *cop0 = vcpu->arch.cop0;
866+
struct mips_coproc *cop0 = &vcpu->arch.cop0;
867867

868868
val &= MIPS_MAARI_INDEX;
869869
if (val == MIPS_MAARI_INDEX)
@@ -876,7 +876,7 @@ static enum emulation_result kvm_vz_gpsi_cop0(union mips_instruction inst,
876876
u32 *opc, u32 cause,
877877
struct kvm_vcpu *vcpu)
878878
{
879-
struct mips_coproc *cop0 = vcpu->arch.cop0;
879+
struct mips_coproc *cop0 = &vcpu->arch.cop0;
880880
enum emulation_result er = EMULATE_DONE;
881881
u32 rt, rd, sel;
882882
unsigned long curr_pc;
@@ -1911,7 +1911,7 @@ static int kvm_vz_get_one_reg(struct kvm_vcpu *vcpu,
19111911
const struct kvm_one_reg *reg,
19121912
s64 *v)
19131913
{
1914-
struct mips_coproc *cop0 = vcpu->arch.cop0;
1914+
struct mips_coproc *cop0 = &vcpu->arch.cop0;
19151915
unsigned int idx;
19161916

19171917
switch (reg->id) {
@@ -2081,7 +2081,7 @@ static int kvm_vz_get_one_reg(struct kvm_vcpu *vcpu,
20812081
case KVM_REG_MIPS_CP0_MAARI:
20822082
if (!cpu_guest_has_maar || cpu_guest_has_dyn_maar)
20832083
return -EINVAL;
2084-
*v = kvm_read_sw_gc0_maari(vcpu->arch.cop0);
2084+
*v = kvm_read_sw_gc0_maari(&vcpu->arch.cop0);
20852085
break;
20862086
#ifdef CONFIG_64BIT
20872087
case KVM_REG_MIPS_CP0_XCONTEXT:
@@ -2135,7 +2135,7 @@ static int kvm_vz_set_one_reg(struct kvm_vcpu *vcpu,
21352135
const struct kvm_one_reg *reg,
21362136
s64 v)
21372137
{
2138-
struct mips_coproc *cop0 = vcpu->arch.cop0;
2138+
struct mips_coproc *cop0 = &vcpu->arch.cop0;
21392139
unsigned int idx;
21402140
int ret = 0;
21412141
unsigned int cur, change;
@@ -2562,7 +2562,7 @@ static void kvm_vz_vcpu_load_tlb(struct kvm_vcpu *vcpu, int cpu)
25622562

25632563
static int kvm_vz_vcpu_load(struct kvm_vcpu *vcpu, int cpu)
25642564
{
2565-
struct mips_coproc *cop0 = vcpu->arch.cop0;
2565+
struct mips_coproc *cop0 = &vcpu->arch.cop0;
25662566
bool migrated, all;
25672567

25682568
/*
@@ -2704,7 +2704,7 @@ static int kvm_vz_vcpu_load(struct kvm_vcpu *vcpu, int cpu)
27042704

27052705
static int kvm_vz_vcpu_put(struct kvm_vcpu *vcpu, int cpu)
27062706
{
2707-
struct mips_coproc *cop0 = vcpu->arch.cop0;
2707+
struct mips_coproc *cop0 = &vcpu->arch.cop0;
27082708

27092709
if (current->flags & PF_VCPU)
27102710
kvm_vz_vcpu_save_wired(vcpu);
@@ -3076,7 +3076,7 @@ static void kvm_vz_vcpu_uninit(struct kvm_vcpu *vcpu)
30763076

30773077
static int kvm_vz_vcpu_setup(struct kvm_vcpu *vcpu)
30783078
{
3079-
struct mips_coproc *cop0 = vcpu->arch.cop0;
3079+
struct mips_coproc *cop0 = &vcpu->arch.cop0;
30803080
unsigned long count_hz = 100*1000*1000; /* default to 100 MHz */
30813081

30823082
/*

arch/powerpc/Makefile

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -402,3 +402,11 @@ checkbin:
402402
echo -n '*** Please use a different binutils version.' ; \
403403
false ; \
404404
fi
405+
@if test "x${CONFIG_FTRACE_MCOUNT_USE_RECORDMCOUNT}" = "xy" -a \
406+
"x${CONFIG_LD_IS_BFD}" = "xy" -a \
407+
"${CONFIG_LD_VERSION}" = "23700" ; then \
408+
echo -n '*** binutils 2.37 drops unused section symbols, which recordmcount ' ; \
409+
echo 'is unable to handle.' ; \
410+
echo '*** Please use a different binutils version.' ; \
411+
false ; \
412+
fi

0 commit comments

Comments
 (0)