Re: can't suspend on vaio sz (rc4 and rc5 are ok) [was Re: 2.6.22-rc4-mm2]

Previous thread: [PATCH] enable interrupts in user path of page fault. by Steven Rostedt on Wednesday, June 6, 2007 - 8:34 pm. (5 messages)

Next thread: [patch/rfc] implement memmem() locally in kallsyms.c by Mike Frysinger on Wednesday, June 6, 2007 - 10:16 pm. (4 messages)
From: Andrew Morton
Date: Wednesday, June 6, 2007 - 10:03 pm

ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.22-rc4/2.6.22-rc4-mm2/

- Basically a bugfixed version of 2.6.22-rc4-mm1.  None of the subsystem
  trees were repulled, several bad patches were dropped, a few were fixed.


Boilerplate:

- See the `hot-fixes' directory for any important updates to this patchset.

- To fetch an -mm tree using git, use (for example)

  git-fetch git://git.kernel.org/pub/scm/linux/kernel/git/smurf/linux-trees.git tag v2.6.16-rc2-mm1
  git-checkout -b local-v2.6.16-rc2-mm1 v2.6.16-rc2-mm1

- -mm kernel commit activity can be reviewed by subscribing to the
  mm-commits mailing list.

        echo "subscribe mm-commits" | mail majordomo@vger.kernel.org

- If you hit a bug in -mm and it is not obvious which patch caused it, it is
  most valuable if you can perform a bisection search to identify which patch
  introduced the bug.  Instructions for this process are at

        http://www.zip.com.au/~akpm/linux/patches/stuff/bisecting-mm-trees.txt

  But beware that this process takes some time (around ten rebuilds and
  reboots), so consider reporting the bug first and if we cannot immediately
  identify the faulty patch, then perform the bisection search.

- When reporting bugs, please try to Cc: the relevant maintainer and mailing
  list on any email.

- When reporting bugs in this kernel via email, please also rewrite the
  email Subject: in some manner to reflect the nature of the bug.  Some
  developers filter by Subject: when looking for messages to read.

- Occasional snapshots of the -mm lineup are uploaded to
  ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/mm/ and are announced on
  the mm-commits list.



Changes since 2.6.22-rc4-mm1:

 git-acpi.patch
 git-alsa.patch
 git-arm-master.patch
 git-arm.patch
 git-avr32.patch
 git-cifs.patch
 git-cpufreq.patch
 git-drm.patch
 git-dvb.patch
 git-gfs2-nmw.patch
 git-hid.patch
 git-ieee1394.patch
 git-infiniband.patch
 git-input.patch
 git-kbuild.patch
 ...
From: Peter Zijlstra
Date: Thursday, June 7, 2007 - 8:37 am

My kernel went chatty when I tried to access my usb-stick; which it
didn't seem to find.


Initializing USB Mass Storage driver...
scsi6 : SCSI emulation for USB Mass Storage devices
usb-storage: device found at 2
usb-storage: waiting for device to settle before scanning
scsi7 : SCSI emulation for USB Mass Storage devices
usb-storage: device found at 5
usb-storage: waiting for device to settle before scanning
usbcore: registered new interface driver usb-storage
USB Mass Storage support registered.
usb-storage: device scan complete
WARNING: at /usr/src/linux-2.6/drivers/usb/core/urb.c:293
usb_submit_urb()

Call Trace:
 [<ffffffff8020d4c7>] show_trace+0x34/0x4f
 [<ffffffff8020d4f4>] dump_stack+0x12/0x17
 [<ffffffff803cac6a>] usb_submit_urb+0x9f/0x226
 [<ffffffff803cc4c7>] usb_sg_wait+0x56/0x132
 [<ffffffff8820519d>] :usb_storage:usb_stor_bulk_transfer_sg+0x9d/0xf3
 [<ffffffff88205313>] :usb_storage:usb_stor_Bulk_transport+0x120/0x244
 [<ffffffff8820577f>] :usb_storage:usb_stor_invoke_transport+0x25/0x2d2
 [<ffffffff882066c0>] :usb_storage:usb_stor_control_thread+0x14b/0x1e7
 [<ffffffff8024a7df>] kthread+0x47/0x74
 [<ffffffff8020cc28>] child_rip+0xa/0x12

usb-storage: device scan complete
WARNING: at /usr/src/linux-2.6/drivers/usb/core/urb.c:293
usb_submit_urb()

Call Trace:
 [<ffffffff8020d4c7>] show_trace+0x34/0x4f
 [<ffffffff8020d4f4>] dump_stack+0x12/0x17
 [<ffffffff803cac6a>] usb_submit_urb+0x9f/0x226
 [<ffffffff803cc4c7>] usb_sg_wait+0x56/0x132
 [<ffffffff8820519d>] :usb_storage:usb_stor_bulk_transfer_sg+0x9d/0xf3
 [<ffffffff88205313>] :usb_storage:usb_stor_Bulk_transport+0x120/0x244
 [<ffffffff8820577f>] :usb_storage:usb_stor_invoke_transport+0x25/0x2d2
 [<ffffffff882066c0>] :usb_storage:usb_stor_control_thread+0x14b/0x1e7
 [<ffffffff8024a7df>] kthread+0x47/0x74
 [<ffffffff8020cc28>] child_rip+0xa/0x12



-

From: Jeremy Fitzhardinge
Date: Thursday, June 14, 2007 - 3:47 pm

I got the same thing when I plugged my PSP in.

WARNING: at /home/jeremy/hg/xen/paravirt/linux/drivers/usb/core/urb.c:293 usb_submit_urb()
 [<c01091e2>] show_trace_log_lvl+0x1a/0x2f
 [<c0109cf2>] show_trace+0x12/0x14
 [<c0109d0a>] dump_stack+0x16/0x18
 [<c02dcaae>] usb_submit_urb+0x9f/0x205
 [<c02de178>] usb_sg_wait+0x4c/0x11c
 [<f8ddbfcd>] usb_stor_bulk_transfer_sg+0x8c/0xea [usb_storage]
 [<f8ddc433>] usb_stor_Bulk_transport+0x136/0x249 [usb_storage]
 [<f8ddc561>] usb_stor_invoke_transport+0x1b/0x292 [usb_storage]
 [<f8ddb82e>] usb_stor_ATAPI_command+0x24/0x26 [usb_storage]
 [<f8ddd310>] usb_stor_control_thread+0x129/0x1aa [usb_storage]
 [<c013cd87>] kthread+0x3b/0x64
 [<c0108da7>] kernel_thread_helper+0x7/0x10
 =======================

After this the USB subsystem seems dead.  For example, lsusb hangs in:

lsusb         D 0000017B  6304  6964   6507 (NOTLB)
       d8503ed4 00000082 199b6067 0000017b d8503ebc 00000000 22222222 d8502000 
       00000000 0000017b 00000000 c0127f83 d1cbcc90 d1cbce3c c2c09a40 da04cc45 
       00000960 00000046 00000001 c037d5f6 d716a1d4 d716a1c0 00266bc9 00000046 
Call Trace:
 [<c037d665>] __down+0xab/0xbf
 [<c037d432>] __down_failed+0xa/0x10
 [<c02e4611>] usbdev_read+0x5a/0x1f7
 [<c017d517>] vfs_read+0xad/0x136
 [<c017d94a>] sys_read+0x3d/0x61
 [<c0108046>] sysenter_past_esp+0x6b/0xb5



Thanks,
    J

-

From: Peter Zijlstra
Date: Thursday, June 14, 2007 - 3:58 pm

From: Jeremy Fitzhardinge
Date: Thursday, June 14, 2007 - 4:20 pm

Yep.  My mailreader was hiding the followups for some reason, but it
couldn't fool me for long.

Thanks,
    J

-

From: Alan Stern
Date: Thursday, June 7, 2007 - 3:20 pm

This is false-alarm output from something intended to track down a 
reported bug.  The patch responsible is this one: 

http://www.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.22-rc4/2.6.22-rc4-m...

It was removed from -mm just recently; you can simply revert it in your 
kernel source.

Alan Stern

-

From: Peter Zijlstra
Date: Friday, June 8, 2007 - 1:55 am

Right, well then I have another problem. Because it doesn't find my
usb-stick.

I noticed from D states (quite easy to reproduce, just modprobe
usb-storage):

scsi_eh_6     D ffff8100079ed640     0  3568      2 (L-TLB)
 ffff81000ac45e10 0000000000000046 0000000000000000 0000000180252936
 0000000000000002 0000000100000000 ffff81000ac42700 ffff8100043ca240
 ffff81000ac42978 ffffffff8024fc8d 00000000000000ff ffff81000ac42700
Call Trace:
 [<ffffffff804775a9>] wait_for_completion+0x82/0xc1
 [<ffffffff88201673>] :usb_storage:command_abort+0x7c/0x86
 [<ffffffff8805f54f>] :scsi_mod:scsi_error_handler+0x28e/0x4cc
 [<ffffffff8024a7ff>] kthread+0x47/0x74
 [<ffffffff8020cc28>] child_rip+0xa/0x12

usb-storage   D ffff8100079ed640     0  3570      2 (L-TLB)
 ffff81000ac4dd30 0000000000000046 0000000000000000 0000000100000046
 0000000000000002 0000000100000000 ffff81000ac4a780 ffff8100043ca240
 ffff81000ac4a9f8 ffffffff802518f5 00000000000000ff ffff81000ac4a780
Call Trace:
 [<ffffffff804775a9>] wait_for_completion+0x82/0xc1
 [<ffffffff803cc896>] usb_sg_wait+0x115/0x132
 [<ffffffff8820219d>] :usb_storage:usb_stor_bulk_transfer_sg+0x9d/0xf3
 [<ffffffff88202313>] :usb_storage:usb_stor_Bulk_transport+0x120/0x244
 [<ffffffff8820277f>] :usb_storage:usb_stor_invoke_transport+0x25/0x2d2
 [<ffffffff882036c0>] :usb_storage:usb_stor_control_thread+0x14b/0x1e7
 [<ffffffff8024a7ff>] kthread+0x47/0x74
 [<ffffffff8020cc28>] child_rip+0xa/0x12

scsi_eh_7     D ffff8100079ed640     0  3574      2 (L-TLB)
 ffff81000ac39e10 0000000000000046 0000000000000000 0000000100000046
 0000000000000002 0000000100000000 ffff81000ac16640 ffff8100043ca240
 ffff81000ac168b8 ffffffff8024fc8d 00000000000000ff ffff81000ac16640
Call Trace:
 [<ffffffff804775a9>] wait_for_completion+0x82/0xc1
 [<ffffffff88201673>] :usb_storage:command_abort+0x7c/0x86
 [<ffffffff8805f54f>] :scsi_mod:scsi_error_handler+0x28e/0x4cc
 [<ffffffff8024a7ff>] kthread+0x47/0x74
 [<ffffffff8020cc28>] child_rip+0xa/0x12

usb-storage   D ...
From: Alan Stern
Date: Friday, June 8, 2007 - 7:16 am

[Trimmed the recipients list]


Okay, this is a separate problem.  To help diagnose it, please turn on 
CONFIG_USB_DEBUG and CONFIG_USB_STORAGE_DEBUG and then post the 
resulting dmesg log.

Alan Stern

-

From: Peter Zijlstra
Date: Friday, June 8, 2007 - 9:30 am

From: Alan Stern
Date: Friday, June 8, 2007 - 9:54 am

Okay, it's not a separate problem.  You didn't revert the patch I 
mentioned earlier.  It's generating those WARNINGs and causing 
usb-storage to fail.

Alan Stern

-

From: Peter Zijlstra
Date: Friday, June 8, 2007 - 9:55 am

Ah, ok, my bad, I had understood the warning were merely cosmetic
damage.

Thanks.

-

From: William Lee Irwin III
Date: Wednesday, June 6, 2007 - 11:42 pm

create-the-zone_movable-zone.patch breaks the build on sparc32.


-- wli

$ good=0; bad=`quilt series -v | wc -l`; time while [[ $(( $bad - $good )) -gt 1 ]]; do cur=`quilt series -v |egrep -c '(=|\+)'`; chkpt=$(( ($good + $bad)/2 )); delta=$(( $chkpt - $cur )); if [[ $delta -lt 0 ]]; then (quilt pop $(( 0 - $delta )) ) >& /dev/null; elif [[ $delta -gt 0 ]]; then (quilt push $delta) >& /dev/null; else true; fi; cur=$chkpt; (yes "" | make ARCH=sparc CROSS_COMPILE="sparc-linux-" CC="gcc-sparc-4.1" quiet=1 -j16 defconfig) >& /dev/null; echo "last known good = $good, first known bad = $bad, trying $chkpt"; yes "" | make ARCH=sparc CROSS_COMPILE="sparc-linux-" CC="gcc-sparc-4.1" quiet=1 -j16 image modules; s=$?; if [[ $s -ne 0 ]]; then echo "$chkpt bad"; bad=$chkpt; else echo "$chkpt good"; good=$chkpt; fi; done
...
last known good = 641, first known bad = 645, trying 643
scripts/kconfig/conf -s arch/sparc/Kconfig
drivers/macintosh/Kconfig:116:warning: 'select' used by config symbol 'PMAC_APM_EMU' refers to undefined symbol 'APM_EMULATION'
drivers/input/keyboard/Kconfig:170:warning: 'select' used by config symbol 'KEYBOARD_ATARI' refers to undefined symbol 'ATARI_KBD_CORE'
drivers/input/mouse/Kconfig:182:warning: 'select' used by config symbol 'MOUSE_ATARI' refers to undefined symbol 'ATARI_KBD_CORE'
sound/soc/sh/Kconfig:6:warning: 'select' used by config symbol 'SND_SOC_PCM_SH7760' refers to undefined symbol 'SH_DMABRG'
  CHK     include/linux/version.h
  CHK     include/linux/utsrelease.h
<stdin>:752:2: warning: #warning syscall setresuid not implemented
<stdin>:756:2: warning: #warning syscall getresuid not implemented
<stdin>:776:2: warning: #warning syscall setresgid not implemented
<stdin>:780:2: warning: #warning syscall getresgid not implemented
  CHK     include/linux/compile.h
mm/page_alloc.c: In function 'nr_free_pagecache_pages':
mm/page_alloc.c:1706: error: 'GFP_HIGH_MOVABLE' undeclared (first use in this function)
mm/page_alloc.c:1706: error: (Each undeclared identifier is ...
From: Andrew Morton
Date: Wednesday, June 6, 2007 - 11:51 pm

Nope, there are no instances of GFP_HIGH_MOVABLE in the tree once all
patches are applied.  You hit a bad bisection point: between
create-the-zone_movable-zone.patch and
create-the-zone_movable-zone-fix.patch.
-

From: William Lee Irwin III
Date: Wednesday, June 6, 2007 - 11:55 pm

The fully-applied tree fails with a link error having to do with
movable_zone. I'm not entirely sure what arches are supposed to do
about that.


-- wli
-

From: Andrew Morton
Date: Thursday, June 7, 2007 - 12:01 am

config, please?
-

From: William Lee Irwin III
Date: Thursday, June 7, 2007 - 12:04 am

It's the sparc32 defconfig. Included below for completeness.


-- wli

#
# Automatically generated make config: don't edit
# Linux kernel version: 2.6.22-rc4-mm2
# Thu Jun  7 00:01:24 2007
#
CONFIG_MMU=y
CONFIG_HIGHMEM=y
CONFIG_ZONE_DMA=y
CONFIG_GENERIC_ISA_DMA=y
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"

#
# Code maturity level options
#
CONFIG_EXPERIMENTAL=y
CONFIG_BROKEN_ON_SMP=y
CONFIG_INIT_ENV_ARG_LIMIT=32

#
# General setup
#
CONFIG_LOCALVERSION=""
CONFIG_LOCALVERSION_AUTO=y
CONFIG_SWAP=y
CONFIG_SYSVIPC=y
# CONFIG_IPC_NS is not set
CONFIG_SYSVIPC_SYSCTL=y
CONFIG_POSIX_MQUEUE=y
# CONFIG_BSD_PROCESS_ACCT is not set
# CONFIG_TASKSTATS is not set
# CONFIG_UTS_NS is not set
# CONFIG_AUDIT is not set
# CONFIG_IKCONFIG is not set
CONFIG_LOG_BUF_SHIFT=14
CONFIG_SYSFS_DEPRECATED=y
# CONFIG_RELAY is not set
CONFIG_BLK_DEV_INITRD=y
CONFIG_INITRAMFS_SOURCE=""
# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
CONFIG_SYSCTL=y
# CONFIG_EMBEDDED is not set
CONFIG_UID16=y
CONFIG_SYSCTL_SYSCALL=y
CONFIG_KALLSYMS=y
# CONFIG_KALLSYMS_ALL is not set
# CONFIG_KALLSYMS_EXTRA_PASS is not set
CONFIG_HOTPLUG=y
CONFIG_PRINTK=y
CONFIG_BUG=y
CONFIG_ELF_CORE=y
CONFIG_BASE_FULL=y
CONFIG_FUTEX=y
CONFIG_ANON_INODES=y
CONFIG_EPOLL=y
CONFIG_SIGNALFD=y
CONFIG_TIMERFD=y
CONFIG_EVENTFD=y
CONFIG_SHMEM=y
CONFIG_VM_EVENT_COUNTERS=y
CONFIG_SLAB=y
# CONFIG_SLUB is not set
# CONFIG_SLOB is not set
CONFIG_RT_MUTEXES=y
# CONFIG_TINY_SHMEM is not set
CONFIG_BASE_SMALL=0

#
# Loadable module support
#
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
# CONFIG_MODULE_FORCE_UNLOAD is not set
# CONFIG_MODVERSIONS is not set
# CONFIG_MODULE_SRCVERSION_ALL is not set
CONFIG_KMOD=y
CONFIG_BLOCK=y
# CONFIG_LBD is not set
# CONFIG_BLK_DEV_IO_TRACE is not set
# CONFIG_LSF is not set

#
# IO Schedulers
#
CONFIG_IOSCHED_NOOP=y
CONFIG_IOSCHED_AS=y
CONFIG_IOSCHED_DEADLINE=y
CONFIG_IOSCHED_CFQ=y
# CONFIG_DEFAULT_AS is not set
# CONFIG_DEFAULT_DEADLINE is not ...
From: William Lee Irwin III
Date: Thursday, June 7, 2007 - 12:05 am

The error output looks like the following.


-- wli

$ quilt top                                                                     create-the-zone_movable-zone-fix.patch                                          $ (yes "" | make ARCH=sparc CROSS_COMPILE="sparc-linux-" CC="gcc-sparc-4.1" quiet=1 -j16 defconfig) >& /dev/null; yes "" | make ARCH=sparc CROSS_COMPILE="sparc-linux-" CC="gcc-sparc-4.1" quiet=1 -j16 image modules                           scripts/kconfig/conf -s arch/sparc/Kconfig
drivers/macintosh/Kconfig:116:warning: 'select' used by config symbol 'PMAC_APM_EMU' refers to undefined symbol 'APM_EMULATION'
drivers/input/keyboard/Kconfig:170:warning: 'select' used by config symbol 'KEYBOARD_ATARI' refers to undefined symbol 'ATARI_KBD_CORE'
drivers/input/mouse/Kconfig:182:warning: 'select' used by config symbol 'MOUSE_ATARI' refers to undefined symbol 'ATARI_KBD_CORE'
sound/soc/sh/Kconfig:6:warning: 'select' used by config symbol 'SND_SOC_PCM_SH7760' refers to undefined symbol 'SH_DMABRG'
  CHK     include/linux/version.h
  UPD     include/linux/version.h
  CHK     include/linux/utsrelease.h
  UPD     include/linux/utsrelease.h
  SYMLINK include/asm -> include/asm-sparc
<stdin>:752:2: warning: #warning syscall setresuid not implemented
<stdin>:756:2: warning: #warning syscall getresuid not implemented
<stdin>:776:2: warning: #warning syscall setresgid not implemented
<stdin>:780:2: warning: #warning syscall getresgid not implemented
  CHK     include/linux/compile.h
  UPD     include/linux/compile.h
ipc/msg.c: In function 'sys_msgctl':
ipc/msg.c:390: warning: 'setbuf.qbytes' may be used uninitialized in this function
ipc/msg.c:390: warning: 'setbuf.uid' may be used uninitialized in this function
ipc/msg.c:390: warning: 'setbuf.gid' may be used uninitialized in this function
ipc/msg.c:390: warning: 'setbuf.mode' may be used uninitialized in this function
ipc/sem.c: In function 'sys_semctl':
ipc/sem.c:861: warning: 'setbuf.uid' may be used uninitialized in this ...
From: Andrew Morton
Date: Thursday, June 7, 2007 - 12:19 am

hm, OK, this seems to work:

--- a/include/linux/mmzone.h~a
+++ a/include/linux/mmzone.h
@@ -541,10 +541,13 @@ static inline int populated_zone(struct 
 	return (!!zone->present_pages);
 }
 
+#ifdef CONFIG_ARCH_POPULATES_NODE_MAP
 extern int movable_zone;
+#endif
+
 static inline int zone_movable_is_highmem(void)
 {
-#ifdef CONFIG_HIGHMEM
+#if defined(CONFIG_HIGHMEM) && defined(CONFIG_ARCH_POPULATES_NODE_MAP)
 	return movable_zone == ZONE_HIGHMEM;
 #else
 	return 0;
_

(the first ifdef is just there to trip things at compile time rather than
link time)
-

From: William Lee Irwin III
Date: Thursday, June 7, 2007 - 12:34 am

I guess it's not the arch's fault after all. I probably would've
conditionally out-of-lined the thing so as never to expose movable_zone
but this will do just fine.


-- wli
-

From: Paul Mundt
Date: Thursday, June 7, 2007 - 12:11 am

Manuel, can you take a look at this and fix up the select behaviour? Perhaps
sound/soc/sh/Kconfig should just have a CONFIG_SUPERH around it.
-

From: Manuel Lauss
Date: Thursday, June 7, 2007 - 2:19 am

---

Make SND_SOC_PCM_SH7760 depend on SH_DMABRG rather than selecting it

Fixes Kconfig warning about undefined SH_DMABRG symbol on non-sh builds.


Signed-off-by: Manuel Lauss <mano@roarinelk.homelinux.net>


--- linux-2.6.22-rc4-mm2/sound/soc/sh/Kconfig~	2007-06-07 11:09:30.000000000 +0200
+++ linux-2.6.22-rc4-mm2/sound/soc/sh/Kconfig	2007-06-07 11:09:30.000000000 +0200
@@ -2,8 +2,7 @@ menu "SoC Audio support for SuperH"
 
 config SND_SOC_PCM_SH7760
 	tristate "SoC Audio support for Renesas SH7760"
-	depends on CPU_SUBTYPE_SH7760 && SND_SOC
-	select SH_DMABRG
+	depends on CPU_SUBTYPE_SH7760 && SND_SOC && SH_DMABRG
 	help
 	  Enable this option for SH7760 AC97/I2S audio support.
 
-

From: Paul Mundt
Date: Thursday, June 7, 2007 - 2:37 am

Are you sure this is the way you want to go? The select here is
reasonably useful.
-

From: Manuel Lauss
Date: Thursday, June 7, 2007 - 2:46 am

I hope the other people using this code are smart enough to set SH_DMABRG in
their board's defconfig.  (I seem to remember there was an argument about
the evilness of select;  and as far as I know I am the only user of this
code anyway)

If you think select is more useful then I'll send another patch to the 
alsa folks.

Thanks,
	Manuel Lauss
-

From: Adrian Bunk
Date: Thursday, June 7, 2007 - 1:01 pm

There's nothing that has to be fixed.

Sam is working on changing Kconfig to no longer emit these bogus 

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

-

From: Sam Ravnborg
Date: Thursday, June 7, 2007 - 1:14 pm

Very slowly though... :-(

	Sam
-

From: Joseph Fannin
Date: Thursday, June 7, 2007 - 12:37 pm

I don't think this was intentional: 

    [   29.873254] edac_stub: module license 'unspecified' taints kernel.

--
Joseph Fannin
jfannin@gmail.com || jhf@columbus.rr.com

-

From: Andrew Morton
Date: Thursday, June 7, 2007 - 1:31 pm

On Thu, 7 Jun 2007 15:37:51 -0400

No, I'm sure it wasn't.

Doug, please check all that code and add suitable MODULE_LICENSEs?

-

From: Joseph Fannin
Date: Thursday, June 7, 2007 - 2:46 pm

I'm not able to bring an ethernet interface down and back up again
with this if avahi-autoipd is installed on my Ubuntu boxes.  I've seen
it on three different computers with different NIC hardware.

    I've worked out an easy way to reproduce it without
avahi-autoipd.  Starting with eth0 up (address assigned by DHCP):

  # ifdown eth0
  < dhclient makes the normal noise about releasing the address >
  # ip addr add 169.254.255.67/16 brd 169.254.255.255 label eth0:avahi scope link dev eth0
  # ip addr del 169.154.255.67/16 brd 169.254.255.255 label eth0:avahi scope link dev eth0
  # ifup eth0
  SIOCSIFADDR: No buffer space available    < -- first sign of trouble HERE
  < dhclient copyright boilerplate >
  Listening on LPF/eth0/<MAC addr>
  Sending on   LPF/eth0/<MAC addr>
  Sending on   Socket/fallback
  DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 5
  DHCPOFFER from < DHCP server >
  DHCPREQUEST on eth0 to 255.255.255.255 port 67
  DHCPACK from  < DHCP server >
  SIOCSIFADDR: No buffer space available
  SIOCSIFNETMASK: Cannot assign requested address
  SIOCSIFBRDADDR: Cannot assign requested address
  SIOCADDRTL No such process
  bound to < IP address > -- renewal in XXXX seconds
  #

    At this point, the interface is up, but has no address assigned.
Manually assigning one with ifconfig fails:

  # ifconfig eth0 netmask 255.255.255.0 172.16.0.1
  SIOCSIFNETMASK: Cannot assign requested address
  SIOCSIFADDR: No buffer space available
  #

... and a reboot is the only way I've been able to get the interface
to work again.

    The last kernels I tried were 2.6.22-rc3 and *I think*
2.6.22-rc1-mm1, neither of which had this problem.  I will test
2.6.22-rc4 and 2.6.22-rc3-mm1 later, but I'm out of time today.

    I've attached my .config .

--
Joseph Fannin
jfannin@gmail.com

From: Andrew Morton
Date: Thursday, June 7, 2007 - 3:06 pm

On Thu, 7 Jun 2007 17:46:09 -0400

Yep, thanks - Miles has reported the same thing.
-

From: Herbert Xu
Date: Thursday, June 7, 2007 - 3:54 pm

Sorry, it was my patch.  This patch should fix it.

[IPV4]: Do not remove idev when addresses are cleared

Now that we create idev before addresses are added, it no longer makes
sense to remove them when addresses are all deleted.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>

Cheers,
-- 
Visit Openswan at http://www.openswan.org/
Email: Herbert Xu ~{PmV>HI~} <herbert@gondor.apana.org.au>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
--
diff --git a/net/ipv4/devinet.c b/net/ipv4/devinet.c
index 354e800..0cf813f 100644
--- a/net/ipv4/devinet.c
+++ b/net/ipv4/devinet.c
@@ -327,12 +327,8 @@ static void __inet_del_ifa(struct in_device *in_dev, struct in_ifaddr **ifap,
 		}
 
 	}
-	if (destroy) {
+	if (destroy)
 		inet_free_ifa(ifa1);
-
-		if (!in_dev->ifa_list)
-			inetdev_destroy(in_dev);
-	}
 }
 
 static void inet_del_ifa(struct in_device *in_dev, struct in_ifaddr **ifap,
-

From: David Miller
Date: Thursday, June 7, 2007 - 6:35 pm

From: Herbert Xu <herbert@gondor.apana.org.au>

Applied, thanks Herbert.
-

From: Adrian Bunk
Date: Monday, June 11, 2007 - 5:07 pm

I'm getting the following compile error with CONFIG_X86_CMPXCHG64=n 
(with -Werror-implicit-function-declaration - otherwise it would be a 
link error):

<--  snip  -->

...
  CC [M]  drivers/kvm/mmu.o
/home/bunk/linux/kernel-2.6/linux-2.6.22-rc4-mm2/drivers/kvm/mmu.c: In function ‘set_shadow_pte’:
/home/bunk/linux/kernel-2.6/linux-2.6.22-rc4-mm2/drivers/kvm/mmu.c:199: error: implicit declaration of function ‘set_64bit’
make[3]: *** [drivers/kvm/mmu.o] Error 1

<--  snip  -->

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

-

From: Dave Jones
Date: Monday, June 11, 2007 - 8:22 pm

On Tue, Jun 12, 2007 at 02:07:18AM +0200, Adrian Bunk wrote:
 
 > I'm getting the following compile error with CONFIG_X86_CMPXCHG64=n 
 > (with -Werror-implicit-function-declaration - otherwise it would be a 
 > link error):

We really should just get that flag into mainline so that it breaks
for people before they submit patches.  We run into this constantly.


Add -Werror-implicit-function-declaration
This makes builds fail sooner if something is implicitly defined instead
of having to wait half an hour for it to fail at the linking stage.

Signed-off-by: Dave Jones <davej@redhat.com>

--- linux-2.6/Makefile~	2007-06-04 16:46:24.000000000 -0400
+++ linux-2.6/Makefile	2007-06-04 16:46:53.000000000 -0400
@@ -313,7 +313,8 @@ LINUXINCLUDE    := -Iinclude \
 CPPFLAGS        := -D__KERNEL__ $(LINUXINCLUDE)
 
 CFLAGS          := -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs \
-                   -fno-strict-aliasing -fno-common
+		   -fno-strict-aliasing -fno-common \
+		   -Werror-implicit-function-declaration
 AFLAGS          := -D__ASSEMBLY__
 
 # Read KERNELRELEASE from include/config/kernel.release (if it exists)

-- 
http://www.codemonkey.org.uk
-

From: Andrew Morton
Date: Tuesday, June 12, 2007 - 3:03 pm

On Mon, 11 Jun 2007 23:22:24 -0400

This causes the i386 allmodconfig build to fail:

include/linux/uaccess.h: In function 'pagefault_disable':
include/linux/uaccess.h:23: error: implicit declaration of function '__memory_barrier'

I didn't look to see why...
-

From: Dave Jones
Date: Tuesday, June 12, 2007 - 3:16 pm

On Tue, Jun 12, 2007 at 03:03:57PM -0700, Andrew Morton wrote:
 > On Mon, 11 Jun 2007 23:22:24 -0400
 > Dave Jones <davej@redhat.com> wrote:
 > 
 > > Add -Werror-implicit-function-declaration
 > > This makes builds fail sooner if something is implicitly defined instead
 > > of having to wait half an hour for it to fail at the linking stage.
 > > 
 > > Signed-off-by: Dave Jones <davej@redhat.com>
 > > 
 > > --- linux-2.6/Makefile~	2007-06-04 16:46:24.000000000 -0400
 > > +++ linux-2.6/Makefile	2007-06-04 16:46:53.000000000 -0400
 > > @@ -313,7 +313,8 @@ LINUXINCLUDE    := -Iinclude \
 > >  CPPFLAGS        := -D__KERNEL__ $(LINUXINCLUDE)
 > >  
 > >  CFLAGS          := -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs \
 > > -                   -fno-strict-aliasing -fno-common
 > > +		   -fno-strict-aliasing -fno-common \
 > > +		   -Werror-implicit-function-declaration
 > >  AFLAGS          := -D__ASSEMBLY__
 > >  
 > >  # Read KERNELRELEASE from include/config/kernel.release (if it exists)
 > 
 > This causes the i386 allmodconfig build to fail:

Seems to be doing its job rather effectively.

 > include/linux/uaccess.h: In function 'pagefault_disable':
 > include/linux/uaccess.h:23: error: implicit declaration of function '__memory_barrier'
 > 
 > I didn't look to see why...

include/linux/compiler.h ..

/* Optimization barrier */
#ifndef barrier
# define barrier() __memory_barrier()
#endif

We shouldn't be hitting this, because barrier should be getting defined
in the compiler specific headers above..

#if __GNUC__ >= 4
# include <linux/compiler-gcc4.h>
#elif __GNUC__ == 3 && __GNUC_MINOR__ >= 2
# include <linux/compiler-gcc3.h>
#else
# error Sorry, your compiler is too old/not recognized.
#endif

both of those include linux/compiler-gcc.h, which defines barrier.
How strange.  What compiler version is this?

	Dave

-- 
http://www.codemonkey.org.uk
-

From: Andrew Morton
Date: Tuesday, June 12, 2007 - 3:43 pm

On Tue, 12 Jun 2007 18:16:29 -0400

err, hang on.  I had a different patch in there which hilariously broke
the build all over the place, and dropping that has made your patch
come good.  I'll put it back.
-

From: Dave Jones
Date: Tuesday, June 12, 2007 - 3:48 pm

On Tue, Jun 12, 2007 at 03:43:45PM -0700, Andrew Morton wrote:
 > On Tue, 12 Jun 2007 18:16:29 -0400
 > Dave Jones <davej@redhat.com> wrote:
 > 
 > >  > >  # Read KERNELRELEASE from include/config/kernel.release (if it exists)
 > >  > 
 > >  > This causes the i386 allmodconfig build to fail:
 > > 
 > > Seems to be doing its job rather effectively.
 > 
 > err, hang on.  I had a different patch in there which hilariously broke
 > the build all over the place, and dropping that has made your patch
 > come good.  I'll put it back.

This was all just a cunning trick to make me download and build an -mm
kernel wasn't it ? :-)

	Dave

-- 
http://www.codemonkey.org.uk
-

From: Adrian Bunk
Date: Tuesday, June 12, 2007 - 3:37 pm

I have -Werror-implicit-function-declaration in the CFLAGS of my 
testbuilds for ages without ever hitting this.

Perhaps some change in your working tree?
Can you verify this problem with 2.6.22-rc4-mm2?

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

-

From: Avi Kivity
Date: Monday, June 11, 2007 - 11:00 pm

I've committed the following, which should disable kvm on i486 and below:

diff --git a/drivers/kvm/Kconfig b/drivers/kvm/Kconfig
index 2f661e5..33fa28a 100644
--- a/drivers/kvm/Kconfig
+++ b/drivers/kvm/Kconfig
@@ -11,6 +11,7 @@ if VIRTUALIZATION
 config KVM
        tristate "Kernel-based Virtual Machine (KVM) support"
        depends on X86 && EXPERIMENTAL
+       depends on X86_CMPXCHG64 || 64BIT
        ---help---
          Support hosting fully virtualized guest machines using hardware
          virtualization extensions.  You will need a fairly recent


-- 
Do not meddle in the internals of kernels, for they are subtle and quick to panic.

-

From: Adrian Bunk
Date: Tuesday, June 12, 2007 - 4:07 am

cmdline_parse_kernelcore() can become static.

---
--- linux-2.6.22-rc4-mm2/mm/page_alloc.c.old	2007-06-12 02:10:56.000000000 +0200
+++ linux-2.6.22-rc4-mm2/mm/page_alloc.c	2007-06-12 02:11:08.000000000 +0200
@@ -3879,7 +3879,7 @@
  * kernelcore=size sets the amount of memory for use for allocations that
  * cannot be reclaimed or migrated.
  */
-int __init cmdline_parse_kernelcore(char *p)
+static int __init cmdline_parse_kernelcore(char *p)
 {
 	unsigned long long coremem;
 	if (!p)

-

From: Mel Gorman
Date: Tuesday, June 12, 2007 - 5:52 am

Agreed. I would consider this a fix to handle-kernelcore=-generic.patch

Thanks Adrian


-- 
-- 
Mel Gorman
Part-time Phd Student                          Linux Technology Center
University of Limerick                         IBM Dublin Software Lab
-

From: Adrian Bunk
Date: Tuesday, June 12, 2007 - 4:07 am

remove_from_swapped_list() can become static.

Signed-off-by: Adrian Bunk <bunk@stusta.de>

---

 include/linux/swap-prefetch.h |    5 -----
 mm/swap_prefetch.c            |    2 +-
 2 files changed, 1 insertion(+), 6 deletions(-)

--- linux-2.6.22-rc4-mm2/include/linux/swap-prefetch.h.old	2007-06-12 02:14:51.000000000 +0200
+++ linux-2.6.22-rc4-mm2/include/linux/swap-prefetch.h	2007-06-12 02:14:59.000000000 +0200
@@ -33,7 +33,6 @@
 }
 
 extern void add_to_swapped_list(struct page *page);
-extern void remove_from_swapped_list(const unsigned long index);
 extern void delay_swap_prefetch(void);
 extern void prepare_swap_prefetch(void);
 
@@ -46,10 +45,6 @@
 {
 }
 
-static inline void remove_from_swapped_list(const unsigned long __unused)
-{
-}
-
 static inline void delay_swap_prefetch(void)
 {
 }
--- linux-2.6.22-rc4-mm2/mm/swap_prefetch.c.old	2007-06-12 02:15:09.000000000 +0200
+++ linux-2.6.22-rc4-mm2/mm/swap_prefetch.c	2007-06-12 02:15:18.000000000 +0200
@@ -139,7 +139,7 @@
  * look up the entry from the index without having to iterate over the whole
  * list.
  */
-void remove_from_swapped_list(const unsigned long index)
+static void remove_from_swapped_list(const unsigned long index)
 {
 	struct swapped_entry *entry;
 	unsigned long flags;

-

From: Con Kolivas
Date: Tuesday, June 12, 2007 - 4:16 am

Thanks. Good pick up. It was a global function but now is only done locally 
from within swap_prefetch.c lazily since the improvements.

Signed-off-by: Con Kolivas <kernel@kolivas.org>

-- 
-ck
-

From: Adrian Bunk
Date: Tuesday, June 12, 2007 - 4:03 pm

This patch makes the needlessly global osi_linux static.

Signed-off-by: Adrian Bunk <bunk@stusta.de>

---
--- linux-2.6.22-rc4-mm2/drivers/acpi/osl.c.old	2007-06-12 23:55:27.000000000 +0200
+++ linux-2.6.22-rc4-mm2/drivers/acpi/osl.c	2007-06-12 23:55:37.000000000 +0200
@@ -78,9 +78,9 @@
 static char osi_additional_string[OSI_STRING_LENGTH_MAX];
 
 #ifdef	OSI_LINUX_ENABLED
-int osi_linux = 1;	/* enable _OSI(Linux) by default */
+static int osi_linux = 1;	/* enable _OSI(Linux) by default */
 #else
-int osi_linux;		/* disable _OSI(Linux) by default */
+static int osi_linux;		/* disable _OSI(Linux) by default */
 #endif
 
 

-

From: Adrian Bunk
Date: Tuesday, June 12, 2007 - 4:03 pm

This patch makes 2 needlessly global functions static.

Signed-off-by: Adrian Bunk <bunk@stusta.de>

---

 drivers/acpi/processor_throttling.c |    6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

--- linux-2.6.22-rc4-mm2/drivers/acpi/processor_throttling.c.old	2007-06-12 23:57:53.000000000 +0200
+++ linux-2.6.22-rc4-mm2/drivers/acpi/processor_throttling.c	2007-06-12 23:58:22.000000000 +0200
@@ -410,7 +410,8 @@
 	return pr->throttling.acpi_processor_get_throttling(pr);
 }
 
-int acpi_processor_set_throttling_fadt(struct acpi_processor *pr, int state)
+static int acpi_processor_set_throttling_fadt(struct acpi_processor *pr,
+					      int state)
 {
 	u32 value = 0;
 	u32 duty_mask = 0;
@@ -482,7 +483,8 @@
 	return 0;
 }
 
-int acpi_processor_set_throttling_ptc(struct acpi_processor *pr, int state)
+static int acpi_processor_set_throttling_ptc(struct acpi_processor *pr,
+					     int state)
 {
 	u32 value = 0;
 

-

From: Adrian Bunk
Date: Tuesday, June 12, 2007 - 4:03 pm

This patch makes 3 needlessly global functions static.

Signed-off-by: Adrian Bunk <bunk@stusta.de>

---

 drivers/ata/sata_nv.c |    8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

--- linux-2.6.22-rc4-mm2/drivers/ata/sata_nv.c.old	2007-06-13 00:02:18.000000000 +0200
+++ linux-2.6.22-rc4-mm2/drivers/ata/sata_nv.c	2007-06-13 00:03:12.000000000 +0200
@@ -314,7 +314,7 @@
 static int nv_ncqintr_dmasetupfis(struct ata_port *ap);
 static void ncq_clear_singlefis(struct ata_port *ap, u32 val);
 static u32 ncq_ownfisintr_value (struct ata_port *ap);
-void ncq_hotplug(struct ata_port *ap, u32 fis);
+static void ncq_hotplug(struct ata_port *ap, u32 fis);
 static irqreturn_t nv_mcp55_interrupt(int irq, void *dev_instance);
 static int ncq_interrupt(struct ata_port *ap, u32 fis);
 static int nv_scsi_queuecmd(struct scsi_cmnd *cmd,
@@ -1931,7 +1931,7 @@
 	ncq_clear(ap);
 }
 
-int nv_std_prereset(struct ata_port *ap, unsigned long deadline)
+static int nv_std_prereset(struct ata_port *ap, unsigned long deadline)
 {
 	struct ata_eh_context *ehc = &ap->eh_context;
 
@@ -2265,7 +2265,7 @@
 	return 0;
 }
 
-u32 ncq_valid_dhfisflag(struct nv_port_priv *pp)
+static u32 ncq_valid_dhfisflag(struct nv_port_priv *pp)
 {
 	u32 valid = (pp->dhfis_flags == pp->qc_active);
 
@@ -2332,7 +2332,7 @@
 #endif
 
 
-void ncq_hotplug(struct ata_port *ap, u32 fis)
+static void ncq_hotplug(struct ata_port *ap, u32 fis)
 {
 	u32 serror;
 	struct ata_eh_info *ehi = &ap->eh_info;

-

From: Adrian Bunk
Date: Tuesday, June 12, 2007 - 4:03 pm

This patch makes the needlessly global store_utf8() static.

Signed-off-by: Adrian Bunk <bunk@stusta.de>

---
--- linux-2.6.22-rc4-mm2/drivers/char/selection.c.old	2007-06-13 00:23:09.000000000 +0200
+++ linux-2.6.22-rc4-mm2/drivers/char/selection.c	2007-06-13 00:23:20.000000000 +0200
@@ -112,7 +112,7 @@
 }
 
 /* stores the char in UTF8 and returns the number of bytes used (1-3) */
-int store_utf8(u16 c, char *p)
+static int store_utf8(u16 c, char *p)
 {
 	if (c < 0x80) {
 		/*  0******* */

-

From: Adrian Bunk
Date: Tuesday, June 12, 2007 - 4:03 pm

This patch makes the needlessly global struct menu_governor static.

Signed-off-by: Adrian Bunk <bunk@stusta.de>

---
--- linux-2.6.22-rc4-mm2/drivers/cpuidle/governors/menu.c.old	2007-06-13 00:25:03.000000000 +0200
+++ linux-2.6.22-rc4-mm2/drivers/cpuidle/governors/menu.c	2007-06-13 00:25:13.000000000 +0200
@@ -123,7 +123,7 @@
 	data->deepest_bm_state = i - 1;
 }
 
-struct cpuidle_governor menu_governor = {
+static struct cpuidle_governor menu_governor = {
 	.name =		"menu",
 	.scan =		menu_scan_device,
 	.select =	menu_select,

-

From: Adrian Bunk
Date: Thursday, June 14, 2007 - 3:15 pm

cont_expand_zero() can become static.

Signed-off-by: Adrian Bunk <bunk@stusta.de>

---
--- linux-2.6.22-rc4-mm2/fs/buffer.c.old	2007-06-14 01:51:08.000000000 +0200
+++ linux-2.6.22-rc4-mm2/fs/buffer.c	2007-06-14 01:51:42.000000000 +0200
@@ -2181,8 +2181,8 @@
 	return err;
 }
 
-int cont_expand_zero(struct file *file, struct address_space *mapping,
-			loff_t pos, loff_t *bytes)
+static int cont_expand_zero(struct file *file, struct address_space *mapping,
+			    loff_t pos, loff_t *bytes)
 {
 	struct inode *inode = mapping->host;
 	unsigned blocksize = 1 << inode->i_blkbits;

-

From: Nick Piggin
Date: Thursday, June 14, 2007 - 6:36 pm

Hi Adrian,

Thanks for doing these, but can we hold them off for now?

Thanks,
Nick


-

From: Adrian Bunk
Date: Thursday, June 14, 2007 - 3:15 pm

nobh_{prepare,commit}_write() are no longer used.

Signed-off-by: Adrian Bunk <bunk@stusta.de>

---

 fs/buffer.c                 |  175 ------------------------------------
 include/linux/buffer_head.h |    2 
 2 files changed, 177 deletions(-)

--- linux-2.6.22-rc4-mm2/include/linux/buffer_head.h.old	2007-06-14 01:54:54.000000000 +0200
+++ linux-2.6.22-rc4-mm2/include/linux/buffer_head.h	2007-06-14 01:55:08.000000000 +0200
@@ -224,8 +224,6 @@
 int generic_commit_write(struct file *, struct page *, unsigned, unsigned);
 int block_truncate_page(struct address_space *, loff_t, get_block_t *);
 int file_fsync(struct file *, struct dentry *, int);
-int nobh_prepare_write(struct page*, unsigned, unsigned, get_block_t*);
-int nobh_commit_write(struct file *, struct page *, unsigned, unsigned);
 int nobh_truncate_page(struct address_space *, loff_t);
 int nobh_writepage(struct page *page, get_block_t *get_block,
                         struct writeback_control *wbc);
--- linux-2.6.22-rc4-mm2/fs/buffer.c.old	2007-06-14 01:55:22.000000000 +0200
+++ linux-2.6.22-rc4-mm2/fs/buffer.c	2007-06-14 01:56:12.000000000 +0200
@@ -2315,181 +2315,6 @@
 
 
 /*
- * nobh_prepare_write()'s prereads are special: the buffer_heads are freed
- * immediately, while under the page lock.  So it needs a special end_io
- * handler which does not touch the bh after unlocking it.
- *
- * Note: unlock_buffer() sort-of does touch the bh after unlocking it, but
- * a race there is benign: unlock_buffer() only use the bh's address for
- * hashing after unlocking the buffer, so it doesn't actually touch the bh
- * itself.
- */
-static void end_buffer_read_nobh(struct buffer_head *bh, int uptodate)
-{
-	if (uptodate) {
-		set_buffer_uptodate(bh);
-	} else {
-		/* This happens, due to failed READA attempts. */
-		clear_buffer_uptodate(bh);
-	}
-	unlock_buffer(bh);
-}
-
-/*
- * On entry, the page is fully not uptodate.
- * On exit the page is fully uptodate in the areas outside (from,to)
- */
-int ...
From: Andrew Morton
Date: Tuesday, June 26, 2007 - 1:32 pm

On Fri, 15 Jun 2007 00:15:55 +0200

wth?  What happened to ext2 and ext3 nobh mode?  They seem to
have magically and unchangeloggedly disappeared?
-

From: Dave Kleikamp
Date: Tuesday, June 26, 2007 - 1:48 pm

They were removed with Nick's new aops patches.

Shaggy
-- 
David Kleikamp
IBM Linux Technology Center

-

From: Andrew Morton
Date: Tuesday, June 26, 2007 - 2:23 pm

On Tue, 26 Jun 2007 15:48:58 -0500

That much I worked out for myself.  It's kinda staggering that a fairly
major feature in two fairly major filesystems got removed without even a
mention in the changelog.  I don't recall having seen it discussed in email
but I obviously missed that bit.

Look, I'm one micron from just dropping the whole lot.  These changes
simply have not received the amount of energy, effort, care, attention and
testing which a change of this magnitude requires.

-

From: Randy Dunlap
Date: Tuesday, June 26, 2007 - 2:33 pm

so be sure to discuss that (not the patches themselves so much,
but the process(es)) at the kernel summit etc....


---
~Randy
*** Remember to use Documentation/SubmitChecklist when testing your code ***
-

From: Nick Piggin
Date: Tuesday, June 26, 2007 - 6:39 pm

I did of course mention that nobh wasn't converted when sending the
patches.

I asked for comments about how much it is used in real world. Badari
was the only one who replied about that but we didn't reach a conclusion.

I don't know about energy, but I have seen lots of other patches cause
a lot more problems...
-

From: Adrian Bunk
Date: Thursday, June 14, 2007 - 3:15 pm

wake_up_inode() can become static.

Signed-off-by: Adrian Bunk <bunk@stusta.de>

---

 fs/inode.c                |   18 +++++++++---------
 include/linux/writeback.h |    1 -
 2 files changed, 9 insertions(+), 10 deletions(-)

--- linux-2.6.22-rc4-mm2/include/linux/writeback.h.old	2007-06-14 02:00:29.000000000 +0200
+++ linux-2.6.22-rc4-mm2/include/linux/writeback.h	2007-06-14 02:00:34.000000000 +0200
@@ -69,7 +69,6 @@
  * fs/fs-writeback.c
  */	
 int writeback_inodes(struct writeback_control *wbc);
-void wake_up_inode(struct inode *inode);
 int inode_wait(void *);
 int sync_inodes_sb(struct super_block *, int wait);
 int sync_inodes(int wait);
--- linux-2.6.22-rc4-mm2/fs/inode.c.old	2007-06-14 02:00:40.000000000 +0200
+++ linux-2.6.22-rc4-mm2/fs/inode.c	2007-06-14 02:02:25.000000000 +0200
@@ -99,6 +99,15 @@
 
 static struct kmem_cache * inode_cachep __read_mostly;
 
+static void wake_up_inode(struct inode *inode)
+{
+	/*
+	 * Prevent speculative execution through spin_unlock(&inode_lock);
+	 */
+	smp_mb();
+	wake_up_bit(&inode->i_state, __I_LOCK);
+}
+
 static struct inode *alloc_inode(struct super_block *sb)
 {
 	static const struct address_space_operations empty_aops;
@@ -1296,15 +1305,6 @@
 	spin_lock(&inode_lock);
 }
 
-void wake_up_inode(struct inode *inode)
-{
-	/*
-	 * Prevent speculative execution through spin_unlock(&inode_lock);
-	 */
-	smp_mb();
-	wake_up_bit(&inode->i_state, __I_LOCK);
-}
-
 /*
  * We rarely want to lock two inodes that do not have a parent/child
  * relationship (such as directory, child inode) simultaneously. The

-

From: Adrian Bunk
Date: Thursday, June 14, 2007 - 3:16 pm

simple_commit_write() can now become static.

Signed-off-by: Adrian Bunk <bunk@stusta.de>

---

 fs/libfs.c         |    5 ++---
 include/linux/fs.h |    2 --
 2 files changed, 2 insertions(+), 5 deletions(-)

--- linux-2.6.22-rc4-mm2/include/linux/fs.h.old	2007-06-14 02:05:36.000000000 +0200
+++ linux-2.6.22-rc4-mm2/include/linux/fs.h	2007-06-14 02:05:43.000000000 +0200
@@ -1973,8 +1973,6 @@
 extern int simple_readpage(struct file *file, struct page *page);
 extern int simple_prepare_write(struct file *file, struct page *page,
 			unsigned offset, unsigned to);
-extern int simple_commit_write(struct file *file, struct page *page,
-				unsigned offset, unsigned to);
 extern int simple_write_begin(struct file *file, struct address_space *mapping,
 			loff_t pos, unsigned len, unsigned flags,
 			struct page **pagep, void **fsdata);
--- linux-2.6.22-rc4-mm2/fs/libfs.c.old	2007-06-14 02:05:50.000000000 +0200
+++ linux-2.6.22-rc4-mm2/fs/libfs.c	2007-06-14 02:06:16.000000000 +0200
@@ -371,8 +371,8 @@
 	return simple_prepare_write(file, page, from, from+len);
 }
 
-int simple_commit_write(struct file *file, struct page *page,
-			unsigned from, unsigned to)
+static int simple_commit_write(struct file *file, struct page *page,
+			       unsigned from, unsigned to)
 {
 	struct inode *inode = page->mapping->host;
 	loff_t pos = ((loff_t)page->index << PAGE_CACHE_SHIFT) + to;
@@ -686,7 +686,6 @@
 EXPORT_SYMBOL(get_sb_pseudo);
 EXPORT_SYMBOL(simple_write_begin);
 EXPORT_SYMBOL(simple_write_end);
-EXPORT_SYMBOL(simple_commit_write);
 EXPORT_SYMBOL(simple_dir_inode_operations);
 EXPORT_SYMBOL(simple_dir_operations);
 EXPORT_SYMBOL(simple_empty);

-

From: Adrian Bunk
Date: Thursday, June 14, 2007 - 3:16 pm

This patch contains the following cleanups:
- remove the following no longer used functions:
  - bitmap.c: reiserfs_claim_blocks_to_be_allocated()
  - bitmap.c: reiserfs_release_claimed_blocks()
  - bitmap.c: reiserfs_can_fit_pages()
- make the following functions static:
  - inode.c: restart_transaction()
  - journal.c: reiserfs_async_progress_wait()

Signed-off-by: Adrian Bunk <bunk@stusta.de>

---

 fs/reiserfs/bitmap.c        |   57 ------------------------------------
 fs/reiserfs/inode.c         |    4 +-
 fs/reiserfs/journal.c       |    3 +
 include/linux/reiserfs_fs.h |    7 ----
 4 files changed, 4 insertions(+), 67 deletions(-)

--- linux-2.6.22-rc4-mm2/include/linux/reiserfs_fs.h.old	2007-06-14 02:08:17.000000000 +0200
+++ linux-2.6.22-rc4-mm2/include/linux/reiserfs_fs.h	2007-06-14 02:11:20.000000000 +0200
@@ -1701,8 +1701,6 @@
 	return th->t_blocks_allocated - th->t_blocks_logged;
 }
 
-int reiserfs_async_progress_wait(struct super_block *s);
-
 struct reiserfs_transaction_handle *reiserfs_persistent_transaction(struct
 								    super_block
 								    *,
@@ -1857,8 +1855,6 @@
 #define GET_BLOCK_NO_IMUX     8	/* i_mutex is not held, don't preallocate */
 #define GET_BLOCK_NO_DANGLE   16	/* don't leave any transactions running */
 
-int restart_transaction(struct reiserfs_transaction_handle *th,
-			struct inode *inode, struct treepath *path);
 void reiserfs_read_locked_inode(struct inode *inode,
 				struct reiserfs_iget_args *args);
 int reiserfs_find_actor(struct inode *inode, void *p);
@@ -2135,9 +2131,6 @@
 			       struct inode *inode);
 void reiserfs_discard_all_prealloc(struct reiserfs_transaction_handle *th);
 #endif
-void reiserfs_claim_blocks_to_be_allocated(struct super_block *sb, int blocks);
-void reiserfs_release_claimed_blocks(struct super_block *sb, int blocks);
-int reiserfs_can_fit_pages(struct super_block *sb);
 
 /* hashes.c */
 __u32 keyed_hash(const signed char *msg, int len);
--- ...
From: Nick Piggin
Date: Thursday, June 14, 2007 - 6:37 pm

From: Adrian Bunk
Date: Thursday, June 14, 2007 - 3:16 pm

root_wait can become static.

Signed-off-by: Adrian Bunk <bunk@stusta.de>

---
--- linux-2.6.22-rc4-mm2/init/do_mounts.c.old	2007-06-14 02:19:22.000000000 +0200
+++ linux-2.6.22-rc4-mm2/init/do_mounts.c	2007-06-14 02:19:47.000000000 +0200
@@ -25,7 +25,7 @@
 int root_mountflags = MS_RDONLY | MS_SILENT;
 char * __initdata root_device_name;
 static char __initdata saved_root_name[64];
-int __initdata root_wait;
+static int __initdata root_wait;
 
 dev_t ROOT_DEV;
 

-

From: Adrian Bunk
Date: Thursday, June 14, 2007 - 3:16 pm

ide_set_dma no longer has any modular user.

Signed-off-by: Adrian Bunk <bunk@stusta.de>

---
--- linux-2.6.22-rc4-mm2/drivers/ide/ide-dma.c.old	2007-06-14 23:52:30.000000000 +0200
+++ linux-2.6.22-rc4-mm2/drivers/ide/ide-dma.c	2007-06-14 23:52:38.000000000 +0200
@@ -847,8 +847,6 @@
 	return rc;
 }
 
-EXPORT_SYMBOL_GPL(ide_set_dma);
-
 #ifdef CONFIG_BLK_DEV_IDEDMA_PCI
 void ide_dma_lost_irq (ide_drive_t *drive)
 {

-

From: Bartlomiej Zolnierkiewicz
Date: Friday, June 15, 2007 - 5:18 pm

applied
-

From: Adrian Bunk
Date: Sunday, June 17, 2007 - 4:42 pm

Every file should include the headers containing the prototypes for
it's global functions.

Signed-off-by: Adrian Bunk <bunk@stusta.de>

---
--- linux-2.6.22-rc4-mm2/arch/i386/video/fbdev.c.old	2007-06-17 15:48:25.000000000 +0200
+++ linux-2.6.22-rc4-mm2/arch/i386/video/fbdev.c	2007-06-17 15:48:53.000000000 +0200
@@ -11,6 +11,8 @@
 #include <linux/fb.h>
 #include <linux/pci.h>
 
+#include <asm/fb.h>
+
 int fb_is_primary_device(struct fb_info *info)
 {
 	struct device *device = info->device;

-

From: Sam Ravnborg
Date: Sunday, June 17, 2007 - 9:52 pm

1) Why not include asm/fb.h from linux/fb.h?
2) Is asm/fb.h an -mm thing? I do not have it in my linus tree.

Note: Ketchup is broken on my ubuntu box so no -mm right now.

	Sam
-

From: J.A.
Date: Tuesday, June 19, 2007 - 6:53 am

I get this warning when I plug a USB stick:

Jun 19 15:50:53 werewolf-wl kernel: usb 1-8: new high speed USB device using ehci_hcd and address 4
Jun 19 15:50:53 werewolf-wl kernel: usb 1-8: new device found, idVendor=090c, idProduct=1000
Jun 19 15:50:53 werewolf-wl kernel: usb 1-8: new device strings: Mfr=1, Product=2, SerialNumber=3
Jun 19 15:50:53 werewolf-wl kernel: usb 1-8: Product: USBDrive
Jun 19 15:50:53 werewolf-wl kernel: usb 1-8: Manufacturer: LG
Jun 19 15:50:53 werewolf-wl kernel: usb 1-8: SerialNumber: AA04012700012034
Jun 19 15:50:53 werewolf-wl kernel: usb 1-8: configuration #1 chosen from 1 choice
Jun 19 15:50:53 werewolf-wl kernel: scsi7 : SCSI emulation for USB Mass Storage devices
Jun 19 15:50:53 werewolf-wl kernel: usb-storage: device found at 4
Jun 19 15:50:53 werewolf-wl kernel: usb-storage: waiting for device to settle before scanning
Jun 19 15:50:58 werewolf-wl kernel: WARNING: at drivers/usb/core/urb.c:293 usb_submit_urb()
Jun 19 15:50:58 werewolf-wl kernel:  [usb_submit_urb+491/513] usb_submit_urb+0x1eb/0x201
Jun 19 15:50:58 werewolf-wl kernel:  [<c02724be>] usb_submit_urb+0x1eb/0x201
Jun 19 15:50:58 werewolf-wl kernel:  [usb_sg_init+580/609] usb_sg_init+0x244/0x261
Jun 19 15:50:58 werewolf-wl kernel:  [<c027408b>] usb_sg_init+0x244/0x261
Jun 19 15:50:58 werewolf-wl kernel:  [usb_sg_wait+175/326] usb_sg_wait+0xaf/0x146
Jun 19 15:50:58 werewolf-wl kernel:  [<c0273c12>] usb_sg_wait+0xaf/0x146
Jun 19 15:50:58 werewolf-wl kernel:  [usb_stor_bulk_transfer_sg+149/220] usb_stor_bulk_transfer_sg+0x95/0xdc
Jun 19 15:50:58 werewolf-wl kernel:  [usb_stor_bulk_transfer_buf+71/114] usb_stor_bulk_transfer_buf+0x47/0x72
Jun 19 15:50:58 werewolf-wl kernel:  [<c0285afe>] usb_stor_bulk_transfer_buf+0x47/0x72
Jun 19 15:50:58 werewolf-wl kernel:  [usb_stor_Bulk_transport+293/617] usb_stor_Bulk_transport+0x125/0x269
Jun 19 15:50:58 werewolf-wl kernel:  [<c02860a9>] usb_stor_Bulk_transport+0x125/0x269
Jun 19 15:50:58 werewolf-wl kernel:  [usb_stor_control_thread+0/425] ...
From: J.A.
Date: Tuesday, June 19, 2007 - 7:34 am

Oops, forgot to say that this is not plain -rc4-mm2, but with CFS scheduler v17.

--
J.A. Magallon <jamagallon()ono!com>     \               Software is like sex:
                                         \         It's better when it's free
Mandriva Linux release 2008.0 (Cooker) for i586
Linux 2.6.21-jam07 (gcc 4.1.2 20070302 (4.1.2-1mdv2007.1)) SMP PREEMPT
09 F9 11 02 9D 74 E3 5B D8 41 56 C5 63 56 88 C0
-

From: Jiri Slaby
Date: Wednesday, June 20, 2007 - 12:23 am

Does this help?
http://lkml.org/lkml/2007/6/7/197

regards,
-- 
http://www.fi.muni.cz/~xslaby/            Jiri Slaby
faculty of informatics, masaryk university, brno, cz
e-mail: jirislaby gmail com, gpg pubkey fingerprint:
B674 9967 0407 CE62 ACC8  22A0 32CC 55C3 39D4 7A7E
-

From: J.A.
Date: Wednesday, June 20, 2007 - 2:54 pm

Yep, thanks !!! Oops gone.

--
J.A. Magallon <jamagallon()ono!com>     \               Software is like sex:
                                         \         It's better when it's free
Mandriva Linux release 2008.0 (Cooker) for i586
Linux 2.6.21-jam08 (gcc 4.1.2 20070302 (4.1.2-1mdv2007.1)) SMP PREEMPT
09 F9 11 02 9D 74 E3 5B D8 41 56 C5 63 56 88 C0
-

From: Mattia Dongili
Date: Tuesday, June 19, 2007 - 10:22 pm

Hello,
on this vaio sz72b I can't suspend if usb-storage is loaded. Bisecting
is becoming troublesome as different sets have slightly different
problems.
At one point (with the GREGKH usb stuff built) I had the kernel
reporting it cannot stop the usb-storage thread so I guess that
something later in the series made things worse (freezable workqueues?).

Clues?
-- 
-

From: Rafael J. Wysocki
Date: Wednesday, June 20, 2007 - 4:40 am

Can you please try 2.6.22-rc5 with the patches from

http://www.sisk.pl/kernel/hibernation_and_suspend/2.6.22-rc5/patches/

applied.  That should allow us to eliminate some suspects. ;-)

Greetings,
Rafael


-- 
"Premature optimization is the root of all evil." - Donald Knuth
-

From: Mattia Dongili
Date: Wednesday, June 20, 2007 - 8:38 am

you're safe then! .22-rc5 + your suspend patch-set can suspend and
resume happily.

-- 
-

From: Rafael J. Wysocki
Date: Wednesday, June 20, 2007 - 1:50 pm

OK, thanks.  OTOH, that would have been less patches to check ... ;-)

I'll see if I can reproduce your problem here.

Greetings,
Rafael


-- 
"Premature optimization is the root of all evil." - Donald Knuth
-

From: Rafael J. Wysocki
Date: Wednesday, June 20, 2007 - 3:03 pm

Yes, I can.  It's only necessary to load usb-storage (without any devices
actually using it) and it fails device_suspend() immediately (I don't think
it's freezer-related).

I've got the following trace from it:

usb_endpoint usbdev3.2_ep81: PM: suspend 0->1, parent 3-1:1.0 already 2
Suspending device 3-1:1.0
Suspending device usbdev3.2_ep00
Suspending device 3-1
Suspending device eth1
Suspending device eth0
Suspending device usbdev3.1
Suspending device usbdev3.1_ep81
Suspending device 3-0:1.0
Suspending device usbdev3.1_ep00
Suspending device usb3
hub 3-0:1.0: hub_suspend
ohci_hcd 0000:00:02.1: needs reinit!
usb usb3: suspend fail, err -16
usb usb3: 'global' suspend -16
hub 3-0:1.0: hub_resume
hub 3-0:1.0: activate --> -108
suspend_device(): usb_suspend+0x0/0x30() returns -16
Could not suspend device usb3: error -16
WARNING: at /home/rafael/src/mm/linux-2.6.22-rc4-mm2/drivers/usb/core/urb.c:293 usb_submit_urb()

Call Trace:
 [<ffffffff80409dd3>] usb_submit_urb+0x363/0x3b0
 [<ffffffff881e21cf>] :usbhid:hid_start_in+0x8f/0xb0
 [<ffffffff881e221a>] :usbhid:hid_resume+0x2a/0x30
 [<ffffffff8040c832>] usb_resume_interface+0x92/0x100
 [<ffffffff8040c93e>] usb_external_resume_device+0x9e/0x170
 [<ffffffff8040ca3b>] usb_resume+0x2b/0x40
 [<ffffffff803ed097>] resume_device+0x87/0x190
 [<ffffffff803ed239>] dpm_resume+0x99/0xc0
 [<ffffffff803ecef7>] device_suspend+0x147/0x190
 [<ffffffff803c1891>] tty_ldisc_deref+0x61/0x80
 [<ffffffff80268e1e>] hibernation_snapshot+0x3e/0xe0
 [<ffffffff802e7fce>] dnotify_parent+0x3e/0x90
 [<ffffffff8026c059>] snapshot_ioctl+0x379/0x540
 [<ffffffff8026bce0>] snapshot_ioctl+0x0/0x540
 [<ffffffff802b2b72>] do_ioctl+0x92/0xe0
 [<ffffffff802b2c33>] vfs_ioctl+0x73/0x2d0
 [<ffffffff804b2c7a>] trace_hardirqs_on_thunk+0x35/0x37
 [<ffffffff802b2f21>] sys_ioctl+0x91/0xb0
 [<ffffffff8020bc6e>] system_call+0x7e/0x83

usbhid 3-1:1.0: resume error -16
usb_endpoint usbdev3.2_ep81: PM: resume from 0, parent 3-1:1.0 still 2
input input4: PM: resume from ...
From: Rafael J. Wysocki
Date: Wednesday, June 20, 2007 - 3:22 pm

It seems to be 100% reproducible in arbitrary configuration.

Here's a dmesg snippet from another machine:

Suspending device usbdev4.1
Suspending device usbdev4.1_ep81
Suspending device 4-0:1.0
Suspending device usbdev4.1_ep00
Suspending device usb4
hub 4-0:1.0: activate --> -108
suspend_device(): usb_suspend+0x0/0x30() returns -16
Could not suspend device usb4: error -16
PM: Image restored successfully.
Restarting tasks ... <3>hub 4-0:1.0: hub_port_status failed (err = -108)
hub 4-0:1.0: hub_port_status failed (err = -108)
hub 4-0:1.0: hub_port_status failed (err = -108)
done.
swsusp: Basic memory bitmaps freed

Greetings,
Rafael


-- 
"Premature optimization is the root of all evil." - Donald Knuth
-

From: Alan Stern
Date: Thursday, June 21, 2007 - 8:28 am

Odd.  This has nothing at all to do with usb-storage.  The "needs 
reinnit!" message means that an OHCI controller was in a reset state -- 
not running and not suspended -- when the suspend method was called.

This happened with plain old 2.6.22-rc4-mm2?  I'll try to reproduce it.

Alan Stern

-

From: Alan Stern
Date: Thursday, June 21, 2007 - 12:39 pm

Well, a large part of the problem is that

	usb-try-to-debug-bug-8561.patch

hasn't been reverted in 2.6.22-rc4-mm2.  Andrew, that patch is supposed 
to be completely gone.  It isn't still present in your tree, is it?

Alan Stern

-

From: Rafael J. Wysocki
Date: Thursday, June 21, 2007 - 2:49 pm

Yes, the problem is not present after reverting this patch.

Greetings,
Rafael


-- 
"Premature optimization is the root of all evil." - Donald Knuth
-

From: Mattia Dongili
Date: Friday, June 22, 2007 - 2:25 am

Not for me, I had that patch already reverted. As I said there was a
point when bisecting which the kernel came back to life instead of just
hanging trying to suspend.
I'll try to get a trace with that. May the usb_storage verbose debug
help there?

-- 
-

From: Alan Stern
Date: Friday, June 22, 2007 - 6:59 am

I've lost track of the start of this thread, so it would help to see a
dmesg log with CONFIG_USB_DEBUG turned on.  CONFIG_USB_STORAGE_DEBUG
doesn't matter so much because the usb-storage suspend and resume
routines don't do a lot of work.

Alan Stern

-

From: Mattia Dongili
Date: Saturday, June 23, 2007 - 10:27 pm

Sorry, it was probably me who messed things up. It looks like it's not
usb-storage who's preventing suspend here. I have this diff between a
single user mode where I can suspend and a multiuser environment where
suspend hangs, will go loading the missing modules one by one and get a
better idea...
Sorry for the noise.

--- /root/lsmod-str.txt	2007-06-24 10:58:09.953207666 +0900
+++ /root/lsmod-str-nono.txt	2007-06-24 14:21:33.354417422 +0900
@@ -1,10 +1,20 @@
+ac
+acpi_cpufreq
 agpgart
 arc4
+auth_rpcgss
 backlight
+battery
 blkcipher
 bluetooth
+button
 cdrom
 cfg80211
+cpufreq_conservative
+cpufreq_ondemand
+cpufreq_powersave
+cpufreq_stats
+cpufreq_userspace
 dm_crypt
 dm_mirror
 dm_mod
@@ -12,20 +22,39 @@
 ecb
 ehci_hcd
 evdev
+exportfs
+fan
 firmware_class
+freq_table
 fuse
 hci_usb
 i2c_i801
 ide_cd
+inet_diag
 intel_agp
+iptable_filter
+iptable_nat
+ip_tables
+ipt_MASQUERADE
+ipv6
 iwl3945
+l2cap
+lockd
 loop
 mac80211
+nf_conntrack
+nf_conntrack_ipv4
+nf_nat
+nfnetlink
+nfs
+nfs_acl
+nfsd
 pcmcia
 pcmcia_core
 psmouse
 r5u870
 rc80211_simple
+rfcomm
 rsrc_nonstatic
 rtc
 sky2
@@ -38,16 +67,22 @@
 snd_timer
 sony_laptop
 soundcore
+sunrpc
+tcp_diag
+thermal
 tifm_7xx1
 tifm_core
 tpm
 tpm_bios
 tpm_infineon
 uhci_hcd
-usb_storage
 usbcore
+usb_storage
 v4l1_compat
 v4l2_common
 video_buf
 videodev
+x_tables
+xt_state
+xt_tcpudp
 yenta_socket

-- 
-

From: Mattia Dongili
Date: Sunday, June 24, 2007 - 1:33 am

...

Hi,
sorry for the previous spam about not suspending.

It turns out it's actually due to iwl3945.
Looking at the changelog there's been a recent fix for suspend/resume
issues, I just tested the latest snapshot (0.0.32) which indeed works.

apologies again,
-- 
-

From: Alan Stern
Date: Wednesday, June 20, 2007 - 7:01 am

The usb-storage thread is supposed to be unfreezable.  Recent changes 
may have messed up the code that checks for which threads need to be 
frozen and which don't.

Alan Stern

-

From: Rafael J. Wysocki
Date: Wednesday, June 20, 2007 - 7:12 am

I don't really think so, but well ...

That's why I asked Mattia to test the hibernation/suspend patches without
the rest of -mm.

Greetings,
Rafael


-- 
"Premature optimization is the root of all evil." - Donald Knuth
-

From: Michal Piotrowski
Date: Thursday, June 7, 2007 - 4:07 am

LTP triggered this

[ 4691.872882] ------------[ cut here ]------------
[ 4691.877619] kernel BUG at fs/buffer.c:1821!
[ 4691.881857] invalid opcode: 0000 [#1]
[ 4691.885596] PREEMPT SMP 
[ 4691.888205] Modules linked in: isofs nls_base zlib_inflate autofs4 sunrpc af_packet nf_conntrack_netbios_ns nf_conntrack_ipv4 xt_state nf_conntrack nfnetlink ipt_REJECT iptable_filter ip_tables xt_tcpudp ip6t_REJECT ip6table_filter ip6_tables x_tables firmware_class binfmt_misc thermal processor fan container ipv6 nvram loop snd_intel8x0 snd_ac97_codec ac97_bus snd_seq_dummy snd_seq_oss snd_seq_midi_event snd_seq snd_seq_device snd_pcm_oss snd_mixer_oss snd_pcm snd_timer i2c_i801 snd soundcore intel_agp snd_page_alloc agpgart evdev rtc
[ 4691.937384] CPU:    1
[ 4691.937385] EIP:    0060:[<c04a510f>]    Not tainted VLI
[ 4691.937387] EFLAGS: 00010202   (2.6.22-rc4-mm2 #1)
[ 4691.949984] EIP is at __block_prepare_write+0x64/0x3a5
[ 4691.955164] eax: 00000001   ebx: c624fc50   ecx: c07e0910   edx: 00000001
[ 4691.962041] esi: 00000418   edi: 00000000   ebp: cc454dc0   esp: cc454d60
[ 4691.968946] ds: 007b   es: 007b   fs: 00d8  gs: 0033  ss: 0068
[ 4691.974850] Process vmsplice01 (pid: 8420, ti=cc454000 task=cafe6800 task.ti=cc454000)
[ 4691.982699] Stack: cc454d80 c0443c61 00000001 00000001 c7f71080 00000418 c624fc50 c98ec464 
[ 4691.991372]        00000000 00000286 c04d6706 c523d7c8 00000050 c04d6706 c7f71080 c828d7f0 
[ 4691.999998]        c7f71094 cc454dd4 c04d673f c065cfbc c624fc50 c624fc50 00000418 00000000 
[ 4692.008729] Call Trace:
[ 4692.011397]  [<c04a5513>] block_write_begin+0x90/0xf4
[ 4692.016556]  [<c04c9779>] ext3_write_begin+0xda/0x19b
[ 4692.021750]  [<c0464b5a>] pagecache_write_begin+0x4d/0x12f
[ 4692.027349]  [<c04a1a35>] pipe_to_file+0xa0/0x15f
[ 4692.032148]  [<c04a14af>] __splice_from_pipe+0x63/0x1d2
[ 4692.037459]  [<c04a1660>] splice_from_pipe+0x42/0x58
[ 4692.042544]  [<c04a1916>] generic_file_splice_write+0x8b/0x10a
[ 4692.048477]  [<c04a1409>] ...
From: Andrew Morton
Date: Thursday, June 7, 2007 - 8:26 am

yup, thanks, I'd forgotten about that one.  Nick had a protofix but afaik nobody
has tested it yet.


-

From: Jiri Slaby
Date: Wednesday, June 13, 2007 - 1:33 am

Hi,

after plugging my camera in, I get this:
usb 1-1: new full speed USB device using uhci_hcd and address 2
usb 1-1: new device found, idVendor=07b4, idProduct=0105
usb 1-1: new device strings: Mfr=1, Product=2, SerialNumber=3
usb 1-1: Product: C765UZ
usb 1-1: Manufacturer: OLYMPUS
usb 1-1: SerialNumber: 000375531837
usb 1-1: configuration #1 chosen from 1 choice
Initializing USB Mass Storage driver...
scsi7 : SCSI emulation for USB Mass Storage devices
usbcore: registered new interface driver usb-storage
USB Mass Storage support registered.
WARNING: at /home/l/latest/xxx/drivers/usb/core/urb.c:293 usb_submit_urb()
 [<c010516a>] dump_trace+0x1d8/0x207
 [<c01051b3>] show_trace_log_lvl+0x1a/0x30
 [<c0105db9>] show_trace+0x12/0x14
 [<c0105dd1>] dump_stack+0x16/0x18
 [<c0284034>] usb_submit_urb+0x1ea/0x200
 [<c02857fe>] usb_sg_wait+0xba/0x14e
 [<f8985098>] usb_stor_bulk_transfer_sg+0x99/0xe3 [usb_storage]
 [<f89854cc>] usb_stor_Bulk_transport+0x127/0x277 [usb_storage]
 [<f8985637>] usb_stor_invoke_transport+0x1b/0x2f4 [usb_storage]
 [<f89848b9>] usb_stor_transparent_scsi_command+0x8/0xa [usb_storage]
 [<f8986354>] usb_stor_control_thread+0x130/0x195 [usb_storage]
 [<c0136d07>] kthread+0x37/0x59
 [<c0104bfb>] kernel_thread_helper+0x7/0x1c
 =======================





It's not usable, some threads end up in D state. Relevant part of sysrq-t:
scsi_eh_7     D 0080027D     0 23842      2 (L-TLB)
       c2e52f34 00000046 45ad4b85 0080027d c2e52f1c 00000000 c3e88230 45ad46cf
       0080027d c012262a c3e88230 c3e883b8 c180b980 486cfe61 0000027d c037487f
       c2e52f74 00000046 d560826b 0080027a c011c00f c2cecac0 c0545080 c0545080
Call Trace:
 [<c0374f8d>] wait_for_completion+0x87/0xbc
 [<f898462e>] command_abort+0x58/0x74 [usb_storage]
 [<c0263be3>] __scsi_try_to_abort_cmd+0x1c/0x1e
 [<c0264f10>] scsi_error_handler+0x241/0x2bf
 [<c0136d07>] kthread+0x37/0x59
 [<c0104bfb>] kernel_thread_helper+0x7/0x1c
 =======================
usb-storage   D 0080027B     0 23843      2 ...
From: Jiri Slaby
Date: Wednesday, June 13, 2007 - 1:46 am

Aha, you are, going to try http://lkml.org/lkml/2007/6/7/197

regards,
-- 
http://www.fi.muni.cz/~xslaby/            Jiri Slaby
faculty of informatics, masaryk university, brno, cz
e-mail: jirislaby gmail com, gpg pubkey fingerprint:
B674 9967 0407 CE62 ACC8  22A0 32CC 55C3 39D4 7A7E
-

From: Reuben Farrelly
Date: Wednesday, June 13, 2007 - 2:35 am

I've come home to find my server has locked up hard, with a panic on the screen. 
  This time unlike others, I was able to grab a photo of it for further analysis.

http://www.reub.net/files/kernel/     serial-crash.jpg

[Note also the .config and dmesg in the same directory]

I have had this or a very similar traceback appear about 3 or 4 times now, 
including with a 2.6.21-gentoo kernel (based on mainline), so this bug may well 
be present in mainline.  It is not new to this -mm release.

The bug does not occur on demand, it just seems to happen every few days without 
obvious warning, I haven't reported it until now as I haven't had any other 
information to provide other than "some panic seems to happen with a tty_write 
something-or-other".

The other possibly crucial piece of information on this is that I have one of my 
serial ports set up as a serial console.  The kernel boot commands for this are:

kernel /vmlinuz-2.6.22-rc4-mm2 ro real_root=/dev/md2 console=tty0 
console=ttyS0,57600 panic=30

as well as this:

# SERIAL CONSOLES
s0:12345:respawn:/sbin/agetty 57600 ttyS0 vt100

in inittab.

The other serial port is connected up to my APC UPS and is set up with apcupsd.

Reuben
-

From: Valdis.Kletnieks
Date: Thursday, June 7, 2007 - 7:29 am

Ahh.. much better.  'lvm vgscan' worked, it booted, been up for an hour-ish
without any oops, bug, or warning.  Dell Latitude D820 laptop, T7200 dual-core,
x86_64 kernel....
From: Adrian Bunk
Date: Thursday, June 21, 2007 - 4:52 pm

calibrate_xor_blocks() can be marked __init.

Signed-off-by: Adrian Bunk <bunk@stusta.de>

---
--- linux-2.6.22-rc4-mm2/crypto/xor.c.old	2007-06-21 23:47:56.000000000 +0200
+++ linux-2.6.22-rc4-mm2/crypto/xor.c	2007-06-21 23:48:39.000000000 +0200
@@ -94,7 +94,7 @@
 	       speed / 1000, speed % 1000);
 }
 
-static int
+static int __init
 calibrate_xor_blocks(void)
 {
 	void *b1, *b2;

-

Previous thread: [PATCH] enable interrupts in user path of page fault. by Steven Rostedt on Wednesday, June 6, 2007 - 8:34 pm. (5 messages)

Next thread: [patch/rfc] implement memmem() locally in kallsyms.c by Mike Frysinger on Wednesday, June 6, 2007 - 10:16 pm. (4 messages)