Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 17 Oct 2021 20:51:51 GMT
From:      Rene Ladan <rene@FreeBSD.org>
To:        ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org
Subject:   git: 93566bfca3fa - main - sysutils/bhyve+: remove unused patch
Message-ID:  <202110172051.19HKpp6P082024@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch main has been updated by rene:

URL: https://cgit.FreeBSD.org/ports/commit/?id=93566bfca3fad11ec0bf2eb7082f548560eb2d07

commit 93566bfca3fad11ec0bf2eb7082f548560eb2d07
Author:     Rene Ladan <rene@FreeBSD.org>
AuthorDate: 2021-10-17 20:50:32 +0000
Commit:     Rene Ladan <rene@FreeBSD.org>
CommitDate: 2021-10-17 20:51:41 +0000

    sysutils/bhyve+: remove unused patch
---
 .../bhyve+/files/freebsd-11/patch-msi-x-mappings   | 132 ---------------------
 1 file changed, 132 deletions(-)

diff --git a/sysutils/bhyve+/files/freebsd-11/patch-msi-x-mappings b/sysutils/bhyve+/files/freebsd-11/patch-msi-x-mappings
deleted file mode 100644
index 4c8f453abbbb..000000000000
--- a/sysutils/bhyve+/files/freebsd-11/patch-msi-x-mappings
+++ /dev/null
@@ -1,132 +0,0 @@
---- usr.sbin/bhyve/pci_emul.h.orig	2021-08-19 23:00:57 UTC
-+++ usr.sbin/bhyve/pci_emul.h
-@@ -146,6 +146,7 @@ struct pci_devinst {
- 		struct msix_table_entry *table;	/* allocated at runtime */
- 		void	*pba_page;
- 		int	pba_page_offset;
-+		void	*table_page;
- 	} pi_msix;
- 
- 	void      *pi_arg;		/* devemu-private data */
---- usr.sbin/bhyve/pci_passthru.c.orig	2021-08-19 23:00:57 UTC
-+++ usr.sbin/bhyve/pci_passthru.c
-@@ -324,13 +324,14 @@ msix_table_read(struct passthru_softc *sc, uint64_t of
- 		return (data);
- 	}
- 
-+	/* Should make this an assert. */
- 	if (offset < pi->pi_msix.table_offset)
- 		return (-1);
- 
- 	offset -= pi->pi_msix.table_offset;
- 	index = offset / MSIX_TABLE_ENTRY_SIZE;
- 	if (index >= pi->pi_msix.table_count)
--		return (-1);
-+		goto readbar;
- 
- 	entry = &pi->pi_msix.table[index];
- 	entry_offset = offset % MSIX_TABLE_ENTRY_SIZE;
-@@ -357,6 +358,33 @@ msix_table_read(struct passthru_softc *sc, uint64_t of
- 	}
- 
- 	return (data);
-+
-+readbar:
-+	if (pi->pi_msix.table_page != NULL && offset < 4096) {
-+		switch(size) {
-+		case 1:
-+			src8 = (uint8_t *)(pi->pi_msix.table_page + offset);
-+			data = *src8;
-+			break;
-+		case 2:
-+			src16 = (uint16_t *)(pi->pi_msix.table_page + offset);
-+			data = *src16;
-+			break;
-+		case 4:
-+			src32 = (uint32_t *)(pi->pi_msix.table_page + offset);
-+			data = *src32;
-+			break;
-+		case 8:
-+			src64 = (uint64_t *)(pi->pi_msix.table_page + offset);
-+			data = *src64;
-+			break;
-+		default:
-+			return (-1);
-+		}
-+		return (data);
-+	}
-+
-+	return (-1);
- }
- 
- static void
-@@ -403,13 +431,14 @@ msix_table_write(struct vmctx *ctx, int vcpu, struct p
- 		return;
- 	}
- 
-+	/* Should make this an assert. */
- 	if (offset < pi->pi_msix.table_offset)
- 		return;
- 
- 	offset -= pi->pi_msix.table_offset;
- 	index = offset / MSIX_TABLE_ENTRY_SIZE;
- 	if (index >= pi->pi_msix.table_count)
--		return;
-+		goto writebar;
- 
- 	entry = &pi->pi_msix.table[index];
- 	entry_offset = offset % MSIX_TABLE_ENTRY_SIZE;
-@@ -432,6 +461,31 @@ msix_table_write(struct vmctx *ctx, int vcpu, struct p
- 			    entry->msg_data, entry->vector_control);
- 		}
- 	}
-+
-+writebar:
-+	if (pi->pi_msix.table_page != NULL && offset < 4096) {
-+		switch(size) {
-+		case 1:
-+			dest8 = (uint8_t *)(pi->pi_msix.table_page + offset);
-+			*dest8 = data;
-+			break;
-+		case 2:
-+			dest16 = (uint16_t *)(pi->pi_msix.table_page + offset);
-+			*dest16 = data;
-+			break;
-+		case 4:
-+			dest32 = (uint32_t *)(pi->pi_msix.table_page + offset);
-+			*dest32 = data;
-+			break;
-+		case 8:
-+			dest64 = (uint64_t *)(pi->pi_msix.table_page + offset);
-+			*dest64 = data;
-+			break;
-+		default:
-+			break;
-+		}
-+		return;
-+	}
- }
- 
- static int
-@@ -466,6 +520,21 @@ init_msix_table(struct vmctx *ctx, struct passthru_sof
- 	idx = pi->pi_msix.table_bar;
- 	start = pi->pi_bar[idx].addr;
- 	remaining = pi->pi_bar[idx].size;
-+
-+	/*
-+	 * Some device (against better documentation of the spec)
-+	 * are mapping other usable address space into the same page
-+	 * as the end of the MSI-X tables.
-+	 * At least Intel AX200 being one of them apparently.
-+	 * Map the page and fall back to it for any reads/writes outside
-+	 * the MSI-X table in msix_table_{read,write}.
-+	 */
-+	pi->pi_msix.table_page = mmap(NULL, 4096, PROT_READ | PROT_WRITE,
-+	    MAP_SHARED, memfd, sc->psc_bar[idx].addr + table_offset);
-+	if (pi->pi_msix.table_page == MAP_FAILED) {
-+		warn("Failed to map table page for MSI-X on %d/%d/%d", b, s, f);
-+		return (-1);
-+	}
- 
- 	if (pi->pi_msix.pba_bar == pi->pi_msix.table_bar) {
- 		pba_offset = pi->pi_msix.pba_offset;



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