Mercurial > illumos > git > illumos-joyent
changeset 24336:498ee2ebd2b3
[illumos-gate merge]
commit 4deedc8c9617c76c1e08a5265614b205754926c4
12041 tem: x86 needs to use tems.ts_color_map() for 8-bit colors
commit 2f572942f3e92c5f77d0b5d0778be90fa16681c1
12040 loader: vbe_print_mode() is missing newline
commit e15e891852f98a4fc7afb32f0999b5bc38f7d1f8
12005 update to Intel microcode-20191115
commit f7db5903887928b2b43995473632ef63d130bbd4
2988 nfssrv: need ability to go to submounts for v3 and v2 protocols
commit 19687f06a4a23ca82910eccd0f898c90ecd3cf62
12017 Assertion failure in kstat_waitq_to_runq from blkdev
author | Jerry Jelinek <jerry.jelinek@joyent.com> |
---|---|
date | Mon, 02 Dec 2019 13:05:42 +0000 |
parents | 95439b185496 (current diff) 036faba8174f (diff) |
children | afc8877b607a |
files | manifest usr/src/data/ucode/README.ucode usr/src/data/ucode/intel/000406E3-40 usr/src/data/ucode/intel/00050654-01 usr/src/data/ucode/intel/00050657-01 usr/src/data/ucode/intel/000506E3-02 usr/src/data/ucode/intel/000706A1-01 usr/src/data/ucode/intel/000806E9-40 usr/src/data/ucode/intel/000806EA-40 usr/src/data/ucode/intel/000906E9-02 usr/src/data/ucode/intel/000906EA-02 usr/src/data/ucode/intel/000906EB-02 usr/src/lib/libshare/nfs/libshare_nfs.c usr/src/pkg/manifests/system-kernel-platform.mf usr/src/uts/common/io/blkdev/blkdev.c usr/src/uts/common/nfs/export.h |
diffstat | 37 files changed, 313 insertions(+), 60 deletions(-) [+] |
line wrap: on
line diff
--- a/manifest Thu Nov 28 05:07:06 2019 +1000 +++ b/manifest Mon Dec 02 13:05:42 2019 +0000 @@ -2248,6 +2248,7 @@ h platform/i86pc/ucode/GenuineIntel/00040671-20=platform/i86pc/ucode/GenuineIntel/00040671-02 f platform/i86pc/ucode/GenuineIntel/000406C3-01 0444 root sys f platform/i86pc/ucode/GenuineIntel/000406C4-01 0444 root sys +f platform/i86pc/ucode/GenuineIntel/000406D8-01 0444 root sys f platform/i86pc/ucode/GenuineIntel/000406E3-40 0444 root sys h platform/i86pc/ucode/GenuineIntel/000406E3-80=platform/i86pc/ucode/GenuineIntel/000406E3-40 f platform/i86pc/ucode/GenuineIntel/000406F1-01 0444 root sys @@ -2257,12 +2258,24 @@ h platform/i86pc/ucode/GenuineIntel/000406F1-20=platform/i86pc/ucode/GenuineIntel/000406F1-01 h platform/i86pc/ucode/GenuineIntel/000406F1-40=platform/i86pc/ucode/GenuineIntel/000406F1-01 h platform/i86pc/ucode/GenuineIntel/000406F1-80=platform/i86pc/ucode/GenuineIntel/000406F1-01 +f platform/i86pc/ucode/GenuineIntel/00050653-01 0444 root sys +h platform/i86pc/ucode/GenuineIntel/00050653-02=platform/i86pc/ucode/GenuineIntel/00050653-01 +h platform/i86pc/ucode/GenuineIntel/00050653-04=platform/i86pc/ucode/GenuineIntel/00050653-01 +h platform/i86pc/ucode/GenuineIntel/00050653-10=platform/i86pc/ucode/GenuineIntel/00050653-01 +h platform/i86pc/ucode/GenuineIntel/00050653-80=platform/i86pc/ucode/GenuineIntel/00050653-01 f platform/i86pc/ucode/GenuineIntel/00050654-01 0444 root sys h platform/i86pc/ucode/GenuineIntel/00050654-02=platform/i86pc/ucode/GenuineIntel/00050654-01 h platform/i86pc/ucode/GenuineIntel/00050654-04=platform/i86pc/ucode/GenuineIntel/00050654-01 h platform/i86pc/ucode/GenuineIntel/00050654-10=platform/i86pc/ucode/GenuineIntel/00050654-01 h platform/i86pc/ucode/GenuineIntel/00050654-20=platform/i86pc/ucode/GenuineIntel/00050654-01 h platform/i86pc/ucode/GenuineIntel/00050654-80=platform/i86pc/ucode/GenuineIntel/00050654-01 +f platform/i86pc/ucode/GenuineIntel/00050656-01 0444 root sys +h platform/i86pc/ucode/GenuineIntel/00050656-02=platform/i86pc/ucode/GenuineIntel/00050656-01 +h platform/i86pc/ucode/GenuineIntel/00050656-04=platform/i86pc/ucode/GenuineIntel/00050656-01 +h platform/i86pc/ucode/GenuineIntel/00050656-08=platform/i86pc/ucode/GenuineIntel/00050656-01 +h platform/i86pc/ucode/GenuineIntel/00050656-10=platform/i86pc/ucode/GenuineIntel/00050656-01 +h platform/i86pc/ucode/GenuineIntel/00050656-20=platform/i86pc/ucode/GenuineIntel/00050656-01 +h platform/i86pc/ucode/GenuineIntel/00050656-80=platform/i86pc/ucode/GenuineIntel/00050656-01 f platform/i86pc/ucode/GenuineIntel/00050657-01 0444 root sys h platform/i86pc/ucode/GenuineIntel/00050657-02=platform/i86pc/ucode/GenuineIntel/00050657-01 h platform/i86pc/ucode/GenuineIntel/00050657-04=platform/i86pc/ucode/GenuineIntel/00050657-01 @@ -2272,6 +2285,7 @@ h platform/i86pc/ucode/GenuineIntel/00050657-80=platform/i86pc/ucode/GenuineIntel/00050657-01 f platform/i86pc/ucode/GenuineIntel/00050662-10 0444 root sys f platform/i86pc/ucode/GenuineIntel/00050663-10 0444 root sys +f platform/i86pc/ucode/GenuineIntel/00060663-80 0444 root sys f platform/i86pc/ucode/GenuineIntel/00050664-10 0444 root sys f platform/i86pc/ucode/GenuineIntel/00050665-10 0444 root sys f platform/i86pc/ucode/GenuineIntel/000506C2-01 0444 root sys @@ -2285,6 +2299,8 @@ h platform/i86pc/ucode/GenuineIntel/000506E3-20=platform/i86pc/ucode/GenuineIntel/000506E3-02 f platform/i86pc/ucode/GenuineIntel/000506F1-01 0444 root sys f platform/i86pc/ucode/GenuineIntel/000706A1-01 0444 root sys +f platform/i86pc/ucode/GenuineIntel/000706A8-01 0444 root sys +f platform/i86pc/ucode/GenuineIntel/000706E5-80 0444 root sys f platform/i86pc/ucode/GenuineIntel/000806E9-10 0444 root sys f platform/i86pc/ucode/GenuineIntel/000806E9-40 0444 root sys h platform/i86pc/ucode/GenuineIntel/000806E9-80=platform/i86pc/ucode/GenuineIntel/000806E9-40 @@ -2306,6 +2322,7 @@ h platform/i86pc/ucode/GenuineIntel/000906EC-20=platform/i86pc/ucode/GenuineIntel/000906EC-02 f platform/i86pc/ucode/GenuineIntel/000906ED-02 0444 root sys h platform/i86pc/ucode/GenuineIntel/000906ED-20=platform/i86pc/ucode/GenuineIntel/000906ED-02 +f platform/i86pc/ucode/GenuineIntel/000A0660-80 0444 root sys d proc 0755 root root d root 0755 root root f root/.bash_profile 0644 root root
--- a/usr/src/boot/sys/boot/i386/libi386/vbe.c Thu Nov 28 05:07:06 2019 +1000 +++ b/usr/src/boot/sys/boot/i386/libi386/vbe.c Mon Dec 02 13:05:42 2019 +0000 @@ -653,19 +653,19 @@ vbe_dump_mode(mode, vbe_mode); printf("\n"); - printf("%ux%ux%u, stride=%u", + printf("%ux%ux%u, stride=%u\n", gfx_fb.framebuffer_common.framebuffer_width, gfx_fb.framebuffer_common.framebuffer_height, gfx_fb.framebuffer_common.framebuffer_bpp, (gfx_fb.framebuffer_common.framebuffer_pitch << 3) / gfx_fb.framebuffer_common.framebuffer_bpp); - printf("\n frame buffer: address=%jx, size=%jx", + printf(" frame buffer: address=%jx, size=%jx\n", (uintmax_t)gfx_fb.framebuffer_common.framebuffer_addr, (uintmax_t)gfx_fb.framebuffer_common.framebuffer_height * gfx_fb.framebuffer_common.framebuffer_pitch); if (vbe_mode->MemoryModel == 0x6) { - printf("\n color mask: R=%08x, G=%08x, B=%08x\n", + printf(" color mask: R=%08x, G=%08x, B=%08x\n", ((1 << gfx_fb.u.fb2.framebuffer_red_mask_size) - 1) << gfx_fb.u.fb2.framebuffer_red_field_position, ((1 << gfx_fb.u.fb2.framebuffer_green_mask_size) - 1) <<
--- a/usr/src/cmd/fs.d/nfs/lib/sharetab.h Thu Nov 28 05:07:06 2019 +1000 +++ b/usr/src/cmd/fs.d/nfs/lib/sharetab.h Mon Dec 02 13:05:42 2019 +0000 @@ -28,7 +28,7 @@ */ /* Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T */ -/* All Rights Reserved */ +/* All Rights Reserved */ /* * Portions of this source code were derived from Berkeley 4.3 BSD @@ -65,6 +65,7 @@ #define SHOPT_NOACLFAB "noaclfab" #define SHOPT_UIDMAP "uidmap" #define SHOPT_GIDMAP "gidmap" +#define SHOPT_NOHIDE "nohide" /* XXX The following are added for testing volatile fh's purposes only */ #ifdef VOLATILE_FH_TEST
--- a/usr/src/data/ucode/Makefile.links Thu Nov 28 05:07:06 2019 +1000 +++ b/usr/src/data/ucode/Makefile.links Mon Dec 02 13:05:42 2019 +0000 @@ -1,4 +1,4 @@ -INTEL_LINKS = 00000F32-04 00000F32-08 00000F33-04 00000F33-08 00000F34-04 00000F34-08 00000F34-10 00000F41-04 00000F41-08 00000F41-10 00000F41-20 00000F41-80 00000F43-04 00000F43-08 00000F43-10 00000F43-80 00000F44-04 00000F44-08 00000F44-10 00000F44-80 00000F47-04 00000F47-08 00000F47-10 00000F47-80 00000F48-08 00000F48-10 00000F48-40 00000F49-04 00000F49-08 00000F49-10 00000F49-20 00000F49-80 00000F4A-08 00000F4A-10 00000F4A-40 00000F64-10 00000F64-20 00000F68-20 0001067A-10 0001067A-40 0001067A-80 000106A4-02 000106A5-02 000106E5-02 000106E5-10 00020652-10 00020655-10 00020655-80 000206A7-10 000206C2-02 000206D6-04 000206D6-08 000206D6-20 000206D6-40 000206D7-04 000206D7-08 000206D7-20 000206D7-40 000206F2-04 00030678-08 00030679-02 00030679-04 00030679-08 000306A9-10 000306C3-10 000306C3-20 000306D4-80 000306E4-04 000306E4-08 000306E4-20 000306E4-40 000306E4-80 000306E6-04 000306E6-08 000306E6-20 000306E6-40 000306E6-80 000306E7-04 000306E7-08 000306E7-20 000306E7-40 000306E7-80 000306F2-02 000306F2-04 000306F2-08 000306F2-20 000306F2-40 00040651-10 00040651-20 00040651-40 00040661-10 00040661-20 00040671-20 000406E3-80 000406F1-02 000406F1-04 000406F1-08 000406F1-20 000406F1-40 000406F1-80 00050654-02 00050654-04 00050654-10 00050654-20 00050654-80 00050657-02 00050657-04 00050657-08 00050657-10 00050657-20 00050657-80 000506C9-02 000506CA-02 000506E3-04 000506E3-10 000506E3-20 000806E9-80 000806EA-80 000806EB-40 000806EB-80 000806EC-10 000806EC-80 000906E9-08 000906E9-20 000906EA-20 000906EC-20 000906ED-20 +INTEL_LINKS = 00000F32-04 00000F32-08 00000F33-04 00000F33-08 00000F34-04 00000F34-08 00000F34-10 00000F41-04 00000F41-08 00000F41-10 00000F41-20 00000F41-80 00000F43-04 00000F43-08 00000F43-10 00000F43-80 00000F44-04 00000F44-08 00000F44-10 00000F44-80 00000F47-04 00000F47-08 00000F47-10 00000F47-80 00000F48-08 00000F48-10 00000F48-40 00000F49-04 00000F49-08 00000F49-10 00000F49-20 00000F49-80 00000F4A-08 00000F4A-10 00000F4A-40 00000F64-10 00000F64-20 00000F68-20 0001067A-10 0001067A-40 0001067A-80 000106A4-02 000106A5-02 000106E5-02 000106E5-10 00020652-10 00020655-10 00020655-80 000206A7-10 000206C2-02 000206D6-04 000206D6-08 000206D6-20 000206D6-40 000206D7-04 000206D7-08 000206D7-20 000206D7-40 000206F2-04 00030678-08 00030679-02 00030679-04 00030679-08 000306A9-10 000306C3-10 000306C3-20 000306D4-80 000306E4-04 000306E4-08 000306E4-20 000306E4-40 000306E4-80 000306E6-04 000306E6-08 000306E6-20 000306E6-40 000306E6-80 000306E7-04 000306E7-08 000306E7-20 000306E7-40 000306E7-80 000306F2-02 000306F2-04 000306F2-08 000306F2-20 000306F2-40 00040651-10 00040651-20 00040651-40 00040661-10 00040661-20 00040671-20 000406E3-80 000406F1-02 000406F1-04 000406F1-08 000406F1-20 000406F1-40 000406F1-80 00050653-02 00050653-04 00050653-10 00050653-80 00050654-02 00050654-04 00050654-10 00050654-20 00050654-80 00050656-02 00050656-04 00050656-08 00050656-10 00050656-20 00050656-80 00050657-02 00050657-04 00050657-08 00050657-10 00050657-20 00050657-80 000506C9-02 000506CA-02 000506E3-04 000506E3-10 000506E3-20 000806E9-80 000806EA-80 000806EB-40 000806EB-80 000806EC-10 000806EC-80 000906E9-08 000906E9-20 000906EA-20 000906EC-20 000906ED-20 $(ROOTINTELDIR)/00000F32-04: $(ROOTINTELDIR)/00000F32-01 $(RM) $@; $(LN) $^ $@ @@ -300,6 +300,18 @@ $(ROOTINTELDIR)/000406F1-80: $(ROOTINTELDIR)/000406F1-01 $(RM) $@; $(LN) $^ $@ +$(ROOTINTELDIR)/00050653-02: $(ROOTINTELDIR)/00050653-01 + $(RM) $@; $(LN) $^ $@ + +$(ROOTINTELDIR)/00050653-04: $(ROOTINTELDIR)/00050653-01 + $(RM) $@; $(LN) $^ $@ + +$(ROOTINTELDIR)/00050653-10: $(ROOTINTELDIR)/00050653-01 + $(RM) $@; $(LN) $^ $@ + +$(ROOTINTELDIR)/00050653-80: $(ROOTINTELDIR)/00050653-01 + $(RM) $@; $(LN) $^ $@ + $(ROOTINTELDIR)/00050654-02: $(ROOTINTELDIR)/00050654-01 $(RM) $@; $(LN) $^ $@ @@ -315,6 +327,24 @@ $(ROOTINTELDIR)/00050654-80: $(ROOTINTELDIR)/00050654-01 $(RM) $@; $(LN) $^ $@ +$(ROOTINTELDIR)/00050656-02: $(ROOTINTELDIR)/00050656-01 + $(RM) $@; $(LN) $^ $@ + +$(ROOTINTELDIR)/00050656-04: $(ROOTINTELDIR)/00050656-01 + $(RM) $@; $(LN) $^ $@ + +$(ROOTINTELDIR)/00050656-08: $(ROOTINTELDIR)/00050656-01 + $(RM) $@; $(LN) $^ $@ + +$(ROOTINTELDIR)/00050656-10: $(ROOTINTELDIR)/00050656-01 + $(RM) $@; $(LN) $^ $@ + +$(ROOTINTELDIR)/00050656-20: $(ROOTINTELDIR)/00050656-01 + $(RM) $@; $(LN) $^ $@ + +$(ROOTINTELDIR)/00050656-80: $(ROOTINTELDIR)/00050656-01 + $(RM) $@; $(LN) $^ $@ + $(ROOTINTELDIR)/00050657-02: $(ROOTINTELDIR)/00050657-01 $(RM) $@; $(LN) $^ $@
--- a/usr/src/data/ucode/README.ucode Thu Nov 28 05:07:06 2019 +1000 +++ b/usr/src/data/ucode/README.ucode Mon Dec 02 13:05:42 2019 +0000 @@ -38,4 +38,4 @@ AMD: Updated in March 2012 as part of illumos#2546. Exact revision unknown. -Intel: Linux 20190918 release +Intel: Linux 20191115 release
--- a/usr/src/lib/libshare/nfs/libshare_nfs.c Thu Nov 28 05:07:06 2019 +1000 +++ b/usr/src/lib/libshare/nfs/libshare_nfs.c Mon Dec 02 13:05:42 2019 +0000 @@ -175,8 +175,10 @@ {SHOPT_UIDMAP, OPT_UIDMAP, OPT_TYPE_MAPPING}, #define OPT_GIDMAP 19 {SHOPT_GIDMAP, OPT_GIDMAP, OPT_TYPE_MAPPING}, +#define OPT_NOHIDE 20 + {SHOPT_NOHIDE, OPT_NOHIDE, OPT_TYPE_BOOLEAN}, #ifdef VOLATILE_FH_TEST /* XXX added for testing volatile fh's only */ -#define OPT_VOLFH 20 +#define OPT_VOLFH 21 {SHOPT_VOLFH, OPT_VOLFH}, #endif /* VOLATILE_FH_TEST */ NULL @@ -1028,6 +1030,14 @@ else export->ex_flags &= ~EX_NOACLFAB; break; + case OPT_NOHIDE: + if (value != NULL && (strcasecmp(value, "true") == 0 || + strcmp(value, "1") == 0)) + export->ex_flags |= EX_NOHIDE; + else + export->ex_flags &= ~EX_NOHIDE; + + break; default: /* have a syntactic error */ (void) printf(dgettext(TEXT_DOMAIN,
--- a/usr/src/lib/libshare/nfs/libshare_nfs.h Thu Nov 28 05:07:06 2019 +1000 +++ b/usr/src/lib/libshare/nfs/libshare_nfs.h Mon Dec 02 13:05:42 2019 +0000 @@ -56,6 +56,7 @@ #define SHOPT_NOACLFAB "noaclfab" #define SHOPT_UIDMAP "uidmap" #define SHOPT_GIDMAP "gidmap" +#define SHOPT_NOHIDE "nohide" /* * defined options types. These should be in a file rather than
--- a/usr/src/man/man1m/share_nfs.1m Thu Nov 28 05:07:06 2019 +1000 +++ b/usr/src/man/man1m/share_nfs.1m Mon Dec 02 13:05:42 2019 +0000 @@ -172,6 +172,25 @@ are used. Support of NFS server logging is only available for NFS Version 2 and Version 3 requests. +.It Sy nohide +By default, if server exports two filesystems, one of which is mounted as a +child of the other, NFS Version 2 and Version 3 clients must mount both +filesystems explicitly in order to access them. +If a client only mounts the parent, it will see an empty directory at the +location where the other filesystem is mounted. +.Pp +Setting the +.Sy nohide +option on a filesystem causes it to no longer be hidden in this manner, and the +client will be able to move from the parent filesystem to this one without +noticing the change. +However, some NFS clients or applications may not function correctly when +this option is used. +In particular, files on different underlying filesystems may appear to have +the same inode numbers. +The +.Sy nohide +option only applies to NFS Version 2 and Version 3 requests. .It Sy noaclfab By default, the NFS server will fabricate POSIX-draft style ACLs in response to ACL requests from NFS Version 2 or Version 3 clients accessing shared @@ -786,3 +805,14 @@ does not work as it does with NFS Version 2 and Version 3 and the client receives an error when attempting to mount .Pa /export/foo . +.Pp +The +.Sy nohide +option violates RFC 1094, +.%T "Network File System Protocol Specification" +and RFC 1813, +.%T "NFS: Network File System Version 3 Protocol Specification" +.Pp +The +.Sy nohide +option is provided for compatibility with Linux NFS.
--- a/usr/src/pkg/manifests/system-kernel-platform.mf Thu Nov 28 05:07:06 2019 +1000 +++ b/usr/src/pkg/manifests/system-kernel-platform.mf Mon Dec 02 13:05:42 2019 +0000 @@ -1096,12 +1096,18 @@ mode=0444 reboot-needed=true $(i386_ONLY)file path=platform/i86pc/ucode/GenuineIntel/000406C4-01 group=sys \ mode=0444 reboot-needed=true +$(i386_ONLY)file path=platform/i86pc/ucode/GenuineIntel/000406D8-01 group=sys \ + mode=0444 reboot-needed=true $(i386_ONLY)file path=platform/i86pc/ucode/GenuineIntel/000406E3-40 group=sys \ mode=0444 reboot-needed=true $(i386_ONLY)file path=platform/i86pc/ucode/GenuineIntel/000406F1-01 group=sys \ mode=0444 reboot-needed=true +$(i386_ONLY)file path=platform/i86pc/ucode/GenuineIntel/00050653-01 group=sys \ + mode=0444 reboot-needed=true $(i386_ONLY)file path=platform/i86pc/ucode/GenuineIntel/00050654-01 group=sys \ mode=0444 reboot-needed=true +$(i386_ONLY)file path=platform/i86pc/ucode/GenuineIntel/00050656-01 group=sys \ + mode=0444 reboot-needed=true $(i386_ONLY)file path=platform/i86pc/ucode/GenuineIntel/00050657-01 group=sys \ mode=0444 reboot-needed=true $(i386_ONLY)file path=platform/i86pc/ucode/GenuineIntel/00050662-10 group=sys \ @@ -1122,8 +1128,14 @@ mode=0444 reboot-needed=true $(i386_ONLY)file path=platform/i86pc/ucode/GenuineIntel/000506F1-01 group=sys \ mode=0444 reboot-needed=true +$(i386_ONLY)file path=platform/i86pc/ucode/GenuineIntel/00060663-80 group=sys \ + mode=0444 reboot-needed=true $(i386_ONLY)file path=platform/i86pc/ucode/GenuineIntel/000706A1-01 group=sys \ mode=0444 reboot-needed=true +$(i386_ONLY)file path=platform/i86pc/ucode/GenuineIntel/000706A8-01 group=sys \ + mode=0444 reboot-needed=true +$(i386_ONLY)file path=platform/i86pc/ucode/GenuineIntel/000706E5-80 group=sys \ + mode=0444 reboot-needed=true $(i386_ONLY)file path=platform/i86pc/ucode/GenuineIntel/000806E9-10 group=sys \ mode=0444 reboot-needed=true $(i386_ONLY)file path=platform/i86pc/ucode/GenuineIntel/000806E9-40 group=sys \ @@ -1144,6 +1156,8 @@ mode=0444 reboot-needed=true $(i386_ONLY)file path=platform/i86pc/ucode/GenuineIntel/000906ED-02 group=sys \ mode=0444 reboot-needed=true +$(i386_ONLY)file path=platform/i86pc/ucode/GenuineIntel/000A0660-80 group=sys \ + mode=0444 reboot-needed=true $(i386_ONLY)file path=platform/i86xpv/kernel/$(ARCH64)/unix group=sys \ mode=0755 $(i386_ONLY)file path=platform/i86xpv/kernel/cpu/$(ARCH64)/cpu.generic \ @@ -1596,6 +1610,14 @@ target=000406F1-01 $(i386_ONLY)hardlink path=platform/i86pc/ucode/GenuineIntel/000406F1-80 \ target=000406F1-01 +$(i386_ONLY)hardlink path=platform/i86pc/ucode/GenuineIntel/00050653-02 \ + target=00050653-01 +$(i386_ONLY)hardlink path=platform/i86pc/ucode/GenuineIntel/00050653-04 \ + target=00050653-01 +$(i386_ONLY)hardlink path=platform/i86pc/ucode/GenuineIntel/00050653-10 \ + target=00050653-01 +$(i386_ONLY)hardlink path=platform/i86pc/ucode/GenuineIntel/00050653-80 \ + target=00050653-01 $(i386_ONLY)hardlink path=platform/i86pc/ucode/GenuineIntel/00050654-02 \ target=00050654-01 $(i386_ONLY)hardlink path=platform/i86pc/ucode/GenuineIntel/00050654-04 \ @@ -1606,6 +1628,18 @@ target=00050654-01 $(i386_ONLY)hardlink path=platform/i86pc/ucode/GenuineIntel/00050654-80 \ target=00050654-01 +$(i386_ONLY)hardlink path=platform/i86pc/ucode/GenuineIntel/00050656-02 \ + target=00050656-01 +$(i386_ONLY)hardlink path=platform/i86pc/ucode/GenuineIntel/00050656-04 \ + target=00050656-01 +$(i386_ONLY)hardlink path=platform/i86pc/ucode/GenuineIntel/00050656-08 \ + target=00050656-01 +$(i386_ONLY)hardlink path=platform/i86pc/ucode/GenuineIntel/00050656-10 \ + target=00050656-01 +$(i386_ONLY)hardlink path=platform/i86pc/ucode/GenuineIntel/00050656-20 \ + target=00050656-01 +$(i386_ONLY)hardlink path=platform/i86pc/ucode/GenuineIntel/00050656-80 \ + target=00050656-01 $(i386_ONLY)hardlink path=platform/i86pc/ucode/GenuineIntel/00050657-02 \ target=00050657-01 $(i386_ONLY)hardlink path=platform/i86pc/ucode/GenuineIntel/00050657-04 \
--- a/usr/src/uts/common/fs/nfs/nfs3_srv.c Thu Nov 28 05:07:06 2019 +1000 +++ b/usr/src/uts/common/fs/nfs/nfs3_srv.c Mon Dec 02 13:05:42 2019 +0000 @@ -382,6 +382,9 @@ dvap = NULL; + if (exi != NULL) + exi_hold(exi); + /* * Allow lookups from the root - the default * location of the public filehandle. @@ -420,8 +423,19 @@ fhp = &args->what.dir; if (strcmp(args->what.name, "..") == 0 && EQFID(&exi->exi_fid, FH3TOFIDP(fhp))) { - resp->status = NFS3ERR_NOENT; - goto out1; + if ((exi->exi_export.ex_flags & EX_NOHIDE) && + (dvp->v_flag & VROOT)) { + /* + * special case for ".." and 'nohide'exported root + */ + if (rfs_climb_crossmnt(&dvp, &exi, cr) != 0) { + resp->status = NFS3ERR_ACCES; + goto out1; + } + } else { + resp->status = NFS3ERR_NOENT; + goto out1; + } } ca = (struct sockaddr *)svc_getrpccaller(req->rq_xprt)->buf; @@ -439,10 +453,12 @@ */ if (PUBLIC_FH3(&args->what.dir)) { publicfh_flag = TRUE; + + exi_rele(exi); + error = rfs_publicfh_mclookup(name, dvp, cr, &vp, &exi, &sec); - if (error && exi != NULL) - exi_rele(exi); /* See comment below Re: publicfh_flag */ + /* * Since WebNFS may bypass MOUNT, we need to ensure this * request didn't come from an unlabeled admin_low client. @@ -464,8 +480,6 @@ if (tp == NULL || tp->tpc_tp.tp_doi != l_admin_low->tsl_doi || tp->tpc_tp.host_type != SUN_CIPSO) { - if (exi != NULL) - exi_rele(exi); VN_RELE(vp); error = EACCES; } @@ -480,6 +494,12 @@ if (name != args->what.name) kmem_free(name, MAXPATHLEN + 1); + if (error == 0 && vn_ismntpt(vp)) { + error = rfs_cross_mnt(&vp, &exi); + if (error) + VN_RELE(vp); + } + if (is_system_labeled() && error == 0) { bslabel_t *clabel = req->rq_label; @@ -490,8 +510,6 @@ if (!blequal(&l_admin_low->tsl_label, clabel)) { if (!do_rfs_label_check(clabel, dvp, DOMINANCE_CHECK, exi)) { - if (publicfh_flag && exi != NULL) - exi_rele(exi); VN_RELE(vp); error = EACCES; } @@ -512,15 +530,6 @@ auth_weak = TRUE; } - /* - * If publicfh_flag is true then we have called rfs_publicfh_mclookup - * and have obtained a new exportinfo in exi which needs to be - * released. Note that the original exportinfo pointed to by exi - * will be released by the caller, common_dispatch. - */ - if (publicfh_flag) - exi_rele(exi); - if (error) { VN_RELE(vp); goto out; @@ -529,6 +538,7 @@ va.va_mask = AT_ALL; vap = rfs4_delegated_getattr(vp, &va, 0, cr) ? NULL : &va; + exi_rele(exi); VN_RELE(vp); resp->status = NFS3_OK; @@ -556,6 +566,9 @@ } else resp->status = puterrno3(error); out1: + if (exi != NULL) + exi_rele(exi); + DTRACE_NFSV3_4(op__lookup__done, struct svc_req *, req, cred_t *, cr, vnode_t *, dvp, LOOKUP3res *, resp); @@ -3609,13 +3622,18 @@ if (vn_is_nfs_reparse(nvp, cr)) nvap->va_type = VLNK; - vattr_to_post_op_attr(nvap, &infop[i].attr); - - error = makefh3(&infop[i].fh.handle, nvp, exi); - if (!error) - infop[i].fh.handle_follows = TRUE; - else + if (vn_ismntpt(nvp)) { + infop[i].attr.attributes = FALSE; infop[i].fh.handle_follows = FALSE; + } else { + vattr_to_post_op_attr(nvap, &infop[i].attr); + + error = makefh3(&infop[i].fh.handle, nvp, exi); + if (!error) + infop[i].fh.handle_follows = TRUE; + else + infop[i].fh.handle_follows = FALSE; + } VN_RELE(nvp); dp = nextdp(dp);
--- a/usr/src/uts/common/fs/nfs/nfs_srv.c Thu Nov 28 05:07:06 2019 +1000 +++ b/usr/src/uts/common/fs/nfs/nfs_srv.c Mon Dec 02 13:05:42 2019 +0000 @@ -18,9 +18,10 @@ * * CDDL HEADER END */ + /* * Copyright (c) 1994, 2010, Oracle and/or its affiliates. All rights reserved. - * Copyright 2014 Nexenta Systems, Inc. All rights reserved. + * Copyright 2015 Nexenta Systems, Inc. All rights reserved. * Copyright (c) 2016 by Delphix. All rights reserved. */ @@ -329,6 +330,80 @@ return (&args->saa_fh); } +/* Change and release @exip and @vpp only in success */ +int +rfs_cross_mnt(vnode_t **vpp, struct exportinfo **exip) +{ + struct exportinfo *exi; + vnode_t *vp = *vpp; + fid_t fid; + int error; + + VN_HOLD(vp); + + if ((error = traverse(&vp)) != 0) { + VN_RELE(vp); + return (error); + } + + bzero(&fid, sizeof (fid)); + fid.fid_len = MAXFIDSZ; + error = VOP_FID(vp, &fid, NULL); + if (error) { + VN_RELE(vp); + return (error); + } + + exi = checkexport(&vp->v_vfsp->vfs_fsid, &fid); + if (exi == NULL || + (exi->exi_export.ex_flags & EX_NOHIDE) == 0) { + /* + * It is not error, just subdir is not exported + * or "nohide" is not set + */ + if (exi != NULL) + exi_rele(exi); + VN_RELE(vp); + } else { + /* go to submount */ + exi_rele(*exip); + *exip = exi; + + VN_RELE(*vpp); + *vpp = vp; + } + + return (0); +} + +/* + * Given mounted "dvp" and "exi", go upper mountpoint + * with dvp/exi correction + * Return 0 in success + */ +int +rfs_climb_crossmnt(vnode_t **dvpp, struct exportinfo **exip, cred_t *cr) +{ + struct exportinfo *exi; + vnode_t *dvp = *dvpp; + + ASSERT(dvp->v_flag & VROOT); + + VN_HOLD(dvp); + dvp = untraverse(dvp); + exi = nfs_vptoexi(NULL, dvp, cr, NULL, NULL, FALSE); + if (exi == NULL) { + VN_RELE(dvp); + return (-1); + } + + exi_rele(*exip); + *exip = exi; + VN_RELE(*dvpp); + *dvpp = dvp; + + return (0); +} /* * Directory lookup. * Returns an fhandle and file attributes for file name in a directory. @@ -381,6 +456,8 @@ } } + exi_hold(exi); + /* * Not allow lookup beyond root. * If the filehandle matches a filehandle of the exi, @@ -388,9 +465,19 @@ */ if (strcmp(da->da_name, "..") == 0 && EQFID(&exi->exi_fid, (fid_t *)&fhp->fh_len)) { - VN_RELE(dvp); - dr->dr_status = NFSERR_NOENT; - return; + if ((exi->exi_export.ex_flags & EX_NOHIDE) && + (dvp->v_flag & VROOT)) { + /* + * special case for ".." and 'nohide'exported root + */ + if (rfs_climb_crossmnt(&dvp, &exi, cr) != 0) { + error = NFSERR_ACCES; + goto out; + } + } else { + error = NFSERR_NOENT; + goto out; + } } ca = (struct sockaddr *)svc_getrpccaller(req->rq_xprt)->buf; @@ -398,8 +485,8 @@ MAXPATHLEN); if (name == NULL) { - dr->dr_status = NFSERR_ACCES; - return; + error = NFSERR_ACCES; + goto out; } /* @@ -413,6 +500,9 @@ */ if (PUBLIC_FH2(fhp)) { publicfh_flag = TRUE; + + exi_rele(exi); + error = rfs_publicfh_mclookup(name, dvp, cr, &vp, &exi, &sec); } else { @@ -426,6 +516,11 @@ if (name != da->da_name) kmem_free(name, MAXPATHLEN); + if (error == 0 && vn_ismntpt(vp)) { + error = rfs_cross_mnt(&vp, &exi); + if (error) + VN_RELE(vp); + } if (!error) { va.va_mask = AT_ALL; /* we want everything */ @@ -452,15 +547,10 @@ VN_RELE(vp); } +out: VN_RELE(dvp); - /* - * If publicfh_flag is true then we have called rfs_publicfh_mclookup - * and have obtained a new exportinfo in exi which needs to be - * released. Note the the original exportinfo pointed to by exi - * will be released by the caller, comon_dispatch. - */ - if (publicfh_flag && exi != NULL) + if (exi != NULL) exi_rele(exi); /*
--- a/usr/src/uts/common/io/blkdev/blkdev.c Thu Nov 28 05:07:06 2019 +1000 +++ b/usr/src/uts/common/io/blkdev/blkdev.c Mon Dec 02 13:05:42 2019 +0000 @@ -122,9 +122,10 @@ * There are 4 instance global locks d_ocmutex, d_ksmutex, d_errmutex and * d_statemutex. As well a q_iomutex per waitq/runq pair. * - * Currently, there is no lock hierarchy. Nowhere do we ever own more than - * one lock, any change needs to be documented here with a defined - * hierarchy. + * Lock Hierarchy + * -------------- + * The only two locks which may be held simultaneously are q_iomutex and + * d_ksmutex. In all cases q_iomutex must be acquired before d_ksmutex. */ #define BD_MAXPART 64 @@ -1668,6 +1669,10 @@ while ((bq->q_qactive < bq->q_qsize) && ((xi = list_remove_head(&bq->q_waitq)) != NULL)) { + mutex_enter(&bd->d_ksmutex); + kstat_waitq_to_runq(bd->d_kiop); + mutex_exit(&bd->d_ksmutex); + bq->q_qactive++; list_insert_tail(&bq->q_runq, xi); @@ -1679,10 +1684,6 @@ mutex_exit(&bq->q_iomutex); - mutex_enter(&bd->d_ksmutex); - kstat_waitq_to_runq(bd->d_kiop); - mutex_exit(&bd->d_ksmutex); - rv = xi->i_func(bd->d_private, &xi->i_public); if (rv != 0) { bp = xi->i_bp; @@ -1690,11 +1691,13 @@ biodone(bp); atomic_inc_32(&bd->d_kerr->bd_transerrs.value.ui32); + + mutex_enter(&bq->q_iomutex); + mutex_enter(&bd->d_ksmutex); kstat_runq_exit(bd->d_kiop); mutex_exit(&bd->d_ksmutex); - mutex_enter(&bq->q_iomutex); bq->q_qactive--; list_remove(&bq->q_runq, xi); bd_xfer_free(xi); @@ -1717,13 +1720,15 @@ xi->i_qnum = q; mutex_enter(&bq->q_iomutex); + list_insert_tail(&bq->q_waitq, xi); - mutex_exit(&bq->q_iomutex); mutex_enter(&bd->d_ksmutex); kstat_waitq_enter(bd->d_kiop); mutex_exit(&bd->d_ksmutex); + mutex_exit(&bq->q_iomutex); + bd_sched(bd, bq); } @@ -1736,13 +1741,14 @@ mutex_enter(&bq->q_iomutex); bq->q_qactive--; - list_remove(&bq->q_runq, xi); - mutex_exit(&bq->q_iomutex); mutex_enter(&bd->d_ksmutex); kstat_runq_exit(bd->d_kiop); mutex_exit(&bd->d_ksmutex); + list_remove(&bq->q_runq, xi); + mutex_exit(&bq->q_iomutex); + if (err == 0) { if (bp->b_flags & B_READ) { atomic_inc_uint(&bd->d_kiop->reads);
--- a/usr/src/uts/common/io/tem_safe.c Thu Nov 28 05:07:06 2019 +1000 +++ b/usr/src/uts/common/io/tem_safe.c Mon Dec 02 13:05:42 2019 +0000 @@ -2213,10 +2213,18 @@ switch (tems.ts_pdepth) { case 4: - case 8: ca.fg_color.mono = fg; ca.bg_color.mono = bg; break; + case 8: +#ifdef _HAVE_TEM_FIRMWARE + ca.fg_color.mono = fg; + ca.bg_color.mono = bg; +#else + ca.fg_color.mono = tems.ts_color_map(fg); + ca.bg_color.mono = tems.ts_color_map(bg); +#endif + break; case 15: case 16: color = tems.ts_color_map(fg); @@ -2256,8 +2264,8 @@ ca.bg_color.twentyfour[0] = (color >> 16) & 0xFF; ca.bg_color.twentyfour[1] = (color >> 8) & 0xFF; ca.bg_color.twentyfour[2] = color & 0xFF; +#endif break; -#endif } ca.action = action; @@ -2292,6 +2300,11 @@ text_color_t bg_color) { uint8_t *dest = (uint8_t *)tem->tvs_pix_data; + +#ifndef _HAVE_TEM_FIRMWARE + fg_color = (text_color_t)tems.ts_color_map(fg_color); + bg_color = (text_color_t)tems.ts_color_map(bg_color); +#endif font_bit_to_pix8(&tems.ts_font, dest, c, fg_color, bg_color); }
--- a/usr/src/uts/common/nfs/export.h Thu Nov 28 05:07:06 2019 +1000 +++ b/usr/src/uts/common/nfs/export.h Mon Dec 02 13:05:42 2019 +0000 @@ -20,8 +20,8 @@ */ /* + * Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2016 Nexenta Systems, Inc. All rights reserved. - * Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2016 Jason King. */ @@ -68,7 +68,7 @@ int32_t s_refcnt; /* reference count for tracking */ /* how many children (self included) */ /* use this flavor. */ - int s_window; /* window */ + int s_window; /* window */ uint_t s_rootid; /* UID to use for authorized roots */ int s_rootcnt; /* count of root names */ caddr_t *s_rootnames; /* array of root names */ @@ -83,7 +83,7 @@ int32_t s_refcnt; /* reference count for tracking */ /* how many children (self included) */ /* use this flavor. */ - int32_t s_window; /* window */ + int32_t s_window; /* window */ uint32_t s_rootid; /* UID to use for authorized roots */ int32_t s_rootcnt; /* count of root names */ caddr32_t s_rootnames; /* array of root names */ @@ -189,6 +189,7 @@ #define EX_NOACLFAB 0x2000 /* If set, NFSv2 and v3 servers won't */ /* fabricate an aclent_t ACL on file systems */ /* that don't support aclent_t ACLs */ +#define EX_NOHIDE 0x4000 /* traversable from exported parent */ #ifdef _KERNEL
--- a/usr/src/uts/common/nfs/nfs.h Thu Nov 28 05:07:06 2019 +1000 +++ b/usr/src/uts/common/nfs/nfs.h Mon Dec 02 13:05:42 2019 +0000 @@ -31,7 +31,7 @@ #ifndef _NFS_NFS_H #define _NFS_NFS_H -/* nfs.h 2.38 88/08/19 SMI */ +/* nfs.h 2.38 88/08/19 SMI */ #include <sys/isa_defs.h> #include <sys/vfs.h> @@ -2278,6 +2278,8 @@ struct exportinfo **, struct sec_ol *); extern int rfs_pathname(char *, vnode_t **, vnode_t **, vnode_t *, cred_t *, int); +extern int rfs_cross_mnt(vnode_t **, struct exportinfo **); +extern int rfs_climb_crossmnt(vnode_t **, struct exportinfo **, cred_t *); extern vtype_t nf3_to_vt[]; extern kstat_named_t *rfsproccnt_v3_ptr;