lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Sat, 23 Jun 2007 09:04:32 +0100
From:	Christoph Hellwig <hch@...radead.org>
To:	Jan Beulich <jbeulich@...ell.com>
Cc:	Andi Kleen <ak@...e.de>, linux-kernel@...r.kernel.org,
	patches@...-64.org
Subject: Re: [PATCH] x86: simplify notify_page_fault()

On Mon, Jan 08, 2007 at 01:31:11PM +0000, Jan Beulich wrote:
> Remove all parameters from this function that aren't really variable.
> 
> Signed-off-by: Jan Beulich <jbeulich@...ell.com>
> 
> --- linux-2.6.20-rc4/arch/i386/mm/fault.c	2007-01-08 09:57:20.000000000 +0100
> +++ 2.6.20-rc4-x86-simplify-notify_page_fault/arch/i386/mm/fault.c	2007-01-08 10:32:45.000000000 +0100
> @@ -46,17 +46,17 @@ int unregister_page_fault_notifier(struc
>  }
>  EXPORT_SYMBOL_GPL(unregister_page_fault_notifier);
>  
> -static inline int notify_page_fault(enum die_val val, const char *str,
> -			struct pt_regs *regs, long err, int trap, int sig)
> +static inline int notify_page_fault(struct pt_regs *regs, long err)
>  {
>  	struct die_args args = {
>  		.regs = regs,
> -		.str = str,
> +		.str = "page fault",
>  		.err = err,
> -		.trapnr = trap,
> -		.signr = sig
> +		.trapnr = 14,
> +		.signr = SIGSEGV
>  	};
> -	return atomic_notifier_call_chain(&notify_page_fault_chain, val, &args);
> +	return atomic_notifier_call_chain(&notify_page_fault_chain,
> +	                                  DIE_PAGE_FAULT, &args);
>  }

Btw, WTF

>  
>  /*
> @@ -353,8 +353,7 @@ fastcall void __kprobes do_page_fault(st
>  	if (unlikely(address >= TASK_SIZE)) {
>  		if (!(error_code & 0x0000000d) && vmalloc_fault(address) >= 0)
>  			return;
> -		if (notify_page_fault(DIE_PAGE_FAULT, "page fault", regs, error_code, 14,
> -						SIGSEGV) == NOTIFY_STOP)
> +		if (notify_page_fault(regs, error_code) == NOTIFY_STOP)
>  			return;
>  		/*
>  		 * Don't take the mm semaphore here. If we fixup a prefetch
> @@ -363,8 +362,7 @@ fastcall void __kprobes do_page_fault(st
>  		goto bad_area_nosemaphore;
>  	}
>  
> -	if (notify_page_fault(DIE_PAGE_FAULT, "page fault", regs, error_code, 14,
> -					SIGSEGV) == NOTIFY_STOP)
> +	if (notify_page_fault(regs, error_code) == NOTIFY_STOP)
>  		return;
>  
>  	/* It's safe to allow irq's after cr2 has been saved and the vmalloc
> --- linux-2.6.20-rc4/arch/x86_64/mm/fault.c	2007-01-08 09:57:27.000000000 +0100
> +++ 2.6.20-rc4-x86-simplify-notify_page_fault/arch/x86_64/mm/fault.c	2007-01-08 10:33:11.000000000 +0100
> @@ -56,17 +56,17 @@ int unregister_page_fault_notifier(struc
>  }
>  EXPORT_SYMBOL_GPL(unregister_page_fault_notifier);
>  
> -static inline int notify_page_fault(enum die_val val, const char *str,
> -			struct pt_regs *regs, long err, int trap, int sig)
> +static inline int notify_page_fault(struct pt_regs *regs, long err)
>  {
>  	struct die_args args = {
>  		.regs = regs,
> -		.str = str,
> +		.str = "page fault",
>  		.err = err,
> -		.trapnr = trap,
> -		.signr = sig
> +		.trapnr = 14,
> +		.signr = SIGSEGV
>  	};
> -	return atomic_notifier_call_chain(&notify_page_fault_chain, val, &args);
> +	return atomic_notifier_call_chain(&notify_page_fault_chain,
> +	                                  DIE_PAGE_FAULT, &args);
>  }
>  
>  void bust_spinlocks(int yes)
> @@ -376,8 +376,7 @@ asmlinkage void __kprobes do_page_fault(
>  			if (vmalloc_fault(address) >= 0)
>  				return;
>  		}
> -		if (notify_page_fault(DIE_PAGE_FAULT, "page fault", regs, error_code, 14,
> -						SIGSEGV) == NOTIFY_STOP)
> +		if (notify_page_fault(regs, error_code) == NOTIFY_STOP)
>  			return;
>  		/*
>  		 * Don't take the mm semaphore here. If we fixup a prefetch
> @@ -386,8 +385,7 @@ asmlinkage void __kprobes do_page_fault(
>  		goto bad_area_nosemaphore;
>  	}
>  
> -	if (notify_page_fault(DIE_PAGE_FAULT, "page fault", regs, error_code, 14,
> -					SIGSEGV) == NOTIFY_STOP)
> +	if (notify_page_fault(regs, error_code) == NOTIFY_STOP)
>  		return;
>  
>  	if (likely(regs->eflags & X86_EFLAGS_IF))
> 
> 
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@...r.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at  http://www.tux.org/lkml/
---end quoted text---
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ