]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
firewire: ohci: initialize page array to use alloc_pages_bulk() correctly
authorTakashi Sakamoto <o-takashi@sakamocchi.jp>
Sat, 28 Feb 2026 02:56:03 +0000 (11:56 +0900)
committerLinus Torvalds <torvalds@linux-foundation.org>
Sat, 28 Feb 2026 18:09:24 +0000 (10:09 -0800)
The call of alloc_pages_bulk() skips to fill entries of page array when
the entries already have values. While, 1394 OHCI PCI driver passes the
page array without initializing. It could cause invalid state at PFN
validation in vmap().

Fixes: f2ae92780ab9 ("firewire: ohci: split page allocation from dma mapping")
Reported-by: John Ogness <john.ogness@linutronix.de>
Reported-and-tested-by: Harald Arnesen <linux@skogtun.org>
Reported-and-tested-by: David Gow <david@davidgow.net>
Closes: https://lore.kernel.org/lkml/87tsv1vig5.fsf@jogness.linutronix.de/
Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
drivers/firewire/ohci.c

index 1c868c1e4a490fb977b30fbbbb6d97ae870a9029..8153d62c58f061eb0212984226f4494fade3bf84 100644 (file)
@@ -848,7 +848,7 @@ static int ar_context_init(struct ar_context *ctx, struct fw_ohci *ohci,
 {
        struct device *dev = ohci->card.device;
        unsigned int i;
-       struct page *pages[AR_BUFFERS + AR_WRAPAROUND_PAGES];
+       struct page *pages[AR_BUFFERS + AR_WRAPAROUND_PAGES] = { NULL };
        dma_addr_t dma_addrs[AR_BUFFERS];
        void *vaddr;
        struct descriptor *d;