s390 fixes for 5.7-rc3
- Add few notrace annotations to avoid potential crashes when switching ftrace tracers. - Avoid setting affinity for floating irqs in pci code. - Fix build issue found by kbuild test robot. -----BEGIN PGP SIGNATURE----- iQEzBAABCAAdFiEE3QHqV+H2a8xAv27vjYWKoQLXFBgFAl6lOMoACgkQjYWKoQLX FBjQFQf/cA+F2tvEC+0YetUmwSaR+iPsCsgtCCSlBq5E8cCkzCf9uHVsXkmC647O 6vMsbFh7TeGmLbYPtgl/mFRjsuoVgD/Gm5TMm2nsWqZ3+C7pd8cMXCLY7dAtFb5d judNcL0LSeBpytUflMLd2nXjuD90Y4dNd7J3WNC2l5/fdUW+Bd+97B+zj385wrTs Z4Ab4KBzv+79e+4iMtn7xiK+RMnhP/pDij1RbtAI1XS33cigjSkZQb5gC/Yxb4Qy badzecGOmdpod8A76didEeTTQ50bknT47dASwhguuDhdBZj36+SEnUXL0tiT1TFW /Za3Q+rLFOe8OEqTsCBzEF55ijkXZQ== =CBXL -----END PGP SIGNATURE----- Merge tag 's390-5.7-3' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux Pull s390 fixes from Vasily Gorbik: - Add a few notrace annotations to avoid potential crashes when switching ftrace tracers. - Avoid setting affinity for floating irqs in pci code. - Fix build issue found by kbuild test robot. * tag 's390-5.7-3' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux: s390/protvirt: fix compilation issue s390/pci: do not set affinity for floating irqs s390/ftrace: fix potential crashes when switching tracers
This commit is contained in:
Коммит
749f04615a
|
@ -7,9 +7,7 @@
|
||||||
#ifdef CONFIG_PROTECTED_VIRTUALIZATION_GUEST
|
#ifdef CONFIG_PROTECTED_VIRTUALIZATION_GUEST
|
||||||
int __bootdata_preserved(prot_virt_guest);
|
int __bootdata_preserved(prot_virt_guest);
|
||||||
#endif
|
#endif
|
||||||
#if IS_ENABLED(CONFIG_KVM)
|
|
||||||
struct uv_info __bootdata_preserved(uv_info);
|
struct uv_info __bootdata_preserved(uv_info);
|
||||||
#endif
|
|
||||||
|
|
||||||
void uv_query_info(void)
|
void uv_query_info(void)
|
||||||
{
|
{
|
||||||
|
|
|
@ -133,7 +133,7 @@ void diag_stat_inc(enum diag_stat_enum nr)
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL(diag_stat_inc);
|
EXPORT_SYMBOL(diag_stat_inc);
|
||||||
|
|
||||||
void diag_stat_inc_norecursion(enum diag_stat_enum nr)
|
void notrace diag_stat_inc_norecursion(enum diag_stat_enum nr)
|
||||||
{
|
{
|
||||||
this_cpu_inc(diag_stat.counter[nr]);
|
this_cpu_inc(diag_stat.counter[nr]);
|
||||||
trace_s390_diagnose_norecursion(diag_map[nr].code);
|
trace_s390_diagnose_norecursion(diag_map[nr].code);
|
||||||
|
|
|
@ -403,7 +403,7 @@ int smp_find_processor_id(u16 address)
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool arch_vcpu_is_preempted(int cpu)
|
bool notrace arch_vcpu_is_preempted(int cpu)
|
||||||
{
|
{
|
||||||
if (test_cpu_flag_of(CIF_ENABLED_WAIT, cpu))
|
if (test_cpu_flag_of(CIF_ENABLED_WAIT, cpu))
|
||||||
return false;
|
return false;
|
||||||
|
@ -413,7 +413,7 @@ bool arch_vcpu_is_preempted(int cpu)
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL(arch_vcpu_is_preempted);
|
EXPORT_SYMBOL(arch_vcpu_is_preempted);
|
||||||
|
|
||||||
void smp_yield_cpu(int cpu)
|
void notrace smp_yield_cpu(int cpu)
|
||||||
{
|
{
|
||||||
if (!MACHINE_HAS_DIAG9C)
|
if (!MACHINE_HAS_DIAG9C)
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -14,7 +14,7 @@ EXPORT_TRACEPOINT_SYMBOL(s390_diagnose);
|
||||||
|
|
||||||
static DEFINE_PER_CPU(unsigned int, diagnose_trace_depth);
|
static DEFINE_PER_CPU(unsigned int, diagnose_trace_depth);
|
||||||
|
|
||||||
void trace_s390_diagnose_norecursion(int diag_nr)
|
void notrace trace_s390_diagnose_norecursion(int diag_nr)
|
||||||
{
|
{
|
||||||
unsigned long flags;
|
unsigned long flags;
|
||||||
unsigned int *depth;
|
unsigned int *depth;
|
||||||
|
|
|
@ -23,10 +23,11 @@
|
||||||
int __bootdata_preserved(prot_virt_guest);
|
int __bootdata_preserved(prot_virt_guest);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
struct uv_info __bootdata_preserved(uv_info);
|
||||||
|
|
||||||
#if IS_ENABLED(CONFIG_KVM)
|
#if IS_ENABLED(CONFIG_KVM)
|
||||||
int prot_virt_host;
|
int prot_virt_host;
|
||||||
EXPORT_SYMBOL(prot_virt_host);
|
EXPORT_SYMBOL(prot_virt_host);
|
||||||
struct uv_info __bootdata_preserved(uv_info);
|
|
||||||
EXPORT_SYMBOL(uv_info);
|
EXPORT_SYMBOL(uv_info);
|
||||||
|
|
||||||
static int __init prot_virt_setup(char *val)
|
static int __init prot_virt_setup(char *val)
|
||||||
|
|
|
@ -115,7 +115,6 @@ static struct irq_chip zpci_irq_chip = {
|
||||||
.name = "PCI-MSI",
|
.name = "PCI-MSI",
|
||||||
.irq_unmask = pci_msi_unmask_irq,
|
.irq_unmask = pci_msi_unmask_irq,
|
||||||
.irq_mask = pci_msi_mask_irq,
|
.irq_mask = pci_msi_mask_irq,
|
||||||
.irq_set_affinity = zpci_set_irq_affinity,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
static void zpci_handle_cpu_local_irq(bool rescan)
|
static void zpci_handle_cpu_local_irq(bool rescan)
|
||||||
|
@ -276,7 +275,9 @@ int arch_setup_msi_irqs(struct pci_dev *pdev, int nvec, int type)
|
||||||
rc = -EIO;
|
rc = -EIO;
|
||||||
if (hwirq - bit >= msi_vecs)
|
if (hwirq - bit >= msi_vecs)
|
||||||
break;
|
break;
|
||||||
irq = __irq_alloc_descs(-1, 0, 1, 0, THIS_MODULE, msi->affinity);
|
irq = __irq_alloc_descs(-1, 0, 1, 0, THIS_MODULE,
|
||||||
|
(irq_delivery == DIRECTED) ?
|
||||||
|
msi->affinity : NULL);
|
||||||
if (irq < 0)
|
if (irq < 0)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
rc = irq_set_msi_desc(irq, msi);
|
rc = irq_set_msi_desc(irq, msi);
|
||||||
|
|
Загрузка…
Ссылка в новой задаче