<feed xmlns='http://www.w3.org/2005/Atom'>
<title>talos-obmc-linux/arch, branch v2.6.26-rc6</title>
<subtitle>Talos™ II Linux sources for OpenBMC</subtitle>
<id>https://git.raptorcs.com/git/talos-obmc-linux/atom?h=v2.6.26-rc6</id>
<link rel='self' href='https://git.raptorcs.com/git/talos-obmc-linux/atom?h=v2.6.26-rc6'/>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/talos-obmc-linux/'/>
<updated>2008-06-12T19:55:32+00:00</updated>
<entry>
<title>Merge branch 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip</title>
<updated>2008-06-12T19:55:32+00:00</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2008-06-12T19:55:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/talos-obmc-linux/commit/?id=cbfa66b88d5720b81b75e72e7de8116d338e6b30'/>
<id>urn:sha1:cbfa66b88d5720b81b75e72e7de8116d338e6b30</id>
<content type='text'>
* 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
  x86: fix pointer type warning in arch/x86/mm/init_64.c:early_memtest
  x86, lockdep: fix "WARNING: at kernel/lockdep.c:2658 check_flags+0x4c/0x128()"
  x86: fix an incompatible pointer type warning on 64-bit compilations
  x86: fix lockdep warning during suspend-to-ram
  x86: fix unused variable 'loops' warning in arch/x86/boot/a20.c
  Revert "x86: fix ioapic bug again"
  x86: fix asm warning in head_32.S
  x86: fix endless page faults in mount_block_root for Linux 2.6
  geode: fix modular build
</content>
</entry>
<entry>
<title>x86: fix pointer type warning in arch/x86/mm/init_64.c:early_memtest</title>
<updated>2008-06-12T19:36:23+00:00</updated>
<author>
<name>Kevin Winchester</name>
<email>kjwinchester@gmail.com</email>
</author>
<published>2008-05-30T00:14:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/talos-obmc-linux/commit/?id=f8a45704f5bd5f037c8e4a75172cab1476fc0447'/>
<id>urn:sha1:f8a45704f5bd5f037c8e4a75172cab1476fc0447</id>
<content type='text'>
Changed the call to find_e820_area_size to pass u64 instead of unsigned long.

Signed-off-by: Kevin Winchester &lt;kjwinchester@gmail.com&gt;
Signed-off-by: Ingo Molnar &lt;mingo@elte.hu&gt;
</content>
</entry>
<entry>
<title>x86, lockdep: fix "WARNING: at kernel/lockdep.c:2658 check_flags+0x4c/0x128()"</title>
<updated>2008-06-12T19:27:19+00:00</updated>
<author>
<name>Vegard Nossum</name>
<email>vegard.nossum@gmail.com</email>
</author>
<published>2008-06-12T06:55:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/talos-obmc-linux/commit/?id=4461145ef1be92851c230f858f6b6f457c99670f'/>
<id>urn:sha1:4461145ef1be92851c230f858f6b6f457c99670f</id>
<content type='text'>
Alessandro Suardi reported:
&gt; Recently upgraded my FC6 desktop to Fedora 9; with the
&gt;  latest nautilus RPM updates my VNC session went nuts
&gt;  with nautilus pegging the CPU for everything that breathed.
&gt;
&gt; I now reverted to an earlier nautilus package, but during
&gt;  the peak CPU period my kernel spat this:
&gt;
&gt; [314185.623294] ------------[ cut here ]------------
&gt; [314185.623414] WARNING: at kernel/lockdep.c:2658 check_flags+0x4c/0x128()
&gt; [314185.623514] Modules linked in: iptable_filter ip_tables x_tables
&gt; sunrpc ipv6 fuse snd_via82xx snd_ac97_codec ac97_bus snd_mpu401_uart
&gt; snd_rawmidi via686a hwmon parport_pc sg parport uhci_hcd ehci_hcd
&gt; [314185.623924] Pid: 12314, comm: nautilus Not tainted 2.6.26-rc5-git2 #4
&gt; [314185.624021]  [&lt;c0115b95&gt;] warn_on_slowpath+0x41/0x7b
&gt; [314185.624021]  [&lt;c010de70&gt;] ? do_page_fault+0x2c1/0x5fd
&gt; [314185.624021]  [&lt;c0128396&gt;] ? up_read+0x16/0x28
&gt; [314185.624021]  [&lt;c010de70&gt;] ? do_page_fault+0x2c1/0x5fd
&gt; [314185.624021]  [&lt;c012fa33&gt;] ? __lock_acquire+0xbb4/0xbc3
&gt; [314185.624021]  [&lt;c012d0a0&gt;] check_flags+0x4c/0x128
&gt; [314185.624021]  [&lt;c012fa73&gt;] lock_acquire+0x31/0x7d
&gt; [314185.624021]  [&lt;c0128cf6&gt;] __atomic_notifier_call_chain+0x30/0x80
&gt; [314185.624021]  [&lt;c0128cc6&gt;] ? __atomic_notifier_call_chain+0x0/0x80
&gt; [314185.624021]  [&lt;c0128d52&gt;] atomic_notifier_call_chain+0xc/0xe
&gt; [314185.624021]  [&lt;c0128d81&gt;] notify_die+0x2d/0x2f
&gt; [314185.624021]  [&lt;c01043b0&gt;] do_int3+0x1f/0x4d
&gt; [314185.624021]  [&lt;c02f2d3b&gt;] int3+0x27/0x2c
&gt; [314185.624021]  =======================
&gt; [314185.624021] ---[ end trace 1923f65a2d7bb246 ]---
&gt; [314185.624021] possible reason: unannotated irqs-off.
&gt; [314185.624021] irq event stamp: 488879
&gt; [314185.624021] hardirqs last  enabled at (488879): [&lt;c0102d67&gt;]
&gt; restore_nocheck+0x12/0x15
&gt; [314185.624021] hardirqs last disabled at (488878): [&lt;c0102dca&gt;]
&gt; work_resched+0x19/0x30
&gt; [314185.624021] softirqs last  enabled at (488876): [&lt;c011a1ba&gt;]
&gt; __do_softirq+0xa6/0xac
&gt; [314185.624021] softirqs last disabled at (488865): [&lt;c010476e&gt;]
&gt; do_softirq+0x57/0xa6
&gt;
&gt; I didn't seem to find it with some googling, so here it is.
&gt;
&gt; I was incidentally ltracing that process to try and find out
&gt;  what was gulping down that much CPU (sorry, no idea
&gt;  whether ltrace and the WARNING happened at the same
&gt;  time or which came first) and:

Yeah, this is extremely likely to be the source of the warning.

The warning should be harmless, however.

&gt; Box is my trusty noname K7-800, 512MB RAM; if there's
&gt;  anything else useful I might be able to provide, just ask.

It would be interesting to see where the int3 comes from.  Too bad,
lockdep doesn't provide the register dump. The stacktrace also doesn't
go further than the int3(), I wonder if this int3 came from userspace?
The ltrace readme says "software breakpoints, like gdb", so I guess
this is the case. Yep, seems like it.

This looks relevant:

| commit fb1dac909d94ff807cd833d340c6827c3a957159
| Author: Peter Zijlstra &lt;a.p.zijlstra@chello.nl&gt;
| Date:   Wed Jan 16 09:51:59 2008 +0100
|
|     lockdep: more hardirq annotations for notify_die()

I'm attaching a similarly-looking patch for this case (DO_VM86_ERROR),
though I suspect it might be missing for the other cases
(DO_ERROR/DO_ERROR_INFO) as well.

Reported-by: Alessandro Suardi &lt;alessandro.suardi@gmail.com&gt;
Signed-off-by: Vegard Nossum &lt;vegard.nossum@gmail.com&gt;
Acked-by: Peter Zijlstra &lt;a.p.zijlstra@chello.nl&gt;
Signed-off-by: Ingo Molnar &lt;mingo@elte.hu&gt;
</content>
</entry>
<entry>
<title>x86: fix an incompatible pointer type warning on 64-bit compilations</title>
<updated>2008-06-12T19:27:15+00:00</updated>
<author>
<name>David Howells</name>
<email>dhowells@redhat.com</email>
</author>
<published>2008-06-07T16:18:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/talos-obmc-linux/commit/?id=eb53e9f3ea859a6d59c37b500593b970aa8562e6'/>
<id>urn:sha1:eb53e9f3ea859a6d59c37b500593b970aa8562e6</id>
<content type='text'>
Fix an incompatible pointer type warning on x86_64 compilations.
early_memtest() is passing a u64* to find_e820_area_size() which is expecting
an unsigned long.  Change t_start and t_size to unsigned long as those are
also 64-bit types on x88_64.

Signed-off-by: David Howells &lt;dhowells@redhat.com&gt;
Signed-off-by: Ingo Molnar &lt;mingo@elte.hu&gt;
</content>
</entry>
<entry>
<title>x86: fix lockdep warning during suspend-to-ram</title>
<updated>2008-06-12T19:27:09+00:00</updated>
<author>
<name>Peter Zijlstra</name>
<email>a.p.zijlstra@chello.nl</email>
</author>
<published>2008-06-06T08:14:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/talos-obmc-linux/commit/?id=e32e58a96de4ac35a03349db2ab69f263ded958f'/>
<id>urn:sha1:e32e58a96de4ac35a03349db2ab69f263ded958f</id>
<content type='text'>
Andrew Morton wrote:

&gt; I've been seeing the below for a long time during suspend-to-ram on the Vaio.
&gt;
&gt;
&gt; PM: Syncing filesystems ... done.
&gt; PM: Preparing system for mem sleep
&gt; Freezing user space processes ... &lt;4&gt;------------[ cut here ]------------
&gt; WARNING: at kernel/lockdep.c:2658 check_flags+0x4c/0x127()
&gt; Modules linked in: i915 drm ipw2200 sonypi ipv6 autofs4 hidp l2cap bluetooth sunrpc nf_conntrack_netbios_ns ipt_REJECT nf_conntrack_ipv4 xt_state nf_conntrack xt_tcpudp iptable_filter ip_tables x_tables acpi_cpufreq nvram ohci1394 ieee1394 ehci_hcd uhci_hcd sg joydev snd_hda_intel snd_seq_dummy sr_mod snd_seq_oss cdrom snd_seq_midi_event snd_seq snd_seq_device snd_pcm_oss snd_mixer_oss ieee80211 pcspkr ieee80211_crypt snd_pcm i2c_i801 snd_timer i2c_core ide_pci_generic piix snd soundcore snd_page_alloc button ext3 jbd ide_disk ide_core [last unloaded: ipw2200]
&gt; Pid: 3250, comm: zsh Not tainted 2.6.26-rc5 #1
&gt;  [&lt;c011c5f5&gt;] warn_on_slowpath+0x41/0x6d
&gt;  [&lt;c01080e6&gt;] ? native_sched_clock+0x82/0x96
&gt;  [&lt;c013789c&gt;] ? mark_held_locks+0x41/0x5c
&gt;  [&lt;c0315688&gt;] ? _spin_unlock_irqrestore+0x36/0x58
&gt;  [&lt;c0137a29&gt;] ? trace_hardirqs_on+0xe6/0x10d
&gt;  [&lt;c0138637&gt;] ? __lock_acquire+0xae3/0xb2b
&gt;  [&lt;c0313413&gt;] ? schedule+0x39b/0x3b4
&gt;  [&lt;c0135596&gt;] check_flags+0x4c/0x127
&gt;  [&lt;c01386b9&gt;] lock_acquire+0x3a/0x86
&gt;  [&lt;c0315075&gt;] _spin_lock+0x26/0x53
&gt;  [&lt;c0140660&gt;] ? refrigerator+0x13/0xc3
&gt;  [&lt;c0140660&gt;] refrigerator+0x13/0xc3
&gt;  [&lt;c012684a&gt;] get_signal_to_deliver+0x3c/0x31e
&gt;  [&lt;c0102fe7&gt;] do_notify_resume+0x91/0x6ee
&gt;  [&lt;c01359fd&gt;] ? lock_release_holdtime+0x50/0x56
&gt;  [&lt;c0315688&gt;] ? _spin_unlock_irqrestore+0x36/0x58
&gt;  [&lt;c0235d24&gt;] ? read_chan+0x0/0x58c
&gt;  [&lt;c0137a29&gt;] ? trace_hardirqs_on+0xe6/0x10d
&gt;  [&lt;c0315694&gt;] ? _spin_unlock_irqrestore+0x42/0x58
&gt;  [&lt;c0230afa&gt;] ? tty_ldisc_deref+0x5c/0x63
&gt;  [&lt;c0233104&gt;] ? tty_read+0x66/0x98
&gt;  [&lt;c014b3f0&gt;] ? audit_syscall_exit+0x2aa/0x2c5
&gt;  [&lt;c0109430&gt;] ? do_syscall_trace+0x6b/0x16f
&gt;  [&lt;c0103a9c&gt;] work_notifysig+0x13/0x1b
&gt;  =======================
&gt; ---[ end trace 25b49fe59a25afa5 ]---
&gt; possible reason: unannotated irqs-off.
&gt; irq event stamp: 58919
&gt; hardirqs last  enabled at (58919): [&lt;c0103afd&gt;] syscall_exit_work+0x11/0x26

Joy - I so love entry.S

Best I can make of it:

syscall_exit_work
  resume_userspace
    DISABLE_INTERRUPTS
    (no TRACE_IRQS_OFF)
      work_pending
        work_notifysig
          do_notify_resume()
            do_signal()
              get_signal_to_deliver()
                try_to_freeze()
                  refrigerator()
                    task_lock() -&gt; check_flags() -&gt; BANG

The normal path is:

syscall_exit_work
  resume_userspace
    DISABLE_INTERRUPTS
    restore_all
      TRACE_IRQS_IRET
      iret

No idea why that would not warn..

Signed-off-by: Peter Zijlstra &lt;a.p.zijlstra@chello.nl&gt;
Signed-off-by: Ingo Molnar &lt;mingo@elte.hu&gt;
</content>
</entry>
<entry>
<title>x86: fix unused variable 'loops' warning in arch/x86/boot/a20.c</title>
<updated>2008-06-12T19:27:05+00:00</updated>
<author>
<name>Manish Katiyar</name>
<email>mkatiyar@gmail.com</email>
</author>
<published>2008-06-05T13:44:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/talos-obmc-linux/commit/?id=52aaa12fbe786c90396f1b11ec39c924ccdd8fd5'/>
<id>urn:sha1:52aaa12fbe786c90396f1b11ec39c924ccdd8fd5</id>
<content type='text'>
Following patch fixes the below warning message :
arch/x86/boot/a20.c:118: warning: unused variable 'loops'

Signed-off-by : Manish Katiyar &lt;mkatiyar@gmail.com&gt;
Signed-off-by: Ingo Molnar &lt;mingo@elte.hu&gt;
</content>
</entry>
<entry>
<title>Revert "x86: fix ioapic bug again"</title>
<updated>2008-06-12T19:26:28+00:00</updated>
<author>
<name>Ingo Molnar</name>
<email>mingo@elte.hu</email>
</author>
<published>2008-06-09T11:29:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/talos-obmc-linux/commit/?id=0b6a39f7ebcb1c82587ce35b401c513eed41ac5c'/>
<id>urn:sha1:0b6a39f7ebcb1c82587ce35b401c513eed41ac5c</id>
<content type='text'>
This reverts commit 6e908947b4995bc0e551a8257c586d5c3e428201.

Németh Márton reported:

| there is a problem in 2.6.26-rc3 which was not there in case of
| 2.6.25: the CPU wakes up ~90,000 times per sec instead of ~60 per sec.
|
| I also "git bisected" the problem, the result is:
|
| 6e908947b4995bc0e551a8257c586d5c3e428201 is first bad commit
| commit 6e908947b4995bc0e551a8257c586d5c3e428201
| Author: Ingo Molnar &lt;mingo@elte.hu&gt;
| Date:   Fri Mar 21 14:32:36 2008 +0100
|
|     x86: fix ioapic bug again

the original problem is fixed by Maciej W. Rozycki in the tip/x86/apic
branch (confirmed by Márton), but those changes are too intrusive for
v2.6.26 so we'll go for the less intrusive (repeated) revert now.

Reported-and-bisected-by: Németh Márton &lt;nm127@freemail.hu&gt;
Signed-off-by: Ingo Molnar &lt;mingo@elte.hu&gt;
</content>
</entry>
<entry>
<title>x86: fix asm warning in head_32.S</title>
<updated>2008-06-12T19:26:12+00:00</updated>
<author>
<name>Joe Korty</name>
<email>joe.korty@ccur.com</email>
</author>
<published>2008-06-02T21:21:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/talos-obmc-linux/commit/?id=86b2b70e156203149c3861455feec54bc4906e6d'/>
<id>urn:sha1:86b2b70e156203149c3861455feec54bc4906e6d</id>
<content type='text'>
On Mon, May 19, 2008 at 04:10:02PM -0700, Linus Torvalds wrote:
&gt; It also causes these warnings on 32-bit PAE:
&gt;
&gt; 	  AS      arch/x86/kernel/head_32.o
&gt; 	arch/x86/kernel/head_32.S: Assembler messages:
&gt; 	arch/x86/kernel/head_32.S:225: Warning: left operand is a bignum; integer 0 assumed
&gt; 	arch/x86/kernel/head_32.S:609: Warning: left operand is a bignum; integer 0 assumed
&gt;
&gt; and I do not see why (the end result seems to be identical).

Fix head_32.S gcc bignum warnings when CONFIG_PAE=y.

    arch/x86/kernel/head_32.S: Assembler messages:
    arch/x86/kernel/head_32.S:225: Warning: left operand is a bignum; integer 0 assumed
    arch/x86/kernel/head_32.S:609: Warning: left operand is a bignum; integer 0 assumed

The assembler was stumbling over the 64-bit constant 0x100000000 in the
KPMDS #define.

Testing: a cmp(1) on head_32.o before and after shows the binary is unchanged.

Signed-off-by: Joe Korty &lt;joe.korty@ccur.com
Cc: Hugh Dickins &lt;hugh@veritas.com&gt;
Cc: Theodore Tso &lt;tytso@mit.edu&gt;
Cc: Gabriel C &lt;nix.or.die@googlemail.com&gt;
Cc: Keith Packard &lt;keithp@keithp.com&gt;
Cc: "Pallipadi Venkatesh" &lt;venkatesh.pallipadi@intel.com&gt;
Cc: Eric Anholt &lt;eric@anholt.net&gt;
Cc: "Siddha Suresh B" &lt;suresh.b.siddha@intel.com&gt;
Cc: bugme-daemon@bugzilla.kernel.org
Cc: airlied@linux.ie
Cc: "Barnes Jesse" &lt;jesse.barnes@intel.com&gt;
Cc: Jeremy Fitzhardinge &lt;jeremy@goop.org&gt;
Cc: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Cc: "Rafael J. Wysocki" &lt;rjw@sisk.pl&gt;
Cc: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
Signed-off-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Signed-off-by: Ingo Molnar &lt;mingo@elte.hu&gt;
</content>
</entry>
<entry>
<title>x86: fix endless page faults in mount_block_root for Linux 2.6</title>
<updated>2008-06-12T19:26:07+00:00</updated>
<author>
<name>Henry Nestler</name>
<email>henry.nestler@gmail.com</email>
</author>
<published>2008-05-12T13:44:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/talos-obmc-linux/commit/?id=b29c701deacd5d24453127c37ed77ef851c53b8b'/>
<id>urn:sha1:b29c701deacd5d24453127c37ed77ef851c53b8b</id>
<content type='text'>
Page faults in kernel address space between PAGE_OFFSET up to
VMALLOC_START should not try to map as vmalloc.

Fix rarely endless page faults inside mount_block_root for root
filesystem at boot time.

All 32bit kernels up to 2.6.25 can fail into this hole.
I can not present this under native linux kernel. I see, that the 64bit
has fixed the problem. I copied the same lines into 32bit part.

Recorded debugs are from coLinux kernel 2.6.22.18 (virtualisation):
http://www.henrynestler.com/colinux/testing/pfn-check-0.7.3/20080410-antinx/bug16-recursive-page-fault-endless.txt
The physicaly memory was trimmed down to 192MB to better catch the bug.
More memory gets the bug more rarely.

Details, how every x86 32bit system can fail:

Start from "mount_block_root",
http://lxr.linux.no/linux/init/do_mounts.c#L297
There the variable "fs_names" got one memory page with 4096 bytes.
Variable "p" walks through the existing file system types. The first
string is no problem.
But, with the second loop in mount_block_root the offset of "p" is not
at beginning of page, the offset is for example +9, if "reiserfs" is the
first in list.
Than calls do_mount_root, and lands in sys_mount.
Remember: Variable "type_page" contains now "fs_type+9" and not contains
a full page.
The sys_mount copies 4096 bytes with function "exact_copy_from_user()":
http://lxr.linux.no/linux/fs/namespace.c#L1540

Mostly exist pages after the buffer "fs_names+4096+9" and the page fault
handler was not called. No problem.

In the case, if the page after "fs_names+4096" is not mapped, the page
fault handler was called from http://lxr.linux.no/linux/fs/namespace.c#L1320

The do_page_fault gots an address 0xc03b4000.
It's kernel address, address &gt;= TASK_SIZE, but not from vmalloc! It's
from "__getname()" alias "kmem_cache_alloc".
The "error_code" is 0. "vmalloc_fault" will be call:
http://lxr.linux.no/linux/arch/i386/mm/fault.c#L332

"vmalloc_fault" tryed to find the physical page for a non existing
virtual memory area. The macro "pte_present" in vmalloc_fault()
got a next page fault for 0xc0000ed0 at:
http://lxr.linux.no/linux/arch/i386/mm/fault.c#L282

No PTE exist for such virtual address. The page fault handler was trying
to sync the physical page for the PTE lockup.

This called vmalloc_fault() again for address 0xc000000, and that also
was not existing. The endless began...

In normal case the cpu would still loop with disabled interrrupts. Under
coLinux this was catched by a stack overflow inside printk debugs.

Signed-off-by: Henry Nestler &lt;henry.nestler@gmail.com&gt;
Signed-off-by: Ingo Molnar &lt;mingo@elte.hu&gt;
Signed-off-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;
</content>
</entry>
<entry>
<title>geode: fix modular build</title>
<updated>2008-06-12T19:25:51+00:00</updated>
<author>
<name>Ingo Molnar</name>
<email>mingo@elte.hu</email>
</author>
<published>2008-06-04T16:13:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/talos-obmc-linux/commit/?id=3703f39965a197ebd91743fc38d0f640606b8da3'/>
<id>urn:sha1:3703f39965a197ebd91743fc38d0f640606b8da3</id>
<content type='text'>
-tip testing found this build bug:

 MODPOST 331 modules
 ERROR: "geode_mfgpt_toggle_event" [drivers/watchdog/geodewdt.ko] undefined!
 ERROR: "geode_mfgpt_alloc_timer" [drivers/watchdog/geodewdt.ko] undefined!
 make[1]: *** [__modpost] Error 1
 make: *** [modules] Error 2

with this config:

  http://redhat.com/~mingo/misc/config-Wed_Jun__4_18_01_59_CEST_2008.bad

export those symbols.

Signed-off-by: Ingo Molnar &lt;mingo@elte.hu&gt;
</content>
</entry>
</feed>
