Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 3 May 2012 21:44:02 +0000 (UTC)
From:      Attilio Rao <attilio@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r234989 - in head/sys: amd64/include i386/include x86/x86
Message-ID:  <201205032144.q43Li2og064707@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: attilio
Date: Thu May  3 21:44:01 2012
New Revision: 234989
URL: http://svn.freebsd.org/changeset/base/234989

Log:
  Revert part of r234723 by re-enabling the SMP protection for
  intr_bind() on x86.
  This has been requested by jhb and I strongly disagree with this,
  but as long as he is the x86 and interrupt subsystem maintainer I will
  follow his directives.
  
  The disagreement cames from what we should really consider as a
  public KPI. IMHO, if we really need a selection between the kernel
  functions, we may need an explicit protection like _KERNEL_KPI, which
  defines which subset of the kernel function might really be considered
  as part of the KPI (for thirdy part modules) and which not.
  As long as we don't have this mechanism I just consider any possible
  function as usable by thirdy part code, thus intr_bind() included.
  
  MFC after:	1 week

Modified:
  head/sys/amd64/include/intr_machdep.h
  head/sys/i386/include/intr_machdep.h
  head/sys/x86/x86/intr_machdep.c

Modified: head/sys/amd64/include/intr_machdep.h
==============================================================================
--- head/sys/amd64/include/intr_machdep.h	Thu May  3 21:39:23 2012	(r234988)
+++ head/sys/amd64/include/intr_machdep.h	Thu May  3 21:44:01 2012	(r234989)
@@ -144,7 +144,9 @@ void	intr_add_cpu(u_int cpu);
 int	intr_add_handler(const char *name, int vector, driver_filter_t filter, 
 			 driver_intr_t handler, void *arg, enum intr_type flags, 
 			 void **cookiep);    
+#ifdef SMP
 int	intr_bind(u_int vector, u_char cpu);
+#endif
 int	intr_config_intr(int vector, enum intr_trigger trig,
     enum intr_polarity pol);
 int	intr_describe(u_int vector, void *ih, const char *descr);

Modified: head/sys/i386/include/intr_machdep.h
==============================================================================
--- head/sys/i386/include/intr_machdep.h	Thu May  3 21:39:23 2012	(r234988)
+++ head/sys/i386/include/intr_machdep.h	Thu May  3 21:44:01 2012	(r234989)
@@ -134,7 +134,9 @@ void	elcr_write_trigger(u_int irq, enum 
 void	intr_add_cpu(u_int cpu);
 int	intr_add_handler(const char *name, int vector, driver_filter_t filter,
     driver_intr_t handler, void *arg, enum intr_type flags, void **cookiep);
+#ifdef SMP
 int	intr_bind(u_int vector, u_char cpu);
+#endif
 int	intr_config_intr(int vector, enum intr_trigger trig,
     enum intr_polarity pol);
 int	intr_describe(u_int vector, void *ih, const char *descr);

Modified: head/sys/x86/x86/intr_machdep.c
==============================================================================
--- head/sys/x86/x86/intr_machdep.c	Thu May  3 21:39:23 2012	(r234988)
+++ head/sys/x86/x86/intr_machdep.c	Thu May  3 21:44:01 2012	(r234989)
@@ -566,14 +566,6 @@ intr_next_cpu(void)
 	return (PCPU_GET(apic_id));
 }
 
-/* Return EOPNOTSUPP in the UP case. */
-int
-intr_bind(u_int vector __unused, u_char cpu __unused)
-{
-
-	return (EOPNOTSUPP);
-}
-
 /* Use an empty stub for compatibility. */
 void
 intr_add_cpu(u_int cpu __unused)



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201205032144.q43Li2og064707>