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:	Fri, 11 Jul 2014 16:54:16 -0400
From:	Boris Ostrovsky <boris.ostrovsky@...cle.com>
To:	konrad@...nel.org, xen-devel@...ts.xenproject.org,
	david.vrabel@...rix.com, linux-kernel@...r.kernel.org
CC:	Konrad Rzeszutek Wilk <konrad.wilk@...cle.com>
Subject: Re: [PATCH v4 5/5] xen/pciback: Remove tons of dereferences

On 07/11/2014 04:08 PM, konrad@...nel.org wrote:
> From: Konrad Rzeszutek Wilk <konrad.wilk@...cle.com>
>
> A little cleanup. No functional difference.

Reviewed-by: Boris Ostrovsky <boris.ostrovsky@...cle.com>

> Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@...cle.com>
> ---
>   drivers/xen/xen-pciback/pci_stub.c |   20 +++++++++++---------
>   1 files changed, 11 insertions(+), 9 deletions(-)
>
> diff --git a/drivers/xen/xen-pciback/pci_stub.c b/drivers/xen/xen-pciback/pci_stub.c
> index efcb73b..cf0b3c1 100644
> --- a/drivers/xen/xen-pciback/pci_stub.c
> +++ b/drivers/xen/xen-pciback/pci_stub.c
> @@ -630,10 +630,12 @@ static pci_ers_result_t common_process(struct pcistub_device *psdev,
>   {
>   	pci_ers_result_t res = result;
>   	struct xen_pcie_aer_op *aer_op;
> +	struct xen_pcibk_device *pdev = psdev->pdev;
> +	struct xen_pci_sharedinfo *sh_info = pdev->sh_info;
>   	int ret;
>   
>   	/*with PV AER drivers*/
> -	aer_op = &(psdev->pdev->sh_info->aer_op);
> +	aer_op = &(sh_info->aer_op);
>   	aer_op->cmd = aer_cmd ;
>   	/*useful for error_detected callback*/
>   	aer_op->err = state;
> @@ -654,36 +656,36 @@ static pci_ers_result_t common_process(struct pcistub_device *psdev,
>   	* this flag to judge whether we need to check pci-front give aer
>   	* service ack signal
>   	*/
> -	set_bit(_PCIB_op_pending, (unsigned long *)&psdev->pdev->flags);
> +	set_bit(_PCIB_op_pending, (unsigned long *)&pdev->flags);
>   
>   	/*It is possible that a pcifront conf_read_write ops request invokes
>   	* the callback which cause the spurious execution of wake_up.
>   	* Yet it is harmless and better than a spinlock here
>   	*/
>   	set_bit(_XEN_PCIB_active,
> -		(unsigned long *)&psdev->pdev->sh_info->flags);
> +		(unsigned long *)&sh_info->flags);
>   	wmb();
> -	notify_remote_via_irq(psdev->pdev->evtchn_irq);
> +	notify_remote_via_irq(pdev->evtchn_irq);
>   
>   	ret = wait_event_timeout(xen_pcibk_aer_wait_queue,
>   				 !(test_bit(_XEN_PCIB_active, (unsigned long *)
> -				 &psdev->pdev->sh_info->flags)), 300*HZ);
> +				 &sh_info->flags)), 300*HZ);
>   
>   	if (!ret) {
>   		if (test_bit(_XEN_PCIB_active,
> -			(unsigned long *)&psdev->pdev->sh_info->flags)) {
> +			(unsigned long *)&sh_info->flags)) {
>   			dev_err(&psdev->dev->dev,
>   				"pcifront aer process not responding!\n");
>   			clear_bit(_XEN_PCIB_active,
> -			  (unsigned long *)&psdev->pdev->sh_info->flags);
> +			  (unsigned long *)&sh_info->flags);
>   			aer_op->err = PCI_ERS_RESULT_NONE;
>   			return res;
>   		}
>   	}
> -	clear_bit(_PCIB_op_pending, (unsigned long *)&psdev->pdev->flags);
> +	clear_bit(_PCIB_op_pending, (unsigned long *)&pdev->flags);
>   
>   	if (test_bit(_XEN_PCIF_active,
> -		(unsigned long *)&psdev->pdev->sh_info->flags)) {
> +		(unsigned long *)&sh_info->flags)) {
>   		dev_dbg(&psdev->dev->dev,
>   			"schedule pci_conf service in " DRV_NAME "\n");
>   		xen_pcibk_test_and_schedule_op(psdev->pdev);

--
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