RE: [PATCH 1/1] - increase acpi owner_id max

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



The OwnerId field within a namespace node is 8 bits, and this is the
main constraint on the maximum OwnerId. You can't simply bump up the
number of owner ids without changing this field.

If we need more than 255 owner Ids, the width of this field will have to
be increased, or we will need to use a pointer for the field in order to
maintain a linked list of all nodes owned by a particular owner.

Bob

> -----Original Message-----
> From: [email protected] [mailto:linux-acpi-
> [email protected]] On Behalf Of John Keller
> Sent: Friday, January 26, 2007 2:40 PM
> To: [email protected]
> Cc: [email protected]; [email protected]; linux-
> [email protected]; John Keller
> Subject: [PATCH 1/1] - increase acpi owner_id max
> 
> To support systems with large IO configurations,
> this patch increases the number of available ACPI
> owner ids to 1023.
> 
> On SN platforms, we represent every populated root
> bus slot with an ACPI SSDT table containing info
> for every device and PPB attached to the slot.
> Each SSDT requires a unique ACPI owner id.
> 
> Signed-off-by: John Keller <[email protected]>
> ---
> 
>  drivers/acpi/utilities/utmisc.c |    6 +++---
>  include/acpi/acconfig.h         |    4 ++--
>  include/acpi/aclocal.h          |    4 ++--
>  3 files changed, 7 insertions(+), 7 deletions(-)
> 
> 
> Index: linux/drivers/acpi/utilities/utmisc.c
> ===================================================================
> --- linux.orig/drivers/acpi/utilities/utmisc.c	2007-01-25
> 11:27:25.509259412 -0600
> +++ linux/drivers/acpi/utilities/utmisc.c	2007-01-26
13:16:09.551081284 -
> 0600
> @@ -147,7 +147,7 @@ acpi_status acpi_ut_allocate_owner_id(ac
>  				/*
>  				 * Construct encoded ID from the index
and bit
> position
>  				 *
> -				 * Note: Last [j].k (bit 255) is never
used and is
> marked
> +				 * Note: Last [j].k (bit 1023) is never
used and
> is marked
>  				 * permanently allocated (prevents +1
overflow)
>  				 */
>  				*owner_id =
> @@ -175,7 +175,7 @@ acpi_status acpi_ut_allocate_owner_id(ac
>  	 */
>  	status = AE_OWNER_ID_LIMIT;
>  	ACPI_ERROR((AE_INFO,
> -		    "Could not allocate new OwnerId (255 max),
> AE_OWNER_ID_LIMIT"));
> +		    "Could not allocate new OwnerId (1023 max),
> AE_OWNER_ID_LIMIT"));
> 
>        exit:
>  	(void)acpi_ut_release_mutex(ACPI_MTX_CACHES);
> @@ -192,7 +192,7 @@ acpi_status acpi_ut_allocate_owner_id(ac
>   *              control method or unloading a table. Either way, we
would
>   *              ignore any error anyway.
>   *
> - * DESCRIPTION: Release a table or method owner ID.  Valid IDs are 1
-
> 255
> + * DESCRIPTION: Release a table or method owner ID.  Valid IDs are 1
-
> 1023
>   *
> 
>
************************************************************************
**
> ****/
> 
> Index: linux/include/acpi/acconfig.h
> ===================================================================
> --- linux.orig/include/acpi/acconfig.h	2007-01-25
11:27:25.577267818 -
> 0600
> +++ linux/include/acpi/acconfig.h	2007-01-26 13:17:14.111002597
-0600
> @@ -111,9 +111,9 @@
> 
>  #define ACPI_SYSMEM_REGION_WINDOW_SIZE  4096
> 
> -/* owner_id tracking. 8 entries allows for 255 owner_ids */
> +/* owner_id tracking. 32 entries allow for 1023 owner_ids */
> 
> -#define ACPI_NUM_OWNERID_MASKS          8
> +#define ACPI_NUM_OWNERID_MASKS		32
> 
> 
>
/***********************************************************************
**
> *****
>   *
> Index: linux/include/acpi/aclocal.h
> ===================================================================
> --- linux.orig/include/acpi/aclocal.h	2007-01-25 11:27:25.585268807 -
> 0600
> +++ linux/include/acpi/aclocal.h	2007-01-26 13:20:06.148115848
-0600
> @@ -122,8 +122,8 @@ static char *acpi_gbl_mutex_names[ACPI_N
> 
>  /* Owner IDs are used to track namespace nodes for selective deletion
*/
> 
> -typedef u8 acpi_owner_id;
> -#define ACPI_OWNER_ID_MAX               0xFF
> +typedef u16 acpi_owner_id;
> +#define ACPI_OWNER_ID_MAX               0x3FF
> 
>  /* This Thread ID means that the mutex is not in use (unlocked) */
> 
> -
> To unsubscribe from this list: send the line "unsubscribe linux-acpi"
in
> the body of a message to [email protected]
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux