Jiri Slaby | 8 Sep 21:59 2007
Picon

[PATCH 2/2] forbid asm/bitops.h direct inclusion

forbid asm/bitops.h direct inclusion

Because of compile errors that may occur after bit changes if asm/bitops.h is
included directly without e.g. linux/kernel.h which includes linux/bitops.h, forbid
direct inclusion of asm/bitops.h. Thanks to Adrian Bunk.

Signed-off-by: Jiri Slaby <jirislaby <at> gmail.com>
Cc: Adrian Bunk <bunk <at> kernel.org>

---
commit cd28a228ae727b2224da736edc613c58a08c5ed9
tree 483ca1765baaf80996484889ed3078c4af24be03
parent 3c05eef3d0a98065323d7d6d9a78e0985eba4b10
author Jiri Slaby <jirislaby <at> gmail.com> Sat, 08 Sep 2007 21:02:48 +0200
committer Jiri Slaby <jirislaby <at> gmail.com> Sat, 08 Sep 2007 21:02:48 +0200

 include/asm-alpha/bitops.h     |    4 ++++
 include/asm-arm/bitops.h       |    4 ++++
 include/asm-avr32/bitops.h     |    4 ++++
 include/asm-blackfin/bitops.h  |    4 ++++
 include/asm-cris/bitops.h      |    4 ++++
 include/asm-frv/bitops.h       |    4 ++++
 include/asm-generic/bitops.h   |    4 ++++
 include/asm-h8300/bitops.h     |    5 +++++
 include/asm-i386/bitops.h      |    4 ++++
 include/asm-ia64/bitops.h      |    4 ++++
 include/asm-m32r/bitops.h      |    4 ++++
 include/asm-m68k/bitops.h      |    4 ++++
 include/asm-m68knommu/bitops.h |    4 ++++
 include/asm-mips/bitops.h      |    4 ++++
(Continue reading)

Robin Getz | 10 Sep 04:38 2007

bf561 / SMP-like patch

Attached is the latest SMP-like patch for the BF561.

It now supports booting in SMP mode with both instruction and data caches 
enabled for each core. 

Instead of going for a complete serialization of both cores for kernel access 
as suggested on uClinux-dist-devel, I chose to let them compete for kernel 
resources, but have them invalidate their respective Dcache on-the-fly as 
soon as a potential harmful cache vs SDRAM discrepancy is detected.

Aside of implementing the Blackfin-specific SMP boot protocol and 
differentiating per-CPU data when applicable, the main issue involved in this 
port has been to compensate for the lack of cache coherence available with 
the bf561 architecture. As a consequence of this, any change to the SDRAM 
performed by a given core would not immediately appear to the other core when 
dealing with shared memory areas. Unless the corresponding SDRAM memory 
location gets invalidated by the second core before accessing the shared 
data, the latter would likely keep using its older L1 cached version of the 
changed data instead of the up-to-date one, hence causing deadly situations.

To work around this issue, a so-called "cache coherence emulation" was 
implmented, which boils down to invalidate the smallest revelant section of 
the Dcache when it is likely, or at least possible, that the SDRAM area it 
caches has changed underneath, due to some action of the opposite core.

To limit the amount of cache to invalidate, and also the frequency of such 
invalidations, the following assumptions have been retained:

  - Operations which carry the atomic access semantics - such as atomic
 counters, bitops, rwlocks and spinlocks - all have a dedicated
(Continue reading)

Ralf Baechle | 10 Sep 14:28 2007

Re: [PATCH 2/2] forbid asm/bitops.h direct inclusion

On Sat, Sep 08, 2007 at 09:00:48PM +0100, Jiri Slaby wrote:

> forbid asm/bitops.h direct inclusion
> 
> Because of compile errors that may occur after bit changes if asm/bitops.h is
> included directly without e.g. linux/kernel.h which includes linux/bitops.h, forbid
> direct inclusion of asm/bitops.h. Thanks to Adrian Bunk.

This is the kind of thing that checkpatch.pl is already checking for and
I like that idea much more than adding thousands of checks over many of
the header files under asm.

  Ralf
-
To unsubscribe from this list: send the line "unsubscribe sparclinux" in
the body of a message to majordomo <at> vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Adrian Bunk | 10 Sep 15:03 2007

Re: [PATCH 2/2] forbid asm/bitops.h direct inclusion

On Mon, Sep 10, 2007 at 01:28:38PM +0100, Ralf Baechle wrote:
> On Sat, Sep 08, 2007 at 09:00:48PM +0100, Jiri Slaby wrote:
> 
> > forbid asm/bitops.h direct inclusion
> > 
> > Because of compile errors that may occur after bit changes if asm/bitops.h is
> > included directly without e.g. linux/kernel.h which includes linux/bitops.h, forbid
> > direct inclusion of asm/bitops.h. Thanks to Adrian Bunk.
> 
> This is the kind of thing that checkpatch.pl is already checking for and
> I like that idea much more than adding thousands of checks over many of
> the header files under asm.

Checks in the header are only for header files where including only the 
asm header doesn't work which doesn't seem to be the common case.

>   Ralf

cu
Adrian

--

-- 

       "Is there not promise of rain?" Ling Tan asked suddenly out
        of the darkness. There had been need of rain for many days.
       "Only a promise," Lao Er said.
                                       Pearl S. Buck - Dragon Seed

-
To unsubscribe from this list: send the line "unsubscribe linux-ia64" in
(Continue reading)

Bryan Wu | 13 Sep 07:48 2007

[GIT PULL] Blackfin arch bug fixing for 2.6.23-rc6

Hi Linus,

Please pull from 'for-linus' branch of

master.kernel.org:/pub/scm/linux/kernel/git/cooloney/blackfin-2.6.git for-linus

to receive the following updates:

 arch/blackfin/mach-common/pm.c              |    6 ++
 include/asm-blackfin/mach-bf561/cdefBF561.h |    4 +-
 include/asm-blackfin/string.h               |  129 +++++++++++++++++----------
 3 files changed, 88 insertions(+), 51 deletions(-)

Michael Hennerich (1):
      Blackfin arch: Update/Fix PM support add new pm_ops valid

Mike Frysinger (1):
      Blackfin arch: fix some bugs in lib/string.h functions found by our string testing modules

Robin Getz (1):
      Blackfin arch: fix the aliased write macros

diff --git a/arch/blackfin/mach-common/pm.c b/arch/blackfin/mach-common/pm.c
index 1772d8d..b103027 100644
--- a/arch/blackfin/mach-common/pm.c
+++ b/arch/blackfin/mach-common/pm.c
 <at>  <at>  -158,10 +158,16  <at>  <at>  static int bfin_pm_finish(suspend_state_t state)
 	return 0;
 }

(Continue reading)

Adam-Li Yi | 13 Sep 09:15 2007

SRAM_SLT_NULL: why SRAM in NULL state

Hi,

I met some problem when loading a dynamic lib. The lib includes some
section in L1:

linux:~> bfin-linux-uclibc-readelf -l libavcodec.so.51
Elf file type is DYN (Shared object file)
Entry point 0x1bd68
There are 8 program headers, starting at offset 52
Program Headers:
  Type           Offset   VirtAddr   PhysAddr   FileSiz MemSiz  Flg
Align
  LOAD           0x000000 0x00000000 0x00000000 0x31c404 0x31c404 R E
0x1000
  LOAD           0x31c404 0x00320404 0x00320404 0x119e4 0x108694 RW
0x1000
  LOAD           0x32e000 0xff800000 0xff800000 0x00180 0x00180 RW
0x1000
  LOAD           0x32f000 0xff900000 0xff900000 0x00124 0x00124 RW
0x1000
  LOAD           0x330000 0xffa00000 0xffa00000 0x00bb8 0x00bb8 R E
0x1000
  DYNAMIC        0x32286c 0x0032686c 0x0032686c 0x000e8 0x000e8 RW  0x4
  GNU_EH_FRAME   0x31c3fc 0x0031c3fc 0x0031c3fc 0x00008 0x00008 R   0x4
  GNU_STACK      0x000000 0x00000000 0x00000000 0x00000 0x20000 RWE 0x8

And "/prom/sram" in my system looks like:

root:~> cat /proc/sram
<snip>
(Continue reading)

Bryan Wu | 13 Sep 08:58 2007

Re: [GIT PULL] Blackfin arch bug fixing for 2.6.23-rc6

On Thu, 2007-09-13 at 08:54 +0200, Jan Dittmer wrote:
> Bryan Wu wrote:
> > Hi Linus,
> > 
> > Please pull from 'for-linus' branch of
> > 
> > master.kernel.org:/pub/scm/linux/kernel/git/cooloney/blackfin-2.6.git for-linus
> > 
> > to receive the following updates:
> > 
> >  arch/blackfin/mach-common/pm.c              |    6 ++
> >  include/asm-blackfin/mach-bf561/cdefBF561.h |    4 +-
> >  include/asm-blackfin/string.h               |  129 +++++++++++++++++----------
> 
> btw. what about this error?
> 
> fs/binfmt_flat.c:760:50: error: macro "flat_get_addr_from_rp" requires 4 
> arguments, but only 3 given
> fs/binfmt_flat.c:760: error: ‘flat_get_addr_from_rp’ undeclared (first use in 
> this function)
> fs/binfmt_flat.c:760: error: (Each undeclared identifier is reported only once
> fs/binfmt_flat.c:760: error: for each function it appears in.)
> make[2]: *** [fs/binfmt_flat.o] Error 1
> make[1]: *** [fs] Error 2
> make: *** [_all] Error 2
> 

Thanks for the testing.

> any chance to get that fixed prior to .23? (not a regression, but
(Continue reading)

Adam-Li Yi | 13 Sep 09:36 2007

Re: SRAM_SLT_NULL: why SRAM in NULL state

Double check shows these three memory slots overlapped. 

> ff800050-ff803ea8    15960  165 ALLOCATED
> ff803ea8-ff804000      344    0 FREE
> ff8031a8-ff804000     3672    0 NULL 

ff800050 - ff8031a8: Allocated
ff8031a8 - ff803ea8: Allocated && NULL
ff803ea8 - ff804000: Free && NULL

If ignoring "NULL", the ethernet drivers uses 15960 bytes of L1 Data A,
leaving not enough space for libavcodec.

-Yi
Mike Frysinger | 13 Sep 09:55 2007
Picon

Re: SRAM_SLT_NULL: why SRAM in NULL state

On 9/13/07, Adam-Li Yi <yi.li@...> wrote:
> What does "NULL" mean?

the allocation originated from the kernel ... the string is
automatically taken from the process name from current, but since
kernel init allocation has no name, nothing can be tagged
automatically
-mike
Bryan Wu | 13 Sep 09:56 2007

[PATCH] Blackfin arch: add some missing syscall

When compiling the Blackfin kernel, checksyscalls.pl will report lots of missing syscalls warnings.
This patch will add some missing syscalls which make sense on Blackfin arch.

Also add ignored syscall list to kill remaining warnings.

After appling this patch, toolchain should be rebuilt. Then recompiling the kernel with the new
toolchain.

Signed-off-by: Mike Frysinger <michael.frysinger <at> analog.com>
Signed-off-by: Bryan Wu <bryan.wu <at> analog.com>
---
 arch/blackfin/mach-common/entry.S |   18 ++++++++++--
 include/asm-blackfin/unistd.h     |   54 ++++++++++++++++++++++++++++++++++---
 2 files changed, 65 insertions(+), 7 deletions(-)

diff --git a/arch/blackfin/mach-common/entry.S b/arch/blackfin/mach-common/entry.S
index d61bba9..ef60f2e 100644
--- a/arch/blackfin/mach-common/entry.S
+++ b/arch/blackfin/mach-common/entry.S
 <at>  <at>  -815,7 +815,7  <at>  <at>  _extable:

 ALIGN
 ENTRY(_sys_call_table)
-	.long _sys_ni_syscall	/* 0  -  old "setup()" system call*/
+	.long _sys_restart_syscall	/* 0 */
 	.long _sys_exit
 	.long _sys_fork
 	.long _sys_read
 <at>  <at>  -984,7 +984,7  <at>  <at>  ENTRY(_sys_call_table)
 	.long _sys_ni_syscall	/* for vm86 */
(Continue reading)


Gmane