291 
 292 /*
 293  * Patching this variable to non-zero allows the system to run with
 294  * stacks marked as "not executable".  It's a bit of a kludge, but is
 295  * provided as a tweakable for platforms that export those ABIs
 296  * (e.g. sparc V8) that have executable stacks enabled by default.
 297  * There are also some restrictions for platforms that don't actually
 298  * implement 'noexec' protections.
 299  *
 300  * Once enabled, the system is (therefore) unable to provide a fully
 301  * ABI-compliant execution environment, though practically speaking,
 302  * most everything works.  The exceptions are generally some interpreters
 303  * and debuggers that create executable code on the stack and jump
 304  * into it (without explicitly mprotecting the address range to include
 305  * PROT_EXEC).
 306  *
 307  * One important class of applications that are disabled are those
 308  * that have been transformed into malicious agents using one of the
 309  * numerous "buffer overflow" attacks.  See 4007890.
 310  */
 311 int noexec_user_stack = 0;
 312 int noexec_user_stack_log = 1;
 313 
 314 int segvn_lpg_disable = 0;
 315 uint_t segvn_maxpgszc = 0;
 316 
 317 ulong_t segvn_vmpss_clrszc_cnt;
 318 ulong_t segvn_vmpss_clrszc_err;
 319 ulong_t segvn_fltvnpages_clrszc_cnt;
 320 ulong_t segvn_fltvnpages_clrszc_err;
 321 ulong_t segvn_setpgsz_align_err;
 322 ulong_t segvn_setpgsz_anon_align_err;
 323 ulong_t segvn_setpgsz_getattr_err;
 324 ulong_t segvn_setpgsz_eof_err;
 325 ulong_t segvn_faultvnmpss_align_err1;
 326 ulong_t segvn_faultvnmpss_align_err2;
 327 ulong_t segvn_faultvnmpss_align_err3;
 328 ulong_t segvn_faultvnmpss_align_err4;
 329 ulong_t segvn_faultvnmpss_align_err5;
 330 ulong_t segvn_vmpss_pageio_deadlk_err;
 331 
  
 | 
 
 
 291 
 292 /*
 293  * Patching this variable to non-zero allows the system to run with
 294  * stacks marked as "not executable".  It's a bit of a kludge, but is
 295  * provided as a tweakable for platforms that export those ABIs
 296  * (e.g. sparc V8) that have executable stacks enabled by default.
 297  * There are also some restrictions for platforms that don't actually
 298  * implement 'noexec' protections.
 299  *
 300  * Once enabled, the system is (therefore) unable to provide a fully
 301  * ABI-compliant execution environment, though practically speaking,
 302  * most everything works.  The exceptions are generally some interpreters
 303  * and debuggers that create executable code on the stack and jump
 304  * into it (without explicitly mprotecting the address range to include
 305  * PROT_EXEC).
 306  *
 307  * One important class of applications that are disabled are those
 308  * that have been transformed into malicious agents using one of the
 309  * numerous "buffer overflow" attacks.  See 4007890.
 310  */
 311 volatile int noexec_user_stack = 0;
 312 int noexec_user_stack_log = 1;
 313 
 314 int segvn_lpg_disable = 0;
 315 uint_t segvn_maxpgszc = 0;
 316 
 317 ulong_t segvn_vmpss_clrszc_cnt;
 318 ulong_t segvn_vmpss_clrszc_err;
 319 ulong_t segvn_fltvnpages_clrszc_cnt;
 320 ulong_t segvn_fltvnpages_clrszc_err;
 321 ulong_t segvn_setpgsz_align_err;
 322 ulong_t segvn_setpgsz_anon_align_err;
 323 ulong_t segvn_setpgsz_getattr_err;
 324 ulong_t segvn_setpgsz_eof_err;
 325 ulong_t segvn_faultvnmpss_align_err1;
 326 ulong_t segvn_faultvnmpss_align_err2;
 327 ulong_t segvn_faultvnmpss_align_err3;
 328 ulong_t segvn_faultvnmpss_align_err4;
 329 ulong_t segvn_faultvnmpss_align_err5;
 330 ulong_t segvn_vmpss_pageio_deadlk_err;
 331 
  
 |