svn commit: r334967 - in projects/pnfs-planb-server/sys: amd64/amd64 arm64/arm64 arm64/conf compat/linuxkpi/common/include/asm compat/linuxkpi/common/include/linux conf dev/atkbdc dev/bxe dev/drm2/...

Rick Macklem rmacklem at FreeBSD.org
Mon Jun 11 19:03:57 UTC 2018


Author: rmacklem
Date: Mon Jun 11 19:03:49 2018
New Revision: 334967
URL: https://svnweb.freebsd.org/changeset/base/334967

Log:
  Merge in an up to date kernel from head/current.

Modified:
  projects/pnfs-planb-server/sys/amd64/amd64/machdep.c
  projects/pnfs-planb-server/sys/amd64/amd64/mp_machdep.c
  projects/pnfs-planb-server/sys/arm64/arm64/cpu_errata.c
  projects/pnfs-planb-server/sys/arm64/arm64/exception.S
  projects/pnfs-planb-server/sys/arm64/arm64/trap.c
  projects/pnfs-planb-server/sys/arm64/arm64/vm_machdep.c
  projects/pnfs-planb-server/sys/arm64/conf/GENERIC
  projects/pnfs-planb-server/sys/compat/linuxkpi/common/include/asm/uaccess.h
  projects/pnfs-planb-server/sys/compat/linuxkpi/common/include/linux/kernel.h
  projects/pnfs-planb-server/sys/conf/files.arm64
  projects/pnfs-planb-server/sys/conf/options.arm64
  projects/pnfs-planb-server/sys/dev/atkbdc/psm.c
  projects/pnfs-planb-server/sys/dev/bxe/bxe.c
  projects/pnfs-planb-server/sys/dev/drm2/i915/intel_display.c
  projects/pnfs-planb-server/sys/dev/hwpmc/hwpmc_mod.c
  projects/pnfs-planb-server/sys/dev/mse/mse.c
  projects/pnfs-planb-server/sys/dev/ocs_fc/ocs_ioctl.c
  projects/pnfs-planb-server/sys/dev/ocs_fc/ocs_sport.c
  projects/pnfs-planb-server/sys/dev/syscons/sysmouse.c
  projects/pnfs-planb-server/sys/dev/usb/net/if_muge.c
  projects/pnfs-planb-server/sys/dev/usb/usbdevs
  projects/pnfs-planb-server/sys/fs/nfs/nfs_commonkrpc.c
  projects/pnfs-planb-server/sys/fs/nfsclient/nfsmount.h
  projects/pnfs-planb-server/sys/i386/i386/vm86bios.s
  projects/pnfs-planb-server/sys/kern/makesyscalls.sh
  projects/pnfs-planb-server/sys/kern/uipc_socket.c
  projects/pnfs-planb-server/sys/modules/Makefile
  projects/pnfs-planb-server/sys/netinet/tcp_hpts.c
  projects/pnfs-planb-server/sys/netinet/tcp_stacks/rack.c
  projects/pnfs-planb-server/sys/sys/mouse.h
  projects/pnfs-planb-server/sys/x86/x86/nexus.c
Directory Properties:
  projects/pnfs-planb-server/sys/   (props changed)

Modified: projects/pnfs-planb-server/sys/amd64/amd64/machdep.c
==============================================================================
--- projects/pnfs-planb-server/sys/amd64/amd64/machdep.c	Mon Jun 11 19:00:07 2018	(r334966)
+++ projects/pnfs-planb-server/sys/amd64/amd64/machdep.c	Mon Jun 11 19:03:49 2018	(r334967)
@@ -51,6 +51,7 @@ __FBSDID("$FreeBSD$");
 #include "opt_kstack_pages.h"
 #include "opt_maxmem.h"
 #include "opt_mp_watchdog.h"
+#include "opt_pci.h"
 #include "opt_platform.h"
 #include "opt_sched.h"
 
@@ -184,7 +185,9 @@ struct init_ops init_ops = {
 	.mp_bootaddress =		mp_bootaddress,
 	.start_all_aps =		native_start_all_aps,
 #endif
+#ifdef DEV_PCI
 	.msi_init =			msi_init,
+#endif
 };
 
 /*

Modified: projects/pnfs-planb-server/sys/amd64/amd64/mp_machdep.c
==============================================================================
--- projects/pnfs-planb-server/sys/amd64/amd64/mp_machdep.c	Mon Jun 11 19:00:07 2018	(r334966)
+++ projects/pnfs-planb-server/sys/amd64/amd64/mp_machdep.c	Mon Jun 11 19:03:49 2018	(r334967)
@@ -122,7 +122,7 @@ mp_bootaddress(vm_paddr_t *physmap, unsigned int *phys
 		 */
 		if (physmap[i] >= GiB(4) || physmap[i + 1] -
 		    round_page(physmap[i]) < PAGE_SIZE * 3 ||
-		    physmap[i + 1] > Maxmem)
+		    atop(physmap[i + 1]) > Maxmem)
 			continue;
 
 		allocated = true;

Modified: projects/pnfs-planb-server/sys/arm64/arm64/cpu_errata.c
==============================================================================
--- projects/pnfs-planb-server/sys/arm64/arm64/cpu_errata.c	Mon Jun 11 19:00:07 2018	(r334966)
+++ projects/pnfs-planb-server/sys/arm64/arm64/cpu_errata.c	Mon Jun 11 19:03:49 2018	(r334967)
@@ -41,9 +41,7 @@ __FBSDID("$FreeBSD$");
 
 #include <machine/cpu.h>
 
-#ifdef DEV_PSCI
 #include <dev/psci/psci.h>
-#endif
 
 typedef void (cpu_quirk_install)(void);
 struct cpu_quirks {
@@ -81,9 +79,7 @@ static void
 install_psci_bp_hardening(void)
 {
 
-#ifdef DEV_PSCI
 	PCPU_SET(bp_harden, psci_get_version);
-#endif
 }
 
 void

Modified: projects/pnfs-planb-server/sys/arm64/arm64/exception.S
==============================================================================
--- projects/pnfs-planb-server/sys/arm64/arm64/exception.S	Mon Jun 11 19:00:07 2018	(r334966)
+++ projects/pnfs-planb-server/sys/arm64/arm64/exception.S	Mon Jun 11 19:03:49 2018	(r334967)
@@ -161,10 +161,6 @@ ENTRY(handle_el1h_irq)
 	eret
 END(handle_el1h_irq)
 
-ENTRY(handle_el1h_error)
-	brk	0xf13
-END(handle_el1h_error)
-
 ENTRY(handle_el0_sync)
 	save_registers 0
 	ldr	x0, [x18, #PC_CURTHREAD]
@@ -185,18 +181,23 @@ ENTRY(handle_el0_irq)
 	eret
 END(handle_el0_irq)
 
-ENTRY(handle_el0_error)
+ENTRY(handle_serror)
 	save_registers 0
 	mov	x0, sp
-	bl	do_el0_error
-	brk	0xf23
-	1: b 1b
-END(handle_el0_error)
+1:	bl	do_serror
+	b	1b
+END(handle_serror)
 
+ENTRY(handle_empty_exception)
+	save_registers 0
+	mov	x0, sp
+1:	bl	unhandled_exception
+	b	1b
+END(handle_unhandled_exception)
+
 .macro	vempty
 	.align 7
-	brk	0xfff
-	1: b	1b
+	b	handle_empty_exception
 .endm
 
 .macro	vector	name
@@ -215,15 +216,15 @@ exception_vectors:
 	vector el1h_sync	/* Synchronous EL1h */
 	vector el1h_irq		/* IRQ EL1h */
 	vempty			/* FIQ EL1h */
-	vector el1h_error	/* Error EL1h */
+	vector serror		/* Error EL1h */
 
 	vector el0_sync		/* Synchronous 64-bit EL0 */
 	vector el0_irq		/* IRQ 64-bit EL0 */
 	vempty			/* FIQ 64-bit EL0 */
-	vector el0_error	/* Error 64-bit EL0 */
+	vector serror		/* Error 64-bit EL0 */
 
 	vector el0_sync		/* Synchronous 32-bit EL0 */
 	vector el0_irq		/* IRQ 32-bit EL0 */
 	vempty			/* FIQ 32-bit EL0 */
-	vector el0_error	/* Error 32-bit EL0 */
+	vector serror		/* Error 32-bit EL0 */
 

Modified: projects/pnfs-planb-server/sys/arm64/arm64/trap.c
==============================================================================
--- projects/pnfs-planb-server/sys/arm64/arm64/trap.c	Mon Jun 11 19:00:07 2018	(r334966)
+++ projects/pnfs-planb-server/sys/arm64/arm64/trap.c	Mon Jun 11 19:03:49 2018	(r334967)
@@ -76,6 +76,9 @@ extern register_t fsu_intr_fault;
 void do_el1h_sync(struct thread *, struct trapframe *);
 void do_el0_sync(struct thread *, struct trapframe *);
 void do_el0_error(struct trapframe *);
+void do_serror(struct trapframe *);
+void unhandled_exception(struct trapframe *);
+
 static void print_registers(struct trapframe *frame);
 
 int (*dtrace_invop_jump_addr)(struct trapframe *);
@@ -477,10 +480,33 @@ do_el0_sync(struct thread *td, struct trapframe *frame
 	    ("Kernel VFP state in use when entering userspace"));
 }
 
+/*
+ * TODO: We will need to handle these later when we support ARMv8.2 RAS.
+ */
 void
-do_el0_error(struct trapframe *frame)
+do_serror(struct trapframe *frame)
 {
+	uint64_t esr, far;
 
-	panic("ARM64TODO: do_el0_error");
+	far = READ_SPECIALREG(far_el1);
+	esr = frame->tf_esr;
+
+	print_registers(frame);
+	printf(" far: %16lx\n", far);
+	printf(" esr:         %.8lx\n", esr);
+	panic("Unhandled System Error");
 }
 
+void
+unhandled_exception(struct trapframe *frame)
+{
+	uint64_t esr, far;
+
+	far = READ_SPECIALREG(far_el1);
+	esr = frame->tf_esr;
+
+	print_registers(frame);
+	printf(" far: %16lx\n", far);
+	printf(" esr:         %.8lx\n", esr);
+	panic("Unhandled exception");
+}

Modified: projects/pnfs-planb-server/sys/arm64/arm64/vm_machdep.c
==============================================================================
--- projects/pnfs-planb-server/sys/arm64/arm64/vm_machdep.c	Mon Jun 11 19:00:07 2018	(r334966)
+++ projects/pnfs-planb-server/sys/arm64/arm64/vm_machdep.c	Mon Jun 11 19:03:49 2018	(r334967)
@@ -54,9 +54,7 @@ __FBSDID("$FreeBSD$");
 #include <machine/vfp.h>
 #endif
 
-#ifdef DEV_PSCI
 #include <dev/psci/psci.h>
-#endif
 
 /*
  * Finish a fork operation, with process p2 nearly set up.
@@ -119,9 +117,7 @@ void
 cpu_reset(void)
 {
 
-#ifdef DEV_PSCI
 	psci_reset();
-#endif
 
 	printf("cpu_reset failed");
 	while(1)

Modified: projects/pnfs-planb-server/sys/arm64/conf/GENERIC
==============================================================================
--- projects/pnfs-planb-server/sys/arm64/conf/GENERIC	Mon Jun 11 19:00:07 2018	(r334966)
+++ projects/pnfs-planb-server/sys/arm64/conf/GENERIC	Mon Jun 11 19:03:49 2018	(r334967)
@@ -239,7 +239,6 @@ device		tun		# Packet tunnel.
 device		md		# Memory "disks"
 device		gif		# IPv6 and IPv4 tunneling
 device		firmware	# firmware assist module
-device		psci		# Support for ARM PSCI
 options 	EFIRT		# EFI Runtime Services
 
 # EXT_RESOURCES pseudo devices

Modified: projects/pnfs-planb-server/sys/compat/linuxkpi/common/include/asm/uaccess.h
==============================================================================
--- projects/pnfs-planb-server/sys/compat/linuxkpi/common/include/asm/uaccess.h	Mon Jun 11 19:00:07 2018	(r334966)
+++ projects/pnfs-planb-server/sys/compat/linuxkpi/common/include/asm/uaccess.h	Mon Jun 11 19:03:49 2018	(r334967)
@@ -52,4 +52,17 @@ copy_from_user(void *to, const void *from, unsigned lo
 #define	__copy_from_user(...)	copy_from_user(__VA_ARGS__)
 #define	__copy_in_user(...)	copy_from_user(__VA_ARGS__)
 
+#define	user_access_begin() do { } while (0)
+#define	user_access_end() do { } while (0)
+
+#define	unsafe_get_user(x, ptr, err) do { \
+	if (unlikely(__get_user(x, ptr))) \
+		goto err; \
+} while (0)
+
+#define	unsafe_put_user(x, ptr, err) do { \
+	if (unlikely(__put_user(x, ptr))) \
+		goto err; \
+} while (0)
+
 #endif	/* _ASM_UACCESS_H_ */

Modified: projects/pnfs-planb-server/sys/compat/linuxkpi/common/include/linux/kernel.h
==============================================================================
--- projects/pnfs-planb-server/sys/compat/linuxkpi/common/include/linux/kernel.h	Mon Jun 11 19:00:07 2018	(r334966)
+++ projects/pnfs-planb-server/sys/compat/linuxkpi/common/include/linux/kernel.h	Mon Jun 11 19:03:49 2018	(r334967)
@@ -50,7 +50,9 @@
 #include <linux/types.h>
 #include <linux/jiffies.h>
 #include <linux/log2.h>
+
 #include <asm/byteorder.h>
+#include <asm/uaccess.h>
 
 #include <machine/stdarg.h>
 
@@ -370,6 +372,46 @@ kstrtou32(const char *cp, unsigned int base, u32 *res)
 	if (temp != (u32)temp)
 		return (-ERANGE);
 	return (0);
+}
+
+static inline int
+kstrtobool(const char *s, bool *res)
+{
+	int len;
+
+	if (s == NULL || (len = strlen(s)) == 0 || res == NULL)
+		return (-EINVAL);
+
+	/* skip newline character, if any */
+	if (s[len - 1] == '\n')
+		len--;
+
+	if (len == 1 && strchr("yY1", s[0]) != NULL)
+		*res = true;
+	else if (len == 1 && strchr("nN0", s[0]) != NULL)
+		*res = false;
+	else if (strncasecmp("on", s, len) == 0)
+		*res = true;
+	else if (strncasecmp("off", s, len) == 0)
+		*res = false;
+	else
+		return (-EINVAL);
+
+	return (0);
+}
+
+static inline int
+kstrtobool_from_user(const char __user *s, size_t count, bool *res)
+{
+	char buf[8] = {};
+
+	if (count > (sizeof(buf) - 1))
+		count = (sizeof(buf) - 1);
+
+	if (copy_from_user(buf, s, count))
+		return (-EFAULT);
+
+	return (kstrtobool(buf, res));
 }
 
 #define min(x, y)	((x) < (y) ? (x) : (y))

Modified: projects/pnfs-planb-server/sys/conf/files.arm64
==============================================================================
--- projects/pnfs-planb-server/sys/conf/files.arm64	Mon Jun 11 19:00:07 2018	(r334966)
+++ projects/pnfs-planb-server/sys/conf/files.arm64	Mon Jun 11 19:03:49 2018	(r334967)
@@ -206,8 +206,8 @@ dev/ofw/ofwpci.c		optional 	fdt pci
 dev/pci/pci_host_generic.c	optional	pci
 dev/pci/pci_host_generic_acpi.c	optional	pci acpi
 dev/pci/pci_host_generic_fdt.c	optional	pci fdt
-dev/psci/psci.c			optional	psci
-dev/psci/psci_arm64.S		optional	psci
+dev/psci/psci.c			standard
+dev/psci/psci_arm64.S		standard
 dev/uart/uart_cpu_arm64.c	optional	uart
 dev/uart/uart_dev_pl011.c	optional	uart pl011
 dev/usb/controller/dwc_otg_hisi.c optional	dwcotg fdt soc_hisi_hi6220

Modified: projects/pnfs-planb-server/sys/conf/options.arm64
==============================================================================
--- projects/pnfs-planb-server/sys/conf/options.arm64	Mon Jun 11 19:00:07 2018	(r334966)
+++ projects/pnfs-planb-server/sys/conf/options.arm64	Mon Jun 11 19:03:49 2018	(r334967)
@@ -13,9 +13,6 @@ COMPAT_FREEBSD32		opt_global.h
 # EFI Runtime services support
 EFIRT				opt_efirt.h
 
-# Devices
-DEV_PSCI			opt_platform.h
-
 # SoC Support
 SOC_ALLWINNER_A64		opt_soc.h
 SOC_ALLWINNER_H5		opt_soc.h

Modified: projects/pnfs-planb-server/sys/dev/atkbdc/psm.c
==============================================================================
--- projects/pnfs-planb-server/sys/dev/atkbdc/psm.c	Mon Jun 11 19:00:07 2018	(r334966)
+++ projects/pnfs-planb-server/sys/dev/atkbdc/psm.c	Mon Jun 11 19:03:49 2018	(r334967)
@@ -2560,9 +2560,6 @@ psmioctl(struct cdev *dev, u_long cmd, caddr_t addr, i
 	struct psm_softc *sc = dev->si_drv1;
 	mousemode_t mode;
 	mousestatus_t status;
-#if (defined(MOUSE_GETVARS))
-	mousevar_t *var;
-#endif
 	mousedata_t *data;
 	int stat[3];
 	int command_byte;
@@ -2758,21 +2755,6 @@ psmioctl(struct cdev *dev, u_long cmd, caddr_t addr, i
 		splx(s);
 		*(mousestatus_t *)addr = status;
 		break;
-
-#if (defined(MOUSE_GETVARS))
-	case MOUSE_GETVARS:
-		var = (mousevar_t *)addr;
-		bzero(var, sizeof(*var));
-		s = spltty();
-		var->var[0] = MOUSE_VARS_PS2_SIG;
-		var->var[1] = sc->config;
-		var->var[2] = sc->flags;
-		splx(s);
-		break;
-
-	case MOUSE_SETVARS:
-		return (ENODEV);
-#endif /* MOUSE_GETVARS */
 
 	case MOUSE_READSTATE:
 	case MOUSE_READDATA:

Modified: projects/pnfs-planb-server/sys/dev/bxe/bxe.c
==============================================================================
--- projects/pnfs-planb-server/sys/dev/bxe/bxe.c	Mon Jun 11 19:00:07 2018	(r334966)
+++ projects/pnfs-planb-server/sys/dev/bxe/bxe.c	Mon Jun 11 19:03:49 2018	(r334967)
@@ -12849,12 +12849,12 @@ bxe_allocate_bars(struct bxe_softc *sc)
         sc->bar[i].handle = rman_get_bushandle(sc->bar[i].resource);
         sc->bar[i].kva    = (vm_offset_t)rman_get_virtual(sc->bar[i].resource);
 
-        BLOGI(sc, "PCI BAR%d [%02x] memory allocated: %p-%p (%jd) -> %p\n",
+        BLOGI(sc, "PCI BAR%d [%02x] memory allocated: %#jx-%#jx (%jd) -> %#jx\n",
               i, PCIR_BAR(i),
-              (void *)rman_get_start(sc->bar[i].resource),
-              (void *)rman_get_end(sc->bar[i].resource),
+              rman_get_start(sc->bar[i].resource),
+              rman_get_end(sc->bar[i].resource),
               rman_get_size(sc->bar[i].resource),
-              (void *)sc->bar[i].kva);
+              (uintmax_t)sc->bar[i].kva);
     }
 
     return (0);

Modified: projects/pnfs-planb-server/sys/dev/drm2/i915/intel_display.c
==============================================================================
--- projects/pnfs-planb-server/sys/dev/drm2/i915/intel_display.c	Mon Jun 11 19:00:07 2018	(r334966)
+++ projects/pnfs-planb-server/sys/dev/drm2/i915/intel_display.c	Mon Jun 11 19:03:49 2018	(r334967)
@@ -8872,7 +8872,15 @@ static int intel_dmi_reverse_brightness(const struct d
 
 static const struct intel_dmi_quirk intel_dmi_quirks[] = {
 	{
-		.dmi_id_list = &(const struct dmi_system_id[]) {
+		.dmi_id_list =
+#if !defined(__clang__) && !__GNUC_PREREQ__(4, 3)
+		    /* gcc 4.2 needs an additional cast, to avoid a bogus
+		     * "initialization from incompatible pointer type" warning.
+		     * see: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=36432
+		     */
+		    (const struct dmi_system_id (*)[])
+#endif
+		    &(const struct dmi_system_id[]) {
 			{
 				.callback = intel_dmi_reverse_brightness,
 				.ident = "NCR Corporation",

Modified: projects/pnfs-planb-server/sys/dev/hwpmc/hwpmc_mod.c
==============================================================================
--- projects/pnfs-planb-server/sys/dev/hwpmc/hwpmc_mod.c	Mon Jun 11 19:00:07 2018	(r334966)
+++ projects/pnfs-planb-server/sys/dev/hwpmc/hwpmc_mod.c	Mon Jun 11 19:03:49 2018	(r334967)
@@ -4748,9 +4748,9 @@ pmc_process_interrupt(int ring, struct pmc *pm, struct
 
 	td = curthread;
 	if ((pm->pm_flags & PMC_F_USERCALLCHAIN) &&
-        (td->td_proc->p_flag & P_KPROC) == 0 &&
-		!TRAPF_USERMODE(tf)) {
-		atomic_add_int(&curthread->td_pmcpend, 1);
+	    (td->td_proc->p_flag & P_KPROC) == 0 &&
+	    !TRAPF_USERMODE(tf)) {
+		atomic_add_int(&td->td_pmcpend, 1);
 		return (pmc_add_sample(PMC_UR, pm, tf));
 	}
 	return (pmc_add_sample(ring, pm, tf));

Modified: projects/pnfs-planb-server/sys/dev/mse/mse.c
==============================================================================
--- projects/pnfs-planb-server/sys/dev/mse/mse.c	Mon Jun 11 19:00:07 2018	(r334966)
+++ projects/pnfs-planb-server/sys/dev/mse/mse.c	Mon Jun 11 19:03:49 2018	(r334967)
@@ -434,12 +434,6 @@ mseioctl(struct cdev *dev, u_long cmd, caddr_t addr, i
 	case MOUSE_READDATA:
 		return (ENODEV);
 
-#if (defined(MOUSE_GETVARS))
-	case MOUSE_GETVARS:
-	case MOUSE_SETVARS:
-		return (ENODEV);
-#endif
-
 	default:
 		return (ENOTTY);
 	}

Modified: projects/pnfs-planb-server/sys/dev/ocs_fc/ocs_ioctl.c
==============================================================================
--- projects/pnfs-planb-server/sys/dev/ocs_fc/ocs_ioctl.c	Mon Jun 11 19:00:07 2018	(r334966)
+++ projects/pnfs-planb-server/sys/dev/ocs_fc/ocs_ioctl.c	Mon Jun 11 19:03:49 2018	(r334967)
@@ -140,7 +140,7 @@ ocs_process_sli_config (ocs_t *ocs, ocs_ioctl_elxu_mbo
 			wrobj->host_buffer_descriptor[0].u.data.buffer_address_high = ocs_addr32_hi(dma->phys);
 
 			/* copy the data into the DMA buffer */
-			copyin((void *)mcmd->in_addr, dma->virt, mcmd->in_bytes);
+			copyin((void *)(uintptr_t)mcmd->in_addr, dma->virt, mcmd->in_bytes);
 		}
 			break;
 		case SLI4_OPC_COMMON_DELETE_OBJECT:
@@ -169,8 +169,8 @@ ocs_process_sli_config (ocs_t *ocs, ocs_ioctl_elxu_mbo
 			break;
 		default:
 			device_printf(ocs->dev, "%s: in=%p (%lld) out=%p (%lld)\n", __func__,
-					(void *)mcmd->in_addr, (unsigned long long)mcmd->in_bytes,
-					(void *)mcmd->out_addr, (unsigned long long)mcmd->out_bytes);
+					(void *)(uintptr_t)mcmd->in_addr, (unsigned long long)mcmd->in_bytes,
+					(void *)(uintptr_t)mcmd->out_addr, (unsigned long long)mcmd->out_bytes);
 			device_printf(ocs->dev, "%s: unknown (opc=%#x)\n", __func__,
 					req->opcode);
 			hexdump(mcmd, mcmd->size, NULL, 0);
@@ -184,7 +184,7 @@ ocs_process_sli_config (ocs_t *ocs, ocs_ioctl_elxu_mbo
 			return ENXIO;
 		}
 
-		copyin((void *)mcmd->in_addr, dma->virt, mcmd->in_bytes);
+		copyin((void *)(uintptr_t)mcmd->in_addr, dma->virt, mcmd->in_bytes);
 
 		sli_config->payload.mem.address_low  = ocs_addr32_lo(dma->phys);
 		sli_config->payload.mem.address_high = ocs_addr32_hi(dma->phys);
@@ -250,7 +250,7 @@ ocs_process_mbx_ioctl(ocs_t *ocs, ocs_ioctl_elxu_mbox_
 
 	if( SLI4_MBOX_COMMAND_SLI_CONFIG == ((sli4_mbox_command_header_t *)mcmd->payload)->command
 	  		&& mcmd->out_bytes && dma.virt) {
-		copyout(dma.virt, (void *)mcmd->out_addr, mcmd->out_bytes);
+		copyout(dma.virt, (void *)(uintptr_t)mcmd->out_addr, mcmd->out_bytes);
 	}
 
 no_support:

Modified: projects/pnfs-planb-server/sys/dev/ocs_fc/ocs_sport.c
==============================================================================
--- projects/pnfs-planb-server/sys/dev/ocs_fc/ocs_sport.c	Mon Jun 11 19:00:07 2018	(r334966)
+++ projects/pnfs-planb-server/sys/dev/ocs_fc/ocs_sport.c	Mon Jun 11 19:03:49 2018	(r334967)
@@ -781,7 +781,7 @@ __ocs_sport_attached(ocs_sm_ctx_t *ctx, ocs_sm_event_t
 	case OCS_EVT_ENTER: {
 		ocs_node_t *node;
 
-		ocs_log_debug(ocs, "[%s] SPORT attached WWPN %016llx WWNN %016llx \n", (unsigned long long)sport->display_name,
+		ocs_log_debug(ocs, "[%s] SPORT attached WWPN %016llx WWNN %016llx \n", sport->display_name,
 			sport->wwpn, sport->wwnn);
 		ocs_sport_lock(sport);
 			ocs_list_foreach(&sport->node_list, node) {
@@ -805,7 +805,7 @@ __ocs_sport_attached(ocs_sm_ctx_t *ctx, ocs_sm_event_t
 	}
 
 	case OCS_EVT_EXIT:
-		ocs_log_debug(ocs, "[%s] SPORT deattached WWPN %016llx WWNN %016llx \n", (unsigned long long)sport->display_name,
+		ocs_log_debug(ocs, "[%s] SPORT deattached WWPN %016llx WWNN %016llx \n", sport->display_name,
 			sport->wwpn, sport->wwnn);
 		if (sport->enable_ini) {
 			ocs_scsi_ini_del_sport(sport);

Modified: projects/pnfs-planb-server/sys/dev/syscons/sysmouse.c
==============================================================================
--- projects/pnfs-planb-server/sys/dev/syscons/sysmouse.c	Mon Jun 11 19:00:07 2018	(r334966)
+++ projects/pnfs-planb-server/sys/dev/syscons/sysmouse.c	Mon Jun 11 19:03:49 2018	(r334967)
@@ -202,12 +202,6 @@ smdev_ioctl(struct tty *tp, u_long cmd, caddr_t data, 
 		mouse_status.dz = 0;
 		return 0;
 
-#ifdef notyet
-	case MOUSE_GETVARS:	/* get internal mouse variables */
-	case MOUSE_SETVARS:	/* set internal mouse variables */
-		return ENODEV;
-#endif
-
 	case MOUSE_READSTATE:	/* read status from the device */
 	case MOUSE_READDATA:	/* read data from the device */
 		return ENODEV;

Modified: projects/pnfs-planb-server/sys/dev/usb/net/if_muge.c
==============================================================================
--- projects/pnfs-planb-server/sys/dev/usb/net/if_muge.c	Mon Jun 11 19:00:07 2018	(r334966)
+++ projects/pnfs-planb-server/sys/dev/usb/net/if_muge.c	Mon Jun 11 19:03:49 2018	(r334967)
@@ -40,6 +40,9 @@ __FBSDID("$FreeBSD$");
  * USB 3.1 to 10/100/1000 Mbps Ethernet
  * LAN7800 http://www.microchip.com/wwwproducts/en/LAN7800
  *
+ * USB 2.0 to 10/100/1000 Mbps Ethernet
+ * LAN7850 http://www.microchip.com/wwwproducts/en/LAN7850
+ *
  * USB 2 to 10/100/1000 Mbps Ethernet with built-in USB hub
  * LAN7515 (no datasheet available, but probes and functions as LAN7800)
  *
@@ -386,11 +389,14 @@ lan78xx_eeprom_read_raw(struct muge_softc *sc, uint16_
 	if (!locked)
 		MUGE_LOCK(sc);
 
-	err = lan78xx_read_reg(sc, ETH_HW_CFG, &val);
-	saved = val;
+	if (sc->chipid == ETH_ID_REV_CHIP_ID_7800_) {
+		/* EEDO/EECLK muxed with LED0/LED1 on LAN7800. */
+		err = lan78xx_read_reg(sc, ETH_HW_CFG, &val);
+		saved = val;
 
-	val &= ~(ETH_HW_CFG_LEDO_EN_ | ETH_HW_CFG_LED1_EN_);
-	err = lan78xx_write_reg(sc, ETH_HW_CFG, val);
+		val &= ~(ETH_HW_CFG_LEDO_EN_ | ETH_HW_CFG_LED1_EN_);
+		err = lan78xx_write_reg(sc, ETH_HW_CFG, val);
+	}
 
 	err = lan78xx_wait_for_bits(sc, ETH_E2P_CMD, ETH_E2P_CMD_BUSY_);
 	if (err != 0) {
@@ -432,7 +438,10 @@ lan78xx_eeprom_read_raw(struct muge_softc *sc, uint16_
 done:
 	if (!locked)
 		MUGE_UNLOCK(sc);
-	lan78xx_write_reg(sc, ETH_HW_CFG, saved);
+	if (sc->chipid == ETH_ID_REV_CHIP_ID_7800_) {
+		/* Restore saved LED configuration. */
+		lan78xx_write_reg(sc, ETH_HW_CFG, saved);
+	}
 	return (err);
 }
 
@@ -982,7 +991,11 @@ lan78xx_chip_init(struct muge_softc *sc)
 	}
 	sc->chipid = (buf & ETH_ID_REV_CHIP_ID_MASK_) >> 16;
 	sc->chiprev = buf & ETH_ID_REV_CHIP_REV_MASK_;
-	if (sc->chipid != ETH_ID_REV_CHIP_ID_7800_) {
+	switch (sc->chipid) {
+	case ETH_ID_REV_CHIP_ID_7800_:
+	case ETH_ID_REV_CHIP_ID_7850_:
+		break;
+	default:
 		muge_warn_printf(sc, "Chip ID 0x%04x not yet supported\n",
 		    sc->chipid);
 		goto init_failed;
@@ -1078,9 +1091,12 @@ lan78xx_chip_init(struct muge_softc *sc)
 		goto init_failed;
 	}
 
-	/* Enable automatic duplex detection and automatic speed detection. */
 	err = lan78xx_read_reg(sc, ETH_MAC_CR, &buf);
-	buf |= ETH_MAC_CR_AUTO_DUPLEX_ | ETH_MAC_CR_AUTO_SPEED_;
+	if (sc->chipid == ETH_ID_REV_CHIP_ID_7800_ &&
+	    !lan78xx_eeprom_present(sc)) {
+		/* Set automatic duplex and speed on LAN7800 without EEPROM. */
+		buf |= ETH_MAC_CR_AUTO_DUPLEX_ | ETH_MAC_CR_AUTO_SPEED_;
+	}
 	err = lan78xx_write_reg(sc, ETH_MAC_CR, buf);
 
 	/*

Modified: projects/pnfs-planb-server/sys/dev/usb/usbdevs
==============================================================================
--- projects/pnfs-planb-server/sys/dev/usb/usbdevs	Mon Jun 11 19:00:07 2018	(r334966)
+++ projects/pnfs-planb-server/sys/dev/usb/usbdevs	Mon Jun 11 19:03:49 2018	(r334967)
@@ -717,6 +717,7 @@ vendor ELV		0x18ef	ELV
 vendor LINKSYS3		0x1915	Linksys
 vendor MEINBERG		0x1938	Meinberg Funkuhren
 vendor BECEEM		0x198f	Beceem Communications
+vendor ZTE		0x19d2	ZTE
 vendor QUALCOMMINC	0x19d2	Qualcomm, Incorporated
 vendor QUALCOMM3	0x19f5	Qualcomm, Inc.
 vendor QUANTA2		0x1a32	Quanta

Modified: projects/pnfs-planb-server/sys/fs/nfs/nfs_commonkrpc.c
==============================================================================
--- projects/pnfs-planb-server/sys/fs/nfs/nfs_commonkrpc.c	Mon Jun 11 19:00:07 2018	(r334966)
+++ projects/pnfs-planb-server/sys/fs/nfs/nfs_commonkrpc.c	Mon Jun 11 19:03:49 2018	(r334967)
@@ -925,9 +925,9 @@ tryagain:
 			if ((nmp != NULL && i == NFSV4OP_SEQUENCE && j != 0) ||
 			    (clp != NULL && i == NFSV4OP_CBSEQUENCE && j != 0))
 				NFSCL_DEBUG(1, "failed seq=%d\n", j);
-			if ((nmp != NULL && i == NFSV4OP_SEQUENCE && j == 0) ||
-			    (clp != NULL && i == NFSV4OP_CBSEQUENCE && j == 0)
-			    ) {
+			if (((nmp != NULL && i == NFSV4OP_SEQUENCE && j == 0) ||
+			    (clp != NULL && i == NFSV4OP_CBSEQUENCE &&
+			    j == 0)) && sep != NULL) {
 				if (i == NFSV4OP_SEQUENCE)
 					NFSM_DISSECT(tl, uint32_t *,
 					    NFSX_V4SESSIONID +
@@ -969,7 +969,8 @@ tryagain:
 		}
 		if (nd->nd_repstat != 0) {
 			if (nd->nd_repstat == NFSERR_BADSESSION &&
-			    nmp != NULL && dssep == NULL) {
+			    nmp != NULL && dssep == NULL &&
+			    (nd->nd_flag & ND_NFSV41) != 0) {
 				/*
 				 * If this is a client side MDS RPC, mark
 				 * the MDS session defunct and initiate

Modified: projects/pnfs-planb-server/sys/fs/nfsclient/nfsmount.h
==============================================================================
--- projects/pnfs-planb-server/sys/fs/nfsclient/nfsmount.h	Mon Jun 11 19:00:07 2018	(r334966)
+++ projects/pnfs-planb-server/sys/fs/nfsclient/nfsmount.h	Mon Jun 11 19:03:49 2018	(r334967)
@@ -129,8 +129,10 @@ nfsmnt_mdssession(struct nfsmount *nmp)
 {
 	struct nfsclsession *tsep;
 
+	tsep = NULL;
 	mtx_lock(&nmp->nm_mtx);
-	tsep = NFSMNT_MDSSESSION(nmp);
+	if (TAILQ_FIRST(&nmp->nm_sess) != NULL)
+		tsep = NFSMNT_MDSSESSION(nmp);
 	mtx_unlock(&nmp->nm_mtx);
 	return (tsep);
 }

Modified: projects/pnfs-planb-server/sys/i386/i386/vm86bios.s
==============================================================================
--- projects/pnfs-planb-server/sys/i386/i386/vm86bios.s	Mon Jun 11 19:00:07 2018	(r334966)
+++ projects/pnfs-planb-server/sys/i386/i386/vm86bios.s	Mon Jun 11 19:03:49 2018	(r334967)
@@ -67,7 +67,8 @@ ENTRY(vm86_bioscall)
 	pushl	%edx
 	movl	TD_PCB(%ecx),%ecx
 	pushl	PCB_SAVEFPU(%ecx)
-	call	npxsave
+	movl	$npxsave,%eax
+	call	*%eax
 	addl	$4,%esp
 	popl	%edx			/* recover our pcb */
 1:

Modified: projects/pnfs-planb-server/sys/kern/makesyscalls.sh
==============================================================================
--- projects/pnfs-planb-server/sys/kern/makesyscalls.sh	Mon Jun 11 19:00:07 2018	(r334966)
+++ projects/pnfs-planb-server/sys/kern/makesyscalls.sh	Mon Jun 11 19:03:49 2018	(r334967)
@@ -47,7 +47,7 @@ systracetmp="systrace.$$"
 systraceret="systraceret.$$"
 
 if [ -r capabilities.conf ]; then
-	capenabled=`cat capabilities.conf | grep -v "^#" | grep -v "^$"`
+	capenabled=`egrep -v '^#|^$' capabilities.conf`
 	capenabled=`echo $capenabled | sed 's/ /,/g'`
 else
 	capenabled=""

Modified: projects/pnfs-planb-server/sys/kern/uipc_socket.c
==============================================================================
--- projects/pnfs-planb-server/sys/kern/uipc_socket.c	Mon Jun 11 19:00:07 2018	(r334966)
+++ projects/pnfs-planb-server/sys/kern/uipc_socket.c	Mon Jun 11 19:03:49 2018	(r334967)
@@ -2162,7 +2162,6 @@ release:
 
 /*
  * Optimized version of soreceive() for stream (TCP) sockets.
- * XXXAO: (MSG_WAITALL | MSG_PEEK) isn't properly handled.
  */
 int
 soreceive_stream(struct socket *so, struct sockaddr **psa, struct uio *uio,
@@ -2177,12 +2176,12 @@ soreceive_stream(struct socket *so, struct sockaddr **
 		return (EINVAL);
 	if (psa != NULL)
 		*psa = NULL;
-	if (controlp != NULL)
-		return (EINVAL);
 	if (flagsp != NULL)
 		flags = *flagsp &~ MSG_EOR;
 	else
 		flags = 0;
+	if (controlp != NULL)
+		*controlp = NULL;
 	if (flags & MSG_OOB)
 		return (soreceive_rcvoob(so, uio, flags));
 	if (mp0 != NULL)

Modified: projects/pnfs-planb-server/sys/modules/Makefile
==============================================================================
--- projects/pnfs-planb-server/sys/modules/Makefile	Mon Jun 11 19:00:07 2018	(r334966)
+++ projects/pnfs-planb-server/sys/modules/Makefile	Mon Jun 11 19:03:49 2018	(r334967)
@@ -627,7 +627,9 @@ _aac=		aac
 _aacraid=	aacraid
 _acpi=		acpi
 .if ${MK_CRYPT} != "no" || defined(ALL_MODULES)
+.if ${COMPILER_TYPE} != "gcc" || ${COMPILER_VERSION} > 40201
 _aesni=		aesni
+.endif
 .endif
 _amd_ecc_inject=amd_ecc_inject
 _amdsbwd=	amdsbwd

Modified: projects/pnfs-planb-server/sys/netinet/tcp_hpts.c
==============================================================================
--- projects/pnfs-planb-server/sys/netinet/tcp_hpts.c	Mon Jun 11 19:00:07 2018	(r334966)
+++ projects/pnfs-planb-server/sys/netinet/tcp_hpts.c	Mon Jun 11 19:03:49 2018	(r334967)
@@ -1960,3 +1960,4 @@ tcp_init_hptsi(void *st)
 }
 
 SYSINIT(tcphptsi, SI_SUB_KTHREAD_IDLE, SI_ORDER_ANY, tcp_init_hptsi, NULL);
+MODULE_VERSION(tcphpts, 1);

Modified: projects/pnfs-planb-server/sys/netinet/tcp_stacks/rack.c
==============================================================================
--- projects/pnfs-planb-server/sys/netinet/tcp_stacks/rack.c	Mon Jun 11 19:00:07 2018	(r334966)
+++ projects/pnfs-planb-server/sys/netinet/tcp_stacks/rack.c	Mon Jun 11 19:03:49 2018	(r334967)
@@ -127,10 +127,6 @@ uma_zone_t rack_pcb_zone;
 struct sysctl_ctx_list rack_sysctl_ctx;
 struct sysctl_oid *rack_sysctl_root;
 
-#ifndef TCPHPTS
-fatal error missing option TCPHSTS in the build;
-#endif
-
 #define CUM_ACKED 1
 #define SACKED 2
 
@@ -9162,3 +9158,4 @@ static moduledata_t tcp_rack = {
 
 MODULE_VERSION(MODNAME, 1);
 DECLARE_MODULE(MODNAME, tcp_rack, SI_SUB_PROTO_DOMAIN, SI_ORDER_ANY);
+MODULE_DEPEND(MODNAME, tcphpts, 1, 1, 1);

Modified: projects/pnfs-planb-server/sys/sys/mouse.h
==============================================================================
--- projects/pnfs-planb-server/sys/sys/mouse.h	Mon Jun 11 19:00:07 2018	(r334966)
+++ projects/pnfs-planb-server/sys/sys/mouse.h	Mon Jun 11 19:03:49 2018	(r334967)
@@ -38,8 +38,6 @@
 #define MOUSE_SETMODE		_IOW('M', 3, mousemode_t)
 #define MOUSE_GETLEVEL		_IOR('M', 4, int)
 #define MOUSE_SETLEVEL		_IOW('M', 5, int)
-#define MOUSE_GETVARS		_IOR('M', 6, mousevar_t)
-#define MOUSE_SETVARS		_IOW('M', 7, mousevar_t)
 #define MOUSE_READSTATE		_IOWR('M', 8, mousedata_t)
 #define MOUSE_READDATA		_IOWR('M', 9, mousedata_t)
 
@@ -227,19 +225,6 @@ typedef struct mousedata {
 	int len;		/* # of data in the buffer */
 	int buf[16];		/* data buffer */
 } mousedata_t;
-
-#if (defined(MOUSE_GETVARS))
-
-typedef struct mousevar {
-	int var[16];
-} mousevar_t;
-
-/* magic numbers in var[0] */
-#define MOUSE_VARS_PS2_SIG	0x00325350	/* 'PS2' */
-#define MOUSE_VARS_BUS_SIG	0x00535542	/* 'BUS' */
-#define MOUSE_VARS_INPORT_SIG	0x00504e49	/* 'INP' */
-
-#endif /* MOUSE_GETVARS */
 
 /* Synaptics Touchpad */
 #define MOUSE_SYNAPTICS_PACKETSIZE	6	/* '3' works better */

Modified: projects/pnfs-planb-server/sys/x86/x86/nexus.c
==============================================================================
--- projects/pnfs-planb-server/sys/x86/x86/nexus.c	Mon Jun 11 19:00:07 2018	(r334966)
+++ projects/pnfs-planb-server/sys/x86/x86/nexus.c	Mon Jun 11 19:03:49 2018	(r334967)
@@ -47,6 +47,7 @@ __FBSDID("$FreeBSD$");
 #include "opt_apic.h"
 #endif
 #include "opt_isa.h"
+#include "opt_pci.h"
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -131,7 +132,7 @@ static	int nexus_get_resource(device_t, device_t, int,
 static void nexus_delete_resource(device_t, device_t, int, int);
 static	int nexus_get_cpus(device_t, device_t, enum cpu_sets, size_t,
 			   cpuset_t *);
-#ifdef DEV_APIC
+#if defined(DEV_APIC) && defined(DEV_PCI)
 static	int nexus_alloc_msi(device_t pcib, device_t dev, int count, int maxcount, int *irqs);
 static	int nexus_release_msi(device_t pcib, device_t dev, int count, int *irqs);
 static	int nexus_alloc_msix(device_t pcib, device_t dev, int *irq);
@@ -172,7 +173,7 @@ static device_method_t nexus_methods[] = {
 	DEVMETHOD(bus_get_cpus,		nexus_get_cpus),
 
 	/* pcib interface */
-#ifdef DEV_APIC
+#if defined(DEV_APIC) && defined(DEV_PCI)
 	DEVMETHOD(pcib_alloc_msi,	nexus_alloc_msi),
 	DEVMETHOD(pcib_release_msi,	nexus_release_msi),
 	DEVMETHOD(pcib_alloc_msix,	nexus_alloc_msix),
@@ -701,7 +702,7 @@ nexus_add_irq(u_long irq)
 		panic("%s: failed", __func__);
 }
 
-#ifdef DEV_APIC
+#if defined(DEV_APIC) && defined(DEV_PCI)
 static int
 nexus_alloc_msix(device_t pcib, device_t dev, int *irq)
 {
@@ -736,7 +737,7 @@ nexus_map_msi(device_t pcib, device_t dev, int irq, ui
 
 	return (msi_map(irq, addr, data));
 }
-#endif
+#endif /* DEV_APIC && DEV_PCI */
 
 /* Placeholder for system RAM. */
 static void


More information about the svn-src-projects mailing list