Actions
Bug #3511
closeddtrace.c erroneously checks for memory alignment on amd64
Start date:
2013-01-31
Due date:
% Done:
100%
Estimated time:
Difficulty:
Medium
Tags:
needs-triage
Gerrit CR:
Description
From Sebastien Roy's bug report at Delphix:
#ifndef __i386 #define DTRACE_ALIGNCHECK(addr, size, flags) \\\\ if (addr & (size - 1)) { \\\\ *flags |= CPU_DTRACE_BADALIGN; \\\\ cpu_core[CPU->cpu_id].cpuc_dtrace_illval = addr; \\\\ return (0); \\\\ } #else #define DTRACE_ALIGNCHECK(addr, size, flags) #endif That ifndef above should be __x86. __i386 is only defined for 32-bit compilations, while __x86 is a synonym for "defined(__i386) || defined(__amd64)". Additionally, there are alignment checks elsewhere in dtrace.c that are not protected by an x86 check at all.
Updated by Christopher Siden over 9 years ago
- Status changed from Pending RTI to Resolved
commit c93cc65 Author: Sebastien Roy <seb@delphix.com> Date: Fri Dec 28 12:32:23 2012 3511 dtrace.c erroneously checks for memory alignment on amd64 Reviewed by: Adam Leventhal <ahl@delphix.com> Reviewed by: Eric Schrock <eric.schrock@delphix.com> Reviewed by: Richard Lowe <richlowe@richlowe.net> Approved by: Robert Mustacchi <rm@joyent.com>
Actions