2022-09-14 15:07:17

by Rolf Eike Beer

[permalink] [raw]
Subject: [PATCH] parisc: remove obsolete manual allocation aligning

kmalloc() returns memory with __assume_kmalloc_alignment, which is
__alignof__(unsigned long long) for parisc.

Signed-off-by: Rolf Eike Beer <[email protected]>
---
drivers/parisc/iosapic.c | 11 +----------
1 file changed, 1 insertion(+), 10 deletions(-)

I must confirm it's entirely untested.

diff --git a/drivers/parisc/iosapic.c b/drivers/parisc/iosapic.c
index 3a8c98615634..bdef7a8d6ab8 100644
--- a/drivers/parisc/iosapic.c
+++ b/drivers/parisc/iosapic.c
@@ -221,16 +221,7 @@ static size_t irt_num_entry;

static struct irt_entry *iosapic_alloc_irt(int num_entries)
{
- unsigned long a;
-
- /* The IRT needs to be 8-byte aligned for the PDC call.
- * Normally kmalloc would guarantee larger alignment, but
- * if CONFIG_DEBUG_SLAB is enabled, then we can get only
- * 4-byte alignment on 32-bit kernels
- */
- a = (unsigned long)kmalloc(sizeof(struct irt_entry) * num_entries + 8, GFP_KERNEL);
- a = (a + 7UL) & ~7UL;
- return (struct irt_entry *)a;
+ return kcalloc(num_entries, sizeof(struct irt_entry), GFP_KERNEL);
}

/**
--
2.35.3





2022-09-15 05:50:29

by Helge Deller

[permalink] [raw]
Subject: Re: [PATCH] parisc: remove obsolete manual allocation aligning

On 9/14/22 16:23, Rolf Eike Beer wrote:
> kmalloc() returns memory with __assume_kmalloc_alignment, which is
> __alignof__(unsigned long long) for parisc.
>
> Signed-off-by: Rolf Eike Beer <[email protected]>

applied.

Thanks!
Helge


> ---
> drivers/parisc/iosapic.c | 11 +----------
> 1 file changed, 1 insertion(+), 10 deletions(-)
>
> I must confirm it's entirely untested.
>
> diff --git a/drivers/parisc/iosapic.c b/drivers/parisc/iosapic.c
> index 3a8c98615634..bdef7a8d6ab8 100644
> --- a/drivers/parisc/iosapic.c
> +++ b/drivers/parisc/iosapic.c
> @@ -221,16 +221,7 @@ static size_t irt_num_entry;
>
> static struct irt_entry *iosapic_alloc_irt(int num_entries)
> {
> - unsigned long a;
> -
> - /* The IRT needs to be 8-byte aligned for the PDC call.
> - * Normally kmalloc would guarantee larger alignment, but
> - * if CONFIG_DEBUG_SLAB is enabled, then we can get only
> - * 4-byte alignment on 32-bit kernels
> - */
> - a = (unsigned long)kmalloc(sizeof(struct irt_entry) * num_entries + 8, GFP_KERNEL);
> - a = (a + 7UL) & ~7UL;
> - return (struct irt_entry *)a;
> + return kcalloc(num_entries, sizeof(struct irt_entry), GFP_KERNEL);
> }
>
> /**