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:   Mon, 10 Apr 2017 21:55:58 -0700
From:   Dan Williams <dan.j.williams@...el.com>
To:     Pushkar Jambhlekar <pushkar.iit@...il.com>
Cc:     Dave Jiang <dave.jiang@...el.com>,
        Andrew Morton <akpm@...ux-foundation.org>,
        Johannes Thumshirn <jthumshirn@...e.de>,
        Ross Zwisler <ross.zwisler@...ux.intel.com>,
        "linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>
Subject: Re: [PATCH] drivers/dax: Avoiding potential deadlock

On Mon, Apr 10, 2017 at 9:45 PM, Pushkar Jambhlekar
<pushkar.iit@...il.com> wrote:
> dax_dev_huge_fault returning without releasing lock. Making code change to avoid this situation
>
> Signed-off-by: Pushkar Jambhlekar <pushkar.iit@...il.com>
> ---
>  drivers/dax/dax.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/dax/dax.c b/drivers/dax/dax.c
> index 0d1ca24..fd9c4db 100644
> --- a/drivers/dax/dax.c
> +++ b/drivers/dax/dax.c
> @@ -590,7 +590,7 @@ static int dax_dev_huge_fault(struct vm_fault *vmf,
>                 rc = __dax_dev_pud_fault(dax_dev, vmf);
>                 break;
>         default:
> -               return VM_FAULT_FALLBACK;
> +               rc = VM_FAULT_FALLBACK;

Thanks for the fix! Luckily we never take that branch, but we should
fix it so we don't trip over it in some future where there are more
fault sizes than pte, pmd, and pud. However, it should be setting rc
to VM_FAULT_SIGBUS on an unknown / unsupported fault size.

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ