2008-01-30 10:23:01

by Bryan Wu

[permalink] [raw]
Subject: [PATCH 1/1] [Kallsyms] Blackfin: Allow kernel symbols in L1 to be found

From: Robin Getz <[email protected]>

Signed-off-by: Robin Getz <[email protected]>
Signed-off-by: Bryan Wu <[email protected]>
---
kernel/kallsyms.c | 6 +++++-
scripts/kallsyms.c | 10 +++++++++-
2 files changed, 14 insertions(+), 2 deletions(-)

diff --git a/kernel/kallsyms.c b/kernel/kallsyms.c
index 7dadc71..714bd5b 100644
--- a/kernel/kallsyms.c
+++ b/kernel/kallsyms.c
@@ -63,7 +63,11 @@ static inline int is_kernel_extratext(unsigned long addr)

static inline int is_kernel_text(unsigned long addr)
{
- if (addr >= (unsigned long)_stext && addr <= (unsigned long)_etext)
+ if ((addr >= (unsigned long)_stext && addr <= (unsigned long)_etext)
+#if defined(CONFIG_BLACKFIN)
+ || (addr >= (unsigned long)_stext_l1 && addr <= (unsigned long)_etext_l1)
+#endif
+ )
return 1;
return in_gate_area_no_task(addr);
}
diff --git a/scripts/kallsyms.c b/scripts/kallsyms.c
index 1f11d84..8775981 100644
--- a/scripts/kallsyms.c
+++ b/scripts/kallsyms.c
@@ -12,6 +12,8 @@
* (25/Aug/2004) Paulo Marques <[email protected]>
* Changed the compression method from stem compression to "table lookup"
* compression
+ * (10/Jul/2006) Robin Getz <[email protected]>
+ * Add _stext_l1, _etext_l1 for the L1 memory section in Blackfin.
*
* Table compression uses all the unused char codes on the symbols and
* maps these to the most used substrings (tokens). For instance, it might
@@ -42,6 +44,7 @@ struct sym_entry {
static struct sym_entry *table;
static unsigned int table_size, table_cnt;
static unsigned long long _text, _stext, _etext, _sinittext, _einittext, _sextratext, _eextratext;
+static unsigned long long _stext_l1, _etext_l1;
static int all_symbols = 0;
static char symbol_prefix_char = '\0';

@@ -103,6 +106,10 @@ static int read_symbol(FILE *in, struct sym_entry *s)
_sextratext = s->addr;
else if (strcmp(sym, "_eextratext") == 0)
_eextratext = s->addr;
+ else if (strcmp(sym, "_stext_l1" ) == 0)
+ _stext_l1 = s->addr;
+ else if (strcmp(sym, "_etext_l1" ) == 0)
+ _etext_l1 = s->addr;
else if (toupper(stype) == 'A')
{
/* Keep these useful absolute symbols */
@@ -166,7 +173,8 @@ static int symbol_valid(struct sym_entry *s)
if (!all_symbols) {
if ((s->addr < _stext || s->addr > _etext)
&& (s->addr < _sinittext || s->addr > _einittext)
- && (s->addr < _sextratext || s->addr > _eextratext))
+ && (s->addr < _sextratext || s->addr > _eextratext)
+ && (s->addr < _stext_l1 || s->addr > _etext_l1))
return 0;
/* Corner case. Discard any symbols with the same value as
* _etext _einittext or _eextratext; they can move between pass
--
1.5.3.4


2008-01-30 11:17:34

by Paulo Marques

[permalink] [raw]
Subject: Re: [PATCH 1/1] [Kallsyms] Blackfin: Allow kernel symbols in L1 to be found

Bryan Wu wrote:
> From: Robin Getz <[email protected]>
> [...]
> --- a/scripts/kallsyms.c
> +++ b/scripts/kallsyms.c
> @@ -12,6 +12,8 @@
> * (25/Aug/2004) Paulo Marques <[email protected]>
> * Changed the compression method from stem compression to "table lookup"
> * compression
> + * (10/Jul/2006) Robin Getz <[email protected]>
> + * Add _stext_l1, _etext_l1 for the L1 memory section in Blackfin.

When I wrote this initially, it was a mistake to add a Changelog in the
first place, but I didn't know better at the time.

If you're going to make changes to this file, please remove all the
Changelog, instead of adding more entries to it. The "Changelog" should
be kept by the version control system, and not the source code itself.

The rest of the patch looks ok, though.

--
Paulo Marques - http://www.grupopie.com

"Very funny Scotty. Now beam up my clothes."

2008-01-30 17:27:49

by Bryan Wu

[permalink] [raw]
Subject: Re: [PATCH 1/1] [Kallsyms] Blackfin: Allow kernel symbols in L1 to be found

On Jan 30, 2008 7:17 PM, Paulo Marques <[email protected]> wrote:
> Bryan Wu wrote:
> > From: Robin Getz <[email protected]>
> > [...]
> > --- a/scripts/kallsyms.c
> > +++ b/scripts/kallsyms.c
> > @@ -12,6 +12,8 @@
> > * (25/Aug/2004) Paulo Marques <[email protected]>
> > * Changed the compression method from stem compression to "table lookup"
> > * compression
> > + * (10/Jul/2006) Robin Getz <[email protected]>
> > + * Add _stext_l1, _etext_l1 for the L1 memory section in Blackfin.
>
> When I wrote this initially, it was a mistake to add a Changelog in the
> first place, but I didn't know better at the time.
>
> If you're going to make changes to this file, please remove all the
> Changelog, instead of adding more entries to it. The "Changelog" should
> be kept by the version control system, and not the source code itself.
>

May I remove the whole "Changelog" with a separated patch?

Thanks
-Bryan

2008-01-30 17:48:51

by Bryan Wu

[permalink] [raw]
Subject: [PATCH 1/1 try #2] [Kallsyms] Blackfin: Allow kernel symbols in L1 to be found

>From 027addca9ed40f16b4238a92ca6b871ca301c139 Mon Sep 17 00:00:00 2001
From: Robin Getz <[email protected]>
Date: Thu, 31 Jan 2008 01:21:25 +0800
Subject: [PATCH] [Kallsyms] Blackfin: Allow kernel symbols in L1 to be found

Add _stext_l1, _etext_l1 for the L1 memory section in Blackfin.

Signed-off-by: Robin Getz <[email protected]>
Signed-off-by: Bryan Wu <[email protected]>
---
kernel/kallsyms.c | 6 +++++-
scripts/kallsyms.c | 8 +++++++-
2 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/kernel/kallsyms.c b/kernel/kallsyms.c
index 7dadc71..714bd5b 100644
--- a/kernel/kallsyms.c
+++ b/kernel/kallsyms.c
@@ -63,7 +63,11 @@ static inline int is_kernel_extratext(unsigned long addr)

static inline int is_kernel_text(unsigned long addr)
{
- if (addr >= (unsigned long)_stext && addr <= (unsigned long)_etext)
+ if ((addr >= (unsigned long)_stext && addr <= (unsigned long)_etext)
+#if defined(CONFIG_BLACKFIN)
+ || (addr >= (unsigned long)_stext_l1 && addr <= (unsigned long)_etext_l1)
+#endif
+ )
return 1;
return in_gate_area_no_task(addr);
}
diff --git a/scripts/kallsyms.c b/scripts/kallsyms.c
index 1f11d84..5271db7 100644
--- a/scripts/kallsyms.c
+++ b/scripts/kallsyms.c
@@ -42,6 +42,7 @@ struct sym_entry {
static struct sym_entry *table;
static unsigned int table_size, table_cnt;
static unsigned long long _text, _stext, _etext, _sinittext, _einittext, _sextratext, _eextratext;
+static unsigned long long _stext_l1, _etext_l1;
static int all_symbols = 0;
static char symbol_prefix_char = '\0';

@@ -103,6 +104,10 @@ static int read_symbol(FILE *in, struct sym_entry *s)
_sextratext = s->addr;
else if (strcmp(sym, "_eextratext") == 0)
_eextratext = s->addr;
+ else if (strcmp(sym, "_stext_l1" ) == 0)
+ _stext_l1 = s->addr;
+ else if (strcmp(sym, "_etext_l1" ) == 0)
+ _etext_l1 = s->addr;
else if (toupper(stype) == 'A')
{
/* Keep these useful absolute symbols */
@@ -166,7 +171,8 @@ static int symbol_valid(struct sym_entry *s)
if (!all_symbols) {
if ((s->addr < _stext || s->addr > _etext)
&& (s->addr < _sinittext || s->addr > _einittext)
- && (s->addr < _sextratext || s->addr > _eextratext))
+ && (s->addr < _sextratext || s->addr > _eextratext)
+ && (s->addr < _stext_l1 || s->addr > _etext_l1))
return 0;
/* Corner case. Discard any symbols with the same value as
* _etext _einittext or _eextratext; they can move between pass
--
1.5.3.4

2008-01-30 17:50:25

by Bryan Wu

[permalink] [raw]
Subject: [PATCH] [Scripts] kallsyms: Nuke all ChangeLog, this should be logged by git

>From 2375c7eaa43d4474fb5b403dba9b3175e683484a Mon Sep 17 00:00:00 2001
From: Bryan Wu <[email protected]>
Date: Thu, 31 Jan 2008 01:30:09 +0800
Subject: [PATCH] [Scripts] kallsyms: Nuke all ChangeLog, this should be logged by git

(25/Aug/2004) Paulo Marques <[email protected]>
Changed the compression method from stem compression
to "table lookup" compression

Signed-off-by: Bryan Wu <[email protected]>
---
scripts/kallsyms.c | 6 ------
1 files changed, 0 insertions(+), 6 deletions(-)

diff --git a/scripts/kallsyms.c b/scripts/kallsyms.c
index 5271db7..1dab50e 100644
--- a/scripts/kallsyms.c
+++ b/scripts/kallsyms.c
@@ -7,12 +7,6 @@
*
* Usage: nm -n vmlinux | scripts/kallsyms [--all-symbols] > symbols.S
*
- * ChangeLog:
- *
- * (25/Aug/2004) Paulo Marques <[email protected]>
- * Changed the compression method from stem compression to "table lookup"
- * compression
- *
* Table compression uses all the unused char codes on the symbols and
* maps these to the most used substrings (tokens). For instance, it might
* map char code 0xF7 to represent "write_" and then in every symbol where
--
1.5.3.4