2009-04-22 03:29:26

by Linus Torvalds

[permalink] [raw]
Subject: Linus 2.6.30-rc3


Another week, another -rc.

The patch is even bigger, since we ended up doing the renaming of the m32r
header files (last architecture to use the old include/asm-xyz format) and
the caiaq sound driver also renamed it's files. And this time I actually
checked that my patches are old-style patches without git rename
information, so they should all apply properly on the first try!

But apart from that, there shouldn't be a lot of huge excitement. Things
do seem to be calming down, knock wood.

The diffstat really shows lots of small one-liners and two-liners,
although there are areas that are getting bigger patches (ignoring the
bulky but uninteresting arm defconfig updates): some x86 updates, some
block IO scheduling fixes, splice cleanups and fixes, and a number of
driver changes (sound, networking, staging, usb).

CIFS and btrfs updates also show up pretty clearly.

And hopefully all the embarrassing and trivial regressions get fixed.

Which leaves us the more interesting ones, and making us ask people to
test more, of course.

Linus

---
Aaro Koskinen (1):
[ARM] 5450/1: Flush only the needed range when unmapping a VMA

Adrian McMenamin (1):
Documentation/filesystems: remove out of date reference to BKL being held

Ajit Khaparde (1):
be2net: fix for default setting of pause auto-negotiation

Akinobu Mita (1):
hugetlbfs: return negative error code for bad mount option

Al Viro (7):
Fix AUTOFS_DEV_IOCTL_REQUESTER_CMD
Touch all affected namespaces on propagation of mount
Safer nfsd_cross_mnt()
No need for crossing to mountpoint in audit_tag_tree()
Fix autofs_expire()
autofs4: use memchr() in invalid_string()
reiserfs: fix j_last_flush_trans_id type

Alan Cox (4):
ata: Report 16/32bit PIO as best we can
vfat: Note the NLS requirement
Staging: aten2011: Clean up some tty bits
pata_via: Cache and rewrite the device bit

Alan Stern (2):
USB: usb-storage: augment unusual_devs entry for Simple Tech/Datafab
usb-storage: fix mistake in Makefile

Alex Chiang (1):
sysfs: don't use global workqueue in sysfs_schedule_callback()

Alexander Beregalov (38):
fs_enet: convert to netdev_ops
ibm_newemac: convert to netdev_ops
ariadne: convert to net_device_ops
am79c961a: convert to net_device_ops
at91_ether: convert to net_device_ops
ep93xx_eth: convert to net_device_ops
ether1: convert to net_device_ops
ether3: convert to net_device_ops
xtsonic: convert to net_device_ops
tsi108_eth: convert to net_device_ops
tc35815: convert to net_device_ops
sun3_82586: convert to net_device_ops
sh_eth: convert to net_device_ops
macsonic: convert to net_device_ops
macb: convert to net_device_ops
mac89x0: convert to net_device_ops
isa-skeleton: convert to net_device_ops
ioc3-eth: convert to net_device_ops
eth_v10: convert to net_device_ops
ehea: Fix incomplete conversion to net_device_ops
a2065: convert to net_device_ops
atarilance: convert to net_device_ops
au1000: convert to net_device_ops
bfin_mac: convert to net_device_ops
declance: convert to net_device_ops
Input: hp_sdc_rtc should depend on serio
Staging: at76: convert to netdev_ops
Staging: epl: convert to netdev_ops
Staging: et131x: convert to netdev_ops
Staging: otus: convert to netdev_ops
Staging: rt2860: convert to netdev_ops
Staging: rt2870: convert to netdev_ops
Staging: rt3070: convert to netdev_ops
Staging: slicoss: convert to netdev_ops
Staging: sxg: convert to netdev_ops
Staging: wlan-ng: convert to netdev_ops
Staging: line6: convert to snd_card_create()
fs/compat_ioctl: fix build when !BLOCK

Alexander Duyck (5):
net: netif_device_attach/detach should start/stop all queues
ixgbe: only allow WOL for 82599 KX4 NIC
igb: fix unused external references introduced with sr-iov changes
igbvf: fix unused external references
igb: do not check for vf_data if we didn't enable vfs

Anatolij Gustschin (2):
phylib: Allow early-out in phy_change
phylib: Add interrupt source check function to M88E1121R driver

Andi Kleen (1):
Don't set relatime when noatime is specified

Arjan van de Ven (4):
Input: i8042 - introduce a tougher reset
Input: i8042 - add a DMI table for the i8042.reset option
Input: remove unnecessary synchronize_rcu() call
driver synchronization: make scsi_wait_scan more advanced

Arve Hj?nnev?g (8):
Staging: binder: Remove VM_EXEC check.
Staging: binder: Don't create two proc entries with the same name if the driver is opened twice in one process.
Staging: binder: mmap fixes.
Staging: binder: Add more offset validation.
Staging: binder: Keep a reference to the files_struct while the driver is mmapped
Staging: binder: Cast to uintptr_t instead of size_t when aligning pointers
Staging: binder: Prevent the wrong thread from adding a transaction to the stack.
Staging: binder: Defer flush and release operations to avoid deadlocks.

Atsushi Nemoto (1):
phylib: Fix delay argument of schedule_delayed_work

Barry Carroll (1):
Input: atkbd - add forced release keys quirk for Samsung NC20

Bartlomiej Zolnierkiewicz (1):
ide: fix barriers support

Ben Dooks (20):
[ARM] s3c2410_defconfig: update to 2.6.30-rc2
[ARM] s3c2410_defconfig: Update network options
[ARM] s3c2410_defconfig: Update machine configuration
[ARM] s3c2410_defconfig: Add MMC/SD core and drivers
[ARM] s3c2410_defconfig: Add sound drivers
[ARM] s3c2410_defconfig: Add video/radio drivers
[ARM] s3c2410_defconfig: Update filesystem options
[ARM] s3c2410_defconfig: Update USB device drivers
[ARM] s3c2410_defconfig: Update miscellaneous drivers
[ARM] S3C: Export s3c_gpio_cfgpin and s3c_gpio_setpull for modules
ASoC: Fix jive_wm8750.c build problems
ASoC: s3c-i2s-v2.c fix for s3c_i2sv2_iis_calc_rate
ASoC: Fix s3c-i2s-v2.c snd_soc_dai changes
ASoC: Fix include build error in s3c2412-i2s.c
[ARM] S3C24XX: Fix sparse error in gpiolib.c
[ARM] S3C: Fix sparse warning from missing 's3c_device_hwmon'
[ARM] JIVE: Fix sparse warnings about items which should be static
[ARM] Anubis: Fix sparse warnings for items that should be static
[ARM] Osiris: Fix double initialisation in machine block
[ARM] S3C: Fix ADC driver sparse warning

Ben Hutchings (3):
net: Update maintainers
sfc: Match calls to netif_napi_add() and netif_napi_del()
sfc: Use correct macro to set event bitfield

Ben Nizette (1):
Input: ads7846 - fix unsafe disable_irq

Brian Haley (1):
Bonding: fix zero address hole bug in arp_ip_target list

Chris Mason (7):
Export filemap_write_and_wait_range
Add block_write_full_page_endio for passing endio handler
Btrfs: use WRITE_SYNC for synchronous writes
Btrfs: add a priority queue to the async thread helpers
Btrfs: fix oops on page->mapping->host during writepage
Btrfs: use the right node in reada_for_balance
Btrfs: fix btrfs fallocate oops and deadlock

Christian Ehrhardt (1):
[S390] s390: move machine flags to lowcore

Christoph Hellwig (4):
md: tiny md.h cleanups
block: move bio list helpers into bio.h
GFS2: cleanup file_operations mess
kill vfs_stat_fd / vfs_lstat_fd

Cliff Wickman (4):
x86: UV BAU and nodes with no memory
x86: UV BAU messaging timeouts
x86: UV: BAU partition-relative distribution map
x86: UV BAU distribution and payload MMRs

Corey Minyard (3):
ipmi: fix platform return check
ipmi: test for event buffer before using
ipmi: fix statistics counting issues

Cornelia Huck (1):
[S390] dasd: Use the new async framework for autoonlining.

Dan Carpenter (1):
phy: error handling for platform_device_register_simple()

Daniel Mack (3):
ALSA: snd-usb-caiaq: clean up header includes
ALSA: snd-usb-caiaq: rename files to remove redundant information in file pathes
ASoC: pxa-ssp: allow setting of dai format 0

Daniel Ribeiro (2):
[ARM] pxa: fix typo of cs_deassert() in pxa2xx-spi.c
pxa2xx_spi: restore DRCMR on resume

Daniel T Chen (2):
ALSA: Intel8x0: Remove conflicting quirk for SSID 0x103c0934
ALSA: Intel8x0: Add hp_only quirk for SSID 0x1028016a (Dell Inspiron 8600)

Daniele Napolitano (2):
Staging: rt2870: add ID for Sitecom WL-315
otus/zdusb.c: additional USB idnetifier

Darius Augulis (2):
MX1ADS: remove I2C ifdefs
Fix ifdef in plat-mxc/irc.c

Dave Airlie (1):
drm: check for minor master before allowing drop master.

Dave Jiang (1):
edac: ppc mpc85xx fix mc err detect

David Brownell (3):
USB: musb_host, minor enqueue locking fix (v2)
USB: musb_host, fix ep0 fifo flushing
spi: documentation: emphasise spi_master.setup() semantics

David Howells (10):
MN10300: Discard duplicate PFN_xxx() macros
MN10300: Wire up missing system calls
MN10300: Stop gcc from generating uninitialised variable warnings after BUG()
The default CONFIG_BUG=n version of BUG() should have an empty do...while
RCU: Don't try and predeclare inline funcs as it upsets some versions of gcc
FRV: Don't attempt to #include <linux/blk.h> as it doesn't exist
FS-Cache: Add MAINTAINERS record for FS-Cache and CacheFiles
frv: insert PCI root bus resources for the MB93090 devel motherboard
FRV: Fix the section attribute on UP DECLARE_PER_CPU()
PERCPU: Collect the DECLARE/DEFINE declarations together

David S. Miller (3):
forcedeth: Use napi_complete() not __napi_complete().
sparc64: Fix smp_callin() locking.
Revert "rose: zero length frame filtering in af_rose.c"

David Vrabel (6):
USB: add reset endpoint operations
USB: whci-hcd: provide a endpoint_reset method
USB: whci-hcd: check return value of usb_hcd_link_urb_to_ep()
WUSB: disconnect all devices when stopping a WUSB HCD
WUSB: fix oops when completing URBs for disconnected devices
WUSB: correct format of wusb_chid sysfs file

David Woodhouse (1):
Fix i_mutex vs. readdir handling in nfsd

Denis V. Lunev (1):
pxafb: lcsr1 is unused without CONFIG_FB_PXA_OVERLAY

Dimitri Sivanich (1):
[IA64] smp_flush_tlb_mm() should only send IPI's to cpus in cpu_vm_mask

Dmitry Adamushko (1):
x86: fix microcode driver newly spewing warnings

Dmitry Torokhov (2):
Input: gameport - fix attach driver code
Input: atkbd - add forced release keys quirk for Samsung Q45

Dr. Greg Wettstein (1):
USB device codes for Motorola phone.

Eric Dumazet (1):
packet: avoid warnings when high-order page allocation fails

Eric Miao (5):
[ARM] pxa/colibri: fix missing variable name in inline functions
ASoC: magician: remove un-necessary #include of pxa-regs.h and hardware.h
Input: ads7846 - introduce platform specific way to synchronize sampling
Input: da9034-ts - add Bin Yang as co-author of the driver
Input: da9034-ts - make pen {down,up} events more reliable

Eric Paris (1):
scsi: mpt: suppress debugobjects warning

Etienne Basset (1):
Smack: check for SMACK xattr validity in smack_inode_setxattr

Evgeniy Polyakov (13):
Staging: pohmelfs: Populate dentry cache when receiving the new readdir entry.
Staging: Pohmelfs: Move parent lock to the place where we really have to send a lookup request to the server.
Staging: Pohmelfs: Disable read lock in pohmelfs_getattr().
Staging: Pohmelfs: Added 'need_lock' variable into debug print.
Staging: Pohmelfs: Set NETFS_INODE_REMOTE_SYNCED and clear NETFS_INODE_OWNED bits in the root inode.
Staging: Pohmelfs: Extend remount option.
Staging: Pohmelfs: Sync fs before killing it, since dentry cache is shrunk before writeback is invoked via generic_shutdown_super()
Staging: Pohmelfs: Reduce debugging noise about non-existing objects.
Staging: Pohmelfs: Use wait_on_page_timeout when waiting for remote directory sync instead of hardcoded 25 seconds.
Staging: Pohmelfs: Drop ftrans debugging code.
Staging: Pohmelfs: Added ->show_stats() callback.
Staging: Pohmelfs: Added IO permissions and priorities.
Staging: Pohmelfs: Add load balancing between network states with the same priority.

FUJITA Tomonori (1):
block: fix SG_IO to return a proper error value

Gautham R Shenoy (1):
sched: Avoid printing sched_group::__cpu_power for default case

Geert Uytterhoeven (1):
Staging: STLC45XX should depend on GENERIC_HARDIRQS

Gerald Schaefer (1):
[S390] appldata: Use new mod_virt_timer_periodic() function.

Greg Kroah-Hartman (3):
driver core: prevent device_for_each_child from oopsing
Revert USB: usb-serial ch341: support for DTR/RTS/CTS
Staging: go7007: fix build issues

H Hartley Sweeten (1):
kernel/softirq.c: fix sparse warning

Hans J. Koch (1):
UIO: fix specific device driver missing statement for depmod

Hartley Sweeten (2):
[ARM] 5451/1: ep93xx:core.c: build warning fix
[ARM] 5454/1: ep93xx_eth: fix sparse warnings

Heiko Carstens (3):
[S390] wire up preadv/pwritev system calls
[S390] call nmi_enter/nmi_exit on machine checks
[S390] smp: fix cpu_possible_map initialization

Helge Deller (1):
drivers/input/serio/hp_sdc.c: fix crash when removing hp_sdc module

Herbert Xu (3):
gro: Normalise skb before bypassing GRO on netpoll VLAN path
tun: Fix crash with non-GSO users
gro: Restore correct value to gso_size

Hirokazu Takata (2):
m32r: move include/asm-m32r headers to arch/m32r/include/asm
m32r: move include/asm-m32r/* to arch/m32r/include/asm/

Holger Schurig (2):
imx21: fixes some clocknames
imx21: activate i2c

Huang Weiyi (2):
[ARM] pxa/em-x270: remove duplicated #include
[ARM] S3C: remove duplicated #include

Hugh Dickins (3):
powerpc: Allow 256kB pages with SHMEM
Revert "kobject: don't block for each kobject_uevent".
mm: pass correct mm when growing stack

Igor Mammedov (1):
Remote DFS root support.

Ilpo J?rvinen (2):
tcp: fix >2 iw selection
Input: pc110pad - remove unused variable dev

Ilya Yanok (1):
qong: remove AIPS[12] mappings from machine-specific iotable

Ingo Molnar (1):
x86: disable X86_PTRACE_BTS for now

Isaku Yamahata (1):
[IA64] fix allmodconfig compilation breakage.

Jack Steiner (2):
x86, UV: Fix for nodes with memory and no cpus
x86, uv: add Kconfig dependency on NUMA for UV systems

Jack Stone (1):
ide: Remove void casts

James Bottomley (1):
tg3: fix big endian MAC address collection failure

Jan Glauber (2):
[S390] extend virtual timer interface by mod_virt_timer_periodic
[S390] qdio: remove dead timeout handler

Jarkko Nikula (2):
ASoC: OMAP: Fix DSP_B format in OMAP McBSP DAI driver
ASoC: OMAP: Fix FS polarity in OSK5912 machine driver

Jaroslav Kysela (6):
[ALSA] hda_intel: fix unexpected ring buffer positions
[ALSA] pcm-midlevel: Add more strict buffer position checks based on jiffies
[ALSA] intel8x0: an attempt to make ac97_clock measurement more reliable
[ALSA] intel8x0: do not use zero value from PICB register
[ALSA] intel8x0: fix wrong conditions in ac97_clock measure routine
[ALSA] intel8x0: add one retry to the ac97_clock measurement routine

Jason Baron (1):
Driver core: remove pr_fmt() from dynamic_dev_dbg() printk

Jaswinder Singh Rajput (2):
x86: pci-swiotlb.c swiotlb_dma_ops should be static
x86, documentation: kernel-parameters replace X86-32,X86-64 with X86

Jay Vosburgh (1):
bonding: Remove debug printk

Jean Delvare (1):
go7007: Convert to the new i2c device binding model

Jeff Layton (9):
cifs: flush data on any setattr
cifs: vary timeout on writes past EOF based on offset (try #5)
cifs: remove dnotify thread code
cifs: no need to use rcu_assign_pointer on immutable keys
cifs: fix unicode string area word alignment in session setup
cifs: fix buffer size for tcon->nativeFileSystem field
cifs: add cFYI messages with some of the saved strings from ssetup/tcon
cifs: remove unneeded bcc_ptr update in CIFSTCon
cifs: when renaming don't try to unlink negative dentry

Jens Axboe (13):
block: fix bad spelling of quiesce
Document and move the various READ/WRITE types
cfq-iosched: use rw_is_sync() to see if rw flags are sync or not
cfq-iosched: get rid of private SYNC/ASYNC defines
as-iosched: get rid of private REQ_SYNC/REQ_ASYNC defines
block: update biodoc.txt on plugging
buffer: switch do_emergency_thaw() away from pdflush_operation()
cfq-iosched: don't delay queue kick for a merged request
bio: add documentation to bio_alloc()
cfq-iosched: no need to save interrupts in cfq_kick_queue()
cfq-iosched: tweak kick logic a bit more
cfq-iosched: log responsible 'cfqq' in idle timer arm
cfq-iosched: add close cooperator code

Jesse Brandeburg (1):
e1000/e1000: fix compile warning

Jiri Slaby (1):
Input: mainstone-wm97xx - fix condition in pen_up

Joe Perches (4):
ALSA: hda_intel.c - Consolidate bitfields
ALSA: MAINTAINERS - Update SOUND
MAINTAINERS: remove include/asm-*/suspend* file patterns
MAINTAINERS: update KMEMTRACE pattern after file rename

Jonas Bonn (1):
drm: set/clear is_master when master changed

Jonathan Corbet (1):
Trivial: fix a typo in slow-work.h

Jonathan McDowell (1):
usb gadget: fix ethernet link reports to ethtool

Justin Mattock (1):
ALSA: add missing definitions(letters) to HD-Audio.txt

KAMEZAWA Hiroyuki (1):
memcg: use rcu_dereference to access mm->owner

KOSAKI Motohiro (3):
sysfs: sysfs poll keep the poll rule of regular file.
proc: mounts_poll() make consistent to mdstat_poll
vmscan,memcg: reintroduce sc->may_swap

Kay Sievers (2):
driver core: allow non-root users to listen to uevents
driver: dont update dev_name via device_add path

Kim Kyuwon (1):
USB: musb: fix possible panic while resuming

Krzysztof Halasa (1):
rtc-cmos: fix printk output

Kumar Gala (3):
powerpc: Fix tlbilx opcode
powerpc: Add support for early tlbilx opcode
powerpc/mm: Fix compile warning

Lai Jiangshan (1):
tracing, sched: mark get_parent_ip() notrace

Li Zefan (10):
ALSA: sound/core: use memdup_user()
ALSA: sound/isa: use memdup_user()
ALSA: sound/usb: use memdup_user()
ALSA: sound/pci: use memdup_user()
xattr: use memdup_user()
btrfs: use memdup_user()
sysfs: use memdup_user()
xfs: use memdup_user()
ncpfs: use memdup_user()
ecryptfs: use memdup_user()

Linus Torvalds (4):
acpi-cpufreq: fix 'smp_call_function_many()' confusion
Get rid of final remnants of include/asm-$(ARCH)
Remove 'recurse into child resources' logic from 'reserve_region_with_split()'
Linux 2.6.30-rc3

Linus Walleij (1):
[ARM] 5455/1: Fix IRQ noise from VIC code

Lior Dotan (1):
Revert Staging: SLICOSS: use gfp_kernel where possible

Ma Ling (1):
drm: clean dirty memory after device release

Magnus Damm (3):
Driver Core: early platform driver
clocksource: pass clocksource to read() callback
clocksource: add enable() and disable() callbacks

Marcelo Tosatti (2):
[IA64] export smp_send_reschedule
virtio: fix suspend when using virtio_balloon

Marek Vasut (2):
[ARM] pxa: add missing declaration of pxa26x_init_irq()
[ARM] pxa: PalmTX and PalmT5 USB fixes

Mark Brown (7):
ASoC: Disable S3C64xx support in Kconfig
Input: wm97xx - don't specify IRQF_SAMPLE_RANDOM
[ARM] 5449/1: S3C: Use disable_irq_nosync() to fix boot lockups
[ARM] SMDK6410: Request GPIOs for LCD power control
mx31ads: imoux pins should be passed in as unsigned int
mx31ads: Depend on all the WM8350 core dependencies for WM1133-EV1 board
mx31ads: Mark as having full regulatoion constraints with 1133-EV1 board

Mark Lord (2):
sata_mv: tidy up qc->tf usage in qc_prep() functions
sata_mv: workaround for multi_count errata sata24

Markus Brunner (1):
gianfar: stop send queue before resetting gianfar

Martin Schwidefsky (5):
[S390] stp synchronization retry timer
[S390] fix idle time accounting
[S390] cpu hotplug and accounting values
[S390] add read_persistent_clock
[S390] boot cputime accounting

Matias Zabaljauregui (1):
lguest: fix crash on vmlinux images

Matt Kraai (2):
AFS: Guard afs_file_readpage_read_complete() definition with CONFIG_AFS_FSCACHE
lguest: tell git to ignore Documentation/lguest/lguest

Matt Mackall (1):
MAINTAINERS: add Matt Mackall to embedded maintainers

Matthew Garrett (1):
USB: qcserial: Add extra device IDs

Michael Ellerman (1):
dynamic debug: resurrect old pr_debug() semantics as pr_devel()

Michael Hennerich (2):
Input: ad7877, ad7879 - remove depreciated IRQF_SAMPLE_RANDOM flag
Input: bf54x-keys - remove depreciated IRQF_SAMPLE_RANDOM flag

Michal Schmidt (1):
skge: fix occasional BUG during MTU change

Mike Mason (1):
powerpc/pseries: Set error_state to pci_channel_io_normal in eeh_report_reset()

Mike Rapoport (1):
[ARM] pxa/em-x270: explicitly set .gpio_cs in TDO35S SPI chip data

Miklos Szeredi (6):
splice: split up __splice_from_pipe()
splice: remove i_mutex locking in splice_from_pipe()
splice: fix i_mutex locking in generic_splice_write()
ocfs2: fix i_mutex locking in ocfs2_splice_to_file()
splice: remove generic_file_splice_write_nolock()
splice: add helpers for locking pipe inode

Ming Lei (1):
driver core: fix driver_match_device

Mithlesh Thukral (4):
Staging: sxg: Fire watchdog timer at end of open routine to change the link
Staging: sxg: Use correct queue_id for transmitting non-TCP packets
Staging: sxg: Fix sleep in atomic context warning while loading driver
Staging: sxg: Fix leaks and checksum errors in transmit code path

NeilBrown (4):
md: allow setting newly added device to 'in_sync' via sysfs.
md: improve usefulness and accuracy of sysfs file md/sync_completed.
md: update sync_completed and reshape_position even more often.
md: support bitmaps on RAID10 arrays larger then 2 terabytes

Nick Piggin (2):
brd: support barriers
brd: fix cacheflushing

Nikanth Karthikesan (5):
block: Remove code handling bio_alloc failure with __GFP_WAIT
dio: Remove code handling bio_alloc failure with __GFP_WAIT
ext4: Remove code handling bio_alloc failure with __GFP_WAIT
gfs2: Remove code handling bio_alloc failure with __GFP_WAIT
swap: Remove code handling bio_alloc failure with __GFP_WAIT

Oleg Drokin (1):
Separate out common fstatat code into vfs_fstatat

Oliver Neukum (1):
USB: fix oops in cdc-wdm in case of malformed descriptors

PJ Waskiewicz (1):
ixgbe: Move the LED blink code to common, since 82599 also uses it

Pallipadi, Venkatesh (1):
x86, PAT: Remove page granularity tracking for vm_insert_pfn maps

Pascal Terjan (1):
USB: option: Add ids for D-Link DWM-652 3.5G modem

Paul E. McKenney (1):
rcu: Make hierarchical RCU less IPI-happy

Paul Mackerras (1):
powerpc: Fix data-corrupting bug in __futex_atomic_op

Paul Mundt (3):
rtc: rtc-sh: clock framework support.
sh: sh7722: Don't default enable the RTC clock.
sh: sh7723: Don't default enable the RTC clock.

Paulius Zaleckas (1):
MXC: remove orphan imx_init_uart() definition

Peter Korsgaard (1):
USB: ftdi_sio: add vendor/project id for JETI specbos 1201 spectrometer

Rafael J. Wysocki (5):
NET/e1000: Fix powering off during shutdown
NET/e1000e: Fix powering off during shutdown
NET/ixgbe: Fix powering off during shutdown
PM/Hibernate: Fix memory shrinking
PM/Suspend: Introduce two new platform callbacks to avoid breakage

Ralf Baechle (1):
<linux/seccomp.h> needs to include <linux/errno.h>.

Ramax Lo (1):
[ARM] S3C24XX: ADC: Check pending queue before freeing adc client

Randy Dunlap (2):
splice: fix new kernel-doc warnings
doc: fix kernel-parameters.txt mistaken deletions

Robert P. J. Day (1):
MAINTAINERS: add a more searchable string for the H8300 architecture.

Robin Holt (1):
sgi-xp/sgi-gru: allow modules to load on non-uv systems

Roel Kluin (4):
ALSA: emu10k1 - off by 1 in snd_emu10k1_wait()
drm: count reaches -1
spi: pxa2xx: limit reaches -1
bfin_5xx: misplaced parentheses

Russ Anderson (2):
x86, UV: system table in bios accessed after unmap
x86: prevent /sys/firmware/sgi_uv from being created on non-uv systems

Russell King (2):
Update MAINTAINERS
[ARM] remove .gitignore from include/asm-arm

Rusty Russell (2):
lguest: fix guest crash on non-linear addresses in gdt pvops
lguest: document 32-bit and PAE requirements

Sachin Sant (1):
powerpc: pseries/dtl.c should include asm/firmware.h

Sam Ravnborg (2):
kbuild: support include/generated
kbuild: introduce subdir-ccflags-y

Samuel Thibault (1):
Revert "console ASCII glyph 1:1 mapping"

Sascha Hauer (3):
pcm037 board support: Fix eth interrupt gpio setting
MX31: Add more alternate pin definitions
mxc defconfig updates

Sergei Poselenov (1):
phylib: Basic support for the M88E1121R Marvell chip

Sergei Shtylyov (8):
pata_hpt37x: fix HPT370 DMA timeouts
libata: use ATA_ID_CFA_*
USB: musb: bugfixes for multi-packet TXDMA support
USB: musb: sanitize clearing TXCSR DMA bits (take 2)
USB: musb: fix isochronous TXDMA (take 2)
hpt366: fix HPT370 DMA timeouts
hpt366: use ATA_DMA_* constants
cs5536: define dma_sff_read_status() method

Shaohua Li (1):
agp: zero pages before sending to userspace

Stanislaw Gruszka (1):
myr10ge: again fix lro_gen_skb() alignment

Stefan Weinhuber (1):
[S390] dasd: fix idaw boundary checking for track based ccw

Stephen Hemminger (2):
netsched: Allow meta match on vlan tag on receive
staging: slicoss: update README

Stephen Rothwell (1):
sparc: asm/atomic.h on 32bit should include asm/system.h for xchg

Steve French (6):
[CIFS] Endian convert UniqueId when reporting inode numbers from server files
[CIFS] Fix build break from recent DFS patch when DFS support not enabled
[CIFS] remove some build warnings
[CIFS] Add support for posix open during lookup
[CIFS] Fix sparse warnings
[CIFS] Fix build break caused by change to new current_umask helper function

Steven Whitehouse (5):
GFS2: Make quotad's waiting interruptible
GFS2: Fix symlink creation race
GFS2: Move umount flush rwsem
GFS2: Clear dirty bit at end of inode glock sync
GFS2: Fix page_mkwrite() return code

Stoyan Gaydarov (1):
sbus: changed ioctls to unlocked

Suresh Siddha (3):
x86, CPA: Change idmap attribute before ioremap attribute setup
x86, PAT: Consolidate code in pat_x_mtrr_type() and reserve_memtype()
x86, PAT: Remove duplicate memtype reserve in devmem mmap

S?guier R?gis (1):
via-velocity : fix compilation warning.

Takashi Iwai (7):
ALSA: add private_data to struct snd_jack
ALSA: hda - Avoid call of snd_jack_report at release
ALSA: hda - Add quirk mask for Fujitsu Amilo laptops with ALC883
ALSA: hda - Fix the cmd cache keys for amp verbs
ALSA: hda - Fix headphone-detection on some machines with STAC/IDT codecs
ALSA: hda - Add upper-limit of mixer amp for AD1884A-laptop model, too
ALSA: hda - Set function_id only on FG nodes

Tejun Heo (2):
libata: handle SEMB signature better
pata_legacy: fix no device fail path

Tetsuo Handa (1):
fs: Mark get_filesystem_list() as __init function.

Thomas Bogendoerfer (1):
Fix SYSCALL_ALIAS for older MIPS assembler

Toshinobu Sugioka (1):
sh: Fix mmap2 for handling differing PAGE_SIZEs.

Trond Myklebust (1):
NFS: Fix the XDR iovec calculation in nfs3_xdr_setaclargs

Valentin Longchamp (2):
MX31: pin definition for sdhc2
mx31: pin definition for csi

Vlad Yasevich (1):
ipv6: Fix NULL pointer dereference with time-wait sockets

Vlada Peric (1):
asiliantfb: add missing return statement

Vladimir Barinov (1):
MX31: Add I2C pin definitions

WANG Cong (1):
uml: kill a kconfig warning

Wei Yongjun (3):
tr: fix leakage of device in net/802/tr.c
sparc: remove some pointless conditionals before kfree()
cifs: remove some pointless conditionals before kfree()

Werner Cornelius (1):
USB: usb-serial ch341: support for DTR/RTS/CTS

Wolfgang Grandegger (4):
powerpc/85xx: TQM85xx: correct address of LM75 I2C device nodes
powerpc/85xx: TQM8548: use proper phy-handles for enet2 and enet3
powerpc/85xx: TQM8548: update defconfig
powerpc: Document new FSL I2C bindings and cleanup

Wu Fengguang (2):
ixgbe: fix tx queue index
ixgbe: update real_num_tx_queues on changing num_rx_queues

Xu Gang (1):
GFS2: Use DEFINE_SPINLOCK

Yang Hongyang (1):
ipv6:remove useless check

Zhaolei (2):
tracing: Fix power tracer header
tracing: Fix branch tracer header

Zhenwen Xu (1):
[libata] fix build error on drivers/ata/pata_legacy.c

dann frazier (1):
ipmi: add oem message handling

eric miao (1):
[ARM] 5453/1: fix building breakage of sys_oabi-compat.c due to missing kmalloc/kfree

[email protected] (3):
x86, PAT: Change order of cpa and free in set_memory_wb
x86, PAT: Handle faults cleanly in set_memory_ APIs
x86, PAT: Changing memtype to WC ensuring no WB alias


2009-04-22 06:21:18

by Ingo Molnar

[permalink] [raw]
Subject: Re: Linus 2.6.30-rc3


A last-minute build error slipped through:

In file included from fs/compat_ioctl.c:105:
include/linux/pktcdvd.h:285: error: expected specifier-qualifier-list before ‘mempool_t’

Ingo

2009-04-22 06:38:55

by Ingo Molnar

[permalink] [raw]
Subject: [PATCH] include/linux/pktcdvd.h: add mempool.h dependency


* Ingo Molnar <[email protected]> wrote:

> A last-minute build error slipped through:
>
> In file included from fs/compat_ioctl.c:105:
> include/linux/pktcdvd.h:285: error: expected specifier-qualifier-list before ‘mempool_t’

Caused by:

1ba0c7d: fs/compat_ioctl: fix build when !BLOCK

fixed by the patch below. The build error itself triggers with
!BLOCK

Ingo

------------------>
>From f8b664b0e6ad3369a998379e7f87297082d04bef Mon Sep 17 00:00:00 2001
From: Ingo Molnar <[email protected]>
Date: Wed, 22 Apr 2009 08:29:40 +0200
Subject: [PATCH] include/linux/pktcdvd.h: add mempool.h dependency
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit

A change to the order of header files in fs/compat_ioctl.c
unearthed a dormant header file dependency bug:

In file included from fs/compat_ioctl.c:105:
include/linux/pktcdvd.h:285: error: expected specifier-qualifier-list before ‘mempool_t’

pktcdvd.h relies on mempool_t but does not include mempool.h.
This worked until now accidentally: due to other headers including
mempool.h in compat_ioctl.c (and all other pktcdvd.h using sites).
But once the header file broke this implicit dependency got
uncovered and an uncleanliness turned into a build failure.

Add mempool.h to pktcdvd.h.

[ Impact: fix build on !CONFIG_BLOCK ]

Signed-off-by: Ingo Molnar <[email protected]>
---
include/linux/pktcdvd.h | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/include/linux/pktcdvd.h b/include/linux/pktcdvd.h
index 04b4d73..9cabc20 100644
--- a/include/linux/pktcdvd.h
+++ b/include/linux/pktcdvd.h
@@ -112,6 +112,7 @@ struct pkt_ctrl_command {
#include <linux/completion.h>
#include <linux/cdrom.h>
#include <linux/kobject.h>
+#include <linux/mempool.h>
#include <linux/sysfs.h>

/* default bio write queue congestion marks */

2009-04-22 06:40:10

by Jens Axboe

[permalink] [raw]
Subject: Re: [PATCH] include/linux/pktcdvd.h: add mempool.h dependency

On Wed, Apr 22 2009, Ingo Molnar wrote:
>
> * Ingo Molnar <[email protected]> wrote:
>
> > A last-minute build error slipped through:
> >
> > In file included from fs/compat_ioctl.c:105:
> > include/linux/pktcdvd.h:285: error: expected specifier-qualifier-list before ???mempool_t???
>
> Caused by:
>
> 1ba0c7d: fs/compat_ioctl: fix build when !BLOCK
>
> fixed by the patch below. The build error itself triggers with
> !BLOCK

This fix is already queued up in the block tree, it just didn't make
-rc3.

>
> Ingo
>
> ------------------>
> From f8b664b0e6ad3369a998379e7f87297082d04bef Mon Sep 17 00:00:00 2001
> From: Ingo Molnar <[email protected]>
> Date: Wed, 22 Apr 2009 08:29:40 +0200
> Subject: [PATCH] include/linux/pktcdvd.h: add mempool.h dependency
> MIME-Version: 1.0
> Content-Type: text/plain; charset=utf-8
> Content-Transfer-Encoding: 8bit
>
> A change to the order of header files in fs/compat_ioctl.c
> unearthed a dormant header file dependency bug:
>
> In file included from fs/compat_ioctl.c:105:
> include/linux/pktcdvd.h:285: error: expected specifier-qualifier-list before ???mempool_t???
>
> pktcdvd.h relies on mempool_t but does not include mempool.h.
> This worked until now accidentally: due to other headers including
> mempool.h in compat_ioctl.c (and all other pktcdvd.h using sites).
> But once the header file broke this implicit dependency got
> uncovered and an uncleanliness turned into a build failure.
>
> Add mempool.h to pktcdvd.h.
>
> [ Impact: fix build on !CONFIG_BLOCK ]
>
> Signed-off-by: Ingo Molnar <[email protected]>
> ---
> include/linux/pktcdvd.h | 1 +
> 1 files changed, 1 insertions(+), 0 deletions(-)
>
> diff --git a/include/linux/pktcdvd.h b/include/linux/pktcdvd.h
> index 04b4d73..9cabc20 100644
> --- a/include/linux/pktcdvd.h
> +++ b/include/linux/pktcdvd.h
> @@ -112,6 +112,7 @@ struct pkt_ctrl_command {
> #include <linux/completion.h>
> #include <linux/cdrom.h>
> #include <linux/kobject.h>
> +#include <linux/mempool.h>
> #include <linux/sysfs.h>
>
> /* default bio write queue congestion marks */
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/

--
Jens Axboe

2009-04-22 06:43:19

by Ingo Molnar

[permalink] [raw]
Subject: Re: [PATCH] include/linux/pktcdvd.h: add mempool.h dependency


* Ingo Molnar <[email protected]> wrote:

> Caused by:
>
> 1ba0c7d: fs/compat_ioctl: fix build when !BLOCK
>
> fixed by the patch below. The build error itself triggers with
> !BLOCK
[ ... so it is not very significant. ]

> pktcdvd.h relies on mempool_t but does not include mempool.h. This
> worked until now accidentally: due to other headers including
> mempool.h in compat_ioctl.c (and all other pktcdvd.h using sites).
> But once the header file broke this implicit dependency got
> uncovered and an uncleanliness turned into a build failure.
>
> Add mempool.h to pktcdvd.h.

I think Sam's new include file self-sufficiency build checker could
have caught it. (but there's a baseline to fix first: we have dozens
and dozens of general purpose headers that do not build in a
standalone .c file)

Ingo

2009-04-22 06:55:18

by Ingo Molnar

[permalink] [raw]
Subject: Re: [PATCH] include/linux/pktcdvd.h: add mempool.h dependency


* Jens Axboe <[email protected]> wrote:

> On Wed, Apr 22 2009, Ingo Molnar wrote:
> >
> > * Ingo Molnar <[email protected]> wrote:
> >
> > > A last-minute build error slipped through:
> > >
> > > In file included from fs/compat_ioctl.c:105:
> > > include/linux/pktcdvd.h:285: error: expected specifier-qualifier-list before ???mempool_t???
> >
> > Caused by:
> >
> > 1ba0c7d: fs/compat_ioctl: fix build when !BLOCK
> >
> > fixed by the patch below. The build error itself triggers with
> > !BLOCK
>
> This fix is already queued up in the block tree, it just didn't
> make -rc3.

ah, i see - it was posted two days ago:

[PATCH 2/2] pktcdvd.h should include mempool.h

but the fix should have been queued up in the tree pushing the
compat_ioctl.c change (Viro's). Could have been avoided by insisting
on a fuller explanation in the changelog instead of just a "Fix this
build error" line.

Ingo

2009-04-22 06:58:24

by Jens Axboe

[permalink] [raw]
Subject: Re: [PATCH] include/linux/pktcdvd.h: add mempool.h dependency

On Wed, Apr 22 2009, Ingo Molnar wrote:
>
> * Jens Axboe <[email protected]> wrote:
>
> > On Wed, Apr 22 2009, Ingo Molnar wrote:
> > >
> > > * Ingo Molnar <[email protected]> wrote:
> > >
> > > > A last-minute build error slipped through:
> > > >
> > > > In file included from fs/compat_ioctl.c:105:
> > > > include/linux/pktcdvd.h:285: error: expected specifier-qualifier-list before ???mempool_t???
> > >
> > > Caused by:
> > >
> > > 1ba0c7d: fs/compat_ioctl: fix build when !BLOCK
> > >
> > > fixed by the patch below. The build error itself triggers with
> > > !BLOCK
> >
> > This fix is already queued up in the block tree, it just didn't
> > make -rc3.
>
> ah, i see - it was posted two days ago:
>
> [PATCH 2/2] pktcdvd.h should include mempool.h
>
> but the fix should have been queued up in the tree pushing the
> compat_ioctl.c change (Viro's). Could have been avoided by insisting
> on a fuller explanation in the changelog instead of just a "Fix this
> build error" line.

I didn't realize it was a new build error, so just added both the
patches to my lineup. I see that 1/2 went in through Viro's tree, not
sure why he didn't pick up 2/2 as well.

I'll make sure to get it upstream today.

--
Jens Axboe

2009-04-22 07:09:37

by Ingo Molnar

[permalink] [raw]
Subject: Re: [PATCH] include/linux/pktcdvd.h: add mempool.h dependency


* Jens Axboe <[email protected]> wrote:

> On Wed, Apr 22 2009, Ingo Molnar wrote:
> >
> > * Jens Axboe <[email protected]> wrote:
> >
> > > On Wed, Apr 22 2009, Ingo Molnar wrote:
> > > >
> > > > * Ingo Molnar <[email protected]> wrote:
> > > >
> > > > > A last-minute build error slipped through:
> > > > >
> > > > > In file included from fs/compat_ioctl.c:105:
> > > > > include/linux/pktcdvd.h:285: error: expected specifier-qualifier-list before ???mempool_t???
> > > >
> > > > Caused by:
> > > >
> > > > 1ba0c7d: fs/compat_ioctl: fix build when !BLOCK
> > > >
> > > > fixed by the patch below. The build error itself triggers with
> > > > !BLOCK
> > >
> > > This fix is already queued up in the block tree, it just didn't
> > > make -rc3.
> >
> > ah, i see - it was posted two days ago:
> >
> > [PATCH 2/2] pktcdvd.h should include mempool.h
> >
> > but the fix should have been queued up in the tree pushing the
> > compat_ioctl.c change (Viro's). Could have been avoided by
> > insisting on a fuller explanation in the changelog instead of
> > just a "Fix this build error" line.
>
> I didn't realize it was a new build error, so just added both the
> patches to my lineup. I see that 1/2 went in through Viro's tree,
> not sure why he didn't pick up 2/2 as well.

this happens - and isnt really a big deal here as !BLOCK is a pretty
special build form not affecting 99% of our testers. (I first took
it as something more serious because it triggered on my first build
iteration after the -rc3 merge.)

> I'll make sure to get it upstream today.

Thanks.

Ingo

2009-04-22 09:24:06

by Denys Vlasenko

[permalink] [raw]
Subject: Re: Linus 2.6.30-rc3

On Wednesday 22 April 2009 05:27, Linus Torvalds wrote:
> Subject: Linus 2.6.30-rc3
^

It was suspected for some time, and now it's official.
Linus does upgrade himself. B)
--
vda

2009-04-24 09:51:33

by Mel Gorman

[permalink] [raw]
Subject: [BUG] 2.6.30-rc3: BUG triggered on some hugepage usages

On Tue, Apr 21, 2009 at 08:27:57PM -0700, Linus Torvalds wrote:
> Another week, another -rc.
>

I'm seeing some tests with sysbench+postgres+large pages fail on ppc64
although a very clear pattern is not forming as to what exactly is
causing it. However, the libhugetlbfs regression tests (make && make
func) are triggering the following oops when calling mlock() and so are
likely related.

------------[ cut here ]------------
kernel BUG at arch/powerpc/mm/pgtable.c:243!
Oops: Exception in kernel mode, sig: 5 [#1]
SMP NR_CPUS=128 NUMA pSeries
Modules linked in: dm_snapshot dm_mirror dm_region_hash dm_log qla2xxx
loop nfnetlink iptable_filter iptable_nat nf_nat ip_tables
nf_conntrack_ipv4 nf_defrag_ipv4 xt_state nf_conntrack ipt_REJECT
xt_tcpudp xt_limit ipt_LOG xt_pkttype x_tables
NIP: c00000000002becc LR: c00000000002c02c CTR: 0000000000000000
REGS: c0000000ea92b4c0 TRAP: 0700 Not tainted (2.6.30-rc3-autokern1)
MSR: 8000000000029032 <EE,ME,CE,IR,DR> CR: 28000484 XER: 20000020
TASK = c00000000395b660[7611] 'mlock' THREAD: c0000000ea928000 CPU: 3
GPR00: 0000000000000001 c0000000ea92b740 c0000000008ea170 c0000000ec7d4980
GPR04: 000000003f000000 c0000001e2278cf8 0000001900000393 0000000000000001
GPR08: f000000002bc0000 0000000000000000 0000000000000113 c0000001e2278c81
GPR12: 0000000044000482 c00000000093b880 0000000028004422 0000000000000000
GPR16: c0000000ea92bbf0 c0000000009f06f0 0000001900000113 c0000000ec7d4980
GPR20: 0000000000000000 f000000002bc0000 000000003f000000 c0000001e2278cf8
GPR24: c0000000eaa90bb0 0000000000000000 c0000000eaa90bb0 c0000000ea928000
GPR28: f000000002bc0000 0000001900000393 0000000000000001 c0000001e2278cf8
NIP [c00000000002becc] .assert_pte_locked+0x54/0x8c
LR [c00000000002c02c] .ptep_set_access_flags+0x50/0x8c
Call Trace:
[c0000000ea92b740] [c0000000eaa90bb0] 0xc0000000eaa90bb0 (unreliable)
[c0000000ea92b7d0] [c0000000000ed1b0] .hugetlb_cow+0xd4/0x654
[c0000000ea92b900] [c0000000000edbf0] .hugetlb_fault+0x4c0/0x708
[c0000000ea92b9f0] [c0000000000ee890] .follow_hugetlb_page+0x174/0x364
[c0000000ea92bae0] [c0000000000d8d30] .__get_user_pages+0x288/0x4c0
[c0000000ea92bbb0] [c0000000000da10c] .make_pages_present+0xa0/0xe0
[c0000000ea92bc40] [c0000000000db758] .mlock_fixup+0x90/0x228
[c0000000ea92bd00] [c0000000000dbb38] .do_mlock+0xc4/0x128
[c0000000ea92bda0] [c0000000000dbccc] .SyS_mlock+0xb0/0xec
[c0000000ea92be30] [c00000000000852c] syscall_exit+0x0/0x40
Instruction dump:
0b000000 78892662 79291f24 7d69582a 7d600074 7800d182 0b000000 78895e62
79291f24 7d29582a 7d200074 7800d182 <0b000000> 3c004000 3960ffff
780007c6
---[ end trace 36a7faa04fa9452b ]---

This corresponds to

#ifdef CONFIG_DEBUG_VM
void assert_pte_locked(struct mm_struct *mm, unsigned long addr)
{
pgd_t *pgd;
pud_t *pud;
pmd_t *pmd;

if (mm == &init_mm)
return;
pgd = mm->pgd + pgd_index(addr);
BUG_ON(pgd_none(*pgd));
pud = pud_offset(pgd, addr);
BUG_ON(pud_none(*pud));
pmd = pmd_offset(pud, addr);
BUG_ON(!pmd_present(*pmd)); <----- THIS LINE
BUG_ON(!spin_is_locked(pte_lockptr(mm, pmd)));
}
#endif /* CONFIG_DEBUG_VM */

This area was last changed by commit 8d30c14cab30d405a05f2aaceda1e9ad57800f36
in the 2.6.30-rc1 timeframe. I think there was another hugepage-related
problem with this patch but I can't remember what it was. Full dmesg is


==== dmesg ====
Using pSeries machine description
Page orders: linear mapping = 24, virtual = 12, io = 12, vmemmap = 24
Found initrd at 0xc000000003300000:0xc000000004b67000
console [udbg0] enabled
Partition configured for 8 cpus.
CPU maps initialized for 2 threads per core
(thread shift is 1)
Starting Linux PPC64 #1 SMP Fri Apr 24 09:08:10 UTC 2009
-----------------------------------------------------
ppc64_pft_size = 0x1b
physicalMemorySize = 0x1e8000000
htab_hash_mask = 0xfffff
-----------------------------------------------------
Initializing cgroup subsys cpuset
Linux version 2.6.30-rc3-autokern1 (root@elm3a121) (gcc version 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)) #1 SMP Fri Apr 24 09:08:10 UTC 2009
[boot]0012 Setup Arch
Node 0 Memory: 0x0-0xee000000
Node 1 Memory: 0xee000000-0x1e8000000
PCI host bridge /pci@800000020000001 ranges:
IO 0x000003fe00100000..0x000003fe001fffff -> 0x0000000000000000
MEM 0x0000040080000000..0x00000400bfffffff -> 0x00000000c0000000
PCI host bridge /pci@800000020000002 ranges:
IO 0x000003fe00600000..0x000003fe006fffff -> 0x0000000000000000
MEM 0x0000040100000000..0x000004017fffffff -> 0x0000000080000000
PCI host bridge /pci@800000020000003 ranges:
IO 0x000003fe00300000..0x000003fe003fffff -> 0x0000000000000000
MEM 0x00000400c0000000..0x00000400ffffffff -> 0x00000000c0000000
EEH: PCI Enhanced I/O Error Handling Enabled
PPC64 nvram contains 7168 bytes
Using dedicated idle loop
Zone PFN ranges:
DMA 0x00000000 -> 0x001e8000
Normal 0x001e8000 -> 0x001e8000
Movable zone start PFN for each node
early_node_map[2] active PFN ranges
0: 0x00000000 -> 0x000ee000
1: 0x000ee000 -> 0x001e8000
On node 0 totalpages: 974848
DMA zone: 13328 pages used for memmap
DMA zone: 0 pages reserved
DMA zone: 961520 pages, LIFO batch:31
On node 1 totalpages: 1024000
DMA zone: 14000 pages used for memmap
DMA zone: 0 pages reserved
DMA zone: 1010000 pages, LIFO batch:31
[boot]0015 Setup Done
Built 2 zonelists in Node order, mobility grouping on. Total pages: 1971520
Policy zone: DMA
Kernel command line: loglevel=8 autobench_args: root=/dev/sda3 ABAT:1240564260 loglevel=8
NR_IRQS:512
[boot]0020 XICS Init
[boot]0021 XICS Done
pic: no ISA interrupt controller
PID hash table entries: 4096 (order: 12, 32768 bytes)
time_init: decrementer frequency = 238.060000 MHz
time_init: processor frequency = 1904.480000 MHz
clocksource: timebase mult[10cd6fc] shift[22] registered
clockevent: decrementer mult[3cf1] shift[16] cpu[0]
Console: colour dummy device 80x25
console handover: boot [udbg0] -> real [hvc0]
freeing bootmem node 0
freeing bootmem node 1
Memory: 7834904k/7995392k available (7808k kernel code, 160488k reserved, 1312k data, 1010k bss, 324k init)
SLUB: Genslabs=14, HWalign=128, Order=0-3, MinObjects=0, CPUs=8, Nodes=16
Calibrating delay loop... 475.13 BogoMIPS (lpj=950272)
Dentry cache hash table entries: 1048576 (order: 11, 8388608 bytes)
Inode-cache hash table entries: 524288 (order: 10, 4194304 bytes)
Mount-cache hash table entries: 256
Initializing cgroup subsys ns
Initializing cgroup subsys cpuacct
irq: irq 2 on host null mapped to virtual irq 16
clockevent: decrementer mult[3cf1] shift[16] cpu[1]
Processor 1 found.
clockevent: decrementer mult[3cf1] shift[16] cpu[2]
Processor 2 found.
clockevent: decrementer mult[3cf1] shift[16] cpu[3]
Processor 3 found.
clockevent: decrementer mult[3cf1] shift[16] cpu[4]
Processor 4 found.
clockevent: decrementer mult[3cf1] shift[16] cpu[5]
Processor 5 found.
clockevent: decrementer mult[3cf1] shift[16] cpu[6]
Processor 6 found.
clockevent: decrementer mult[3cf1] shift[16] cpu[7]
Processor 7 found.
Brought up 8 CPUs
Node 0 CPUs: 0-3
Node 1 CPUs: 4-7
CPU0 attaching sched-domain:
domain 0: span 0-1 level SIBLING
groups: 0 1
domain 1: span 0-3 level CPU
groups: 0-1 2-3
domain 2: span 0-7 level NODE
groups: 0-3 (__cpu_power = 2048) 4-7 (__cpu_power = 2048)
CPU1 attaching sched-domain:
domain 0: span 0-1 level SIBLING
groups: 1 0
domain 1: span 0-3 level CPU
groups: 0-1 2-3
domain 2: span 0-7 level NODE
groups: 0-3 (__cpu_power = 2048) 4-7 (__cpu_power = 2048)
CPU2 attaching sched-domain:
domain 0: span 2-3 level SIBLING
groups: 2 3
domain 1: span 0-3 level CPU
groups: 2-3 0-1
domain 2: span 0-7 level NODE
groups: 0-3 (__cpu_power = 2048) 4-7 (__cpu_power = 2048)
CPU3 attaching sched-domain:
domain 0: span 2-3 level SIBLING
groups: 3 2
domain 1: span 0-3 level CPU
groups: 2-3 0-1
domain 2: span 0-7 level NODE
groups: 0-3 (__cpu_power = 2048) 4-7 (__cpu_power = 2048)
CPU4 attaching sched-domain:
domain 0: span 4-5 level SIBLING
groups: 4 5
domain 1: span 4-7 level CPU
groups: 4-5 6-7
domain 2: span 0-7 level NODE
groups: 4-7 (__cpu_power = 2048) 0-3 (__cpu_power = 2048)
CPU5 attaching sched-domain:
domain 0: span 4-5 level SIBLING
groups: 5 4
domain 1: span 4-7 level CPU
groups: 4-5 6-7
domain 2: span 0-7 level NODE
groups: 4-7 (__cpu_power = 2048) 0-3 (__cpu_power = 2048)
CPU6 attaching sched-domain:
domain 0: span 6-7 level SIBLING
groups: 6 7
domain 1: span 4-7 level CPU
groups: 6-7 4-5
domain 2: span 0-7 level NODE
groups: 4-7 (__cpu_power = 2048) 0-3 (__cpu_power = 2048)
CPU7 attaching sched-domain:
domain 0: span 6-7 level SIBLING
groups: 7 6
domain 1: span 4-7 level CPU
groups: 6-7 4-5
domain 2: span 0-7 level NODE
groups: 4-7 (__cpu_power = 2048) 0-3 (__cpu_power = 2048)
net_namespace: 1352 bytes
NET: Registered protocol family 16
IBM eBus Device Driver
PCI: Probing PCI hardware
IOMMU table initialized, virtual merging enabled
irq: irq 83 on host null mapped to virtual irq 83
pci 0000:c8:01.0: supports D1 D2
pci 0000:c8:01.0: PME# supported from D0 D1 D2 D3hot
pci 0000:c8:01.0: PME# disabled
pci 0000:c8:01.1: supports D1 D2
pci 0000:c8:01.1: PME# supported from D0 D1 D2 D3hot
pci 0000:c8:01.1: PME# disabled
pci 0000:c8:01.2: supports D1 D2
pci 0000:c8:01.2: PME# supported from D0 D1 D2 D3hot
pci 0000:c8:01.2: PME# disabled
irq: irq 85 on host null mapped to virtual irq 85
pci 0000:d0:01.0: PME# supported from D0 D3hot D3cold
pci 0000:d0:01.0: PME# disabled
pci 0000:d0:01.1: PME# supported from D0 D3hot D3cold
pci 0000:d0:01.1: PME# disabled
irq: irq 87 on host null mapped to virtual irq 87
irq: irq 88 on host null mapped to virtual irq 88
pci 0001:c8:01.0: supports D1 D2
pci 0001:c8:01.0: PME# supported from D0 D1 D2 D3hot
pci 0001:c8:01.0: PME# disabled
irq: irq 165 on host null mapped to virtual irq 165
irq: irq 167 on host null mapped to virtual irq 167
irq: irq 117 on host null mapped to virtual irq 117
pci 0002:d0:01.0: supports D1
irq: irq 119 on host null mapped to virtual irq 119
irq: irq 115 on host null mapped to virtual irq 115
PCI: Probing PCI hardware done
bio: create slab <bio-0> at 0
SCSI subsystem initialized
libata version 3.00 loaded.
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
NET: Registered protocol family 2
Switched to high resolution mode on CPU 0
Switched to high resolution mode on CPU 1
Switched to high resolution mode on CPU 2
Switched to high resolution mode on CPU 3
Switched to high resolution mode on CPU 4
Switched to high resolution mode on CPU 5
Switched to high resolution mode on CPU 6
Switched to high resolution mode on CPU 7
IP route cache hash table entries: 262144 (order: 9, 2097152 bytes)
TCP established hash table entries: 524288 (order: 11, 8388608 bytes)
TCP bind hash table entries: 65536 (order: 8, 1048576 bytes)
TCP: Hash tables configured (established 524288 bind 65536)
TCP reno registered
NET: Registered protocol family 1
checking if image is initramfs...
rootfs image is not initramfs (junk in compressed archive); looks like an initrd
Freeing initrd memory: 24988k freed
irq: irq 655360 on host null mapped to virtual irq 17
irq: irq 589825 on host null mapped to virtual irq 18
RTAS daemon started
audit: initializing netlink socket (disabled)
type=2000 audit(1240564423.424:1): initialized
HugeTLB registered 16 MB page size, pre-allocated 0 pages
VFS: Disk quotas dquot_6.5.2
Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
Installing knfsd (copyright (C) 1996 [email protected]).
msgmni has been set to 15351
alg: No test for stdrng (krng)
Block layer SCSI generic (bsg) driver version 0.4 loaded (major 254)
io scheduler noop registered
io scheduler anticipatory registered (default)
io scheduler deadline registered
io scheduler cfq registered
matroxfb: Matrox G450 detected
PInS data found at offset 31168
PInS memtype = 5
matroxfb: 640x480x8bpp (virtual: 640x26214)
matroxfb: framebuffer at 0x40170000000, mapped to 0xd000080080080000, size 33554432
Console: switching to colour frame buffer device 80x30
fb0: MATROX frame buffer device
matroxfb_crtc2: secondary head of fb0 was registered as fb1
vio_register_driver: driver hvc_console registering
HVSI: registered 0 devices
Generic RTC Driver v1.07
Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled
brd: module loaded
Uniform Multi-Platform E-IDE driver
ide-gd driver 1.18
ide-cd driver 5.00
ipr: IBM Power RAID SCSI Device Driver version: 2.4.2 (January 21, 2009)
ipr 0000:c0:01.0: enabling device (0140 -> 0142)
ipr 0000:c0:01.0: Found IOA with IRQ: 83
ipr 0000:c0:01.0: Initializing IOA.
ipr 0000:c0:01.0: Starting IOA initialization sequence.
ipr 0000:c0:01.0: Adapter firmware version: 020A004E
ipr 0000:c0:01.0: IOA initialized.
scsi0 : IBM 570B Storage Adapter
scsi 0:0:15:0: Enclosure IBM VSBPD3E U4SCSI 4812 PQ: 0 ANSI: 2
scsi: unknown device type 31
scsi 0:255:255:255: No Device IBM 570B001 0150 PQ: 0 ANSI: 0
ipr 0002:c8:01.0: Found IOA with IRQ: 117
ipr 0002:c8:01.0: Starting IOA initialization sequence.
ipr 0002:c8:01.0: Adapter firmware version: 020A004E
ipr 0002:c8:01.0: IOA initialized.
scsi1 : IBM 570B Storage Adapter
scsi 1:0:4:0: Direct-Access IBM H0 HUS103014FL3800 RPQF PQ: 0 ANSI: 4
scsi 1:0:5:0: Direct-Access IBM ST373453LC C51A PQ: 0 ANSI: 3
scsi 1:0:15:0: Enclosure IBM VSBPD3E U4SCSI 4812 PQ: 0 ANSI: 2
scsi: unknown device type 31
scsi 1:255:255:255: No Device IBM 570B001 0150 PQ: 0 ANSI: 0
vio_register_driver: driver ibmvscsi registering
st: Version 20081215, fixed bufsize 32768, s/g segs 256
Driver 'st' needs updating - please use bus_type methods
Driver 'sd' needs updating - please use bus_type methods
Driver 'sr' needs updating - please use bus_type methods
scsi 0:0:15:0: Attached scsi generic sg0 type 13
scsi 0:255:255:255: Attached scsi generic sg1 type 31
sd 1:0:4:0: Attached scsi generic sg2 type 0
sd 1:0:5:0: Attached scsi generic sg3 type 0
scsi 1:0:15:0: Attached scsi generic sg4 type 13
scsi 1:255:255:255: Attached scsi generic sg5 type 31
Intel(R) PRO/1000 Network Driver - version 7.3.21-k3-NAPI
Copyright (c) 1999-2006 Intel Corporation.
e1000 0000:d0:01.0: enabling device (0140 -> 0143)
sd 1:0:4:0: [sda] 286748000 512-byte hardware sectors: (146 GB/136 GiB)
sd 1:0:5:0: [sdb] 143374000 512-byte hardware sectors: (73.4 GB/68.3 GiB)
sd 1:0:5:0: [sdb] Write Protect is off
sd 1:0:5:0: [sdb] Mode Sense: cb 00 10 08
sd 1:0:5:0: [sdb] Write cache: disabled, read cache: enabled, supports DPO and FUA
sdb: sdb1 sdb2 sdb3
sd 1:0:5:0: [sdb] Attached SCSI disk
sd 1:0:4:0: [sda] Write Protect is off
sd 1:0:4:0: [sda] Mode Sense: d3 00 10 08
sd 1:0:4:0: [sda] Write cache: disabled, read cache: enabled, supports DPO and FUA
e1000: 0000:d0:01.0: e1000_probe: (PCI-X:133MHz:64-bit) 00:09:6b:dd:0d:9c
sda: sda1 sda2 sda3 sda4 < sda5 sda6 sda7 >
e1000: eth0: e1000_probe: Intel(R) PRO/1000 Network Connection
e1000 0000:d0:01.1: enabling device (0140 -> 0143)
sd 1:0:4:0: [sda] Attached SCSI disk
e1000: 0000:d0:01.1: e1000_probe: (PCI-X:133MHz:64-bit) 00:09:6b:dd:0d:9d
e1000: eth1: e1000_probe: Intel(R) PRO/1000 Network Connection
pcnet32.c:v1.35 21.Apr.2008 [email protected]
e100: Intel(R) PRO/100 Network Driver, 3.5.24-k2-NAPI
e100: Copyright(c) 1999-2006 Intel Corporation
drivers/net/ibmveth.c: ibmveth: IBM i/pSeries Virtual Ethernet Driver 1.03
vio_register_driver: driver ibmveth registering
console [netcon0] enabled
netconsole: network logging started
ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
ehci_hcd 0000:c8:01.2: enabling device (0140 -> 0142)
ehci_hcd 0000:c8:01.2: EHCI Host Controller
ehci_hcd 0000:c8:01.2: new USB bus registered, assigned bus number 1
ehci_hcd 0000:c8:01.2: Enabling legacy PCI PM
ehci_hcd 0000:c8:01.2: irq 85, io mem 0x400a0002000
ehci_hcd 0000:c8:01.2: USB 2.0 started, EHCI 1.00
usb usb1: configuration #1 chosen from 1 choice
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 5 ports detected
ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
ohci_hcd 0000:c8:01.0: OHCI Host Controller
ohci_hcd 0000:c8:01.0: new USB bus registered, assigned bus number 2
ohci_hcd 0000:c8:01.0: irq 85, io mem 0x400a0001000
usb usb2: configuration #1 chosen from 1 choice
hub 2-0:1.0: USB hub found
hub 2-0:1.0: 3 ports detected
ohci_hcd 0000:c8:01.1: OHCI Host Controller
ohci_hcd 0000:c8:01.1: new USB bus registered, assigned bus number 3
ohci_hcd 0000:c8:01.1: irq 85, io mem 0x400a0000000
usb usb3: configuration #1 chosen from 1 choice
hub 3-0:1.0: USB hub found
hub 3-0:1.0: 2 ports detected
Initializing USB Mass Storage driver...
usbcore: registered new interface driver usb-storage
USB Mass Storage support registered.
mice: PS/2 mouse device common for all mice
md: linear personality registered for level -1
md: raid0 personality registered for level 0
md: raid1 personality registered for level 1
device-mapper: ioctl: 4.14.0-ioctl (2008-04-23) initialised: [email protected]
oprofile: using ppc64/power5 performance monitoring.
IPv4 over IPv4 tunneling driver
TCP cubic registered
NET: Registered protocol family 17
RPC: Registered udp transport module.
RPC: Registered tcp transport module.
registered taskstats version 1
md: Waiting for all devices to be available before autodetect
md: If you don't use raid, use raid=noautodetect
md: Autodetecting RAID arrays.
md: Scanned 0 and added 0 devices.
md: autorun ...
md: ... autorun DONE.
RAMDISK: cramfs filesystem found at block 0
RAMDISK: Loading 24988KiB [1 disk] into ram disk... done.
VFS: Mounted root (cramfs filesystem) readonly on device 1:0.
Freeing unused kernel memory: 324k freed
nf_conntrack version 0.5.0 (16384 buckets, 65536 max)
CONFIG_NF_CT_ACCT is deprecated and will be removed soon. Please use
nf_conntrack.acct=1 kernel paramater, acct=1 nf_conntrack module option or
sysctl net.netfilter.nf_conntrack_acct=1 to enable it.
ip_tables: (C) 2000-2006 Netfilter Core Team
Netfilter messages via NETLINK v0.30.
loop: module loaded
QLogic Fibre Channel HBA Driver: 8.03.01-k1
qla2xxx 0001:d0:01.0: enabling device (0140 -> 0143)
qla2xxx 0001:d0:01.0: Found an ISP2300, irq 167, iobase 0xd00008008001a000
qla2xxx 0001:d0:01.0: Configuring PCI space...
qla2xxx 0001:d0:01.0: Configure NVRAM parameters...
qla2xxx 0001:d0:01.0: Verifying loaded RISC code...
qla2xxx 0001:d0:01.0: firmware: requesting ql2300_fw.bin
qla2xxx 0001:d0:01.0: Firmware image unavailable.
qla2xxx 0001:d0:01.0: Firmware images can be retrieved from: ftp://ftp.qlogic.com/outgoing/linux/firmware/.
qla2xxx 0001:d0:01.0: Failed to initialize adapter
qla2xxx 0002:c0:01.0: enabling device (0140 -> 0143)
qla2xxx 0002:c0:01.0: Found an ISP2300, irq 115, iobase 0xd00008008001e000
qla2xxx 0002:c0:01.0: Configuring PCI space...
qla2xxx 0002:c0:01.0: Configure NVRAM parameters...
qla2xxx 0002:c0:01.0: Verifying loaded RISC code...
qla2xxx 0002:c0:01.0: firmware: requesting ql2300_fw.bin
qla2xxx 0002:c0:01.0: Firmware image unavailable.
qla2xxx 0002:c0:01.0: Firmware images can be retrieved from: ftp://ftp.qlogic.com/outgoing/linux/firmware/.
qla2xxx 0002:c0:01.0: Failed to initialize adapter
kjournald starting. Commit interval 5 seconds
EXT3-fs: mounted filesystem with writeback data mode.
EXT3 FS on sda3, internal journal
e1000: lan0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: RX
------------[ cut here ]------------
kernel BUG at arch/powerpc/mm/pgtable.c:243!
Oops: Exception in kernel mode, sig: 5 [#1]
SMP NR_CPUS=128 NUMA pSeries
Modules linked in: dm_snapshot dm_mirror dm_region_hash dm_log qla2xxx loop nfnetlink iptable_filter iptable_nat nf_nat ip_tables nf_conntrack_ipv4 nf_defrag_ipv4 xt_state nf_conntrack ipt_REJECT xt_tcpudp xt_limit ipt_LOG xt_pkttype x_tables
NIP: c00000000002becc LR: c00000000002c02c CTR: 0000000000000000
REGS: c0000000ea92b4c0 TRAP: 0700 Not tainted (2.6.30-rc3-autokern1)
MSR: 8000000000029032 <EE,ME,CE,IR,DR> CR: 28000484 XER: 20000020
TASK = c00000000395b660[7611] 'mlock' THREAD: c0000000ea928000 CPU: 3
GPR00: 0000000000000001 c0000000ea92b740 c0000000008ea170 c0000000ec7d4980
GPR04: 000000003f000000 c0000001e2278cf8 0000001900000393 0000000000000001
GPR08: f000000002bc0000 0000000000000000 0000000000000113 c0000001e2278c81
GPR12: 0000000044000482 c00000000093b880 0000000028004422 0000000000000000
GPR16: c0000000ea92bbf0 c0000000009f06f0 0000001900000113 c0000000ec7d4980
GPR20: 0000000000000000 f000000002bc0000 000000003f000000 c0000001e2278cf8
GPR24: c0000000eaa90bb0 0000000000000000 c0000000eaa90bb0 c0000000ea928000
GPR28: f000000002bc0000 0000001900000393 0000000000000001 c0000001e2278cf8
NIP [c00000000002becc] .assert_pte_locked+0x54/0x8c
LR [c00000000002c02c] .ptep_set_access_flags+0x50/0x8c
Call Trace:
[c0000000ea92b740] [c0000000eaa90bb0] 0xc0000000eaa90bb0 (unreliable)
[c0000000ea92b7d0] [c0000000000ed1b0] .hugetlb_cow+0xd4/0x654
[c0000000ea92b900] [c0000000000edbf0] .hugetlb_fault+0x4c0/0x708
[c0000000ea92b9f0] [c0000000000ee890] .follow_hugetlb_page+0x174/0x364
[c0000000ea92bae0] [c0000000000d8d30] .__get_user_pages+0x288/0x4c0
[c0000000ea92bbb0] [c0000000000da10c] .make_pages_present+0xa0/0xe0
[c0000000ea92bc40] [c0000000000db758] .mlock_fixup+0x90/0x228
[c0000000ea92bd00] [c0000000000dbb38] .do_mlock+0xc4/0x128
[c0000000ea92bda0] [c0000000000dbccc] .SyS_mlock+0xb0/0xec
[c0000000ea92be30] [c00000000000852c] syscall_exit+0x0/0x40
Instruction dump:
0b000000 78892662 79291f24 7d69582a 7d600074 7800d182 0b000000 78895e62
79291f24 7d29582a 7d200074 7800d182 <0b000000> 3c004000 3960ffff 780007c6
---[ end trace 36a7faa04fa9452b ]---

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

2009-04-24 15:25:05

by Michael Ellerman

[permalink] [raw]
Subject: Re: [BUG] 2.6.30-rc3: BUG triggered on some hugepage usages

On Fri, 2009-04-24 at 10:51 +0100, Mel Gorman wrote:
> On Tue, Apr 21, 2009 at 08:27:57PM -0700, Linus Torvalds wrote:
> > Another week, another -rc.
> >
>
> I'm seeing some tests with sysbench+postgres+large pages fail on ppc64
> although a very clear pattern is not forming as to what exactly is
> causing it. However, the libhugetlbfs regression tests (make && make
> func) are triggering the following oops when calling mlock() and so are
> likely related.
>
> ------------[ cut here ]------------
> kernel BUG at arch/powerpc/mm/pgtable.c:243!
> Oops: Exception in kernel mode, sig: 5 [#1]
> SMP NR_CPUS=128 NUMA pSeries
> Modules linked in: dm_snapshot dm_mirror dm_region_hash dm_log qla2xxx
> loop nfnetlink iptable_filter iptable_nat nf_nat ip_tables
> nf_conntrack_ipv4 nf_defrag_ipv4 xt_state nf_conntrack ipt_REJECT
> xt_tcpudp xt_limit ipt_LOG xt_pkttype x_tables
> NIP: c00000000002becc LR: c00000000002c02c CTR: 0000000000000000
> REGS: c0000000ea92b4c0 TRAP: 0700 Not tainted (2.6.30-rc3-autokern1)
> MSR: 8000000000029032 <EE,ME,CE,IR,DR> CR: 28000484 XER: 20000020
> TASK = c00000000395b660[7611] 'mlock' THREAD: c0000000ea928000 CPU: 3
> GPR00: 0000000000000001 c0000000ea92b740 c0000000008ea170 c0000000ec7d4980
> GPR04: 000000003f000000 c0000001e2278cf8 0000001900000393 0000000000000001
> GPR08: f000000002bc0000 0000000000000000 0000000000000113 c0000001e2278c81
> GPR12: 0000000044000482 c00000000093b880 0000000028004422 0000000000000000
> GPR16: c0000000ea92bbf0 c0000000009f06f0 0000001900000113 c0000000ec7d4980
> GPR20: 0000000000000000 f000000002bc0000 000000003f000000 c0000001e2278cf8
> GPR24: c0000000eaa90bb0 0000000000000000 c0000000eaa90bb0 c0000000ea928000
> GPR28: f000000002bc0000 0000001900000393 0000000000000001 c0000001e2278cf8
> NIP [c00000000002becc] .assert_pte_locked+0x54/0x8c
> LR [c00000000002c02c] .ptep_set_access_flags+0x50/0x8c
> Call Trace:
> [c0000000ea92b740] [c0000000eaa90bb0] 0xc0000000eaa90bb0 (unreliable)
> [c0000000ea92b7d0] [c0000000000ed1b0] .hugetlb_cow+0xd4/0x654
> [c0000000ea92b900] [c0000000000edbf0] .hugetlb_fault+0x4c0/0x708
> [c0000000ea92b9f0] [c0000000000ee890] .follow_hugetlb_page+0x174/0x364
> [c0000000ea92bae0] [c0000000000d8d30] .__get_user_pages+0x288/0x4c0
> [c0000000ea92bbb0] [c0000000000da10c] .make_pages_present+0xa0/0xe0
> [c0000000ea92bc40] [c0000000000db758] .mlock_fixup+0x90/0x228
> [c0000000ea92bd00] [c0000000000dbb38] .do_mlock+0xc4/0x128
> [c0000000ea92bda0] [c0000000000dbccc] .SyS_mlock+0xb0/0xec
> [c0000000ea92be30] [c00000000000852c] syscall_exit+0x0/0x40
> Instruction dump:
> 0b000000 78892662 79291f24 7d69582a 7d600074 7800d182 0b000000 78895e62
> 79291f24 7d29582a 7d200074 7800d182 <0b000000> 3c004000 3960ffff
> 780007c6
> ---[ end trace 36a7faa04fa9452b ]---
>
> This corresponds to
>
> #ifdef CONFIG_DEBUG_VM
> void assert_pte_locked(struct mm_struct *mm, unsigned long addr)
> {
> pgd_t *pgd;
> pud_t *pud;
> pmd_t *pmd;
>
> if (mm == &init_mm)
> return;
> pgd = mm->pgd + pgd_index(addr);
> BUG_ON(pgd_none(*pgd));
> pud = pud_offset(pgd, addr);
> BUG_ON(pud_none(*pud));
> pmd = pmd_offset(pud, addr);
> BUG_ON(!pmd_present(*pmd)); <----- THIS LINE
> BUG_ON(!spin_is_locked(pte_lockptr(mm, pmd)));
> }
> #endif /* CONFIG_DEBUG_VM */
>
> This area was last changed by commit 8d30c14cab30d405a05f2aaceda1e9ad57800f36
> in the 2.6.30-rc1 timeframe. I think there was another hugepage-related
> problem with this patch but I can't remember what it was.

It broke modules, but I don't remember anything hugepage related.

So the code changed from:

-#define ptep_set_access_flags(__vma, __address, __ptep, __entry, __dirty) \
-({ \
- int __changed = !pte_same(*(__ptep), __entry); \
- if (__changed) { \
- __ptep_set_access_flags(__ptep, __entry, __dirty); \
- flush_tlb_page_nohash(__vma, __address); \
- } \
- __changed; \
-})

to:

+int ptep_set_access_flags(struct vm_area_struct *vma, unsigned long address,
+ pte_t *ptep, pte_t entry, int dirty)
+{
+ int changed;
+ if (!dirty && pte_need_exec_flush(entry, 0))
+ entry = do_dcache_icache_coherency(entry);
+ changed = !pte_same(*(ptep), entry);
+ if (changed) {
+ assert_pte_locked(vma->vm_mm, address);
+ __ptep_set_access_flags(ptep, entry);
+ flush_tlb_page_nohash(vma, address);
+ }
+ return changed;
+}

So the call to assert_pte_locked() is new. And it's never going to work
for huge pages, the page table structure is different right? Notice
pte_update() checks (arch/powerpc/include/asm/pgtable-ppc64.h):

198 /* huge pages use the old page table lock */
199 if (!huge)
200 assert_pte_locked(mm, addr);

But unlike pte_update() ptep_set_access_flags() has no way of knowing
it's been called from huge_ptep_set_access_flags().

So my guess is we either remove the call to assert_pte_locked() in
there, or have assert_pte_locked() check whether it's being called for a
huge pte.

cheers


Attachments:
signature.asc (197.00 B)
This is a digitally signed message part

2009-04-24 17:53:00

by Mel Gorman

[permalink] [raw]
Subject: [BUG] 2.6.30-rc3: bnx2 failing to load firmware

On Tue, Apr 21, 2009 at 08:27:57PM -0700, Linus Torvalds wrote:
>
> Another week, another -rc.
>

Getting this when loading the bnx2 driver

bnx2 0000:04:00.0: firmware: requesting bnx2/bnx2-mips-06-4.6.16.fw
bnx2: Can't load firmware file "bnx2/bnx2-mips-06-4.6.16.fw"
bnx2 0000:04:00.0: PCI INT A disabled
bnx2: probe of 0000:04:00.0 failed with error -2
bnx2 0000:06:00.0: PCI INT A -> GSI 19 (level, low) -> IRQ 19
bnx2 0000:06:00.0: firmware: requesting bnx2/bnx2-mips-06-4.6.16.fw
bnx2: Can't load firmware file "bnx2/bnx2-mips-06-4.6.16.fw"
bnx2 0000:06:00.0: PCI INT A disabled
bnx2: probe of 0000:06:00.0 failed with error -2

The firmware-related parts of the .config are

CONFIG_PREVENT_FIRMWARE_BUILD=y
CONFIG_FIRMWARE_IN_KERNEL=y
CONFIG_EXTRA_FIRMWARE=""
CONFIG_FIRMWARE_EDID=y
CONFIG_FIRMWARE_MEMMAP=y

Reverting commit 57579f7629a3d46c307405fbd2ea6bdb650d692f "fixes" it no
doubt there is a better fix. The patch author (Michael) is cc'd but if
nothing else happens, I'll investigate more after the weekend.

dmesg and .config attached.

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


Attachments:
(No filename) (1.18 kB)
dmesg (33.57 kB)
config (81.40 kB)
Download all attachments

2009-04-24 18:32:07

by Frans Pop

[permalink] [raw]
Subject: Re: [BUG] 2.6.30-rc3: bnx2 failing to load firmware

Looks like you're using an initramfs initrd and the bnx2 module is getting
loaded at that stage. Have you checked that the bnx firmware file is
included in your initramfs?

Cheers,
FJP

2009-04-24 18:40:39

by Linus Torvalds

[permalink] [raw]
Subject: Re: [BUG] 2.6.30-rc3: bnx2 failing to load firmware



On Fri, 24 Apr 2009, Frans Pop wrote:
>
> Looks like you're using an initramfs initrd and the bnx2 module is getting
> loaded at that stage. Have you checked that the bnx firmware file is
> included in your initramfs?

According to his config he has:

CONFIG_FIRMWARE_IN_KERNEL=y

which should make all initrd issues pointless - the firmware should be
included in the kernel directly.

Linus

2009-04-24 19:02:41

by Frans Pop

[permalink] [raw]
Subject: Re: [BUG] 2.6.30-rc3: bnx2 failing to load firmware

On Friday 24 April 2009, Linus Torvalds wrote:
> On Fri, 24 Apr 2009, Frans Pop wrote:
> > Looks like you're using an initramfs initrd and the bnx2 module is
> > getting loaded at that stage. Have you checked that the bnx firmware
> > file is included in your initramfs?
>
> According to his config he has:
>
> CONFIG_FIRMWARE_IN_KERNEL=y
>
> which should make all initrd issues pointless - the firmware should be
> included in the kernel directly.

IIUC only if the driver is compiled in, not if it's modular.

2009-04-27 08:17:34

by Benjamin Herrenschmidt

[permalink] [raw]
Subject: Re: [BUG] 2.6.30-rc3: BUG triggered on some hugepage usages

On Fri, 2009-04-24 at 10:51 +0100, Mel Gorman wrote:
> I'm seeing some tests with sysbench+postgres+large pages fail on ppc64
> although a very clear pattern is not forming as to what exactly is
> causing it. However, the libhugetlbfs regression tests (make && make
> func) are triggering the following oops when calling mlock() and so
> are
> likely related.

This would be a spurrious WARN_ON().. the test I added in there should
not apply to huge pages. However, I don't see that causing a functional
problem with sysbench+postgres

Ben.

2009-04-27 12:35:00

by Martin Knoblauch

[permalink] [raw]
Subject: Re: [BUG] 2.6.30-rc3: bnx2 failing to load firmware


----- Original Message ----

> From: Mel Gorman <[email protected]>
> To: Linus Torvalds <[email protected]>
> Cc: Linux Kernel Mailing List <[email protected]>; Michael Chan <[email protected]>; David S. Miller <[email protected]>
> Sent: Friday, April 24, 2009 7:52:39 PM
> Subject: [BUG] 2.6.30-rc3: bnx2 failing to load firmware
>
> On Tue, Apr 21, 2009 at 08:27:57PM -0700, Linus Torvalds wrote:
> >
> > Another week, another -rc.
> >
>
> Getting this when loading the bnx2 driver
>
> bnx2 0000:04:00.0: firmware: requesting bnx2/bnx2-mips-06-4.6.16.fw
> bnx2: Can't load firmware file "bnx2/bnx2-mips-06-4.6.16.fw"
> bnx2 0000:04:00.0: PCI INT A disabled
> bnx2: probe of 0000:04:00.0 failed with error -2
> bnx2 0000:06:00.0: PCI INT A -> GSI 19 (level, low) -> IRQ 19
> bnx2 0000:06:00.0: firmware: requesting bnx2/bnx2-mips-06-4.6.16.fw
> bnx2: Can't load firmware file "bnx2/bnx2-mips-06-4.6.16.fw"
> bnx2 0000:06:00.0: PCI INT A disabled
> bnx2: probe of 0000:06:00.0 failed with error -2
>
> The firmware-related parts of the .config are
>
> CONFIG_PREVENT_FIRMWARE_BUILD=y
> CONFIG_FIRMWARE_IN_KERNEL=y
> CONFIG_EXTRA_FIRMWARE=""
> CONFIG_FIRMWARE_EDID=y
> CONFIG_FIRMWARE_MEMMAP=y
>
> Reverting commit 57579f7629a3d46c307405fbd2ea6bdb650d692f "fixes" it no
> doubt there is a better fix. The patch author (Michael) is cc'd but if
> nothing else happens, I'll investigate more after the weekend.
>
> dmesg and .config attached.
>

just curious, what userspace are you using? I have, starting with 2.6.29, a similar problem with tg3. My RHEL4.3 userspace broke hotplugging, because as of 2.6.29 there are two "sysfs" lines in /"proc/mounts". I fixed it in "/etc/hotplug/firmware.agent" by just assuming "/sys" as the "sysfs" mountpoint.

Maybe of course totally unrelated.

Cheers
Martin

2009-04-27 13:34:04

by Mel Gorman

[permalink] [raw]
Subject: Re: [BUG] 2.6.30-rc3: bnx2 failing to load firmware

On Mon, Apr 27, 2009 at 05:34:47AM -0700, Martin Knoblauch wrote:
>
> > From: Mel Gorman <[email protected]>
> > To: Linus Torvalds <[email protected]>
> > Cc: Linux Kernel Mailing List <[email protected]>; Michael Chan <[email protected]>; David S. Miller <[email protected]>
> > Sent: Friday, April 24, 2009 7:52:39 PM
> > Subject: [BUG] 2.6.30-rc3: bnx2 failing to load firmware
> >
> > On Tue, Apr 21, 2009 at 08:27:57PM -0700, Linus Torvalds wrote:
> > >
> > > Another week, another -rc.
> > >
> >
> > Getting this when loading the bnx2 driver
> >
> > bnx2 0000:04:00.0: firmware: requesting bnx2/bnx2-mips-06-4.6.16.fw
> > bnx2: Can't load firmware file "bnx2/bnx2-mips-06-4.6.16.fw"
> > bnx2 0000:04:00.0: PCI INT A disabled
> > bnx2: probe of 0000:04:00.0 failed with error -2
> > bnx2 0000:06:00.0: PCI INT A -> GSI 19 (level, low) -> IRQ 19
> > bnx2 0000:06:00.0: firmware: requesting bnx2/bnx2-mips-06-4.6.16.fw
> > bnx2: Can't load firmware file "bnx2/bnx2-mips-06-4.6.16.fw"
> > bnx2 0000:06:00.0: PCI INT A disabled
> > bnx2: probe of 0000:06:00.0 failed with error -2
> >
> > The firmware-related parts of the .config are
> >
> > CONFIG_PREVENT_FIRMWARE_BUILD=y
> > CONFIG_FIRMWARE_IN_KERNEL=y
> > CONFIG_EXTRA_FIRMWARE=""
> > CONFIG_FIRMWARE_EDID=y
> > CONFIG_FIRMWARE_MEMMAP=y
> >
> > Reverting commit 57579f7629a3d46c307405fbd2ea6bdb650d692f "fixes" it no
> > doubt there is a better fix. The patch author (Michael) is cc'd but if
> > nothing else happens, I'll investigate more after the weekend.
> >
> > dmesg and .config attached.
> >
>
> just curious, what userspace are you using? I have, starting with 2.6.29, a similar problem with tg3. My RHEL4.3 userspace broke hotplugging, because as of 2.6.29 there are two "sysfs" lines in /"proc/mounts". I fixed it in "/etc/hotplug/firmware.agent" by just assuming "/sys" as the "sysfs" mountpoint.
>

RHEL 5.3 in this case but it looks like the problem is in mkinitrd and
fixed already for later releases. For testing, I'm just going to build
the network module in and not worry about getting mkinitrd right on this
version of RHEL.

> Maybe of course totally unrelated.
>
> Cheers
> Martin
>

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

2009-04-30 20:59:33

by Mel Gorman

[permalink] [raw]
Subject: Re: [BUG] 2.6.30-rc3: BUG triggered on some hugepage usages

On Sat, Apr 25, 2009 at 01:24:50AM +1000, Michael Ellerman wrote:
> On Fri, 2009-04-24 at 10:51 +0100, Mel Gorman wrote:
> > On Tue, Apr 21, 2009 at 08:27:57PM -0700, Linus Torvalds wrote:
> > > Another week, another -rc.
> > >
> >
> > I'm seeing some tests with sysbench+postgres+large pages fail on ppc64
> > although a very clear pattern is not forming as to what exactly is
> > causing it. However, the libhugetlbfs regression tests (make && make
> > func) are triggering the following oops when calling mlock() and so are
> > likely related.
> >
> > ------------[ cut here ]------------
> > kernel BUG at arch/powerpc/mm/pgtable.c:243!
> > Oops: Exception in kernel mode, sig: 5 [#1]
> > SMP NR_CPUS=128 NUMA pSeries
> > Modules linked in: dm_snapshot dm_mirror dm_region_hash dm_log qla2xxx
> > loop nfnetlink iptable_filter iptable_nat nf_nat ip_tables
> > nf_conntrack_ipv4 nf_defrag_ipv4 xt_state nf_conntrack ipt_REJECT
> > xt_tcpudp xt_limit ipt_LOG xt_pkttype x_tables
> > NIP: c00000000002becc LR: c00000000002c02c CTR: 0000000000000000
> > REGS: c0000000ea92b4c0 TRAP: 0700 Not tainted (2.6.30-rc3-autokern1)
> > MSR: 8000000000029032 <EE,ME,CE,IR,DR> CR: 28000484 XER: 20000020
> > TASK = c00000000395b660[7611] 'mlock' THREAD: c0000000ea928000 CPU: 3
> > GPR00: 0000000000000001 c0000000ea92b740 c0000000008ea170 c0000000ec7d4980
> > GPR04: 000000003f000000 c0000001e2278cf8 0000001900000393 0000000000000001
> > GPR08: f000000002bc0000 0000000000000000 0000000000000113 c0000001e2278c81
> > GPR12: 0000000044000482 c00000000093b880 0000000028004422 0000000000000000
> > GPR16: c0000000ea92bbf0 c0000000009f06f0 0000001900000113 c0000000ec7d4980
> > GPR20: 0000000000000000 f000000002bc0000 000000003f000000 c0000001e2278cf8
> > GPR24: c0000000eaa90bb0 0000000000000000 c0000000eaa90bb0 c0000000ea928000
> > GPR28: f000000002bc0000 0000001900000393 0000000000000001 c0000001e2278cf8
> > NIP [c00000000002becc] .assert_pte_locked+0x54/0x8c
> > LR [c00000000002c02c] .ptep_set_access_flags+0x50/0x8c
> > Call Trace:
> > [c0000000ea92b740] [c0000000eaa90bb0] 0xc0000000eaa90bb0 (unreliable)
> > [c0000000ea92b7d0] [c0000000000ed1b0] .hugetlb_cow+0xd4/0x654
> > [c0000000ea92b900] [c0000000000edbf0] .hugetlb_fault+0x4c0/0x708
> > [c0000000ea92b9f0] [c0000000000ee890] .follow_hugetlb_page+0x174/0x364
> > [c0000000ea92bae0] [c0000000000d8d30] .__get_user_pages+0x288/0x4c0
> > [c0000000ea92bbb0] [c0000000000da10c] .make_pages_present+0xa0/0xe0
> > [c0000000ea92bc40] [c0000000000db758] .mlock_fixup+0x90/0x228
> > [c0000000ea92bd00] [c0000000000dbb38] .do_mlock+0xc4/0x128
> > [c0000000ea92bda0] [c0000000000dbccc] .SyS_mlock+0xb0/0xec
> > [c0000000ea92be30] [c00000000000852c] syscall_exit+0x0/0x40
> > Instruction dump:
> > 0b000000 78892662 79291f24 7d69582a 7d600074 7800d182 0b000000 78895e62
> > 79291f24 7d29582a 7d200074 7800d182 <0b000000> 3c004000 3960ffff
> > 780007c6
> > ---[ end trace 36a7faa04fa9452b ]---
> >
> > This corresponds to
> >
> > #ifdef CONFIG_DEBUG_VM
> > void assert_pte_locked(struct mm_struct *mm, unsigned long addr)
> > {
> > pgd_t *pgd;
> > pud_t *pud;
> > pmd_t *pmd;
> >
> > if (mm == &init_mm)
> > return;
> > pgd = mm->pgd + pgd_index(addr);
> > BUG_ON(pgd_none(*pgd));
> > pud = pud_offset(pgd, addr);
> > BUG_ON(pud_none(*pud));
> > pmd = pmd_offset(pud, addr);
> > BUG_ON(!pmd_present(*pmd)); <----- THIS LINE
> > BUG_ON(!spin_is_locked(pte_lockptr(mm, pmd)));
> > }
> > #endif /* CONFIG_DEBUG_VM */
> >
> > This area was last changed by commit 8d30c14cab30d405a05f2aaceda1e9ad57800f36
> > in the 2.6.30-rc1 timeframe. I think there was another hugepage-related
> > problem with this patch but I can't remember what it was.
>
> It broke modules, but I don't remember anything hugepage related.
>
> So the code changed from:
>
> -#define ptep_set_access_flags(__vma, __address, __ptep, __entry, __dirty) \
> -({ \
> - int __changed = !pte_same(*(__ptep), __entry); \
> - if (__changed) { \
> - __ptep_set_access_flags(__ptep, __entry, __dirty); \
> - flush_tlb_page_nohash(__vma, __address); \
> - } \
> - __changed; \
> -})
>
> to:
>
> +int ptep_set_access_flags(struct vm_area_struct *vma, unsigned long address,
> + pte_t *ptep, pte_t entry, int dirty)
> +{
> + int changed;
> + if (!dirty && pte_need_exec_flush(entry, 0))
> + entry = do_dcache_icache_coherency(entry);
> + changed = !pte_same(*(ptep), entry);
> + if (changed) {
> + assert_pte_locked(vma->vm_mm, address);
> + __ptep_set_access_flags(ptep, entry);
> + flush_tlb_page_nohash(vma, address);
> + }
> + return changed;
> +}
>
> So the call to assert_pte_locked() is new. And it's never going to work
> for huge pages, the page table structure is different right?

Right

> Notice
> pte_update() checks (arch/powerpc/include/asm/pgtable-ppc64.h):
>
> 198 /* huge pages use the old page table lock */
> 199 if (!huge)
> 200 assert_pte_locked(mm, addr);
>
> But unlike pte_update() ptep_set_access_flags() has no way of knowing
> it's been called from huge_ptep_set_access_flags().
>

It does because it has the VMA. This patch fixes the problem for me. If it
looks ok, I'll resend to Paul Mackerras for the powerpc tree.

As Ben says, it doesn't explain the functional difficulties I had in
sysbench+postgres so I'll reinvestigate that.

==== CUT HERE ====

powerpc: Do not assert pte_locked for hugepage PTE entries

With CONFIG_DEBUG_VM, an assertion is made when changing the protection
flags of a PTE that the PTE is locked. Huge pages use a different pagetable
format and the assertion is bogus and will always trigger with a bug looking
something like

Unable to handle kernel paging request for data at address 0xf1a00235800006f8
Faulting instruction address: 0xc000000000034a80
Oops: Kernel access of bad area, sig: 11 [#1]
SMP NR_CPUS=32 NUMA Maple
Modules linked in: dm_snapshot dm_mirror dm_region_hash
dm_log dm_mod loop evdev ext3 jbd mbcache sg sd_mod ide_pci_generic
pata_amd ata_generic ipr libata tg3 libphy scsi_mod windfarm_pid
windfarm_smu_sat windfarm_max6690_sensor windfarm_lm75_sensor
windfarm_cpufreq_clamp windfarm_core i2c_powermac
NIP: c000000000034a80 LR: c000000000034b18 CTR: 0000000000000003
REGS: c000000003037600 TRAP: 0300 Not tainted (2.6.30-rc3-autokern1)
MSR: 9000000000009032 <EE,ME,IR,DR> CR: 28002484 XER: 200fffff
DAR: f1a00235800006f8, DSISR: 0000000040010000
TASK = c0000002e54cc740[2960] 'map_high_trunca' THREAD: c000000003034000 CPU: 2
GPR00: 4000000000000000 c000000003037880 c000000000895d30 c0000002e5a2e500
GPR04: 00000000a0000000 c0000002edc40880 0000005700000393 0000000000000001
GPR08: f000000011ac0000 01a00235800006e8 00000000000000f5 f1a00235800006e8
GPR12: 0000000028000484 c0000000008dd780 0000000000001000 0000000000000000
GPR16: fffffffffffff000 0000000000000000 00000000a0000000 c000000003037a20
GPR20: c0000002e5f4ece8 0000000000001000 c0000002edc40880 0000000000000000
GPR24: c0000002e5f4ece8 0000000000000000 00000000a0000000 c0000002e5f4ece8
GPR28: 0000005700000393 c0000002e5a2e500 00000000a0000000 c000000003037880
NIP [c000000000034a80] .assert_pte_locked+0xa4/0xd0
LR [c000000000034b18] .ptep_set_access_flags+0x6c/0xb4
Call Trace:
[c000000003037880] [c000000003037990] 0xc000000003037990 (unreliable)
[c000000003037910] [c000000000034b18] .ptep_set_access_flags+0x6c/0xb4
[c0000000030379b0] [c00000000014bef8] .hugetlb_cow+0x124/0x674
[c000000003037b00] [c00000000014c930] .hugetlb_fault+0x4e8/0x6f8
[c000000003037c00] [c00000000013443c] .handle_mm_fault+0xac/0x828
[c000000003037cf0] [c0000000000340a8] .do_page_fault+0x39c/0x584
[c000000003037e30] [c0000000000057b0] handle_page_fault+0x20/0x5c
Instruction dump:
7d29582a 7d200074 7800d182 0b000000 3c004000 3960ffff 780007c6 796b00c4
7d290214 7929a302 1d290068 7d6b4a14 <800b0010> 7c000074 7800d182 0b000000

This patch fixes the problem by not asseting the PTE is locked for VMAs
backed by huge pages.

Signed-off-by: Mel Gorman <[email protected]>
---
arch/powerpc/mm/pgtable.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/arch/powerpc/mm/pgtable.c b/arch/powerpc/mm/pgtable.c
index f5c6fd4..ae1d67c 100644
--- a/arch/powerpc/mm/pgtable.c
+++ b/arch/powerpc/mm/pgtable.c
@@ -219,7 +219,8 @@ int ptep_set_access_flags(struct vm_area_struct *vma, unsigned long address,
entry = do_dcache_icache_coherency(entry);
changed = !pte_same(*(ptep), entry);
if (changed) {
- assert_pte_locked(vma->vm_mm, address);
+ if (!(vma->vm_flags & VM_HUGETLB))
+ assert_pte_locked(vma->vm_mm, address);
__ptep_set_access_flags(ptep, entry);
flush_tlb_page_nohash(vma, address);
}

2009-04-30 21:59:59

by Benjamin Herrenschmidt

[permalink] [raw]
Subject: Re: [BUG] 2.6.30-rc3: BUG triggered on some hugepage usages

On Thu, 2009-04-30 at 21:59 +0100, Mel Gorman wrote:

> This patch fixes the problem by not asseting the PTE is locked for VMAs
> backed by huge pages.

Thanks, will apply.

Cheers,
Ben.

> Signed-off-by: Mel Gorman <[email protected]>
> ---
> arch/powerpc/mm/pgtable.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/arch/powerpc/mm/pgtable.c b/arch/powerpc/mm/pgtable.c
> index f5c6fd4..ae1d67c 100644
> --- a/arch/powerpc/mm/pgtable.c
> +++ b/arch/powerpc/mm/pgtable.c
> @@ -219,7 +219,8 @@ int ptep_set_access_flags(struct vm_area_struct *vma, unsigned long address,
> entry = do_dcache_icache_coherency(entry);
> changed = !pte_same(*(ptep), entry);
> if (changed) {
> - assert_pte_locked(vma->vm_mm, address);
> + if (!(vma->vm_flags & VM_HUGETLB))
> + assert_pte_locked(vma->vm_mm, address);
> __ptep_set_access_flags(ptep, entry);
> flush_tlb_page_nohash(vma, address);
> }