LKML Archive on lore.kernel.org
help / color / mirror / Atom feed
From: "Starikovskiy, Alexey Y" <alexey.y.starikovskiy@intel.com>
To: "Cedric Le Goater" <clg@fr.ibm.com>
Cc: "Andrew Morton" <akpm@osdl.org>, <linux-kernel@vger.kernel.org>,
	"Moore, Robert" <robert.moore@intel.com>,
	"keith mannthey" <kmannth@us.ibm.com>
Subject: RE: 2.6.20-rc6-mm3
Date: Fri, 2 Feb 2007 17:22:26 +0300	[thread overview]
Message-ID: <B41635854730A14CA71C92B36EC22AAC7CC853@mssmsx411> (raw)
In-Reply-To: <45C24FCE.7000503@fr.ibm.com>

[-- Attachment #1: Type: text/plain, Size: 1215 bytes --]

Hi,
I updated patch to use acpi_find_rsdp(), as all other code does.
Could you please try it?

Thanks,
	Alex.

>-----Original Message-----
>From: Cedric Le Goater [mailto:clg@fr.ibm.com]
>Sent: Thursday, February 01, 2007 11:39 PM
>To: Cedric Le Goater
>Cc: Starikovskiy, Alexey Y; Andrew Morton;
linux-kernel@vger.kernel.org;
>Moore, Robert; keith mannthey
>Subject: Re: 2.6.20-rc6-mm3
>
>Cedric Le Goater wrote:
>> Starikovskiy, Alexey Y wrote:
>>> Sorry, here is the patch... ACPI has switched to acpi_find_rsdp(),
so
>>> srat.c might want to do that too, please check.
>>
>> got it. running a compile and boot test.
>
>hmm, i got another issue while compiling :
>
>  CHK     include/linux/compile.h
>  UPD     include/linux/compile.h
>  CC      init/version.o
>  LD      init/built-in.o
>  LD      .tmp_vmlinux1
>arch/i386/kernel/built-in.o: In function `get_memcfg_from_srat':
>/home/legoater/linux/2.6.20-rc6-mm3/arch/i386/kernel/srat.c:279:
undefined
>reference to `acpi_find_root_pointer'
>
>it seems that drivers/acpi/tables/tbxfroot.c is never compiled ?
>
>> I should have the results in 'my' morning (UTC+1).
>
>I'll catchup in the morning.
>
>thanks,
>
>C.

[-- Attachment #2: fix_i386_srat.patch --]
[-- Type: application/octet-stream, Size: 6826 bytes --]

Make srat.c in i386 compile again.

From: Alexey Starikovskiy <alexey.y.starikovskiy@linux.intel.com>


---

 arch/i386/kernel/srat.c |   78 +++++++++++++++++++++++------------------------
 1 files changed, 38 insertions(+), 40 deletions(-)

diff --git a/arch/i386/kernel/srat.c b/arch/i386/kernel/srat.c
index f7e735c..5ed259b 100644
--- a/arch/i386/kernel/srat.c
+++ b/arch/i386/kernel/srat.c
@@ -62,19 +62,19 @@ extern void * boot_ioremap(unsigned long
 /* Identify CPU proximity domains */
 static void __init parse_cpu_affinity_structure(char *p)
 {
-	struct acpi_table_processor_affinity *cpu_affinity = 
-				(struct acpi_table_processor_affinity *) p;
+	struct acpi_srat_cpu_affinity *cpu_affinity = 
+				(struct acpi_srat_cpu_affinity *) p;
 
-	if (!cpu_affinity->flags.enabled)
+	if ((cpu_affinity->flags & ACPI_SRAT_CPU_ENABLED) == 0)
 		return;		/* empty entry */
 
 	/* mark this node as "seen" in node bitmap */
-	BMAP_SET(pxm_bitmap, cpu_affinity->proximity_domain);
+	BMAP_SET(pxm_bitmap, cpu_affinity->proximity_domain_lo);
 
-	apicid_to_pxm[cpu_affinity->apic_id] = cpu_affinity->proximity_domain;
+	apicid_to_pxm[cpu_affinity->apic_id] = cpu_affinity->proximity_domain_lo;
 
 	printk("CPU 0x%02X in proximity domain 0x%02X\n",
-		cpu_affinity->apic_id, cpu_affinity->proximity_domain);
+		cpu_affinity->apic_id, cpu_affinity->proximity_domain_lo);
 }
 
 /*
@@ -87,25 +87,24 @@ static void __init parse_memory_affinity
 	unsigned long start_pfn, end_pfn; 
 	u8 pxm;
 	struct node_memory_chunk_s *p, *q, *pend;
-	struct acpi_table_memory_affinity *memory_affinity =
-			(struct acpi_table_memory_affinity *) sratp;
+	struct acpi_srat_mem_affinity *memory_affinity =
+			(struct acpi_srat_mem_affinity *) sratp;
 
-	if (!memory_affinity->flags.enabled)
+	if ((memory_affinity->flags & ACPI_SRAT_MEM_ENABLED) == 0)
 		return;		/* empty entry */
 
+	pxm = memory_affinity->proximity_domain & 0xff;
+
 	/* mark this node as "seen" in node bitmap */
-	BMAP_SET(pxm_bitmap, memory_affinity->proximity_domain);
+	BMAP_SET(pxm_bitmap, pxm);
 
 	/* calculate info for memory chunk structure */
-	paddr = memory_affinity->base_addr_hi;
-	paddr = (paddr << 32) | memory_affinity->base_addr_lo;
-	size = memory_affinity->length_hi;
-	size = (size << 32) | memory_affinity->length_lo;
+	paddr = memory_affinity->base_address;
+	size = memory_affinity->length;
 	
 	start_pfn = paddr >> PAGE_SHIFT;
 	end_pfn = (paddr + size) >> PAGE_SHIFT;
 	
-	pxm = memory_affinity->proximity_domain;
 
 	if (num_memory_chunks >= MAXCHUNKS) {
 		printk("Too many mem chunks in SRAT. Ignoring %lld MBytes at %llx\n",
@@ -132,8 +131,8 @@ static void __init parse_memory_affinity
 	printk("Memory range 0x%lX to 0x%lX (type 0x%X) in proximity domain 0x%02X %s\n",
 		start_pfn, end_pfn,
 		memory_affinity->memory_type,
-		memory_affinity->proximity_domain,
-		(memory_affinity->flags.hot_pluggable ?
+		pxm,
+		((memory_affinity->flags & ACPI_SRAT_MEM_HOT_PLUGGABLE) ?
 		 "enabled and removable" : "enabled" ) );
 }
 
@@ -185,10 +184,10 @@ static int __init acpi20_parse_srat(stru
 	num_memory_chunks = 0;
 	while (p < end) {
 		switch (*p) {
-		case ACPI_SRAT_PROCESSOR_AFFINITY:
+		case ACPI_SRAT_TYPE_CPU_AFFINITY:
 			parse_cpu_affinity_structure(p);
 			break;
-		case ACPI_SRAT_MEMORY_AFFINITY:
+		case ACPI_SRAT_TYPE_MEMORY_AFFINITY:
 			parse_memory_affinity_structure(p);
 			break;
 		default:
@@ -262,31 +261,30 @@ out_fail:
 	return 0;
 }
 
+struct acpi_static_rsdt {
+	struct acpi_table_rsdt table;
+	u32 padding[7]; /* Allow for 7 more table entries */
+};
+
 int __init get_memcfg_from_srat(void)
 {
 	struct acpi_table_header *header = NULL;
 	struct acpi_table_rsdp *rsdp = NULL;
 	struct acpi_table_rsdt *rsdt = NULL;
-	struct acpi_pointer *rsdp_address = NULL;
-	struct acpi_table_rsdt saved_rsdt;
+	acpi_native_uint rsdp_address = 0;
+	struct acpi_static_rsdt saved_rsdt;
 	int tables = 0;
 	int i = 0;
 
-	if (ACPI_FAILURE(acpi_find_root_pointer(ACPI_PHYSICAL_ADDRESSING,
-						rsdp_address))) {
+	rsdp_address = acpi_find_rsdp();
+	if (!rsdp_address) {
 		printk("%s: System description tables not found\n",
 		       __FUNCTION__);
 		goto out_err;
 	}
 
-	if (rsdp_address->pointer_type == ACPI_PHYSICAL_POINTER) {
-		printk("%s: assigning address to rsdp\n", __FUNCTION__);
-		rsdp = (struct acpi_table_rsdp *)
-				(u32)rsdp_address->pointer.physical;
-	} else {
-		printk("%s: rsdp_address is not a physical pointer\n", __FUNCTION__);
-		goto out_err;
-	}
+	printk("%s: assigning address to rsdp\n", __FUNCTION__);
+	rsdp = (struct acpi_table_rsdp *)(u32)rsdp_address;
 	if (!rsdp) {
 		printk("%s: Didn't find ACPI root!\n", __FUNCTION__);
 		goto out_err;
@@ -295,13 +293,13 @@ int __init get_memcfg_from_srat(void)
 	printk(KERN_INFO "%.8s v%d [%.6s]\n", rsdp->signature, rsdp->revision,
 		rsdp->oem_id);
 
-	if (strncmp(rsdp->signature, RSDP_SIG,strlen(RSDP_SIG))) {
+	if (strncmp(rsdp->signature, ACPI_SIG_RSDP,strlen(ACPI_SIG_RSDP))) {
 		printk(KERN_WARNING "%s: RSDP table signature incorrect\n", __FUNCTION__);
 		goto out_err;
 	}
 
 	rsdt = (struct acpi_table_rsdt *)
-	    boot_ioremap(rsdp->rsdt_address, sizeof(struct acpi_table_rsdt));
+	    boot_ioremap(rsdp->rsdt_physical_address, sizeof(struct acpi_table_rsdt));
 
 	if (!rsdt) {
 		printk(KERN_WARNING
@@ -310,9 +308,9 @@ int __init get_memcfg_from_srat(void)
 		goto out_err;
 	}
 
-	header = & rsdt->header;
+	header = &rsdt->header;
 
-	if (strncmp(header->signature, RSDT_SIG, strlen(RSDT_SIG))) {
+	if (strncmp(header->signature, ACPI_SIG_RSDT, strlen(ACPI_SIG_RSDT))) {
 		printk(KERN_WARNING "ACPI: RSDT signature incorrect\n");
 		goto out_err;
 	}
@@ -330,9 +328,9 @@ int __init get_memcfg_from_srat(void)
 
 	memcpy(&saved_rsdt, rsdt, sizeof(saved_rsdt));
 
-	if (saved_rsdt.header.length > sizeof(saved_rsdt)) {
+	if (saved_rsdt.table.header.length > sizeof(saved_rsdt)) {
 		printk(KERN_WARNING "ACPI: Too big length in RSDT: %d\n",
-		       saved_rsdt.header.length);
+		       saved_rsdt.table.header.length);
 		goto out_err;
 	}
 
@@ -341,15 +339,15 @@ int __init get_memcfg_from_srat(void)
 	for (i = 0; i < tables; i++) {
 		/* Map in header, then map in full table length. */
 		header = (struct acpi_table_header *)
-			boot_ioremap(saved_rsdt.entry[i], sizeof(struct acpi_table_header));
+			boot_ioremap(saved_rsdt.table.table_offset_entry[i], sizeof(struct acpi_table_header));
 		if (!header)
 			break;
 		header = (struct acpi_table_header *)
-			boot_ioremap(saved_rsdt.entry[i], header->length);
+			boot_ioremap(saved_rsdt.table.table_offset_entry[i], header->length);
 		if (!header)
 			break;
 
-		if (strncmp((char *) &header->signature, "SRAT", 4))
+		if (strncmp((char *) &header->signature, ACPI_SIG_SRAT, 4))
 			continue;
 
 		/* we've found the srat table. don't need to look at any more tables */

  reply	other threads:[~2007-02-02 14:22 UTC|newest]

Thread overview: 124+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-01-30  4:45 2.6.20-rc6-mm3 Andrew Morton
2007-01-30  4:50 ` 2.6.20-rc6-mm3 Jeff Garzik
2007-01-30  5:11   ` 2.6.20-rc6-mm3 Andrew Morton
2007-01-30  9:56     ` 2.6.20-rc6-mm3 Evgeniy Polyakov
2007-01-30  8:16 ` 2.6.20-rc6-mm3 Sunil Naidu
2007-01-30  8:32   ` 2.6.20-rc6-mm3 Andrew Morton
2007-01-30  9:06 ` 2.6.20-rc6-mm3 Olivier Galibert
2007-01-30  9:26   ` 2.6.20-rc6-mm3 Andrew Morton
2007-01-30 18:47     ` 2.6.20-rc6-mm3 Olivier Galibert
2007-01-31  7:57     ` 2.6.20-rc6-mm3 Len Brown
2007-02-01  4:25     ` 2.6.20-rc6-mm3 Len Brown
2007-01-30 22:18 ` 2.6.20-rc6-mm3 Maciej Rutecki
2007-01-30 22:27   ` 2.6.20-rc6-mm3 Andrew Morton
2007-01-31  0:55     ` 2.6.20-rc6-mm3 Karsten Wiese
2007-01-31 13:22       ` 2.6.20-rc6-mm3 Ingo Molnar
2007-01-31 14:25         ` 2.6.20-rc6-mm3 Karsten Wiese
2007-02-01  8:01           ` 2.6.20-rc6-mm3 Ingo Molnar
2007-02-01 10:44             ` 2.6.20-rc6-mm3 Karsten Wiese
2007-03-01 11:11               ` 2.6.20-rc6-mm3 Karsten Wiese
2007-02-03  0:37             ` 2.6.20-rc6-mm3 Pavel Machek
2007-02-01 13:03       ` [PATCH -mm] gtod persistent clock resume fix Thomas Gleixner
2007-01-31 11:54     ` 2.6.20-rc6-mm3 Maciej Rutecki
2007-02-01  4:10       ` 2.6.20-rc6-mm3 Len Brown
2007-02-01  4:17         ` 2.6.20-rc6-mm3 Andrew Morton
2007-01-31  1:16   ` 2.6.20-rc6-mm3 Tilman Schmidt
2007-01-31  1:25     ` 2.6.20-rc6-mm3 Andrew Morton
2007-01-31 11:38       ` 2.6.20-rc6-mm3 Tilman Schmidt
2007-01-31 12:29         ` 2.6.20-rc6-mm3 Alexey Starikovskiy
2007-01-31 16:02           ` 2.6.20-rc6-mm3 Maciej Rutecki
2007-01-31 18:28           ` 2.6.20-rc6-mm3 Tilman Schmidt
2007-01-31 21:52 ` 2.6.20-rc6-mm3 Mattia Dongili
2007-01-31 23:21   ` 2.6.20-rc6-mm3 Mattia Dongili
2007-02-01 19:04     ` 2.6.20-rc6-mm3 Ingo Molnar
2007-02-01 19:36     ` 2.6.20-rc6-mm3 Thomas Gleixner
2007-02-01 20:01       ` 2.6.20-rc6-mm3 Thomas Gleixner
2007-02-01 21:11         ` 2.6.20-rc6-mm3 Mattia Dongili
2007-02-01 22:33           ` 2.6.20-rc6-mm3 Thomas Gleixner
2007-02-02 19:18             ` dynticks + iptables almost stops the boot process [was: Re: 2.6.20-rc6-mm3] Mattia Dongili
2007-02-02 20:27               ` Thomas Gleixner
2007-02-02 20:43                 ` Mattia Dongili
2007-02-06 16:48                   ` Ingo Molnar
2007-02-06 19:28                     ` Mattia Dongili
2007-02-06 23:12                       ` Tilman Schmidt
2007-02-06 23:17                         ` Thomas Gleixner
2007-02-07  1:01                           ` Andrew Morton
2007-02-07 19:33                             ` Ingo Molnar
2007-02-01 21:37         ` 2.6.20-rc6-mm3 Mattia Dongili
2007-02-01 20:24       ` 2.6.20-rc6-mm3 Mattia Dongili
2007-02-01  0:14 ` 2.6.20-rc6-mm3 Christoph Lameter
2007-02-01  0:24   ` 2.6.20-rc6-mm3 Andrew Morton
2007-02-01  0:27     ` 2.6.20-rc6-mm3 Christoph Lameter
2007-02-01  0:36       ` 2.6.20-rc6-mm3 Andrew Morton
2007-02-01  0:38         ` 2.6.20-rc6-mm3 Christoph Lameter
2007-02-01  6:20         ` 2.6.20-rc6-mm3 David Chinner
2007-02-01  7:12           ` 2.6.20-rc6-mm3 Andrew Morton
2007-02-01 19:01             ` 2.6.20-rc6-mm3 Christoph Lameter
2007-02-01 19:18               ` 2.6.20-rc6-mm3 Jens Axboe
2007-02-01 20:18                 ` 2.6.20-rc6-mm3 Christoph Lameter
2007-02-01 20:26                   ` 2.6.20-rc6-mm3 Jens Axboe
2007-02-01 23:02                     ` 2.6.20-rc6-mm3 Christoph Lameter
2007-02-05 12:02                       ` 2.6.20-rc6-mm3 Jens Axboe
2007-02-05 12:17                         ` 2.6.20-rc6-mm3 Jens Axboe
2007-02-05 12:56                           ` 2.6.20-rc6-mm3 Jens Axboe
2007-02-05 18:20                             ` 2.6.20-rc6-mm3 Christoph Lameter
2007-02-05 18:34                               ` 2.6.20-rc6-mm3 Jens Axboe
2007-02-02  4:08                 ` 2.6.20-rc6-mm3 David Chinner
2007-02-02  7:31                   ` 2.6.20-rc6-mm3 Jens Axboe
2007-02-01 18:24 ` 2.6.20-rc6-mm3 Cedric Le Goater
2007-02-01 19:37   ` 2.6.20-rc6-mm3 Starikovskiy, Alexey Y
2007-02-01 20:29     ` 2.6.20-rc6-mm3 Cedric Le Goater
2007-02-01 20:38       ` 2.6.20-rc6-mm3 Cedric Le Goater
2007-02-02 14:22         ` Starikovskiy, Alexey Y [this message]
2007-02-02 14:47           ` 2.6.20-rc6-mm3 Cedric Le Goater
2007-02-02 14:50             ` 2.6.20-rc6-mm3 Starikovskiy, Alexey Y
2007-02-02 16:04               ` 2.6.20-rc6-mm3 Cedric Le Goater
2007-02-03  7:30                 ` 2.6.20-rc6-mm3 Cedric Le Goater
2007-02-03  7:57                   ` 2.6.20-rc6-mm3 Starikovskiy, Alexey Y
2007-02-02 17:39 ` 2.6.20-rc6-mm3 Daniel Walker
2007-02-06 16:03 ` 2.6.20-rc6-mm3 Daniel Walker
2007-02-06 18:36   ` 2.6.20-rc6-mm3 Thomas Gleixner
2007-02-06 18:45     ` 2.6.20-rc6-mm3 Daniel Walker
2007-02-06 19:07       ` 2.6.20-rc6-mm3 Thomas Gleixner
2007-02-06 19:55         ` 2.6.20-rc6-mm3 Daniel Walker
2007-02-06 20:20           ` 2.6.20-rc6-mm3 Thomas Gleixner
2007-02-06 20:40             ` 2.6.20-rc6-mm3 Daniel Walker
2007-02-06 20:52               ` 2.6.20-rc6-mm3 Ingo Molnar
2007-02-06 20:56                 ` 2.6.20-rc6-mm3 Daniel Walker
2007-02-06 21:09                   ` 2.6.20-rc6-mm3 Ingo Molnar
2007-02-06 21:20                     ` 2.6.20-rc6-mm3 Ingo Molnar
2007-02-06 21:23                     ` 2.6.20-rc6-mm3 Daniel Walker
2007-02-06 21:41                       ` 2.6.20-rc6-mm3 Ingo Molnar
2007-02-06 21:54                         ` 2.6.20-rc6-mm3 Daniel Walker
2007-02-06 22:08                           ` 2.6.20-rc6-mm3 Ingo Molnar
2007-02-06 22:42                             ` 2.6.20-rc6-mm3 Daniel Walker
2007-02-06 22:56                               ` 2.6.20-rc6-mm3 Ingo Molnar
2007-02-06 23:04                                 ` 2.6.20-rc6-mm3 Daniel Walker
2007-02-06 23:14                                   ` 2.6.20-rc6-mm3 Ingo Molnar
2007-02-06 23:22                                     ` 2.6.20-rc6-mm3 Daniel Walker
2007-02-06 23:28                                       ` 2.6.20-rc6-mm3 Ingo Molnar
2007-02-06 23:35                                         ` 2.6.20-rc6-mm3 Daniel Walker
2007-02-06 23:44                                           ` 2.6.20-rc6-mm3 Thomas Gleixner
2007-02-06 23:51                                           ` 2.6.20-rc6-mm3 Ingo Molnar
2007-02-07  2:46                                             ` 2.6.20-rc6-mm3 Daniel Walker
2007-02-06 23:36                                       ` 2.6.20-rc6-mm3 Thomas Gleixner
2007-02-07  1:12                                         ` 2.6.20-rc6-mm3 Daniel Walker
2007-02-07 14:53                                           ` 2.6.20-rc6-mm3 Thomas Gleixner
2007-02-06 23:37                                       ` 2.6.20-rc6-mm3 Ingo Molnar
2007-02-06 22:13                           ` 2.6.20-rc6-mm3 Thomas Gleixner
2007-02-06 21:43                       ` 2.6.20-rc6-mm3 Thomas Gleixner
2007-02-06 21:59                         ` 2.6.20-rc6-mm3 Daniel Walker
2007-02-06 21:17               ` 2.6.20-rc6-mm3 Thomas Gleixner
2007-02-06 21:25                 ` 2.6.20-rc6-mm3 Daniel Walker
2007-02-06 23:15               ` 2.6.20-rc6-mm3 Rob Landley
2007-02-06 23:28                 ` 2.6.20-rc6-mm3 Daniel Walker
2007-02-06 23:55                   ` 2.6.20-rc6-mm3 Rob Landley
2007-02-06 22:11 ` [-mm patch] #ifdef ACPI_FUTURE_USAGE acpi_os_readable() Adrian Bunk
2007-02-06 22:12 ` [RFC: -mm patch] drivers/net/atl1/: possible cleanups Adrian Bunk
2007-02-07  0:19   ` Jay Cliburn
2007-02-07  0:22     ` Jeff Garzik
2007-02-07  0:24       ` J. K. Cliburn
2007-02-07  0:24     ` Adrian Bunk
2007-02-06 22:12 ` [-mm patch] drivers/scsi/aacraid/: cleanups Adrian Bunk
2007-02-06 22:12 ` [-mm patch] make gfs2_writepages() static Adrian Bunk
2007-02-07 10:50   ` Steven Whitehouse

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=B41635854730A14CA71C92B36EC22AAC7CC853@mssmsx411 \
    --to=alexey.y.starikovskiy@intel.com \
    --cc=akpm@osdl.org \
    --cc=clg@fr.ibm.com \
    --cc=kmannth@us.ibm.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=robert.moore@intel.com \
    --subject='RE: 2.6.20-rc6-mm3' \
    /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

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).