summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKeith M Wesolowski <wesolows@foobazco.org>2014-01-14 20:46:38 +0000
committerKeith M Wesolowski <wesolows@foobazco.org>2014-01-14 20:46:38 +0000
commitdd0eb67decf3f841ac7e6d210490f32b741c24e9 (patch)
tree3aee855b332014db2fd8558ef44129656c6b8199
parent7e7abd4d4c78353590cf18476fa374ff2e3e7176 (diff)
parent96ab4d5390a62b7e1743ec1fad5c0eef9682b961 (diff)
downloadillumos-joyent-dd0eb67decf3f841ac7e6d210490f32b741c24e9.tar.gz
[illumos-gate merge]
commit 1444d846b126463eb1059a572ff114d51f7562e5 4427 pid provider rejects probes with valid UTF-8 names commit fc2b8335a96b36a076f9614647182dd090cb6ee0 4463 NLM fails wrongly on clnt_control(). commit ccac5ae384bd76b9eb3473b622170555228b5c5d 4445 wsdiff results file timestamp format is strange Reviewed by: Garrett D'Amore <garrett@damore.org> commit db46f245c26166d1232fb8d83c2ad0c591d33b77 4444 remove unused cpuid-related globals Reviewed by: Garrett D'Amore <garrett@damore.org> commit 1a9079eeb6a460980656d5e022ec89bbbfb84732 4443 apic_intrmap_init comment could use an update Reviewed by: Robert Mustacchi <rm@joyent.com> commit deec6be0d2203ed491be67ac7ebf52f91a24b83d 4383 libelf can't write extended sections when ELF_F_LAYOUT
-rw-r--r--usr/src/cmd/sgs/libelf/common/update.c27
-rw-r--r--usr/src/cmd/sgs/packages/common/SUNWonld-README1
-rw-r--r--usr/src/pkg/manifests/system-dtrace-tests.mf4
-rw-r--r--usr/src/tools/scripts/wsdiff.py2
-rw-r--r--usr/src/uts/common/klm/nlm_rpc_handle.c2
-rw-r--r--usr/src/uts/i86pc/io/pcplusmp/apic_common.c25
-rw-r--r--usr/src/uts/i86pc/os/cpuid.c4
-rw-r--r--usr/src/uts/intel/sys/x86_archext.h3
8 files changed, 44 insertions, 24 deletions
diff --git a/usr/src/cmd/sgs/libelf/common/update.c b/usr/src/cmd/sgs/libelf/common/update.c
index 0791e09a7e..98bdafb655 100644
--- a/usr/src/cmd/sgs/libelf/common/update.c
+++ b/usr/src/cmd/sgs/libelf/common/update.c
@@ -347,7 +347,7 @@ _elf_upd_usr(Elf * elf)
Ehdr * eh = elf->ed_ehdr;
unsigned ver = eh->e_version;
register char *p = (char *)eh->e_ident;
-
+ size_t scncnt;
/*
* Ehdr and Phdr table go first
@@ -384,11 +384,11 @@ _elf_upd_usr(Elf * elf)
* Allow null buffers for NOBITS.
*/
- if ((s = elf->ed_hdscn) == 0)
+ if ((s = elf->ed_hdscn) == 0) {
eh->e_shnum = 0;
- else {
- eh->e_shnum = 1;
- *(Shdr*)s->s_shdr = _elf_snode_init.sb_shdr;
+ scncnt = 0;
+ } else {
+ scncnt = 1;
s = s->s_next;
}
for (; s != 0; s = s->s_next) {
@@ -399,7 +399,7 @@ _elf_upd_usr(Elf * elf)
if ((s->s_myflags & SF_READY) == 0)
(void) _elfxx_cookscn(s);
- ++eh->e_shnum;
+ ++scncnt;
sz = 0;
for (d = s->s_hdnode; d != 0; d = d->db_next) {
if ((fsz = elf_fsize(d->db_data.d_type, 1,
@@ -425,13 +425,22 @@ _elf_upd_usr(Elf * elf)
/*
* Shdr table last. Comment above for phnum/phoff applies here.
*/
- if (eh->e_shnum != 0)
+ if (scncnt != 0) {
/* LINTED */
eh->e_shentsize = (Half)elf_fsize(ELF_T_SHDR, 1, ver);
- else
+ if (scncnt < SHN_LORESERVE) {
+ eh->e_shnum = scncnt;
+ } else {
+ Shdr *sh;
+ sh = (Shdr *)elf->ed_hdscn->s_shdr;
+ sh->sh_size = scncnt;
+ eh->e_shnum = 0;
+ }
+ } else {
eh->e_shentsize = 0;
+ }
- if ((sz = eh->e_shoff + eh->e_shentsize * eh->e_shnum) > hi)
+ if ((sz = eh->e_shoff + eh->e_shentsize * scncnt) > hi)
hi = sz;
#ifdef TEST_SIZE
diff --git a/usr/src/cmd/sgs/packages/common/SUNWonld-README b/usr/src/cmd/sgs/packages/common/SUNWonld-README
index 4ef9326cc8..dedd0ea913 100644
--- a/usr/src/cmd/sgs/packages/common/SUNWonld-README
+++ b/usr/src/cmd/sgs/packages/common/SUNWonld-README
@@ -1652,3 +1652,4 @@ Bugid Risk Synopsis
4003 dldump() can't deal with extended sections
4227 ld --library-path is translated to -l-path, not -L
4270 ld(1) argument error reporting is still pretty bad
+4383 libelf can't write extended sections when ELF_F_LAYOUT
diff --git a/usr/src/pkg/manifests/system-dtrace-tests.mf b/usr/src/pkg/manifests/system-dtrace-tests.mf
index 97a35330ef..30e91fbb41 100644
--- a/usr/src/pkg/manifests/system-dtrace-tests.mf
+++ b/usr/src/pkg/manifests/system-dtrace-tests.mf
@@ -1130,6 +1130,10 @@ file path=opt/SUNWdtrt/tst/common/pid/tst.ret1.d mode=0444
file path=opt/SUNWdtrt/tst/common/pid/tst.ret1.exe mode=0555
file path=opt/SUNWdtrt/tst/common/pid/tst.ret2.d mode=0444
file path=opt/SUNWdtrt/tst/common/pid/tst.ret2.exe mode=0555
+file path=opt/SUNWdtrt/tst/common/pid/tst.utf8probefunc.ksh mode=0444
+file path=opt/SUNWdtrt/tst/common/pid/tst.utf8probefunc.ksh.out mode=0444
+file path=opt/SUNWdtrt/tst/common/pid/tst.utf8probemod.ksh mode=0444
+file path=opt/SUNWdtrt/tst/common/pid/tst.utf8probemod.ksh.out mode=0444
file path=opt/SUNWdtrt/tst/common/pid/tst.vfork.d mode=0444
file path=opt/SUNWdtrt/tst/common/pid/tst.vfork.exe mode=0555
file path=opt/SUNWdtrt/tst/common/pid/tst.weak1.d mode=0444
diff --git a/usr/src/tools/scripts/wsdiff.py b/usr/src/tools/scripts/wsdiff.py
index b485a143a3..4ae79e889f 100644
--- a/usr/src/tools/scripts/wsdiff.py
+++ b/usr/src/tools/scripts/wsdiff.py
@@ -1344,7 +1344,7 @@ def main() :
error("failed to open log file: " + log)
sys.exit(1)
- dateTimeStr= "# %d/%d/%d at %d:%d:%d" % time.localtime()[:6]
+ dateTimeStr= "# %04d-%02d-%02d at %02d:%02d:%02d" % time.localtime()[:6]
v_info("# This file was produced by wsdiff")
v_info(dateTimeStr)
diff --git a/usr/src/uts/common/klm/nlm_rpc_handle.c b/usr/src/uts/common/klm/nlm_rpc_handle.c
index 611c4b5b2d..9ddf56856c 100644
--- a/usr/src/uts/common/klm/nlm_rpc_handle.c
+++ b/usr/src/uts/common/klm/nlm_rpc_handle.c
@@ -150,7 +150,7 @@ refresh_nlm_rpc(struct nlm_host *hostp, nlm_rpc_t *rpcp)
* on.
*/
if (clnt_control(rpcp->nr_handle, CLSET_NODELAYONERR,
- (char *)&clset)) {
+ (char *)&clset) == FALSE) {
NLM_ERR("Unable to set CLSET_NODELAYONERR\n");
}
} else {
diff --git a/usr/src/uts/i86pc/io/pcplusmp/apic_common.c b/usr/src/uts/i86pc/io/pcplusmp/apic_common.c
index 12368abf89..5d642e6bd4 100644
--- a/usr/src/uts/i86pc/io/pcplusmp/apic_common.c
+++ b/usr/src/uts/i86pc/io/pcplusmp/apic_common.c
@@ -1499,13 +1499,26 @@ apic_intrmap_init(int apic_mode)
{
int suppress_brdcst_eoi = 0;
+ /*
+ * Intel Software Developer's Manual 3A, 10.12.7:
+ *
+ * Routing of device interrupts to local APIC units operating in
+ * x2APIC mode requires use of the interrupt-remapping architecture
+ * specified in the Intel Virtualization Technology for Directed
+ * I/O, Revision 1.3. Because of this, BIOS must enumerate support
+ * for and software must enable this interrupt remapping with
+ * Extended Interrupt Mode Enabled before it enabling x2APIC mode in
+ * the local APIC units.
+ *
+ *
+ * In other words, to use the APIC in x2APIC mode, we need interrupt
+ * remapping. Since we don't start up the IOMMU by default, we
+ * won't be able to do any interrupt remapping and therefore have to
+ * use the APIC in traditional 'local APIC' mode with memory mapped
+ * I/O.
+ */
+
if (psm_vt_ops != NULL) {
- /*
- * Since X2APIC requires the use of interrupt remapping
- * (though this is not documented explicitly in the Intel
- * documentation (yet)), initialize interrupt remapping
- * support before initializing the X2APIC unit.
- */
if (((apic_intrmap_ops_t *)psm_vt_ops)->
apic_intrmap_init(apic_mode) == DDI_SUCCESS) {
diff --git a/usr/src/uts/i86pc/os/cpuid.c b/usr/src/uts/i86pc/os/cpuid.c
index 644e4ba35a..fce8fd9c23 100644
--- a/usr/src/uts/i86pc/os/cpuid.c
+++ b/usr/src/uts/i86pc/os/cpuid.c
@@ -120,7 +120,6 @@ uint_t x86_type = X86_TYPE_OTHER;
uint_t x86_clflush_size = 0;
uint_t pentiumpro_bug4046376;
-uint_t pentiumpro_bug4064495;
uchar_t x86_featureset[BT_SIZEOFMAP(NUM_X86_FEATURES)];
@@ -214,8 +213,6 @@ print_x86_featureset(void *featureset)
}
}
-uint_t enable486;
-
static size_t xsave_state_size = 0;
uint64_t xsave_bv_all = (XFEATURE_LEGACY_FP | XFEATURE_SSE);
boolean_t xsave_force_disable = B_FALSE;
@@ -1033,7 +1030,6 @@ cpuid_pass1(cpu_t *cpu, uchar_t *featureset)
else if (IS_LEGACY_P6(cpi)) {
x86_type = X86_TYPE_P6;
pentiumpro_bug4046376 = 1;
- pentiumpro_bug4064495 = 1;
/*
* Clear the SEP bit when it was set erroneously
*/
diff --git a/usr/src/uts/intel/sys/x86_archext.h b/usr/src/uts/intel/sys/x86_archext.h
index 5b3ec638e3..81083eea05 100644
--- a/usr/src/uts/intel/sys/x86_archext.h
+++ b/usr/src/uts/intel/sys/x86_archext.h
@@ -666,9 +666,6 @@ extern uint_t x86_vendor;
extern uint_t x86_clflush_size;
extern uint_t pentiumpro_bug4046376;
-extern uint_t pentiumpro_bug4064495;
-
-extern uint_t enable486;
extern const char CyrixInstead[];