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  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:   Wed, 16 Jan 2019 11:00:07 +0800
From:   "陈华才" <chenhc@...ote.com>
To:     "Thomas Gleixner" <tglx@...utronix.de>
Cc:     "linux-kernel" <linux-kernel@...r.kernel.org>,
        "Fuxin Zhang" <zhangfx@...ote.com>,
        "wuzhangjin" <wuzhangjin@...il.com>,
        "stable" <stable@...r.kernel.org>,
        "Christoph Hellwig" <hch@....de>,
        "Michael Hernandez" <michael.hernandez@...ium.com>
Subject: Re: [PATCH] genirq/affinity: Assign default affinity to pre/post vectors

Hi, Thomas,

I'm not removing all return NULL of  irq_create_affinity_masks(), so the memory allocation failure still return NULL. I just handle the case that there are not enough irq vectors. E.g. in nvme driver, the caller may call irq_create_affinity_masks() with nvecs=1,pre_vectors=1,post_vectors=0. In this case, the only one vector's default affinity assigning is skipped.

Huacai 

------------------ Original ------------------
From:  "Thomas Gleixner"<tglx@...utronix.de>;
Date:  Wed, Jan 16, 2019 03:10 AM
To:  "Huacai Chen"<chenhc@...ote.com>;
Cc:  "linux-kernel"<linux-kernel@...r.kernel.org>; "Fuxin Zhang"<zhangfx@...ote.com>; "wuzhangjin"<wuzhangjin@...il.com>; "stable"<stable@...r.kernel.org>; "Christoph Hellwig"<hch@....de>; "Michael Hernandez"<michael.hernandez@...ium.com>;
Subject:  Re: [PATCH] genirq/affinity: Assign default affinity to pre/post vectors
 
On Mon, 31 Dec 2018, Huacai Chen wrote:

> Generally, irq_create_affinity_masks() assign default affinity to pre/
> post vectors correctly. However, it ignore the case that there are only
> pre/post vectors (when nvecs == affd->pre_vectors + affd->post_vectors)
> and return NULL. This case usually happens when nvecs = 1 (e.g. in nvme
> driver when MSI-X is unavailable and fallback to MSI) and will trigger
> the warning in pci_irq_get_affinity(). This patch fix the corner case.

Errm. This is just wrong. When this function returns NULL, then it has
failed and the caller or any subsequent code is not supposed to use the
result.

The function can return NULL for other reasons, e.g. when the memory
allocation failed. How are you going to duct tape that one?

Thanks,

tglx

Powered by blists - more mailing lists