summaryrefslogtreecommitdiff
path: root/usr/src
diff options
context:
space:
mode:
authorJerry Jelinek <jerry.jelinek@joyent.com>2018-05-15 11:54:15 +0000
committerJerry Jelinek <jerry.jelinek@joyent.com>2018-05-15 11:54:15 +0000
commit187b276d8e492a172d021a78b5c087647ad8a3dc (patch)
tree15e3a2f22d63ade9c16b4726f468a1753f74c66e /usr/src
parente847b91c79ac0a60cba1e1852929eb37e96cf21c (diff)
parent39df76fb09f8b2678db1cae82e66cd47f6930e4f (diff)
downloadillumos-joyent-187b276d8e492a172d021a78b5c087647ad8a3dc.tar.gz
[illumos-gate merge]
commit 39df76fb09f8b2678db1cae82e66cd47f6930e4f 9453 Include KPTI status in kernel boot messages commit bfcdb3d6fab8a8c00779b849f9f4505b2befd14d 9125 mdb's ::zfs_params needs updating commit 35f80dcb41f3a97bbb452a00537b4a72e7dc9996 7941 cannot use crypto lofi on a block/character device commit 3e8bfa75f73c9b5453b9ac29c9febcf211f061be 9274 loader: Make struct libi386_devdesc match the struct devdesc better commit 37367bbad5a7ff7127e57468cb6088cfca4bbd22 9095 ixgbe MAC_CAPAB_LED support commit 890c86716e81b6b22639ff07791007b82c26e6c5 9122 libstand: Consolidate tftp sendrecv into net.c sendrecv commit b8f90f25b92fc9ac25542c21076fda8ff8c6fa59 8931 boot1.efi: scan all display modes rather than sequential try-fail way commit 208e1562df6d45a86b71f40db0028ada4de4b56a 9502 expose thresholds as properties on sensor facility nodes commit bc0e4c28fd7055db02709c3af822f81959511c73 9400 avs: comparison between pointer and zero character constant commit de6ecd7f43e1627e7b738535c187ace8c2fd8f85 9239 mr_sas: this statement may fall through commit 6cd9fed7b76d776476aa3e2d7d235423dcbf1e56 9150 libfcoe: this statement may fall through commit 4e5127e8d53552c26604da7ec1d20e29b8196086 9273 loader.efi: We can't use d_opendata for blkio storage. commit e86c665f2e10cf29ac3b5f93b53c60bef762a690 9335 ficl: makesoftcore should be in tools commit 2c6e2b378f8445b330094f0316685e546585f44d 9520 list_link_replace(9f): Documentation does not match reality commit 71b76ee353d2a2effae389b51205465a42199e9d 9518 mdb conn_status doesn't do port byte order conversion Conflicts: usr/src/uts/common/io/ixgbe/ixgbe_gld.c usr/src/lib/fm/topo/modules/common/fac_prov_ipmi/fac_prov_ipmi.c
Diffstat (limited to 'usr/src')
-rw-r--r--usr/src/boot/lib/libstand/arp.c6
-rw-r--r--usr/src/boot/lib/libstand/bootp.c9
-rw-r--r--usr/src/boot/lib/libstand/net.c6
-rw-r--r--usr/src/boot/lib/libstand/net.h5
-rw-r--r--usr/src/boot/lib/libstand/rarp.c7
-rw-r--r--usr/src/boot/lib/libstand/rpc.c6
-rw-r--r--usr/src/boot/lib/libstand/tftp.c103
-rw-r--r--usr/src/boot/sys/boot/efi/boot1/boot1.c4
-rw-r--r--usr/src/boot/sys/boot/efi/libefi/efipart.c1
-rw-r--r--usr/src/boot/sys/boot/efi/loader/main.c3
-rw-r--r--usr/src/boot/sys/boot/ficl/softcore/Makefile28
-rw-r--r--usr/src/boot/sys/boot/i386/libi386/libi386.h7
-rw-r--r--usr/src/cmd/avs/rdc/sndrsyncd.c2
-rw-r--r--usr/src/cmd/lofiadm/main.c17
-rw-r--r--usr/src/cmd/mdb/common/modules/ip/ip.c8
-rw-r--r--usr/src/cmd/mdb/common/modules/zfs/zfs.c208
-rw-r--r--usr/src/lib/libfcoe/common/libfcoe.c5
-rw-r--r--usr/src/lib/libficl/softcore/Makefile24
-rw-r--r--usr/src/man/man9f/list_create.9f12
-rw-r--r--usr/src/tools/Makefile1
-rw-r--r--usr/src/tools/makesoftcore/Makefile42
-rw-r--r--usr/src/uts/common/io/ixgbe/ixgbe_gld.c9
-rw-r--r--usr/src/uts/common/io/mr_sas/mr_sas.c3
-rw-r--r--usr/src/uts/i86pc/os/mp_startup.c14
24 files changed, 322 insertions, 208 deletions
diff --git a/usr/src/boot/lib/libstand/arp.c b/usr/src/boot/lib/libstand/arp.c
index 22bd028df1..65e421d1bb 100644
--- a/usr/src/boot/lib/libstand/arp.c
+++ b/usr/src/boot/lib/libstand/arp.c
@@ -64,7 +64,7 @@ int arp_num = 1;
/* Local forwards */
static ssize_t arpsend(struct iodesc *, void *, size_t);
-static ssize_t arprecv(struct iodesc *, void **, void **, time_t);
+static ssize_t arprecv(struct iodesc *, void **, void **, time_t, void *);
/* Broadcast an ARP packet, asking who has addr on interface d */
u_char *
@@ -117,7 +117,7 @@ arpwhohas(struct iodesc *d, struct in_addr addr)
ah = NULL;
i = sendrecv(d,
arpsend, &wbuf.data, sizeof(wbuf.data),
- arprecv, &pkt, (void **)&ah);
+ arprecv, &pkt, (void **)&ah, NULL);
if (i == -1) {
panic("arp: no response for %s\n",
inet_ntoa(addr));
@@ -158,7 +158,7 @@ arpsend(struct iodesc *d, void *pkt, size_t len)
* else -1 (and errno == 0)
*/
static ssize_t
-arprecv(struct iodesc *d, void **pkt, void **payload, time_t tleft)
+arprecv(struct iodesc *d, void **pkt, void **payload, time_t tleft, void *extra)
{
ssize_t n;
struct ether_arp *ah;
diff --git a/usr/src/boot/lib/libstand/bootp.c b/usr/src/boot/lib/libstand/bootp.c
index 9afe9a301b..328a45f9b5 100644
--- a/usr/src/boot/lib/libstand/bootp.c
+++ b/usr/src/boot/lib/libstand/bootp.c
@@ -68,7 +68,7 @@ static char vm_cmu[4] = VM_CMU;
/* Local forwards */
static ssize_t bootpsend(struct iodesc *, void *, size_t);
-static ssize_t bootprecv(struct iodesc *, void **, void **, time_t);
+static ssize_t bootprecv(struct iodesc *, void **, void **, time_t, void *);
static int vend_rfc1048(u_char *, u_int);
#ifdef BOOTP_VEND_CMU
static void vend_cmu(u_char *);
@@ -177,7 +177,7 @@ bootp(int sock)
if(sendrecv(d,
bootpsend, bp, sizeof(*bp),
- bootprecv, &pkt, (void **)&rbootp) == -1) {
+ bootprecv, &pkt, (void **)&rbootp, NULL) == -1) {
printf("bootp: no reply\n");
return;
}
@@ -203,7 +203,7 @@ bootp(int sock)
free(pkt);
if(sendrecv(d,
bootpsend, bp, sizeof(*bp),
- bootprecv, &pkt, (void **)&rbootp) == -1) {
+ bootprecv, &pkt, (void **)&rbootp, NULL) == -1) {
printf("DHCPREQUEST failed\n");
return;
}
@@ -280,7 +280,8 @@ bootpsend(struct iodesc *d, void *pkt, size_t len)
}
static ssize_t
-bootprecv(struct iodesc *d, void **pkt, void **payload, time_t tleft)
+bootprecv(struct iodesc *d, void **pkt, void **payload, time_t tleft,
+ void *extra)
{
ssize_t n;
struct bootp *bp;
diff --git a/usr/src/boot/lib/libstand/net.c b/usr/src/boot/lib/libstand/net.c
index ea4c75b233..d8d46c4ec4 100644
--- a/usr/src/boot/lib/libstand/net.c
+++ b/usr/src/boot/lib/libstand/net.c
@@ -71,8 +71,8 @@ ssize_t
sendrecv(struct iodesc *d,
ssize_t (*sproc)(struct iodesc *, void *, size_t),
void *sbuf, size_t ssize,
- ssize_t (*rproc)(struct iodesc *, void **, void**, time_t),
- void **pkt, void **payload)
+ ssize_t (*rproc)(struct iodesc *, void **, void**, time_t, void *),
+ void **pkt, void **payload, void *recv_extra)
{
ssize_t cc;
time_t t, tmo, tlast;
@@ -115,7 +115,7 @@ sendrecv(struct iodesc *d,
}
/* Try to get a packet and process it. */
- cc = (*rproc)(d, pkt, payload, tleft);
+ cc = (*rproc)(d, pkt, payload, tleft, recv_extra);
/* Return on data, EOF or real error. */
if (cc != -1 || (errno != 0 && errno != ETIMEDOUT))
return (cc);
diff --git a/usr/src/boot/lib/libstand/net.h b/usr/src/boot/lib/libstand/net.h
index 733206ec92..99081a634a 100644
--- a/usr/src/boot/lib/libstand/net.h
+++ b/usr/src/boot/lib/libstand/net.h
@@ -112,8 +112,9 @@ ssize_t readudp(struct iodesc *, void **, void **, time_t);
ssize_t sendrecv(struct iodesc *,
ssize_t (*)(struct iodesc *, void *, size_t),
void *, size_t,
- ssize_t (*)(struct iodesc *, void **, void **, time_t),
- void **, void **);
+ ssize_t (*)(struct iodesc *, void **, void **, time_t,
+ void *),
+ void **, void **, void *);
/* bootp/DHCP */
void bootp(int);
diff --git a/usr/src/boot/lib/libstand/rarp.c b/usr/src/boot/lib/libstand/rarp.c
index 120b2c377f..7781787015 100644
--- a/usr/src/boot/lib/libstand/rarp.c
+++ b/usr/src/boot/lib/libstand/rarp.c
@@ -53,7 +53,7 @@
static ssize_t rarpsend(struct iodesc *, void *, size_t);
-static ssize_t rarprecv(struct iodesc *, void **, void **, time_t);
+static ssize_t rarprecv(struct iodesc *, void **, void **, time_t, void *);
/*
* Ethernet (Reverse) Address Resolution Protocol (see RFC 903, and 826).
@@ -98,7 +98,7 @@ rarp_getipaddress(int sock)
if (sendrecv(d,
rarpsend, &wbuf.data, sizeof(wbuf.data),
- rarprecv, &pkt, (void *)&ap) < 0) {
+ rarprecv, &pkt, (void *)&ap, NULL) < 0) {
printf("No response for RARP request\n");
return (-1);
}
@@ -142,7 +142,8 @@ rarpsend(struct iodesc *d, void *pkt, size_t len)
* else -1 (and errno == 0)
*/
static ssize_t
-rarprecv(struct iodesc *d, void **pkt, void **payload, time_t tleft)
+rarprecv(struct iodesc *d, void **pkt, void **payload, time_t tleft,
+ void *extra)
{
ssize_t n;
struct ether_arp *ap;
diff --git a/usr/src/boot/lib/libstand/rpc.c b/usr/src/boot/lib/libstand/rpc.c
index 0923739441..b843535552 100644
--- a/usr/src/boot/lib/libstand/rpc.c
+++ b/usr/src/boot/lib/libstand/rpc.c
@@ -96,7 +96,7 @@ struct rpc_reply {
};
/* Local forwards */
-static ssize_t recvrpc(struct iodesc *, void **, void **, time_t);
+static ssize_t recvrpc(struct iodesc *, void **, void **, time_t, void *);
static int rpc_getport(struct iodesc *, n_long, n_long);
int rpc_xid;
@@ -166,7 +166,7 @@ rpc_call(struct iodesc *d, n_long prog, n_long vers, n_long proc,
ptr = NULL;
cc = sendrecv(d,
sendudp, send_head, send_tail - send_head,
- recvrpc, &ptr, (void **)&reply);
+ recvrpc, &ptr, (void **)&reply, NULL);
#ifdef RPC_DEBUG
if (debug)
@@ -216,7 +216,7 @@ rpc_call(struct iodesc *d, n_long prog, n_long vers, n_long proc,
* Remaining checks are done by callrpc
*/
static ssize_t
-recvrpc(struct iodesc *d, void **pkt, void **payload, time_t tleft)
+recvrpc(struct iodesc *d, void **pkt, void **payload, time_t tleft, void *extra)
{
void *ptr;
struct rpc_reply *reply;
diff --git a/usr/src/boot/lib/libstand/tftp.c b/usr/src/boot/lib/libstand/tftp.c
index c1ce0e3b80..e235f8a537 100644
--- a/usr/src/boot/lib/libstand/tftp.c
+++ b/usr/src/boot/lib/libstand/tftp.c
@@ -60,7 +60,10 @@
#include "tftp.h"
struct tftp_handle;
+struct tftprecv_extra;
+static ssize_t recvtftp(struct iodesc *d, void **pkt, void **payload,
+ time_t tleft, void *recv_extra);
static int tftp_open(const char *path, struct open_file *f);
static int tftp_close(struct open_file *f);
static int tftp_parse_oack(struct tftp_handle *h, char *buf, size_t len);
@@ -68,11 +71,6 @@ static int tftp_read(struct open_file *f, void *buf, size_t size, size_t *resid)
static off_t tftp_seek(struct open_file *f, off_t offset, int where);
static int tftp_set_blksize(struct tftp_handle *h, const char *str);
static int tftp_stat(struct open_file *f, struct stat *sb);
-static ssize_t sendrecv_tftp(struct tftp_handle *h,
- ssize_t (*sproc)(struct iodesc *, void *, size_t),
- void *sbuf, size_t ssize,
- ssize_t (*rproc)(struct tftp_handle *h, void **, void **, time_t, unsigned short *),
- void **, void **, unsigned short *rtype);
struct fs_ops tftp_fsops = {
"tftp",
@@ -116,6 +114,11 @@ struct tftp_handle {
struct tftphdr *tftp_hdr;
};
+struct tftprecv_extra {
+ struct tftp_handle *tftp_handle;
+ unsigned short rtype; /* Received type */
+};
+
#define TFTP_MAX_ERRCODE EOPTNEG
static const int tftperrors[TFTP_MAX_ERRCODE + 1] = {
0, /* ??? */
@@ -176,15 +179,18 @@ tftp_sendack(struct tftp_handle *h)
}
static ssize_t
-recvtftp(struct tftp_handle *h, void **pkt, void **payload, time_t tleft,
- unsigned short *rtype)
+recvtftp(struct iodesc *d, void **pkt, void **payload, time_t tleft,
+ void *recv_extra)
{
- struct iodesc *d = h->iodesc;
+ struct tftprecv_extra *extra;
+ struct tftp_handle *h;
struct tftphdr *t;
void *ptr = NULL;
ssize_t len;
errno = 0;
+ extra = (struct tftprecv_extra *)recv_extra;
+ h = extra->tftp_handle;
len = readudp(d, &ptr, (void **)&t, tleft);
@@ -193,7 +199,7 @@ recvtftp(struct tftp_handle *h, void **pkt, void **payload, time_t tleft,
return (-1);
}
- *rtype = ntohs(t->th_opcode);
+ extra->rtype = ntohs(t->th_opcode);
switch (ntohs(t->th_opcode)) {
case DATA: {
int got;
@@ -280,6 +286,7 @@ tftp_makereq(struct tftp_handle *h)
struct tftphdr t;
u_char space[FNAME_SIZE + 6];
} __packed __aligned(4) wbuf;
+ struct tftprecv_extra recv_extra;
char *wtail;
int l;
ssize_t res;
@@ -287,7 +294,6 @@ tftp_makereq(struct tftp_handle *h)
struct tftphdr *t;
char *tftp_blksize = NULL;
int blksize_l;
- unsigned short rtype = 0;
/*
* Allow overriding default TFTP block size by setting
@@ -332,8 +338,9 @@ tftp_makereq(struct tftp_handle *h)
h->validsize = 0;
pkt = NULL;
- res = sendrecv_tftp(h, &sendudp, &wbuf.t, wtail - (char *) &wbuf.t,
- &recvtftp, &pkt, (void **)&t, &rtype);
+ recv_extra.tftp_handle = h;
+ res = sendrecv(h->iodesc, &sendudp, &wbuf.t, wtail - (char *) &wbuf.t,
+ &recvtftp, &pkt, (void **)&t, &recv_extra);
if (res == -1) {
free(pkt);
return (errno);
@@ -343,13 +350,13 @@ tftp_makereq(struct tftp_handle *h)
h->pkt = pkt;
h->tftp_hdr = t;
- if (rtype == OACK)
+ if (recv_extra.rtype == OACK)
return (tftp_getnextblock(h));
/* Server ignored our blksize request, revert to TFTP default. */
h->tftp_blksize = SEGSIZE;
- switch (rtype) {
+ switch (recv_extra.rtype) {
case DATA: {
h->currblock = 1;
h->validsize = res;
@@ -375,11 +382,11 @@ tftp_getnextblock(struct tftp_handle *h)
u_char header[HEADER_SIZE];
struct tftphdr t;
} __packed __aligned(4) wbuf;
+ struct tftprecv_extra recv_extra;
char *wtail;
int res;
void *pkt;
struct tftphdr *t;
- unsigned short rtype = 0;
wbuf.t.th_opcode = htons((u_short) ACK);
wtail = (char *) &wbuf.t.th_block;
wbuf.t.th_block = htons((u_short) h->currblock);
@@ -388,8 +395,9 @@ tftp_getnextblock(struct tftp_handle *h)
h->iodesc->xid = h->currblock + 1; /* expected block */
pkt = NULL;
- res = sendrecv_tftp(h, &sendudp, &wbuf.t, wtail - (char *) &wbuf.t,
- &recvtftp, &pkt, (void **)&t, &rtype);
+ recv_extra.tftp_handle = h;
+ res = sendrecv(h->iodesc, &sendudp, &wbuf.t, wtail - (char *) &wbuf.t,
+ &recvtftp, &pkt, (void **)&t, &recv_extra);
if (res == -1) { /* 0 is OK! */
free(pkt);
@@ -596,67 +604,6 @@ tftp_seek(struct open_file *f, off_t offset, int where)
return (tftpfile->off);
}
-static ssize_t
-sendrecv_tftp(struct tftp_handle *h,
- ssize_t (*sproc)(struct iodesc *, void *, size_t),
- void *sbuf, size_t ssize,
- ssize_t (*rproc)(struct tftp_handle *, void **, void **, time_t,
- unsigned short *),
- void **pkt, void **payload, unsigned short *rtype)
-{
- struct iodesc *d = h->iodesc;
- ssize_t cc;
- time_t t, t1, tleft;
-
-#ifdef TFTP_DEBUG
- if (debug)
- printf("sendrecv: called\n");
-#endif
-
- tleft = MINTMO;
- t = t1 = getsecs();
- for (;;) {
- if ((getsecs() - t) > MAXTMO) {
- errno = ETIMEDOUT;
- return -1;
- }
-
- cc = (*sproc)(d, sbuf, ssize);
- if (cc != -1 && cc < ssize)
- panic("sendrecv: short write! (%zd < %zu)",
- cc, ssize);
-
- if (cc == -1) {
- /* Error on transmit; wait before retrying */
- while ((getsecs() - t1) < tleft);
- t1 = getsecs();
- continue;
- }
-
- t = t1 = getsecs();
-recvnext:
- if ((getsecs() - t) > MAXTMO) {
- errno = ETIMEDOUT;
- return (-1);
- }
- /* Try to get a packet and process it. */
- cc = (*rproc)(h, pkt, payload, tleft, rtype);
- /* Return on data, EOF or real error. */
- if (cc != -1 || (errno != 0 && errno != ETIMEDOUT))
- return (cc);
- if ((getsecs() - t1) < tleft) {
- goto recvnext;
- }
-
- /* Timed out or didn't get the packet we're waiting for */
- tleft += MINTMO;
- if (tleft > (2 * MINTMO)) {
- tleft = (2 * MINTMO);
- }
- t1 = getsecs();
- }
-}
-
static int
tftp_set_blksize(struct tftp_handle *h, const char *str)
{
diff --git a/usr/src/boot/sys/boot/efi/boot1/boot1.c b/usr/src/boot/sys/boot/efi/boot1/boot1.c
index 9c3e11263f..f2159d95ab 100644
--- a/usr/src/boot/sys/boot/efi/boot1/boot1.c
+++ b/usr/src/boot/sys/boot/efi/boot1/boot1.c
@@ -597,10 +597,10 @@ efi_main(EFI_HANDLE Ximage, EFI_SYSTEM_TABLE *Xsystab)
conout = ST->ConOut;
conout->Reset(conout, TRUE);
max_dim = best_mode = 0;
- for (i = 0; ; i++) {
+ for (i = 0; i < conout->Mode->MaxMode; i++) {
status = conout->QueryMode(conout, i, &cols, &rows);
if (EFI_ERROR(status))
- break;
+ continue;
if (cols * rows > max_dim) {
max_dim = cols * rows;
best_mode = i;
diff --git a/usr/src/boot/sys/boot/efi/libefi/efipart.c b/usr/src/boot/sys/boot/efi/libefi/efipart.c
index 1cad45b11c..86545cbab2 100644
--- a/usr/src/boot/sys/boot/efi/libefi/efipart.c
+++ b/usr/src/boot/sys/boot/efi/libefi/efipart.c
@@ -747,7 +747,6 @@ efipart_print_common(struct devsw *dev, pdinfo_list_t *pdlist, int verbose)
pd_dev.d_unit = pd->pd_unit;
pd_dev.d_slice = -1;
pd_dev.d_partition = -1;
- pd_dev.d_opendata = blkio;
ret = disk_open(&pd_dev, blkio->Media->BlockSize *
(blkio->Media->LastBlock + 1),
blkio->Media->BlockSize);
diff --git a/usr/src/boot/sys/boot/efi/loader/main.c b/usr/src/boot/sys/boot/efi/loader/main.c
index 1113ac6f4a..1e2939e507 100644
--- a/usr/src/boot/sys/boot/efi/loader/main.c
+++ b/usr/src/boot/sys/boot/efi/loader/main.c
@@ -163,7 +163,6 @@ set_devdesc_currdev(struct devsw *dev, int unit)
currdev.d_dev = dev;
currdev.d_type = currdev.d_dev->dv_type;
currdev.d_unit = unit;
- currdev.d_opendata = NULL;
devname = efi_fmtdev(&currdev);
env_setenv("currdev", EV_VOLATILE, devname, efi_setcurrdev,
@@ -190,7 +189,6 @@ find_currdev(EFI_LOADED_IMAGE *img)
currdev.d_dev = &zfs_dev;
currdev.d_unit = 0;
currdev.d_type = currdev.d_dev->dv_type;
- currdev.d_opendata = NULL;
currdev.pool_guid = pool_guid;
currdev.root_guid = 0;
devname = efi_fmtdev(&currdev);
@@ -210,7 +208,6 @@ find_currdev(EFI_LOADED_IMAGE *img)
currdev.d_dev = &efipart_hddev;
currdev.d_type = currdev.d_dev->dv_type;
currdev.d_unit = dp->pd_unit;
- currdev.d_opendata = NULL;
currdev.d_slice = -1;
currdev.d_partition = -1;
diff --git a/usr/src/boot/sys/boot/ficl/softcore/Makefile b/usr/src/boot/sys/boot/ficl/softcore/Makefile
index 92ec77324f..7b42031180 100644
--- a/usr/src/boot/sys/boot/ficl/softcore/Makefile
+++ b/usr/src/boot/sys/boot/ficl/softcore/Makefile
@@ -10,13 +10,15 @@
#
#
-# Copyright 2016 Toomas Soome <tsoome@me.com>
+# Copyright 2018 Toomas Soome <tsoome@me.com>
#
-include $(SRC)/tools/Makefile.tools
+include $(SRC)/Makefile.master
+
+install all: softcore.c
SOFTCORE= $(SRC)/common/ficl/softcore
-PROG = makesoftcore
+PROG= $(ONBLD_TOOLS)/bin/$(MACH)/makesoftcore
#
# not needed: file access
@@ -25,22 +27,8 @@ FR = softcore.fr ifbrack.fr prefix.fr ficl.fr jhlocal.fr marker.fr
FR += freebsd.fr ficllocal.fr oo.fr classes.fr string.fr wordsets.fr
SOURCES= $(FR:%=$(SOFTCORE)/%)
-OBJS= makesoftcore.o lz4.o
-SRCS= makesoftcore.c lz4.c
-LDLIBS= -lumem
-
-CPPFLAGS += -I.. -I$(SRC)/common/ficl
-
-all: softcore.c
-
-softcore.c: $(PROG) $(SOURCES)
- ./$(PROG) $(SOURCES)
-
-$(PROG): $(OBJS)
- $(LINK.c) -o $@ $(OBJS) $(LDLIBS)
-
-%.o: $(SOFTCORE)/%.c
- $(COMPILE.c) $<
+softcore.c: $(SOURCES)
+ $(PROG) $(SOURCES)
clobber clean:
- $(RM) softcore.c $(OBJS) $(PROG)
+ $(RM) softcore.c
diff --git a/usr/src/boot/sys/boot/i386/libi386/libi386.h b/usr/src/boot/sys/boot/i386/libi386/libi386.h
index 65bbd9b5d8..f5106bd8f5 100644
--- a/usr/src/boot/sys/boot/i386/libi386/libi386.h
+++ b/usr/src/boot/sys/boot/i386/libi386/libi386.h
@@ -37,22 +37,17 @@ struct i386_devdesc {
struct devsw *d_dev;
int d_type;
int d_unit;
+ void *d_opendata;
union
{
struct
{
- void *data;
int slice;
int partition;
off_t offset;
} biosdisk;
struct
{
- void *data;
- } bioscd;
- struct
- {
- void *data;
uint64_t pool_guid;
uint64_t root_guid;
} zfs;
diff --git a/usr/src/cmd/avs/rdc/sndrsyncd.c b/usr/src/cmd/avs/rdc/sndrsyncd.c
index 5454a65038..5f2c56d1b1 100644
--- a/usr/src/cmd/avs/rdc/sndrsyncd.c
+++ b/usr/src/cmd/avs/rdc/sndrsyncd.c
@@ -1020,7 +1020,7 @@ cleanup_hostlist(rdc_status_t *rdc_info)
if (!rdc_info->rdc_set[j].flags & RDC_ENABLED)
continue;
if ((!host_list->configured[i]) ||
- (host_list->hosts[i] == '\0')) {
+ (host_list->hosts[i] == NULL)) {
(void) mutex_unlock(&host_list->hosts_mutex);
return;
}
diff --git a/usr/src/cmd/lofiadm/main.c b/usr/src/cmd/lofiadm/main.c
index 87c6435386..6ed5b49050 100644
--- a/usr/src/cmd/lofiadm/main.c
+++ b/usr/src/cmd/lofiadm/main.c
@@ -40,6 +40,7 @@
#include <sys/lofi.h>
#include <sys/stat.h>
#include <sys/sysmacros.h>
+#include <sys/modctl.h>
#include <netinet/in.h>
#include <stdio.h>
#include <fcntl.h>
@@ -302,8 +303,22 @@ name_to_minor(const char *devicename)
return (0);
}
+ /*
+ * For disk devices we use modctl(MODGETNAME) to read driver name
+ * for major device.
+ */
if (st.st_mode & S_IFCHR || st.st_mode & S_IFBLK) {
- return (LOFI_MINOR2ID(minor(st.st_rdev)));
+ major_t maj;
+ char mname[MODMAXNAMELEN];
+
+ maj = major(st.st_rdev);
+
+ if (modctl(MODGETNAME, mname, MODMAXNAMELEN, &maj) == 0) {
+ if (strncmp(mname, LOFI_DRIVER_NAME,
+ sizeof (LOFI_DRIVER_NAME)) == 0) {
+ return (LOFI_MINOR2ID(minor(st.st_rdev)));
+ }
+ }
}
return (0);
diff --git a/usr/src/cmd/mdb/common/modules/ip/ip.c b/usr/src/cmd/mdb/common/modules/ip/ip.c
index d620bc6a94..d79347cde2 100644
--- a/usr/src/cmd/mdb/common/modules/ip/ip.c
+++ b/usr/src/cmd/mdb/common/modules/ip/ip.c
@@ -3043,14 +3043,14 @@ conn_status_walk_step(mdb_walk_state_t *wsp)
/* ARGSUSED */
static int
-conn_status_cb(uintptr_t addr, const void *walk_data,
- void *private)
+conn_status_cb(uintptr_t addr, const void *walk_data, void *private)
{
netstack_t nss;
char src_addrstr[INET6_ADDRSTRLEN];
char rem_addrstr[INET6_ADDRSTRLEN];
const ipcl_hash_walk_data_t *iw = walk_data;
conn_t c, *conn = &c;
+ in_port_t lport, fport;
if (iw != NULL)
conn = iw->conn;
@@ -3078,8 +3078,10 @@ conn_status_cb(uintptr_t addr, const void *walk_data,
mdb_snprintf(rem_addrstr, sizeof (rem_addrstr), "%I",
V4_PART_OF_V6((conn->conn_faddr_v6)));
}
+ mdb_nhconvert(&lport, &conn->conn_lport, sizeof (lport));
+ mdb_nhconvert(&fport, &conn->conn_fport, sizeof (fport));
mdb_printf("%s:%-5d\n%s:%-5d\n",
- src_addrstr, conn->conn_lport, rem_addrstr, conn->conn_fport);
+ src_addrstr, lport, rem_addrstr, fport);
return (WALK_NEXT);
}
diff --git a/usr/src/cmd/mdb/common/modules/zfs/zfs.c b/usr/src/cmd/mdb/common/modules/zfs/zfs.c
index ad66d688ea..fd8897b03a 100644
--- a/usr/src/cmd/mdb/common/modules/zfs/zfs.c
+++ b/usr/src/cmd/mdb/common/modules/zfs/zfs.c
@@ -399,63 +399,183 @@ zfs_params(uintptr_t addr, uint_t flags, int argc, const mdb_arg_t *argv)
* egrep "^[a-z0-9_]+ [a-z0-9_]+( =.*)?;" *.c | cut -d ' ' -f 2
*/
static const char *params[] = {
- "arc_reduce_dnlc_percent",
"arc_lotsfree_percent",
- "zfs_dirty_data_max",
- "zfs_dirty_data_sync",
- "zfs_delay_max_ns",
- "zfs_delay_min_dirty_percent",
- "zfs_delay_scale",
- "zfs_vdev_max_active",
- "zfs_vdev_sync_read_min_active",
- "zfs_vdev_sync_read_max_active",
- "zfs_vdev_sync_write_min_active",
- "zfs_vdev_sync_write_max_active",
- "zfs_vdev_async_read_min_active",
- "zfs_vdev_async_read_max_active",
- "zfs_vdev_async_write_min_active",
- "zfs_vdev_async_write_max_active",
- "zfs_vdev_scrub_min_active",
- "zfs_vdev_scrub_max_active",
- "zfs_vdev_async_write_active_min_dirty_percent",
- "zfs_vdev_async_write_active_max_dirty_percent",
+ "arc_pages_pp_reserve",
+ "arc_reduce_dnlc_percent",
+ "arc_swapfs_reserve",
+ "arc_zio_arena_free_shift",
+ "dbuf_cache_hiwater_pct",
+ "dbuf_cache_lowater_pct",
+ "dbuf_cache_max_bytes",
+ "dbuf_cache_max_shift",
+ "ddt_zap_indirect_blockshift",
+ "ddt_zap_leaf_blockshift",
+ "ditto_same_vdev_distance_shift",
+ "dmu_find_threads",
+ "dmu_rescan_dnode_threshold",
+ "dsl_scan_delay_completion",
+ "fzap_default_block_shift",
+ "l2arc_feed_again",
+ "l2arc_feed_min_ms",
+ "l2arc_feed_secs",
+ "l2arc_headroom",
+ "l2arc_headroom_boost",
+ "l2arc_noprefetch",
+ "l2arc_norw",
+ "l2arc_write_boost",
+ "l2arc_write_max",
+ "metaslab_aliquot",
+ "metaslab_bias_enabled",
+ "metaslab_debug_load",
+ "metaslab_debug_unload",
+ "metaslab_df_alloc_threshold",
+ "metaslab_df_free_pct",
+ "metaslab_fragmentation_factor_enabled",
+ "metaslab_force_ganging",
+ "metaslab_lba_weighting_enabled",
+ "metaslab_load_pct",
+ "metaslab_min_alloc_size",
+ "metaslab_ndf_clump_shift",
+ "metaslab_preload_enabled",
+ "metaslab_preload_limit",
+ "metaslab_trace_enabled",
+ "metaslab_trace_max_entries",
+ "metaslab_unload_delay",
+ "metaslabs_per_vdev",
+ "reference_history",
+ "reference_tracking_enable",
+ "send_holes_without_birth_time",
"spa_asize_inflation",
+ "spa_load_verify_data",
+ "spa_load_verify_maxinflight",
+ "spa_load_verify_metadata",
+ "spa_max_replication_override",
+ "spa_min_slop",
+ "spa_mode_global",
+ "spa_slop_shift",
+ "space_map_blksz",
+ "vdev_mirror_shift",
+ "zfetch_max_distance",
+ "zfs_abd_chunk_size",
+ "zfs_abd_scatter_enabled",
+ "zfs_arc_average_blocksize",
+ "zfs_arc_evict_batch_limit",
+ "zfs_arc_grow_retry",
"zfs_arc_max",
+ "zfs_arc_meta_limit",
+ "zfs_arc_meta_min",
"zfs_arc_min",
- "arc_shrink_shift",
- "zfs_mdcomp_disable",
- "zfs_prefetch_disable",
- "zfetch_max_streams",
- "zfetch_min_sec_reap",
- "zfetch_block_cap",
- "zfetch_array_rd_sz",
+ "zfs_arc_p_min_shift",
+ "zfs_arc_shrink_shift",
+ "zfs_async_block_max_blocks",
+ "zfs_ccw_retry_interval",
+ "zfs_commit_timeout_pct",
+ "zfs_compressed_arc_enabled",
+ "zfs_condense_indirect_commit_entry_delay_ticks",
+ "zfs_condense_indirect_vdevs_enable",
+ "zfs_condense_max_obsolete_bytes",
+ "zfs_condense_min_mapping_bytes",
+ "zfs_condense_pct",
+ "zfs_dbgmsg_maxsize",
+ "zfs_deadman_checktime_ms",
+ "zfs_deadman_enabled",
+ "zfs_deadman_synctime_ms",
+ "zfs_dedup_prefetch",
"zfs_default_bs",
"zfs_default_ibs",
- "metaslab_aliquot",
- "reference_tracking_enable",
- "reference_history",
- "spa_max_replication_override",
- "spa_mode_global",
+ "zfs_delay_max_ns",
+ "zfs_delay_min_dirty_percent",
+ "zfs_delay_resolution_ns",
+ "zfs_delay_scale",
+ "zfs_dirty_data_max",
+ "zfs_dirty_data_max_max",
+ "zfs_dirty_data_max_percent",
+ "zfs_dirty_data_sync",
"zfs_flags",
- "zfs_txg_timeout",
- "zfs_vdev_cache_max",
- "zfs_vdev_cache_size",
- "zfs_vdev_cache_bshift",
- "vdev_mirror_shift",
- "zfs_scrub_limit",
+ "zfs_free_bpobj_enabled",
+ "zfs_free_leak_on_eio",
+ "zfs_free_min_time_ms",
+ "zfs_fsync_sync_cnt",
+ "zfs_immediate_write_sz",
+ "zfs_indirect_condense_obsolete_pct",
+ "zfs_lua_check_instrlimit_interval",
+ "zfs_lua_max_instrlimit",
+ "zfs_lua_max_memlimit",
+ "zfs_max_recordsize",
+ "zfs_mdcomp_disable",
+ "zfs_metaslab_condense_block_threshold",
+ "zfs_metaslab_fragmentation_threshold",
+ "zfs_metaslab_segment_weight_enabled",
+ "zfs_metaslab_switch_threshold",
+ "zfs_mg_fragmentation_threshold",
+ "zfs_mg_noalloc_threshold",
+ "zfs_multilist_num_sublists",
"zfs_no_scrub_io",
"zfs_no_scrub_prefetch",
- "zfs_vdev_aggregation_limit",
- "fzap_default_block_shift",
- "zfs_immediate_write_sz",
- "zfs_read_chunk_size",
"zfs_nocacheflush",
+ "zfs_nopwrite_enabled",
+ "zfs_object_remap_one_indirect_delay_ticks",
+ "zfs_obsolete_min_time_ms",
+ "zfs_pd_bytes_max",
+ "zfs_per_txg_dirty_frees_percent",
+ "zfs_prefetch_disable",
+ "zfs_read_chunk_size",
+ "zfs_recover",
+ "zfs_recv_queue_length",
+ "zfs_redundant_metadata_most_ditto_level",
+ "zfs_remap_blkptr_enable",
+ "zfs_remove_max_copy_bytes",
+ "zfs_remove_max_segment",
+ "zfs_resilver_delay",
+ "zfs_resilver_min_time_ms",
+ "zfs_scan_idle",
+ "zfs_scan_min_time_ms",
+ "zfs_scrub_delay",
+ "zfs_scrub_limit",
+ "zfs_send_corrupt_data",
+ "zfs_send_queue_length",
+ "zfs_send_set_freerecords_bit",
+ "zfs_sync_pass_deferred_free",
+ "zfs_sync_pass_dont_compress",
+ "zfs_sync_pass_rewrite",
+ "zfs_sync_taskq_batch_pct",
+ "zfs_top_maxinflight",
+ "zfs_txg_timeout",
+ "zfs_vdev_aggregation_limit",
+ "zfs_vdev_async_read_max_active",
+ "zfs_vdev_async_read_min_active",
+ "zfs_vdev_async_write_active_max_dirty_percent",
+ "zfs_vdev_async_write_active_min_dirty_percent",
+ "zfs_vdev_async_write_max_active",
+ "zfs_vdev_async_write_min_active",
+ "zfs_vdev_cache_bshift",
+ "zfs_vdev_cache_max",
+ "zfs_vdev_cache_size",
+ "zfs_vdev_max_active",
+ "zfs_vdev_queue_depth_pct",
+ "zfs_vdev_read_gap_limit",
+ "zfs_vdev_removal_max_active",
+ "zfs_vdev_removal_min_active",
+ "zfs_vdev_scrub_max_active",
+ "zfs_vdev_scrub_min_active",
+ "zfs_vdev_sync_read_max_active",
+ "zfs_vdev_sync_read_min_active",
+ "zfs_vdev_sync_write_max_active",
+ "zfs_vdev_sync_write_min_active",
+ "zfs_vdev_write_gap_limit",
+ "zfs_write_implies_delete_child",
+ "zfs_zil_clean_taskq_maxalloc",
+ "zfs_zil_clean_taskq_minalloc",
+ "zfs_zil_clean_taskq_nthr_pct",
"zil_replay_disable",
- "metaslab_force_ganging",
- "metaslab_df_alloc_threshold",
- "metaslab_df_free_pct",
+ "zil_slog_bulk",
+ "zio_buf_debug_limit",
+ "zio_dva_throttle_enabled",
"zio_injection_enabled",
"zvol_immediate_write_sz",
+ "zvol_maxphys",
+ "zvol_unmap_enabled",
+ "zvol_unmap_sync_enabled",
};
for (int i = 0; i < sizeof (params) / sizeof (params[0]); i++) {
diff --git a/usr/src/lib/libfcoe/common/libfcoe.c b/usr/src/lib/libfcoe/common/libfcoe.c
index 6e10527046..d9b5720911 100644
--- a/usr/src/lib/libfcoe/common/libfcoe.c
+++ b/usr/src/lib/libfcoe/common/libfcoe.c
@@ -74,7 +74,8 @@ openFcoe(int flag, int *fd)
}
static void
-WWN2str(char *buf, FCOE_PORT_WWN *wwn) {
+WWN2str(char *buf, FCOE_PORT_WWN *wwn)
+{
int j;
unsigned char *pc = (unsigned char *)&(wwn->wwn[0]);
buf[0] = '\0';
@@ -769,6 +770,8 @@ FCOE_GetPortList(
case FCOEIOE_MORE_DATA:
status = FCOE_STATUS_ERROR_MORE_DATA;
retry++;
+ break;
+
default:
status = FCOE_STATUS_ERROR;
(void) close(fcoe_fd);
diff --git a/usr/src/lib/libficl/softcore/Makefile b/usr/src/lib/libficl/softcore/Makefile
index 7d62e1ba32..7b42031180 100644
--- a/usr/src/lib/libficl/softcore/Makefile
+++ b/usr/src/lib/libficl/softcore/Makefile
@@ -10,15 +10,15 @@
#
#
-# Copyright 2016 Toomas Soome <tsoome@me.com>
+# Copyright 2018 Toomas Soome <tsoome@me.com>
#
-include $(SRC)/tools/Makefile.tools
+include $(SRC)/Makefile.master
install all: softcore.c
SOFTCORE= $(SRC)/common/ficl/softcore
-PROG = makesoftcore
+PROG= $(ONBLD_TOOLS)/bin/$(MACH)/makesoftcore
#
# not needed: file access
@@ -27,20 +27,8 @@ FR = softcore.fr ifbrack.fr prefix.fr ficl.fr jhlocal.fr marker.fr
FR += freebsd.fr ficllocal.fr oo.fr classes.fr string.fr wordsets.fr
SOURCES= $(FR:%=$(SOFTCORE)/%)
-OBJS= makesoftcore.o lz4.o
-SRCS= makesoftcore.c lz4.c
-LDLIBS= -lumem
-
-CPPFLAGS += -I.. -I$(SRC)/common/ficl
-
-softcore.c: $(PROG) $(SOURCES)
- ./$(PROG) $(SOURCES)
-
-$(PROG): $(OBJS)
- $(LINK.c) -o $@ $(OBJS) $(LDLIBS)
-
-%.o: $(SOFTCORE)/%.c
- $(COMPILE.c) $<
+softcore.c: $(SOURCES)
+ $(PROG) $(SOURCES)
clobber clean:
- $(RM) softcore.c $(OBJS) $(PROG)
+ $(RM) softcore.c
diff --git a/usr/src/man/man9f/list_create.9f b/usr/src/man/man9f/list_create.9f
index 920d2bdac8..94d1866490 100644
--- a/usr/src/man/man9f/list_create.9f
+++ b/usr/src/man/man9f/list_create.9f
@@ -3,7 +3,7 @@
.\" The contents of this file are subject to the terms of the Common Development and Distribution License (the "License"). You may not use this file except in compliance with the License. You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing.
.\" See the License for the specific language governing permissions and limitations under the License. When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE. If applicable, add the following below this CDDL HEADER, with
.\" the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
-.TH LIST_CREATE 9F "Sep 17, 2009"
+.TH LIST_CREATE 9F "May 3, 2018"
.SH NAME
list_create, list_destroy, list_insert_after, list_insert_before,
list_insert_head, list_insert_tail, list_remove, list_remove_head,
@@ -102,7 +102,7 @@ functions
.LP
.nf
-\fBvoid\fR \fBlist_link_replace\fR(\fBlist_node_t *\fR\fInode1\fR, \fBlist_node_t *\fR\fInode2\fR);
+\fBvoid\fR \fBlist_link_replace\fR(\fBlist_node_t *\fR\fIlold\fR, \fBlist_node_t *\fR\fIlnew\fR);
.fi
.SH DESCRIPTION
@@ -191,10 +191,10 @@ lists were initialized using identical size and offset parameters. Upon
completion, the \fIsrc\fR list will be empty.
.sp
.LP
-The \fBlist_link_replace()\fR function swaps two items on a list. Note that
-the items need not be on the same list, but extreme care must be used to ensure
-that both lists are protected from concurrent accesses and that the lists were
-initialized with identical size and offset parameters.
+The \fBlist_link_replace()\fR function replaces \fIlold\fR node on an active
+list with the \fIlnew\fR node. When the function is called the \fIlnew\fR node
+must not be linked on any list. Upon completion the \fIlold\fR node will be
+left unlinked from any list.
.SH ATTRIBUTES
.LP
See \fBattributes\fR(5) for descriptions of the following attributes:
diff --git a/usr/src/tools/Makefile b/usr/src/tools/Makefile
index 967c4f6906..b3ce7df21b 100644
--- a/usr/src/tools/Makefile
+++ b/usr/src/tools/Makefile
@@ -48,6 +48,7 @@ COMMON_SUBDIRS= \
findunref \
lintdump \
make \
+ makesoftcore \
ndrgen \
onbld \
protocmp \
diff --git a/usr/src/tools/makesoftcore/Makefile b/usr/src/tools/makesoftcore/Makefile
new file mode 100644
index 0000000000..c30ddacd14
--- /dev/null
+++ b/usr/src/tools/makesoftcore/Makefile
@@ -0,0 +1,42 @@
+#
+# 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 2018 Toomas Soome <tsoome@me.com>
+#
+
+include ../Makefile.tools
+
+SOFTCORE= $(SRC)/common/ficl/softcore
+PROG= makesoftcore
+
+CPPFLAGS += -I$(SRC)/lib/libficl -I$(SRC)/common/ficl
+OBJS= makesoftcore.o lz4.o
+SRCS= makesoftcore.c lz4.c
+LDLIBS= -lumem
+
+.KEEP_STATE:
+
+all: $(PROG)
+
+install: all .WAIT $(ROOTONBLDMACHPROG)
+
+clean:
+ $(RM) $(PROG) $(OBJS)
+
+$(PROG): $(OBJS)
+ $(LINK.c) $(OBJS) -o $@ $(LDLIBS)
+ $(POST_PROCESS)
+
+%.o: $(SOFTCORE)/%.c
+ $(COMPILE.c) -o $@ $<
+
+include ../Makefile.targ
diff --git a/usr/src/uts/common/io/ixgbe/ixgbe_gld.c b/usr/src/uts/common/io/ixgbe/ixgbe_gld.c
index 4034735042..83877f6c27 100644
--- a/usr/src/uts/common/io/ixgbe/ixgbe_gld.c
+++ b/usr/src/uts/common/io/ixgbe/ixgbe_gld.c
@@ -223,7 +223,6 @@ ixgbe_m_ioctl(void *arg, queue_t *q, mblk_t *mp)
static int
ixgbe_led_set(void *arg, mac_led_mode_t mode, uint_t flags)
{
- int ret;
ixgbe_t *ixgbe = arg;
struct ixgbe_hw *hw = &ixgbe->hw;
uint32_t lidx = ixgbe->ixgbe_led_index;
@@ -238,7 +237,7 @@ ixgbe_led_set(void *arg, mac_led_mode_t mode, uint_t flags)
return (ENOTSUP);
if (ixgbe->ixgbe_led_blink && mode != MAC_LED_IDENT) {
- if ((ret = ixgbe_blink_led_stop(hw, lidx)) != IXGBE_SUCCESS) {
+ if (ixgbe_blink_led_stop(hw, lidx) != IXGBE_SUCCESS) {
return (EIO);
}
ixgbe->ixgbe_led_blink = B_FALSE;
@@ -257,16 +256,16 @@ ixgbe_led_set(void *arg, mac_led_mode_t mode, uint_t flags)
}
break;
case MAC_LED_IDENT:
- if ((ret = ixgbe_blink_led_start(hw, lidx)) != IXGBE_SUCCESS)
+ if (ixgbe_blink_led_start(hw, lidx) != IXGBE_SUCCESS)
return (EIO);
ixgbe->ixgbe_led_blink = B_TRUE;
break;
case MAC_LED_OFF:
- if ((ret = ixgbe_led_off(hw, lidx)) != IXGBE_SUCCESS)
+ if (ixgbe_led_off(hw, lidx) != IXGBE_SUCCESS)
return (EIO);
break;
case MAC_LED_ON:
- if ((ret = ixgbe_led_on(hw, lidx)) != IXGBE_SUCCESS)
+ if (ixgbe_led_on(hw, lidx) != IXGBE_SUCCESS)
return (EIO);
break;
default:
diff --git a/usr/src/uts/common/io/mr_sas/mr_sas.c b/usr/src/uts/common/io/mr_sas/mr_sas.c
index b2e70ea0f0..41aab85c68 100644
--- a/usr/src/uts/common/io/mr_sas/mr_sas.c
+++ b/usr/src/uts/common/io/mr_sas/mr_sas.c
@@ -5224,7 +5224,8 @@ build_cmd(struct mrsas_instance *instance, struct scsi_address *ap,
break;
}
- /* fall through For all non-rd/wr and physical disk cmds */
+ /* For all non-rd/wr and physical disk cmds */
+ /* FALLTHROUGH */
default:
switch (pkt->pkt_cdbp[0]) {
diff --git a/usr/src/uts/i86pc/os/mp_startup.c b/usr/src/uts/i86pc/os/mp_startup.c
index c755f56927..f1a243343a 100644
--- a/usr/src/uts/i86pc/os/mp_startup.c
+++ b/usr/src/uts/i86pc/os/mp_startup.c
@@ -29,6 +29,7 @@
/*
* Copyright 2018 Joyent, Inc.
* Copyright 2013 Nexenta Systems, Inc. All rights reserved.
+ * Copyright 2018 OmniOS Community Edition (OmniOSce) Association.
*/
#include <sys/types.h>
@@ -1529,6 +1530,19 @@ start_other_cpus(int cprboot)
cmn_err(CE_CONT, "?cpu%d: %s\n", CPU->cpu_id, CPU->cpu_brandstr);
/*
+ * KPTI initialisation happens very early in boot, before logging is
+ * set up. Output a status message now as the boot CPU comes online.
+ */
+ cmn_err(CE_CONT, "?KPTI %s (PCID %s, INVPCID %s)\n",
+ kpti_enable ? "enabled" : "disabled",
+ x86_use_pcid == 1 ? "in use" :
+ (is_x86_feature(x86_featureset, X86FSET_PCID) ? "disabled" :
+ "not supported"),
+ x86_use_pcid == 1 && x86_use_invpcid == 1 ? "in use" :
+ (is_x86_feature(x86_featureset, X86FSET_INVPCID) ? "disabled" :
+ "not supported"));
+
+ /*
* Initialize our syscall handlers
*/
init_cpu_syscall(CPU);