Re: [patch V2 07/16] x86/ioperm: Move iobitmap data into a struct
From: Andy Lutomirski
Date: Tue Nov 12 2019 - 11:02:52 EST
On Mon, Nov 11, 2019 at 2:35 PM Thomas Gleixner <tglx@xxxxxxxxxxxxx> wrote:
>
> No point in having all the data in thread_struct, especially as upcoming
> changes add more.
>
> Make the bitmap in the new struct accessible as array of longs and as array
> of characters via a union, so both the bitmap functions and the update
> logic can avoid type casts.
>
> Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
> ---
> V2: New patch
> ---
> arch/x86/include/asm/iobitmap.h | 15 ++++++++
> arch/x86/include/asm/processor.h | 21 +++++------
> arch/x86/kernel/cpu/common.c | 2 -
> arch/x86/kernel/ioport.c | 69 +++++++++++++++++++--------------------
> arch/x86/kernel/process.c | 38 +++++++++++----------
> arch/x86/kernel/ptrace.c | 12 ++++--
> 6 files changed, 89 insertions(+), 68 deletions(-)
>
> --- /dev/null
> +++ b/arch/x86/include/asm/iobitmap.h
> @@ -0,0 +1,15 @@
> +/* SPDX-License-Identifier: GPL-2.0 */
> +#ifndef _ASM_X86_IOBITMAP_H
> +#define _ASM_X86_IOBITMAP_H
> +
> +#include <asm/processor.h>
> +
> +struct io_bitmap {
> + unsigned int io_bitmap_max;
> + union {
> + unsigned long bits[IO_BITMAP_LONGS];
> + unsigned char bitmap_bytes[IO_BITMAP_BYTES];
> + };
Now that you have bytes and longs, can you rename io_bitmap_max so
it's obvious which one it refers to?