All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sudeep Holla <sudeep.holla@arm.com>
To: Will Deacon <will@kernel.org>
Cc: linux-arm-kernel@lists.infradead.org, cki-project@redhat.com,
	Catalin Marinas <catalin.marinas@arm.com>,
	Mark Rutland <mark.rutland@arm.com>,
	Sudeep Holla <sudeep.holla@arm.com>,
	Bruno Goncalves <bgoncalv@redhat.com>
Subject: Re: [PATCH] arm64: cacheinfo: Fix incorrect assignment of signed error value to unsigned fw_level
Date: Mon, 22 Aug 2022 12:18:07 +0100	[thread overview]
Message-ID: <20220822111807.s7pfvljh3of2cuq7@bogus> (raw)
In-Reply-To: <20220808084640.3165368-1-sudeep.holla@arm.com>

Hi Will,

On Mon, Aug 08, 2022 at 09:46:40AM +0100, Sudeep Holla wrote:
> Though acpi_find_last_cache_level() always returned signed value and the
> document states it will return any errors caused by lack of a PPTT table,
> it never returned negative values before.
> 
> Commit 0c80f9e165f8 ("ACPI: PPTT: Leave the table mapped for the runtime usage")
> however changed it by returning -ENOENT if no PPTT was found. The value
> returned from acpi_find_last_cache_level() is then assigned to unsigned
> fw_level.
> 
> It will result in the number of cache leaves calculated incorrectly as
> a huge value which will then cause the following warning from __alloc_pages
> as the order would be great than MAX_ORDER because of incorrect and huge
> cache leaves value.
> 
>   |  WARNING: CPU: 0 PID: 1 at mm/page_alloc.c:5407 __alloc_pages+0x74/0x314
>   |  Modules linked in:
>   |  CPU: 0 PID: 1 Comm: swapper/0 Not tainted 5.19.0-10393-g7c2a8d3ac4c0 #73
>   |  pstate: 20000005 (nzCv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
>   |  pc : __alloc_pages+0x74/0x314
>   |  lr : alloc_pages+0xe8/0x318
>   |  Call trace:
>   |   __alloc_pages+0x74/0x314
>   |   alloc_pages+0xe8/0x318
>   |   kmalloc_order_trace+0x68/0x1dc
>   |   __kmalloc+0x240/0x338
>   |   detect_cache_attributes+0xe0/0x56c
>   |   update_siblings_masks+0x38/0x284
>   |   store_cpu_topology+0x78/0x84
>   |   smp_prepare_cpus+0x48/0x134
>   |   kernel_init_freeable+0xc4/0x14c
>   |   kernel_init+0x2c/0x1b4
>   |   ret_from_fork+0x10/0x20
> 
> Fix the same by changing fw_level to be signed integer and return the
> error from init_cache_level() early in case of error.
>

Can you pick up this for next round of fixes ?
The original report can be found @[1]

-- 
Regards,
Sudeep

[1] https://lore.kernel.org/all/CA+QYu4rPbfH-4wNR06Vn=31RCGKFFEB-KRskn52Jtig_UugYzg@mail.gmail.com/ 

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  reply	other threads:[~2022-08-22 11:19 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-08-08  8:46 [PATCH] arm64: cacheinfo: Fix incorrect assignment of signed error value to unsigned fw_level Sudeep Holla
2022-08-22 11:18 ` Sudeep Holla [this message]
2022-08-23 11:34 ` Will Deacon

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20220822111807.s7pfvljh3of2cuq7@bogus \
    --to=sudeep.holla@arm.com \
    --cc=bgoncalv@redhat.com \
    --cc=catalin.marinas@arm.com \
    --cc=cki-project@redhat.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=mark.rutland@arm.com \
    --cc=will@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.