[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <alpine.DEB.2.21.1901151959060.1655@nanos.tec.linutronix.de>
Date: Tue, 15 Jan 2019 20:10:53 +0100 (CET)
From: Thomas Gleixner <tglx@...utronix.de>
To: Huacai Chen <chenhc@...ote.com>
cc: linux-kernel@...r.kernel.org, Fuxin Zhang <zhangfx@...ote.com>,
Zhangjin Wu <wuzhangjin@...il.com>, 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