diff options
| author | Jerry Jelinek <jerry.jelinek@joyent.com> | 2019-07-29 12:13:24 +0000 |
|---|---|---|
| committer | Jerry Jelinek <jerry.jelinek@joyent.com> | 2019-07-29 12:13:24 +0000 |
| commit | 17304c0b18b0ddd09fa2283f34a32b031338ff26 (patch) | |
| tree | e74f22b7bb16647b7e9da94d68bf69aae4e463f4 | |
| parent | 4114093726f400cc6f3a5e1fb3c934d55cdf5f66 (diff) | |
| parent | 5cffb2606ed604b9f1f45d061bc8aa92e0536f70 (diff) | |
| download | illumos-joyent-17304c0b18b0ddd09fa2283f34a32b031338ff26.tar.gz | |
[illumos-gate merge]
commit 5cffb2606ed604b9f1f45d061bc8aa92e0536f70
11306 syseventd cores after hot-add of disk
commit 508a0e8cf1600b06c1f7361ad76e736710d3fdf8
11257 Add DDI support for Upgradable Firmware Modules
11258 Add libtopo support for Upgradable Firmware Modules
Conflicts:
usr/src/uts/sparc/ufmtest/Makefile
usr/src/uts/sparc/Makefile.sparc
usr/src/uts/intel/ufmtest/Makefile
usr/src/uts/common/sys/scsi/adapters/mpt_sas/mptsas_var.h
usr/src/uts/common/sys/ddi_ufm_impl.h
usr/src/uts/common/sys/ddi_ufm.h
usr/src/uts/common/io/ufmtest.c
usr/src/uts/common/io/ufm.c
usr/src/test/os-tests/tests/Makefile
usr/src/test/os-tests/runfiles/default.run
usr/src/man/man9f/ddi_ufm_image.9f
usr/src/man/man9f/Makefile
usr/src/man/man9e/ddi_ufm.9e
usr/src/man/man9e/Makefile
usr/src/man/man7d/ufm.7d
usr/src/lib/fm/topo/libtopo/common/topo_mod.c
31 files changed, 260 insertions, 92 deletions
@@ -19344,6 +19344,7 @@ f usr/share/man/man9e/csx_event_handler.9e 0444 root bin f usr/share/man/man9e/ddi_ufm.9e 0444 root bin s usr/share/man/man9e/ddi_ufm_op_fill_image.9e=ddi_ufm.9e s usr/share/man/man9e/ddi_ufm_op_fill_slot.9e=ddi_ufm.9e +s usr/share/man/man9e/ddi_ufm_op_getcaps.9e=ddi_ufm.9e s usr/share/man/man9e/ddi_ufm_op_nimages.9e=ddi_ufm.9e s usr/share/man/man9e/ddi_ufm_op_nslots.9e=ddi_ufm.9e f usr/share/man/man9e/detach.9e 0444 root bin @@ -20039,6 +20040,7 @@ s usr/share/man/man9f/ddi_ufm_update.9f=ddi_ufm.9f f usr/share/man/man9f/ddi_ufm_image.9f 0444 root bin s usr/share/man/man9f/ddi_ufm_image_set_desc.9f=ddi_ufm_image.9f s usr/share/man/man9f/ddi_ufm_image_set_misc.9f=ddi_ufm_image.9f +s usr/share/man/man9f/ddi_ufm_image_set_nslots.9f=ddi_ufm_image.9f f usr/share/man/man9f/ddi_ufm_slot.9f 0444 root bin s usr/share/man/man9f/ddi_ufm_slot_set_attrs.9f=ddi_ufm_slot.9f s usr/share/man/man9f/ddi_ufm_slot_set_misc.9f=ddi_ufm_slot.9f diff --git a/usr/src/lib/fm/topo/libtopo/common/mapfile-vers b/usr/src/lib/fm/topo/libtopo/common/mapfile-vers index 8ead50bf0f..76c7f15f85 100644 --- a/usr/src/lib/fm/topo/libtopo/common/mapfile-vers +++ b/usr/src/lib/fm/topo/libtopo/common/mapfile-vers @@ -97,6 +97,8 @@ SYMBOL_VERSION SUNWprivate { topo_mod_create_ufm_slot; topo_mod_clrdebug; topo_mod_cpufmri; + topo_mod_create_ufm; + topo_mod_create_ufm_slot; topo_mod_devfmri; topo_mod_devinfo; topo_mod_dprintf; diff --git a/usr/src/lib/fm/topo/libtopo/common/topo_mod.c b/usr/src/lib/fm/topo/libtopo/common/topo_mod.c index 4b1cf13d34..851f0264cd 100644 --- a/usr/src/lib/fm/topo/libtopo/common/topo_mod.c +++ b/usr/src/lib/fm/topo/libtopo/common/topo_mod.c @@ -1025,7 +1025,7 @@ topo_mod_create_ufm_slot(topo_mod_t *mod, tnode_t *ufmnode, nvlist_free(fmri); /* Just inherit the parent's FRU */ - if (topo_node_fru_set(slotnode, NULL, NULL, &err) != 0) { + if (topo_node_fru_set(slotnode, NULL, 0, &err) != 0) { topo_mod_dprintf(mod, "failed to set FRU on %s: %s", UFM, topo_strerror(err)); (void) topo_mod_seterrno(mod, err); @@ -1153,7 +1153,7 @@ topo_mod_create_ufm(topo_mod_t *mod, tnode_t *parent, const char *descr, nvlist_free(fmri); /* Just inherit the parent's FRU */ - if (topo_node_fru_set(ufmnode, NULL, NULL, &err) != 0) { + if (topo_node_fru_set(ufmnode, NULL, 0, &err) != 0) { topo_mod_dprintf(mod, "failed to set FRU on %s: %s", UFM, topo_strerror(err)); (void) topo_mod_seterrno(mod, err); diff --git a/usr/src/lib/libdiskmgt/common/events.c b/usr/src/lib/libdiskmgt/common/events.c index 134abe1846..6874000bea 100644 --- a/usr/src/lib/libdiskmgt/common/events.c +++ b/usr/src/lib/libdiskmgt/common/events.c @@ -23,6 +23,9 @@ * Copyright 2004 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ +/* + * Copyright 2019 Joyent, Inc. + */ #include <stdio.h> #include <stdlib.h> @@ -39,11 +42,16 @@ #include "libdiskmgt.h" #include "disks_private.h" +#pragma fini(libdiskmgt_fini) + struct event_list { struct event_list *next; nvlist_t *event; }; +static mutex_t shp_lock = ERRORCHECKMUTEX; +static sysevent_handle_t *shp = NULL; + static struct event_list *events = NULL; static int event_error = 0; static int event_break = 0; @@ -72,8 +80,10 @@ static sema_t semaphore; #define WALK_RUNNING 2 #define WALK_WAIT_TIME 60 /* wait 60 seconds */ -static mutex_t walker_lock; +static mutex_t walker_lock = ERRORCHECKMUTEX; +static cond_t walker_cv = DEFAULTCV; static int walker_state = WALK_NONE; + static int events_pending = 0; static int sendevents = 0; @@ -87,6 +97,31 @@ static void walker(void *arg); static void(*callback)(nvlist_t *, int) = NULL; +static boolean_t shutting_down = B_FALSE; + +static void +libdiskmgt_fini(void) +{ + mutex_enter(&shp_lock); + if (shp != NULL) { + sysevent_unsubscribe_event(shp, EC_ALL); + sysevent_unbind_handle(shp); + shp = NULL; + } + /* + * At this point a new invocation of walker() can't occur. However, + * if one was already running then we need to wait for it to finish + * because if we allow ourselves to be unloaded out from underneath + * it, then bad things will happen. + */ + mutex_enter(&walker_lock); + shutting_down = B_TRUE; + while (walker_state != WALK_NONE) + (void) cond_wait(&walker_cv, &walker_lock); + + mutex_exit(&walker_lock); +} + nvlist_t * dm_get_event(int *errp) { @@ -223,40 +258,44 @@ events_new_slice_event(char *dev, char *type) int events_start_event_watcher() { - sysevent_handle_t *shp; const char *subclass_list[1]; + int ret = -1; + + mutex_enter(&shp_lock); + if (shp != NULL) { + ret = 0; + goto out; + } /* Bind event handler and create subscriber handle */ shp = sysevent_bind_handle(event_handler); if (shp == NULL) { - if (dm_debug) { - /* keep going when we're debugging */ - (void) fprintf(stderr, "ERROR: bind failed %d\n", errno); - return (0); - } - return (errno); + if (dm_debug) { + (void) fprintf(stderr, "ERROR: sysevent bind failed: " + "%d\n", errno); + } + goto out; } subclass_list[0] = ESC_DISK; - if (sysevent_subscribe_event(shp, EC_DEV_ADD, subclass_list, 1) != 0) { - if (dm_debug) { - /* keep going when we're debugging */ - (void) fprintf(stderr, "ERROR: subscribe failed\n"); - return (0); - } - return (errno); - } - if (sysevent_subscribe_event(shp, EC_DEV_REMOVE, subclass_list, 1) - != 0) { - if (dm_debug) { - /* keep going when we're debugging */ - (void) fprintf(stderr, "ERROR: subscribe failed\n"); - return (0); - } - return (errno); - } + if (sysevent_subscribe_event(shp, EC_DEV_ADD, subclass_list, 1) != 0 || + sysevent_subscribe_event(shp, EC_DEV_REMOVE, subclass_list, 1) != + 0) { + + sysevent_unsubscribe_event(shp, EC_ALL); + sysevent_unbind_handle(shp); + shp = NULL; - return (0); + if (dm_debug) { + (void) fprintf(stderr, "ERROR: sysevent subscribe " + "failed: %d\n", errno); + } + goto out; + } + ret = 0; +out: + mutex_exit(&shp_lock); + return (ret); } static void @@ -439,7 +478,7 @@ walk_devtree() { thread_t walk_thread; - (void) mutex_lock(&walker_lock); + mutex_enter(&walker_lock); switch (walker_state) { case WALK_NONE: @@ -458,7 +497,7 @@ walk_devtree() break; } - (void) mutex_unlock(&walker_lock); + mutex_exit(&walker_lock); } /*ARGSUSED*/ @@ -468,16 +507,28 @@ walker(void *arg) int walk_again = 0; do { - /* start by wating for a few seconds to absorb extra events */ + /* start by waiting for a few seconds to absorb extra events */ (void) sleep(WALK_WAIT_TIME); - (void) mutex_lock(&walker_lock); + mutex_enter(&walker_lock); + if (shutting_down) { + walker_state = WALK_NONE; + (void) cond_broadcast(&walker_cv); + mutex_exit(&walker_lock); + return; + } walker_state = WALK_RUNNING; - (void) mutex_unlock(&walker_lock); + mutex_exit(&walker_lock); cache_update(DM_EV_DISK_ADD, NULL); - (void) mutex_lock(&walker_lock); + mutex_enter(&walker_lock); + if (shutting_down) { + walker_state = WALK_NONE; + (void) cond_broadcast(&walker_cv); + mutex_exit(&walker_lock); + return; + } if (events_pending) { events_pending = 0; @@ -488,7 +539,7 @@ walker(void *arg) walk_again = 0; } - (void) mutex_unlock(&walker_lock); + mutex_exit(&walker_lock); } while (walk_again); } diff --git a/usr/src/man/man7d/ufm.7d b/usr/src/man/man7d/ufm.7d index 7fb7b0c6db..5cd2b3581e 100644 --- a/usr/src/man/man7d/ufm.7d +++ b/usr/src/man/man7d/ufm.7d @@ -68,9 +68,9 @@ On success the ufmg_caps field will be filled in with a value indicating the supported UFM capabilities of the device specified in ufmg_devpath. .Bd -literal typedef struct ufm_ioc_getcaps { - uint_t ufmg_version; /* DDI_UFM_VERSION */ + uint_t ufmg_version; /* DDI_UFM_VERSION */ uint_t ufmg_caps; /* UFM Caps */ - char ufmg_devpath[MAXPATHLEN]; + char ufmg_devpath[MAXPATHLEN]; } ufm_ioc_getcaps_t; .Ed .It UFM_IOC_REPORTSZ @@ -87,7 +87,7 @@ Callers should specify the ufbz_version and ufbz_devpath fields. On success the ufmg_size field will be filled in with the required buffer size. .Bd -literal typedef struct ufm_ioc_bufsz { - uint_t ufbz_version; /* DDI_UFM_VERSION */ + uint_t ufbz_version; /* DDI_UFM_VERSION */ size_t ufbz_size; /* sz of buf to be returned by ioctl */ char ufbz_devpath[MAXPATHLEN]; } ufm_ioc_bufsz_t; @@ -176,7 +176,7 @@ main(int argc, char **argv) .Sh ERRORS On failure to open or perform ioctls to the .Nm -driver, +driver, .Va errno will be set to indicate the type of error. A subset of the more common errors are detailed below. diff --git a/usr/src/man/man9e/Makefile b/usr/src/man/man9e/Makefile index 081194c3b4..a67785e520 100644 --- a/usr/src/man/man9e/Makefile +++ b/usr/src/man/man9e/Makefile @@ -99,8 +99,8 @@ MANFILES= Intro.9e \ MANLINKS= ddi_ufm_op_fill_image.9e \ ddi_ufm_op_fill_slot.9e \ + ddi_ufm_op_getcaps.9e \ ddi_ufm_op_nimages.9e \ - ddi_ufm_op_nslots.9e \ _info.9e \ _init.9e \ gldv3.9e \ @@ -135,10 +135,10 @@ MANLINKS= ddi_ufm_op_fill_image.9e \ usba_hcdi_pipe_close.9e \ usba_hcdi_pipe_stop_isoc_polling.9e -ddi_ufm_op_nimages.9e := LINKSRC = ddi_ufm.9e -ddi_ufm_op_nslots.9e := LINKSRC = ddi_ufm.9e ddi_ufm_op_fill_image.9e := LINKSRC = ddi_ufm.9e ddi_ufm_op_fill_slot.9e := LINKSRC = ddi_ufm.9e +ddi_ufm_op_getcaps.9e := LINKSRC = ddi_ufm.9e +ddi_ufm_op_nimages.9e := LINKSRC = ddi_ufm.9e intro.9e := LINKSRC = Intro.9e _info.9e := LINKSRC = _fini.9e diff --git a/usr/src/man/man9e/ddi_ufm.9e b/usr/src/man/man9e/ddi_ufm.9e index 162a7bea6d..62e49893f8 100644 --- a/usr/src/man/man9e/ddi_ufm.9e +++ b/usr/src/man/man9e/ddi_ufm.9e @@ -19,7 +19,8 @@ .Nm ddi_ufm_op_nimages , .Nm ddi_ufm_op_fill_image , .Nm ddi_ufm_op_nslots , -.Nm ddi_ufm_op_fill_slot +.Nm ddi_ufm_op_fill_slot , +.Nm ddi_ufm_op_getcaps .Nd DDI upgradable firmware module entry points .Sh SYNOPSIS .Vt typedef struct ddi_ufm_handle ddi_ufm_handle_t @@ -58,7 +59,8 @@ .Bl -tag -width Fa .It Fa uhp A handle corresponding to the device's UFM handle. -This is the same value as returned in .Xr ddi_ufm_init 9F . +This is the same value as returned in +.Xr ddi_ufm_init 9F . .It Fa drv_arg This is a private value that the driver passed in when calling .Xr ddi_ufm_init 9F . @@ -396,7 +398,7 @@ block until it is terminated. .Ss ioctl Interface Userland consumers can access UFM information via a set of ioctls that are implemented by the -.Xr ufd 7D +.Xr ufm 7D driver. .Sh CONTEXT The various UFM entry points that a device driver must implement will diff --git a/usr/src/man/man9f/Makefile b/usr/src/man/man9f/Makefile index 335afe6ab0..a750abb887 100644 --- a/usr/src/man/man9f/Makefile +++ b/usr/src/man/man9f/Makefile @@ -12,14 +12,14 @@ # # Copyright 2017, Richard Lowe # Copyright 2014 Garrett D'Amore <garrett@damore> -# Copyright (c) 2019, Joyent, Inc. +# Copyright 2019 Joyent, Inc. # Copyright 2016 Nexenta Systems, Inc. # Copyright 2016 Hans Rosenfeld <rosenfeld@grumpf.hope-2000.org> # include $(SRC)/Makefile.master -MANSECT= 9f +MANSECT= 9f MANFILES= ASSERT.9f \ Intro.9f \ @@ -921,6 +921,7 @@ MANLINKS= AVL_NEXT.9f \ ddi_ufm_fini.9f \ ddi_ufm_image_set_desc.9f \ ddi_ufm_image_set_misc.9f \ + ddi_ufm_image_set_nslots.9f \ ddi_ufm_init.9f \ ddi_ufm_slot_set_attrs.9f \ ddi_ufm_slot_set_misc.9f \ @@ -1210,13 +1211,13 @@ MANLINKS= AVL_NEXT.9f \ scsi_hba_iportmap_iport_add.9f \ scsi_hba_iportmap_iport_remove.9f \ scsi_hba_pkt_free.9f \ - scsi_hba_tgtmap_destroy.9f \ - scsi_hba_tgtmap_set_begin.9f \ - scsi_hba_tgtmap_set_add.9f \ - scsi_hba_tgtmap_set_end.9f \ - scsi_hba_tgtmap_set_flush.9f \ - scsi_hba_tgtmap_tgt_add.9f \ - scsi_hba_tgtmap_tgt_remove.9f \ + scsi_hba_tgtmap_destroy.9f \ + scsi_hba_tgtmap_set_begin.9f \ + scsi_hba_tgtmap_set_add.9f \ + scsi_hba_tgtmap_set_end.9f \ + scsi_hba_tgtmap_set_flush.9f \ + scsi_hba_tgtmap_tgt_add.9f \ + scsi_hba_tgtmap_tgt_remove.9f \ scsi_hba_tran_free.9f \ scsi_ifsetcap.9f \ scsi_mname.9f \ @@ -1450,7 +1451,7 @@ avl_add.9f := LINKSRC = avl.9f avl_create.9f := LINKSRC = avl.9f avl_destroy.9f := LINKSRC = avl.9f avl_destroy_nodes.9f := LINKSRC = avl.9f -avl_find.9f := LINKSRC = avl.9f +avl_find.9f := LINKSRC = avl.9f avl_first.9f := LINKSRC = avl.9f avl_insert.9f := LINKSRC = avl.9f avl_insert_here.9f := LINKSRC = avl.9f @@ -1769,6 +1770,7 @@ devmap_load.9f := LINKSRC = devmap_unload.9f ddi_ufm_fini.9f := LINKSRC = ddi_ufm.9f ddi_ufm_image_set_desc.9f := LINKSRC = ddi_ufm_image.9f ddi_ufm_image_set_misc.9f := LINKSRC = ddi_ufm_image.9f +ddi_ufm_image_set_nslots.9f := LINKSRC = ddi_ufm_image.9f ddi_ufm_init.9f := LINKSRC = ddi_ufm.9f ddi_ufm_slot_set_attrs.9f := LINKSRC = ddi_ufm_slot.9f ddi_ufm_slot_set_misc.9f := LINKSRC = ddi_ufm_slot.9f @@ -2119,8 +2121,8 @@ scsi_hba_iport_find.9f := LINKSRC = scsi_hba_iport_exist.9f scsi_hba_pkt_free.9f := LINKSRC = scsi_hba_pkt_alloc.9f -scsi_hba_tgtmap_destroy.9f := LINKSRC = scsi_hba_tgtmap_create.9f -scsi_hba_tgtmap_set_begin.9f := LINKSRC = scsi_hba_tgtmap_create.9f +scsi_hba_tgtmap_destroy.9f := LINKSRC = scsi_hba_tgtmap_create.9f +scsi_hba_tgtmap_set_begin.9f := LINKSRC = scsi_hba_tgtmap_create.9f scsi_hba_tgtmap_set_add.9f := LINKSRC = scsi_hba_tgtmap_create.9f scsi_hba_tgtmap_set_end.9f := LINKSRC = scsi_hba_tgtmap_create.9f scsi_hba_tgtmap_set_flush.9f := LINKSRC = scsi_hba_tgtmap_create.9f diff --git a/usr/src/man/man9f/ddi_ufm_image.9f b/usr/src/man/man9f/ddi_ufm_image.9f index 3b1e2ebe74..606103bb8c 100644 --- a/usr/src/man/man9f/ddi_ufm_image.9f +++ b/usr/src/man/man9f/ddi_ufm_image.9f @@ -16,7 +16,8 @@ .Os .Sh NAME .Nm ddi_ufm_image_set_desc , -.Nm ddi_ufm_image_set_misc +.Nm ddi_ufm_image_set_misc , +.Nm ddi_ufm_image_set_nslots .Nd UFM image property routines .Sh SYNOPSIS .In sys/ddi_ufm.h diff --git a/usr/src/pkg/manifests/system-header.mf b/usr/src/pkg/manifests/system-header.mf index 494e5dd023..2f78c34031 100644 --- a/usr/src/pkg/manifests/system-header.mf +++ b/usr/src/pkg/manifests/system-header.mf @@ -900,6 +900,8 @@ file path=usr/include/sys/ddi_intr_impl.h file path=usr/include/sys/ddi_isa.h file path=usr/include/sys/ddi_obsolete.h file path=usr/include/sys/ddi_periodic.h +file path=usr/include/sys/ddi_ufm.h +file path=usr/include/sys/ddi_ufm_impl.h file path=usr/include/sys/ddidevmap.h file path=usr/include/sys/ddidmareq.h file path=usr/include/sys/ddifm.h diff --git a/usr/src/pkg/manifests/system-io-tests.mf b/usr/src/pkg/manifests/system-io-tests.mf index 68d0a51b1a..4794852e10 100644 --- a/usr/src/pkg/manifests/system-io-tests.mf +++ b/usr/src/pkg/manifests/system-io-tests.mf @@ -21,6 +21,7 @@ # # Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. +# Copyright 2019 Joyent, Inc. # set name=pkg.fmri value=pkg:/system/io/tests@$(PKGVERS) @@ -48,8 +49,10 @@ file path=usr/kernel/drv/$(ARCH64)/pshot group=sys file path=usr/kernel/drv/$(ARCH64)/tclient group=sys file path=usr/kernel/drv/$(ARCH64)/tphci group=sys file path=usr/kernel/drv/$(ARCH64)/tvhci group=sys +file path=usr/kernel/drv/$(ARCH64)/ufmtest group=sys file path=usr/kernel/drv/emul64.conf group=sys file path=usr/kernel/drv/pshot.conf group=sys +file path=usr/kernel/drv/ufmtest.conf group=sys file path=usr/lib/scsi/sestopo mode=0555 file path=usr/lib/scsi/smp mode=0555 file path=usr/sbin/devctl mode=0555 diff --git a/usr/src/pkg/manifests/system-kernel.man7d.inc b/usr/src/pkg/manifests/system-kernel.man7d.inc index 375ba3896a..07da55bde8 100644 --- a/usr/src/pkg/manifests/system-kernel.man7d.inc +++ b/usr/src/pkg/manifests/system-kernel.man7d.inc @@ -12,6 +12,7 @@ # # Copyright 2011, Richard Lowe # Copyright 2016 Nexenta Systems, Inc. +# Copyright 2019 Joyent, Inc. # file path=usr/share/man/man7d/bscv.7d @@ -46,6 +47,7 @@ file path=usr/share/man/man7d/ticlts.7d file path=usr/share/man/man7d/tty.7d file path=usr/share/man/man7d/ttymux.7d file path=usr/share/man/man7d/tzmon.7d +file path=usr/share/man/man7d/ufm.7d file path=usr/share/man/man7d/virtualkm.7d file path=usr/share/man/man7d/vni.7d file path=usr/share/man/man7d/wscons.7d diff --git a/usr/src/pkg/manifests/system-kernel.man9e.inc b/usr/src/pkg/manifests/system-kernel.man9e.inc index 600a2bf7f9..3513e98c4c 100644 --- a/usr/src/pkg/manifests/system-kernel.man9e.inc +++ b/usr/src/pkg/manifests/system-kernel.man9e.inc @@ -12,6 +12,7 @@ # # Copyright 2011, Richard Lowe # Copyright 2012 Nexenta Systems, Inc. All rights reserved. +# Copyright 2019 Joyent, Inc. # file path=usr/share/man/man9e/Intro.9e @@ -22,6 +23,7 @@ file path=usr/share/man/man9e/awrite.9e file path=usr/share/man/man9e/chpoll.9e file path=usr/share/man/man9e/close.9e file path=usr/share/man/man9e/csx_event_handler.9e +file path=usr/share/man/man9e/ddi_ufm.9e file path=usr/share/man/man9e/detach.9e file path=usr/share/man/man9e/devmap.9e file path=usr/share/man/man9e/devmap_access.9e @@ -82,6 +84,10 @@ link path=usr/share/man/man9e/GLDv3.9e target=mac.9e link path=usr/share/man/man9e/MAC.9e target=mac.9e link path=usr/share/man/man9e/_info.9e target=_fini.9e link path=usr/share/man/man9e/_init.9e target=_fini.9e +link path=usr/share/man/man9e/ddi_ufm_op_fill_image.9e target=ddi_ufm.9e +link path=usr/share/man/man9e/ddi_ufm_op_fill_slot.9e target=ddi_ufm.9e +link path=usr/share/man/man9e/ddi_ufm_op_getcaps.9e target=ddi_ufm.9e +link path=usr/share/man/man9e/ddi_ufm_op_nimages.9e target=ddi_ufm.9e link path=usr/share/man/man9e/gldm_get_stats.9e target=gld.9e link path=usr/share/man/man9e/gldm_intr.9e target=gld.9e link path=usr/share/man/man9e/gldm_ioctl.9e target=gld.9e diff --git a/usr/src/pkg/manifests/system-kernel.man9f.inc b/usr/src/pkg/manifests/system-kernel.man9f.inc index e209013182..c09595a017 100644 --- a/usr/src/pkg/manifests/system-kernel.man9f.inc +++ b/usr/src/pkg/manifests/system-kernel.man9f.inc @@ -14,6 +14,7 @@ # Copyright 2014 Garrett D'Amore <garrett@damore.org> # Copyright 2016 Nexenta Systems, Inc. # Copyright 2016 Hans Rosenfeld <rosenfeld@grumpf.hope-2000.org> +# Copyright 2019 Joyent, Inc. # file path=usr/share/man/man9f/ASSERT.9f @@ -237,6 +238,9 @@ file path=usr/share/man/man9f/ddi_soft_state.9f file path=usr/share/man/man9f/ddi_strtol.9f file path=usr/share/man/man9f/ddi_strtoll.9f file path=usr/share/man/man9f/ddi_strtoul.9f +file path=usr/share/man/man9f/ddi_ufm.9f +file path=usr/share/man/man9f/ddi_ufm_image.9f +file path=usr/share/man/man9f/ddi_ufm_slot.9f file path=usr/share/man/man9f/ddi_umem_alloc.9f file path=usr/share/man/man9f/ddi_umem_iosetup.9f file path=usr/share/man/man9f/ddi_umem_lock.9f @@ -913,6 +917,15 @@ link path=usr/share/man/man9f/ddi_taskq_suspend.9f target=taskq.9f link path=usr/share/man/man9f/ddi_taskq_wait.9f target=taskq.9f link path=usr/share/man/man9f/ddi_trigger_softintr.9f \ target=ddi_add_softintr.9f +link path=usr/share/man/man9f/ddi_ufm_fini.9f target=ddi_ufm.9f +link path=usr/share/man/man9f/ddi_ufm_init.9f target=ddi_ufm.9f +link path=usr/share/man/man9f/ddi_ufm_update.9f target=ddi_ufm.9f +link path=usr/share/man/man9f/ddi_ufm_image_set_desc.9f target=ddi_ufm_image.9f +link path=usr/share/man/man9f/ddi_ufm_image_set_misc.9f target=ddi_ufm_image.9f +link path=usr/share/man/man9f/ddi_ufm_image_set_nslots.9f target=ddi_ufm_image.9f +link path=usr/share/man/man9f/ddi_ufm_slot_set_attrs.9f target=ddi_ufm_slot.9f +link path=usr/share/man/man9f/ddi_ufm_slot_set_misc.9f target=ddi_ufm_slot.9f +link path=usr/share/man/man9f/ddi_ufm_slot_set_version.9f target=ddi_ufm_slot.9f link path=usr/share/man/man9f/ddi_umem_free.9f target=ddi_umem_alloc.9f link path=usr/share/man/man9f/ddi_umem_unlock.9f target=ddi_umem_lock.9f link path=usr/share/man/man9f/ddi_unmap_regs.9f target=ddi_map_regs.9f diff --git a/usr/src/pkg/manifests/system-kernel.mf b/usr/src/pkg/manifests/system-kernel.mf index 58e1aa8ff2..70fa5dd1dc 100644 --- a/usr/src/pkg/manifests/system-kernel.mf +++ b/usr/src/pkg/manifests/system-kernel.mf @@ -26,6 +26,7 @@ # Copyright 2016 Hans Rosenfeld <rosenfeld@grumpf.hope-2000.org> # Copyright 2017 James S Blachly, MD <james.blachly@gmail.com> # Copyright 2019 RackTop Systems +# Copyright 2019 Joyent, Inc. # # @@ -286,6 +287,7 @@ $(sparc_ONLY)driver name=uata \ $(i386_ONLY)driver name=ucode perms="* 0644 root sys" driver name=udp perms="udp 0666 root sys" driver name=udp6 perms="udp6 0666 root sys" +driver name=ufm perms="ufm 0666 root sys" $(i386_ONLY)driver name=vgatext \ alias=pciclass,000100 \ alias=pciclass,030000 \ @@ -406,6 +408,7 @@ $(sparc_ONLY)file path=kernel/drv/$(ARCH64)/uata group=sys $(i386_ONLY)file path=kernel/drv/$(ARCH64)/ucode group=sys file path=kernel/drv/$(ARCH64)/udp group=sys file path=kernel/drv/$(ARCH64)/udp6 group=sys +file path=kernel/drv/$(ARCH64)/ufm group=sys $(i386_ONLY)file path=kernel/drv/$(ARCH64)/vgatext group=sys file path=kernel/drv/$(ARCH64)/vnic group=sys file path=kernel/drv/$(ARCH64)/wc group=sys @@ -490,6 +493,7 @@ $(sparc_ONLY)file path=kernel/drv/uata.conf group=sys \ $(i386_ONLY)file path=kernel/drv/ucode.conf group=sys file path=kernel/drv/udp.conf group=sys file path=kernel/drv/udp6.conf group=sys +file path=kernel/drv/ufm.conf group=sys file path=kernel/drv/vnic.conf group=sys file path=kernel/drv/wc.conf group=sys $(sparc_ONLY)file path=kernel/exec/$(ARCH64)/aoutexec group=sys mode=0755 diff --git a/usr/src/pkg/manifests/system-test-ostest.mf b/usr/src/pkg/manifests/system-test-ostest.mf index 935920cc83..78d46bdf6a 100644 --- a/usr/src/pkg/manifests/system-test-ostest.mf +++ b/usr/src/pkg/manifests/system-test-ostest.mf @@ -12,7 +12,7 @@ # # Copyright (c) 2012, 2016 by Delphix. All rights reserved. # Copyright 2014, OmniTI Computer Consulting, Inc. All rights reserved. -# Copyright 2018 Joyent, Inc. +# Copyright 2019 Joyent, Inc. # set name=pkg.fmri value=pkg:/system/test/ostest@$(PKGVERS) @@ -25,6 +25,7 @@ dir path=opt/os-tests dir path=opt/os-tests/bin dir path=opt/os-tests/runfiles dir path=opt/os-tests/tests +dir path=opt/os-tests/tests/ddi_ufm dir path=opt/os-tests/tests/file-locking $(i386_ONLY)dir path=opt/os-tests/tests/i386 dir path=opt/os-tests/tests/pf_key @@ -36,6 +37,9 @@ dir path=opt/os-tests/tests/stress file path=opt/os-tests/README mode=0444 file path=opt/os-tests/bin/ostest mode=0555 file path=opt/os-tests/runfiles/default.run mode=0444 +file path=opt/os-tests/tests/ddi_ufm/ufm-test mode=0555 +file path=opt/os-tests/tests/ddi_ufm/ufm-test-cleanup mode=0555 +file path=opt/os-tests/tests/ddi_ufm/ufm-test-setup mode=0555 file path=opt/os-tests/tests/epoll_test mode=0555 file path=opt/os-tests/tests/file-locking/acquire-lock.32 mode=0555 file path=opt/os-tests/tests/file-locking/acquire-lock.64 mode=0555 @@ -76,4 +80,5 @@ file path=opt/os-tests/tests/stress/dladm-kstat mode=0555 license cr_Sun license=cr_Sun license lic_CDDL license=lic_CDDL depend fmri=pkg:/network/telnet type=require +depend fmri=system/io/tests type=require depend fmri=system/test/testrunner type=require diff --git a/usr/src/test/os-tests/runfiles/default.run b/usr/src/test/os-tests/runfiles/default.run index 232688ccce..d9d0f03464 100644 --- a/usr/src/test/os-tests/runfiles/default.run +++ b/usr/src/test/os-tests/runfiles/default.run @@ -11,7 +11,7 @@ # # Copyright (c) 2012 by Delphix. All rights reserved. -# Copyright 2018 Joyent, Inc. +# Copyright 2019 Joyent, Inc. # [DEFAULT] @@ -74,6 +74,10 @@ tests = ['acquire-compare', 'acquire-spray'] [/opt/os-tests/tests/OS-6097.32] [/opt/os-tests/tests/OS-6097.64] +[/opt/os-tests/tests/ddi_ufm] +user = root +tests = ['ufm-test-setup', 'ufm-test', 'ufm-test-cleanup'] + [/opt/os-tests/tests/i386] user = root arch = i86pc diff --git a/usr/src/test/os-tests/tests/ddi_ufm/Makefile b/usr/src/test/os-tests/tests/ddi_ufm/Makefile index c8f0aaae3f..31646142b0 100644 --- a/usr/src/test/os-tests/tests/ddi_ufm/Makefile +++ b/usr/src/test/os-tests/tests/ddi_ufm/Makefile @@ -18,7 +18,7 @@ include $(SRC)/Makefile.master ROOTOPTPKG = $(ROOT)/opt/os-tests TESTDIR = $(ROOTOPTPKG)/tests/ddi_ufm -PROGS = ufm-test +PROGS = ufm-test-setup ufm-test ufm-test-cleanup include $(SRC)/cmd/Makefile.cmd include $(SRC)/test/Makefile.com diff --git a/usr/src/test/os-tests/tests/ddi_ufm/ufm-test-cleanup.sh b/usr/src/test/os-tests/tests/ddi_ufm/ufm-test-cleanup.sh new file mode 100644 index 0000000000..f71951511f --- /dev/null +++ b/usr/src/test/os-tests/tests/ddi_ufm/ufm-test-cleanup.sh @@ -0,0 +1,32 @@ +#!/usr/bin/bash + +# +# This file and its contents are supplied under the terms of the +# Common Development and Distribution License ("CDDL"), version 1.0. +# You may only use this file in accordance with the terms of version +# 1.0 of the CDDL. +# +# A full copy of the text of the CDDL should have accompanied this +# source. A copy of the CDDL is also available via the Internet at +# http://www.illumos.org/license/CDDL. +# + +# +# Copyright 2019 Joyent, Inc. +# + +grep ufmtest /etc/name_to_major &> /dev/null +if [[ $? -eq 1 ]]; then + printf "ufmtest driver is not currently installed\n" + exit 0 +fi + +printf "Removing ufmtest driver ...\n" +/usr/sbin/rem_drv ufmtest +if [[ $? -ne 0 ]]; then + printf "Failed to remove the ufmtest driver.\n" 1>&2 + exit 1 +else + exit 0 +fi + diff --git a/usr/src/test/os-tests/tests/ddi_ufm/ufm-test-setup.sh b/usr/src/test/os-tests/tests/ddi_ufm/ufm-test-setup.sh new file mode 100644 index 0000000000..6895b2f479 --- /dev/null +++ b/usr/src/test/os-tests/tests/ddi_ufm/ufm-test-setup.sh @@ -0,0 +1,34 @@ +#!/usr/bin/bash + +# +# This file and its contents are supplied under the terms of the +# Common Development and Distribution License ("CDDL"), version 1.0. +# You may only use this file in accordance with the terms of version +# 1.0 of the CDDL. +# +# A full copy of the text of the CDDL should have accompanied this +# source. A copy of the CDDL is also available via the Internet at +# http://www.illumos.org/license/CDDL. +# + +# +# Copyright 2019 Joyent, Inc. +# + +grep ufmtest /etc/name_to_major &>/dev/null +if [[ $? -eq 0 ]]; then + printf "ufmtest driver is already installed\n" + exit 0 +fi + +printf "Installing ufmtest driver ... \n" +/usr/sbin/add_drv -v -f ufmtest + +if [[ $? -ne 0 ]]; then + printf "%s\n%s\n" "Failed to install the ufmtest driver." \ + "Verify that the IPS package system/io/tests is installed." 1>&2 + exit 1 +else + exit 0 +fi + diff --git a/usr/src/uts/common/io/i40e/i40e_main.c b/usr/src/uts/common/io/i40e/i40e_main.c index 954deb6808..003997a408 100644 --- a/usr/src/uts/common/io/i40e/i40e_main.c +++ b/usr/src/uts/common/io/i40e/i40e_main.c @@ -2036,7 +2036,7 @@ i40e_set_shared_vsi_props(i40e_t *i40e, info->mapping_flags = LE_16(I40E_AQ_VSI_QUE_MAP_CONTIG); info->queue_mapping[0] = LE_16((vsi_qp_base << I40E_AQ_VSI_QUEUE_SHIFT) & - I40E_AQ_VSI_QUEUE_MASK); + I40E_AQ_VSI_QUEUE_MASK); /* * tc_queues determines the size of the traffic class, where @@ -2044,12 +2044,12 @@ i40e_set_shared_vsi_props(i40e_t *i40e, * and 128 for the X722. * * Some examples: - * i40e_num_trqpairs_per_vsi == 1 => tc_queues = 0, 2^^0 = 1. - * i40e_num_trqpairs_per_vsi == 7 => tc_queues = 3, 2^^3 = 8. - * i40e_num_trqpairs_per_vsi == 8 => tc_queues = 3, 2^^3 = 8. - * i40e_num_trqpairs_per_vsi == 9 => tc_queues = 4, 2^^4 = 16. - * i40e_num_trqpairs_per_vsi == 17 => tc_queues = 5, 2^^5 = 32. - * i40e_num_trqpairs_per_vsi == 64 => tc_queues = 6, 2^^6 = 64. + * i40e_num_trqpairs_per_vsi == 1 => tc_queues = 0, 2^^0 = 1. + * i40e_num_trqpairs_per_vsi == 7 => tc_queues = 3, 2^^3 = 8. + * i40e_num_trqpairs_per_vsi == 8 => tc_queues = 3, 2^^3 = 8. + * i40e_num_trqpairs_per_vsi == 9 => tc_queues = 4, 2^^4 = 16. + * i40e_num_trqpairs_per_vsi == 17 => tc_queues = 5, 2^^5 = 32. + * i40e_num_trqpairs_per_vsi == 64 => tc_queues = 6, 2^^6 = 64. */ tc_queues = ddi_fls(i40e->i40e_num_trqpairs_per_vsi - 1); @@ -2060,9 +2060,9 @@ i40e_set_shared_vsi_props(i40e_t *i40e, */ info->tc_mapping[0] = LE_16(((0 << I40E_AQ_VSI_TC_QUE_OFFSET_SHIFT) & - I40E_AQ_VSI_TC_QUE_OFFSET_MASK) | - ((tc_queues << I40E_AQ_VSI_TC_QUE_NUMBER_SHIFT) & - I40E_AQ_VSI_TC_QUE_NUMBER_MASK)); + I40E_AQ_VSI_TC_QUE_OFFSET_MASK) | + ((tc_queues << I40E_AQ_VSI_TC_QUE_NUMBER_SHIFT) & + I40E_AQ_VSI_TC_QUE_NUMBER_MASK)); /* * I40E_AQ_VSI_PVLAN_MODE_ALL ("VLAN driver insertion mode") @@ -2397,7 +2397,7 @@ out: /* * Set up RSS. - * 1. Seed the hash key. + * 1. Seed the hash key. * 2. Enable PCTYPEs for the hash filter. * 3. Populate the LUT. */ diff --git a/usr/src/uts/common/io/i40e/i40e_sw.h b/usr/src/uts/common/io/i40e/i40e_sw.h index 7b0ff20c95..4bd0a58c2a 100644 --- a/usr/src/uts/common/io/i40e/i40e_sw.h +++ b/usr/src/uts/common/io/i40e/i40e_sw.h @@ -149,7 +149,7 @@ typedef enum i40e_itr_index { I40E_ITR_INDEX_RX = 0x0, I40E_ITR_INDEX_TX = 0x1, I40E_ITR_INDEX_OTHER = 0x2, - I40E_ITR_INDEX_NONE = 0x3 + I40E_ITR_INDEX_NONE = 0x3 } i40e_itr_index_t; /* @@ -336,7 +336,7 @@ typedef enum i40e_attach_state { I40E_ATTACH_ALLOC_INTR = 0x0008, /* Interrupts allocated */ I40E_ATTACH_ALLOC_RINGSLOCKS = 0x0010, /* Rings & locks allocated */ I40E_ATTACH_ADD_INTR = 0x0020, /* Intr handlers added */ - I40E_ATTACH_COMMON_CODE = 0x0040, /* Intel code initialized */ + I40E_ATTACH_COMMON_CODE = 0x0040, /* Intel code initialized */ I40E_ATTACH_INIT = 0x0080, /* Device initialized */ I40E_ATTACH_STATS = 0x0200, /* Kstats created */ I40E_ATTACH_MAC = 0x0800, /* MAC registered */ @@ -355,12 +355,12 @@ typedef enum i40e_attach_state { * I40E_INITIALIZED: The device has been fully attached. * I40E_STARTED: The device has come out of the GLDV3 start routine. * I40E_SUSPENDED: The device is suspended and I/O among other things - * should not occur. This happens because of an actual - * DDI_SUSPEND or interrupt adjustments. + * should not occur. This happens because of an actual + * DDI_SUSPEND or interrupt adjustments. * I40E_STALL: The tx stall detection logic has found a stall. * I40E_OVERTEMP: The device has encountered a temperature alarm. * I40E_INTR_ADJUST: Our interrupts are being manipulated and therefore we - * shouldn't be manipulating their state. + * shouldn't be manipulating their state. * I40E_ERROR: We've detected an FM error and degraded the device. */ typedef enum i40e_state { @@ -592,7 +592,7 @@ typedef struct i40e_trqpair { */ i40e_dma_buffer_t itrq_desc_area; /* DMA buffer of tx desc ring */ i40e_tx_desc_t *itrq_desc_ring; /* TX Desc ring */ - volatile uint32_t *itrq_desc_wbhead; /* TX write-back index */ + volatile uint32_t *itrq_desc_wbhead; /* TX write-back index */ uint32_t itrq_desc_head; /* Last index hw freed */ uint32_t itrq_desc_tail; /* Index of next free desc */ uint32_t itrq_desc_free; /* Number of free descriptors */ @@ -825,7 +825,7 @@ typedef struct i40e { struct i40e_hw i40e_hw_space; struct i40e_osdep i40e_osdep_space; struct i40e_aq_get_phy_abilities_resp i40e_phy; - void *i40e_aqbuf; + void *i40e_aqbuf; #define I40E_DEF_VSI_IDX 0 #define I40E_DEF_VSI(i40e) ((i40e)->i40e_vsis[I40E_DEF_VSI_IDX]) @@ -858,7 +858,7 @@ typedef struct i40e { * Transmit and receive information, tunables, and MAC info. */ i40e_trqpair_t *i40e_trqpairs; - boolean_t i40e_mr_enable; + boolean_t i40e_mr_enable; uint_t i40e_num_trqpairs; /* total TRQPs (per PF) */ uint_t i40e_num_trqpairs_per_vsi; /* TRQPs per VSI */ uint_t i40e_other_itr; diff --git a/usr/src/uts/common/io/ufm.c b/usr/src/uts/common/io/ufm.c index 40b1b4120b..49a98c101a 100644 --- a/usr/src/uts/common/io/ufm.c +++ b/usr/src/uts/common/io/ufm.c @@ -16,10 +16,6 @@ /* * The ufm(7D) pseudo driver provides an ioctl interface for DDI UFM * information. See ddi_ufm.h. - * - * Most of the test cases depend on the ufmtest driver being loaded. - * On SmartOS, this driver will need to be manually installed, as it is not - * part of the platform image. */ #include <sys/ddi.h> #include <sys/sunddi.h> diff --git a/usr/src/uts/common/io/ufmtest.c b/usr/src/uts/common/io/ufmtest.c index 8d74f0d91e..ea9bb115d5 100644 --- a/usr/src/uts/common/io/ufmtest.c +++ b/usr/src/uts/common/io/ufmtest.c @@ -15,6 +15,10 @@ /* * This is a test driver used for exercising the DDI UFM subsystem. + * + * Most of the test cases depend on the ufmtest driver being loaded. + * On SmartOS, this driver will need to be manually installed, as it is not + * part of the platform image. */ #include <sys/ddi.h> #include <sys/sunddi.h> @@ -30,7 +34,7 @@ #include "ufmtest.h" typedef struct ufmtest { - dev_info_t *ufmt_devi; + dev_info_t *ufmt_devi; nvlist_t *ufmt_nvl; ddi_ufm_handle_t *ufmt_ufmh; uint32_t ufmt_failflags; diff --git a/usr/src/uts/common/mapfiles/ddi.mapfile b/usr/src/uts/common/mapfiles/ddi.mapfile index ab65377941..5c74fdab11 100644 --- a/usr/src/uts/common/mapfiles/ddi.mapfile +++ b/usr/src/uts/common/mapfiles/ddi.mapfile @@ -172,6 +172,9 @@ SYMBOL_SCOPE { nvlist_alloc { FLAGS = EXTERN }; nvlist_free { FLAGS = EXTERN }; nulldev { FLAGS = EXTERN }; + nvlist_add_string { FLAGS = EXTERN }; + nvlist_alloc { FLAGS = EXTERN }; + nvlist_free { FLAGS = EXTERN }; panic { FLAGS = EXTERN }; pci_config_get16 { FLAGS = EXTERN }; pci_config_get32 { FLAGS = EXTERN }; diff --git a/usr/src/uts/common/sys/ddi_ufm.h b/usr/src/uts/common/sys/ddi_ufm.h index 7d3a68e17d..e6ad50d9ef 100644 --- a/usr/src/uts/common/sys/ddi_ufm.h +++ b/usr/src/uts/common/sys/ddi_ufm.h @@ -61,9 +61,9 @@ typedef enum { * UFM capabilities of the device specified in ufmg_devpath. */ typedef struct ufm_ioc_getcaps { - uint_t ufmg_version; /* DDI_UFM_VERSION */ + uint_t ufmg_version; /* DDI_UFM_VERSION */ uint_t ufmg_caps; /* UFM Caps */ - char ufmg_devpath[MAXPATHLEN]; + char ufmg_devpath[MAXPATHLEN]; } ufm_ioc_getcaps_t; /* @@ -74,7 +74,7 @@ typedef struct ufm_ioc_getcaps { * to allocate a sufficiently size buffer for the UFM_IOC_REPORT ioctl. */ typedef struct ufm_ioc_bufsz { - uint_t ufbz_version; /* DDI_UFM_VERSION */ + uint_t ufbz_version; /* DDI_UFM_VERSION */ size_t ufbz_size; /* sz of buf to be returned by ioctl */ char ufbz_devpath[MAXPATHLEN]; } ufm_ioc_bufsz_t; diff --git a/usr/src/uts/common/sys/ddi_ufm_impl.h b/usr/src/uts/common/sys/ddi_ufm_impl.h index 20e94ae894..49fd3b9246 100644 --- a/usr/src/uts/common/sys/ddi_ufm_impl.h +++ b/usr/src/uts/common/sys/ddi_ufm_impl.h @@ -48,7 +48,7 @@ struct ddi_ufm_slot { struct ddi_ufm_image { uint_t ufmi_imageno; - char *ufmi_desc; + char *ufmi_desc; nvlist_t *ufmi_misc; struct ddi_ufm_slot *ufmi_slots; uint_t ufmi_nslots; diff --git a/usr/src/uts/common/sys/scsi/adapters/mpt_sas/mptsas_var.h b/usr/src/uts/common/sys/scsi/adapters/mpt_sas/mptsas_var.h index 5b7a3f6442..4a3a0d72e5 100644 --- a/usr/src/uts/common/sys/scsi/adapters/mpt_sas/mptsas_var.h +++ b/usr/src/uts/common/sys/scsi/adapters/mpt_sas/mptsas_var.h @@ -63,6 +63,7 @@ #include <sys/sunmdi.h> #include <sys/mdi_impldefs.h> #include <sys/ddi_ufm.h> +#include <sys/scsi/adapters/mpt_sas/mptsas_hash.h> #include <sys/scsi/adapters/mpt_sas/mptsas_ioctl.h> #include <sys/scsi/adapters/mpt_sas/mpi/mpi2_tool.h> #include <sys/scsi/adapters/mpt_sas/mpi/mpi2_cnfg.h> diff --git a/usr/src/uts/intel/ufmtest/Makefile b/usr/src/uts/intel/ufmtest/Makefile index ee2b997f3c..3b4ea07f85 100644 --- a/usr/src/uts/intel/ufmtest/Makefile +++ b/usr/src/uts/intel/ufmtest/Makefile @@ -18,7 +18,7 @@ UTSBASE = ../.. MODULE = ufmtest OBJECTS = $(OBJS_DIR)/ufmtest.o LINTS = $(LINTS_DIR)/ufmtest.ln -ROOTMODULE = $(ROOT_DRV_DIR)/$(MODULE) +ROOTMODULE = $(USR_DRV_DIR)/$(MODULE) CONF_SRCDIR = $(UTSBASE)/common/io include $(UTSBASE)/intel/Makefile.intel diff --git a/usr/src/uts/sparc/Makefile.sparc b/usr/src/uts/sparc/Makefile.sparc index f2c885cd0c..7cc7f3b737 100644 --- a/usr/src/uts/sparc/Makefile.sparc +++ b/usr/src/uts/sparc/Makefile.sparc @@ -244,7 +244,6 @@ DRV_KMODS += dca DRV_KMODS += inotify DRV_KMODS += eventfd DRV_KMODS += signalfd -DRV_KMODS += timerfd DRV_KMODS += ufm DRV_KMODS += ufmtest diff --git a/usr/src/uts/sparc/ufmtest/Makefile b/usr/src/uts/sparc/ufmtest/Makefile index 3a39bb9eab..44827a5d96 100644 --- a/usr/src/uts/sparc/ufmtest/Makefile +++ b/usr/src/uts/sparc/ufmtest/Makefile @@ -18,7 +18,7 @@ UTSBASE = ../.. MODULE = ufmtest OBJECTS = $(OBJS_DIR)/ufmtest.o LINTS = $(LINTS_DIR)/ufmtest.ln -ROOTMODULE = $(ROOT_DRV_DIR)/$(MODULE) +ROOTMODULE = $(USR_DRV_DIR)/$(MODULE) CONF_SRCDIR = $(UTSBASE)/common/io include $(UTSBASE)/sparc/Makefile.sparc |
