Author: zbb
Date: Tue Jul 14 11:59:43 2015
New Revision: 285533
URL: https://svnweb.freebsd.org/changeset/base/285533

Log:
  Fix intr_machdep.c for ARM64
  
  On ARMv8 IPIs are mapped to 0-15. Incrementing the number by 16
  is wrong, because it sets a reserved bit in the IPI register.
  This patch removes all "+16" to comply with specs.
  
  Obtained from: Semihalf
  Sponsored by:  The FreeBSD Foundation
  Differential Revision: https://reviews.freebsd.org/D3029

Modified:
  head/sys/arm64/arm64/intr_machdep.c

Modified: head/sys/arm64/arm64/intr_machdep.c
==============================================================================
--- head/sys/arm64/arm64/intr_machdep.c Tue Jul 14 11:37:26 2015        
(r285532)
+++ head/sys/arm64/arm64/intr_machdep.c Tue Jul 14 11:59:43 2015        
(r285533)
@@ -451,8 +451,7 @@ void
 arm_setup_ipihandler(driver_filter_t *filt, u_int ipi)
 {
 
-       /* ARM64TODO: The hard coded 16 will be fixed with am_intrng */
-       arm_setup_intr("ipi", filt, NULL, (void *)((uintptr_t)ipi | 1<<16), ipi 
+ 16,
+       arm_setup_intr("ipi", filt, NULL, (void *)((uintptr_t)ipi | 1<<16), ipi,
            INTR_TYPE_MISC | INTR_EXCL, NULL);
        arm_unmask_ipi(ipi);
 }
@@ -460,7 +459,8 @@ arm_setup_ipihandler(driver_filter_t *fi
 void
 arm_unmask_ipi(u_int ipi)
 {
-       PIC_UNMASK(root_pic, ipi + 16);
+
+       PIC_UNMASK(root_pic, ipi);
 }
 
 void
@@ -494,9 +494,6 @@ ipi_cpu(int cpu, u_int ipi)
        CPU_ZERO(&cpus);
        CPU_SET(cpu, &cpus);
 
-       /* ARM64TODO: This will be fixed with arm_intrng */
-       ipi += 16;
-
        CTR2(KTR_SMP, "ipi_cpu: cpu: %d, ipi: %x", cpu, ipi);
        PIC_IPI_SEND(root_pic, cpus, ipi);
 }
@@ -505,9 +502,6 @@ void
 ipi_selected(cpuset_t cpus, u_int ipi)
 {
 
-       /* ARM64TODO: This will be fixed with arm_intrng */
-       ipi += 16;
-
        CTR1(KTR_SMP, "ipi_selected: ipi: %x", ipi);
        PIC_IPI_SEND(root_pic, cpus, ipi);
 }
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "[email protected]"

Reply via email to