Re: [PATCH] acpi: add support for extended IRQ to PCI link

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 





On 11/8/2015 3:35 PM, Andy Shevchenko wrote:
On Sun, Nov 8, 2015 at 6:07 PM, Sinan Kaya <okaya@xxxxxxxxxxxxxx> wrote:
The ACPI compiler uses the extended format when
used interrupt numbers are greater than 256.
The PCI link code currently only supports simple
interrupt format. The IRQ numbers are represented
using 32 bits when extended IRQ syntax. This patch
changes the interrupt number type to 32 bits and
places an upper limit of 1020 as possible interrupt
id. Additional checks have been placed to prevent
out of bounds writes.

In commit messages and in comments I see this narrow lines, any reason
to make them short, except increasing number of lines?


done

         if (acpi_irq_balance || !link->irq.active) {
-               /*
-                * Select the best IRQ.  This is done in reverse to promote
-                * the use of IRQs 9, 10, 11, and >15.
-                */
-               for (i = (link->irq.possible_count - 1); i >= 0; i--) {
-                       if (acpi_irq_penalty[irq] >
-                           acpi_irq_penalty[link->irq.possible[i]])
-                               irq = link->irq.possible[i];
+
+               if (irq < ACPI_MAX_IRQS) {
+                       /*
+                        * Select the best IRQ.  This is done in reverse to
+                        * promote the use of IRQs 9, 10, 11, and >15.
+                        */
+                       for (i = (link->irq.possible_count - 1); i >= 0;
+                               i--) {

Why not

if ((acpi_irq_balance || !link->irq.active) && irq < ACPI_MAX_IRQS) {
  int i = link->irq.possible_count;

  while (--i) {
  …
  }
}

done


+                               if ((link->irq.possible[i] < ACPI_MAX_IRQS) &&
+                                   (acpi_irq_penalty[irq] >
+                                   acpi_irq_penalty[link->irq.possible[i]]))
+                                       irq = link->irq.possible[i];
+                       }
                 }
         }
         if (acpi_irq_penalty[irq] >= PIRQ_PENALTY_ISA_ALWAYS) {


--
Sinan Kaya
Qualcomm Technologies, Inc. on behalf of Qualcomm Innovation Center, Inc.
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project
--
To unsubscribe from this list: send the line "unsubscribe linux-arm-msm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [Linux for Sparc]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux