|
@@ -1001,8 +1001,12 @@ static int mpic_host_map(struct irq_domain *h, unsigned int virq,
|
|
|
|
|
|
if (hw == mpic->spurious_vec)
|
|
|
return -EINVAL;
|
|
|
- if (mpic->protected && test_bit(hw, mpic->protected))
|
|
|
- return -EINVAL;
|
|
|
+ if (mpic->protected && test_bit(hw, mpic->protected)) {
|
|
|
+ pr_warning("mpic: Mapping of source 0x%x failed, "
|
|
|
+ "source protected by firmware !\n",\
|
|
|
+ (unsigned int)hw);
|
|
|
+ return -EPERM;
|
|
|
+ }
|
|
|
|
|
|
#ifdef CONFIG_SMP
|
|
|
else if (hw >= mpic->ipi_vecs[0]) {
|
|
@@ -1029,8 +1033,12 @@ static int mpic_host_map(struct irq_domain *h, unsigned int virq,
|
|
|
if (mpic_map_error_int(mpic, virq, hw))
|
|
|
return 0;
|
|
|
|
|
|
- if (hw >= mpic->num_sources)
|
|
|
+ if (hw >= mpic->num_sources) {
|
|
|
+ pr_warning("mpic: Mapping of source 0x%x failed, "
|
|
|
+ "source out of range !\n",\
|
|
|
+ (unsigned int)hw);
|
|
|
return -EINVAL;
|
|
|
+ }
|
|
|
|
|
|
mpic_msi_reserve_hwirq(mpic, hw);
|
|
|
|