Module Name:    src
Committed By:   knakahara
Date:           Fri May 15 08:36:41 UTC 2015

Modified Files:
        src/sys/arch/x86/include: pci_machdep_common.h
        src/sys/arch/x86/pci: pci_intr_machdep.c pci_msi_machdep.c
            pci_msi_machdep.h
        src/sys/arch/x86/x86: intr.c

Log Message:
pci_msi_string() must be used by MD code only.


To generate a diff of this commit:
cvs rdiff -u -r1.17 -r1.18 src/sys/arch/x86/include/pci_machdep_common.h
cvs rdiff -u -r1.32 -r1.33 src/sys/arch/x86/pci/pci_intr_machdep.c
cvs rdiff -u -r1.4 -r1.5 src/sys/arch/x86/pci/pci_msi_machdep.c
cvs rdiff -u -r1.1 -r1.2 src/sys/arch/x86/pci/pci_msi_machdep.h
cvs rdiff -u -r1.84 -r1.85 src/sys/arch/x86/x86/intr.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/arch/x86/include/pci_machdep_common.h
diff -u src/sys/arch/x86/include/pci_machdep_common.h:1.17 src/sys/arch/x86/include/pci_machdep_common.h:1.18
--- src/sys/arch/x86/include/pci_machdep_common.h:1.17	Fri May 15 08:26:44 2015
+++ src/sys/arch/x86/include/pci_machdep_common.h	Fri May 15 08:36:41 2015
@@ -1,4 +1,4 @@
-/*	$NetBSD: pci_machdep_common.h,v 1.17 2015/05/15 08:26:44 knakahara Exp $	*/
+/*	$NetBSD: pci_machdep_common.h,v 1.18 2015/05/15 08:36:41 knakahara Exp $	*/
 
 /*
  * Copyright (c) 1996 Christopher G. Demetriou.  All rights reserved.
@@ -129,7 +129,6 @@ int		pci_intx_alloc(const struct pci_att
 		    pci_intr_handle_t **);
 
 /* experimental MSI support */
-const char	*pci_msi_string(pci_chipset_tag_t, pci_intr_handle_t, char *, size_t);
 int		pci_msi_count(const struct pci_attach_args *);
 int		pci_msi_alloc(const struct pci_attach_args *,
 		    pci_intr_handle_t **, int *);

Index: src/sys/arch/x86/pci/pci_intr_machdep.c
diff -u src/sys/arch/x86/pci/pci_intr_machdep.c:1.32 src/sys/arch/x86/pci/pci_intr_machdep.c:1.33
--- src/sys/arch/x86/pci/pci_intr_machdep.c:1.32	Fri May 15 08:29:33 2015
+++ src/sys/arch/x86/pci/pci_intr_machdep.c	Fri May 15 08:36:41 2015
@@ -1,4 +1,4 @@
-/*	$NetBSD: pci_intr_machdep.c,v 1.32 2015/05/15 08:29:33 knakahara Exp $	*/
+/*	$NetBSD: pci_intr_machdep.c,v 1.33 2015/05/15 08:36:41 knakahara Exp $	*/
 
 /*-
  * Copyright (c) 1997, 1998, 2009 The NetBSD Foundation, Inc.
@@ -73,7 +73,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: pci_intr_machdep.c,v 1.32 2015/05/15 08:29:33 knakahara Exp $");
+__KERNEL_RCSID(0, "$NetBSD: pci_intr_machdep.c,v 1.33 2015/05/15 08:36:41 knakahara Exp $");
 
 #include <sys/types.h>
 #include <sys/param.h>
@@ -226,9 +226,6 @@ pci_intr_string(pci_chipset_tag_t pc, pc
 {
 	pci_chipset_tag_t ipc;
 
-	if (INT_VIA_MSI(ih))
-		return pci_msi_string(pc, ih, buf, len);
-
 	for (ipc = pc; ipc != NULL; ipc = ipc->pc_super) {
 		if ((ipc->pc_present & PCI_OVERRIDE_INTR_STRING) == 0)
 			continue;
@@ -236,6 +233,9 @@ pci_intr_string(pci_chipset_tag_t pc, pc
 		    buf, len);
 	}
 
+	if (INT_VIA_MSI(ih))
+		return x86_pci_msi_string(pc, ih, buf, len);
+
 	return intr_string(ih & ~MPSAFE_MASK, buf, len);
 }
 

Index: src/sys/arch/x86/pci/pci_msi_machdep.c
diff -u src/sys/arch/x86/pci/pci_msi_machdep.c:1.4 src/sys/arch/x86/pci/pci_msi_machdep.c:1.5
--- src/sys/arch/x86/pci/pci_msi_machdep.c:1.4	Fri May 15 08:29:33 2015
+++ src/sys/arch/x86/pci/pci_msi_machdep.c	Fri May 15 08:36:41 2015
@@ -1,4 +1,4 @@
-/*	$NetBSD: pci_msi_machdep.c,v 1.4 2015/05/15 08:29:33 knakahara Exp $	*/
+/*	$NetBSD: pci_msi_machdep.c,v 1.5 2015/05/15 08:36:41 knakahara Exp $	*/
 
 /*
  * Copyright (c) 2015 Internet Initiative Japan Inc.
@@ -34,7 +34,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: pci_msi_machdep.c,v 1.4 2015/05/15 08:29:33 knakahara Exp $");
+__KERNEL_RCSID(0, "$NetBSD: pci_msi_machdep.c,v 1.5 2015/05/15 08:36:41 knakahara Exp $");
 
 #include <sys/types.h>
 #include <sys/param.h>
@@ -65,28 +65,6 @@ __KERNEL_RCSID(0, "$NetBSD: pci_msi_mach
 #define DPRINTF(msg)
 #endif
 
-/*
- * Return intrid for a MSI/MSI-X device.
- * "buf" must be allocated by caller.
- */
-const char *
-pci_msi_string(pci_chipset_tag_t pc, pci_intr_handle_t ih, char *buf,
-    size_t len)
-{
-	int dev, vec;
-
-	KASSERT(INT_VIA_MSI(ih));
-
-	dev = MSI_INT_DEV(ih);
-	vec = MSI_INT_VEC(ih);
-	if (MSI_INT_IS_MSIX(ih))
-		snprintf(buf, len, "msix%d vec %d", dev, vec);
-	else
-		snprintf(buf, len, "msi%d vec %d", dev, vec);
-
-	return buf;
-}
-
 static pci_intr_handle_t
 pci_msi_calculate_handle(struct pic *msi_pic, int vector)
 {
@@ -134,7 +112,7 @@ pci_msi_alloc_vectors(struct pic *msi_pi
 
 		pih = pci_msi_calculate_handle(msi_pic, table_index);
 
-		intrstr = pci_msi_string(NULL, pih, intrstr_buf,
+		intrstr = x86_pci_msi_string(NULL, pih, intrstr_buf,
 		    sizeof(intrstr_buf));
 		isp = intr_allocate_io_intrsource(intrstr);
 		if (isp == NULL) {
@@ -162,7 +140,7 @@ pci_msi_free_vectors(struct pic *msi_pic
 	mutex_enter(&cpu_lock);
 	for (i = 0; i < count; i++) {
 		pih = pci_msi_calculate_handle(msi_pic, i);
-		intrstr = pci_msi_string(NULL, pih, intrstr_buf,
+		intrstr = x86_pci_msi_string(NULL, pih, intrstr_buf,
 		    sizeof(intrstr_buf));
 		intr_free_io_intrsource(intrstr);
 	}
@@ -372,10 +350,32 @@ x86_pci_msix_release_internal(pci_intr_h
 
 /*****************************************************************************/
 /*
- * extern for pci_intr_machdep.c
+ * extern for MD code.
  */
 
 /*
+ * Return intrid for a MSI/MSI-X device.
+ * "buf" must be allocated by caller.
+ */
+const char *
+x86_pci_msi_string(pci_chipset_tag_t pc, pci_intr_handle_t ih, char *buf,
+    size_t len)
+{
+	int dev, vec;
+
+	KASSERT(INT_VIA_MSI(ih));
+
+	dev = MSI_INT_DEV(ih);
+	vec = MSI_INT_VEC(ih);
+	if (MSI_INT_IS_MSIX(ih))
+		snprintf(buf, len, "msix%d vec %d", dev, vec);
+	else
+		snprintf(buf, len, "msi%d vec %d", dev, vec);
+
+	return buf;
+}
+
+/*
  * Release MSI handles.
  */
 void
@@ -467,7 +467,7 @@ x86_pci_msix_disestablish(pci_chipset_ta
 
 /*****************************************************************************/
 /*
- * these APIs may be MI code.
+ * extern for MI code.
  */
 
 /*

Index: src/sys/arch/x86/pci/pci_msi_machdep.h
diff -u src/sys/arch/x86/pci/pci_msi_machdep.h:1.1 src/sys/arch/x86/pci/pci_msi_machdep.h:1.2
--- src/sys/arch/x86/pci/pci_msi_machdep.h:1.1	Fri May 15 08:26:44 2015
+++ src/sys/arch/x86/pci/pci_msi_machdep.h	Fri May 15 08:36:41 2015
@@ -1,4 +1,4 @@
-/*	$NetBSD: pci_msi_machdep.h,v 1.1 2015/05/15 08:26:44 knakahara Exp $	*/
+/*	$NetBSD: pci_msi_machdep.h,v 1.2 2015/05/15 08:36:41 knakahara Exp $	*/
 
 /*
  * Copyright (c) 2015 Internet Initiative Japan Inc.
@@ -29,6 +29,8 @@
 #ifndef _X86_PCI_PCI_MSI_MACHDEP_H_
 #define _X86_PCI_PCI_MSI_MACHDEP_H_
 
+const char	*x86_pci_msi_string(pci_chipset_tag_t, pci_intr_handle_t,
+		    char *, size_t);
 void		x86_pci_msi_release(pci_chipset_tag_t, pci_intr_handle_t *,
 		    int);
 void		*x86_pci_msi_establish(pci_chipset_tag_t, pci_intr_handle_t,

Index: src/sys/arch/x86/x86/intr.c
diff -u src/sys/arch/x86/x86/intr.c:1.84 src/sys/arch/x86/x86/intr.c:1.85
--- src/sys/arch/x86/x86/intr.c:1.84	Sat May  9 13:05:51 2015
+++ src/sys/arch/x86/x86/intr.c	Fri May 15 08:36:41 2015
@@ -1,4 +1,4 @@
-/*	$NetBSD: intr.c,v 1.84 2015/05/09 13:05:51 christos Exp $	*/
+/*	$NetBSD: intr.c,v 1.85 2015/05/15 08:36:41 knakahara Exp $	*/
 
 /*-
  * Copyright (c) 2007, 2008, 2009 The NetBSD Foundation, Inc.
@@ -133,7 +133,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: intr.c,v 1.84 2015/05/09 13:05:51 christos Exp $");
+__KERNEL_RCSID(0, "$NetBSD: intr.c,v 1.85 2015/05/15 08:36:41 knakahara Exp $");
 
 #include "opt_intrdebug.h"
 #include "opt_multiprocessor.h"
@@ -177,6 +177,7 @@ __KERNEL_RCSID(0, "$NetBSD: intr.c,v 1.8
 #endif
 
 #include <x86/pci/msipic.h>
+#include <x86/pci/pci_msi_machdep.h>
 
 #if NPCI == 0
 #define msipic_is_msi_pic(PIC)	(false)
@@ -487,7 +488,7 @@ create_intrid(int legacy_irq, struct pic
 		else if (pic->pic_type == PIC_MSIX)
 			MSI_INT_MAKE_MSIX(pih);
 
-		return pci_msi_string(NULL, pih, buf, len);
+		return x86_pci_msi_string(NULL, pih, buf, len);
 	}
 #endif
 

Reply via email to