commit c59765042f53a79a7a65585042ff463b69cb248c Author: Linus Torvalds Date: Sat Jan 10 15:43:05 2009 -0800 Linux 2.6.29-rc1 commit d3f8ddea444b3b5324d74144177a50557cd1f137 Author: Arjan van de Ven Date: Sat Jan 10 10:03:05 2009 -0800 bootgraph: make the bootgraph script show async waiting time It is useful for diagnosing boot performance to see where async function calls are waiting on serialization... this patch adds this functionality to the bootgraph.pl script. The waiting time is shown as a half transparent, gray bar through the block that is waiting. Signed-off-by: Arjan van de Ven Signed-off-by: Linus Torvalds commit fa853a48413c2ca1a5dc6b539bf07cf8e7247f8e Author: Arjan van de Ven Date: Sat Jan 10 10:18:44 2009 -0800 libata: only ports >= 0 need to synchronize In a discussio with Jeff Garzik, he mentioned that the serialization for the libata port probes only needs to be within the domain of a host. This means that for the first port of each host (with ID 0), we don't need to wait, so we can relax our serialization a little. Signed-off-by: Arjan van de Ven Signed-off-by: Linus Torvalds commit 886ad09fc83342aa1c5a02a0b6d3298b78a8067f Author: Arjan van de Ven Date: Fri Jan 9 15:54:07 2009 -0800 libata: Add a per-host flag to opt-in into parallel port probes This patch adds a per host flag that allows drivers to opt in into having its busses scanned in parallel. Drivers that do not set this flag get their ports scanned in the "original" sequence. Signed-off-by: Arjan van de Ven Signed-off-by: Linus Torvalds commit 3d14bdad40315b54470cb7812293d14c8af2bf7d Merge: 4e9b1c1... 51d7a13... Author: Linus Torvalds Date: Sat Jan 10 06:13:09 2009 -0800 Merge branch 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip * 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (36 commits) x86: fix section mismatch warnings in mcheck/mce_amd_64.c x86: offer frame pointers in all build modes x86: remove duplicated #include's x86: k8 numa register active regions later x86: update Alan Cox's email addresses x86: rename all fields of mpc_table mpc_X to X x86: rename all fields of mpc_oemtable oem_X to X x86: rename all fields of mpc_bus mpc_X to X x86: rename all fields of mpc_cpu mpc_X to X x86: rename all fields of mpc_intsrc mpc_X to X x86: rename all fields of mpc_lintsrc mpc_X to X x86: rename all fields of mpc_iopic mpc_X to X x86: irqinit_64.c init_ISA_irqs should be static Documentation/x86/boot.txt: payload length was changed to payload_length x86: setup_percpu.c fix style problems x86: irqinit_64.c fix style problems x86: irqinit_32.c fix style problems x86: i8259.c fix style problems x86: irq_32.c fix style problems x86: ioport.c fix style problems ... commit 4e9b1c184cadbece3694603de5f880b6e35bd7a7 Merge: 0176260... 36c401a... Author: Linus Torvalds Date: Sat Jan 10 06:12:18 2009 -0800 Merge branch 'cpus4096-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip * 'cpus4096-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: [IA64] fix typo in cpumask_of_pcibus() x86: fix x86_32 builds for summit and es7000 arch's cpumask: use work_on_cpu in acpi-cpufreq.c for read_measured_perf_ctrs cpumask: use work_on_cpu in acpi-cpufreq.c for drv_read and drv_write cpumask: use cpumask_var_t in acpi-cpufreq.c cpumask: use work_on_cpu in acpi/cstate.c cpumask: convert struct cpufreq_policy to cpumask_var_t cpumask: replace CPUMASK_ALLOC etc with cpumask_var_t x86: cleanup remaining cpumask_t ops in smpboot code cpumask: update pci_bus_show_cpuaffinity to use new cpumask API cpumask: update local_cpus_show to use new cpumask API ia64: cpumask fix for is_affinity_mask_valid() commit 0176260fc30842e358cf34afa7dcd9413db44822 Author: Linus Torvalds Date: Sat Jan 10 06:09:52 2009 -0800 btrfs: fix for write_super_lockfs/unlockfs error handling Commit c4be0c1dc4cdc37b175579be1460f15ac6495e9a added the ability for write_super_lockfs to return errors, and renamed them to match. But btrfs didn't get converted. Do the minimal conversion to make it compile again. Signed-off-by: Linus Torvalds commit f4b477c47332367d35686bd2b808c2156b96d7c7 Author: Artem Bityutskiy Date: Sat Jan 10 11:12:09 2009 +0000 rbtree: add const qualifier to some functions The 'rb_first()', 'rb_last()', 'rb_next()' and 'rb_prev()' calls take a pointer to an RB node or RB root. They do not change the pointed objects, so add a 'const' qualifier in order to make life of the users of these functions easier. Indeed, if I have my own constant pointer &const struct my_type *p, and I call 'rb_next(&p->rb)', I get a GCC warning: warning: passing argument 1 of ‘rb_next’ discards qualifiers from pointer target type Signed-off-by: Artem Bityutskiy Signed-off-by: David Woodhouse Signed-off-by: Linus Torvalds commit cfce41a6d643c001d416ead960caf04fae2d609a Author: Eric Piel Date: Fri Jan 9 16:41:01 2009 -0800 LIS3LV02D: separate the core from HP ACPI API The sensor can be accessed via various buses. In particular, SPI, I²C and, on HP laptops, via a specific ACPI API (the only one currently supported). Separate this latest platform from the core of the sensor driver to allow support for the other bus type. The second, and more direct goal is actually to be able to merge this part with the hp-disk-leds driver, which has the same ACPI PNP number. Signed-off-by: Pavel Machek Signed-off-by: Eric Piel Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 8e961870bb9804110d5c8211d5d9d500451c4518 Author: Takashi Sato Date: Fri Jan 9 16:41:00 2009 -0800 filesystem freeze: remove XFS specific ioctl interfaces for freeze feature It removes XFS specific ioctl interfaces and request codes for freeze feature. This patch has been supplied by David Chinner. Signed-off-by: Dave Chinner Signed-off-by: Takashi Sato Cc: Dave Chinner Cc: Cc: Cc: Christoph Hellwig Cc: Dave Kleikamp Cc: Alasdair G Kergon Cc: Al Viro Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit fcccf502540e3d752d33b2d8e976034dee81f9f7 Author: Takashi Sato Date: Fri Jan 9 16:40:59 2009 -0800 filesystem freeze: implement generic freeze feature The ioctls for the generic freeze feature are below. o Freeze the filesystem int ioctl(int fd, int FIFREEZE, arg) fd: The file descriptor of the mountpoint FIFREEZE: request code for the freeze arg: Ignored Return value: 0 if the operation succeeds. Otherwise, -1 o Unfreeze the filesystem int ioctl(int fd, int FITHAW, arg) fd: The file descriptor of the mountpoint FITHAW: request code for unfreeze arg: Ignored Return value: 0 if the operation succeeds. Otherwise, -1 Error number: If the filesystem has already been unfrozen, errno is set to EINVAL. [akpm@linux-foundation.org: fix CONFIG_BLOCK=n] Signed-off-by: Takashi Sato Signed-off-by: Masayuki Hamaguchi Cc: Cc: Cc: Christoph Hellwig Cc: Dave Kleikamp Cc: Dave Chinner Cc: Alasdair G Kergon Cc: Al Viro Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit c4be0c1dc4cdc37b175579be1460f15ac6495e9a Author: Takashi Sato Date: Fri Jan 9 16:40:58 2009 -0800 filesystem freeze: add error handling of write_super_lockfs/unlockfs Currently, ext3 in mainline Linux doesn't have the freeze feature which suspends write requests. So, we cannot take a backup which keeps the filesystem's consistency with the storage device's features (snapshot and replication) while it is mounted. In many case, a commercial filesystem (e.g. VxFS) has the freeze feature and it would be used to get the consistent backup. If Linux's standard filesystem ext3 has the freeze feature, we can do it without a commercial filesystem. So I have implemented the ioctls of the freeze feature. I think we can take the consistent backup with the following steps. 1. Freeze the filesystem with the freeze ioctl. 2. Separate the replication volume or create the snapshot with the storage device's feature. 3. Unfreeze the filesystem with the unfreeze ioctl. 4. Take the backup from the separated replication volume or the snapshot. This patch: VFS: Changed the type of write_super_lockfs and unlockfs from "void" to "int" so that they can return an error. Rename write_super_lockfs and unlockfs of the super block operation freeze_fs and unfreeze_fs to avoid a confusion. ext3, ext4, xfs, gfs2, jfs: Changed the type of write_super_lockfs and unlockfs from "void" to "int" so that write_super_lockfs returns an error if needed, and unlockfs always returns 0. reiserfs: Changed the type of write_super_lockfs and unlockfs from "void" to "int" so that they always return 0 (success) to keep a current behavior. Signed-off-by: Takashi Sato Signed-off-by: Masayuki Hamaguchi Cc: Cc: Cc: Christoph Hellwig Cc: Dave Kleikamp Cc: Dave Chinner Cc: Alasdair G Kergon Cc: Al Viro Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 69347a236b22c3962ea812511495e502dedfd50c Author: Harvey Harrison Date: Fri Jan 9 16:40:56 2009 -0800 memstick: annotate endianness of attribute structs The code was shifting the endianness appropriately everywhere, annotate the structs to avoid the sparse warnings when assigning the endian types to the struct members, or passing them to be[16|32]_to_cpu: drivers/memstick/core/mspro_block.c:331:4: warning: cast to restricted __be16 drivers/memstick/core/mspro_block.c:333:4: warning: cast to restricted __be16 drivers/memstick/core/mspro_block.c:335:4: warning: cast to restricted __be16 drivers/memstick/core/mspro_block.c:337:4: warning: cast to restricted __be16 drivers/memstick/core/mspro_block.c:341:4: warning: cast to restricted __be16 drivers/memstick/core/mspro_block.c:347:4: warning: cast to restricted __be32 drivers/memstick/core/mspro_block.c:356:4: warning: cast to restricted __be16 drivers/memstick/core/mspro_block.c:358:4: warning: cast to restricted __be16 drivers/memstick/core/mspro_block.c:364:4: warning: cast to restricted __be16 drivers/memstick/core/mspro_block.c:367:4: warning: cast to restricted __be16 drivers/memstick/core/mspro_block.c:369:4: warning: cast to restricted __be16 drivers/memstick/core/mspro_block.c:371:4: warning: cast to restricted __be16 drivers/memstick/core/mspro_block.c:377:4: warning: cast to restricted __be16 drivers/memstick/core/mspro_block.c:478:4: warning: cast to restricted __be16 drivers/memstick/core/mspro_block.c:480:4: warning: cast to restricted __be16 drivers/memstick/core/mspro_block.c:482:4: warning: cast to restricted __be16 drivers/memstick/core/mspro_block.c:484:4: warning: cast to restricted __be16 drivers/memstick/core/mspro_block.c:486:4: warning: cast to restricted __be16 drivers/memstick/core/mspro_block.c:689:22: expected unsigned int [unsigned] [assigned] data_address drivers/memstick/core/mspro_block.c:689:22: got restricted __be32 [usertype] drivers/memstick/core/mspro_block.c:697:3: warning: cast to restricted __be32 drivers/memstick/core/mspro_block.c:960:17: warning: incorrect type in initializer (different base types) drivers/memstick/core/mspro_block.c:960:17: expected unsigned short [unsigned] data_count drivers/memstick/core/mspro_block.c:960:17: got restricted __be16 [usertype] drivers/memstick/core/mspro_block.c:993:6: warning: cast to restricted __be16 drivers/memstick/core/mspro_block.c:995:28: warning: cast to restricted __be16 Signed-off-by: Harvey Harrison Cc: Alex Dubov Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit fe8e4e039dc3680681bf51af097af391f87038f8 Author: Larry Finger Date: Fri Jan 9 16:40:54 2009 -0800 hp-wmi: handle rfkill_register() failure Compilation of the HP WMI hotkeys code results in the following: CC [M] drivers/platform/x86/hp-wmi.o drivers/platform/x86/hp-wmi.c: In function hp_wmi_bios_setup: drivers/platform/x86/hp-wmi.c:431: warning: ignoring return value of rfkill_register, declared with attribute warn_unused_result drivers/platform/x86/hp-wmi.c:441: warning: ignoring return value of rfkill_register, declared with attribute warn_unused_result drivers/platform/x86/hp-wmi.c:450: warning: ignoring return value of rfkill_register, declared with attribute warn_unused_result Signed-off-by: Larry Finger Cc: Matthew Garrett Cc: Len Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 85c210edc46d602a1562aeea0fc74919349c8cf0 Author: Andi Kleen Date: Fri Jan 9 16:40:53 2009 -0800 compiler-gcc.h: add more comments to RELOC_HIDE Requested by C. Lameter Signed-off-by: Andi Kleen Cc: Christoph Lameter Cc: Andi Kleen Cc: Rusty Russell Cc: Stephen Rothwell Cc: Mike Travis Cc: Ingo Molnar Cc: Richard Henderson Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 2d96d1053d97cf0db832c4545bfb02a337043e09 Author: David Brownell Date: Fri Jan 9 16:40:52 2009 -0800 CORE_DUMP_DEFAULT_ELF_HEADERS depends on ELF_CORE Kernels that don't support ELF coredumps at all surely can't be supporting new partial-segment flavored ELF coredumps ... don't make folk answer Kconfig questions about that flavor. Signed-off-by: David Brownell Acked-by: Roland McGrath Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 9a100a4464917b5ffff3a8ce1c2758088fd9bb32 Merge: 0d34052... cdb80f6... Author: Linus Torvalds Date: Fri Jan 9 15:32:26 2009 -0800 Merge git://git.kernel.org/pub/scm/linux/kernel/git/arjan/linux-2.6-async-2 * git://git.kernel.org/pub/scm/linux/kernel/git/arjan/linux-2.6-async-2: async: make async a command line option for now partial revert of asynchronous inode delete commit 0d34052dfeba307ebc18d2f672e80e3f419714d4 Merge: f0fb2eb... 926bead... Author: Linus Torvalds Date: Fri Jan 9 15:30:54 2009 -0800 Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6 * git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6: Revert "driver core: create a private portion of struct device" Revert "driver core: move klist_children into private structure" Revert "driver core: move knode_driver into private structure" Revert "driver core: move knode_bus into private structure" commit f0fb2eb7bd76b9927f1350cfb0a3653385b82c6c Merge: 32b838b... 6230582... Author: Linus Torvalds Date: Fri Jan 9 15:30:30 2009 -0800 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6 * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6: firewire: core: fix sleep in atomic context due to driver core change commit 32b838b8cfa269d688889b3213e7ee37ee901f72 Merge: 2fb585a... ab5610b... Author: Linus Torvalds Date: Fri Jan 9 15:29:04 2009 -0800 Merge git://git.infradead.org/mtd-2.6 * git://git.infradead.org/mtd-2.6: [JFFS2] remove junk prototypes commit 2fb585a10e421b4eeae066eb99080bd7e4512079 Merge: 31aeb6c... 69f52ad... Author: Linus Torvalds Date: Fri Jan 9 15:27:39 2009 -0800 Merge branch 'for_2.6.29' of git://git.kernel.org/pub/scm/linux/kernel/git/kkeil/ISDN-2.6 * 'for_2.6.29' of git://git.kernel.org/pub/scm/linux/kernel/git/kkeil/ISDN-2.6: (28 commits) mISDN: Add HFC USB driver mISDN: Add layer1 prim MPH_INFORMATION_REQ mISDN: Fix kernel crash when doing hardware conference with more than two members mISDN: Added missing create_l1() call mISDN: Add MODULE_DEVICE_TABLE() to hfcpci mISDN: Minor cleanups mISDN: Create /sys/class/mISDN mISDN: Add missing release functions mISDN: Add different different timer settings for hfc-pci mISDN: Minor fixes mISDN: Correct busy device detection mISDN: Fix deactivation, if peer IP is removed from l1oip instance. mISDN: Add ISDN_P_TE_UP0 / ISDN_P_NT_UP0 mISDN: Fix irq detection mISDN: Add ISDN sample clock API to mISDN core mISDN: Return error on E-channel access mISDN: Add E-Channel logging features mISDN: Use protocol to detect D-channel mISDN: Fixed more indexing bugs mISDN: Make debug output a little bit more verbose ... commit 31aeb6c815549948571eec988ad9728c27d7a68d Merge: c40f6f8... fc55584... Author: Linus Torvalds Date: Fri Jan 9 15:18:49 2009 -0800 Merge git://git.kernel.org/pub/scm/linux/kernel/git/pkl/squashfs-linus * git://git.kernel.org/pub/scm/linux/kernel/git/pkl/squashfs-linus: MAINTAINERS: squashfs entry Squashfs: documentation Squashfs: initrd support Squashfs: Kconfig entry Squashfs: Makefiles Squashfs: header files Squashfs: block operations Squashfs: cache operations Squashfs: uid/gid lookup operations Squashfs: fragment block operations Squashfs: export operations Squashfs: super block operations Squashfs: symlink operations Squashfs: regular file operations Squashfs: directory readdir operations Squashfs: directory lookup operations Squashfs: inode operations commit 926beadb3dfaddccb3348a5b9e6c2a1f8290a220 Author: Greg Kroah-Hartman Date: Fri Jan 9 15:06:12 2009 -0800 Revert "driver core: create a private portion of struct device" This reverts commit 2831fe6f9cc4e16c103504ee09a47a084297c0f3. Turns out that device_initialize shouldn't fail silently. This series needs to be reworked in order to get into proper shape. Reported-by: Stefan Richter Cc: Alan Cox Cc: Kay Sievers Signed-off-by: Greg Kroah-Hartman commit e2d4077678c7ec7661003c268120582adc544897 Author: Greg Kroah-Hartman Date: Fri Jan 9 14:55:37 2009 -0800 Revert "driver core: move klist_children into private structure" This reverts commit 11c3b5c3e08f4d855cbef52883c266b9ab9df879. Turns out that device_initialize shouldn't fail silently. This series needs to be reworked in order to get into proper shape. Reported-by: Stefan Richter Cc: Alan Cox Cc: Kay Sievers Signed-off-by: Greg Kroah-Hartman commit cda5e83fdea476dce9c0a9b1152cd6ca46832cc4 Author: Greg Kroah-Hartman Date: Fri Jan 9 14:44:18 2009 -0800 Revert "driver core: move knode_driver into private structure" This reverts commit 93e746db183b3bdbbda67900f79b5835f9cb388f. Turns out that device_initialize shouldn't fail silently. This series needs to be reworked in order to get into proper shape. Reported-by: Stefan Richter Cc: Alan Cox Cc: Kay Sievers Signed-off-by: Greg Kroah-Hartman commit 4db8e282f2d1dfa43d51ce2a4817901312c9134d Author: Greg Kroah-Hartman Date: Fri Jan 9 14:32:46 2009 -0800 Revert "driver core: move knode_bus into private structure" This reverts commit b9daa99ee533578e3f88231e7a16784dcb44ec42. Turns out that device_initialize shouldn't fail silently. This series needs to be reworked in order to get into proper shape. Reported-by: Stefan Richter Cc: Alan Cox Cc: Kay Sievers Signed-off-by: Greg Kroah-Hartman commit 6230582320b721e6cf2581d048cb688dca97f504 Author: Stefan Richter Date: Fri Jan 9 20:49:37 2009 +0100 firewire: core: fix sleep in atomic context due to driver core change Due to commit 2831fe6f9cc4e16c103504ee09a47a084297c0f3, "driver core: create a private portion of struct device", device_initialize() can no longer be called from atomic contexts. We now defer it until after config ROM probing. This requires changes to the bus manager code because this may use a device before it was probed. Reported-by: Jay Fenlason Signed-off-by: Stefan Richter commit c40f6f8bbc4cbd2902671aacd587400ddca62627 Merge: 1a7d0f0... cb6ff20... Author: Linus Torvalds Date: Fri Jan 9 14:00:58 2009 -0800 Merge git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-2.6-nommu * git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-2.6-nommu: NOMMU: Support XIP on initramfs NOMMU: Teach kobjsize() about VMA regions. FLAT: Don't attempt to expand the userspace stack to fill the space allocated FDPIC: Don't attempt to expand the userspace stack to fill the space allocated NOMMU: Improve procfs output using per-MM VMAs NOMMU: Make mmap allocation page trimming behaviour configurable. NOMMU: Make VMAs per MM as for MMU-mode linux NOMMU: Delete askedalloc and realalloc variables NOMMU: Rename ARM's struct vm_region NOMMU: Fix cleanup handling in ramfs_nommu_get_umapped_area() commit 1a7d0f0bec4be078ce2cfb11538c0f4ffbbed8e5 Merge: 7d671f3... b945637... Author: Linus Torvalds Date: Fri Jan 9 13:59:25 2009 -0800 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/security-testing-2.6 * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/security-testing-2.6: CRED: Fix commit_creds() on a process that has no mm commit 7d671f3e713fc5ff18a5227a8dc16dfdb8bc0664 Merge: d7d717f... 555d61d... Author: Linus Torvalds Date: Fri Jan 9 13:56:06 2009 -0800 Merge branch 'for-linus' of git://git390.osdl.marist.edu/pub/scm/linux-2.6 * 'for-linus' of git://git390.osdl.marist.edu/pub/scm/linux-2.6: [S390] update documentation for hvc_iucv kernel parameter. [S390] hvc_iucv: Special handling of IUCV HVC devices [S390] hvc_iucv: Refactor console and device initialization [S390] hvc_iucv: Update function documentation [S390] hvc_iucv: Limit rate of outgoing IUCV messages [S390] hvc_iucv: Change IUCV term id and use one device as default [S390] Use unsigned long long for u64 on 64bit. [S390] qdio: fix broken pointer in case of CONFIG_DEBUG_FS is disabled [S390] vdso: compile fix [S390] remove code for oldselect system call [S390] types: add/fix types.h include in header files [S390] dasd: add device attribute to disable blocking on lost paths [S390] dasd: send change uevents for dasd block devices [S390] tape block: fix dependencies [S390] asm-s390/posix_types.h: drop __USE_ALL usage [S390] gettimeofday.S: removed duplicated #includes [S390] ptrace: no extern declarations for userspace commit d7d717fa889fc7a60c38497846c7618940a999d9 Merge: b64dc5a... ce70a24... Author: Linus Torvalds Date: Fri Jan 9 13:55:37 2009 -0800 Merge branch 'for-linus' of git://git.o-hand.com/linux-rpurdie-leds * 'for-linus' of git://git.o-hand.com/linux-rpurdie-leds: leds: ledtrig-timer - on deactivation hardware blinking should be disabled leds: Add suspend/resume to the core class leds: Add WM8350 LED driver leds: leds-pcs9532 - Move i2c work to a workqueque leds: leds-pca9532 - fix memory leak and properly handle errors leds: Fix wrong loop direction on removal in leds-ams-delta leds: fix Cobalt Raq LED dependency leds: Fix sparse warning in leds-ams-delta leds: Fixup kdoc comment to match parameter names leds: Make header variable naming consistent leds: eds-pca9532: mark pca9532_event() static leds: ALIX.2 LEDs driver commit b64dc5a4842c3420d7a093bf5e8979c57ceb789c Merge: 73d5931... d00ba72... Author: Linus Torvalds Date: Fri Jan 9 13:55:13 2009 -0800 Merge branch 'for-linus' of git://git.o-hand.com/linux-rpurdie-backlight * 'for-linus' of git://git.o-hand.com/linux-rpurdie-backlight: backlight: Rename the corgi backlight driver to generic backlight: add support for Toppoly TDO35S series to tdo24m lcd driver backlight: Add suspend/resume support to the backlight core bd->props.brightness doesn't reflect the actual backlight level. backlight: Support VGA/QVGA mode switching in tosa_lcd backlight: Catch invalid input in sysfs attributes backlight: Value of ILI9320_RGB_IF2 register should not be hardcoded backlight: crbllcd_bl - Use platform_device_register_simple() backlight: progear_bl - Use platform_device_register_simple() backlight: hp680_bl - Use platform_device_register_simple() commit 69f52adb2d534afc41fcc658f155e01f0b322f9e Author: Karsten Keil Date: Fri Jan 9 16:20:51 2009 +0100 mISDN: Add HFC USB driver Enable support for USB ISDN TAs with Cologne Chip AG's HFC-S USB ISDN Controller. Signed-off-by: Martin Bachem Signed-off-by: Karsten Keil commit 3f75e84a6a697c5cffb78ee15e79498a35473e05 Author: Martin Bachem Date: Tue Nov 4 14:11:22 2008 +0100 mISDN: Add layer1 prim MPH_INFORMATION_REQ MPH_INFORMATION provides full D- and B-Channel status overview - new layer1 primitive: MPF_INFORMATON_REQ - layer1 replies with MPH_INFORMATION_IND containing - dch->[state,Flags,nrbchan] - bch[]->[protocol,Flags] - hardware driver should send MPH_INFORMATION_IND on all ph state changes and BChannel state changes to MISDN_ID_ANY Signed-off-by: Martin Bachem Signed-off-by: Karsten Keil commit c6a2e587e5b28177eabfc2db4d5abd25b87604f2 Author: Andreas Eversberg Date: Sun Dec 28 16:31:26 2008 +0100 mISDN: Fix kernel crash when doing hardware conference with more than two members Fix kernel crash when doing hardware conference with more than two members. Removed DTMF threshold notice when debugging is disabled. Signed-off-by: Andreas Eversberg Signed-off-by: Karsten Keil commit c3b3cdeba5a671ce5d0064c52c8a85f5b1e72e92 Author: Andreas Eversberg Date: Sun Nov 9 10:23:19 2008 +0100 mISDN: Added missing create_l1() call create_l1() was missed when changing mode to TE. Signed-off-by: Andreas Eversberg Signed-off-by: Karsten Keil commit e314f89a62c1d74380455690325b1336ea0dca9d Author: Matthias Urlichs Date: Thu Oct 16 13:58:54 2008 +0200 mISDN: Add MODULE_DEVICE_TABLE() to hfcpci Add missed table. Signed-off-by: Matthias Urlichs Signed-off-by: Karsten Keil commit 400fd9783e7374bdf73b9cee9d7b90e35e3007da Author: Andreas Eversberg Date: Sat Oct 11 08:13:29 2008 +0200 mISDN: Minor cleanups Signed-off-by: Andreas Eversberg Signed-off-by: Karsten Keil commit b36b654a7e82308cea063cdf909a7f246105c2a3 Author: Matthias Urlichs Date: Sat Aug 16 00:09:24 2008 +0200 mISDN: Create /sys/class/mISDN Create /sys/class/mISDN and implement functions to handle device renames. Signed-Off-By: Matthias Urlichs Signed-off-by: Karsten Keil commit 808a14a1583ca3790bf0a9c20c7d4cbac212c775 Author: Andreas Eversberg Date: Sun Sep 28 15:40:15 2008 +0200 mISDN: Add missing release functions Add missing release function of ec-devices. Each device require a relase function now. All destruction (memory and list entry) must be done within the given release function of device, rather than after unregistering device. Signed-off-by: Andreas Eversberg Signed-off-by: Karsten Keil commit 87c5fa1bb42624254a2013cbbc3b170d6017f5d6 Author: Andreas Eversberg Date: Sun Sep 28 13:01:01 2008 +0200 mISDN: Add different different timer settings for hfc-pci - Poll-timer can now be set from 8 to 256 samples, depending on your kernel. - If default or 128 is used, the normal controller's clock is used as before. Usage: modprobe hfcpci poll=XXX - Added some debug code for dsp buffer size. (CMX_DELAY_DEBUG) Signed-off-by: Andreas Eversberg Signed-off-by: Karsten Keil commit 1b36c78f26bfa74c1782be98acb827afa95c3b0c Author: Andreas Eversberg Date: Sat Sep 20 13:43:28 2008 +0200 mISDN: Minor fixes minor typo fix compiler warning fix Signed-off-by: Andreas Eversberg Signed-off-by: Karsten Keil commit 9a812553bdc097a566aa79df7fae3457449c555b Author: Andreas Eversberg Date: Sun Sep 14 14:42:18 2008 +0200 mISDN: Correct busy device detection Correct busy device detection. This fix belongs to last commit. Signed-off-by: Andreas Eversberg Signed-off-by: Karsten Keil commit 1b4d33121f1d991f6ae226cc3333428ff87627bb Author: Andreas Eversberg Date: Sun Sep 14 12:30:18 2008 +0200 mISDN: Fix deactivation, if peer IP is removed from l1oip instance. Added GETPEER operation. Socket now checks if device is already busy at a differen mode. Signed-off-by: Andreas Eversberg Signed-off-by: Karsten Keil commit 02282eee56b75a35e6bbc42cc34c9005eb1653f4 Author: Martin Bachem Date: Mon Sep 8 15:57:48 2008 +0200 mISDN: Add ISDN_P_TE_UP0 / ISDN_P_NT_UP0 - new layer1 protocols for UP0 bus - helper #defines to test for TE/NT/S0/E1/UP0 Signed-off-by: Martin Bachem Signed-off-by: Karsten Keil commit 9e6115f2f5a9f8568bc8565d1401086952f09736 Author: Andreas Eversberg Date: Sat Sep 6 09:11:03 2008 +0200 mISDN: Fix irq detection Fix false irq detection on disabled irqs. Signed-off-by: Andreas Eversberg Signed-off-by: Karsten Keil commit 3bd69ad197a4a3d0085a5dc3b5796111bf176b12 Author: Andreas Eversberg Date: Sat Sep 6 09:03:46 2008 +0200 mISDN: Add ISDN sample clock API to mISDN core Add ISDN sample clock API to mISDN core (new file clock.c) hfcmulti and mISDNdsp use clock API. Signed-off-by: Andreas Eversberg Signed-off-by: Karsten Keil commit 55a6af9749d6a31e087f304f2ea39db3bb7b3f3e Author: Martin Bachem Date: Thu Sep 4 12:42:39 2008 +0200 mISDN: Return error on E-channel access Return error on D-channel access with E-channel data requested Signed-off-by: Martin Bachem Signed-off-by: Karsten Keil commit 1f28fa19d34c0d9186f274e61e4b3dcfc6428c5c Author: Martin Bachem Date: Wed Sep 3 15:17:45 2008 +0200 mISDN: Add E-Channel logging features New prim PH_DATA_E_IND. - all E-ch frames are indicated by recv_Echannel(), which pushes E-Channel frames into dch's rqueue - if dchannel is opened with channel nr 0, no E-Channel logging is requested - if dchannel is opened with channel nr 1, E-Channel logging is requested. if layer1 does not support that, -EINVAL in return is appropriate Signed-off-by: Martin Bachem Signed-off-by: Karsten Keil commit a9b61830cd88a1d3d5e6d61adb737a3e20f7f0f5 Author: Martin Bachem Date: Wed Sep 3 18:08:30 2008 +0200 mISDN: Use protocol to detect D-channel Use protocol to detect D-channel not the channel number 0 Signed-off-by: Martin Bachem Signed-off-by: Karsten Keil commit 83a8a55b1deb07ac1ce546a8f230a8ef8f3c5ce5 Author: Andreas Eversberg Date: Sat Aug 30 06:50:34 2008 +0200 mISDN: Fixed more indexing bugs Fix more indexing bugs when checking free timeslots. Signed-off-by: Andreas Eversberg Signed-off-by: Karsten Keil commit 0aafe75d5c9227f209c180012d799a9e19d7ee79 Author: Peter Schlaile Date: Mon Aug 25 17:55:53 2008 +0200 mISDN: Make debug output a little bit more verbose Add usefull info to debug output. Signed-off-by: Peter Schlaile Signed-off-by: Karsten Keil commit e4cce225f05c1daf89d10565c654f4c11907a049 Author: Peter Schlaile Date: Fri Aug 22 19:44:21 2008 +0200 mISDN: Fix HDLC DSP transmit Fix HDLC DSP transmit (DL_DATA frames were bounced back upwards instead of being sent down as PH_DATA frames) Thanks to Andreas Eversberg for the fix! Signed-off-by: Andreas Eversberg Signed-off-by: Peter Schlaile Signed-off-by: Karsten Keil commit 837468d135dcc49cdabc9fa92fc9550479f60704 Author: Matthias Urlichs Date: Sat Aug 16 00:04:33 2008 +0200 mISDN: Use struct device name field struct device already has a 'name' member, use it. Signed-off-by: Matthias Urlichs Signed-off-by: Karsten Keil commit 8b6015f736125050722dbe59c4f943e78cd626f0 Author: Matthias Urlichs Date: Tue Aug 12 10:12:09 2008 +0200 mISDN: Added an ioctl to change the device name To get persistent device names with hotplug we need to rename devices sometime. Signed-off-by: Matthias Urlichs Signed-off-by: Karsten Keil commit 9776ef0829ed33e8f36d9e7d859d00cc91c54ffd Author: Matthias Urlichs Date: Mon Aug 11 14:43:33 2008 +0200 mISDN: Remove the local max-card limit This is not needed. Signed-off-by: Matthias Urlichs Signed-off-by: Karsten Keil commit 11618496d03d9e1ad70ac68afbfa7df9b5fc19d1 Author: Andreas Eversberg Date: Wed Aug 6 19:13:07 2008 +0200 mISDN: Fix queue limit counting problem If received frames are not handled in time, purge them. Signed-off-by: Andreas Eversberg Signed-off-by: Karsten Keil commit 190f71d9d8516fea4db01ba86ddfad5738a92703 Author: Andreas Eversberg Date: Sun Aug 3 10:36:53 2008 +0200 mISDN: Add some debug option for clock problems Add a new debug bit for clock problems. Signed-off-by: Andreas Eversberg Signed-off-by: Karsten Keil commit 8dd2f36f317569665e454268a2677cfba3e848f1 Author: Andreas Eversberg Date: Sat Aug 2 22:51:52 2008 +0200 mISDN: Add feature via MISDN_CTRL_FILL_EMPTY to fill fifo if empty This prevents underrun of fifo when filled and in case of an underrun it prevents subsequent underruns due to jitter. Improve dsp, so buffers are kept filled with a certain delay, so moderate jitter will not cause underrun all the time -> the audio quality is highly improved. tones are not interrupted by gaps anymore, except when CPU is stalling or in high load. Signed-off-by: Andreas Eversberg Signed-off-by: Karsten Keil commit 69e656cc16511719a89d83373c48172d3f39bc5f Author: Karsten Keil Date: Wed Jan 7 00:00:59 2009 +0100 mISDN: Cleanup hfc multiport driver Remove references to external zaptel modules and some cosmetic cleanups. Signed-off-by: Karsten Keil commit cdb80f630be5cbc23d82331f24dc4704f75b64f4 Author: Arjan van de Ven Date: Fri Jan 9 13:23:45 2009 -0800 async: make async a command line option for now ... and have it default off. This does allow people to work with it for testing. Signed-off-by: Arjan van de Ven commit b32714ba29358a688ef337d5297bf4bdc9f596dc Author: Arjan van de Ven Date: Fri Jan 9 07:04:15 2009 -0800 partial revert of asynchronous inode delete let the core of this one bake in -next as well, but leave some of the infrastructure in place. Signed-off-by: Arjan van de Ven commit ab5610b434645518aca6e4de5ad851f9fef006f3 Author: Artem Bityutskiy Date: Thu Jan 8 19:38:07 2009 +0200 [JFFS2] remove junk prototypes 'rb_prev()', 'rb_next()' and 'rb_replace_node()' are declared in include/linux/rbtree.h, no need for JFFS2 to re-declare them. I believe these are left-overs from the old days when the common RB tree code did not have those call and JFFS2 had private implementation. Signed-off-by: Artem Bityutskiy Signed-off-by: David Woodhouse commit 73d59314e6ed268d6f322ae1bdd723b23fa5a4ed Merge: 6ddaab2... e293e97... Author: Linus Torvalds Date: Fri Jan 9 13:01:38 2009 -0800 Merge git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable * git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable: (864 commits) Btrfs: explicitly mark the tree log root for writeback Btrfs: Drop the hardware crc32c asm code Btrfs: Add Documentation/filesystem/btrfs.txt, remove old COPYING Btrfs: kmap_atomic(KM_USER0) is safe for btrfs_readpage_end_io_hook Btrfs: Don't use kmap_atomic(..., KM_IRQ0) during checksum verifies Btrfs: tree logging checksum fixes Btrfs: don't change file extent's ram_bytes in btrfs_drop_extents Btrfs: Use btrfs_join_transaction to avoid deadlocks during snapshot creation Btrfs: drop remaining LINUX_KERNEL_VERSION checks and compat code Btrfs: drop EXPORT symbols from extent_io.c Btrfs: Fix checkpatch.pl warnings Btrfs: Fix free block discard calls down to the block layer Btrfs: avoid orphan inode caused by log replay Btrfs: avoid potential super block corruption Btrfs: do not call kfree if kmalloc failed in btrfs_sysfs_add_super Btrfs: fix a memory leak in btrfs_get_sb Btrfs: Fix typo in clear_state_cb Btrfs: Fix memset length in btrfs_file_write Btrfs: update directory's size when creating subvol/snapshot Btrfs: add permission checks to the ioctls ... commit 6ddaab20c32af03d68de00e7c97ae8d9820e4dab Merge: c4295fb... 54b0d12... Author: Linus Torvalds Date: Fri Jan 9 12:57:34 2009 -0800 Merge branch 'for-2.6.29' of git://git.kernel.dk/linux-2.6-block * 'for-2.6.29' of git://git.kernel.dk/linux-2.6-block: block: fix bug in ptbl lookup cache commit c4295fbb6048d85f0b41c5ced5cbf63f6811c46c Author: Linus Torvalds Date: Fri Jan 9 12:49:50 2009 -0800 x86: make 'constant_test_bit()' take an unsigned bit number Ingo noticed that using signed arithmetic seems to confuse the gcc inliner, and make it potentially decide that it's all too complicated. (Yeah, yeah, it's a constant. It's always positive. Still..) Based-on: Ingo Molnar Signed-off-by: Linus Torvalds commit e245b80c8357bf375f15c5f3b05ef8ae35e4fbc8 Author: Harvey Harrison Date: Fri Jan 9 12:42:54 2009 -0800 parisc: introduce asm/swab.h Fix for the linux/byteorder.h removal. Signed-off-by: Harvey Harrison Signed-off-by: Linus Torvalds commit 8659c406ade32f47da2c95889094801921d6330a Author: Andi Kleen Date: Fri Jan 9 12:17:39 2009 -0800 x86: only scan the root bus in early PCI quirks We found a situation on Linus' machine that the Nvidia timer quirk hit on a Intel chipset system. The problem is that the system has a fancy Nvidia card with an own PCI bridge, and the early-quirks code looking for any NVidia bridge triggered on it incorrectly. This didn't lead a boot failure by luck, but the timer routing code selecting the wrong timer first and some ugly messages. It might lead to real problems on other systems. I checked all the devices which are currently checked for by early_quirks and it turns out they are all located in the root bus zero. So change the early-quirks loop to only scan bus 0. This incidently also saves quite some unnecessary scanning work, because early_quirks doesn't go through all the non root busses. The graphics card is not on bus 0, so it is not matched anymore. Signed-off-by: Andi Kleen Cc: Ingo Molnar Cc: Thomas Gleixner Cc: "H. Peter Anvin" Cc: Jesse Barnes Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 54b0d127696aba2ef1ec5430301c968ab539fa0d Author: Neil Brown Date: Wed Jan 7 08:55:39 2009 +0100 block: fix bug in ptbl lookup cache Neil writes: Hi Jens, I've found a little bug for you. It was introduced by a6f23657d3072bde6844055bbc2290e497f33fbc block: add one-hit cache for disk partition lookup and has the effect of killing my machine whenever I try to assemble an md array :-( One of the devices in the array has partitions, and mdadm always deletes partitions before putting a whole-device in an array (as it can cause confusion). The next IO to that device locks the machine. I don't really understand exactly why it locks up, but it happens in disk_map_sector_rcu(). This patch fixes it. Which is due to a missing clear of the (now) stale partition lookup data. So clear that when we delete a partition. Signed-off-by: Jens Axboe commit 4ce5f24193cef2e26f182ce708e94ba1f5fafc0c Merge: 7c51d57... a076aa4... Author: Linus Torvalds Date: Fri Jan 9 12:43:06 2009 -0800 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rric/oprofile * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rric/oprofile: (31 commits) powerpc/oprofile: fix whitespaces in op_model_cell.c powerpc/oprofile: IBM CELL: add SPU event profiling support powerpc/oprofile: fix cell/pr_util.h powerpc/oprofile: IBM CELL: cleanup and restructuring oprofile: make new cpu buffer functions part of the api oprofile: remove #ifdef CONFIG_OPROFILE_IBS in non-ibs code ring_buffer: fix ring_buffer_event_length() oprofile: use new data sample format for ibs oprofile: add op_cpu_buffer_get_data() oprofile: add op_cpu_buffer_add_data() oprofile: rework implementation of cpu buffer events oprofile: modify op_cpu_buffer_read_entry() oprofile: add op_cpu_buffer_write_reserve() oprofile: rename variables in add_ibs_begin() oprofile: rename add_sample() in cpu_buffer.c oprofile: rename variable ibs_allowed to has_ibs in op_model_amd.c oprofile: making add_sample_entry() inline oprofile: remove backtrace code for ibs oprofile: remove unused ibs macro oprofile: remove unused components in struct oprofile_cpu_buffer ... commit 7c51d57e9d7fbce89f79c41dc8da383101dbe9c6 Merge: a3a798c... 85795da... Author: Linus Torvalds Date: Fri Jan 9 12:36:45 2009 -0800 Merge git://git.infradead.org/mtd-2.6 * git://git.infradead.org/mtd-2.6: (67 commits) [MTD] [MAPS] Fix printk format warning in nettel.c [MTD] [NAND] add cmdline parsing (mtdparts=) support to cafe_nand [MTD] CFI: remove major/minor version check for command set 0x0002 [MTD] [NAND] ndfc driver [MTD] [TESTS] Fix some size_t printk format warnings [MTD] LPDDR Makefile and KConfig [MTD] LPDDR extended physmap driver to support LPDDR flash [MTD] LPDDR added new pfow_base parameter [MTD] LPDDR Command set driver [MTD] LPDDR PFOW definition [MTD] LPDDR QINFO records definitions [MTD] LPDDR qinfo probing. [MTD] [NAND] pxa3xx: convert from ns to clock ticks more accurately [MTD] [NAND] pxa3xx: fix non-page-aligned reads [MTD] [NAND] fix nandsim sched.h references [MTD] [NAND] alauda: use USB API functions rather than constants [MTD] struct device - replace bus_id with dev_name(), dev_set_name() [MTD] fix m25p80 64-bit divisions [MTD] fix dataflash 64-bit divisions [MTD] [NAND] Set the fsl elbc ECCM according the settings in bootloader. ... Fixed up trivial debug conflicts in drivers/mtd/devices/{m25p80.c,mtd_dataflash.c} commit a3a798c88a14b35e5d4ca30716dbc9eb9a1ddfe2 Merge: efcb3cf... d97c0de... Author: Linus Torvalds Date: Fri Jan 9 11:55:14 2009 -0800 Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6 * 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6: (94 commits) ACPICA: hide private headers ACPICA: create acpica/ directory ACPI: fix build warning ACPI : Use RSDT instead of XSDT by adding boot option of "acpi=rsdt" ACPI: Avoid array address overflow when _CST MWAIT hint bits are set fujitsu-laptop: Simplify SBLL/SBL2 backlight handling fujitsu-laptop: Add BL power, LED control and radio state information ACPICA: delete utcache.c ACPICA: delete acdisasm.h ACPICA: Update version to 20081204. ACPICA: FADT: Update error msgs for consistency ACPICA: FADT: set acpi_gbl_use_default_register_widths to TRUE by default ACPICA: FADT parsing changes and fixes ACPICA: Add ACPI_MUTEX_TYPE configuration option ACPICA: Fixes for various ACPI data tables ACPICA: Restructure includes into public/private ACPI: remove private acpica headers from driver files ACPI: reboot.c: use new acpi_reset interface ACPICA: New: acpi_reset interface - write to reset register ACPICA: Move all public H/W interfaces to new hwxface ... commit efcb3cf7f00c3c424db012380a8a974c2676a3c8 Author: Tejun Heo Date: Fri Jan 9 19:19:14 2009 +0900 libata: use WARN_ON_ONCE on hot paths Convert WARN_ON() on command issue/completion paths to WARN_ON_ONCE() so that libata doesn't spam the machine even when one of those conditions triggers repeatedly. Signed-off-by: Tejun Heo Signed-off-by: Linus Torvalds commit 43529c97122f2c851126447963eedcb8cba74fbe Author: David Howells Date: Fri Jan 9 16:13:46 2009 +0000 CRED: Must initialise the new creds in prepare_kernel_cred() The newly allocated creds in prepare_kernel_cred() must be initialised before get_uid() and get_group_info() can access them. They should be copied from the old credentials. Reported-by: Steve Dickson Signed-off-by: David Howells Acked-by: Steve Dickson Signed-off-by: Linus Torvalds commit 0de336814107358bc8c4173bf9ce2d42445173fe Author: David Howells Date: Fri Jan 9 16:13:41 2009 +0000 CRED: Missing put_cred() in prepare_kernel_cred() Missing put_cred() in the error handling path of prepare_kernel_cred(). Signed-off-by: David Howells Acked-by: Steve Dickson Signed-off-by: Linus Torvalds commit 29a41e9e029d21c306e3ad6e723700348b04706a Merge: d9e8a3a... ae16489... Author: Linus Torvalds Date: Fri Jan 9 11:53:07 2009 -0800 Merge git://git.kernel.org/pub/scm/linux/kernel/git/kyle/parisc-2.6 * git://git.kernel.org/pub/scm/linux/kernel/git/kyle/parisc-2.6: parisc: export length of os_hpmc vector parisc: fix kernel crash (protection id trap) when compiling ruby1.9 parisc: Use DEFINE_SPINLOCK parisc: add uevent helper for parisc bus parisc: fix ipv6 checksum parisc: quiet palo not-found message from "which" parisc: Replace NR_CPUS in parisc code parisc: trivial fixes parisc: fix braino in commit adding __space_to_prot parisc: factor out sid to protid conversion parisc: use leX_to_cpu in place of __fswabX parisc: fix GFP_KERNEL use while atomic in unwinder parisc: remove dead BIO_VMERGE_BOUNDARY and BIO_VMERGE_MAX_SIZE definitions parisc: set_time() catch errors parisc: use the new byteorder headers parisc: drivers/parisc/: make code static parisc: lib/: make code static commit d9e8a3a5b8298a3c814ed37ac5756e6f67b6be41 Merge: 2150edc... b9bdcbb... Author: Linus Torvalds Date: Fri Jan 9 11:52:14 2009 -0800 Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/djbw/async_tx * 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/djbw/async_tx: (22 commits) ioat: fix self test for multi-channel case dmaengine: bump initcall level to arch_initcall dmaengine: advertise all channels on a device to dma_filter_fn dmaengine: use idr for registering dma device numbers dmaengine: add a release for dma class devices and dependent infrastructure ioat: do not perform removal actions at shutdown iop-adma: enable module removal iop-adma: kill debug BUG_ON iop-adma: let devm do its job, don't duplicate free dmaengine: kill enum dma_state_client dmaengine: remove 'bigref' infrastructure dmaengine: kill struct dma_client and supporting infrastructure dmaengine: replace dma_async_client_register with dmaengine_get atmel-mci: convert to dma_request_channel and down-level dma_slave dmatest: convert to dma_request_channel dmaengine: introduce dma_request_channel and private channels net_dma: convert to dma_find_channel dmaengine: provide a common 'issue_pending_all' implementation dmaengine: centralize channel allocation, introduce dma_find_channel dmaengine: up-level reference counting to the module level ... commit e293e97e363e419d8a3628a927321e3f75206a0b Author: Chris Mason Date: Fri Jan 9 13:14:17 2009 -0500 Btrfs: explicitly mark the tree log root for writeback Each subvolume has an extent_state_tree used to mark metadata that needs to be sent to disk while syncing the tree. This is used in addition to the dirty bits on the pages themselves so that a single subvolume can be sent to disk efficiently in disk order. Normally this marking happens in btrfs_alloc_free_block, which also does special recording of dirty tree blocks for the tree log roots. Yan Zheng noticed that when the root of the log tree is allocated, it is added to the wrong writeback list. The fix used here is to explicitly set it dirty as part of tree log creation. Signed-off-by: Chris Mason commit 85795dac740e63e81aeec8d49aada54ab07656b5 Author: David Woodhouse Date: Fri Jan 9 14:17:50 2009 +0000 [MTD] [MAPS] Fix printk format warning in nettel.c MTD size is 64-bit now... Pointed out by Randy Dunlap Signed-off-by: David Woodhouse commit 68874414def891ec1319ae19a1c7e9c00854d872 Author: Philip Rakity Date: Wed Oct 8 16:08:20 2008 -0700 [MTD] [NAND] add cmdline parsing (mtdparts=) support to cafe_nand [dwmw2: updated and made to still register whole device first] Signed-off-by: Philip Rakity Signed-off-by: David Woodhouse commit fefae48bf8caab7d56ee4f8181f06602cf73d29e Author: Wolfgang Grandegger Date: Thu Jan 8 19:21:27 2009 +0100 [MTD] CFI: remove major/minor version check for command set 0x0002 The NOR Flash memory K8P2815UQB from Samsung uses the major version number '0'. Add a quirk to cope with it. Signed-off-by: Wolfgang Grandegger Signed-off-by: David Woodhouse commit 555d61d6542d51563e50532ff604dcd31c96fb24 Author: Hendrik Brueckner Date: Fri Jan 9 12:15:02 2009 +0100 [S390] update documentation for hvc_iucv kernel parameter. Signed-off-by: Hendrik Brueckner Signed-off-by: Martin Schwidefsky commit 6c089fd3502c4655ad7dd9b0f83ab9cb98c98ba3 Author: Hendrik Brueckner Date: Fri Jan 9 12:15:01 2009 +0100 [S390] hvc_iucv: Special handling of IUCV HVC devices This patch introduces special handling of the IUCV HVC console device. If the first IUCV HVC terminal is used as (preferred) Linux console, and needs some special handling for hangup. The hvc_iucv_private structure contains a flag to indicate whether a IUCV HVC device is used as a console. A terminal acting as "console" behaves different if a tty hangup occurs: If the iucv communication path is severed, a tty hangup is not triggered (because the HVC layer does not notify its back-end in that case). Instead, the console session is left unchanged and the IUCV HVC device is reset to allow re-connects. Note: Any output between the disconnect and a re-connect is discarded. Signed-off-by: Hendrik Brueckner Signed-off-by: Martin Schwidefsky commit 68c6b3d2c6e49671f6974c9c5ea31c5f190cc8a5 Author: Hendrik Brueckner Date: Fri Jan 9 12:15:00 2009 +0100 [S390] hvc_iucv: Refactor console and device initialization The console_initcall() order might pick up the hvc_iucv device as preferred console even if it is not yet initialized. Move HVC console instantiation to hvc_iucv_init() and cleanup device driver initialization. Signed-off-by: Hendrik Brueckner Signed-off-by: Martin Schwidefsky commit 17e19f04ac73df05854ba2e7e945d51c494a3011 Author: Hendrik Brueckner Date: Fri Jan 9 12:14:59 2009 +0100 [S390] hvc_iucv: Update function documentation Update documentation of functions. Signed-off-by: Hendrik Brueckner Signed-off-by: Martin Schwidefsky commit c45ce4b5774498ae919f6219c751e824a7196e2b Author: Hendrik Brueckner Date: Fri Jan 9 12:14:58 2009 +0100 [S390] hvc_iucv: Limit rate of outgoing IUCV messages This patch introduces a send buffer to limit outgoing IUCV messages up to a maximum of 25 IUCV messages per second. If no communication path to a IUCV HVC terminal exist, any data written to the terminal is discarded. Signed-off-by: Hendrik Brueckner Signed-off-by: Martin Schwidefsky commit 2dc184c0ba5c8661649ed2ca0b9e97ed49860cb5 Author: Hendrik Brueckner Date: Fri Jan 9 12:14:57 2009 +0100 [S390] hvc_iucv: Change IUCV term id and use one device as default The patch renames the IUCV application ID from "ihvc" to "lnxhvc". The device driver allocates one IUCV terminal device (lnxhvc0) as default. Signed-off-by: Hendrik Brueckner Signed-off-by: Martin Schwidefsky commit 33e1911566183ac32baac35163c0962302e40f5f Author: Heiko Carstens Date: Fri Jan 9 12:14:56 2009 +0100 [S390] Use unsigned long long for u64 on 64bit. As requested by Andrew. Same as what sparc did. Signed-off-by: Heiko Carstens Signed-off-by: Martin Schwidefsky commit 19cdd08ba155dd87ebb87bb39ed097dbee671e0e Author: Jan Glauber Date: Fri Jan 9 12:14:55 2009 +0100 [S390] qdio: fix broken pointer in case of CONFIG_DEBUG_FS is disabled If CONFIG_DEBUG_FS is disabled debugfs_create_file returns -ENODEV instead of zero. Since the return value is stored and used at shutdown to remove existing entries an OOPS may be triggered. Add a check of the debugfs_create_file return value and in case of an error set the entry to NULL so it will be ignored at shutdown. Signed-off-by: Jan Glauber Signed-off-by: Martin Schwidefsky commit 81ffa0415b7ac9215c2030e2b15b8efff46605a0 Author: Heiko Carstens Date: Fri Jan 9 12:14:54 2009 +0100 [S390] vdso: compile fix !CONFIG_SMP: arch/s390/kernel/vdso.c: In function 'vdso_init': arch/s390/kernel/vdso.c:325: error: incompatible type for argument 2 of 'vdso_alloc_per_cpu' Also move the code out of the BUG_ON statement since it won't be executed on !CONFIG_BUG. And that would be a bug. Signed-off-by: Heiko Carstens Signed-off-by: Martin Schwidefsky commit f47d52afd3bc310a010a037f3cd69d75d163e845 Author: Heiko Carstens Date: Fri Jan 9 12:14:53 2009 +0100 [S390] remove code for oldselect system call The system call isn't wired up on s390. Just delete the dead code. Also we use the common code sys_ptrace system call, so the sys_ptrace declaration is pointless is well. Signed-off-by: Heiko Carstens Signed-off-by: Martin Schwidefsky commit 0680ba0133ffeac4bd3689668b05ea2d16f14ae0 Author: Heiko Carstens Date: Fri Jan 9 12:14:52 2009 +0100 [S390] types: add/fix types.h include in header files /include/asm/chpid.h:12: include of is preferred over /include/asm/chsc.h:15: found __[us]{8,16,32,64} type without #include /include/asm/cmb.h:28: found __[us]{8,16,32,64} type without #include /include/asm/dasd.h:195: found __[us]{8,16,32,64} type without #include /include/asm/kvm.h:16: include of is preferred over /include/asm/kvm.h:30: found __[us]{8,16,32,64} type without #include /include/asm/qeth.h:24: found __[us]{8,16,32,64} type without #include /include/asm/schid.h:5: found __[us]{8,16,32,64} type without #include /include/asm/swab.h:12: include of is preferred over /include/asm/swab.h:19: found __[us]{8,16,32,64} type without #include Signed-off-by: Heiko Carstens Signed-off-by: Martin Schwidefsky commit 13de227bcd80fbdaeebe1f31154487dddb7d5b1e Author: Holger Smolinski Date: Fri Jan 9 12:14:51 2009 +0100 [S390] dasd: add device attribute to disable blocking on lost paths When the connection between host and storage server is lost, the dasd device driver usually blocks all I/O on affected devices and waits for them to reappear. In some setups however it would be better if the I/O is returned as error so that device can be recovered by some other means, eg. in a raid or multipath setup. Signed-off-by: Holger Smolinski Signed-off-by: Stefan Weinhuber Signed-off-by: Martin Schwidefsky commit 1301809bcee33c2153605b4387c57fab75f9800a Author: Stefan Weinhuber Date: Fri Jan 9 12:14:50 2009 +0100 [S390] dasd: send change uevents for dasd block devices When a DASD device enters or leaves the 'online' state we need to trigger change events for the respective disk and partitions. These extra events are needed because when disk and partitions are first added, udev rules that try to read disk labels or other data may fail as the disk may not yet be ready. Signed-off-by: Stefan Weinhuber Signed-off-by: Martin Schwidefsky commit d41bf2f61d564b64aacdb58a911f99d4b413d492 Author: Kamalesh Babulal Date: Fri Jan 9 12:14:49 2009 +0100 [S390] tape block: fix dependencies CC drivers/s390/char/tape_block.o In file included from drivers/s390/char/tape_block.c:24: drivers/s390/char/tape.h:159: warning: 'struct request' declared inside parameter list Adding the dependency of CONFIG_BLOCK to CONFIG_S390_TAPE_BLOCK. Signed-off-by: Kamalesh Babulal Signed-off-by: Martin Schwidefsky commit dbb397d859b5436cfbbcb56915c4aaafe219b93f Author: Mike Frysinger Date: Fri Jan 9 12:14:48 2009 +0100 [S390] asm-s390/posix_types.h: drop __USE_ALL usage Bring s390 in line with all the other ports. Not sure how s390 missed this change as all the other arches were being updated ... CC: Heiko Carstens CC: linux390@de.ibm.com CC: linux-s390@vger.kernel.org Signed-off-by: Mike Frysinger Signed-off-by: Martin Schwidefsky commit 2020238b2bb20685e03351426562f8288419ce14 Author: Huang Weiyi Date: Fri Jan 9 12:14:47 2009 +0100 [S390] gettimeofday.S: removed duplicated #includes Removed duplicated #include's in arch/s390/kernel/vdso32/gettimeofday.S Signed-off-by: Huang Weiyi Signed-off-by: Martin Schwidefsky commit 16de0582bbfdd6cc57a0db807a56b7d4ec2a4150 Author: Heiko Carstens Date: Fri Jan 9 12:14:46 2009 +0100 [S390] ptrace: no extern declarations for userspace /include/asm/ptrace.h:275: extern's make no sense in userspace /include/asm/ptrace.h:279: extern's make no sense in userspace /include/asm/ptrace.h:280: extern's make no sense in userspace Signed-off-by: Heiko Carstens Signed-off-by: Martin Schwidefsky commit d97c0defba25a959a990f6d4759f43075540832e Merge: ec9f168... b4f9fe1... Author: Len Brown Date: Fri Jan 9 04:01:26 2009 -0500 Merge branch 'drivers-platform' into release Conflicts: drivers/misc/Kconfig Signed-off-by: Len Brown commit ec9f168fcc344d2ffec1c8c822076bf22dab5c33 Merge: b2576e1... 087da3b... Author: Len Brown Date: Fri Jan 9 03:41:08 2009 -0500 Merge branch 'simplify_PRT' into release Conflicts: drivers/acpi/pci_irq.c Note that this merge disables e1d3a90846b40ad3160bf4b648d36c6badad39ac pci, acpi: reroute PCI interrupt to legacy boot interrupt equivalent Signed-off-by: Len Brown commit b2576e1d4408e134e2188c967b1f28af39cd79d4 Merge: 3cc8a5f... 2150edc... Author: Len Brown Date: Fri Jan 9 03:39:43 2009 -0500 Merge branch 'linus' into release commit 3cc8a5f4ba91f67bbdb81a43a99281a26aab8d77 Merge: d0302bc... ada9cfd... Author: Len Brown Date: Fri Jan 9 03:38:15 2009 -0500 Merge branch 'suspend' into release commit d0302bc62af7983040ea1cd1b5dd2b36e1a6a509 Merge: 106ad8d... 237889b... Author: Len Brown Date: Fri Jan 9 03:37:48 2009 -0500 Merge branch 'misc' into release Conflicts: include/acpi/acpixf.h Signed-off-by: Len Brown commit 106ad8d6b0a7c1a597fab56ec692c39f553fabbc Merge: 33a8c92... f87a1a5... Author: Len Brown Date: Fri Jan 9 03:37:26 2009 -0500 Merge branch 'fujitsu-laptop' into release commit 33a8c927e423a205bcbbecdc43b451bad781a08e Merge: b8ef914... 8a383ef... Author: Len Brown Date: Fri Jan 9 03:37:20 2009 -0500 Merge branch 'fluff' into release commit b8ef914e58e90c3b4dba5f5bdd8ab04c45d3e008 Merge: a8e896e... 3e54048... 935e5f2... 7b37b5f... Author: Len Brown Date: Fri Jan 9 03:37:11 2009 -0500 Merge branches 'release', 'bugzilla-11880', 'bugzilla-12037' and 'bugzilla-12257' into release commit a8e896e2813316a2d3657dc07d5eef83c3b2d9f4 Merge: 39cecf2... 50b1785... Author: Len Brown Date: Fri Jan 9 03:36:59 2009 -0500 Merge branch 'battery' into release commit 39cecf2091f10c3a5052d1e58da690d20852b243 Merge: 38f64c7... d944718... Author: Len Brown Date: Fri Jan 9 03:36:53 2009 -0500 Merge branch 'asus-eeepc' into release commit 38f64c771bece2cdbd72ed733e6fc8f2e279a7c1 Merge: e2f7a77... 2602a67... Author: Len Brown Date: Fri Jan 9 03:36:32 2009 -0500 Merge branch 'alarm' into release commit e2f7a7772880458edff1b1cc5a988947229fac26 Author: Len Brown Date: Fri Jan 9 00:30:03 2009 -0500 ACPICA: hide private headers Signed-off-by: Len Brown commit 95b482a8d31116f3f5c2a5089569393234d06385 Author: Len Brown Date: Fri Jan 9 00:13:17 2009 -0500 ACPICA: create acpica/ directory also, delete sleep/ and delete ACPI_CFLAGS from Makefile Signed-off-by: Len Brown commit 2602a671ad7321a25d253c080837e4569a9bceed Author: Len Brown Date: Fri Jan 9 02:10:16 2009 -0500 ACPI: fix build warning when CONFIG_RTC_DRV_CMOS=m and thus !defined(HAVE_ACPI_LEGACY_ALARM) drivers/acpi/proc.c:85: warning: ‘cmos_bcd_read’ declared ‘static’ but never defined Signed-off-by: Len Brown commit 237889bf0a62f1399fb2ba0c2a259e6a96597131 Author: Zhao Yakui Date: Wed Dec 17 16:55:18 2008 +0800 ACPI : Use RSDT instead of XSDT by adding boot option of "acpi=rsdt" On some boxes there exist both RSDT and XSDT table. But unfortunately sometimes there exists the following error when XSDT table is used: a. 32/64X address mismatch b. The 32/64X FACS address mismatch In such case the boot option of "acpi=rsdt" is provided so that RSDT is tried instead of XSDT table when the system can't work well. http://bugzilla.kernel.org/show_bug.cgi?id=8246 Signed-off-by: Zhao Yakui cc:Thomas Renninger Signed-off-by: Len Brown commit 13b40a1a065824d2d4e55c8b48ea9f3f9d162929 Author: Zhao Yakui Date: Sun Jan 4 12:04:21 2009 +0800 ACPI: Avoid array address overflow when _CST MWAIT hint bits are set The Cx Register address obtained from the _CST object is used as the MWAIT hints if the register type is FFixedHW. And it is used to check whether the Cx type is supported or not. On some boxes the following Cx state package is obtained from _CST object: >{ ResourceTemplate () { Register (FFixedHW, 0x01, // Bit Width 0x02, // Bit Offset 0x0000000000889759, // Address 0x03, // Access Size ) }, 0x03, 0xF5, 0x015E } In such case we should use the bit[7:4] of Cx address to check whether the Cx type is supported or not. mask the MWAIT hint to avoid array address overflow Signed-off-by: Zhao Yakui Acked-by:Venki Pallipadi Signed-off-by: Len Brown commit f87a1a5f6cdaff6232fed2ef0ae0479df9e781e8 Author: Tony Vroon Date: Wed Jan 7 10:11:24 2009 +0000 fujitsu-laptop: Simplify SBLL/SBL2 backlight handling GBLS and GBLL only differ in the clearing of the GHKS flag, so there is no need to have two backlight level readouts. Also, per Peter Gruber, the need for the BLNF check has disappeared. As a result, cleanups can be made in the code. This has been tested on the both the S6410 and the S6420 platforms and causes no functionality regressions, on the console without X or within X. One module parameter to disable the hotkeys is dropped, as we only ever took one codepath anyway. Signed-off-by: Tony Vroon Tested-by: Peter Gruber Tested-By: Stephen Gildea Acked-by: Jonathan Woithe Signed-off-by: Len Brown commit 3a407086090bb4fa1908d4dc3739c9ebc8ad6686 Author: Tony Vroon Date: Wed Dec 31 18:19:59 2008 +0000 fujitsu-laptop: Add BL power, LED control and radio state information The FUNC interface in the Fujitsu-Siemens DSDT was unused until now. It exposes state information that is now reported in additional platform files (whether the radios are killed by the hardware switch or operational, whether the machine is docked and whether the lid is open). Support for the backlight class is now extended with the ability to power the backlight on & off. Optional support for the LED class allows the keyboard headlamps found on the U810 netbook and the Fujitsu logo illumination on the P8010 notebook to be turned on & off. This was fed through checkpatch.pl and tested on the S6420, P8010 & U810 platforms. Signed-off-by: Stephen Gildea Tested-by: Stephen Gildea Tested-by: Julian Brown Signed-off-by: Tony Vroon Tested-by: Peter Gruber Acked-by: Jonathan Woithe Signed-off-by: Len Brown commit 6620e0c49f577454b772fb381543d60ae53eb885 Author: Len Brown Date: Thu Jan 8 23:46:09 2009 -0500 ACPICA: delete utcache.c ACPI_USE_LOCAL_CACHE will never be defined by the Linux kernel, and thus utcache.c will always be dead code. Signed-off-by: Len Brown commit 5b929aa1ae7c64b40ab85c7b49d9f086747c85d2 Author: Len Brown Date: Thu Jan 8 23:44:17 2009 -0500 ACPICA: delete acdisasm.h it is referenced only #ifdef ACPI_DISASSEMBLER, which is never set by the kernel. Signed-off-by: Len Brown commit 2150edc6c5cf00f7adb54538b9ea2a3e9cedca3f Merge: cd76469... 4b90567... Author: Linus Torvalds Date: Thu Jan 8 17:14:59 2009 -0800 Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4 * 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4: (57 commits) jbd2: Fix oops in jbd2_journal_init_inode() on corrupted fs ext4: Remove "extents" mount option block: Add Kconfig help which notes that ext4 needs CONFIG_LBD ext4: Make printk's consistently prefixed with "EXT4-fs: " ext4: Add sanity checks for the superblock before mounting the filesystem ext4: Add mount option to set kjournald's I/O priority jbd2: Submit writes to the journal using WRITE_SYNC jbd2: Add pid and journal device name to the "kjournald2 starting" message ext4: Add markers for better debuggability ext4: Remove code to create the journal inode ext4: provide function to release metadata pages under memory pressure ext3: provide function to release metadata pages under memory pressure add releasepage hooks to block devices which can be used by file systems ext4: Fix s_dirty_blocks_counter if block allocation failed with nodelalloc ext4: Init the complete page while building buddy cache ext4: Don't allow new groups to be added during block allocation ext4: mark the blocks/inode bitmap beyond end of group as used ext4: Use new buffer_head flag to check uninit group bitmaps initialization ext4: Fix the race between read_inode_bitmap() and ext4_new_inode() ext4: code cleanup ... commit cd764695b67386a81964f68e9c66efd9f13f4d29 Merge: 97d61b8... ffda8c7... Author: Linus Torvalds Date: Thu Jan 8 16:27:31 2009 -0800 Merge git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6 * git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6: (45 commits) [SCSI] qla2xxx: Update version number to 8.03.00-k1. [SCSI] qla2xxx: Add ISP81XX support. [SCSI] qla2xxx: Use proper request/response queues with MQ instantiations. [SCSI] qla2xxx: Correct MQ-chain information retrieval during a firmware dump. [SCSI] qla2xxx: Collapse EFT/FCE copy procedures during a firmware dump. [SCSI] qla2xxx: Don't pollute kernel logs with ZIO/RIO status messages. [SCSI] qla2xxx: Don't fallback to interrupt-polling during re-initialization with MSI-X enabled. [SCSI] qla2xxx: Remove support for reading/writing HW-event-log. [SCSI] cxgb3i: add missing include [SCSI] scsi_lib: fix DID_RESET status problems [SCSI] fc transport: restore missing dev_loss_tmo callback to LLDD [SCSI] aha152x_cs: Fix regression that keeps driver from using shared interrupts [SCSI] sd: Correctly handle 6-byte commands with DIX [SCSI] sd: DIF: Fix tagging on platforms with signed char [SCSI] sd: DIF: Show app tag on error [SCSI] Fix error handling for DIF/DIX [SCSI] scsi_lib: don't decrement busy counters when inserting commands [SCSI] libsas: fix test for negative unsigned and typos [SCSI] a2091, gvp11: kill warn_unused_result warnings [SCSI] fusion: Move a dereference below a NULL test ... Fixed up trivial conflict due to moving the async part of sd_probe around in the async probes vs using dev_set_name() in naming. commit 97d61b8e3aef163a75f80f4762794c154572293d Merge: 1df2d01... 048cd58... Author: Linus Torvalds Date: Thu Jan 8 16:04:50 2009 -0800 Merge branch 'bkl-removal' of git://git.lwn.net/linux-2.6 * 'bkl-removal' of git://git.lwn.net/linux-2.6: RTC: Remove the BKL. commit 1df2d017fe9d22a49bad157b4f5aa19212f29557 Merge: 022992e... d5b5243... Author: Linus Torvalds Date: Thu Jan 8 15:52:13 2009 -0800 Merge branch 'docs-next' of git://git.lwn.net/linux-2.6 * 'docs-next' of git://git.lwn.net/linux-2.6: Fix a typo in the development process document. Document handling of bad memory Document RCU and unloadable modules commit 048cd5888f81713af4597bde5815f32d58fdf5b0 Author: David John Date: Thu Oct 23 13:55:56 2008 +0530 RTC: Remove the BKL. Remove calls to the BKL since concurrent access is protected by the spin lock rtc_lock. Signed-off-by: David John Cc: Ingo Molnar Signed-off-by: Jonathan Corbet commit d5b524327b2a482dddae3839ced8f8825074730d Author: Jonathan Corbet Date: Thu Jan 8 16:32:13 2009 -0700 Fix a typo in the development process document. Reported-by: Aníbal Monsalve Salazar Signed-off-by: Jonathan Corbet commit 022992ee59e90fef719493c09988884be157fb73 Merge: 5fbbf5f... 0ba4887... Author: Linus Torvalds Date: Thu Jan 8 14:51:11 2009 -0800 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/lrg/voltage-2.6 * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/lrg/voltage-2.6: regulator: fix kernel-doc warnings regulator: catch some registration errors regulator: Add basic DocBook manual regulator: Fix some kerneldoc rendering issues regulator: Add missing kerneldoc regulator: Clean up kerneldoc warnings regulator: Remove extraneous kerneldoc annotations regulator: init/link earlier regulator: move set_machine_constraints after regulator device initialization regulator: da903x: make da903x_is_enabled return 0 or 1 regulator: da903x: add '\n' to error messages regulator: sysfs attribute reduction (v2) regulator: code shrink (v2) regulator: improved mode error checks regulator: enable/disable refcounting regulator: struct device - replace bus_id with dev_name(), dev_set_name() commit 5fbbf5f648a9c4ef99276854f05b2255d1b004d3 Merge: ce279e6... 56cf391... Author: Linus Torvalds Date: Thu Jan 8 14:25:41 2009 -0800 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6 * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (84 commits) wimax: fix kernel-doc for debufs_dentry member of struct wimax_dev net: convert pegasus driver to net_device_ops bnx2x: Prevent eeprom set when driver is down net: switch kaweth driver to netdevops pcnet32: round off carrier watch timer i2400m/usb: wrap USB power saving in #ifdef CONFIG_PM wimax: testing for rfkill support should also test for CONFIG_RFKILL_MODULE wimax: fix kconfig interactions with rfkill and input layers wimax: fix '#ifndef CONFIG_BUG' layout to avoid warning r6040: bump release number to 0.20 r6040: warn about MAC address being unset r6040: check PHY status when bringing interface up r6040: make printks consistent with DRV_NAME gianfar: Fixup use of BUS_ID_SIZE mlx4_en: Returning real Max in get_ringparam mlx4_en: Consider inline packets on completion netdev: bfin_mac: enable bfin_mac net dev driver for BF51x qeth: convert to net_device_ops vlan: add neigh_setup dm9601: warn on invalid mac address ... commit ce279e6ec91c49f2c5f59f7492e19d39edbf8bbd Merge: 894bcdf... 97b5fe8... Author: Linus Torvalds Date: Thu Jan 8 14:25:00 2009 -0800 Merge master.kernel.org:/home/rmk/linux-2.6-arm * master.kernel.org:/home/rmk/linux-2.6-arm: (23 commits) [ARM] fix pxa930_trkball build errors [ARM] fix netx [ARM] fix pnx4008 [ARM] fix pxa [ARM] remove missed CLPS7500 defconfig [ARM] clps711x: fix warning in edb7211-mm.c [ARM] clps711x: fix warning in fortunet [ARM] fix AT91, davinci, h720x, ks8695, msm, mx2, mx3, netx, omap1, omap2, pxa, s3c [ARM] Fix realview build [ARM] 5357/1: Kirkwood: add missing ge01 tclk initialization [ARM] 5358/1: AT2440EVB: Use new include path of mci.h [ARM] 5361/1: mv78xx0: fix compilation error [ARM] 5360/1: Orion: fix compilation error [ARM] 5359/1: Kirkwood: fix compilation error [ARM] S3C64XX: Fix EINT group macro definition [ARM] Ensure CONFIG_SERIAL_SAMSUNG_UARTS is always set. [ARM] S3C24XX: Add gpio_to_irq implementation [ARM] S3C24XX: Add gpio_to_irq() facility [ARM] footbridge: dc21285.c warning fixes [ARM] footbridge: add isa_init_irq() to common header ... commit 894bcdfb1a40a7c5032242c380b956aab106e05d Merge: a419df8... 4044ba5... Author: Linus Torvalds Date: Thu Jan 8 14:03:34 2009 -0800 Merge branch 'for-linus' of git://neil.brown.name/md * 'for-linus' of git://neil.brown.name/md: md: don't retry recovery of raid1 that fails due to error on source drive. md: Allow md devices to be created by name. md: make devices disappear when they are no longer needed. md: centralise all freeing of an 'mddev' in 'md_free' md: move allocation of ->queue from mddev_find to md_probe md: need another print_sb for mdp_superblock_1 md: use list_for_each_entry macro directly md: raid0: make hash_spacing and preshift sector-based. md: raid0: Represent the size of strip zones in sectors. md: raid0 create_strip_zones(): Add KERN_INFO/KERN_ERR to printk's. md: raid0 create_strip_zones(): Make two local variables sector-based. md: raid0: Represent zone->zone_offset in sectors. md: raid0: Represent device offset in sectors. md: raid0_make_request(): Replace local variable block by sector. md: raid0_make_request(): Remove local variable chunk_size. md: raid0_make_request(): Replace chunksize_bits by chunksect_bits. md: use sysfs_notify_dirent to notify changes to md/sync_action. md: fix bitmap-on-external-file bug. commit 97b5fe8e28d78779e35ac283bacb9eceffd5b4a3 Merge: be680c7... bdbb861... Author: Russell King Date: Thu Jan 8 22:01:49 2009 +0000 Merge branch 'devel' commit a419df8a0ff01b6694cebc8885778f854165d17d Merge: 33b04b9... 0fe40ff... Author: Linus Torvalds Date: Thu Jan 8 14:01:36 2009 -0800 Merge branch 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev * 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev: libata: clean up the SFF code for coding style libata: Add 32bit PIO support [libata] ahci: Withdraw IGN_SERR_INTERNAL for SB800 SATA pata_hpt366: reimplement mode programming [libata] pata_hpt3x3: correct _freeze() function declaration libata: Add special ata_pio_need_iordy() handling for Compact Flash. pata_platform: __pata_platform_remove() shouldn't be in discard section sata_sil24: remove unused sil24_port_multiplier [libata] ahci: Add SATA GEN3 related messages ata_piix: save, use saved and restore IOCFG pata_ali: Fix and workaround for FIFO DMA bug pata_ali: force initialise a few bits pata_hpt3x3: Workarounds for chipset commit be680c716c465a173c1c783185e3d023899742fc Merge: d8f2f18... 0dc6c49... Author: Russell King Date: Thu Jan 8 22:01:34 2009 +0000 Merge branch 'next-footbridge' of git://aeryn.fluff.org.uk/bjdooks/linux commit 0fe40ff891faa940e539bd5a92c4a5dd9ae49b0b Author: Alan Cox Date: Mon Jan 5 14:16:13 2009 +0000 libata: clean up the SFF code for coding style Signed-off-by: Alan Cox Signed-off-by: Jeff Garzik commit 871af1210f13966ab911ed2166e4ab2ce775b99d Author: Alan Cox Date: Mon Jan 5 14:16:39 2009 +0000 libata: Add 32bit PIO support This matters for some controllers and in one or two cases almost doubles PIO performance. Add a bmdma32 operations set we can inherit and activate it for some controllers Signed-off-by: Alan Cox Signed-off-by: Jeff Garzik commit e427fe042cf90c0652eed9a85e57a8fd8af89890 Author: Shane Huang Date: Tue Dec 30 10:53:41 2008 +0800 [libata] ahci: Withdraw IGN_SERR_INTERNAL for SB800 SATA There is an issue in ATI SB600/SB700 SATA that PxSERR.E should not be set on some conditions, which will lead to many SATA ODD error messages. commit 55a61604cd1354e1783364e1c901034f2f474b7d is the workaround. Since SB800 fixed this HW issue, IGN_SERR_INTERNAL should be withdrawn for SB800. Signed-off-by: Shane Huang Signed-off-by: Jeff Garzik commit 4044ba58dd15cb01797c4fd034f39ef4a75f7cc3 Author: NeilBrown Date: Fri Jan 9 08:31:11 2009 +1100 md: don't retry recovery of raid1 that fails due to error on source drive. If a raid1 has only one working drive and it has a sector which gives an error on read, then an attempt to recover onto a spare will fail, but as the single remaining drive is not removed from the array, the recovery will be immediately re-attempted, resulting in an infinite recovery loop. So detect this situation and don't retry recovery once an error on the lone remaining drive is detected. Allow recovery to be retried once every time a spare is added in case the problem wasn't actually a media error. Signed-off-by: NeilBrown commit efeb53c0e57213e843b7ef3cc6ebcdea7d6186ac Author: NeilBrown Date: Fri Jan 9 08:31:10 2009 +1100 md: Allow md devices to be created by name. Using sequential numbers to identify md devices is somewhat artificial. Using names can be a lot more user-friendly. Also, creating md devices by opening the device special file is a bit awkward. So this patch provides a new option for creating and naming devices. Writing a name such as "md_home" to /sys/modules/md_mod/parameters/new_array will cause an array with that name to be created. It will appear in /sys/block/ /proc/partitions and /proc/mdstat as 'md_home'. It will have an arbitrary minor number allocated. md devices that a created by an open are destroyed on the last close when the device is inactive. For named md devices, they will not be destroyed until the array is explicitly stopped, either with the STOP_ARRAY ioctl or by writing 'clear' to /sys/block/md_XXXX/md/array_state. The name of the array must start 'md_' to avoid conflict with other devices. Signed-off-by: NeilBrown commit d3374825ce57ba2214d375023979f6197ccc1385 Author: NeilBrown Date: Fri Jan 9 08:31:10 2009 +1100 md: make devices disappear when they are no longer needed. Currently md devices, once created, never disappear until the module is unloaded. This is essentially because the gendisk holds a reference to the mddev, and the mddev holds a reference to the gendisk, this a circular reference. If we drop the reference from mddev to gendisk, then we need to ensure that the mddev is destroyed when the gendisk is destroyed. However it is not possible to hook into the gendisk destruction process to enable this. So we drop the reference from the gendisk to the mddev and destroy the gendisk when the mddev gets destroyed. However this has a complication. Between the call __blkdev_get->get_gendisk->kobj_lookup->md_probe and the call __blkdev_get->md_open there is no obvious way to hold a reference on the mddev any more, so unless something is done, it will disappear and gendisk will be destroyed prematurely. Also, once we decide to destroy the mddev, there will be an unlockable moment before the gendisk is unlinked (blk_unregister_region) during which a new reference to the gendisk can be created. We need to ensure that this reference can not be used. i.e. the ->open must fail. So: 1/ in md_probe we set a flag in the mddev (hold_active) which indicates that the array should be treated as active, even though there are no references, and no appearance of activity. This is cleared by md_release when the device is closed if it is no longer needed. This ensures that the gendisk will survive between md_probe and md_open. 2/ In md_open we check if the mddev we expect to open matches the gendisk that we did open. If there is a mismatch we return -ERESTARTSYS and modify __blkdev_get to retry from the top in that case. In the -ERESTARTSYS sys case we make sure to wait until the old gendisk (that we succeeded in opening) is really gone so we loop at most once. Some udev configurations will always open an md device when it first appears. If we allow an md device that was just created by an open to disappear on an immediate close, then this can race with such udev configurations and result in an infinite loop the device being opened and closed, then re-open due to the 'ADD' even from the first open, and then close and so on. So we make sure an md device, once created by an open, remains active at least until some md 'ioctl' has been made on it. This means that all normal usage of md devices will allow them to disappear promptly when not needed, but the worst that an incorrect usage will do it cause an inactive md device to be left in existence (it can easily be removed). As an array can be stopped by writing to a sysfs attribute echo clear > /sys/block/mdXXX/md/array_state we need to use scheduled work for deleting the gendisk and other kobjects. This allows us to wait for any pending gendisk deletion to complete by simply calling flush_scheduled_work(). Signed-off-by: NeilBrown commit a21d15042d8cd736caf82c2bac564f3f93f3d017 Author: NeilBrown Date: Fri Jan 9 08:31:09 2009 +1100 md: centralise all freeing of an 'mddev' in 'md_free' md_free is the .release handler for the md kobj_type. So it makes sense to release all the objects referenced by the mddev in there, rather than just prior to calling kobject_put for what we think is the last time. Signed-off-by: NeilBrown commit 8b76539823d71576927e3eb08b395eb6620f628d Author: NeilBrown Date: Fri Jan 9 08:31:08 2009 +1100 md: move allocation of ->queue from mddev_find to md_probe It is more balanced to just do simple initialisation in mddev_find, which allocates and links a new md device, and leave all the more sophisticated allocation to md_probe (which calls mddev_find). md_probe already allocated the gendisk. It should allocate the queue too. Signed-off-by: NeilBrown commit cd2ac9321c26dc7a76455cd2a4df89123fa2b73e Author: Cheng Renquan Date: Fri Jan 9 08:31:08 2009 +1100 md: need another print_sb for mdp_superblock_1 md_print_devices is called in two code path: MD_BUG(...), and md_ioctl with PRINT_RAID_DEBUG. it will dump out all in use md devices information; However, it wrongly processed two types of superblock in one: The header file has defined two types of superblock, struct mdp_superblock_s (typedefed with mdp_super_t) according to md with metadata 0.90, and struct mdp_superblock_1 according to md with metadata 1.0 and later, These two types of superblock are very different, The md_print_devices code processed them both in mdp_super_t, that would lead to wrong informaton dump like: [ 6742.345877] [ 6742.345887] md: ********************************** [ 6742.345890] md: * * [ 6742.345892] md: ********************************** [ 6742.345896] md1: [ 6742.345907] md: rdev ram7, SZ:00065472 F:0 S:1 DN:3 [ 6742.345909] md: rdev superblock: [ 6742.345914] md: SB: (V:0.90.0) ID:<42ef13c7.598c059a.5f9f1645.801e9ee6> CT:4919856d [ 6742.345918] md: L5 S00065472 ND:4 RD:4 md1 LO:2 CS:65536 [ 6742.345922] md: UT:4919856d ST:1 AD:4 WD:4 FD:0 SD:0 CSUM:b7992907 E:00000001 [ 6742.345924] D 0: DISK [ 6742.345930] D 1: DISK [ 6742.345933] D 2: DISK [ 6742.345937] D 3: DISK [ 6742.345942] md: THIS: DISK ... [ 6742.346058] md0: [ 6742.346067] md: rdev ram3, SZ:00065472 F:0 S:1 DN:3 [ 6742.346070] md: rdev superblock: [ 6742.346073] md: SB: (V:1.0.0) ID:<369aad81.00000000.00000000.00000000> CT:9a322a9c [ 6742.346077] md: L-1507699579 S976570180 ND:48 RD:0 md0 LO:65536 CS:196610 [ 6742.346081] md: UT:00000018 ST:0 AD:131048 WD:0 FD:8 SD:0 CSUM:00000000 E:00000000 [ 6742.346084] D 0: DISK [ 6742.346089] D 1: DISK [ 6742.346092] D 2: DISK [ 6742.346096] D 3: DISK [ 6742.346102] md: THIS: DISK ... [ 6742.346219] md: ********************************** [ 6742.346221] Here md1 is metadata 0.90.0, and md0 is metadata 1.2 After some more code to distinguish these two types of superblock, in this patch, it will generate dump information like: [ 7906.755790] [ 7906.755799] md: ********************************** [ 7906.755802] md: * * [ 7906.755804] md: ********************************** [ 7906.755808] md1: [ 7906.755819] md: rdev ram7, SZ:00065472 F:0 S:1 DN:3 [ 7906.755821] md: rdev superblock (MJ:0): [ 7906.755826] md: SB: (V:0.90.0) ID:<3fca7a0d.a612bfed.5f9f1645.801e9ee6> CT:491989f3 [ 7906.755830] md: L5 S00065472 ND:4 RD:4 md1 LO:2 CS:65536 [ 7906.755834] md: UT:491989f3 ST:1 AD:4 WD:4 FD:0 SD:0 CSUM:00fb52ad E:00000001 [ 7906.755836] D 0: DISK [ 7906.755842] D 1: DISK [ 7906.755845] D 2: DISK [ 7906.755849] D 3: DISK [ 7906.755855] md: THIS: DISK ... [ 7906.755972] md0: [ 7906.755981] md: rdev ram3, SZ:00065472 F:0 S:1 DN:3 [ 7906.755984] md: rdev superblock (MJ:1): [ 7906.755989] md: SB: (V:1) (F:0) Array-ID:<5fbcf158:55aa:5fbe:9a79:1e939880dcbd> [ 7906.755990] md: Name: "DG5:0" CT:1226410480 [ 7906.755998] md: L5 SZ130944 RD:4 LO:2 CS:128 DO:24 DS:131048 SO:8 RO:0 [ 7906.755999] md: Dev:00000003 UUID: 9194d744:87f7:a448:85f2:7497b84ce30a [ 7906.756001] md: (F:0) UT:1226410480 Events:0 ResyncOffset:-1 CSUM:0dbcd829 [ 7906.756003] md: (MaxDev:384) ... [ 7906.756113] md: ********************************** [ 7906.756116] this md0 (metadata 1.2) information dumping is exactly according to struct mdp_superblock_1. Signed-off-by: Cheng Renquan Cc: Neil Brown Cc: Dan Williams Signed-off-by: Andrew Morton Signed-off-by: NeilBrown commit 159ec1fc060ab22b157a62364045f5e98749c4d3 Author: Cheng Renquan Date: Fri Jan 9 08:31:08 2009 +1100 md: use list_for_each_entry macro directly The rdev_for_each macro defined in is identical to list_for_each_entry_safe, from , it should be defined to use list_for_each_entry_safe, instead of reinventing the wheel. But some calls to each_entry_safe don't really need a safe version, just a direct list_for_each_entry is enough, this could save a temp variable (tmp) in every function that used rdev_for_each. In this patch, most rdev_for_each loops are replaced by list_for_each_entry, totally save many tmp vars; and only in the other situations that will call list_del to delete an entry, the safe version is used. Signed-off-by: Cheng Renquan Signed-off-by: NeilBrown commit ccacc7d2cf03114a24ab903f710118e9e5d43273 Author: Andre Noll Date: Fri Jan 9 08:31:08 2009 +1100 md: raid0: make hash_spacing and preshift sector-based. This patch renames the hash_spacing and preshift members of struct raid0_private_data to spacing and sector_shift respectively and changes the semantics as follows: We always have spacing = 2 * hash_spacing. In case sizeof(sector_t) > sizeof(u32) we also have sector_shift = preshift + 1 while sector_shift = preshift = 0 otherwise. Note that the values of nb_zone and zone are unaffected by these changes because in the sector_div() preceeding the assignement of these two variables both arguments double. Signed-off-by: Andre Noll Signed-off-by: NeilBrown commit 83838ed87898e0a8ff8dbf001e54e6c017f0a011 Author: Andre Noll Date: Fri Jan 9 08:31:07 2009 +1100 md: raid0: Represent the size of strip zones in sectors. This completes the block -> sector conversion of struct strip_zone. Signed-off-by: Andre Noll Signed-off-by: NeilBrown commit 0825b87a7dd9645c7e16489fec839a3cb5c40a08 Author: Andre Noll Date: Fri Jan 9 08:31:07 2009 +1100 md: raid0 create_strip_zones(): Add KERN_INFO/KERN_ERR to printk's. This patch consists only of these trivial changes. Signed-off-by: Andre Noll Signed-off-by: NeilBrown commit 6b8796cc3decb43c7c67a13a0699b6a21b754c78 Author: Andre Noll Date: Fri Jan 9 08:31:07 2009 +1100 md: raid0 create_strip_zones(): Make two local variables sector-based. current_offset and curr_zone_offset stored the corresponding offsets as 1K quantities. Rename them to current_start and curr_zone_start to match the naming of struct strip_zone and store the offsets as sector counts. Also, add KERN_INFO to the printk() affected by this change to make checkpatch happy. Signed-off-by: Andre Noll Signed-off-by: NeilBrown commit 6199d3db0fc34f8ada895879d04a353a6ae632bc Author: Andre Noll Date: Fri Jan 9 08:31:07 2009 +1100 md: raid0: Represent zone->zone_offset in sectors. For the same reason as in the previous patch, rename it from zone_offset to zone_start. Signed-off-by: Andre Noll Signed-off-by: NeilBrown commit 019c4e2f3e02aac4b44003913b54ca4b332e4371 Author: Andre Noll Date: Fri Jan 9 08:31:06 2009 +1100 md: raid0: Represent device offset in sectors. Rename zone->dev_offset to zone->dev_start to make sure all users have been converted. Signed-off-by: Andre Noll Signed-off-by: NeilBrown commit e0f06868341700c5c1964a04f6c5b51d0a2d5bca Author: Andre Noll Date: Fri Jan 9 08:31:06 2009 +1100 md: raid0_make_request(): Replace local variable block by sector. This change already simplifies the code a bit. Signed-off-by: Andre Noll Signed-off-by: NeilBrown commit a471200595b24fb1907ad12107a6a66db02c63f2 Author: Andre Noll Date: Fri Jan 9 08:31:06 2009 +1100 md: raid0_make_request(): Remove local variable chunk_size. We might as well use chunk_sects instead. Signed-off-by: Andre Noll Signed-off-by: NeilBrown commit 1b7fdf8ff7c0e3fba9c679def4e98d5701d2949e Author: Andre Noll Date: Fri Jan 9 08:31:06 2009 +1100 md: raid0_make_request(): Replace chunksize_bits by chunksect_bits. As ffz(~(2 * x)) = ffz(~x) + 1, we have chunksect_bits = chunksize_bits + 1. Fixup all users accordingly. Signed-off-by: Andre Noll Signed-off-by: NeilBrown commit 0c3573f19d135d718264e38c46597295bd6154b7 Author: NeilBrown Date: Fri Jan 9 08:31:05 2009 +1100 md: use sysfs_notify_dirent to notify changes to md/sync_action. There is no compelling need for this, but sysfs_notify_dirent is a nicer interface and the change is good for consistency. Signed-off-by: NeilBrown commit 538452700d95480c16e7aa6b10ff77cd937d33f4 Author: NeilBrown Date: Fri Jan 9 08:31:05 2009 +1100 md: fix bitmap-on-external-file bug. commit a2ed9615e3222645007fc19991aedf30eed3ecfd fixed a bug with 'internal' bitmaps, but in the process broke 'in a file' bitmaps. So they are broken in 2.6.28 This fixes it, and needs to go in 2.6.28-stable. Signed-off-by: NeilBrown Cc: stable@kernel.org commit 6ecb6f25d3a52c0d032aa73bde1ff9bc454aa66c Author: Tejun Heo Date: Thu Jan 8 16:29:20 2009 -0500 pata_hpt366: reimplement mode programming Reimplement mode programming logic of pata_hpt366 such that it's identical to that of IDE hpt366 driver. The differences were... * pata_hpt366 used 0xCFFF8FFFF to mask pio modes and 0x3FFFFFFF dma modes. IDE hpt366 uses 0xC1F8FFFF for PIO, 0x303800FF for MWDMA and 0x30070000 for UDMA. * pata_hpt366 doesn't set 0x08000000 for PIO unless it's already set and always turns it on for MWDMA/UDMA. IDE hpt366 doesn't bother with the bit. It always uses what was there. * IDE hpt366 always clears 0xC0000000. pata_hpt366 doesn't. Signed-off-by: Tejun Heo Cc: Alan Cox Cc: Sergei Shtylyov Signed-off-by: Jeff Garzik commit b63d3953251f144b75993374d752e0d57034c8bb Author: Jeff Garzik Date: Thu Jan 8 16:28:21 2009 -0500 [libata] pata_hpt3x3: correct _freeze() function declaration Signed-off-by: Jeff Garzik commit 5c18c4d28ba9a29203c1dc6b7c64df63ca00938a Author: David Daney Date: Wed Dec 10 15:39:12 2008 -0800 libata: Add special ata_pio_need_iordy() handling for Compact Flash. According to the Compact Flash specification r4.1, PIO modes 5 and 6 do not use iordy. Signed-off-by: David Daney Signed-off-by: Jeff Garzik commit 78a7ba47fbc34a387e6347179ba571236596efbb Author: Sonic Zhang Date: Thu Jan 8 00:37:12 2009 +0800 pata_platform: __pata_platform_remove() shouldn't be in discard section -- UPD include/linux/compile.h `___pata_platform_remove' referenced in section `__ksymtab_gpl' of drivers/built-in.o: defined in discarded section `.devexit.text' of drivers/built-in.o make: *** [.tmp_vmlinux1] Error 1 -- __pata_platform_remove() should not be in discarded section __pata_platform_remove(struct device *dev) is invoked in both pata_platform.c and pata_of_platform.c by reomve function defined in discarded section ".devexit.text". An exported function should not be put into discarded section. Signed-off-by: Sonic Zhang Signed-off-by: Bryan Wu Signed-off-by: Jeff Garzik commit 1564a187b4a7f43746da764347df16bf9095f92e Author: Grant Grundler Date: Wed Jan 7 11:26:40 2009 +0900 sata_sil24: remove unused sil24_port_multiplier AFAICT, struct sil24_port_multiplier isn't used anywhere. Remove it. Signed-off-by: Grant Grundler Signed-off-by: Tejun Heo Signed-off-by: Jeff Garzik commit 8522ee25f3a645577d41e71328cd4fcf8610dfeb Author: Shane Huang Date: Tue Dec 30 11:00:37 2008 +0800 [libata] ahci: Add SATA GEN3 related messages The present AHCI driver seems to support SATA GEN 3 speed, but the related messages should be modified. Signed-off-by: Shane Huang Signed-off-by: Jeff Garzik commit 2852bcf7c12d3027c5d10f4f5ca5fada24ce8088 Author: Tejun Heo Date: Fri Jan 2 12:04:48 2009 +0900 ata_piix: save, use saved and restore IOCFG Certain ACPI implementations mess up IOCFG on _STM making libata detect cable type incorrectly after a suspend/resume cycle. This patch makes ata_piix save IOCFG on attach, use the saved value for things which aren't dynamic and restore it on detach so that the next driver also gets the BIOS initialized value. This patch contains the following changes. * makes ich_pata_cable_detect() use saved_iocfg. * make piix_iocfg_bit18_quirk() take @host and use saved_iocfg. * hpriv allocation moved upwards to save iocfg before doing anything else. This fixes bz#11879. Andreas Mohr reported and diagnosed the problem. Signed-off-by: Tejun Heo Cc: Andreas Mohr Signed-off-by: Jeff Garzik commit fc80902fdf4219a81eccca4a06259c4b56812ba5 Author: Alan Cox Date: Mon Jan 5 14:13:53 2009 +0000 pata_ali: Fix and workaround for FIFO DMA bug In very obscure cases this can cause problems. We need to help the hardware out a bit to avoid DMA problems on a reset. Signed-off-by: Alan Cox Signed-off-by: Jeff Garzik commit 1b2c357c301b76118973763e886d9f70a7f50f7e Author: Alan Cox Date: Mon Jan 5 14:13:22 2009 +0000 pata_ali: force initialise a few bits We can't assume some of the setup here on non x86 boxes. Signed-off-by: Alan Cox Signed-off-by: Jeff Garzik commit 978ff6db23279422046c1b3f89fe2045c234dc91 Author: Alan Cox Date: Mon Jan 5 14:12:51 2009 +0000 pata_hpt3x3: Workarounds for chipset Correct the DMA bit flags (UDMA and MWDMA were swapped) Add workarounds so that we clear ERR and INTR bits before issuing a DMA Add workarounds so that we stop a live DMA before touching the CTL register Signed-off-by: Alan Cox Signed-off-by: Jeff Garzik commit 33b04b9308959af7febc1c111c766fa3fd8b1934 Author: Arjan van de Ven Date: Thu Jan 8 12:35:11 2009 -0800 async: make async_synchronize_full() more serializing turns out that there are real problems with allowing async tasks that are scheduled from async tasks to run after the async_synchronize_full() returns. This patch makes the _full more strict and a complete synchronization. Later I might need to add back a lighter form of synchronization for other uses.. but not right now. Signed-off-by: Arjan van de Ven Signed-off-by: Linus Torvalds commit ce70a24575414d615f6a7a05caf9b7e8f91a1b6f Author: Rodolfo Giometti Date: Thu Jan 8 19:50:15 2009 +0000 leds: ledtrig-timer - on deactivation hardware blinking should be disabled Signed-off-by: Rodolfo Giometti Signed-off-by: Richard Purdie commit 56cf391a9462a4897ea660a6af3662dda5ae8c84 Author: Inaky Perez-Gonzalez Date: Thu Jan 8 12:56:57 2009 -0800 wimax: fix kernel-doc for debufs_dentry member of struct wimax_dev Reported by Randy Dunlap from a warning in the v2.6.29 merge window tree as of 2009/1/8. Signed-off-by: Inaky Perez-Gonzalez Signed-off-by: David S. Miller commit d00ba726725c6f41e43df00f83e484ba8f9fac5c Author: Richard Purdie Date: Thu Jan 8 20:52:37 2009 +0000 backlight: Rename the corgi backlight driver to generic The corgi backlight driver is really generic code. This rename makes this a lot clearer and completes the partial rename made a while ago. Signed-off-by: Richard Purdie commit f4f6bda00fc6bf995a35d8246db45aacaa9b3f09 Author: Mike Rapoport Date: Wed Dec 3 08:48:52 2008 +0000 backlight: add support for Toppoly TDO35S series to tdo24m lcd driver Signed-off-by: Mike Rapoport Acked-by: Eric Miao Signed-off-by: Richard Purdie commit 0ba4887c6329043d6cee5b5b477cfe50c2b57674 Author: Randy Dunlap Date: Thu Jan 8 11:50:23 2009 -0800 regulator: fix kernel-doc warnings Fix kernel-doc warnings in regulator/driver.h: Warning(linux-next-20090108//include/linux/regulator/driver.h:95): Excess struct/union/enum/typedef member 'set_current' description in 'regulator_ops' Warning(linux-next-20090108//include/linux/regulator/driver.h:95): Excess struct/union/enum/typedef member 'get_current' description in 'regulator_ops' Warning(linux-next-20090108//include/linux/regulator/driver.h:124): No description found for parameter 'irq' Signed-off-by: Randy Dunlap cc: Liam Girdwood cc: Mark Brown Signed-off-by: Liam Girdwood commit 6001e13c5f708eb68c744a69df3c2c281156030d Author: David Brownell Date: Wed Dec 31 12:54:19 2008 +0000 regulator: catch some registration errors Prevent registration of duplicate "struct regulator" names. They'd be unavailable, and clearly indicate something wrong. [Edited to remove check for NULL consumer device until we have a solution for things like cpufreq -- broonie] Signed-off-by: David Brownell Signed-off-by: Mark Brown Signed-off-by: Liam Girdwood commit 9fe5817f196054142b9a13ed78c73b76a29f2ea3 Author: Mark Brown Date: Wed Dec 31 12:52:44 2008 +0000 regulator: Add basic DocBook manual Add a basic DocBook manual for the regulator API. This is much more skeletal than the existing text documentation, the main benefit is to provide a skeleton for automatic generation of a manual based on the kerneldoc for the API. Since large portions of the text are lifted from the existing text format documentation written by Liam Girdwood much of the credit belongs to him. Signed-off-by: Mark Brown Signed-off-by: Liam Girdwood commit cf7bbcdf4d267eff580cb7ce6cf4fe16a940a005 Author: Mark Brown Date: Wed Dec 31 12:52:43 2008 +0000 regulator: Fix some kerneldoc rendering issues There are some minor textual changes in here as well, mostly to enable() and disable() but the primary goal of these changes is to fix misrenderings of the kerneldoc documentation for the regulator API. Signed-off-by: Mark Brown Signed-off-by: Liam Girdwood commit c8e7e4640facbe99d10a6e262523b25be129b9b9 Author: Mark Brown Date: Wed Dec 31 12:52:42 2008 +0000 regulator: Add missing kerneldoc This is only the documentation that the kerneldoc system warns about. Signed-off-by: Mark Brown Signed-off-by: Liam Girdwood commit 69279fb9a95051971ac03e558c4d46e7ba84ab3a Author: Mark Brown Date: Wed Dec 31 12:52:41 2008 +0000 regulator: Clean up kerneldoc warnings Remove kerneldoc warnings that don't relate to missing documentation, mostly by renaming parameters in the documentation to match their actual names. Signed-off-by: Mark Brown Signed-off-by: Liam Girdwood commit 8dc5390d4f3fd8acc73773a56fea13544e7924dc Author: Mark Brown Date: Wed Dec 31 12:52:40 2008 +0000 regulator: Remove extraneous kerneldoc annotations Some of the internal structures have no kerneldoc but the ** at the start of the comment marking them for documentation. Remove the annotation until some is added. Signed-off-by: Mark Brown Signed-off-by: Liam Girdwood commit 9f4dab49e5351aead75d20f2d39acd0d6cf5f1c6 Author: David Brownell Date: Mon Dec 1 21:50:13 2008 -0800 regulator: init/link earlier Move regulator earlier in link sequence. The regulator core currently initializes as a core_initcall() to be available early ... but then it links way late, throwing away that benefit, so regulators available at e.g. subsys_initcall() are not available to subsystems which need to use them. Signed-off-by: David Brownell Acked-by: Mark Brown Signed-off-by: Liam Girdwood commit 74f544c1fc0339acf6f66ff438b8543b1f9faf10 Author: Mike Rapoport Date: Tue Nov 25 14:53:53 2008 +0200 regulator: move set_machine_constraints after regulator device initialization Calling set_machine_constraints before regulator device initialization causes crash when constraints have apply_uV set. Signed-off-by: Mike Rapoport Signed-off-by: Liam Girdwood commit 961869048b61c853a17f35b98be91c5630a73906 Author: Mike Rapoport Date: Tue Nov 25 10:19:52 2008 +0200 regulator: da903x: make da903x_is_enabled return 0 or 1 Signed-off-by: Mike Rapoport Signed-off-by: Liam Girdwood commit 471d8d49a752a8ee3caf606dca83f7d7b99355f7 Author: Mike Rapoport Date: Mon Nov 24 18:43:00 2008 +0200 regulator: da903x: add '\n' to error messages Signed-off-by: Mike Rapoport Acked-by: Eric Miao Signed-off-by: Liam Girdwood commit 7ad68e2f970fd84d15ad67ce3216aed05f944a9c Author: David Brownell Date: Tue Nov 11 17:39:02 2008 -0800 regulator: sysfs attribute reduction (v2) Clean up the sysfs interface to regulators by only exposing the attributes that can be properly displayed. For example: when a particular regulator method is needed to display the value, only create that attribute when that method exists. This cleaned-up interface is much more comprehensible. Most regulators only support a subset of the possible methods, so often more than half the attributes would be meaningless. Many "not defined" values are no longer necessary. (But handling of out-of-range values still looks a bit iffy.) Documentation is updated to reflect that few of the attributes are *always* present, and to briefly explain why a regulator may not have a given attribute. This adds object code, about a dozen bytes more than was removed by the preceding patch, but saves a bunch of per-regulator data associated with the now-removed attributes. So there's a net reduction in memory footprint. Signed-off-by: David Brownell Signed-off-by: Liam Girdwood commit 4fca9545d17b99cdb2774716b034c62a70151bcd Author: David Brownell Date: Tue Nov 11 17:38:53 2008 -0800 regulator: code shrink (v2) Shrink regulator core by removing duplication in attribute printing and probe() cleanup paths. Saves about 340 bytes (object) on ARM. Signed-off-by: David Brownell Signed-off-by: Liam Girdwood commit e573520b171095c106ffbbbf4f9cbed6d9bff576 Author: David Brownell Date: Sun Nov 16 11:46:56 2008 -0800 regulator: improved mode error checks Minor bugfixes in handling of regulator modes: - have the routine verifying regulator modes check against the set of legal modes (!); - have regulator_set_optimum_mode() verify the return value of regulator_ops.get_optimum_mode(), like drms_uA_update(); - one call to regulator_ops.set_mode() treated zero as a failure code; make this consistent with other callers. Both regulator_set_mode() and regulator_set_optimum_mode() now require valid_ops_mask to include REGULATOR_CHANGE_MODE; that seems like a bugfix too. Signed-off-by: David Brownell Signed-off-by: Liam Girdwood commit 412aec610559bdb602a0a21ce149ba8ffbb6f983 Author: David Brownell Date: Sun Nov 16 11:44:46 2008 -0800 regulator: enable/disable refcounting Make the framework treat enable/disable call pairs like the and frameworks do: they're refcounted, so that different parts of a driver don't need to put work into coordination that frameworks normally handle. It's a minor object code shrink. It also makes the regulator_is_disabled() kerneldoc say what it's actually returning: return value is not a refcount, and may report an error (e.g. I/O error from I2C). It also fixes some minor regulator_put() goofage: removing unlocked access to the enable state. (But still not making regulator put/get match the refcounting pattern they invoke.) Signed-off-by: David Brownell Signed-off-by: Liam Girdwood commit 812460a927c1d0dc1fbdbec9aa07de1b04043d83 Author: Kay Sievers Date: Sun Nov 2 03:55:10 2008 +0100 regulator: struct device - replace bus_id with dev_name(), dev_set_name() This patch is part of a larger patch series which will remove the "char bus_id[20]" name string from struct device. The device name is managed in the kobject anyway, and without any size limitation, and just needlessly copied into "struct device". To set and read the device name dev_name(dev) and dev_set_name(dev) must be used. If your code uses static kobjects, which it shouldn't do, "const char *init_name" can be used to statically provide the name the registered device should have. At registration time, the init_name field is cleared, to enforce the use of dev_name(dev) to access the device name at a later time. We need to get rid of all occurrences of bus_id in the entire tree to be able to enable the new interface. Please apply this patch, and possibly convert any remaining remaining occurrences of bus_id. We want to submit a patch to -next, which will remove bus_id from "struct device", to find the remaining pieces to convert, and finally switch over to the new api, which will remove the 20 bytes array and does no longer have a size limitation. Thanks, Kay From: Kay Sievers Subject: regulator: struct device - replace bus_id with dev_name(), dev_set_name() Cc: Liam Girdwood Acked-by: Greg Kroah-Hartman Signed-Off-By: Kay Sievers Signed-off-by: Liam Girdwood commit 8cb89571bd66fec6a71d8a2b1de2262722dfbb8d Author: Oliver Neukum Date: Thu Jan 8 11:22:25 2009 -0800 net: convert pegasus driver to net_device_ops This converts the pegasus driver to use of the new net_device_ops structure Signed-off-by: Oliver Neukum Signed-off-by: David S. Miller commit 9f4c95835654f6169469af8a1de91454f7a65ac1 Author: Eilon Greenstein Date: Thu Jan 8 11:21:43 2009 -0800 bnx2x: Prevent eeprom set when driver is down Signed-off-by: Eilon Greenstein Signed-off-by: David S. Miller commit 321ea8b2d37e1e09e65415c421403b40d7d81c1c Author: Oliver Neukum Date: Thu Jan 8 11:20:22 2009 -0800 net: switch kaweth driver to netdevops This converts the kaweth ethernet USB driver to netdevops. Signed-off-by: Oliver Neukum Signed-off-by: David S. Miller commit 283a21d3e16e9709012cc8b0839ec474d8888a5d Author: Stephen Hemminger Date: Thu Jan 8 11:17:13 2009 -0800 pcnet32: round off carrier watch timer The link check watchdog timer on this driver fires every two seconds, but since not aligned it causes extra wakeups. It is more important on this driver than most because it is the hardware that is emulated by default when using network interfaces on VMware. Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller commit 9fd7a1d92b4462acaa460bb0f58b12ede6ffe6b9 Author: Inaky Perez-Gonzalez Date: Thu Jan 8 11:08:25 2009 -0800 i2400m/usb: wrap USB power saving in #ifdef CONFIG_PM Current code was assuming PM was always enabled, which is not correct. Code which accesses members in the struct usb_device that are dependant on CONFIG_PM must be protected the same. Reported by Randy Dunlap from a build error in the linux-next tree on 07/01/2009. Signed-off-by: Inaky Perez-Gonzalez Signed-off-by: David S. Miller commit a2e9da4b09c99857080afd2e8143f70bc03ebe9b Author: Inaky Perez-Gonzalez Date: Thu Jan 8 11:08:01 2009 -0800 wimax: testing for rfkill support should also test for CONFIG_RFKILL_MODULE Current WiMAX rfkill code is missing the case where rfkill is compiled in as modules and works only when rfkill is compiled in. This is not correct. Fixed to test for CONFIG_RFKILL or CONFIG_RKILL_MODULE. Signed-off-by: Inaky Perez-Gonzalez Signed-off-by: David S. Miller commit 71f78afd67ca51d3656ba45aea293d6e2a27c8bc Author: Inaky Perez-Gonzalez Date: Thu Jan 8 11:07:36 2009 -0800 wimax: fix kconfig interactions with rfkill and input layers WiMAX can work without RFKILL, but it was missing a check to make sure RFKILL is not being made a module with wimax compiled into the kernel. This caused failed builds in s390, where CONFIG_INPUT is always off. When RFKILL is enabled, the code uses the input layer to report hardware switch changes; thus, if RFKILL is enabled, INPUT has to be too. It also needs to display some message when INPUT is disabled that explains why WiMAX is not selectable. (issues found by Randy Dunlap in the linux-next tree). Signed-off-by: Inaky Perez-Gonzalez Signed-off-by: David S. Miller commit d48e470f76887d0befe025049158aeb6c1219d71 Author: Inaky Perez-Gonzalez Date: Thu Jan 8 11:06:48 2009 -0800 wimax: fix '#ifndef CONFIG_BUG' layout to avoid warning Reported by Randy Dunlap: > Also, this warning needs to be fixed: > > linux-next-20090106/net/wimax/id-table.c:133: warning: ISO C90 > forbids mixed declarations and code Move the return on #defined(CONFIG_BUG) below the variable declarations so it doesn't violate ISO C90. On wimax_id_table_release() we want to do a debug check if CONFIG_BUG is enabled. However, we also want the debug code to be always compiled to ensure there is no bitrot. It will be optimized out by the compiler when CONFIG_BUG is disabled. Added a note to the function header stating this. Signed-off-by: Inaky Perez-Gonzalez Signed-off-by: David S. Miller commit 7f46b1343f723f98634a5dcee47856b2000079ed Merge: b8c31da... 9e42d0c... Author: David S. Miller Date: Thu Jan 8 11:05:59 2009 -0800 Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/torvalds/linux-2.6 commit b8c31da64165b8566fc6e1c9c826f76e7b98ff02 Author: Florian Fainelli Date: Thu Jan 8 11:03:57 2009 -0800 r6040: bump release number to 0.20 This patch bumps release number to 0.20 and 07Jan2009. Signed-off-by: Florian Fainelli Signed-off-by: David S. Miller commit 1d2b1a76d39433ba9eb065bb31d3594cb491e617 Author: Florian Fainelli Date: Thu Jan 8 11:02:30 2009 -0800 r6040: warn about MAC address being unset Some bootloader/BIOSes do not set the MAC address, warn about that. Signed-off-by: Florian Fainelli Signed-off-by: David S. Miller commit 84314bf92265bccea601ed75ec93944e1a36dd81 Author: Florian Fainelli Date: Thu Jan 8 11:01:58 2009 -0800 r6040: check PHY status when bringing interface up This patch makes the driver properly initialize the PHY status if not correctly set by the bootloader/BIOS. It prevents some boards to bring up the link on boot. Signed-off-by: Florian Fainelli Signed-off-by: David S. Miller commit 9a48ce84004eb61940850c7066af5d222a5f81c9 Author: Florian Fainelli Date: Thu Jan 8 11:00:52 2009 -0800 r6040: make printks consistent with DRV_NAME This patch fixes some printks which were not prefixed with DRV_NAME, useful when having multiple cards/drivers on the system. Signed-off-by: Florian Fainelli Signed-off-by: David S. Miller commit a1d8f6015e0fab61cc27204560d54a442181be54 Author: Kumar Gala Date: Thu Jan 8 10:58:38 2009 -0800 gianfar: Fixup use of BUS_ID_SIZE Commit b31a1d8b41513b96e9c7ec2f68c5734cef0b26a4 ("gianfar: Convert gianfar to an of_platform_driver") went back to using BUS_ID_SIZE instead of sizeof() as per the larger patch series that will remove "char bus_id[20]" from struct device. Signed-off-by: Kumar Gala Signed-off-by: David S. Miller commit bd531e36b8aa223aded15493d0a93930e1de51c6 Author: Yevgeny Petrilin Date: Thu Jan 8 10:57:37 2009 -0800 mlx4_en: Returning real Max in get_ringparam Signed-off-by: Yevgeny Petrilin Signed-off-by: David S. Miller commit 41efea5a34caa76c11e56458db21eb259d5c6384 Author: Yevgeny Petrilin Date: Thu Jan 8 10:57:15 2009 -0800 mlx4_en: Consider inline packets on completion Was trying to unmap work queue entries that had inline packets, so naturally weren't mapped. Signed-off-by: Yevgeny Petrilin Signed-off-by: David S. Miller commit 33a2a2b4c7076fc3ff1ee77d2376723dd12df44d Author: Sonic Zhang Date: Thu Jan 8 10:52:26 2009 -0800 netdev: bfin_mac: enable bfin_mac net dev driver for BF51x Signed-off-by: Sonic Zhang Signed-off-by: Bryan Wu Signed-off-by: David S. Miller commit 8403b13c7627df7104e450cbc845627bf25c8cd6 Author: Frank Blaschka Date: Thu Jan 8 10:50:55 2009 -0800 qeth: convert to net_device_ops qeth_l2, qeth_l3 convert to net_device_ops. qeth_l3 remove vlan neigh_setup hack since it does not work any longer with the new net_device_ops. Signed-off-by: Frank Blaschka Signed-off-by: David S. Miller commit cc883d16c3b7434c7da2c45b54a49c2a99e83db7 Author: Frank Blaschka Date: Thu Jan 8 10:50:20 2009 -0800 vlan: add neigh_setup In case the real device has a neigh_setup function, this neigh_setup function should be used for the vlan device. Signed-off-by: Frank Blaschka Signed-off-by: David S. Miller commit f52deb0e8408515ecf58c330c93fa99b8cb53cb4 Author: Wu Fengguang Date: Thu Jan 8 10:47:01 2009 -0800 dm9601: warn on invalid mac address Add warnings on invalid mac address to help disclose/debug problems. Signed-off-by: Wu Fengguang Acked-by: Peter Korsgaard Signed-off-by: David S. Miller commit 4b9f8ec6e5e98779e8b3806a5f58267378ef57eb Author: Wu Fengguang Date: Tue Jan 6 18:52:58 2009 +0000 dm9601: tell HW about random generated mac address Otherwise unicast RX will only work in promisc mode. Signed-off-by: Peter Korsgaard Signed-off-by: Wu Fengguang Signed-off-by: David S. Miller commit 684f2176015b313ab59cecf574117969cf638f28 Author: Herbert Xu Date: Thu Jan 8 10:41:23 2009 -0800 tcp6: Add GRO support This patch adds GRO support for TCP over IPv6. The code is exactly the same as the IPv4 version except for the pseudo-header checksum computation. Note that I've removed the unused tcphdr argument from tcp_v6_check rather than invent a bogus value for GRO. Signed-off-by: Herbert Xu Signed-off-by: David S. Miller commit 787e9208360117835101f513f7db593dc2525cf8 Author: Herbert Xu Date: Thu Jan 8 10:40:57 2009 -0800 ipv6: Add GRO support This patch adds GRO support for IPv6. IPv6 GRO supports extension headers in the same way as GSO (by using the same infrastructure). It's also simpler compared to IPv4 since we no longer have to worry about fragmentation attributes or header checksums. Signed-off-by: Herbert Xu Signed-off-by: David S. Miller commit 859cb7f2a4244ea6da206d3fe9cc8a6810947a68 Author: Richard Purdie Date: Thu Jan 8 17:55:03 2009 +0000 leds: Add suspend/resume to the core class Add suspend/resume to the core class and remove all the now unneeded code from various drivers. Originally the class code couldn't support suspend/resume but since class_device can there is no reason for each driver doing its own suspend/resume anymore. commit 85da1fb545e5fe51c35e0576f71780cc557f4277 Merge: 73ac36e... 5886188... Author: Linus Torvalds Date: Thu Jan 8 09:10:16 2009 -0800 Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc * 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc: (53 commits) serial: Add driver for the Cell Network Processor serial port NWP device powerpc: enable dynamic ftrace powerpc/cell: Fix the prototype of create_vma_map() powerpc/mm: Make clear_fixmap() actually work powerpc/kdump: Use ppc_save_regs() in crash_setup_regs() powerpc: Export cacheable_memzero as its now used in a driver powerpc: Fix missing semicolons in mmu_decl.h powerpc/pasemi: local_irq_save uses an unsigned long powerpc/cell: Fix some u64 vs. long types powerpc/cell: Use correct types in beat files powerpc: Use correct type in prom_init.c powerpc: Remove unnecessary casts mtd/ps3vram: Use _PAGE_NO_CACHE in memory ioremap mtd/ps3vram: Use msleep in waits mtd/ps3vram: Use proper kernel types mtd/ps3vram: Cleanup ps3vram driver messages mtd/ps3vram: Remove ps3vram debug routines mtd/ps3vram: Add modalias support to the ps3vram driver mtd/ps3vram: Add ps3vram driver for accessing video RAM as MTD powerpc: Fix iseries drivers build failure without CONFIG_VIOPATH ... commit 73ac36ea14fd18ea3dc057e41b16ff31a3c0bd5a Author: Coly Li Date: Wed Jan 7 18:09:16 2009 -0800 fix similar typos to successfull When I review ocfs2 code, find there are 2 typos to "successfull". After doing grep "successfull " in kernel tree, 22 typos found totally -- great minds always think alike :) This patch fixes all the similar typos. Thanks for Randy's ack and comments. Signed-off-by: Coly Li Acked-by: Randy Dunlap Acked-by: Roland Dreier Cc: Jeremy Kerr Cc: Jeff Garzik Cc: Heiko Carstens Cc: Martin Schwidefsky Cc: Theodore Ts'o Cc: Mark Fasheh Cc: Vlad Yasevich Cc: Sridhar Samudrala Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit da2bdf9a6ff40b10d77620d0d76b02a738c103cb Author: Roel Kluin Date: Wed Jan 7 18:09:15 2009 -0800 Make various things static Building an allnoconfig kernel, sparse asked whether these could be static, so I checked, and they are only used in the file where they are declared. Signed-off-by: Roel Kluin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 9a8d5bb4ad829e66ab5428ccdce2cbc8ab0ac96c Author: Wu Fengguang Date: Wed Jan 7 18:09:14 2009 -0800 generic swap(): dcache: use swap() instead of private do_switch() Use the new generic implementation. Signed-off-by: Wu Fengguang Cc: Al Viro Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit df4927bf6ccf6278a97a44bd107080c71b269cb5 Author: Wu Fengguang Date: Wed Jan 7 18:09:14 2009 -0800 generic swap(): sched: remove local swap() macro Use the new generic implementation. Signed-off-by: Wu Fengguang Cc: Ingo Molnar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 97e133b4543c5c677e768a8538d6d704c4218ff2 Author: Wu Fengguang Date: Wed Jan 7 18:09:13 2009 -0800 generic swap(): ext4: remove local swap() macro Use the new generic implementation. Signed-off-by: Wu Fengguang Cc: Theodore Ts'o Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit be857df1dd8d8e1491e60d999caf3b8446ccd475 Author: Wu Fengguang Date: Wed Jan 7 18:09:12 2009 -0800 generic swap(): ext3: remove local swap() macro Use the new generic implementation. Signed-off-by: Wu Fengguang Cc: Theodore Ts'o Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 91f68b7359144aa40bb9668124543d15284750b4 Author: Wu Fengguang Date: Wed Jan 7 18:09:12 2009 -0800 generic swap(): introduce global macro swap(a, b) There have been some local definitions of swap(), it's time to replace them all with a uniform one. Signed-off-by: Wu Fengguang Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit b53907c0100a353a7ac53bed260e735e5ccbbbcc Author: Wu Fengguang Date: Wed Jan 7 18:09:11 2009 -0800 generic swap(): lib/sort.c: rename swap to swap_func This is to avoid name clashes for the introduction of a global swap() macro. Signed-off-by: Wu Fengguang Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit b67445fc17489fff5c8052147184e366abdb3d80 Author: Wu Fengguang Date: Wed Jan 7 18:09:10 2009 -0800 generic swap(): iphase: rename swap() to swap_byte_order() In preparation for the introduction of a generic swap() macro. Signed-off-by: Wu Fengguang Acked-by: David S. Miller Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 1a8a27c974d0f09c61874b81bf9670f1478b649a Author: Wu Fengguang Date: Wed Jan 7 18:09:10 2009 -0800 generic swap(): sparc: rename swap() to swap_ulong() In preparation for the introduction of a generic swap() macro. Signed-off-by: Wu Fengguang Acked-by: David S. Miller Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit c19a28e1193a6c854738d609ae9b2fe2f6e6bea4 Author: Fernando Carrijo Date: Wed Jan 7 18:09:08 2009 -0800 remove lots of double-semicolons Cc: Ingo Molnar Cc: Thomas Gleixner Acked-by: Theodore Ts'o Acked-by: Mark Fasheh Acked-by: David S. Miller Cc: James Morris Acked-by: Casey Schaufler Acked-by: Takashi Iwai Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit f15659628b43b27c20447c731456c39cbec973e9 Author: roel kluin Date: Wed Jan 7 18:09:08 2009 -0800 romfs: romfs_iget() - unsigned ino >= 0 is always true romfs_strnlen() returns int unsigned X >= 0 is always true [akpm@linux-foundation.org: coding-style fixes] Signed-off-by: roel kluin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 921d58c0e6992f74d3a48180604a298f115d2dee Author: Magnus Damm Date: Wed Jan 7 18:09:06 2009 -0800 vmcore: remove saved_max_pfn check Remove the saved_max_pfn check from the /proc/vmcore function read_from_oldmem(). No need to verify, we should be able to just trust that "elfcorehdr=" is correctly passed to the crash kernel on the kernel command line like we do with other parameters. The read_from_oldmem() function in fs/proc/vmcore.c is quite similar to read_from_oldmem() in drivers/char/mem.c, but only in the latter it makes sense to use saved_max_pfn. For oldmem it is used to determine when to stop reading. For vmcore we already have the elf header info pointing out the physical memory regions, no need to pass the end-of- old-memory twice. Removing the saved_max_pfn check from vmcore makes it possible for architectures to skip oldmem but still support crash dump through vmcore - without the need for the old saved_max_pfn cruft. Architectures that want to play safe can do the saved_max_pfn check in copy_oldmem_page(). Not sure why anyone would want to do that, but that's even safer than today - the saved_max_pfn check in vmcore removed by this patch only checks the first page. Signed-off-by: Magnus Damm Acked-by: Vivek Goyal Acked-by: Simon Horman Cc: "Eric W. Biederman" Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 4037014e3fb71e998189374e19ca141c59d15323 Author: Evgeniy Polyakov Date: Wed Jan 7 18:09:05 2009 -0800 w1: send status messages after command processing Send completion status of the commands to the userspace. Message and protocol are described in the documentation. Signed-off-by: Evgeniy Polyakov Cc: Paul Alfille Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit f89735c4e281e8642907b38640c076ae5048f3a6 Author: Evgeniy Polyakov Date: Wed Jan 7 18:09:04 2009 -0800 w1: added w1 reset command Command which allows to reset the bus. Signed-off-by: Evgeniy Polyakov Cc: Paul Alfille Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 325a06fb13614fd4e5ea36996c0ce043752a93a0 Author: Evgeniy Polyakov Date: Wed Jan 7 18:09:03 2009 -0800 w1: move w1 commands from defines to enum Signed-off-by: Evgeniy Polyakov Cc: Paul Alfille Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit c7e26631d27b61d66ea6fb9b113fb92f1fa20d90 Author: Evgeniy Polyakov Date: Wed Jan 7 18:09:03 2009 -0800 w1: allow master IO commands This small patchset extendes existing commands with reset, master IO and status messages. Reset is used to reset the bus for given master device, master IO command allows to initiate IO against bus itself not selecting slave device first, which can be used to probe the device for example. And status messages carry command completion status back to the userspace (namely very useful to get -ENODEV from when requested device was not found). Great thanks to Paul Alfille of OWFS for testing and commands suggestions. This patch: Allow starting of IO not against already found slave devices, but against the bus itself, which can be used for example to probe devices. [akpm@linux-foundation.org: reindent switch statements] Signed-off-by: Evgeniy Polyakov Cc: Paul Alfille Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit e4e056aa3518197830c884b85268799b1868e8e3 Author: Evgeniy Polyakov Date: Wed Jan 7 18:09:02 2009 -0800 w1: documentation update Signed-off-by: Evgeniy Polyakov Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 3b8384070ea1dc358f6da6233b3b6c0926ae1bf4 Author: Evgeniy Polyakov Date: Wed Jan 7 18:09:01 2009 -0800 w1: list slaves commands Initiates search (or alarm search) and returns all found devices to userspace. Found devices are not added into the system (i.e. they are not attached to family devices or bus masters), it will be done via (if was not done yet) usual timed searching. Signed-off-by: Evgeniy Polyakov Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 9be62e0b2fadaf5ffeb32fd1b910ef1fe6bd43db Author: Evgeniy Polyakov Date: Wed Jan 7 18:09:01 2009 -0800 w1: add touch block command Writes and returns sampled data back to userspace. Signed-off-by: Evgeniy Polyakov Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 610705e780395ef30a1b8e53de150c37381ca31f Author: Evgeniy Polyakov Date: Wed Jan 7 18:08:59 2009 -0800 w1: add list masters w1 command This patch series introduces and extends several userspace commands used with netlink protocol. Touch block command allows to write data and return sampled data to the userspace. Extended search and alarm seach commands to return list of slave devices found during given search. List masters command allows to send all registered master IDs to the userspace. Great thanks to Paul Alfille (owfs) who tested this implementation and wrote w1-to-network daemon http://sourceforge.net/projects/w1repeater/ and Frederik Deweerdt and Randy Dunlap for review. This patch: Returns list of registered bus master devices. Signed-off-by: Evgeniy Polyakov Cc: Paul Alfille Cc: Frederik Deweerdt Cc: Randy Dunlap Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit a5fd9139f74c722a190b3bd69bbd611a8d91b388 Author: Sascha Hauer Date: Wed Jan 7 18:08:58 2009 -0800 w1: add 1-wire master driver for i.MX27 / i.MX31 This patch adds support for the 1-wire master interface for i.MX27 and i.MX31. Signed-off-by: Luotao Fu Signed-off-by: Sascha Hauer Signed-off-by: Evgeniy Polyakov Cc: Russell King Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 09f50c95425318232c534d931d8c28b96a3ce2c5 Author: David Smith Date: Wed Jan 7 18:08:57 2009 -0800 tpm: clean up tpm_nsc driver for platform_device suspend/resume compliance Signed-off-by: Marcel Selhorst Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit ad8f07ccaddca1b0f52d0e9677855122a46cfafc Author: Matthew Garrett Date: Wed Jan 7 18:08:56 2009 -0800 misc: add dell-laptop driver Add a driver for controlling Dell-specific backlight and rfkill interfaces. This driver makes use of the dcdbas interface to the Dell firmware to allow the backlight and rfkill interfaces on Dell systems to be driven through the standardised sysfs interfaces. Signed-off-by: Matthew Garrett Cc: Matt Domsch Cc: Ivo van Doorn Cc: Len Brown Cc: Richard Purdie Cc: Henrique de Moraes Holschuh Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 3cab7fd964916a5474dcaeb23b6723fbfb34cc66 Author: Matthew Garrett Date: Wed Jan 7 18:08:54 2009 -0800 dcdbas: export functionality for use in other drivers The dcdbas code allows calls to be made into the firmware on Dell systems. Exporting this to other drivers allows them to implement Dell-specific functionality in a safe way. Signed-off-by: Matthew Garrett Cc: Matt Domsch Cc: Greg KH Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit f06295b44c296c8fb08823a3118468ae343b60f2 Author: Kees Cook Date: Wed Jan 7 18:08:52 2009 -0800 ELF: implement AT_RANDOM for glibc PRNG seeding While discussing[1] the need for glibc to have access to random bytes during program load, it seems that an earlier attempt to implement AT_RANDOM got stalled. This implements a random 16 byte string, available to every ELF program via a new auxv AT_RANDOM vector. [1] http://sourceware.org/ml/libc-alpha/2008-10/msg00006.html Ulrich said: glibc needs right after startup a bit of random data for internal protections (stack canary etc). What is now in upstream glibc is that we always unconditionally open /dev/urandom, read some data, and use it. For every process startup. That's slow. ... The solution is to provide a limited amount of random data to the starting process in the aux vector. I suggested 16 bytes and this is what the patch implements. If we need only 16 bytes or less we use the data directly. If we need more we'll use the 16 bytes to see a PRNG. This avoids the costly /dev/urandom use and it allows the kernel to use the most adequate source of random data for this purpose. It might not be the same pool as that for /dev/urandom. Concerns were expressed about the depletion of the randomness pool. But this patch doesn't make the situation worse, it doesn't deplete entropy more than happens now. Signed-off-by: Kees Cook Cc: Jakub Jelinek Cc: Andi Kleen Cc: Ulrich Drepper Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit a6684999f7c6bddd75cf9755ad7ff44435f72fff Author: Sukadev Bhattiprolu Date: Wed Jan 7 18:08:50 2009 -0800 mqueue: fix si_pid value in mqueue do_notify() If a process registers for asynchronous notification on a POSIX message queue, it gets a signal and a siginfo_t structure when a message arrives on the message queue. The si_pid in the siginfo_t structure is set to the PID of the process that sent the message to the message queue. The principle is the following: . when mq_notify(SIGEV_SIGNAL) is called, the caller registers for notification when a msg arrives. The associated pid structure is stroed into inode_info->notify_owner. Let's call this process P1. . when mq_send() is called by say P2, P2 sends a signal to P1 to notify him about msg arrival. The way .si_pid is set today is not correct, since it doesn't take into account the fact that the process that is sending the message might not be in the same namespace as the notified one. This patch proposes to set si_pid to the sender's pid into the notify_owner namespace. Signed-off-by: Nadia Derbey Signed-off-by: Sukadev Bhattiprolu Acked-by: Oleg Nesterov Cc: Roland McGrath Cc: Bastian Blank Cc: Pavel Emelyanov Cc: Eric W. Biederman Acked-by: Serge Hallyn Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 61bce0f1371cfff497fe85594fd39d1a0b15ebe1 Author: Eric W. Biederman Date: Wed Jan 7 18:08:49 2009 -0800 pid: generalize task_active_pid_ns Currently task_active_pid_ns is not safe to call after a task becomes a zombie and exit_task_namespaces is called, as nsproxy becomes NULL. By reading the pid namespace from the pid of the task we can trivially solve this problem at the cost of one extra memory read in what should be the same cacheline as we read the namespace from. When moving things around I have made task_active_pid_ns out of line because keeping it in pid_namespace.h would require adding includes of pid.h and sched.h that I don't think we want. This change does make task_active_pid_ns unsafe to call during copy_process until we attach a pid on the task_struct which seems to be a reasonable trade off. Signed-off-by: Eric W. Biederman Signed-off-by: Sukadev Bhattiprolu Cc: Oleg Nesterov Cc: Roland McGrath Cc: Bastian Blank Cc: Pavel Emelyanov Cc: Nadia Derbey Acked-by: Serge Hallyn Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit f9fb860f67b9542cd78d1558dec7058092b57d8e Author: Eric W. Biederman Date: Wed Jan 7 18:08:46 2009 -0800 pid: implement ns_of_pid A current problem with the pid namespace is that it is easy to do pid related work after exit_task_namespaces which drops the nsproxy pointer. However if we are doing pid namespace related work we are always operating on some struct pid which retains the pid_namespace pointer of the pid namespace it was allocated in. So provide ns_of_pid which allows us to find the pid namespace a pid was allocated in. Using this we have the needed infrastructure to do pid namespace related work at anytime we have a struct pid, removing the chance of accidentally having a NULL pointer dereference when accessing current->nsproxy. Signed-off-by: Eric W. Biederman Signed-off-by: Sukadev Bhattiprolu Cc: Oleg Nesterov Cc: Roland McGrath Cc: Bastian Blank Cc: Pavel Emelyanov Cc: Nadia Derbey Acked-by: Serge Hallyn Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 6af866af34a96fed24a55979a78b6f73bd4e8e87 Author: Li Zefan Date: Wed Jan 7 18:08:45 2009 -0800 cpuset: remove remaining pointers to cpumask_t Impact: cleanups, use new cpumask API Final trivial cleanups: mainly s/cpumask_t/struct cpumask Note there is a FIXME in generate_sched_domains(). A future patch will change struct cpumask *doms to struct cpumask *doms[]. (I suppose Rusty will do this.) Signed-off-by: Li Zefan Cc: Ingo Molnar Cc: Rusty Russell Acked-by: Mike Travis Cc: Paul Menage Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 300ed6cbb70718872cb4936d1d22ef295f9ba44d Author: Li Zefan Date: Wed Jan 7 18:08:44 2009 -0800 cpuset: convert cpuset->cpus_allowed to cpumask_var_t Impact: use new cpumask API This patch mainly does the following things: - change cs->cpus_allowed from cpumask_t to cpumask_var_t - call alloc_bootmem_cpumask_var() for top_cpuset in cpuset_init_early() - call alloc_cpumask_var() for other cpusets - replace cpus_xxx() to cpumask_xxx() Signed-off-by: Li Zefan Cc: Ingo Molnar Cc: Rusty Russell Acked-by: Mike Travis Cc: Paul Menage Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 645fcc9d2f6946f97a41c8d00edee38f8a6f0060 Author: Li Zefan Date: Wed Jan 7 18:08:43 2009 -0800 cpuset: don't allocate trial cpuset on stack Impact: cleanups, reduce stack usage This patch prepares for the next patch. When we convert cpuset.cpus_allowed to cpumask_var_t, (trialcs = *cs) no longer works. Another result of this patch is reducing stack usage of trialcs. sizeof(*cs) can be as large as 148 bytes on x86_64, so it's really not good to have it on stack. Signed-off-by: Li Zefan Cc: Ingo Molnar Cc: Rusty Russell Acked-by: Mike Travis Cc: Paul Menage Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 2341d1b6598c7146d64a5050b53a72a5a819617f Author: Li Zefan Date: Wed Jan 7 18:08:42 2009 -0800 cpuset: convert cpuset_attach() to use cpumask_var_t Impact: reduce stack usage Allocate a global cpumask_var_t at boot, and use it in cpuset_attach(), so we won't fail cpuset_attach(). Signed-off-by: Li Zefan Cc: Ingo Molnar Cc: Rusty Russell Acked-by: Mike Travis Cc: Paul Menage Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 5771f0a2236df69683e9abea87f35f522c97ff94 Author: Li Zefan Date: Wed Jan 7 18:08:41 2009 -0800 cpuset: remove on stack cpumask_t in cpuset_can_attach() Impact: reduce stack usage Just use cs->cpus_allowed, and no need to allocate a cpumask_var_t. Signed-off-by: Li Zefan Cc: Ingo Molnar Cc: Rusty Russell Acked-by: Mike Travis Cc: Paul Menage Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 5a7625df725a486ad600b0036b6111dbd6321c41 Author: Li Zefan Date: Wed Jan 7 18:08:41 2009 -0800 cpuset: remove on stack cpumask_t in cpuset_sprintf_cpulist() This patchset converts cpuset to use new cpumask API, and thus remove on stack cpumask_t to reduce stack usage. Before: # cat kernel/cpuset.c include/linux/cpuset.h | grep -c cpumask_t 21 After: # cat kernel/cpuset.c include/linux/cpuset.h | grep -c cpumask_t 0 This patch: Impact: reduce stack usage It's safe to call cpulist_scnprintf inside callback_mutex, and thus we can just remove the cpumask_t and no need to allocate a cpumask_var_t. Signed-off-by: Li Zefan Cc: Ingo Molnar Cc: Rusty Russell Acked-by: Mike Travis Cc: Paul Menage Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit f5813d94279a18ff5936d675e24b44b44a571197 Author: Miao Xie Date: Wed Jan 7 18:08:40 2009 -0800 cpusets: set task's cpu_allowed to cpu_possible_map when attaching it into top cpuset I found a bug on my dual-cpu box. I created a sub cpuset in top cpuset and assign 1 to its cpus. And then we attach some tasks into this sub cpuset. After this, we offline CPU1. Now, the tasks in this new cpuset are moved into top cpuset automatically because there is no cpu in sub cpuset. Then we online CPU1, we find all the tasks which doesn't belong to top cpuset originally just run on CPU0. We fix this bug by setting task's cpu_allowed to cpu_possible_map when attaching it into top cpuset. This method needn't modify the current behavior of cpusets on CPU hotplug, and all of tasks in top cpuset use cpu_possible_map to initialize their cpu_allowed. Signed-off-by: Miao Xie Cc: Paul Menage Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 13337714f3b0307dc7f75ef5d83ecf0db2abbd65 Author: Lai Jiangshan Date: Wed Jan 7 18:08:39 2009 -0800 cpuset: rcu_read_lock() to protect task_cs() task_cs() calls task_subsys_state(). We must use rcu_read_lock() to protect cgroup_subsys_state(). It's correct that top_cpuset is never freed, but cgroup_subsys_state() accesses css_set, this css_set maybe freed when task_cs() called. We use use rcu_read_lock() to protect it. Signed-off-by: Lai Jiangshan Acked-by: Paul Menage Cc: KAMEZAWA Hiroyuki Cc: Pavel Emelyanov Cc: Balbir Singh Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit e7c5ec9193d32b9559a3bb8893ceedbda85201ff Author: Paul Menage Date: Wed Jan 7 18:08:38 2009 -0800 cgroups: add css_tryget() Add css_tryget(), that obtains a counted reference on a CSS. It is used in situations where the caller has a "weak" reference to the CSS, i.e. one that does not protect the cgroup from removal via a reference count, but would instead be cleaned up by a destroy() callback. css_tryget() will return true on success, or false if the cgroup is being removed. This is similar to Kamezawa Hiroyuki's patch from a week or two ago, but with the difference that in the event of css_tryget() racing with a cgroup_rmdir(), css_tryget() will only return false if the cgroup really does get removed. This implementation is done by biasing css->refcnt, so that a refcnt of 1 means "releasable" and 0 means "released or releasing". In the event of a race, css_tryget() distinguishes between "released" and "releasing" by checking for the CSS_REMOVED flag in css->flags. Signed-off-by: Paul Menage Tested-by: KAMEZAWA Hiroyuki Cc: Li Zefan Cc: Balbir Singh Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 2cb378c862777d050c20db903b119a029845fdcb Author: Paul Menage Date: Wed Jan 7 18:08:37 2009 -0800 cgroups: use hierarchy_mutex in memory controller Update the memory controller to use its hierarchy_mutex rather than calling cgroup_lock() to protected against cgroup_mkdir()/cgroup_rmdir() from occurring in its hierarchy. Signed-off-by: Paul Menage Tested-by: KAMEZAWA Hiroyuki Cc: Li Zefan Cc: Balbir Singh Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 999cd8a450f8f93701669a61cac4d3b19eca07e8 Author: Paul Menage Date: Wed Jan 7 18:08:36 2009 -0800 cgroups: add a per-subsystem hierarchy_mutex These patches introduce new locking/refcount support for cgroups to reduce the need for subsystems to call cgroup_lock(). This will ultimately allow the atomicity of cgroup_rmdir() (which was removed recently) to be restored. These three patches give: 1/3 - introduce a per-subsystem hierarchy_mutex which a subsystem can use to prevent changes to its own cgroup tree 2/3 - use hierarchy_mutex in place of calling cgroup_lock() in the memory controller 3/3 - introduce a css_tryget() function similar to the one recently proposed by Kamezawa, but avoiding spurious refcount failures in the event of a race between a css_tryget() and an unsuccessful cgroup_rmdir() Future patches will likely involve: - using hierarchy mutex in place of cgroup_lock() in more subsystems where appropriate - restoring the atomicity of cgroup_rmdir() with respect to cgroup_create() This patch: Add a hierarchy_mutex to the cgroup_subsys object that protects changes to the hierarchy observed by that subsystem. It is taken by the cgroup subsystem (in addition to cgroup_mutex) for the following operations: - linking a cgroup into that subsystem's cgroup tree - unlinking a cgroup from that subsystem's cgroup tree - moving the subsystem to/from a hierarchy (including across the bind() callback) Thus if the subsystem holds its own hierarchy_mutex, it can safely traverse its own hierarchy. Signed-off-by: Paul Menage Tested-by: KAMEZAWA Hiroyuki Cc: Li Zefan Cc: Balbir Singh Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit b5a84319a4343a0db753436fd8147e61eaafa7ea Author: KAMEZAWA Hiroyuki Date: Wed Jan 7 18:08:35 2009 -0800 memcg: fix shmem's swap accounting Now, you can see following even when swap accounting is enabled. 1. Create Group 01, and 02. 2. allocate a "file" on tmpfs by a task under 01. 3. swap out the "file" (by memory pressure) 4. Read "file" from a task in group 02. 5. the charge of "file" is moved to group 02. This is not ideal behavior. This is because SwapCache which was loaded by read-ahead is not taken into account.. This is a patch to fix shmem's swapcache behavior. - remove mem_cgroup_cache_charge_swapin(). - Add SwapCache handler routine to mem_cgroup_cache_charge(). By this, shmem's file cache is charged at add_to_page_cache() with GFP_NOWAIT. - pass the page of swapcache to shrink_mem_cgroup. Signed-off-by: KAMEZAWA Hiroyuki Cc: Daisuke Nishimura Cc: Balbir Singh Cc: Paul Menage Cc: Li Zefan Cc: Hugh Dickins Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 544122e5e0ee27d5aac4a441f7746712afbf248c Author: KAMEZAWA Hiroyuki Date: Wed Jan 7 18:08:34 2009 -0800 memcg: fix LRU accounting for SwapCache Now, a page can be deleted from SwapCache while do_swap_page(). memcg-fix-swap-accounting-leak-v3.patch handles that, but, LRU handling is still broken. (above behavior broke assumption of memcg-synchronized-lru patch.) This patch is a fix for LRU handling (especially for per-zone counters). At charging SwapCache, - Remove page_cgroup from LRU if it's not used. - Add page cgroup to LRU if it's not linked to. Reported-by: Daisuke Nishimura Signed-off-by: KAMEZAWA Hiroyuki Cc: Balbir Singh Cc: Paul Menage Cc: Li Zefan Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 54595fe2652f04dc8f5b985312c7cef5aa7bf722 Author: KAMEZAWA Hiroyuki Date: Wed Jan 7 18:08:33 2009 -0800 memcg: use css_tryget in memcg From:KAMEZAWA Hiroyuki css_tryget() newly is added and we can know css is alive or not and get refcnt of css in very safe way. ("alive" here means "rmdir/destroy" is not called.) This patch replaces css_get() to css_tryget(), where I cannot explain why css_get() is safe. And removes memcg->obsolete flag. Reviewed-by: Daisuke Nishimura Signed-off-by: KAMEZAWA Hiroyuki Cc: Balbir Singh Cc: Paul Menage Cc: Daisuke Nishimura Cc: Li Zefan Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit a7ba0eef3af51cd1b6fc4028e4705b3ea2ea9469 Author: KAMEZAWA Hiroyuki Date: Wed Jan 7 18:08:32 2009 -0800 memcg: fix double free and make refcnt sane 1. Fix double-free BUG in error route of mem_cgroup_create(). mem_cgroup_free() itself frees per-zone-info. 2. Making refcnt of memcg simple. Add 1 refcnt at creation and call free when refcnt goes down to 0. Reviewed-by: Daisuke Nishimura Signed-off-by: KAMEZAWA Hiroyuki Cc: Balbir Singh Cc: Paul Menage Cc: Daisuke Nishimura Cc: Li Zefan Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 03f3c433648a97ae7c86be789edba67690f6ea60 Author: KAMEZAWA Hiroyuki Date: Wed Jan 7 18:08:31 2009 -0800 memcg: fix swap accounting leak Fix swapin charge operation of memcg. Now, memcg has hooks to swap-out operation and checks SwapCache is really unused or not. That check depends on contents of struct page. I.e. If PageAnon(page) && page_mapped(page), the page is recoginized as still-in-use. Now, reuse_swap_page() calles delete_from_swap_cache() before establishment of any rmap. Then, in followinig sequence (Page fault with WRITE) try_charge() (charge += PAGESIZE) commit_charge() (Check page_cgroup is used or not..) reuse_swap_page() -> delete_from_swapcache() -> mem_cgroup_uncharge_swapcache() (charge -= PAGESIZE) ...... New charge is uncharged soon.... To avoid this, move commit_charge() after page_mapcount() goes up to 1. By this, try_charge() (usage += PAGESIZE) reuse_swap_page() (may usage -= PAGESIZE if PCG_USED is set) commit_charge() (If page_cgroup is not marked as PCG_USED, add new charge.) Accounting will be correct. Changelog (v2) -> (v3) - fixed invalid charge to swp_entry==0. - updated documentation. Changelog (v1) -> (v2) - fixed comment. [nishimura@mxp.nes.nec.co.jp: swap accounting leak doc fix] Signed-off-by: KAMEZAWA Hiroyuki Acked-by: Balbir Singh Tested-by: Balbir Singh Cc: Hugh Dickins Cc: Daisuke Nishimura Signed-off-by: Daisuke Nishimura Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 42e9abb628def2c335a4ecf130bb6c88d916d885 Author: Daisuke Nishimura Date: Wed Jan 7 18:08:30 2009 -0800 memcg: change try_to_free_pages to hierarchical_reclaim mem_cgroup_hierarchicl_reclaim() works properly even when !use_hierarchy now (by memcg-hierarchy-avoid-unnecessary-reclaim.patch), so, instead of try_to_free_mem_cgroup_pages(), it should be used in many cases. The only exception is force_empty. The group has no children in this case. Signed-off-by: Daisuke Nishimura Acked-by: KAMEZAWA Hiroyuki Acked-by: Balbir Singh Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 7f4d454dee2e0bdd21bafd413d1c53e443a26540 Author: Daisuke Nishimura Date: Wed Jan 7 18:08:29 2009 -0800 memcg: avoid deadlock caused by race between oom and cpuset_attach mpol_rebind_mm(), which can be called from cpuset_attach(), does down_write(mm->mmap_sem). This means down_write(mm->mmap_sem) can be called under cgroup_mutex. OTOH, page fault path does down_read(mm->mmap_sem) and calls mem_cgroup_try_charge_xxx(), which may eventually calls mem_cgroup_out_of_memory(). And mem_cgroup_out_of_memory() calls cgroup_lock(). This means cgroup_lock() can be called under down_read(mm->mmap_sem). If those two paths race, deadlock can happen. This patch avoid this deadlock by: - remove cgroup_lock() from mem_cgroup_out_of_memory(). - define new mutex (memcg_tasklist) and serialize mem_cgroup_move_task() (->attach handler of memory cgroup) and mem_cgroup_out_of_memory. Signed-off-by: Daisuke Nishimura Reviewed-by: KAMEZAWA Hiroyuki Acked-by: Balbir Singh Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit a5e924f5f8abf97944e625d74967cc9452cfbce8 Author: Daisuke Nishimura Date: Wed Jan 7 18:08:28 2009 -0800 memcg: remove mem_cgroup_try_charge After previous patch, mem_cgroup_try_charge is not used by anyone, so we can remove it. Signed-off-by: Daisuke Nishimura Acked-by: KAMEZAWA Hiroyuki Cc: Balbir Singh Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 3bb4edf24b26358eccfc69ac8b9a9c36ccc312da Author: Daisuke Nishimura Date: Wed Jan 7 18:08:28 2009 -0800 memcg: don't trigger oom at page migration I think triggering OOM at mem_cgroup_prepare_migration would be just a bit overkill. Returning -ENOMEM would be enough for mem_cgroup_prepare_migration. The caller would handle the case anyway. Signed-off-by: Daisuke Nishimura Acked-by: KAMEZAWA Hiroyuki Acked-by: Balbir Singh Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 9836d89191edd4887ed026a9ce53d9dfac62ec1c Author: KAMEZAWA Hiroyuki Date: Wed Jan 7 18:08:27 2009 -0800 memcg: explain details and test document Documentation for implementation details and how to test. Just an example. feel free to modify, add, remove lines. Signed-off-by: KAMEZAWA Hiroyuki Cc: Balbir Singh Cc: Daisuke Nishimura Cc: Hugh Dickins Cc: KOSAKI Motohiro Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit fee7b548e6f2bd4bfd03a1a45d3afd593de7d5e9 Author: KAMEZAWA Hiroyuki Date: Wed Jan 7 18:08:26 2009 -0800 memcg: show real limit under hierarchy mode Show "real" limit of memcg. This helps my debugging and maybe useful for users. While testing hierarchy like this mount -t cgroup none /cgroup -t memory mkdir /cgroup/A set use_hierarchy==1 to "A" mkdir /cgroup/A/01 mkdir /cgroup/A/01/02 mkdir /cgroup/A/01/03 mkdir /cgroup/A/01/03/04 mkdir /cgroup/A/08 mkdir /cgroup/A/08/01 .... and set each own limit to them, "real" limit of each memcg is unclear. This patch shows real limit by checking all ancestors. Changelog: (v1) -> (v2) - remove "if" and use "min(a,b)" Acked-by: Balbir Singh Signed-off-by: KAMEZAWA Hiroyuki Cc: KOSAKI Motohiro Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit c772be939e078afd2505ede7d596a30f8f61de95 Author: KOSAKI Motohiro Date: Wed Jan 7 18:08:25 2009 -0800 memcg: fix calculation of active_ratio Currently, inactive_ratio of memcg is calculated at setting limit. because page_alloc.c does so and current implementation is straightforward porting. However, memcg introduced hierarchy feature recently. In hierarchy restriction, memory limit is not only decided memory.limit_in_bytes of current cgroup, but also parent limit and sibling memory usage. Then, The optimal inactive_ratio is changed frequently. So, everytime calculation is better. Tested-by: KAMEZAWA Hiroyuki Acked-by: KAMEZAWA Hiroyuki Signed-off-by: KOSAKI Motohiro Cc: Balbir Singh Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit a7885eb8ad465ec9db99ac5b5e6680f0ca8e11c8 Author: KOSAKI Motohiro Date: Wed Jan 7 18:08:24 2009 -0800 memcg: swappiness Currently, /proc/sys/vm/swappiness can change swappiness ratio for global reclaim. However, memcg reclaim doesn't have tuning parameter for itself. In general, the optimal swappiness depend on workload. (e.g. hpc workload need to low swappiness than the others.) Then, per cgroup swappiness improve administrator tunability. Signed-off-by: KAMEZAWA Hiroyuki Signed-off-by: KOSAKI Motohiro Cc: Balbir Singh Cc: Daisuke Nishimura Cc: Hugh Dickins Cc: KOSAKI Motohiro Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 2733c06ac864ed40b9dfbbd5270f3f16949bd4a1 Author: KOSAKI Motohiro Date: Wed Jan 7 18:08:23 2009 -0800 memcg: protect prev_priority Currently, mem_cgroup doesn't have own lock and almost its member doesn't need. (e.g. mem_cgroup->info is protected by zone lock, mem_cgroup->stat is per cpu variable) However, there is one explict exception. mem_cgroup->prev_priorit need lock, but doesn't protect. Luckly, this is NOT bug because prev_priority isn't used for current reclaim code. However, we plan to use prev_priority future again. Therefore, fixing is better. In addition, we plan to reuse this lock for another member. Then "reclaim_param_lock" name is better than "prev_priority_lock". Acked-by: KAMEZAWA Hiroyuki Signed-off-by: KOSAKI Motohiro Cc: Balbir Singh Cc: Daisuke Nishimura Cc: Hugh Dickins Cc: KOSAKI Motohiro Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit e72e2bd6747c7a5c432197b6614cf3a387e61a0e Author: KAMEZAWA Hiroyuki Date: Wed Jan 7 18:08:23 2009 -0800 memcg: rename scan global lru Rename scan_global_lru() to scanning_global_lru(). Signed-off-by: KAMEZAWA Hiroyuki Cc: Balbir Singh Cc: Daisuke Nishimura Cc: Hugh Dickins Cc: KOSAKI Motohiro Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 7f016ee8b6a9a43f768e6252021f169abec4fa1f Author: KOSAKI Motohiro Date: Wed Jan 7 18:08:22 2009 -0800 memcg: show reclaim stat Add the following four fields to memory.stat file: - inactive_ratio - recent_rotated_anon - recent_rotated_file - recent_scanned_anon - recent_scanned_file Acked-by: Rik van Riel Signed-off-by: KAMEZAWA Hiroyuki Signed-off-by: KOSAKI Motohiro Cc: Balbir Singh Cc: Daisuke Nishimura Cc: Hugh Dickins Cc: KOSAKI Motohiro Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 9439c1c95b5c25b8031b2a7eb7e1590eb84be7f5 Author: KOSAKI Motohiro Date: Wed Jan 7 18:08:21 2009 -0800 memcg: remove mem_cgroup_cal_reclaim() Now, get_scan_ratio() return correct value although memcg reclaim. Then, mem_cgroup_calc_reclaim() can be removed. So, memcg reclaim get the same capability of anon/file reclaim balancing as global reclaim now. Acked-by: KAMEZAWA Hiroyuki Acked-by: Rik van Riel Signed-off-by: KOSAKI Motohiro Cc: Balbir Singh Cc: Daisuke Nishimura Cc: Hugh Dickins Cc: KOSAKI Motohiro Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 3e2f41f1f64744f7942980d93cc93dd3e5924560 Author: KOSAKI Motohiro Date: Wed Jan 7 18:08:20 2009 -0800 memcg: add zone_reclaim_stat Introduce mem_cgroup_per_zone::reclaim_stat member and its statics collecting function. Now, get_scan_ratio() can calculate correct value on memcg reclaim. [hugh@veritas.com: avoid reclaim_stat oops when disabled] Acked-by: KAMEZAWA Hiroyuki Acked-by: Rik van Riel Signed-off-by: KOSAKI Motohiro Cc: Balbir Singh Cc: Daisuke Nishimura Cc: Hugh Dickins Cc: KOSAKI Motohiro Signed-off-by: Hugh Dickins Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit a3d8e0549d913e30968fa02e505dfe02c0a23e0d Author: KOSAKI Motohiro Date: Wed Jan 7 18:08:19 2009 -0800 memcg: add mem_cgroup_zone_nr_pages() Introduce mem_cgroup_zone_nr_pages(). It is called by zone_nr_pages() helper function. This patch doesn't have any behavior change. Acked-by: KAMEZAWA Hiroyuki Acked-by: Rik van Riel Signed-off-by: KOSAKI Motohiro Acked-by: Balbir Singh Cc: Daisuke Nishimura Cc: Hugh Dickins Cc: KOSAKI Motohiro Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 14797e2363c2b2f1ce139fd1c5a215e4e05aa1d9 Author: KOSAKI Motohiro Date: Wed Jan 7 18:08:18 2009 -0800 memcg: add inactive_anon_is_low() The inactive_anon_is_low() is key component of active/inactive anon balancing on reclaim. However current inactive_anon_is_low() function only consider global reclaim. Therefore, we need following ugly scan_global_lru() condition. if (lru == LRU_ACTIVE_ANON && (!scan_global_lru(sc) || inactive_anon_is_low(zone))) { shrink_active_list(nr_to_scan, zone, sc, priority, file); return 0; it cause that memcg reclaim always deactivate pages when shrink_list() is called. To make mem_cgroup_inactive_anon_is_low() improve active/inactive anon balancing of memcgroup. Acked-by: KAMEZAWA Hiroyuki Acked-by: Rik van Riel Signed-off-by: KOSAKI Motohiro Cc: Cyrill Gorcunov Cc: "Pekka Enberg" Cc: Balbir Singh Cc: Daisuke Nishimura Cc: Hugh Dickins Cc: KOSAKI Motohiro Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 549927620b04a8f8073ce2ee2a8977f209af2ee5 Author: KOSAKI Motohiro Date: Wed Jan 7 18:08:18 2009 -0800 memcg: add null check to page_cgroup_zoneinfo() If CONFIG_CGROUP_MEM_RES_CTLR_SWAP=y, page_cgroup::mem_cgroup can be NULL. Therefore null checking is better. A later patch uses this function. Acked-by: KAMEZAWA Hiroyuki Acked-by: Rik van Riel Signed-off-by: KOSAKI Motohiro Cc: Balbir Singh Cc: Daisuke Nishimura Cc: Hugh Dickins Cc: KOSAKI Motohiro Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit eeee9a8cd1e93c8b94e7788790fa9e2f8910c779 Author: KOSAKI Motohiro Date: Wed Jan 7 18:08:17 2009 -0800 mm: make get_scan_ratio() safe for memcg Currently, get_scan_ratio() always calculate the balancing value for global reclaim and memcg reclaim doesn't use it. Therefore it doesn't have scan_global_lru() condition. However, we plan to expand get_scan_ratio() to be usable for memcg too, latter. Then, The dependency code of global reclaim in the get_scan_ratio() insert into scan_global_lru() condision explictly. This patch doesn't have any functional change. Acked-by: Rik van Riel Signed-off-by: KOSAKI Motohiro Cc: Balbir Singh Cc: Daisuke Nishimura Cc: Hugh Dickins Cc: KOSAKI Motohiro Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit c9f299d9862deadf9fbee3ca28d915fdb006975a Author: KOSAKI Motohiro Date: Wed Jan 7 18:08:16 2009 -0800 mm: add zone nr_pages helper function Add zone_nr_pages() helper function. It is used by a later patch. This patch doesn't have any functional change. Reviewed-by: KAMEZAWA Hiroyuki Signed-off-by: KOSAKI Motohiro Acked-by: Rik van Riel Cc: Balbir Singh Cc: Daisuke Nishimura Cc: Hugh Dickins Cc: KOSAKI Motohiro Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 6e9015716ae9b59e9635d692fddfcfb9582c146c Author: KOSAKI Motohiro Date: Wed Jan 7 18:08:15 2009 -0800 mm: introduce zone_reclaim struct Add zone_reclam_stat struct for later enhancement. A later patch uses this. This patch doesn't any behavior change (yet). Reviewed-by: KAMEZAWA Hiroyuki Signed-off-by: KOSAKI Motohiro Acked-by: Rik van Riel Cc: Balbir Singh Cc: Daisuke Nishimura Cc: Hugh Dickins Cc: KOSAKI Motohiro Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit f89eb90e33fd4e4e0cc1a6d20afd63c5a561885a Author: KOSAKI Motohiro Date: Wed Jan 7 18:08:14 2009 -0800 inactive_anon_is_low: move to vmscan The inactive_anon_is_low() is called only vmscan. Then it can move to vmscan.c This patch doesn't have any functional change. Reviewd-by: KAMEZAWA Hiroyuki Acked-by: Rik van Riel Signed-off-by: KOSAKI Motohiro Cc: Balbir Singh Cc: Daisuke Nishimura Cc: Hugh Dickins Cc: KOSAKI Motohiro Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 670ec2f170301425fc4fdfa63d40652071fe85f6 Author: Daisuke Nishimura Date: Wed Jan 7 18:08:13 2009 -0800 memcg: hierarchy avoid unnecessary reclaim If hierarchy is not used, no tree-walk is necessary. Reviewed-by: KOSAKI Motohiro Signed-off-by: Daisuke Nishimura Signed-off-by: KAMEZAWA Hiroyuki Cc: Balbir Singh Cc: Daisuke Nishimura Cc: Hugh Dickins Cc: KOSAKI Motohiro Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit a7fe942e94b2f66aa0f11d37699c0ec8155d3ad1 Author: KAMEZAWA Hiroyuki Date: Wed Jan 7 18:08:13 2009 -0800 memcg: swapout refcnt fix css's refcnt is dropped before end of following access. Hold it until end of access. Reported-by: Li Zefan Signed-off-by: KAMEZAWA Hiroyuki Cc: Balbir Singh Cc: Daisuke Nishimura Cc: Hugh Dickins Cc: KOSAKI Motohiro Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit b85a96c0b6cb79c67e7b01b66368f2e31579d7c5 Author: Daisuke Nishimura Date: Wed Jan 7 18:08:12 2009 -0800 memcg: memory swap controller: fix limit check There are scatterd calls of res_counter_check_under_limit(), and most of them don't take mem+swap accounting into account. define mem_cgroup_check_under_limit() and avoid direct use of res_counter_check_limit(). Reported-by: Daisuke Nishimura Signed-off-by: Daisuke Nishimura Signed-off-by: KAMEZAWA Hiroyuki Cc: Balbir Singh Cc: Daisuke Nishimura Cc: Hugh Dickins Cc: KOSAKI Motohiro Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit f9717d28d673468883df8ac34b47268719ac5a3d Author: Nikanth Karthikesan Date: Wed Jan 7 18:08:11 2009 -0800 memcg: check group leader fix Remove unnecessary codes (...fragments of not-implemented functionalilty...) Reported-by: Nikanth Karthikesan Signed-off-by: Nikanth Karthikesan Signed-off-by: KAMEZAWA Hiroyuki Cc: Balbir Singh Cc: Daisuke Nishimura Cc: Hugh Dickins Cc: KOSAKI Motohiro Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 2c26fdd70c3094fa3e84caf9ef434911933d5477 Author: KAMEZAWA Hiroyuki Date: Wed Jan 7 18:08:10 2009 -0800 memcg: revert gfp mask fix My patch, memcg-fix-gfp_mask-of-callers-of-charge.patch changed gfp_mask of callers of charge to be GFP_HIGHUSER_MOVABLE for showing what will happen at memory reclaim. But in recent discussion, it's NACKed because it sounds ugly. This patch is for reverting it and add some clean up to gfp_mask of callers of charge. No behavior change but need review before generating HUNK in deep queue. This patch also adds explanation to meaning of gfp_mask passed to charge functions in memcontrol.h. Signed-off-by: KAMEZAWA Hiroyuki Cc: Balbir Singh Cc: Daisuke Nishimura Cc: Hugh Dickins Cc: KOSAKI Motohiro Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 887007561ae58628f03aa9046949747c04f63be8 Author: KAMEZAWA Hiroyuki Date: Wed Jan 7 18:08:09 2009 -0800 memcg: fix reclaim result checks check_under_limit logic was wrong and this check should be against mem_over_limit rather than mem. Reported-by: Li Zefan Signed-off-by: KAMEZAWA Hiroyuki Cc: Balbir Singh Cc: Daisuke Nishimura Cc: Badari Pulavarty Cc: Jan Blunck Cc: Hirokazu Takahashi Cc: Nick Piggin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit a636b327f731143ccc544b966cfd8de6cb6d72c6 Author: KAMEZAWA Hiroyuki Date: Wed Jan 7 18:08:08 2009 -0800 memcg: avoid unnecessary system-wide-oom-killer Current mmtom has new oom function as pagefault_out_of_memory(). It's added for select bad process rathar than killing current. When memcg hit limit and calls OOM at page_fault, this handler called and system-wide-oom handling happens. (means kernel panics if panic_on_oom is true....) To avoid overkill, check memcg's recent behavior before starting system-wide-oom. And this patch also fixes to guarantee "don't accnout against process with TIF_MEMDIE". This is necessary for smooth OOM. [akpm@linux-foundation.org: build fix] Signed-off-by: KAMEZAWA Hiroyuki Cc: Li Zefan Cc: Balbir Singh Cc: Daisuke Nishimura Cc: Badari Pulavarty Cc: Jan Blunck Cc: Hirokazu Takahashi Cc: Nick Piggin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 2e4d40915fb85207fe48cfc31201824ec6d7426e Author: Lai Jiangshan Date: Wed Jan 7 18:08:07 2009 -0800 memcontrol: rcu_read_lock() to protect mm_match_cgroup() mm_match_cgroup() calls cgroup_subsys_state(). We must use rcu_read_lock() to protect cgroup_subsys_state(). Signed-off-by: Lai Jiangshan Cc: Paul Menage Reviewed-by: KAMEZAWA Hiroyuki Cc: Pavel Emelyanov Cc: Balbir Singh Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 18f59ea7de08db2449ba99185e8d8cc30e7acac5 Author: Balbir Singh Date: Wed Jan 7 18:08:07 2009 -0800 memcg: memory cgroup hierarchy feature selector Don't enable multiple hierarchy support by default. This patch introduces a features element that can be set to enable the nested depth hierarchy feature. This feature can only be enabled when the cgroup for which the feature this is enabled, has no children. Signed-off-by: Balbir Singh Cc: YAMAMOTO Takashi Cc: Paul Menage Cc: Li Zefan Cc: David Rientjes Cc: Pavel Emelianov Cc: Dhaval Giani Cc: KAMEZAWA Hiroyuki Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 6d61ef409d6ba168972f7c2f8c35baaade636a58 Author: Balbir Singh Date: Wed Jan 7 18:08:06 2009 -0800 memcg: memory cgroup hierarchical reclaim This patch introduces hierarchical reclaim. When an ancestor goes over its limit, the charging routine points to the parent that is above its limit. The reclaim process then starts from the last scanned child of the ancestor and reclaims until the ancestor goes below its limit. [akpm@linux-foundation.org: coding-style fixes] [d-nishimura@mtf.biglobe.ne.jp: mem_cgroup_from_res_counter should handle both mem->res and mem->memsw] Signed-off-by: Balbir Singh Cc: YAMAMOTO Takashi Cc: Paul Menage Cc: Li Zefan Cc: David Rientjes Cc: Pavel Emelianov Cc: Dhaval Giani Cc: KAMEZAWA Hiroyuki Signed-off-by: Daisuke Nishimura Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 28dbc4b6a01fb579a9441c7b81e3d3413dc452df Author: Balbir Singh Date: Wed Jan 7 18:08:05 2009 -0800 memcg: memory cgroup resource counters for hierarchy Add support for building hierarchies in resource counters. Cgroups allows us to build a deep hierarchy, but we currently don't link the resource counters belonging to the memory controller control groups, in the same fashion as the corresponding cgroup entries in the cgroup hierarchy. This patch provides the infrastructure for resource counters that have the same hiearchy as their cgroup counter parts. These set of patches are based on the resource counter hiearchy patches posted by Pavel Emelianov. NOTE: Building hiearchies is expensive, deeper hierarchies imply charging the all the way up to the root. It is known that hiearchies are expensive, so the user needs to be careful and aware of the trade-offs before creating very deep ones. [akpm@linux-foundation.org: coding-style fixes] Signed-off-by: Balbir Singh Cc: YAMAMOTO Takashi Cc: Paul Menage Cc: Li Zefan Cc: David Rientjes Cc: Pavel Emelianov Cc: Dhaval Giani Cc: KAMEZAWA Hiroyuki Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 52bc0d82100cd896213a9a25ec01c1ba87b939db Author: Balbir Singh Date: Wed Jan 7 18:08:03 2009 -0800 memcg: memory cgroup hierarchy documentation Documentation updates for hierarchy support Signed-off-by: Balbir Singh Cc: YAMAMOTO Takashi Cc: Paul Menage Cc: Li Zefan Cc: David Rientjes Cc: Pavel Emelianov Cc: Dhaval Giani Cc: KAMEZAWA Hiroyuki Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit f8d665422603ee1b8ed04dcad4242f14d623c941 Author: Hirokazu Takahashi Date: Wed Jan 7 18:08:02 2009 -0800 memcg: add mem_cgroup_disabled() We check mem_cgroup is disabled or not by checking mem_cgroup_subsys.disabled. I think it has more references than expected, now. replacing if (mem_cgroup_subsys.disabled) with if (mem_cgroup_disabled()) give us good look, I think. [kamezawa.hiroyu@jp.fujitsu.com: fix typo] Signed-off-by: KAMEZAWA Hiroyuki Cc: Li Zefan Cc: Balbir Singh Cc: Pavel Emelyanov Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 08e552c69c6930d64722de3ec18c51844d06ee28 Author: KAMEZAWA Hiroyuki Date: Wed Jan 7 18:08:01 2009 -0800 memcg: synchronized LRU A big patch for changing memcg's LRU semantics. Now, - page_cgroup is linked to mem_cgroup's its own LRU (per zone). - LRU of page_cgroup is not synchronous with global LRU. - page and page_cgroup is one-to-one and statically allocated. - To find page_cgroup is on what LRU, you have to check pc->mem_cgroup as - lru = page_cgroup_zoneinfo(pc, nid_of_pc, zid_of_pc); - SwapCache is handled. And, when we handle LRU list of page_cgroup, we do following. pc = lookup_page_cgroup(page); lock_page_cgroup(pc); .....................(1) mz = page_cgroup_zoneinfo(pc); spin_lock(&mz->lru_lock); .....add to LRU spin_unlock(&mz->lru_lock); unlock_page_cgroup(pc); But (1) is spin_lock and we have to be afraid of dead-lock with zone->lru_lock. So, trylock() is used at (1), now. Without (1), we can't trust "mz" is correct. This is a trial to remove this dirty nesting of locks. This patch changes mz->lru_lock to be zone->lru_lock. Then, above sequence will be written as spin_lock(&zone->lru_lock); # in vmscan.c or swap.c via global LRU mem_cgroup_add/remove/etc_lru() { pc = lookup_page_cgroup(page); mz = page_cgroup_zoneinfo(pc); if (PageCgroupUsed(pc)) { ....add to LRU } spin_lock(&zone->lru_lock); # in vmscan.c or swap.c via global LRU This is much simpler. (*) We're safe even if we don't take lock_page_cgroup(pc). Because.. 1. When pc->mem_cgroup can be modified. - at charge. - at account_move(). 2. at charge the PCG_USED bit is not set before pc->mem_cgroup is fixed. 3. at account_move() the page is isolated and not on LRU. Pros. - easy for maintenance. - memcg can make use of laziness of pagevec. - we don't have to duplicated LRU/Active/Unevictable bit in page_cgroup. - LRU status of memcg will be synchronized with global LRU's one. - # of locks are reduced. - account_move() is simplified very much. Cons. - may increase cost of LRU rotation. (no impact if memcg is not configured.) Signed-off-by: KAMEZAWA Hiroyuki Cc: Li Zefan Cc: Balbir Singh Cc: Pavel Emelyanov Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 8c7c6e34a1256a5082d38c8e9bd1474476912715 Author: KAMEZAWA Hiroyuki Date: Wed Jan 7 18:08:00 2009 -0800 memcg: mem+swap controller core This patch implements per cgroup limit for usage of memory+swap. However there are SwapCache, double counting of swap-cache and swap-entry is avoided. Mem+Swap controller works as following. - memory usage is limited by memory.limit_in_bytes. - memory + swap usage is limited by memory.memsw_limit_in_bytes. This has following benefits. - A user can limit total resource usage of mem+swap. Without this, because memory resource controller doesn't take care of usage of swap, a process can exhaust all the swap (by memory leak.) We can avoid this case. And Swap is shared resource but it cannot be reclaimed (goes back to memory) until it's used. This characteristic can be trouble when the memory is divided into some parts by cpuset or memcg. Assume group A and group B. After some application executes, the system can be.. Group A -- very large free memory space but occupy 99% of swap. Group B -- under memory shortage but cannot use swap...it's nearly full. Ability to set appropriate swap limit for each group is required. Maybe someone wonder "why not swap but mem+swap ?" - The global LRU(kswapd) can swap out arbitrary pages. Swap-out means to move account from memory to swap...there is no change in usage of mem+swap. In other words, when we want to limit the usage of swap without affecting global LRU, mem+swap limit is better than just limiting swap. Accounting target information is stored in swap_cgroup which is per swap entry record. Charge is done as following. map - charge page and memsw. unmap - uncharge page/memsw if not SwapCache. swap-out (__delete_from_swap_cache) - uncharge page - record mem_cgroup information to swap_cgroup. swap-in (do_swap_page) - charged as page and memsw. record in swap_cgroup is cleared. memsw accounting is decremented. swap-free (swap_free()) - if swap entry is freed, memsw is uncharged by PAGE_SIZE. There are people work under never-swap environments and consider swap as something bad. For such people, this mem+swap controller extension is just an overhead. This overhead is avoided by config or boot option. (see Kconfig. detail is not in this patch.) TODO: - maybe more optimization can be don in swap-in path. (but not very safe.) But we just do simple accounting at this stage. [nishimura@mxp.nes.nec.co.jp: make resize limit hold mutex] [hugh@veritas.com: memswap controller core swapcache fixes] Signed-off-by: KAMEZAWA Hiroyuki Cc: Li Zefan Cc: Balbir Singh Cc: Pavel Emelyanov Signed-off-by: Daisuke Nishimura Signed-off-by: Hugh Dickins Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 27a7faa0779dd13729196c1a818c294f44bbd1ee Author: KAMEZAWA Hiroyuki Date: Wed Jan 7 18:07:58 2009 -0800 memcg: swap cgroup for remembering usage For accounting swap, we need a record per swap entry, at least. This patch adds following function. - swap_cgroup_swapon() .... called from swapon - swap_cgroup_swapoff() ... called at the end of swapoff. - swap_cgroup_record() .... record information of swap entry. - swap_cgroup_lookup() .... lookup information of swap entry. This patch just implements "how to record information". No actual method for limit the usage of swap. These routine uses flat table to record and lookup. "wise" lookup system like radix-tree requires requires memory allocation at new records but swap-out is usually called under memory shortage (or memcg hits limit.) So, I used static allocation. (maybe dynamic allocation is not very hard but it adds additional memory allocation in memory shortage path.) Note1: In this, we use pointer to record information and this means 8bytes per swap entry. I think we can reduce this when we create "id of cgroup" in the range of 0-65535 or 0-255. Reported-by: Daisuke Nishimura Reviewed-by: Daisuke Nishimura Tested-by: Daisuke Nishimura Reported-by: Hugh Dickins Reported-by: Balbir Singh Reported-by: Andrew Morton Signed-off-by: KAMEZAWA Hiroyuki Cc: Pavel Emelianov Cc: Li Zefan Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit c077719be8e9e6b55702117513d1b5f41d80404a Author: KAMEZAWA Hiroyuki Date: Wed Jan 7 18:07:57 2009 -0800 memcg: mem+swap controller Kconfig Config and control variable for mem+swap controller. This patch adds CONFIG_CGROUP_MEM_RES_CTLR_SWAP (memory resource controller swap extension.) For accounting swap, it's obvious that we have to use additional memory to remember "who uses swap". This adds more overhead. So, it's better to offer "choice" to users. This patch adds 2 choices. This patch adds 2 parameters to enable swap extension or not. - CONFIG - boot option Reviewed-by: Daisuke Nishimura Signed-off-by: KAMEZAWA Hiroyuki Cc: Li Zefan Cc: Balbir Singh Cc: Pavel Emelyanov Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit d13d144309d2e5a3e6ad978b16c1d0226ddc9231 Author: KAMEZAWA Hiroyuki Date: Wed Jan 7 18:07:56 2009 -0800 memcg: handle swap caches SwapCache support for memory resource controller (memcg) Before mem+swap controller, memcg itself should handle SwapCache in proper way. This is cut-out from it. In current memcg, SwapCache is just leaked and the user can create tons of SwapCache. This is a leak of account and should be handled. SwapCache accounting is done as following. charge (anon) - charged when it's mapped. (because of readahead, charge at add_to_swap_cache() is not sane) uncharge (anon) - uncharged when it's dropped from swapcache and fully unmapped. means it's not uncharged at unmap. Note: delete from swap cache at swap-in is done after rmap information is established. charge (shmem) - charged at swap-in. this prevents charge at add_to_page_cache(). uncharge (shmem) - uncharged when it's dropped from swapcache and not on shmem's radix-tree. at migration, check against 'old page' is modified to handle shmem. Comparing to the old version discussed (and caused troubles), we have advantages of - PCG_USED bit. - simple migrating handling. So, situation is much easier than several months ago, maybe. [hugh@veritas.com: memcg: handle swap caches build fix] Reviewed-by: Daisuke Nishimura Tested-by: Daisuke Nishimura Signed-off-by: KAMEZAWA Hiroyuki Cc: Hugh Dickins Cc: Li Zefan Cc: Balbir Singh Cc: Pavel Emelyanov Signed-off-by: Hugh Dickins Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit c1e862c1f5ad34771b6d0a528cf681e0dcad7c86 Author: KAMEZAWA Hiroyuki Date: Wed Jan 7 18:07:55 2009 -0800 memcg: new force_empty to free pages under group By memcg-move-all-accounts-to-parent-at-rmdir.patch, there is no leak of memory usage and force_empty is removed. This patch adds "force_empty" again, in reasonable manner. memory.force_empty file works when #echo 0 (or some) > memory.force_empty and have following function. 1. only works when there are no task in this cgroup. 2. free all page under this cgroup as much as possible. 3. page which cannot be freed will be moved up to parent. 4. Then, memcg will be empty after above echo returns. This is much better behavior than old "force_empty" which just forget all accounts. This patch also check signal_pending() and above "echo" can be stopped by "Ctrl-C". [akpm@linux-foundation.org: cleanup] Signed-off-by: KAMEZAWA Hiroyuki Cc: Li Zefan Cc: Balbir Singh Cc: Pavel Emelyanov Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit c8dad2bb6307f5b00f804a686917105206a4d5c9 Author: Jan Blunck Date: Wed Jan 7 18:07:53 2009 -0800 memcg: reduce size of mem_cgroup by using nr_cpu_ids As Jan Blunck pointed out, allocating per-cpu stat for memcg to the size of NR_CPUS is not good. This patch changes mem_cgroup's cpustat allocation not based on NR_CPUS but based on nr_cpu_ids. Reviewed-by: Li Zefan Signed-off-by: KAMEZAWA Hiroyuki Cc: Li Zefan Cc: Balbir Singh Cc: Pavel Emelyanov Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit f817ed48535ac6510ebae7c4116f24a5f9268834 Author: KAMEZAWA Hiroyuki Date: Wed Jan 7 18:07:53 2009 -0800 memcg: move all acccounting to parent at rmdir() This patch provides a function to move account information of a page between mem_cgroups and rewrite force_empty to make use of this. This moving of page_cgroup is done under - lru_lock of source/destination mem_cgroup is held. - lock_page_cgroup() is held. Then, a routine which touches pc->mem_cgroup without lock_page_cgroup() should confirm pc->mem_cgroup is still valid or not. Typical code can be following. (while page is not under lock_page()) mem = pc->mem_cgroup; mz = page_cgroup_zoneinfo(pc) spin_lock_irqsave(&mz->lru_lock); if (pc->mem_cgroup == mem) ...../* some list handling */ spin_unlock_irqrestore(&mz->lru_lock); Of course, better way is lock_page_cgroup(pc); .... unlock_page_cgroup(pc); But you should confirm the nest of lock and avoid deadlock. If you treats page_cgroup from mem_cgroup's LRU under mz->lru_lock, you don't have to worry about what pc->mem_cgroup points to. moved pages are added to head of lru, not to tail. Expected users of this routine is: - force_empty (rmdir) - moving tasks between cgroup (for moving account information.) - hierarchy (maybe useful.) force_empty(rmdir) uses this move_account and move pages to its parent. This "move" will not cause OOM (I added "oom" parameter to try_charge().) If the parent is busy (not enough memory), force_empty calls try_to_free_page() and reduce usage. Purpose of this behavior is - Fix "forget all" behavior of force_empty and avoid leak of accounting. - By "moving first, free if necessary", keep pages on memory as much as possible. Adding a switch to change behavior of force_empty to - free first, move if necessary - free all, if there is mlocked/busy pages, return -EBUSY. is under consideration. (I'll add if someone requtests.) This patch also removes memory.force_empty file, a brutal debug-only interface. Reviewed-by: Daisuke Nishimura Tested-by: Daisuke Nishimura Signed-off-by: KAMEZAWA Hiroyuki Cc: Balbir Singh Cc: Paul Menage Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 0753b0ef3b301895234fed02bea2c099c7ff4feb Author: Fernando Luis Vazquez Cao Date: Wed Jan 7 18:07:51 2009 -0800 memcg: do not recalculate section unnecessarily in init_section_page_cgroup In init_section_page_cgroup() the section a given pfn belongs to is calculated at the top of the function and, despite the fact that the pfn/section correspondence does not change, it is recalculated further down the same function. By computing this just once and reusing that value we save some bytes in the object file and do not waste CPU cycles. Signed-off-by: Fernando Luis Vazquez Cao Reviewed-by: KAMEZAWA Hiroyuki Cc: Daisuke Nishimura Cc: Balbir Singh Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 01b1ae63c2270cbacfd43fea94578c17950eb548 Author: KAMEZAWA Hiroyuki Date: Wed Jan 7 18:07:50 2009 -0800 memcg: simple migration handling Now, management of "charge" under page migration is done under following manner. (Assume migrate page contents from oldpage to newpage) before - "newpage" is charged before migration. at success. - "oldpage" is uncharged at somewhere(unmap, radix-tree-replace) at failure - "newpage" is uncharged. - "oldpage" is charged if necessary (*1) But (*1) is not reliable....because of GFP_ATOMIC. This patch tries to change behavior as following by charge/commit/cancel ops. before - charge PAGE_SIZE (no target page) success - commit charge against "newpage". failure - commit charge against "oldpage". (PCG_USED bit works effectively to avoid double-counting) - if "oldpage" is obsolete, cancel charge of PAGE_SIZE. Signed-off-by: KAMEZAWA Hiroyuki Reviewed-by: Daisuke Nishimura Cc: Balbir Singh Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit bced0520fe462bb94021dcabd32e99630c171be2 Author: KAMEZAWA Hiroyuki Date: Wed Jan 7 18:07:49 2009 -0800 memcg: fix gfp_mask of callers of charge Fix misuse of gfp_kernel. Now, most of callers of mem_cgroup_charge_xxx functions uses GFP_KERNEL. I think that this is from the fact that page_cgroup *was* dynamically allocated. But now, we allocate all page_cgroup at boot. And mem_cgroup_try_to_free_pages() reclaim memory from GFP_HIGHUSER_MOVABLE + specified GFP_RECLAIM_MASK. * This is because we just want to reduce memory usage. "Where we should reclaim from ?" is not a problem in memcg. This patch modifies gfp masks to be GFP_HIGUSER_MOVABLE if possible. Note: This patch is not for fixing behavior but for showing sane information in source code. Signed-off-by: KAMEZAWA Hiroyuki Reviewed-by: Daisuke Nishimura Cc: Balbir Singh Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 7a81b88cb53e335ff7d019e6398c95792c817d93 Author: KAMEZAWA Hiroyuki Date: Wed Jan 7 18:07:48 2009 -0800 memcg: introduce charge-commit-cancel style of functions There is a small race in do_swap_page(). When the page swapped-in is charged, the mapcount can be greater than 0. But, at the same time some process (shares it ) call unmap and make mapcount 1->0 and the page is uncharged. CPUA CPUB mapcount == 1. (1) charge if mapcount==0 zap_pte_range() (2) mapcount 1 => 0. (3) uncharge(). (success) (4) set page's rmap() mapcount 0=>1 Then, this swap page's account is leaked. For fixing this, I added a new interface. - charge account to res_counter by PAGE_SIZE and try to free pages if necessary. - commit register page_cgroup and add to LRU if necessary. - cancel uncharge PAGE_SIZE because of do_swap_page failure. CPUA (1) charge (always) (2) set page's rmap (mapcount > 0) (3) commit charge was necessary or not after set_pte(). This protocol uses PCG_USED bit on page_cgroup for avoiding over accounting. Usual mem_cgroup_charge_common() does charge -> commit at a time. And this patch also adds following function to clarify all charges. - mem_cgroup_newpage_charge() ....replacement for mem_cgroup_charge() called against newly allocated anon pages. - mem_cgroup_charge_migrate_fixup() called only from remove_migration_ptes(). we'll have to rewrite this later.(this patch just keeps old behavior) This function will be removed by additional patch to make migration clearer. Good for clarifying "what we do" Then, we have 4 following charge points. - newpage - swap-in - add-to-cache. - migration. [akpm@linux-foundation.org: add missing inline directives to stubs] Signed-off-by: KAMEZAWA Hiroyuki Reviewed-by: Daisuke Nishimura Cc: Balbir Singh Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 0b82ac37b889ec881b645860da3775118effb3ca Author: Serge E. Hallyn Date: Wed Jan 7 18:07:46 2009 -0800 devices cgroup: allow mkfifo The devcgroup_inode_permission() hook in the devices whitelist cgroup has always bypassed access checks on fifos. But the mknod hook did not. The devices whitelist is only about block and char devices, and fifos can't even be added to the whitelist, so fifos can't be created at all except by tasks which have 'a' in their whitelist (meaning they have access to all devices). Fix the behavior by bypassing access checks to mkfifo. Signed-off-by: Serge E. Hallyn Cc: Li Zefan Cc: Pavel Emelyanov Cc: Paul Menage Cc: Lai Jiangshan Cc: KOSAKI Motohiro Cc: James Morris Reported-by: Daniel Lezcano Cc: [2.6.27.x] Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 116e05751285c20edf5768ca3bcc00dad86181bb Author: Lai Jiangshan Date: Wed Jan 7 18:07:45 2009 -0800 devcgroup: use list_for_each_entry_rcu() We should use list_for_each_entry_rcu in RCU read site. Signed-off-by: Lai Jiangshan Cc: Paul Menage Cc: KAMEZAWA Hiroyuki Cc: Pavel Emelyanov Cc: Balbir Singh Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit a47295e6bc42ad35f9c15ac66f598aa24debd4e2 Author: Paul Menage Date: Wed Jan 7 18:07:44 2009 -0800 cgroups: make cgroup_path() RCU-safe Fix races between /proc/sched_debug by freeing cgroup objects via an RCU callback. Thus any cgroup reference obtained from an RCU-safe source will remain valid during the RCU section. Since dentries are also RCU-safe, this allows us to traverse up the tree safely. Additionally, make cgroup_path() check for a NULL cgrp->dentry to avoid trying to report a path for a partially-created cgroup. [lizf@cn.fujitsu.com: call deactive_super() in cgroup_diput()] Signed-off-by: Paul Menage Reviewed-by: Li Zefan Tested-by: Li Zefan Cc: Peter Zijlstra Signed-off-by: Li Zefan Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit e7b80bb695a5b64c92e314838e083b2f3bdf29b2 Author: Gowrishankar M Date: Wed Jan 7 18:07:43 2009 -0800 cgroups: skip processes from other namespaces when listing a cgroup Once tasks are populated from system namespace inside cgroup, container replaces other namespace task with 0 while listing tasks, inside container. Though this is expected behaviour from container end, there is no use of showing unwanted 0s. In this patch, we check if a process is in same namespace before loading into pid array. [akpm@linux-foundation.org: coding-style fixes] Signed-off-by: Gowrishankar M Acked-by: Paul Menage Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit c12f65d4396e05c51ce3af7f159ead98574a587c Author: Li Zefan Date: Wed Jan 7 18:07:42 2009 -0800 cgroups: introduce link_css_set() to remove duplicate code Add a common function link_css_set() to link a css_set to a cgroup. Signed-off-by: Li Zefan Cc: Paul Menage Cc: KAMEZAWA Hiroyuki Cc: Balbir Singh Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 33a68ac1c1b695216e873ee12e819adbe73e4d9f Author: Li Zefan Date: Wed Jan 7 18:07:42 2009 -0800 cgroups: add inactive subsystems to rootnode.subsys_list Though for an inactive hierarchy, we have subsys->root == &rootnode, but rootnode's subsys_list is always empty. This conflicts with the code in find_css_set(): for (i = 0; i < CGROUP_SUBSYS_COUNT; i++) { ... if (ss->root->subsys_list.next == &ss->sibling) { ... } } if (list_empty(&rootnode.subsys_list)) { ... } The above code assumes rootnode.subsys_list links all inactive hierarchies. Signed-off-by: Li Zefan Cc: Paul Menage Cc: KAMEZAWA Hiroyuki Cc: Balbir Singh Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit e5f6a8609bab0c2d7543ab1505105e011832afd7 Author: Li Zefan Date: Wed Jan 7 18:07:41 2009 -0800 cgroups: make root_list contains active hierarchies only Don't link rootnode to the root list, so root_list contains active hierarchies only as the comment indicates. And rename for_each_root() to for_each_active_root(). Also remove redundant check in cgroup_kill_sb(). Signed-off-by: Li Zefan Cc: Paul Menage Cc: KAMEZAWA Hiroyuki Cc: Balbir Singh Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 7534432dcc3c654a8671b6b0cdffd1dbdbc73074 Author: Lai Jiangshan Date: Wed Jan 7 18:07:40 2009 -0800 cgroups: remove rcu_read_lock() in cgroupstats_build() cgroup_iter_* do not need rcu_read_lock(). In cgroup_enable_task_cg_lists(), do_each_thread() and while_each_thread() are protected by RCU, it's OK, for write_lock(&css_set_lock) implies rcu_read_lock() in non-RT kernel. If we need explicit rcu_read_lock(), we should add rcu_read_lock() in cgroup_enable_task_cg_lists(), not cgroup_iter_*. Signed-off-by: Lai Jiangshan Acked-by: Paul Menage Cc: KAMEZAWA Hiroyuki Cc: Pavel Emelyanov Cc: Balbir Singh Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 77efecd9e0526327548152df715ab8644ecb5ba0 Author: Lai Jiangshan Date: Wed Jan 7 18:07:39 2009 -0800 cgroups: call find_css_set() safely in cgroup_attach_task() In cgroup_attach_task(), tsk maybe exit when we call find_css_set(). and find_css_set() will access to invalid css_set. This patch increases the count before get_css_set(), and decreases it after find_css_set(). NOTE: css_set's refcount is also taskcount, after this patch applied, taskcount may be off-by-one WHEN cgroup_lock() is not held. but I reviewed other code which use taskcount, they are still correct. No regression found by reviewing and simply testing. So I do not use two counters in css_set. (one counter for taskcount, the other for refcount. like struct mm_struct) If this fix cause regression, we will use two counters in css_set. Signed-off-by: Lai Jiangshan Cc: Paul Menage Cc: KAMEZAWA Hiroyuki Cc: Pavel Emelyanov Cc: Balbir Singh Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 104cbd55377029e70fc2cee01089e84b9c36e5dc Author: Lai Jiangshan Date: Wed Jan 7 18:07:38 2009 -0800 cgroups: use task_lock() for access tsk->cgroups safe in cgroup_clone() Use task_lock() protect tsk->cgroups and get_css_set(tsk->cgroups). Signed-off-by: Lai Jiangshan Acked-by: Paul Menage Cc: KAMEZAWA Hiroyuki Cc: Pavel Emelyanov Cc: Balbir Singh Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit b2aa30f7bb381e04c93eed106089ba55553955f1 Author: Lai Jiangshan Date: Wed Jan 7 18:07:37 2009 -0800 cgroups: don't put struct cgroupfs_root protected by RCU We don't access struct cgroupfs_root in fast path, so we should not put struct cgroupfs_root protected by RCU But the comment in struct cgroup_subsys.root confuse us. struct cgroup_subsys.root is used in these places: 1 find_css_set(): if (ss->root->subsys_list.next == &ss->sibling) 2 rebind_subsystems(): if (ss->root != &rootnode) rcu_assign_pointer(ss->root, root); rcu_assign_pointer(subsys[i]->root, &rootnode); 3 cgroup_has_css_refs(): if (ss->root != cgrp->root) 4 cgroup_init_subsys(): ss->root = &rootnode; 5 proc_cgroupstats_show(): ss->name, ss->root->subsys_bits, ss->root->number_of_cgroups, !ss->disabled); 6 cgroup_clone(): root = subsys->root; if ((root != subsys->root) || All these place we have held cgroup_lock() or we don't dereference to struct cgroupfs_root. It's means wo don't need RCU when use struct cgroup_subsys.root, and we should not put struct cgroupfs_root protected by RCU. Signed-off-by: Lai Jiangshan Reviewed-by: Paul Menage Cc: KAMEZAWA Hiroyuki Cc: Pavel Emelyanov Cc: Balbir Singh Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 2019f634ce5904c19eba4e86f51b1a119a53a9f1 Author: Lai Jiangshan Date: Wed Jan 7 18:07:36 2009 -0800 cgroups: fix cgroup_iter_next() bug We access res->cgroups without the task_lock(), so res->cgroups may be changed. it's unreliable, and "if (l == &res->cgroups->tasks)" may be false forever. We don't need add any lock for fixing this bug. we just access to struct css_set by struct cg_cgroup_link, not by struct task_struct. Since we hold css_set_lock, struct cg_cgroup_link is reliable. Signed-off-by: Lai Jiangshan Reviewed-by: Paul Menage Cc: KAMEZAWA Hiroyuki Cc: Pavel Emelyanov Cc: Balbir Singh Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit b12b533fa523e94e0cc9dc23274ae4f9439f1313 Author: Lai Jiangshan Date: Wed Jan 7 18:07:36 2009 -0800 cgroups: add lock for child->cgroups in cgroup_post_fork() When cgroup_post_fork() is called, child is seen by find_task_by_vpid(), so child->cgroups maybe be changed, It'll incorrect. child->cgroups's refcnt is decreased child->cgroups's refcnt is increased but child->cg_list is added to child->cgroups's list. Signed-off-by: Lai Jiangshan Reviewed-by: Paul Menage Cc: KAMEZAWA Hiroyuki Cc: Pavel Emelyanov Cc: Balbir Singh Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit c9d5409f8d46fd0d18b4a4481d9caa04076d87fc Author: Li Zefan Date: Wed Jan 7 18:07:35 2009 -0800 memcg: fix a typo in Kconfig s/contoller/controller/ Signed-of-by: Li Zefan Cc: Paul Menage Acked-by: KAMEZAWA Hiroyuki Cc: Balbir Singh Cc: Pavel Emelyanov Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit cae7a366f77ea5c9f54ae98c5fc65056877a89ed Author: Li Zefan Date: Wed Jan 7 18:07:34 2009 -0800 ns_cgroup: remove unused spinlock I happened to find the spinlock in struct ns_cgroup is never used. Signed-off-by: Li Zefan Cc: Paul Menage Cc: KAMEZAWA Hiroyuki Cc: Balbir Singh Cc: Pavel Emelyanov Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 75139b8274c3e30354daea623f14b43a482a0bb5 Author: Li Zefan Date: Wed Jan 7 18:07:33 2009 -0800 cgroups: remove some redundant NULL checks - In cgroup_clone(), if vfs_mkdir() returns successfully, dentry->d_fsdata will be the pointer to the newly created cgroup and won't be NULL. - a cgroup file's dentry->d_fsdata won't be NULL, guaranteed by cgroup_add_file(). - When walking through the subsystems of a cgroup_fs (using for_each_subsys), cgrp->subsys[ss->subsys_id] won't be NULL, guaranteed by cgroup_create(). (Also remove 2 unused variables in cgroup_rmdir(). Signed-off-by: Li Zefan Cc: Paul Menage Cc: KAMEZAWA Hiroyuki Cc: Balbir Singh Cc: Pavel Emelyanov Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 18e7f1f0d34be4a39f7f47324a3e26b43fddb714 Author: Li Zefan Date: Wed Jan 7 18:07:32 2009 -0800 cgroups: documentation updates - remove 'releasable' since it has been moved to the debug subsys. - update lock requirements of subsys callbacks. Signed-off-by: Li Zefan Cc: Paul Menage Cc: KAMEZAWA Hiroyuki Cc: Balbir Singh Cc: Pavel Emelyanov Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 5cdc38f98596662620b822a4e13f797c3f2f65e0 Author: KAMEZAWA Hiroyuki Date: Wed Jan 7 18:07:30 2009 -0800 cgroups: make cgroup config a submenu Making CGROUP related configs be a sub-menu. This patch make CGROUP related configs be a sub-menu and makes 1st level configs of "General Setup" shorter. including following additional changes - add help comment about CGROUPS and GROUP_SCHED. - moved MM_OWNER config to the bottom. (for good indent in menuconfig) Signed-off-by: KAMEZAWA Hiroyuki Reviewed-by: Daisuke Nishimura Cc: Balbir Singh Cc: Paul Menage Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit e04a88a920ff36d03641e1b9c01b7960d94209f1 Author: Jan Kara Date: Wed Jan 7 18:07:29 2009 -0800 quota: don't set grace time when user isn't above softlimit do_set_dqblk() allowed SETDQBLK quotactl to set user's grace time even if user was not above his softlimit. This does not make much sence and by coincidence causes quota code to omit softlimit warning when user really exceeds softlimit. This patch makes do_set_dqblk() reset user's grace time if he has not exceeded softlimit. Signed-off-by: Jan Kara Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 87d1fda5e2ff6527740604a7918fc273b6f9ae13 Author: Richard A. Holden III Date: Wed Jan 7 18:07:28 2009 -0800 coda: fix fs/coda/sysctl.c build warnings when !CONFIG_SYSCTL Fix fs/coda/sysctl.c:14: warning: 'fs_table_header' defined but not used fs/coda/sysctl.c:44: warning: 'fs_table' defined but not used these are only used when CONFIG_SYSCTL is defined. Signed-off-by: Richard A. Holden III Cc: Jan Harkes Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 1579c3a15c06055713b42b077b805f818638302c Author: Randy Dunlap Date: Wed Jan 7 18:07:27 2009 -0800 jbd: remove excess kernel-doc notation Remove excess kernel-doc from fs/jbd/transaction.c: Warning(linux-2.6.28-git5//fs/jbd/transaction.c:764): Excess function parameter 'credits' description in 'journal_get_write_access' Signed-off-by: Randy Dunlap Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 04143e2fb9d512c21e1dcfb561dbb0445dcfdc8c Author: Duane Griffin Date: Wed Jan 7 18:07:26 2009 -0800 ext3: tighten restrictions on inode flags At the moment there are few restrictions on which flags may be set on which inodes. Specifically DIRSYNC may only be set on directories and IMMUTABLE and APPEND may not be set on links. Tighten that to disallow TOPDIR being set on non-directories and only NODUMP and NOATIME to be set on non-regular file, non-directories. Introduces a flags masking function which masks flags based on mode and use it during inode creation and when flags are set via the ioctl to facilitate future consistency. Signed-off-by: Duane Griffin Acked-by: Andreas Dilger Cc: Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 2e8671cb566da993425d324fc355af31edc6e7f1 Author: Duane Griffin Date: Wed Jan 7 18:07:26 2009 -0800 ext3: don't inherit inappropriate inode flags from parent At present INDEX is the only flag that new ext3 inodes do NOT inherit from their parent. In addition prevent the flags DIRTY, ECOMPR, IMAGIC and TOPDIR from being inherited. List inheritable flags explicitly to prevent future flags from accidentally being inherited. This fixes the TOPDIR flag inheritance bug reported at http://bugzilla.kernel.org/show_bug.cgi?id=9866. Signed-off-by: Duane Griffin Acked-by: Andreas Dilger Cc: Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 5df096d67ec2b6578518caed7d57317a4b807aa1 Author: Pekka Enberg Date: Wed Jan 7 18:07:25 2009 -0800 ext3: allocate ->s_blockgroup_lock separately As spotted by kmemtrace, struct ext3_sb_info is 17152 bytes on 64-bit which makes it a very bad fit for SLAB allocators. The culprit of the wasted memory is ->s_blockgroup_lock which can be as big as 16 KB when NR_CPUS >= 32. To fix that, allocate ->s_blockgroup_lock, which fits nicely in a order 2 page in the worst case, separately. This shinks down struct ext3_sb_info enough to fit a 1 KB slab cache so now we allocate 16 KB + 1 KB instead of 32 KB saving 15 KB of memory. Acked-by: Andreas Dilger Signed-off-by: Pekka Enberg Cc: Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit f420d4dc4272fd223986762df2ad06056ddebada Author: Josef Bacik Date: Wed Jan 7 18:07:24 2009 -0800 jbd: improve fsync batching There is a flaw with the way jbd handles fsync batching. If we fsync() a file and we were not the last person to run fsync() on this fs then we automatically sleep for 1 jiffie in order to wait for new writers to join into the transaction before forcing the commit. The problem with this is that with really fast storage (ie a Clariion) the time it takes to commit a transaction to disk is way faster than 1 jiffie in most cases, so sleeping means waiting longer with nothing to do than if we just committed the transaction and kept going. Ric Wheeler noticed this when using fs_mark with more than 1 thread, the throughput would plummet as he added more threads. This patch attempts to fix this problem by recording the average time in nanoseconds that it takes to commit a transaction to disk, and what time we started the transaction. If we run an fsync() and we have been running for less time than it takes to commit the transaction to disk, we sleep for the delta amount of time and then commit to disk. We acheive sub-jiffie sleeping using schedule_hrtimeout. This means that the wait time is auto-tuned to the speed of the underlying disk, instead of having this static timeout. I weighted the average according to somebody's comments (Andreas Dilger I think) in order to help normalize random outliers where we take way longer or way less time to commit than the average. I also have a min() check in there to make sure we don't sleep longer than a jiffie in case our storage is super slow, this was requested by Andrew. I unfortunately do not have access to a Clariion, so I had to use a ramdisk to represent a super fast array. I tested with a SATA drive with barrier=1 to make sure there was no regression with local disks, I tested with a 4 way multipathed Apple Xserve RAID array and of course the ramdisk. I ran the following command fs_mark -d /mnt/ext3-test -s 4096 -n 2000 -D 64 -t $i where $i was 2, 4, 8, 16 and 32. I mkfs'ed the fs each time. Here are my results type threads with patch without patch sata 2 24.6 26.3 sata 4 49.2 48.1 sata 8 70.1 67.0 sata 16 104.0 94.1 sata 32 153.6 142.7 xserve 2 246.4 222.0 xserve 4 480.0 440.8 xserve 8 829.5 730.8 xserve 16 1172.7 1026.9 xserve 32 1816.3 1650.5 ramdisk 2 2538.3 1745.6 ramdisk 4 2942.3 661.9 ramdisk 8 2882.5 999.8 ramdisk 16 2738.7 1801.9 ramdisk 32 2541.9 2394.0 Signed-off-by: Josef Bacik Cc: Andreas Dilger Cc: Arjan van de Ven Cc: Ric Wheeler Cc: Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit ef8b646183868b2d042fa6cde0eef2a31263ff85 Author: Duane Griffin Date: Wed Jan 7 18:07:21 2009 -0800 ext2: tighten restrictions on inode flags At the moment there are few restrictions on which flags may be set on which inodes. Specifically DIRSYNC may only be set on directories and IMMUTABLE and APPEND may not be set on links. Tighten that to disallow TOPDIR being set on non-directories and only NODUMP and NOATIME to be set on non-regular file, non-directories. Introduces a flags masking function which masks flags based on mode and use it during inode creation and when flags are set via the ioctl to facilitate future consistency. Signed-off-by: Duane Griffin Acked-by: Andreas Dilger Cc: Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 0e090f1e05a563cc9acdda442767176bf1616001 Author: Duane Griffin Date: Wed Jan 7 18:07:20 2009 -0800 ext2: don't inherit inappropriate inode flags from parent At present BTREE/INDEX is the only flag that new ext2 inodes do NOT inherit from their parent. In addition prevent the flags DIRTY, ECOMPR, INDEX, IMAGIC and TOPDIR from being inherited. List inheritable flags explicitly to prevent future flags from accidentally being inherited. This fixes the TOPDIR flag inheritance bug reported at http://bugzilla.kernel.org/show_bug.cgi?id=9866. Signed-off-by: Duane Griffin Acked-by: Andreas Dilger Cc: Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 18a82eb9f980b5e02cea651e4ecda26265d98933 Author: Pekka J Enberg Date: Wed Jan 7 18:07:19 2009 -0800 ext2: allocate ->s_blockgroup_lock separately As spotted by kmemtrace, struct ext2_sb_info is 17024 bytes on 64-bit which makes it a very bad fit for SLAB allocators. The culprit of the wasted memory is ->s_blockgroup_lock which can be as big as 16 KB when NR_CPUS >= 32. To fix that, allocate ->s_blockgroup_lock, which fits nicely in a order 2 page in the worst case, separately. This shinks down struct ext2_sb_info enough to fit a 1 KB slab cache so now we allocate 16 KB + 1 KB instead of 32 KB saving 15 KB of memory. Acked-by: Andreas Dilger Signed-off-by: Pekka Enberg Cc: Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 22d613d13445de9dea6edc3289c304237eb191f6 Author: Qinghuang Feng Date: Wed Jan 7 18:07:18 2009 -0800 ext2: fix ext2_splice_branch() comments There is no argument named @chain in ext2_splice_branch, remove references to it. Signed-off-by: Qinghuang Feng Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 74d88eb2930f09e1a63d61cc9d4cffc50c684412 Author: Jüri Reitel Date: Wed Jan 7 18:07:16 2009 -0800 rtc-ds1307: remove legacy probe() checks Remove RTC register value checks from the rtc-ds1307 probe() function. They were left over from the legacy style I2C driver, which had to defend against finding a non-RTC chip when the driver was probed. Also fix a minor glitch in the alarm support: DS1307 chips don't have alarms, so name those methods after one of the chips which actually *do* have alarms (DS1337). Signed-off-by: Jüri Reitel Signed-off-by: David Brownell Cc: Sebastien Barre Cc: Alessandro Zummo Acked-by: Jean Delvare Cc: Rodolfo Giometti Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit fed40b734c343d4e4acf4b46f186bc3d69271867 Author: BARRE Sebastien Date: Wed Jan 7 18:07:13 2009 -0800 rtc-ds1307: SMBus compatibility Change i2c access functions to SMBus access functions in order to use the ds1307 with SMBus adapter. Signed-off-by: Sebastien Barre Acked-by: David Brownell Tested-by: David Brownell Acked-by: Alessandro Zummo Acked-by: Jean Delvare Cc: Rodolfo Giometti Tested-by: Sebastien Barre Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 1107ba885e46964316c083d441d5dd185b6c9e49 Author: Alex Zeffertt Date: Wed Jan 7 18:07:11 2009 -0800 xen: add xenfs to allow usermode <-> Xen interaction The xenfs filesystem exports various interfaces to usermode. Initially this exports a file to allow usermode to interact with xenbus/xenstore. Traditionally this appeared in /proc/xen. Rather than extending procfs, this patch adds a backward-compat mountpoint on /proc/xen, and provides a xenfs filesystem which can be mounted there. Signed-off-by: Alex Zeffertt Signed-off-by: Jeremy Fitzhardinge Cc: Ingo Molnar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit d8220347da2a0639f5e1919a5af08f49cb37c24f Author: Qinghuang Feng Date: Wed Jan 7 18:07:10 2009 -0800 drivers/xen/xenbus/xenbus_client.c: cleanup kerneldoc no argument named @xbt in xenbus_switch_state(), remove it. Signed-off-by: Qinghuang Feng Cc: Randy Dunlap Cc: Jeremy Fitzhardinge Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit d8f2f1808aa4a38e841cad59db0e5d1ec3a1b014 Author: Russell King Date: Thu Jan 8 12:27:00 2009 +0000 [ARM] fix pxa930_trkball build errors drivers/input/mouse/pxa930_trkball.c: In function `pxa930_trkball_probe': drivers/input/mouse/pxa930_trkball.c:189: error: `ret' undeclared (first use in this function) drivers/input/mouse/pxa930_trkball.c:230: error: `ret' undeclared (first use in this function) Signed-off-by: Russell King commit 2927926707d07f846154842bc12bed6d817d9412 Author: Russell King Date: Thu Jan 8 12:02:27 2009 +0000 [ARM] fix netx 2fcfe6b872b21639dcffbaf3ca2a84ec01d104e0 missed out on the cpumask updates; update netx for these changes. Signed-off-by: Russell King commit 18b2085e6a86447bb11508806190f01b40abb42f Author: Russell King Date: Thu Jan 8 11:00:03 2009 +0000 [ARM] fix pnx4008 arch/arm/mach-pnx4008/include/mach/gpio.h:214: error: implicit declaration of function 'IO_ADDRESS' Signed-off-by: Russell King commit 21da67a23835db95a15abbe693ed6e0cdad58458 Author: Russell King Date: Thu Jan 8 10:57:08 2009 +0000 [ARM] fix pxa arch/arm/mach-pxa/pxa300.c:94: error: 'CKEN_MMC3' undeclared here (not in a function) Signed-off-by: Russell King commit 7c9127da74be59464d7781c5bb64228032891724 Author: Russell King Date: Fri Jan 2 13:56:55 2009 +0000 [ARM] remove missed CLPS7500 defconfig 635f0258e5ae526034486b4ae9020e64bfb7d27e missed removing the defconfig Signed-off-by: Russell King commit a509a9c7a490ce7e8f891f204956671618822b10 Author: Russell King Date: Fri Jan 2 12:53:37 2009 +0000 [ARM] clps711x: fix warning in edb7211-mm.c Fix: include/asm-generic/pgtable.h:305: warning: 'struct vm_area_struct' declared inside parameter list include/asm-generic/pgtable.h:305: warning: its scope is only this definition or declaration, which is probably not what you want include/asm-generic/pgtable.h:317: warning: 'struct vm_area_struct' declared inside parameter list include/asm-generic/pgtable.h:331: warning: 'struct vm_area_struct' declared inside parameter list Signed-off-by: Russell King commit a379adfb6b990f811a4e78739cf204f1d2916dff Author: Russell King Date: Fri Jan 2 12:49:01 2009 +0000 [ARM] clps711x: fix warning in fortunet Fix: arch/arm/include/asm/irq.h:26: warning: 'struct pt_regs' declared inside parameter list Signed-off-by: Russell King commit 80b02c172bdecd3744513b97f330c7b1d74eea35 Author: Russell King Date: Thu Jan 8 10:01:47 2009 +0000 [ARM] fix AT91, davinci, h720x, ks8695, msm, mx2, mx3, netx, omap1, omap2, pxa, s3c arch/arm/mach-at91/at91cap9.c:337: error: 'NR_AIC_IRQS' undeclared here (not in a function) arch/arm/mach-at91/at91rm9200.c:301: error: 'NR_AIC_IRQS' undeclared here (not in a function) arch/arm/mach-at91/at91sam9260.c:351: error: 'NR_AIC_IRQS' undeclared here (not in a function) arch/arm/mach-at91/at91sam9261.c:287: error: 'NR_AIC_IRQS' undeclared here (not in a function) arch/arm/mach-at91/at91sam9263.c:312: error: 'NR_AIC_IRQS' undeclared here (not in a function) arch/arm/mach-at91/at91sam9rl.c:304: error: 'NR_AIC_IRQS' undeclared here (not in a function) arch/arm/mach-h720x/h7202-eval.c:38: error: implicit declaration of function 'IRQ_CHAINED_GPIOB' arch/arm/mach-ks8695/devices.c:46: error: 'KS8695_IRQ_WAN_RX_STATUS' undeclared here (not in a function) arch/arm/mach-msm/devices.c:28: error: 'INT_UART1' undeclared here (not in a function) arch/arm/mach-mx2/devices.c:233: error: 'MXC_GPIO_IRQ_START' undeclared here (not in a function) arch/arm/mach-mx3/devices.c:128: error: 'MXC_GPIO_IRQ_START' undeclared here (not in a function) arch/arm/mach-omap1/mcbsp.c:140: error: 'INT_730_McBSP1RX' undeclared here (not in a function) arch/arm/mach-omap1/mcbsp.c:165: error: 'INT_McBSP1RX' undeclared here (not in a function) arch/arm/mach-omap1/mcbsp.c:200: error: 'INT_McBSP1RX' undeclared here (not in a function) arch/arm/mach-omap2/board-apollon.c:286: error: implicit declaration of function 'omap_set_gpio_direction' arch/arm/mach-omap2/mcbsp.c:154: error: 'INT_24XX_MCBSP1_IRQ_RX' undeclared here (not in a function) arch/arm/mach-omap2/mcbsp.c:181: error: 'INT_24XX_MCBSP1_IRQ_RX' undeclared here (not in a function) arch/arm/mach-pxa/e350.c:36: error: 'IRQ_BOARD_START' undeclared here (not in a function) arch/arm/plat-s3c/dev-i2c0.c:32: error: 'IRQ_IIC' undeclared here (not in a function) ... Signed-off-by: Russell King commit 934848daa34af53de16cd8125d04346dffee9e87 Author: Russell King Date: Thu Jan 8 09:58:51 2009 +0000 [ARM] Fix realview build arch/arm/mach-realview/platsmp.c:140: error: 'jiffies' undeclared (first use in this function) drivers/amba/bus.c:246: error: 'NO_IRQ' undeclared (first use in this function) Signed-off-by: Russell King commit 13731d1a2faddc6895a1c569a66a2c41020a92e6 Author: Nicolas Pitre Date: Tue Jan 6 23:02:08 2009 +0100 [ARM] 5357/1: Kirkwood: add missing ge01 tclk initialization Otherwise the mv643xx_eth driver will assume 133 MHz which is incorrect. Signed-off-by: Nicolas Pitre Signed-off-by: Russell King commit e2d5406e53274a44ce12d034d926a68a3b6287a8 Author: Ramax Lo Date: Wed Jan 7 03:28:31 2009 +0100 [ARM] 5358/1: AT2440EVB: Use new include path of mci.h Since mci.h has been moved, use the new include path. Signed-off-by: Ramax Lo Acked-by: Ben Dooks Signed-off-by: Russell King commit ba0cda6dc8c7d1de46c2f0663cdaaa2df714a8dc Author: Nicolas Pitre Date: Wed Jan 7 04:58:23 2009 +0100 [ARM] 5361/1: mv78xx0: fix compilation error Commit ba84be2338d3 broke the build. Signed-off-by: Nicolas Pitre Signed-off-by: Russell King commit ff89c462dfe0df04f8938d513546896c2ddab525 Author: Nicolas Pitre Date: Wed Jan 7 04:52:58 2009 +0100 [ARM] 5360/1: Orion: fix compilation error Commit ba84be2338d3 broke the build. Signed-off-by: Nicolas Pitre Signed-off-by: Russell King commit 6e5c11a1c0c5abcef034b0914516b74c60f74daf Author: Nicolas Pitre Date: Wed Jan 7 04:47:02 2009 +0100 [ARM] 5359/1: Kirkwood: fix compilation error Commit ba84be2338d3 broke the build. Signed-off-by: Nicolas Pitre Signed-off-by: Russell King commit 43a55cdffcb523b7308d21b2f72189ba6ab57828 Author: Matt Hsu Date: Thu Jan 8 16:27:30 2009 +0800 [ARM] S3C64XX: Fix EINT group macro definition Fix IRQ_EINT_GROUP which has an extra _ in it and an error in the IRQ offset. Signed-off-by: Matt Hsu [ben-linux@fluff.org: rewrite description] Signed-off-by: Ben Dooks commit 2fafae3f6ddedc5642ddbbbfa0825eec87863553 Author: Ben Dooks Date: Thu Jan 8 13:21:17 2009 +0000 [ARM] Ensure CONFIG_SERIAL_SAMSUNG_UARTS is always set. Always set CONFIG_SERIAL_SAMSUNG_UARTS when building any of the S3C platforms as even if the driver is not selected there it is still the facility for the machine files to register configuration data for the possibility of the driver being built. Signed-off-by: Ben Dooks commit 43ae6599fe99a22a98658f0d9d0d40a1f12653f4 Author: Ben Dooks Date: Thu Jan 8 12:40:50 2009 +0000 [ARM] S3C24XX: Add gpio_to_irq implementation Add to_irq field handlers for the GPIO banks that are configurable as interripts. Signed-off-by: Ben Dooks commit 4d316fc5a34b073da4145a203101ec5b9553a634 Author: Ben Dooks Date: Thu Jan 8 12:33:11 2009 +0000 [ARM] S3C24XX: Add gpio_to_irq() facility Add gpio_to_irq() by re-directing the call to the generic __gpio_to_irq() code in the gpiolib. Signed-off-by: Ben Dooks commit 96777fe7b042e5a5d0fe5fb861fcd6cd80ef9634 Author: Dave Kleikamp Date: Thu Jan 8 09:46:31 2009 -0600 async: Don't call async_synchronize_full_special() while holding sb_lock sync_filesystems() shouldn't be calling async_synchronize_full_special while holding a spinlock. The second while loop in that function is the right place for this anyway. Signed-off-by: Dave Kleikamp Cc: Arjan van de Ven Reported-by: Grissiom Signed-off-by: Linus Torvalds commit 0dc6c490c0e2b81af32db3851040c109f7b3a54b Author: Ben Dooks Date: Thu Jan 8 15:42:42 2009 +0000 [ARM] footbridge: dc21285.c warning fixes The dc21285 requests a number of IRQs that it doesn't really care whether they get added. Change to use a macro that ensures that at-least the user gets warned if they fail to add, which also stops the warnings from __unused_result on request_irq(). dc21285.c:337: warning: ignoring return value of 'request_irq', declared with attribute warn_unused_result dc21285.c:339: warning: ignoring return value of 'request_irq', declared with attribute warn_unused_result dc21285.c:341: warning: ignoring return value of 'request_irq', declared with attribute warn_unused_result dc21285.c:343: warning: ignoring return value of 'request_irq', declared with attribute warn_unused_result dc21285.c:345: warning: ignoring return value of 'request_irq', declared with attribute warn_unused_result Signed-off-by: Ben Dooks commit 39ebfd3f0d58a89f29097f99a1de50c096375ee2 Author: Ben Dooks Date: Thu Jan 8 15:42:41 2009 +0000 [ARM] footbridge: add isa_init_irq() to common header isa_init_irq() is defined in arch/arm/mach-footbridge/isa-irq.c and used in arch/arm/mach-footbridge/common.c but there is no definition in any header. Move the definition in common.c to common.h to stop the sparse warning: isa-irq.c:118:13: warning: symbol 'isa_init_irq' was not declared. Signed-off-by: Ben Dooks commit 87e0d6cca16a7c9ec446d82a465077a0f99171de Author: Ben Dooks Date: Thu Jan 8 15:42:40 2009 +0000 [ARM] arch/arm/kernel/isa.c: missing definition of register_isa_ports arch/arm/kernel/isa.c should include to get the definition of register_io_ports() at-least when compiling for footbridge to fix the following sparse warning: isa.c:68:1: warning: symbol 'register_isa_ports' was not declared. Signed-off-by: Ben Dooks commit c835ee7f4154992e6cf0674d7ee136f5d36247a4 Author: Richard Purdie Date: Tue Jan 6 21:00:19 2009 +0000 backlight: Add suspend/resume support to the backlight core Add suspend/resume support to the backlight core and enable use of it by appropriate drivers. Signed-off-by: Richard Purdie commit a076aa4f96f40fc75451ae835a1a665ce1faf951 Merge: d2852b9... 2500664... Author: Robert Richter Date: Thu Jan 8 15:54:04 2009 +0100 Merge branch 'oprofile/cell' into oprofile/oprofile-for-tip commit 25006644e6042aab4bb7cdc4bfc5777cd3141df7 Author: Robert Richter Date: Thu Jan 8 15:39:49 2009 +0100 powerpc/oprofile: fix whitespaces in op_model_cell.c Signed-off-by: Robert Richter commit 883823291d22e06736f1056da6d8303291d6bbf9 Author: Carl Love Date: Mon Dec 1 16:18:36 2008 -0800 powerpc/oprofile: IBM CELL: add SPU event profiling support This patch adds the SPU event based profiling funcitonality for the IBM Cell processor. Previously, the CELL OProfile kernel code supported PPU event, PPU cycle profiling and SPU cycle profiling. The addition of SPU event profiling allows the users to identify where in their SPU code various SPU evnets are occuring. This should help users further identify issues with their code. Note, SPU profiling has some limitations due to HW constraints. Only one event at a time can be used for profiling and SPU event profiling must be time sliced across all of the SPUs in a node. The patch adds a new arch specific file to the OProfile file system. The file has bit 0 set to indicate that the kernel supports SPU event profiling. The user tool must check this file/bit to make sure the kernel supports SPU event profiling before trying to do SPU event profiling. The user tool check is part of the user tool patch for SPU event profiling. Signed-off-by: Carl Love Signed-off-by: Robert Richter commit 014cef91ecef9d5e85f9c98a2efbf8a8c4710510 Author: Robert Richter Date: Thu Jan 8 15:29:47 2009 +0100 powerpc/oprofile: fix cell/pr_util.h Signed-off-by: Robert Richter commit 9b93418e7ee59dbc96d44cfde7f65f886e54dba9 Author: Carl Love Date: Mon Dec 1 16:18:34 2008 -0800 powerpc/oprofile: IBM CELL: cleanup and restructuring This patch restructures and cleans up the code a bit to make it easier to add new functionality later. The patch makes no functional changes to the existing code. Signed-off-by: Carl Love Signed-off-by: Robert Richter commit 9be1df98bca44dbe3769cd22f4ab8122b76c5313 Author: Zhang Rui Date: Thu Jan 8 14:11:30 2009 +0000 bd->props.brightness doesn't reflect the actual backlight level. Always invoke backlight_update_status when users want to change the backlight. For setups where brightness change is an expensive operation, this could be done in the driver rather than the core. http://bugzilla.kernel.org/show_bug.cgi?id=12249 Signed-off-by: Zhang Rui Signed-off-by: Richard Purdie commit d2852b932f0bb5e89177aa27c7bcf07f4167e129 Merge: 4a6908a... 14f0ca8... Author: Robert Richter Date: Thu Jan 8 14:27:34 2009 +0100 Merge branch 'oprofile/ring_buffer' into oprofile/oprofile-for-tip commit 0081e8020ebd814a99e45720a10e869a54ee08a6 Author: Mark Brown Date: Thu Dec 4 16:52:33 2008 +0000 leds: Add WM8350 LED driver The voltage and current regulators on the WM8350 AudioPlus PMIC can be used in concert to provide a power efficient LED driver. This driver implements support for this within the standard LED class. Platform initialisation code should configure the LED hardware in the init callback provided by the WM8350 core driver. The callback should use wm8350_isink_set_flash(), wm8350_dcdc25_set_mode() and wm8350_dcdc_set_slot() to configure the operating parameters of the regulators for their hardware and then then use wm8350_register_led() to instantiate the LED driver. This driver was originally written by Liam Girdwood, though it has been extensively modified since then. Signed-off-by: Mark Brown Signed-off-by: Richard Purdie commit 934cd3f979a1daacbd403398f2c7a8f6720c33aa Author: Riku Voipio Date: Wed Dec 3 08:21:36 2008 +0000 leds: leds-pcs9532 - Move i2c work to a workqueque Apparently these might be called under atomic context, and i2c operations may sleep. BUG found by Ross Burton Signed-off-by: Riku Voipio Signed-off-by: Richard Purdie commit f785d022add53ec4d9625495b335bed40bd6c079 Author: Sven Wegener Date: Wed Dec 3 08:12:53 2008 +0000 leds: leds-pca9532 - fix memory leak and properly handle errors When the registration fails, we need to release the memory we allocated. Also we need to save the error from led_classdev_register and propagate it up, else we'll return success, even if we failed. Signed-off-by: Riku Voipio Signed-off-by: Richard Purdie commit 12276efcc85f3108174893bff8878e0dc655b066 Author: Sven Wegener Date: Wed Dec 3 08:11:17 2008 +0000 leds: Fix wrong loop direction on removal in leds-ams-delta We want to go upwards, not downwards. Signed-off-by: Sven Wegener Signed-off-by: Richard Purdie commit ec1496193d53ebd8d79cdf1d6d7d4970ef342af2 Author: Yoichi Yuasa Date: Wed Dec 3 08:09:28 2008 +0000 leds: fix Cobalt Raq LED dependency Cobalt Raq LEDs require LEDS_CLASS=y. Signed-off-by: Yoichi Yuasa Signed-off-by: Andrew Morton Signed-off-by: Richard Purdie commit 5a48503d3c388735f3352d325254b82e02b09981 Author: Sven Wegener Date: Wed Dec 3 08:06:42 2008 +0000 leds: Fix sparse warning in leds-ams-delta drivers/leds/leds-ams-delta.c:154:2: warning: returning void-valued expression Signed-off-by: Sven Wegener Signed-off-by: Richard Purdie commit ff8649affc10a86e41d9ba1d91a643d4654dae5b Author: Sven Wegener Date: Wed Dec 3 08:04:57 2008 +0000 leds: Fixup kdoc comment to match parameter names Signed-off-by: Sven Wegener Signed-off-by: Richard Purdie commit e2387d6c20752ccdb2895ba5de664fa39652f4cc Author: Wolfram Sang Date: Mon Nov 17 14:35:44 2008 +0000 leds: Make header variable naming consistent There is one place where the struct led_classdev as the function argument is named differently. Fix it. Signed-off-by: Wolfram Sang Signed-off-by: Richard Purdie commit 0d73357910f0c2f35220329bd6c476afa558280c Author: Sven Wegener Date: Mon Nov 17 14:33:41 2008 +0000 leds: eds-pca9532: mark pca9532_event() static Signed-off-by: Sven Wegener Signed-off-by: Andrew Morton Signed-off-by: Richard Purdie commit ec9a943ce9f6d6a8ea09587b49d29a020c418c76 Author: Constantin Baranov Date: Mon Nov 17 11:31:08 2008 +0000 leds: ALIX.2 LEDs driver Driver for PC Engines ALIX.2 and ALIX.3 LEDs. Signed-off-by: Constantin Baranov Signed-off-by: Richard Purdie commit 0ec561f4b648260a46ace87acbc558241808455f Author: Dmitry Baryshkov Date: Thu Dec 4 16:54:42 2008 +0000 backlight: Support VGA/QVGA mode switching in tosa_lcd LCD driver on tosa requires reprogramming TG after mode switching. Add support for switching to QVGA mode. Signed-off-by: Dmitry Baryshkov Signed-off-by: Richard Purdie commit 9a2c61a921a8aeabacaccad0d2fdf75e1c1475fb Author: Pavel Machek Date: Wed Dec 3 08:43:48 2008 +0000 backlight: Catch invalid input in sysfs attributes Check input properly in backlight, echo > brightness should not turn off the backlight. [akpm@linux-foundation.org: coding-style fixes] [akpm@linux-foundation.org: fix printk warning] Signed-off-by: Pavel Machek Signed-off-by: Andrew Morton Signed-off-by: Richard Purdie commit 866bbdba7795cac2da24853ea2259e0e4ef7d02d Author: Denis V. Lunev Date: Wed Dec 3 08:42:01 2008 +0000 backlight: Value of ILI9320_RGB_IF2 register should not be hardcoded It is stored in the board specific file ./arch/arm/mach-s3c2412/mach-jive.c as .rgb_if2. Actually, the value is correct, only semantic is wrong. Signed-off-by: Denis V. Lunev Signed-off-by: Andrew Morton Signed-off-by: Richard Purdie commit b4a11d3da20db62f31b3133a6eca8a35633e0838 Author: Akinobu Mita Date: Mon Nov 17 15:21:32 2008 +0000 backlight: crbllcd_bl - Use platform_device_register_simple() Use platform_device_register_simple() and also fix error handling when platform_device_alloc() fails (cr_backlight_driver is left registered). Signed-off-by: Akinobu Mita Signed-off-by: Richard Purdie commit 6cd6f35a4b0ff86638df986efaa307de91f88ae8 Author: Akinobu Mita Date: Mon Nov 17 15:19:29 2008 +0000 backlight: progear_bl - Use platform_device_register_simple() Use platform_device_register_simple() and also fix error handling when platform_device_alloc() fails (progearbl_driver is left registered). Signed-off-by: Akinobu Mita Signed-off-by: Richard Purdie commit 3bcdcc0e6675e6fcd1f27d119464036fb54f53b7 Author: Akinobu Mita Date: Mon Nov 17 15:16:20 2008 +0000 backlight: hp680_bl - Use platform_device_register_simple() Use platform_device_register_simple() and also fix error handling when platform_device_alloc() fails (hp680_bl_driver is left registered). Signed-off-by: Akinobu Mita Signed-off-by: Richard Purdie commit b9456371a73871d001e67b5f4eac118c2c278e1c Author: David Howells Date: Thu Jan 8 11:18:31 2009 +0000 CRED: Fix commit_creds() on a process that has no mm Fix commit_creds()'s handling of a process that has no mm (such as one that is calling or has called daemonize()). commit_creds() should check to see if task->mm is not NULL before calling set_dumpable() on it. Reported-by: Jiri Slaby Signed-off-by: David Howells Signed-off-by: James Morris commit cb6ff208076b5f434db1b8c983429269d719cef5 Author: David Howells Date: Thu Jan 8 12:04:48 2009 +0000 NOMMU: Support XIP on initramfs Support XIP on files unpacked from the initramfs image on NOMMU systems. This simply requires the length of the file to be preset so that the ramfs fs can attempt to garner sufficient contiguous storage to store the file (NOMMU mmap can only map contiguous RAM). All the other bits to do XIP on initramfs files are present: (1) ramfs's truncate attempts to allocate a contiguous run of pages when a file is truncated upwards from nothing. (2) ramfs sets BDI on its files to indicate direct mapping is possible, and that its files can be mapped for read, write and exec. (3) NOMMU mmap() will use the above bits to determine that it can do XIP. Possibly this needs better controls, because it will _always_ try and do XIP. One disadvantage of this very simplistic approach is that sufficient space will be allocated to store the whole file, and not just the bit that would be XIP'd. To deal with this, though, the initramfs unpacker would have to be able to parse the file contents. Signed-off-by: David Howells Acked-by: Paul Mundt commit ab2e83ead4eca9e045daac4cbf66eb1e7a244bb2 Author: Paul Mundt Date: Thu Jan 8 12:04:48 2009 +0000 NOMMU: Teach kobjsize() about VMA regions. Now that we no longer use compound pages for all large allocations, kobjsize() actively breaks things like binfmt_flat by always handing back PAGE_SIZE for mmap'ed regions. Fix this up by looking up the VMA region for non-compounds. Ideally binfmt_flat wants to get rid of kobjsize() completely, but this is an incremental step. Signed-off-by: Paul Mundt Signed-off-by: David Howells Tested-by: Mike Frysinger commit 0f3e442a403a344a5d0a49af9ecd7632b7e7343a Author: David Howells Date: Thu Jan 8 12:04:47 2009 +0000 FLAT: Don't attempt to expand the userspace stack to fill the space allocated Stop the FLAT binfmt from attempting to expand the userspace stack and brk segments to fill the space actually allocated for it. The space allocated may be rounded up by mmap(), and may be wasted. However, finding out how much space we actually obtained uses the contentious kobjsize() function which we'd like to get rid of as it doesn't necessarily work for all slab allocators. Signed-off-by: David Howells Tested-by: Mike Frysinger Acked-by: Paul Mundt commit f4bbf51050a1e1dd485e9cd89eef4619a7453d71 Author: David Howells Date: Thu Jan 8 12:04:47 2009 +0000 FDPIC: Don't attempt to expand the userspace stack to fill the space allocated Stop the ELF-FDPIC binfmt from attempting to expand the userspace stack and brk segments to fill the space actually allocated for it. The space allocated may be rounded up by mmap(), and may be wasted. However, finding out how much space we actually obtained uses the contentious kobjsize() function which we'd like to get rid of as it doesn't necessarily work for all slab allocators. Signed-off-by: David Howells Tested-by: Mike Frysinger Acked-by: Paul Mundt commit 38f714795b7cf4103c54152200ca66b524f8ed6e Author: David Howells Date: Thu Jan 8 12:04:47 2009 +0000 NOMMU: Improve procfs output using per-MM VMAs Improve procfs output using per-MM VMAs for process memory accounting. Signed-off-by: David Howells Tested-by: Mike Frysinger Acked-by: Paul Mundt commit dd8632a12e500a684478fea0951f380478d56fed Author: Paul Mundt Date: Thu Jan 8 12:04:47 2009 +0000 NOMMU: Make mmap allocation page trimming behaviour configurable. NOMMU mmap allocates a piece of memory for an mmap that's rounded up in size to the nearest power-of-2 number of pages. Currently it then discards the excess pages back to the page allocator, making that memory available for use by other things. This can, however, cause greater amount of fragmentation. To counter this, a sysctl is added in order to fine-tune the trimming behaviour. The default behaviour remains to trim pages aggressively, while this can either be disabled completely or set to a higher page-granular watermark in order to have finer-grained control. vm region vm_top bits taken from an earlier patch by David Howells. Signed-off-by: Paul Mundt Signed-off-by: David Howells Tested-by: Mike Frysinger commit 8feae13110d60cc6287afabc2887366b0eb226c2 Author: David Howells Date: Thu Jan 8 12:04:47 2009 +0000 NOMMU: Make VMAs per MM as for MMU-mode linux Make VMAs per mm_struct as for MMU-mode linux. This solves two problems: (1) In SYSV SHM where nattch for a segment does not reflect the number of shmat's (and forks) done. (2) In mmap() where the VMA's vm_mm is set to point to the parent mm by an exec'ing process when VM_EXECUTABLE is specified, regardless of the fact that a VMA might be shared and already have its vm_mm assigned to another process or a dead process. A new struct (vm_region) is introduced to track a mapped region and to remember the circumstances under which it may be shared and the vm_list_struct structure is discarded as it's no longer required. This patch makes the following additional changes: (1) Regions are now allocated with alloc_pages() rather than kmalloc() and with no recourse to __GFP_COMP, so the pages are not composite. Instead, each page has a reference on it held by the region. Anything else that is interested in such a page will have to get a reference on it to retain it. When the pages are released due to unmapping, each page is passed to put_page() and will be freed when the page usage count reaches zero. (2) Excess pages are trimmed after an allocation as the allocation must be made as a power-of-2 quantity of pages. (3) VMAs are added to the parent MM's R/B tree and mmap lists. As an MM may end up with overlapping VMAs within the tree, the VMA struct address is appended to the sort key. (4) Non-anonymous VMAs are now added to the backing inode's prio list. (5) Holes may be punched in anonymous VMAs with munmap(), releasing parts of the backing region. The VMA and region structs will be split if necessary. (6) sys_shmdt() only releases one attachment to a SYSV IPC shared memory segment instead of all the attachments at that addresss. Multiple shmat()'s return the same address under NOMMU-mode instead of different virtual addresses as under MMU-mode. (7) Core dumping for ELF-FDPIC requires fewer exceptions for NOMMU-mode. (8) /proc/maps is now the global list of mapped regions, and may list bits that aren't actually mapped anywhere. (9) /proc/meminfo gains a line (tagged "MmapCopy") that indicates the amount of RAM currently allocated by mmap to hold mappable regions that can't be mapped directly. These are copies of the backing device or file if not anonymous. These changes make NOMMU mode more similar to MMU mode. The downside is that NOMMU mode requires some extra memory to track things over NOMMU without this patch (VMAs are no longer shared, and there are now region structs). Signed-off-by: David Howells Tested-by: Mike Frysinger Acked-by: Paul Mundt commit 41836382ebb415d68d3ebc4525e78e871fe58baf Author: David Howells Date: Thu Jan 8 12:04:47 2009 +0000 NOMMU: Delete askedalloc and realalloc variables Delete the askedalloc and realalloc variables as nothing actually uses the value calculated. Signed-off-by: David Howells Tested-by: Mike Frysinger Acked-by: Paul Mundt commit 9c93af1ede9418bb3f1b9dd442faf91ba796a0ff Author: David Howells Date: Thu Jan 8 12:04:47 2009 +0000 NOMMU: Rename ARM's struct vm_region Rename ARM's struct vm_region so that I can introduce my own global version for NOMMU. It's feasible that the ARM version may wish to use my global one instead. The NOMMU vm_region struct defines areas of the physical memory map that are under mmap. This may include chunks of RAM or regions of memory mapped devices, such as flash. It is also used to retain copies of file content so that shareable private memory mappings of files can be made. As such, it may be compatible with what is described in the banner comment for ARM's vm_region struct. Signed-off-by: David Howells commit 0e8f989a253b1bf85ea1c8d7987d67c054f4af91 Author: David Howells Date: Thu Jan 8 12:04:46 2009 +0000 NOMMU: Fix cleanup handling in ramfs_nommu_get_umapped_area() Fix cleanup handling in ramfs_nommu_get_umapped_area() by only freeing the number of pages that find_get_pages() said it had returned (nr) rather than attempting to free the number of pages we asked for (lpages) - thus avoiding the situation whereby put_page() may be handed NULL pointers if find_get_pages() returned fewer pages that were requested. Also avoid a warning about nr being uninitialised and the need for an if-statement in the cleanup path by using appropriate gotos. Signed-off-by: David Howells commit 5886188dc7ba9a76babcd37452f44079a9a77f71 Author: Benjamin Krill Date: Wed Jan 7 10:32:38 2009 +0100 serial: Add driver for the Cell Network Processor serial port NWP device Add support for the nwp serial device which is connected to a DCR bus. It uses the of_serial device driver to determine necessary properties from the device tree. The supported device is added as serial port number 85. NWP stands for network processor and it is part of the QPACE - Quantum Chromodynamics Parallel Computing on the Cell Broadband Engine project. The implementation is a lightweight uart implementation with the focus to consume as little resources as possible and it is connected to a DCR bus. Signed-off-by: Benjamin Krill Signed-off-by: Arnd Bergmann Signed-off-by: Andrew Morton Signed-off-by: Benjamin Herrenschmidt commit 2b79d6962322facfd377a402730e4b381af95a40 Author: Steven Rostedt Date: Tue Jan 6 18:49:17 2009 +0000 powerpc: enable dynamic ftrace This patch enables dynamic ftrace. The PowerPC port was dependent on other code not yet in mainline. Now that the code is, we can now let PowerPC compile with dynamic ftrace. Signed-off-by: Steven Rostedt Signed-off-by: Benjamin Herrenschmidt commit 9b635642bce0500bdc7331ce8eeca97907b77117 Author: Stephen Rothwell Date: Tue Jan 6 13:58:22 2009 +0000 powerpc/cell: Fix the prototype of create_vma_map() Signed-off-by: Stephen Rothwell Acked-by: Arnd Bergmann Signed-off-by: Benjamin Herrenschmidt commit 7021d86afa6f3a8bf76218ac97f5847a6d985730 Author: Anton Vorontsov Date: Mon Dec 29 06:40:35 2008 +0000 powerpc/mm: Make clear_fixmap() actually work The clear_fixmap() routine issues map_page() with flags set to 0. Currently this causes a BUG_ON() inside the map_page(), as it assumes that a PTE should be clear before mapping. This patch makes the map_page() to trigger the BUG_ON() only if the flags were set. Signed-off-by: Anton Vorontsov Acked-by: Kumar Gala Signed-off-by: Benjamin Herrenschmidt commit 02af87a74271977d09ece9b709909dcae3f9fab9 Author: Anton Vorontsov Date: Wed Dec 17 10:09:35 2008 +0000 powerpc/kdump: Use ppc_save_regs() in crash_setup_regs() The patch replaces internal registers dump implementation with ppc_save_regs(). From now on PPC64 and PPC32 are using the same code for crash_setup_regs(). NOTE: The old regs dump implementation was capturing SP (r1) directly as is, so you could see crash_kexec() function on top of the back-trace. But ppc_save_regs() goes up one stack frame, so you'll not see it anymore, at the top-level you'll see who actually triggered the crash dump instead. Signed-off-by: Anton Vorontsov Signed-off-by: Benjamin Herrenschmidt commit 1edda9c795b99c3761715a73f62a78fce41a1f1d Author: Kumar Gala Date: Tue Jan 6 23:00:05 2009 -0600 powerpc: Export cacheable_memzero as its now used in a driver The Freescale PowerPC specific gianfar driver (gig-e) uses cacheable_memzero for performance reasons we need to export the symbol to allow the driver to be built as a module. Signed-off-by: Kumar Gala Signed-off-by: Benjamin Herrenschmidt commit 4a0826824beb28390651a962987b0681b9e7fe93 Author: Benjamin Herrenschmidt Date: Tue Jan 6 17:56:51 2009 +0000 powerpc: Fix missing semicolons in mmu_decl.h This is a brown paper bag from one of my earlier patches that breaks build on 40x and 8xx. And yes, I've now added 40x and 8xx to my list of test configs :-) Signed-off-by: Benjamin Herrenschmidt commit ac3f6454d1ee0eb68485e05bb068de7c22e730d7 Author: Ingo Molnar Date: Tue Jan 6 14:06:28 2009 +0000 powerpc/pasemi: local_irq_save uses an unsigned long [Split from a larger patch - sfr] Signed-off-by: Ingo Molnar Signed-off-by: Stephen Rothwell Signed-off-by: Benjamin Herrenschmidt commit b36ac9e84b4a3602bd07c2b7cf995f88f76d8428 Author: Ingo Molnar Date: Tue Jan 6 14:03:44 2009 +0000 powerpc/cell: Fix some u64 vs. long types in/out_be64() work on u64s. The first parameter to ppc_md.ioremap is a phys_addr_t. Signed-off-by: Ingo Molnar Signed-off-by: Stephen Rothwell Acked-by: Arnd Bergmann Signed-off-by: Benjamin Herrenschmidt commit 19b0bd025d6647549e07becf02b99e5168c17432 Author: Ingo Molnar Date: Tue Jan 6 14:01:23 2009 +0000 powerpc/cell: Use correct types in beat files Only pass the address of a u64 if that is what the function requires. [Split out of a larger patch - sfr] [update comment - sfr] Signed-off-by: Ingo Molnar Signed-off-by: Stephen Rothwell Signed-off-by: Benjamin Herrenschmidt commit 2b931fb67e10d6eb99d9928fa3afe83cdeeb7354 Author: Ingo Molnar Date: Tue Jan 6 13:56:52 2009 +0000 powerpc: Use correct type in prom_init.c tce_entryp is a "u64 *" not an "unsigned long *". [Split from a large patch -sfr] Signed-off-by: Ingo Molnar Signed-off-by: Stephen Rothwell Signed-off-by: Benjamin Herrenschmidt commit 63277161312dd42af7dd3968077b272d192dd6ba Author: Stephen Rothwell Date: Tue Jan 6 13:54:25 2009 +0000 powerpc: Remove unnecessary casts of_get_flat_dt_prop() returns a "void *", so we don't need to cast when assigning its result to a pointer variable. Signed-off-by: Benjamin Herrenschmidt commit 2efd72af0f18860927084df618f7419c82f69be3 Author: Geoff Levand Date: Wed Jan 7 17:22:07 2009 -0800 mtd/ps3vram: Use _PAGE_NO_CACHE in memory ioremap Use _PAGE_NO_CACHE for gpu memory ioremap. Also, add __iomem attribute to gpu memory pointer and change use of memset() to memset_io(). Signed-off-by: Geoff Levand Signed-off-by: Benjamin Herrenschmidt commit 60c0c5987b0996a7c7c4c6d90f63ed413c368a71 Author: Geoff Levand Date: Wed Jan 7 17:22:02 2009 -0800 mtd/ps3vram: Use msleep in waits Replace the use of udelay() with msleep() in the looping wait routines ps3vram_notifier_wait() and ps3vram_wait_ring(). Signed-off-by: Geoff Levand Signed-off-by: Benjamin Herrenschmidt commit 993e62e674ba670341f11f60398446bb37a88e8b Author: Geoff Levand Date: Tue Jan 6 11:32:28 2009 +0000 mtd/ps3vram: Use proper kernel types Replace the use of stdint.h types with kernel types in the ps3vram driver. Signed-off-by: Geoff Levand Signed-off-by: Benjamin Herrenschmidt commit f259d74e030faab15b95fb4bb56d7f424773c278 Author: Geoff Levand Date: Tue Jan 6 11:32:21 2009 +0000 mtd/ps3vram: Cleanup ps3vram driver messages Cleanup the ps3vram driver messages. Add a new struct device pointer variable dev to struct ps3vram_priv and use dev_dbg(), pr_dbg(), etc. where appropriate. Signed-off-by: Geoff Levand Signed-off-by: Benjamin Herrenschmidt commit e7dd54cf17714c22665ad74b720f40fb64b3c565 Author: Geoff Levand Date: Tue Jan 6 11:32:15 2009 +0000 mtd/ps3vram: Remove ps3vram debug routines Remove the ps3vram debug routines ps3vram_dump_ring() and ps3vram_dump_reports(). These routines are not needed. Signed-off-by: Geoff Levand Signed-off-by: Benjamin Herrenschmidt commit 0a2d15b928e0b1673d4ed5f48d95af211b6fcc06 Author: Geert Uytterhoeven Date: Tue Jan 6 11:32:03 2009 +0000 mtd/ps3vram: Add modalias support to the ps3vram driver Update ps3vram driver to use the new ps3 three id modalias support. Signed-off-by: Geert Uytterhoeven Signed-off-by: Geoff Levand Signed-off-by: Benjamin Herrenschmidt commit cffb4add03b1fc83026b06dc3664279cfbf70155 Author: Jim Paris Date: Tue Jan 6 11:32:10 2009 +0000 mtd/ps3vram: Add ps3vram driver for accessing video RAM as MTD Add ps3vram driver, which exposes unused video RAM on the PS3 as a MTD device suitable for storage or swap. Fast data transfer is achieved using a local cache in system RAM and DMA transfers via the GPU. Signed-off-by: Vivien Chappelier Signed-off-by: Jim Paris Acked-by: Geoff Levand Acked-by: David Woodhouse Signed-off-by: Benjamin Herrenschmidt commit d2b4397bf87cf6547ca9fa75b6b84eada96c0848 Author: Kamalesh Babulal Date: Tue Jan 6 05:57:24 2009 +0000 powerpc: Fix iseries drivers build failure without CONFIG_VIOPATH iSeries dependent drivers fail to build, when CONFIG_VIOPATH is disabled. Fix the problem by making those drivers select it. Signed-off-by: Kamalesh Babulal Signed-off-by: Benjamin Herrenschmidt commit c6ac71a14aec8278507a71d9d9f496dc9adad010 Author: Mohan Kumar M Date: Tue Jan 6 00:23:01 2009 +0000 powerpc: Enable RELOCATABLE option for CRASH_DUMP Enable RELOCATABLE option if user selects CRASH_DUMP option. Without this patch user has to first select RELOCATABLE option and then has to enable CRASH_DUMP option. Signed-off-by: M. Mohan Kumar Signed-off-by: Benjamin Herrenschmidt commit d6a09e0cd6329db6f48b0015407a1b038d8fa64b Author: Dave Liu Date: Tue Dec 30 23:42:55 2008 +0000 powerpc: Remove the redundant _tlbil_pid at SMP case Signed-off-by: Dave Liu Acked-by: Benjamin Herrenschmidt Signed-off-by: Benjamin Herrenschmidt commit 54cfd0d5cac9df4f7b32969156a55f7e0d9297ad Author: Stephen Rothwell Date: Tue Dec 30 17:09:15 2008 +0000 powerpc/cell: local_irq_save takes an unsigned long Signed-off-by: Stephen Rothwell Acked-by: Arnd Bergmann Signed-off-by: Benjamin Herrenschmidt commit ee418b8646d5d6dc2df343ffaefd2b74940d0048 Author: Stephen Rothwell Date: Tue Dec 30 17:06:15 2008 +0000 powerpc/cell: Bitops work on unsigned longs So change the flags member of struct spu from u64 to unsigned long. This change will also prevent some warnings when we change u64 to unsigned long long. Signed-off-by: Stephen Rothwell Acked-by: Arnd Bergmann Signed-off-by: Benjamin Herrenschmidt commit d50701781a55d09696a0585112a124b0723acf3b Author: Matthias Fuchs Date: Tue Dec 30 00:59:38 2008 +0000 powerpc: Add ioctls for RS485 mode control of serial drivers These ioctls take a struct serial_rs485 (see linux/serial.h) as argument. They are already available on x86. This patch adds them for the powerpc architecture. Signed-off-by: Matthias Fuchs Signed-off-by: Benjamin Herrenschmidt commit 16124f10df43e6e08783f1fede6888bf36ac705c Author: Paul Mackerras Date: Sun Dec 28 14:12:57 2008 +0000 powerpc: Fix pciconfig_iobase system call on PCI-Express powermac X has been failing to start on my quad G5 powermac since commit 1fd0f52583a85b21a394201b007bc1ee104b235d ("powerpc: Fix domain numbers in /proc on 64-bit") went in. The reason is that the change allows X to see the PCI-PCI bridge above the video card (previously it was obscured by the fact that there were two "00" directories in /proc/bus/pci), and the pciconfig_iobase system call on the bridge is failing because of a hack that we have to return information about the AGP bus when X asks about bus 0. This machine doesn't have an AGP bus (it has PCI Express) and so the pciconfig_iobase call is returning -1, which ultimately causes X to fail to start. This fixes it by checking that we have an AGP bridge before redirecting the pciconfig_iobase call to return information about the AGP bus. With this, X starts successfully both on a quad G5 with PCI Express and on an older dual G5 with AGP. Signed-off-by: Paul Mackerras Acked-by: Benjamin Herrenschmidt Signed-off-by: Benjamin Herrenschmidt commit 1d5bc03a8183d12c7daf4e7c69cce8d9c4b9a86b Author: Julia Lawall Date: Thu Dec 25 04:34:04 2008 +0000 powerpc/pasemi: Use DEFINE_SPINLOCK SPIN_LOCK_UNLOCKED is deprecated. The following makes the change suggested in Documentation/spinlocks.txt The semantic patch that makes this change is as follows: (http://www.emn.fr/x-info/coccinelle/) // @@ declarer name DEFINE_SPINLOCK; identifier xxx_lock; @@ - spinlock_t xxx_lock = SPIN_LOCK_UNLOCKED; + DEFINE_SPINLOCK(xxx_lock); // Signed-off-by: Julia Lawall Signed-off-by: Benjamin Herrenschmidt commit 2701a1ad04ebab0c8fae8beb4586383a5a70ba0c Author: Julia Lawall Date: Thu Dec 25 04:33:34 2008 +0000 powerpc/52xx: Use DEFINE_SPINLOCK SPIN_LOCK_UNLOCKED is deprecated. The following makes the change suggested in Documentation/spinlocks.txt The semantic patch that makes this change is as follows: (http://www.emn.fr/x-info/coccinelle/) // @@ declarer name DEFINE_SPINLOCK; identifier xxx_lock; @@ - spinlock_t xxx_lock = SPIN_LOCK_UNLOCKED; + DEFINE_SPINLOCK(xxx_lock); // Signed-off-by: Julia Lawall Signed-off-by: Benjamin Herrenschmidt commit 93197a36a9c16a85fb24cf5a8639f7bf9af838a3 Author: Nathan Lynch Date: Tue Dec 23 18:55:54 2008 +0000 powerpc: Rewrite sysfs processor cache info code The current code for providing processor cache information in sysfs has the following deficiencies: - several complex functions that are hard to understand - implicit recursion (cache_desc_release -> kobject_put -> cache_desc_release) - explicit recursion (create_cache_index_info) - use of two per-cpu arrays when one would suffice - duplication of work on systems where CPUs share cache Also, when I looked at implementing support for a shared_cpu_map attribute, it was pretty much impossible to handle hotplug without checking every single online CPU's cache_desc list and fixing things up... not that this is a hot path, but it would have introduced O(n^2)-ish behavior during boot. Addressing this involved rethinking the core data structures used, which didn't lend itself to an incremental approach. This implementation maintains a "forest" (potentially more than one tree) of cache objects which reflects the system's cache topology. Cache objects are instantiated as needed as CPUs come online. A per-cpu array is used mainly for sysfs-related bookkeeping; the objects in the array just point to the appropriate points in the forest. This maintains compatibility with the existing code and includes some enhancements: - Implement the shared_cpu_map attribute, which is essential for enabling userspace to discover the system's overall cache topology. - Use cache-block-size properties if cache-line-size is not available. I chose to place this implementation in a new file since it would have roughly doubled the size of sysfs.c, which is already kind of messy. Signed-off-by: Nathan Lynch Signed-off-by: Benjamin Herrenschmidt commit 5c9a2606bcad101e169012d9f79ab3aed60926aa Author: Michael Ellerman Date: Mon Dec 22 23:23:18 2008 +0000 powerpc/iseries: Kexec is known not to work on iseries The non-zero return from the prepare callback is returned by sys_kexec_load() to userspace, indicating that kexec is not supported on the machine. Signed-off-by: Michael Ellerman Signed-off-by: Benjamin Herrenschmidt commit 29f1aff2cc20d8b81fe3c890b8f134e84b8f41fe Author: Grant Likely Date: Fri Dec 19 14:57:20 2008 +0000 powerpc: Copy bootable images in the default install script This patch makes the default install script (arch/powerpc/boot/install.sh) copy the bootable image files into the install directory. Before this patch only the vmlinux image file was copied. This patch makes the default 'make install' command useful for embedded development when $(INSTALL_PATH) is set in the environment. As a side effect, this patch changes the calling convention of the install.sh script. Instead of a single 5th parameter, the script is now passed a list of all the target images stored in the $(image-y) Makefile variable. This should be backwards compatible with existing install scripts since it just adds additional arguments and does not change existing ones. Signed-off-by: Grant Likely Acked-by: Josh Boyer Signed-off-by: Benjamin Herrenschmidt commit 893473df78b4407c9ab75cb55479409795953b01 Author: Dave Hansen Date: Tue Dec 9 08:21:36 2008 +0000 powerpc/mm: Cleanup careful_allocation(): consolidate memset() Both users of careful_allocation() immediately memset() the result. So, just do it in one place. Also give careful_allocation() a 'z' prefix to bring it in line with kzmalloc() and friends. Signed-off-by: Dave Hansen Signed-off-by: Benjamin Herrenschmidt commit 0be210fd664b07531cb238bafb453a2a54c2a7a8 Author: Dave Hansen Date: Tue Dec 9 08:21:35 2008 +0000 powerpc/mm: Make careful_allocation() return virtual addrs Since we memset() the result in both of the uses here, just make careful_alloc() return a virtual address. Also, add a separate variable to store the physial address that comes back from the lmb_alloc() functions. This makes it less likely that someone will screw it up forgetting to convert before returning since the vaddr is always in a void* and the paddr is always in an unsigned long. I admit this is arbitrary since one of its users needs a paddr and one a vaddr, but it does remove a good number of casts. Signed-off-by: Dave Hansen Signed-off-by: Benjamin Herrenschmidt commit 5d21ea2b0e1d9d5d880670dbb9a96efe9b419583 Author: Dave Hansen Date: Tue Dec 9 08:21:33 2008 +0000 powerpc/mm:: Cleanup careful_allocation(): bootmem already panics If we fail a bootmem allocation, the bootmem code itself panics. No need to redo it here. Also change the wording of the other panic. We don't strictly have to allocate memory on the specified node. It is just a hint and that node may not even *have* any memory on it. In that case we can and do fall back to other nodes. Signed-off-by: Dave Hansen Signed-off-by: Benjamin Herrenschmidt commit c555e520ef794a94dc36a8ded93ece6369ff7ca0 Author: Dave Hansen Date: Tue Dec 9 08:21:32 2008 +0000 powerpc/mm: Add better comment on careful_allocation() The behavior in careful_allocation() really confused me at first. Add a comment to hopefully make it easier on the next doofus that looks at it. Signed-off-by: Dave Hansen Signed-off-by: Benjamin Herrenschmidt commit afcb065450913745027169d906b9afc8294f7007 Author: Nicolas Palix Date: Wed Dec 3 00:25:03 2008 +0000 powerpc/powermac: Add missing of_node_put This patch fixes some unbalanced OF node references in the powermac code Signed-off-by: Nicolas Palix Signed-off-by: Julia Lawall Signed-off-by: Benjamin Herrenschmidt commit c1f343028d35ba4e88cd4a3c44e0d8b8a84264ee Author: Benjamin Herrenschmidt Date: Tue Nov 11 17:45:52 2008 +0000 powerpc/pci: Reserve legacy regions on PCI There's a problem on some embedded platforms when we re-assign everything on PCI, such as 44x. The generic code tries to avoid assigning devices to addresses overlapping the low legacy addresses such as VGA hard decoded areas using constants that are unfortunately no good for us, as they don't take into account the address translation we do to access PCI busses. Thus we end up allocating things like IO BARs to 0, which is technically legal, but will shadow hard decoded ports for use by things like VGA cards. This works around it by attempting to reserve legacy regions before we try to assign addresses. NOTE: This may have nasty side effects in cases I haven't tested yet: - We try to use FW mappings (ie. powermac) and the FW has allocated a conflicting address over those legacy regions. This will typically happen. I would expect the new code to just fail with an informative message without harm but I haven't had a chance to test that scenario yet. - A device with fixed BARs overlapping those legacy addresses such as an IDE controller in legacy mode is in the system. I don't know for sure yet what will happen there, I have to test :-) Ideally, we should change PCIBIOS_MIN_IO/MIN_MEM accross the board to take a bus pointer so they can provide appropriate per-bus translated values to the generic code but that's a more invasive patch. I will do that in the future, but in the meantime, this fixes the problem locally Signed-off-by: Benjamin Herrenschmidt commit 24f030175d30f019be41766cdf88c2ff03de19ff Merge: 4aa12f7... 9e42d0c... Author: Benjamin Herrenschmidt Date: Thu Jan 8 16:24:38 2009 +1100 Merge commit 'origin/master' into next commit d9d6f46b42294754f8d4ed743124ae8bb8e01fba Author: Stephen Hemminger Date: Wed Jan 7 18:13:49 2009 -0800 hp100: update to net_device_ops Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller commit 403413e50d6fc88dada28bf41262a3d0e3627827 Author: Stephen Hemminger Date: Wed Jan 7 18:10:49 2009 -0800 b44: convert to net_device_ops Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller commit 3a1a27fa46f6c3ce39fe02b73df6d8d4648d1679 Author: Stephen Hemminger Date: Wed Jan 7 18:10:24 2009 -0800 atp: convert to net_device_ops Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller commit 887e53d2d131fe0740326f66f1b417671fdfcf9a Author: Stephen Hemminger Date: Wed Jan 7 18:09:58 2009 -0800 amd8111e: convert to net_device_ops Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller commit b1da683d17972fc851c46331a5efa801bddf9273 Author: Stephen Hemminger Date: Wed Jan 7 18:09:36 2009 -0800 slip: convert to net_device_ops Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller commit c4a80d7e67b1a084e061853d39a1ba6f500027fd Author: Stephen Hemminger Date: Wed Jan 7 18:09:07 2009 -0800 uwb: convert devices to net_device_ops Signed-off-by: Stephen Hemminger Acked-by: David Vrabel Signed-off-by: David S. Miller commit 5ec38f3023217fc164763d2a5505dee806d84223 Author: Stephen Hemminger Date: Wed Jan 7 18:05:39 2009 -0800 gadget: convert devices to new API Convert to net_device_ops Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller commit e8ac9c55f28482f5b2f497a8e7eb90985db237c2 Author: Stephen Hemminger Date: Wed Jan 7 18:05:11 2009 -0800 xpnet: convert devices to new API Convert to net_device_ops and internal net_device_stats Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller commit 4805fc765330b4f114e856511e86daf493756a37 Author: Stephen Hemminger Date: Wed Jan 7 18:04:45 2009 -0800 fusion: convert devices to new API Convert to net_device_ops and internal net_device_stats Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller commit d700555bdaa34ff3e910300b4d58ea4d5523ce70 Author: Stephen Hemminger Date: Wed Jan 7 18:04:17 2009 -0800 I4l: convert to net_device_ops Add net_device_ops and use interal stats Signed-off-by: Stephen Hemminger Acked-by: Karsten Keil Signed-off-by: David S. Miller commit 0e2445fbdd2bfc7055f6e9ab83842bebcaf4868f Author: Stephen Hemminger Date: Wed Jan 7 18:03:43 2009 -0800 hysdn: convert to net_device_ops and other updates Several API problems fixed: * use proper allocation * handle renames * convert to net_device_ops * use internal net_device_stats This driver is putrid (as in old and rotten), so I doubt any one uses it. Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller commit fb875333c80942455551f690f306a899ceeee5df Author: Stephen Hemminger Date: Wed Jan 7 18:02:53 2009 -0800 dvb: update network device to current API Use internal network_device_stats that exist in network device and net_device_ops. Compile tested only. Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller commit 2a97e6b735416054dcc1b3cf7f4d358f43b45c6e Author: Stephen Hemminger Date: Wed Jan 7 18:02:26 2009 -0800 windbond: convert devices to new API Convert to net_device_ops and internal net_device_stats Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller commit dfefe02bfd865c18eeaebc07ff1cd50120c40c20 Author: Stephen Hemminger Date: Wed Jan 7 18:01:40 2009 -0800 uli526x: convert devices to new API Convert to net_device_ops and internal net_device_stats Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller commit 2765df58986ac4382b70bf31be70a64a7a9eaf4c Author: Stephen Hemminger Date: Wed Jan 7 18:01:20 2009 -0800 dmfe: convert to new API Convert to internal net_device-stats and net_device_ops Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller commit 1034c9f69ae7b61d408836e60c6a2b5afc6e48bc Author: Stephen Hemminger Date: Wed Jan 7 18:00:55 2009 -0800 xircom: convert devices to new API Convert to net_device_ops and internal net_device_stats Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller commit 0b9a5b05b23587c81e2985bc89f6f1a502c1991e Author: Stephen Hemminger Date: Wed Jan 7 18:00:31 2009 -0800 de4x5: convert to net_device_ops Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller commit 90d8743d03593520ceb5e8fd8cf3b86072518f83 Author: Stephen Hemminger Date: Wed Jan 7 17:59:47 2009 -0800 de2104x: convert to net_device_ops Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller commit f4266cf34d7b903e2e11b317f2e548a2acc4cd4e Author: Stephen Hemminger Date: Wed Jan 7 17:59:15 2009 -0800 tulip: convert devices to new API Convert to net_device_ops and internal net_device_stats Signed-off-by: Stephen Hemminger Acked-by: Grant Grundler Signed-off-by: David S. Miller commit 633a277e2a06b4cc10b1373380b09613c702523c Author: Stephen Hemminger Date: Wed Jan 7 17:58:43 2009 -0800 sundance: update to net_device_ops Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller commit 4fc8006e003a9bcb09015179e1cfc42420d88872 Author: Stephen Hemminger Date: Wed Jan 7 17:58:17 2009 -0800 starfire: update to net_device_ops Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller commit e287157f15f3ab9cda4cfe334fee41c7b758966f Author: Stephen Hemminger Date: Wed Jan 7 17:57:47 2009 -0800 fealnx: update to net_device_ops Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller commit 2b7d0c7039e9fd1bd64ba3ef2676f06b068eba34 Author: Stephen Hemminger Date: Wed Jan 7 17:57:19 2009 -0800 natsemi: update to net_device_ops Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller commit d49d19c962c5f409a7dc771f185afd22cdb49edf Author: Stephen Hemminger Date: Wed Jan 7 17:56:54 2009 -0800 sb1000: update to net_device_ops Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller commit a7d1de25dc2e823c741cf1ae86a59379ca5a6804 Author: Stephen Hemminger Date: Wed Jan 7 17:36:07 2009 -0800 ns83820: fix net_device_ops support The vlan_rx_register fuction is now in net_device_ops Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller commit 97488c5b2d5b2121da3bc386558488598fb0ce23 Author: Stephen Hemminger Date: Wed Jan 7 17:35:41 2009 -0800 sis190: update to net_device_ops Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller commit b8aa76a2bd9782e1a45e96602812910d5cfe7b52 Author: Stephen Hemminger Date: Wed Jan 7 17:34:36 2009 -0800 de600: update to net_device_ops Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller commit 1f5ec79b8ec357516fbe14904a47f619bb3b543d Author: Stephen Hemminger Date: Wed Jan 7 17:30:09 2009 -0800 enc28j60: update to net_device_ops Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller commit 8bdd5553660bd07d7904af967893f8d487cc6c44 Author: Stephen Hemminger Date: Wed Jan 7 17:29:46 2009 -0800 typhoon: update to net_device_ops Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller commit 3bc124dd02007290782a154ed3d12847489aae77 Author: Stephen Hemminger Date: Wed Jan 7 17:29:16 2009 -0800 pcnet32: update to net_device_ops Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller commit d9a811d5fd9ff6c5fec17dea559a6ea697ae207e Author: Stephen Hemminger Date: Wed Jan 7 17:28:54 2009 -0800 sungem: update to net_device_ops Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller commit 2f89d12e98c9248ce967f4c6a86b06dbbcf013cd Author: Stephen Hemminger Date: Wed Jan 7 17:28:35 2009 -0800 sunhme: update to net_device_ops Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller commit 805524cbcf8d756ec1969b6e16b945103cd4c94e Author: Stephen Hemminger Date: Wed Jan 7 17:27:39 2009 -0800 epic100: update to net_device_ops Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller commit 391c5e6e1822810900c33165442af8053a8ae054 Author: Stephen Hemminger Date: Wed Jan 7 17:27:15 2009 -0800 tlan: update to net_device_ops Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller commit ed8cf436caccb7f464135b0a9eba0e7624299826 Author: Stephen Hemminger Date: Wed Jan 7 17:26:48 2009 -0800 plip: update to net_device_ops Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller commit 04fb5f735e70a27f7dd06a5e349c003fd5d4bfa2 Author: Stephen Hemminger Date: Wed Jan 7 17:26:14 2009 -0800 ipg: update to net_device_ops Signed-off-by: Stephen Hemminger Acked-by: Pekka Enberg Signed-off-by: David S. Miller commit 83d6f0352cc47b41d42cc1d6fb31bc8d9753b772 Author: Stephen Hemminger Date: Wed Jan 7 17:25:41 2009 -0800 cassini: update to net_device_ops Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller commit ab638e69ff7d4882ac152ada17eab340c93df080 Author: Stephen Hemminger Date: Wed Jan 7 17:24:34 2009 -0800 phonet: update to net_device_ops Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller commit 9e42d0cf5020aaf217433cad1a224745241d212a Merge: 97c440b... 18b8e08... Author: Linus Torvalds Date: Wed Jan 7 17:23:53 2009 -0800 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6 * git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6: sparc64: Work around branch tracer warning. sparc64: Fix unsigned long long warnings in drivers. sparc64: Use unsigned long long for u64. sparc: refactor code in fault_32.c sparc64: refactor code in init_64.c sparc64: refactor code in viohs.c sparc: make proces_ver_nack a bit more readable commit b4d7f0a46bc0e30514b1779caff0fce6e424c4b5 Author: Stephen Hemminger Date: Wed Jan 7 17:23:17 2009 -0800 bluetooth: driver API update Convert to net_device_ops and use internal net_device_stats in bnep device. Note: no need for bnep_net_ioctl since if ioctl is not set, then dev_ifsioc handles it by returning -EOPNOTSUPP Signed-off-by: Stephen Hemminger Acked-by: Marcel Holtmann Signed-off-by: David S. Miller commit 43a67304a3e882ec297e08159f8698be59a235fe Author: Stephen Hemminger Date: Wed Jan 7 17:22:19 2009 -0800 appletalk: convert ipddp to net_device_ops Use internal element in network device for stats as well. Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller commit 97c440ba41d4e7cddb8e14c7c7ec49dad2560709 Merge: 713404d... 661263b... Author: Linus Torvalds Date: Wed Jan 7 17:22:04 2009 -0800 Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6 * 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6: V4L/DVB (10191a): Update MAINTAINERS entries on media drivers V4L/DVB (10190): cx88: Fix some Kbuild troubles V4L/DVB (10189): dm1105: Fix build with INPUT=m and DVB_DM1105=y V4L/DVB (10185): Use negated usb_endpoint_xfer_control, etc V4L/DVB (10182): tda8290: fix TDA8290 + TDA18271 initialization V4L/DVB (10181): v4l2-device: Fix some sparse warnings V4L/DVB (10180): drivers/media: Fix a number of sparse warnings V4L/DVB (10179): tda8290: Fix two sparse warnings V4L/DVB (10178): dvb_frontend: Fix some sparse warnings due to static symbols V4L/DVB (10177): Fix sparse warnings on em28xx V4L/DVB (10176b): pxa-camera: fix redefinition warnings and missing DMA definitions V4L/DVB (10176a): Switch remaining clear_user_page users over to clear_user_highpage commit 03b35ccb7c41ccc256631ff33e6887b7be88137b Author: Stephen Hemminger Date: Wed Jan 7 17:21:44 2009 -0800 appletalk: convert aarp to net_device_ops Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller commit 713404d6082fee34a829a0c6d511e4aec72d7654 Merge: d599edc... db43910... Author: Linus Torvalds Date: Wed Jan 7 17:21:24 2009 -0800 Merge branch 'for-2.6.29' of git://linux-nfs.org/~bfields/linux * 'for-2.6.29' of git://linux-nfs.org/~bfields/linux: (67 commits) nfsd: get rid of NFSD_VERSION nfsd: last_byte_offset nfsd: delete wrong file comment from nfsd/nfs4xdr.c nfsd: git rid of nfs4_cb_null_ops declaration nfsd: dprint each op status in nfsd4_proc_compound nfsd: add etoosmall to nfserrno NFSD: FIDs need to take precedence over UUIDs SUNRPC: The sunrpc server code should not be used by out-of-tree modules svc: Clean up deferred requests on transport destruction nfsd: fix double-locks of directory mutex svc: Move kfree of deferral record to common code CRED: Fix NFSD regression NLM: Clean up flow of control in make_socks() function NLM: Refactor make_socks() function nfsd: Ensure nfsv4 calls the underlying filesystem on LOCKT SUNRPC: Ensure the server closes sockets in a timely fashion NFSD: Add documenting comments for nfsctl interface NFSD: Replace open-coded integer with macro NFSD: Fix a handful of coding style issues in write_filehandle() NFSD: clean up failover sysctl function naming ... commit 18b8e08e290e9df588f51f5a7df50555f5a25664 Author: David S. Miller Date: Wed Jan 7 17:15:57 2009 -0800 sparc64: Work around branch tracer warning. As reported by Sam Ravnborg, Gcc-3.4.5 does not handle: if (get_user() || get_user()) with the new branch tracer enabled. Just seperate it out into seperate statements for now so people can get work done. Signed-off-by: David S. Miller commit 755efdc3c4d3b42d5ffcef0f4d6e5b37ecd3bf21 Author: Chris Mason Date: Wed Jan 7 19:56:59 2009 -0500 Btrfs: Drop the hardware crc32c asm code This is already in the arch specific directories in mainline and shouldn't be copied into btrfs. Signed-off-by: Chris Mason commit 661263b55d56365af911049f8824d3bf1a7aea85 Author: Mauro Carvalho Chehab Date: Fri Jan 2 11:27:44 2009 -0300 V4L/DVB (10191a): Update MAINTAINERS entries on media drivers This patch updates the MAINTAINERS entries for the media drivers. We are doing a few changes during 2009 to improve patch handling for drivers/media stuff. Currently, v4l-dvb-maintainer list at linuxtv.org were used to to be v4l/dvb driver maintainers ML, in order to keep track of patch merge requests and to receive bug fixes. This list allows posting for everybody, but, in order to avoid spam, the user subscribe/unsubscribe at the ML is moderated. Other development discussions and end-user forums happened on two separated ML (one for V4L and another for DVB). At the beginning of 2009, we've created linux-media@vger.kernel.org, meaning to be the main upstream development mailing list for drivers/media, including V4L and DVB core and drivers. The choice for vger.kernel.org were due to the fact that most of upstream lists are there. Also, its anti-spam filtering rules are better than what we currently have at linuxtv.org. For now, both video4linux-list and linux-dvb ML will remain active, but more focused on end users. It is expected that those lists will gradually be replaced also by linux-media@vger.kernel.org. This patch reflect those changes at linux MAINTAINERS file. Since the development and bug fix discussions will now happen at linux-media@vger.kernel.org, this patch does the following changes - replaces v4l-dvb-maintainer ML for the new linux-media@vger.kernel.org; - replaces video4linux ML for the new linux-media@vger.kernel.org; While here, it also: - Fixes the existing -git tree entries for drivers/media (since the repository name changed); - Adds the missing drivers/media -git tree entry on a few maintainers entries that don't point to a tree. Signed-off-by: Mauro Carvalho Chehab commit e32fadc4c2e5975a8e40541e2ba72a7032ed4cf4 Author: Mauro Carvalho Chehab Date: Tue Jan 6 16:06:07 2009 -0300 V4L/DVB (10190): cx88: Fix some Kbuild troubles As Randy Dunlap reported, cx88 has some compilation issues: drivers/built-in.o: In function `cx88_call_i2c_clients': (.text+0x20af17): undefined reference to `videobuf_dvb_get_frontend' drivers/built-in.o: In function `cx8802_probe': cx88-mpeg.c:(.devinit.text+0x268c4): undefined reference to `videobuf_dvb_alloc_frontend' cx88-mpeg.c:(.devinit.text+0x268ea): undefined reference to `videobuf_dvb_dealloc_frontends' With those configs: CONFIG_VIDEO_CX88=y CONFIG_VIDEO_CX88_BLACKBIRD=y CONFIG_VIDEO_CX88_DVB=m CONFIG_DVB_CORE=m After carefully examining the code, with the current code, several cx88 drivers (cx8800, cx8802, cx88_dvb and cx88_blackbird) should be compiled as a module, if one of them is marked as such. Just fixing Kconfig could create a very complex set of rules. Also, this hides a problem with the current approach where the dvb functionality weren't confined inside dvb module. What happens is that: - cx88-i2c (part of cx8800) has some special rules if DVB; - cx88-mpeg (cx8802 module) has also part of DVB init code; - cx88-dvb has the rest of the dvb code; - cx88-blackbird can be used with cx88-mpeg, having cx88-dvb or not. So, instead of doing some tricks at Kconfig and wait for a next breakage, this patch moves the dvb code inside cx88-i2c and cx88-mpeg into cx88-dvb. Another problem is that cx8802 were being compiled, even without cx88-dvb and cx88-blackbird modules. While on this code, let's fix also a reported problem: http://www.linuxtv.org/pipermail/linux-dvb/2009-January/031225.html A solution for the issue were proposed here: http://www.mail-archive.com/linux-media@vger.kernel.org/msg00021.html Thanks to Randy, Andy, Gregoire and Thomas for helping us to detect and solve the issues. Signed-off-by: Mauro Carvalho Chehab commit 571d864c68d429a82fd61e97404a2de210ffc72d Author: Mauro Carvalho Chehab Date: Tue Jan 6 08:33:46 2009 -0300 V4L/DVB (10189): dm1105: Fix build with INPUT=m and DVB_DM1105=y As reported by Randy Dunlap : With CONFIG_INPUT=m and CONFIG_DVB_DM1105=y: drivers/built-in.o: In function `input_sync': dm1105.c:(.text+0x120c33): undefined reference to `input_event' drivers/built-in.o: In function `dm1105_emit_key': dm1105.c:(.text+0x120c6c): undefined reference to `input_event' dm1105.c:(.text+0x120c82): undefined reference to `input_event' dm1105.c:(.text+0x120cb2): undefined reference to `input_event' dm1105.c:(.text+0x120cd1): undefined reference to `input_event' drivers/built-in.o: In function `dm1105_ir_init': (.devinit.text+0xd8ae): undefined reference to `input_allocate_device' drivers/built-in.o: In function `dm1105_ir_init': (.devinit.text+0xd9f6): undefined reference to `input_register_device' drivers/built-in.o: In function `dm1105_ir_init': (.devinit.text+0xda09): undefined reference to `input_free_device' drivers/built-in.o: In function `dm1105_ir_exit': (.devexit.text+0xcde): undefined reference to `input_unregister_device' This is due to the lack of a dependency between dm1105 and CONFIG_INPUT Cc: Igor M. Liplianin Signed-off-by: Mauro Carvalho Chehab commit 2230c3c803a5f3a84f7c3bd86b8159a551edc8ca Author: Julia Lawall Date: Sat Jan 3 16:53:10 2009 -0300 V4L/DVB (10185): Use negated usb_endpoint_xfer_control, etc This patch extends 134179823b3ca9c8b98e0631906459dbb022ff9b by using usb_endpoint_xfer_control, usb_endpoint_xfer_isoc, usb_endpoint_xfer_bulk, and usb_endpoint_xfer_int in the negated case as well. The semantic patch that makes this change is as follows: (http://www.emn.fr/x-info/coccinelle/) // @@ struct usb_endpoint_descriptor *epd; @@ - (usb_endpoint_type(epd) != \(USB_ENDPOINT_XFER_CONTROL\|0\)) + !usb_endpoint_xfer_control(epd) @@ struct usb_endpoint_descriptor *epd; @@ - (usb_endpoint_type(epd) != \(USB_ENDPOINT_XFER_ISOC\|1\)) + !usb_endpoint_xfer_isoc(epd) @@ struct usb_endpoint_descriptor *epd; @@ - (usb_endpoint_type(epd) != \(USB_ENDPOINT_XFER_BULK\|2\)) + !usb_endpoint_xfer_bulk(epd) @@ struct usb_endpoint_descriptor *epd; @@ - (usb_endpoint_type(epd) != \(USB_ENDPOINT_XFER_INT\|3\)) + !usb_endpoint_xfer_int(epd) // Signed-off-by: Julia Lawall Signed-off-by: Mauro Carvalho Chehab commit 439b72b69e4992e9ec34b74304f0fa95623934eb Author: Michael Krufky Date: Mon Jan 5 18:25:04 2009 -0300 V4L/DVB (10182): tda8290: fix TDA8290 + TDA18271 initialization Don't call tda8290_init_tuner unless we have either a TDA8275 or TDA8275A present. Calling this function will cause a TDA18271 to get sick, so we should only call it when needed. Signed-off-by: Michael Krufky Signed-off-by: Mauro Carvalho Chehab commit 432663375b04ed9700ea7d3c8e737432d1be6490 Author: Mauro Carvalho Chehab Date: Mon Jan 5 01:42:38 2009 -0300 V4L/DVB (10181): v4l2-device: Fix some sparse warnings /home/v4l/master/v4l/v4l2-device.c:32:2: warning: Using plain integer as NULL pointer /home/v4l/master/v4l/v4l2-device.c:64:2: warning: Using plain integer as NULL pointer Signed-off-by: Mauro Carvalho Chehab commit ffbc5f88148ff77039a4269e3f945e8471b2e0bb Author: Mauro Carvalho Chehab Date: Mon Jan 5 01:34:20 2009 -0300 V4L/DVB (10180): drivers/media: Fix a number of sparse warnings anysee.c:44:5: warning: symbol 'dvb_usb_anysee_delsys' was not declared. Should it be static? cx24116.c:378:3: warning: symbol 'CX24116_MODFEC_MODES' was not declared. Should it be static? stb0899_algo.c:57:5: warning: symbol 'stb0899_get_srate' was not declared. Should it be static? stb0899_algo.c:766:6: warning: symbol 'Log2Int' was not declared. Should it be static? stb0899_drv.c:137:20: warning: symbol 'stb0899_quant_tab' was not declared. Should it be static? stb0899_drv.c:180:20: warning: symbol 'stb0899_est_tab' was not declared. Should it be static? stb0899_drv.c:220:5: warning: symbol '_stb0899_read_reg' was not declared. Should it be static? budget-ci.c:1348:23: warning: symbol 'tt3200_stb6100_config' was not declared. Should it be static? /home/v4l/master/v4l/cx25840-core.c:190:6: warning: symbol 'cx25840_work_handler' was not declared. Should it be static? /home/v4l/master/v4l/m5602_s5k83a.c:116:6: warning: symbol 's5k83a_dump_registers' was not declared. Should it be static? Signed-off-by: Mauro Carvalho Chehab commit 4c27f1a4da4902c70b84a8bce66f8fe909fb829b Author: Mauro Carvalho Chehab Date: Mon Jan 5 01:23:50 2009 -0300 V4L/DVB (10179): tda8290: Fix two sparse warnings /home/v4l/master/v4l/tda8290.c:233:7: warning: symbol 'i' shadows an earlier one /home/v4l/master/v4l/tda8290.c:178:3: warning: symbol 'fm_mode' was not declared. Should it be static? Signed-off-by: Mauro Carvalho Chehab commit 072ce0c50983033d35c63314e2be849568f116c2 Author: Mauro Carvalho Chehab Date: Mon Jan 5 01:19:06 2009 -0300 V4L/DVB (10178): dvb_frontend: Fix some sparse warnings due to static symbols /home/v4l/master/v4l/dvb_frontend.c:838:19: warning: symbol 'dtv_cmds' was not declared. Should it be static? /home/v4l/master/v4l/dvb_frontend.c:1035:6: warning: symbol 'dtv_property_dump' was not declared. Should it be static? /home/v4l/master/v4l/dvb_frontend.c:1066:5: warning: symbol 'is_legacy_delivery_system' was not declared. Should it be static? /home/v4l/master/v4l/dvb_frontend.c:1080:6: warning: symbol 'dtv_property_cache_sync' was not declared. Should it be static? /home/v4l/master/v4l/dvb_frontend.c:1132:6: warning: symbol 'dtv_property_legacy_params_sync' was not declared. Should it be static? /home/v4l/master/v4l/dvb_frontend.c:1187:6: warning: symbol 'dtv_property_adv_params_sync' was not declared. Should it be static? /home/v4l/master/v4l/dvb_frontend.c:1222:6: warning: symbol 'dtv_property_cache_submit' was not declared. Should it be static? /home/v4l/master/v4l/dvb_frontend.c:1253:5: warning: symbol 'dtv_property_process_get' was not declared. Should it be static? /home/v4l/master/v4l/dvb_frontend.c:1362:5: warning: symbol 'dtv_property_process_set' was not declared. Should it be static? Signed-off-by: Mauro Carvalho Chehab commit 26cdc76b2c0b24f7a9c33ab226ca6e4bbae3dbbb Author: Mauro Carvalho Chehab Date: Mon Jan 5 01:00:40 2009 -0300 V4L/DVB (10177): Fix sparse warnings on em28xx /home/v4l/master/v4l/em28xx-core.c:396:25: warning: symbol 'outputs' was not declared. Should it be static? /home/v4l/master/v4l/em28xx-input.c:324:6: warning: symbol 'em28xx_ir_start' was not declared. Should it be static? /home/v4l/master/v4l/em28xx-cards.c:1925:5: warning: symbol 'em28xx_init_dev' was not declared. Should it be static? Signed-off-by: Mauro Carvalho Chehab commit cfbaf4dfe765ae33e1a26b3eb0eda64ff00fc481 Author: Eric Miao Date: Fri Jan 2 12:16:02 2009 -0300 V4L/DVB (10176b): pxa-camera: fix redefinition warnings and missing DMA definitions 1. now pxa_camera.c uses ioremap() for register access, pxa_camera.h is totally useless. Remove it. 2. does no longer include , include the latter file explicitly delete mode 100644 drivers/media/video/pxa_camera.h Signed-off-by: Eric Miao Signed-off-by: Mauro Carvalho Chehab commit c0cd5010e54e52931c321ee66d81d10a8e2a9ff6 Author: Guennadi Liakhovetski Date: Sat Jan 3 18:20:04 2009 -0300 V4L/DVB (10176a): Switch remaining clear_user_page users over to clear_user_highpage Not all architectures provide clear_user_page(), but clear_user_highpage() is available everywhere at least via the compatibility inline function. Is this the "trivial patch" that's required for these two drivers? Signed-off-by: Guennadi Liakhovetski Signed-off-by: Mauro Carvalho Chehab commit d599edcaea987e233fad808f88850f725e8a5530 Author: Harvey Harrison Date: Wed Jan 7 14:31:57 2009 -0800 staging: __FUNCTION__ is gcc-specific, use __func__ Signed-off-by: Harvey Harrison Signed-off-by: Linus Torvalds commit 9b4778f680aa79d838ae2be6ab958938f744ce5f Author: Harvey Harrison Date: Wed Jan 7 14:42:41 2009 -0800 trivial: replace last usages of __FUNCTION__ in kernel __FUNCTION__ is gcc-specific, use __func__ Signed-off-by: Harvey Harrison Acked-by: Mauro Carvalho Chehab Signed-off-by: Linus Torvalds commit 8cfc7f9c005313ecd4e98ad1feb391d8dfce9ed2 Merge: b424e8d... da8d508... Author: Linus Torvalds Date: Wed Jan 7 15:43:58 2009 -0800 Merge branch 'sched-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip * 'sched-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: sched: fix possible recursive rq->lock commit b424e8d3b438e841cd1700f6433a100a5d611e4a Merge: 7c7758f... f6dc1e5... Author: Linus Torvalds Date: Wed Jan 7 15:41:01 2009 -0800 Merge branch 'linux-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6 * 'linux-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6: (98 commits) PCI PM: Put PM callbacks in the order of execution PCI PM: Run default PM callbacks for all devices using new framework PCI PM: Register power state of devices during initialization PCI PM: Call pci_fixup_device from legacy routines PCI PM: Rearrange code in pci-driver.c PCI PM: Avoid touching devices behind bridges in unknown state PCI PM: Move pci_has_legacy_pm_support PCI PM: Power-manage devices without drivers during suspend-resume PCI PM: Add suspend counterpart of pci_reenable_device PCI PM: Fix poweroff and restore callbacks PCI: Use msleep instead of cpu_relax during ASPM link retraining PCI: PCIe portdrv: Add kerneldoc comments to remining core funtions PCI: PCIe portdrv: Rearrange code so that related things are together PCI: PCIe portdrv: Fix suspend and resume of PCI Express port services PCI: PCIe portdrv: Add kerneldoc comments to some core functions x86/PCI: Do not use interrupt links for devices using MSI-X net: sfc: Use pci_clear_master() to disable bus mastering PCI: Add pci_clear_master() as opposite of pci_set_master() PCI hotplug: remove redundant test in cpq hotplug PCI: pciehp: cleanup register and field definitions ... commit 7c7758f99d39d529a64d4f60d22129bbf2f16d74 Merge: 67acd8b... 8a70da8... Author: Linus Torvalds Date: Wed Jan 7 15:37:24 2009 -0800 Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6 * git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6: (123 commits) wimax/i2400m: add CREDITS and MAINTAINERS entries wimax: export linux/wimax.h and linux/wimax/i2400m.h with headers_install i2400m: Makefile and Kconfig i2400m/SDIO: TX and RX path backends i2400m/SDIO: firmware upload backend i2400m/SDIO: probe/disconnect, dev init/shutdown and reset backends i2400m/SDIO: header for the SDIO subdriver i2400m/USB: TX and RX path backends i2400m/USB: firmware upload backend i2400m/USB: probe/disconnect, dev init/shutdown and reset backends i2400m/USB: header for the USB bus driver i2400m: debugfs controls i2400m: various functions for device management i2400m: RX and TX data/control paths i2400m: firmware loading and bootrom initialization i2400m: linkage to the networking stack i2400m: Generic probe/disconnect, reset and message passing i2400m: host/device procotol and core driver definitions i2400m: documentation and instructions for usage wimax: Makefile, Kconfig and docbook linkage for the stack ... commit 67acd8b4b7a3f1b183ae358e1dfdb8a80e170736 Merge: b13d372... ad160d2... Author: Linus Torvalds Date: Wed Jan 7 15:35:47 2009 -0800 Merge git://git.kernel.org/pub/scm/linux/kernel/git/arjan/linux-2.6-async * git://git.kernel.org/pub/scm/linux/kernel/git/arjan/linux-2.6-async: async: don't do the initcall stuff post boot bootchart: improve output based on Dave Jones' feedback async: make the final inode deletion an asynchronous event fastboot: Make libata initialization even more async fastboot: make the libata port scan asynchronous fastboot: make scsi probes asynchronous async: Asynchronous function calls to speed up kernel boot commit b13d3720ecd29d5044334fdbbae3432f26802bae Author: David Miller Date: Wed Jan 7 15:30:05 2009 -0800 topology: Fix sparc64 build. Due to changeset ba84be2338d3a2b6020d39279335bb06fcd332e1 ("remove linux/hardirq.h from asm-generic/local.h") the sparc64 build started failing on drivers/base/topology.c: drivers/base/topology.c: In function ‘show_physical_package_id’: drivers/base/topology.c:103: error: implicit declaration of function ‘cpu_data’ drivers/base/topology.c:103: error: request for member ‘proc_id’ in something not a structure or union drivers/base/topology.c: In function ‘show_core_id’: drivers/base/topology.c:106: error: request for member ‘core_id’ in something not a structure or union Adding the obvious fix of including asm/cpudata.h into asm/topology.h on sparc64 doesn't fix it, in fact it makes things worse because of the header file dependency chain: linux/gfp.h --> linux/mmzone.h --> linux/topology.h --> asm/topology.h --> asm/cpudata.h --> linux/percpu.h --> linux/slab.h which results in: include/linux/slub_def.h: In function ‘kmalloc_large’: include/linux/slub_def.h:209: error: implicit declaration of function ‘__get_free_pages’ include/linux/slub_def.h:209: error: ‘__GFP_COMP’ undeclared (first use in this function) include/linux/slub_def.h:209: error: (Each undeclared identifier is reported only once include/linux/slub_def.h:209: error: for each function it appears in.) include/linux/slub_def.h:209: warning: cast to pointer from integer of different size The simplest thing to do is to add yet another one-off hack like parts of the guilty changeset did, by putting an explicit linux/hardirq.h include into drivers/base/topology.c Signed-off-by: David S. Miller Signed-off-by: Linus Torvalds commit db43910cb42285a99f45f7e0a0a32e32d0b61dcf Author: Benny Halevy Date: Mon Dec 15 19:42:24 2008 +0200 nfsd: get rid of NFSD_VERSION Signed-off-by: Benny Halevy Signed-off-by: J. Bruce Fields commit 87df4de8073f922a1f643b9fa6ba0412d5529ecf Author: Benny Halevy Date: Mon Dec 15 19:42:03 2008 +0200 nfsd: last_byte_offset refactor the nfs4 server lock code to use last_byte_offset to compute the last byte covered by the lock. Check for overflow so that the last byte is set to NFS4_MAX_UINT64 if offset + len wraps around. Also, use NFS4_MAX_UINT64 for ~(u64)0 where appropriate. Signed-off-by: Benny Halevy Signed-off-by: J. Bruce Fields commit 4e65ebf08951326709817e654c149d0a94982e01 Author: Marc Eshel Date: Mon Dec 15 19:41:31 2008 +0200 nfsd: delete wrong file comment from nfsd/nfs4xdr.c Signed-off-by: Benny Halevy Signed-off-by: J. Bruce Fields commit df96fcf02a5fd2ae4e9b09e079dd6ef12d10ecd7 Author: Benny Halevy Date: Mon Dec 15 19:41:10 2008 +0200 nfsd: git rid of nfs4_cb_null_ops declaration There's no use for nfs4_cb_null_ops's declaration in fs/nfsd/nfs4callback.c Signed-off-by: Benny Halevy Signed-off-by: J. Bruce Fields commit 0407717d8587f60003f4904bff27650cd836c00c Author: Benny Halevy Date: Mon Dec 15 19:40:49 2008 +0200 nfsd: dprint each op status in nfsd4_proc_compound Signed-off-by: Benny Halevy Signed-off-by: J. Bruce Fields commit b7aeda40d3010666d2c024c80557b6aa92a1a1ad Author: Dean Hildebrand Date: Mon Dec 15 19:40:15 2008 +0200 nfsd: add etoosmall to nfserrno Signed-off-by: Dean Hildebrand Signed-off-by: Benny Halevy Signed-off-by: J. Bruce Fields commit 30fa8c0157e4591ee2227aaa0b17cd3b0da5e6cb Author: Steve Dickson Date: Wed Jan 7 16:54:30 2009 -0500 NFSD: FIDs need to take precedence over UUIDs When determining the fsid_type in fh_compose(), the setting of the FID via fsid= export option needs to take precedence over using the UUID device id. Signed-off-by: Steve Dickson Signed-off-by: J. Bruce Fields commit 24c3767e41a6a59d32bb45abe899eb194e6bf1b8 Author: Trond Myklebust Date: Tue Dec 23 16:30:12 2008 -0500 SUNRPC: The sunrpc server code should not be used by out-of-tree modules Signed-off-by: Trond Myklebust Signed-off-by: J. Bruce Fields commit 22945e4a1c7454c97f5d8aee1ef526c83fef3223 Author: Tom Tucker Date: Mon Jan 5 15:21:19 2009 -0600 svc: Clean up deferred requests on transport destruction A race between svc_revisit and svc_delete_xprt can result in deferred requests holding references on a transport that can never be recovered because dead transports are not enqueued for subsequent processing. Check for XPT_DEAD in revisit to clean up completing deferrals on a dead transport and sweep a transport's deferred queue to do the same for queued but unprocessed deferrals. Signed-off-by: Tom Tucker Signed-off-by: J. Bruce Fields commit ffda8c7dc492e2170bb263f7c56f286992ceb54b Author: Andrew Vasquez Date: Mon Jan 5 11:18:12 2009 -0800 [SCSI] qla2xxx: Update version number to 8.03.00-k1. Signed-off-by: Andrew Vasquez Signed-off-by: James Bottomley commit 3a03eb797ce76ae8868a1497e9e746ad0add1e3b Author: Andrew Vasquez Date: Mon Jan 5 11:18:11 2009 -0800 [SCSI] qla2xxx: Add ISP81XX support. Codes to support new FCoE boards. Signed-off-by: Andrew Vasquez Signed-off-by: James Bottomley commit 444786d7fdd770f67e29a068ec8ee981d323f7a7 Author: Andrew Vasquez Date: Mon Jan 5 11:18:10 2009 -0800 [SCSI] qla2xxx: Use proper request/response queues with MQ instantiations. Original code would inadvertanly place I/Os on the default request-queue. Also, correctly pass in the proper MSI-X vector during response-queue initialization. Signed-off-by: Andrew Vasquez Signed-off-by: James Bottomley commit d63ab53394f408f9e59f5b6ba0580f8c6ef2357a Author: Andrew Vasquez Date: Mon Jan 5 11:18:09 2009 -0800 [SCSI] qla2xxx: Correct MQ-chain information retrieval during a firmware dump. Original code would not read request/response queue pointers. Also, collapse code into a helper qla25xx_copy_mq() function in preparation for newer ISP parts. Signed-off-by: Andrew Vasquez Signed-off-by: James Bottomley commit bb99de6703526ebed42e29b8dee402df235f28c7 Author: Andrew Vasquez Date: Mon Jan 5 11:18:08 2009 -0800 [SCSI] qla2xxx: Collapse EFT/FCE copy procedures during a firmware dump. In preparation for new ISP types with varying dump procedures. Signed-off-by: Andrew Vasquez Signed-off-by: James Bottomley commit 3fd67cdf9e68b653ed631056bf1660700088c8c8 Author: Andrew Vasquez Date: Mon Jan 5 11:18:07 2009 -0800 [SCSI] qla2xxx: Don't pollute kernel logs with ZIO/RIO status messages. Signed-off-by: Andrew Vasquez Signed-off-by: James Bottomley commit 124f85e6cc0290a85adb7e14cd90e96105f4f9fb Author: Andrew Vasquez Date: Mon Jan 5 11:18:06 2009 -0800 [SCSI] qla2xxx: Don't fallback to interrupt-polling during re-initialization with MSI-X enabled. ROMs in recent ISPs have MSI-X support, so it's no longer necessary for the driver to fallback to interrupt polling during ISP re-initialization. Signed-off-by: Andrew Vasquez Signed-off-by: James Bottomley commit 1ded85e2850b7b890fb6b51241429ed685ec2763 Author: Andrew Vasquez Date: Mon Jan 5 11:18:05 2009 -0800 [SCSI] qla2xxx: Remove support for reading/writing HW-event-log. Software should not touch this region of flash, as the firmware will be the only writer and consumer of the region. Signed-off-by: Andrew Vasquez Signed-off-by: James Bottomley commit 14f0ca8eaea42a5b5a69cfcb699665dd2618db5f Author: Robert Richter Date: Wed Jan 7 21:50:22 2009 +0100 oprofile: make new cpu buffer functions part of the api This patch creates the new functions oprofile_write_reserve() oprofile_add_data() oprofile_write_commit() and makes them part of the oprofile api. Signed-off-by: Robert Richter commit 574df408edb7b5bddda68a0cf919536993949941 Author: Al Viro Date: Mon Jan 5 17:21:11 2009 +0000 [SCSI] cxgb3i: add missing include it needs scatterlist.h - indirect chain of includes doesn't work on a lot of targets. Signed-off-by: Al Viro Cc: Karen Xie Signed-off-by: James Bottomley commit ebf8d974e298018f0b4ee02b1b097bf5500d3d27 Author: Robert Richter Date: Wed Jan 7 00:20:57 2009 +0100 oprofile: remove #ifdef CONFIG_OPROFILE_IBS in non-ibs code The ifdefs can be removed since the code is no longer ibs specific and can be used for other purposes as well. IBS specific code is only in op_model_amd.c. Signed-off-by: Robert Richter commit 465634adc1d09b490c8ee31885575be39d375d53 Author: Robert Richter Date: Wed Jan 7 15:32:11 2009 +0100 ring_buffer: fix ring_buffer_event_length() Function ring_buffer_event_length() provides an interface to detect the length of data stored in an entry. However, the length contains offsets depending on the internal usage. This makes it unusable. This patch fixes this and now ring_buffer_event_length() returns the alligned length that has been used in ring_buffer_lock_reserve(). Cc: Steven Rostedt Signed-off-by: Robert Richter commit 1acda878e20ea0cd3708ba66dca67d52eaafdd2b Author: Robert Richter Date: Mon Jan 5 10:35:31 2009 +0100 oprofile: use new data sample format for ibs The new ring buffer implementation allows the storage of samples with different size. This patch implements the usage of the new sample format to store ibs samples in the cpu buffer. Until now, writing to the cpu buffer could lead to incomplete sampling sequences since IBS samples were transfered in multiple samples. Due to a full buffer, data could be lost at any time. This can't happen any more since the complete data is reserved in advance and then stored in a single sample. Signed-off-by: Robert Richter commit bd7dc46f770d317ada1348294ff1f319243b803b Author: Robert Richter Date: Tue Jan 6 03:56:50 2009 +0100 oprofile: add op_cpu_buffer_get_data() This function provides access to attached data of a sample. It returns the size of data including the current value. Also, op_cpu_buffer_get_size() is available to check if there is data attached. Signed-off-by: Robert Richter commit d9928c25a6960cf128c2078a89fe6f8e0180ff60 Author: Robert Richter Date: Thu Dec 25 17:26:07 2008 +0100 oprofile: add op_cpu_buffer_add_data() This function can be used to attach data to a sample. It returns the remaining free buffer size that has been reserved with op_cpu_buffer_write_reserve(). Signed-off-by: Robert Richter commit ae735e9964b4584923f2997d98a8d80ae9c1a75c Author: Robert Richter Date: Thu Dec 25 17:26:07 2008 +0100 oprofile: rework implementation of cpu buffer events Special events such as task or context switches are marked with an escape code in the cpu buffer followed by an event code or a task identifier. There is one escape code per event. To make escape sequences also available for data samples the internal cpu buffer format must be changed. The current implementation does not allow the extension of event codes since this would lead to collisions with the task identifiers. To avoid this, this patch introduces an event mask that allows the storage of multiple events with one escape code. Now, task identifiers are stored in the data section of the sample. The implementation also allows the usage of custom data in a sample. As a side effect the new code is much more readable and easier to understand. Signed-off-by: Robert Richter commit 2d87b14cf8d0b07720de26d90789d02124141616 Author: Robert Richter Date: Tue Dec 30 04:10:46 2008 +0100 oprofile: modify op_cpu_buffer_read_entry() This implements the support of samples with attached data. Signed-off-by: Robert Richter commit 2cc28b9f261dd28d69767a34682ce55a27d928ed Author: Robert Richter Date: Thu Dec 25 17:26:07 2008 +0100 oprofile: add op_cpu_buffer_write_reserve() This function prepares the cpu buffer to write a sample. Struct op_entry is used during operations on the ring buffer while struct op_sample contains the data that is stored in the ring buffer. Struct entry can be uninitialized. The function reserves a data array that is specified by size. Use op_cpu_buffer_write_commit() after preparing the sample. In case of errors a null pointer is returned, otherwise the pointer to the sample. Signed-off-by: Robert Richter commit d358e75fc40cc3bbab11654ba0a88b232c543d12 Author: Robert Richter Date: Mon Jan 5 13:14:04 2009 +0100 oprofile: rename variables in add_ibs_begin() This unifies usage of variable names within oprofile. Signed-off-by: Robert Richter commit d0e233846dcef56ae78f6d8fd0e0cba85a2a1489 Author: Robert Richter Date: Tue Dec 23 04:03:05 2008 +0100 oprofile: rename add_sample() in cpu_buffer.c Rename the fucntion to op_add_sample() since there is a collision with another one with the same name in buffer_sync.c. Signed-off-by: Robert Richter commit fc81be8ca29e28bfb89aa23359036a8ad4118d0f Author: Robert Richter Date: Thu Dec 18 00:28:27 2008 +0100 oprofile: rename variable ibs_allowed to has_ibs in op_model_amd.c This patch renames ibs_allowed to has_ibs. Varible name fits better now. Signed-off-by: Robert Richter commit 79ed24297236b7430d6ce0a1511ff70cf5b6015a Author: James Bottomley Date: Tue Jan 6 13:15:20 2009 -0600 [SCSI] scsi_lib: fix DID_RESET status problems Andrew Vaszquez said: > There's a problem that is causing commands returned by the LLD with > a DID_RESET status to be reissued with cleared cmd->sdb data which > in our tests are manifesting in firmware detected overruns. Here's > a snippet of a READ_10 scsi_cmnd upon completion by the storage The problem is caused by: commit b60af5b0adf0da24c673598c8d3fb4d4189a15ce Author: Alan Stern Date: Mon Nov 3 15:56:47 2008 -0500 [SCSI] simplify scsi_io_completion() Because scsi_release_buffers() is called before commands that go through the ACTION_RETRY and ACTION_DELAYED_RETRY legs are requeued. However, they're not re-prepared, so nothing ever reallocates the buffer resources to them. Fix this by releasing the buffers only if we're not going to go down these legs (but scsi_release_buffers() on all legs including two in scsi_end_request(); this latter needs a special version __scsi_release_buffers() because the final one can be called after the request has been freed, so the bidi test in scsi_release_buffers(), which touches the request has to be skipped). Reported-by: Andrew Vasquez Signed-off-by: James Bottomley commit c6906a2cb7cc318a56f6c335a2c4a3b004dd9e04 Merge: 8903709... baa9187... Author: Linus Torvalds Date: Wed Jan 7 13:11:28 2009 -0800 Merge git://git.kernel.org/pub/scm/linux/kernel/git/sam/kbuild-fixes * git://git.kernel.org/pub/scm/linux/kernel/git/sam/kbuild-fixes: kbuild: fix typos (s/bin_shipped/bin.o_shipped/) in Documentation kbuild: add a symlink to the source for separate objdirs kconfig: add script to manipulate .config files on the command line kbuild: reintroduce ALLSOURCE_ARCHS support for tags/cscope bootchart: improve output based on Dave Jones' feedback fix modules_install via NFS qnx: include for definitions of __[us]{8,16,32,64} types commit 9ac32e1bc0518b01b47dd34a733dce8634a38ed3 Author: Jaswinder Singh Rajput Date: Wed Jan 7 12:59:17 2009 -0800 firmware: convert e100 driver to request_firmware() Thanks to David Woodhouse for help. Signed-off-by: Jaswinder Singh Rajput Signed-off-by: David S. Miller commit baa91878ab9b0f1cdb7ab03b53ee2e4389245644 Author: Wolfram Sang Date: Tue Jan 6 15:12:27 2009 +0100 kbuild: fix typos (s/bin_shipped/bin.o_shipped/) in Documentation The text always mentions ...bin.o_shipped, just the example makefiles actually use ...bin_shipped. It was corrected in one place some time ago, these ones seem to have been forgotten. Signed-off-by: Wolfram Sang Signed-off-by: Sam Ravnborg commit 399b835be30e8fdec6705fa9803f9fb8822c52ae Author: Andi Kleen Date: Sat Jan 3 03:21:42 2009 +0100 kbuild: add a symlink to the source for separate objdirs I have some scripts which need to map back to the source directory from an objdir. This was so far done by parsing the Makefile, but the Makefile format changes occasionally and breaks my scripts then. To make this more reliable add a "source" symlink back. Signed-off-by: Andi Kleen Signed-off-by: Sam Ravnborg commit 8e54701ea85b0ab0971637825a628f5aa2b678a4 Author: Andi Kleen Date: Sat Jan 3 03:21:41 2009 +0100 kconfig: add script to manipulate .config files on the command line I often change single options in .config files. Instead of using an editor or one of the frontends it's convenient to do this from the command line. It's also useful to do from automated build scripts when building different variants from a base config file. I extracted most of the CONFIG manipulation code from one of my build scripts into a new shell script scripts/config The script is not integrated with the normal Kconfig machinery and doesn't do any checking against Kconfig files, but just manipulates that text format. This is always done at make time anyways. I believe this script would be a useful standard addition for scripts/* Sample usage: ./scripts/config --disable smp Disable SMP in .config file ./scripts/config --file otherdir/.config --module e1000e Enable E1000E as module in otherdir/.config ./scripts/config --state smp y Check state of config option CONFIG_SMP After merging into git please make scripts/config executable Signed-off-by: Andi Kleen Signed-off-by: Sam Ravnborg commit 4f628248a578585472e19e4cba2c604643af8c6c Author: Jike Song Date: Mon Jan 5 14:57:03 2009 +0800 kbuild: reintroduce ALLSOURCE_ARCHS support for tags/cscope This patch reintroduce the ALLSOURCE_ARCHS support for tags/TAGS/ cscope targets. The Kbuild previously has this feature, but after moving the targets into scripts/tags.sh, ALLSOURCE_ARCHS disappears. It's something like this: $ make ALLSOURCE_ARCHS="x86 mips arm" tags cscope Signed-off-by: Jike Song Signed-off-by: Sam Ravnborg commit 40c8c85a47552bd792b0ad49ddcc45ec18369134 Author: Arjan van de Ven Date: Sun Jan 4 07:16:38 2009 -0800 bootchart: improve output based on Dave Jones' feedback Dave Jones, in his blog, had some feedback about the bootchart script: Primarily his complaint was that shorter delays weren't visualized. The reason for that was that too small delays will have their labels mixed up in the graph in an unreadable mess. This patch has a fix for this; for one, it makes the output wider, so more will fit. The second part is that smaller delays are now shown with a much smaller font for the label; while this isn't per se readable at a 1:1 zoom, at least you can zoom in with most SVG viewing applications and see what it is you are looking at. Signed-off-by: Arjan van de Ven Signed-off-by: Sam Ravnborg commit 8b249b6856f16f09b0e5b79ce5f4d435e439b9d6 Author: Sam Ravnborg Date: Wed Jan 7 20:52:43 2009 +0100 fix modules_install via NFS Rafael reported: I get the following error from 'make modules_install' on my test boxes: HOSTCC firmware/ihex2fw /home/rafael/src/linux-2.6/firmware/ihex2fw.c:268: fatal error: opening dependency file firmware/.ihex2fw.d: Read-only file system compilation terminated. make[3]: *** [firmware/ihex2fw] Error 1 make[2]: *** [_modinst_post] Error 2 make[1]: *** [sub-make] Error 2 make: *** [all] Error 2 where the configuration is that the kernel is compiled on a build box with 'make O= -j5' and then is mounted over NFS read-only by each test box (full path to this directory is the same on the build box and on the test boxes). Then, I cd into , run 'make modules_install' and get the error above. The issue turns out to be that we when we install firmware pick up the list of firmware blobs from firmware/Makefile. And this triggers the Makefile rules to update ihex2fw. There were two solutions for this issue: 1) Move the list of firmware blobs to a separate file 2) Avoid ihex2fw rebuild by moving it to scripts As I seriously beleive that the list of firmware blobs should be done in a fundamental different way solution 2) was selected. Reported-and-tested-by: "Rafael J. Wysocki" Signed-off-by: Sam Ravnborg Cc: David Woodhouse commit 8d1a0a13edecfdcb47fee3238ed4a2af2a2867f9 Author: Anders Larsen Date: Thu Jan 1 17:17:35 2009 +0100 qnx: include for definitions of __[us]{8,16,32,64} types On 2008-12-30 11:32:33, Sam Ravnborg wrote: > We have added a few additional validation checks of the userspace headers: ... > 3) We should include and not > 4) If we use a __[us]{8,16,32,64} type then we must include Satisfy these requirements for the linux/qnx*.h headers. Signed-off-by: Anders Larsen Signed-off-by: Sam Ravnborg commit 9a8d248e2d2e9c880ac4561f27fea5dc200655bd Author: J. Bruce Fields Date: Tue Jan 6 13:37:03 2009 -0500 nfsd: fix double-locks of directory mutex A number of nfsd operations depend on the i_mutex to cover more code than just the fsync, so the approach of 4c728ef583b3d8 "add a vfs_fsync helper" doesn't work for nfsd. Revert the parts of those patches that touch nfsd. Note: we can't, however, remove the logic from vfs_fsync that was needed only for the special case of nfsd, because a vfs_fsync(NULL,...) call can still result indirectly from a stackable filesystem that was called by nfsd. (Thanks to Christoph Hellwig for pointing this out.) Reported-by: Eric Sesterhenn Signed-off-by: J. Bruce Fields commit 2779e3ae39645515cb6c1126634f47c28c9e7190 Author: Tom Tucker Date: Mon Jan 5 11:12:52 2009 -0600 svc: Move kfree of deferral record to common code The rqstp structure has a pointer to a svc_deferred_req record that is allocated when requests are deferred. This record is common to all transports and can be freed in common code. Move the kfree of the rq_deferred to the common svc_xprt_release function. This also fixes a memory leak in the RDMA transport which does not kfree the dr structure in it's version of the xpo_release_rqst callback. Signed-off-by: Tom Tucker Signed-off-by: J. Bruce Fields commit f05ef8db1abe68e3f6fc272efee51bc54ce528c5 Author: David Howells Date: Mon Jan 5 17:19:37 2009 +0000 CRED: Fix NFSD regression Fix a regression in NFSD's permission checking introduced by the credentials patches. There are two parts to the problem, both in nfsd_setuser(): (1) The return value of set_groups() is -ve if in error, not 0, and should be checked appropriately. 0 indicates success. (2) The UID to use for fs accesses is in new->fsuid, not new->uid (which is 0). This causes CAP_DAC_OVERRIDE to always be set, rather than being cleared if the UID is anything other than 0 after squashing. Reported-by: J. Bruce Fields Signed-off-by: David Howells Acked-by: James Morris Signed-off-by: J. Bruce Fields commit 0dba7c2a9ed3d4a1e58f5d94fffa9f44dbe012e6 Author: Chuck Lever Date: Wed Dec 31 16:06:11 2008 -0500 NLM: Clean up flow of control in make_socks() function Clean up: Use Bruce's preferred control flow style in make_socks(). Signed-off-by: Chuck Lever Signed-off-by: J. Bruce Fields commit d3fe5ea7cf815c037c90b1f1464ffc1ab5e8601b Author: Chuck Lever Date: Wed Dec 31 16:06:04 2008 -0500 NLM: Refactor make_socks() function Clean up: extract common logic in NLM's make_socks() function into a helper. Signed-off-by: Chuck Lever Signed-off-by: J. Bruce Fields commit 55ef1274dddd4de387c54d110e354ffbb6cdc706 Author: J. Bruce Fields Date: Sat Dec 20 11:58:38 2008 -0800 nfsd: Ensure nfsv4 calls the underlying filesystem on LOCKT Since nfsv4 allows LOCKT without an open, but the ->lock() method is a file method, we fake up a struct file in the nfsv4 code with just the fields we need initialized. But we forgot to initialize the file operations, with the result that LOCKT never results in a call to the filesystem's ->lock() method (if it exists). We could just add that one more initialization. But this hack of faking up a struct file with only some fields initialized seems the kind of thing that might cause more problems in the future. We should either do an open and get a real struct file, or make lock-testing an inode (not a file) method. This patch does the former. Reported-by: Marc Eshel Tested-by: Marc Eshel Signed-off-by: J. Bruce Fields commit 8903709b054a8dafe4e8c6d9a6444034d7aba36f Author: Harvey Harrison Date: Wed Jan 7 12:19:31 2009 -0800 xtensa: introduce swab.h Fixes compile breakage as linux/byteorder.h was removed. Signed-off-by: Harvey Harrison Signed-off-by: Linus Torvalds commit daf4b805c1711f730d42a5dfc5a65ee05b3c9ecf Merge: a0c9f24... c8a12d4... Author: Linus Torvalds Date: Wed Jan 7 12:05:32 2009 -0800 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6 * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6: firewire: reorder struct fw_card for better cache efficiency firewire: fix resetting of bus manager retry counter firewire: improve refcounting of fw_card firewire: typo in comment firewire: fix small memory leak at module removal firewire: fw-sbp2: remove unnecessary locking ieee1934: dv1394: interrupt enabling/disabling broken on big-endian ieee1394: dv1394: annotate frame input/output structs as little endian ieee1394: eth1394: trivial sparse annotations ieee1394: mark bus_info_data as a __be32 array ieee1394: replace CSR_SET_BUS_INFO_GENERATION macro ieee1394: pcilynx: trivial endian annotation ieee1394: ignore nonzero Bus_Info_Block.max_rom, fetch config ROM in quadlets ieee1394: consolidate uses of IEEE1934_BUSID_MAGIC ieee1394: ohci1394: flush MMIO writes before delay in initialization ieee1394: ohci1394: pass error codes from request_irq through ieee1394: ohci1394: don't leave interrupts enabled during suspend/resume ieee1394: mark all hpsb_address_ops instances as const ieee1394: replace a GFP_ATOMIC by GFP_KERNEL allocation commit a0c9f240a992c4c2b6ac40324ece27475cf3b71a Merge: 5bb47b9... 230e40f... Author: Linus Torvalds Date: Wed Jan 7 12:01:06 2009 -0800 Merge branch 'proc-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/adobriyan/proc * 'proc-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/adobriyan/proc: proc: remove write-only variable in proc_pident_lookup() proc: fix sparse warning proc: add /proc/*/stack proc: remove '##' usage proc: remove useless WARN_ONs proc: stop using BKL commit 5bb47b9ff3d16d40f8d45380b373497a545fa280 Merge: 2f2408a... 06af15e... Author: Linus Torvalds Date: Wed Jan 7 12:00:25 2009 -0800 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/cooloney/blackfin-2.6 * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/cooloney/blackfin-2.6: (171 commits) Blackfin arch: fix bug - BF527 0.2 silicon has different CPUID (DSPID) value Blackfin arch: Enlarge flash partition for kenel for bf533/bf537 boards Blackfin arch: fix bug: kernel crash when enable SDIO host driver Blackfin arch: Print FP at level KERN_NOTICE Blackfin arch: drop ad73311 test code Blackfin arch: update board default configs Blackfin arch: Set PB4 as the default irq for bf548 board v1.4+. Blackfin arch: fix typo in early printk bit size processing Blackfin arch: enable reprogram cclk and sclk for bf518f-ezbrd Blackfin arch: add SDIO host driver platform data Blackfin arch: fix bug - kernel stops at initial console Blackfin arch: fix bug - kernel crash after config IP for ethernet port Blackfin arch: add sdh support for bf518f-ezbrd Blackfin arch: fix bug - kernel detects BF532 incorrectly Blackfin arch: add () to avoid warnings from gcc Blackfin arch: change HWTRACE Kconfig and set it on default Blackfin arch: Clean oprofile build path for blackfin Blackfin arch: remove hardware PM code, oprofile not use it Blackfin arch: rewrite get_sclk()/get_vco() Blackfin arch: cleanup and unify the ins functions ... commit 2f2408a88cf8fa43febfd7fb5783e61b2937b0f9 Merge: fa7b906... 77fa49d... Author: Linus Torvalds Date: Wed Jan 7 11:59:51 2009 -0800 Merge branch 'hwmon-for-linus' of git://jdelvare.pck.nerim.net/jdelvare-2.6 * 'hwmon-for-linus' of git://jdelvare.pck.nerim.net/jdelvare-2.6: (29 commits) hwmon: Fix various typos hwmon: Check for ACPI resource conflicts hwmon: (lm70) Add TI TMP121 support hwmon: (lm70) Code streamlining and cleanup hwmon: Deprecate the fscher and fscpos drivers hwmon: (fschmd) Add watchdog support hwmon: (fschmd) Cleanups for watchdog support hwmon: (i5k_amb) Load automatically on all 5000/5400 chipsets hwmon: (it87) Add support for the ITE IT8720F hwmon: Don't overuse I2C_CLIENT_MODULE_PARM hwmon: Add LTC4245 driver hwmon: (f71882fg) Fix fan_to/from_reg prototypes hwmon: (f71882fg) Printout fan modes hwmon: (f71882fg) Add documentation hwmon: (f71882fg) Fix auto_channels_temp temp numbering with f8000 hwmon: (f71882fg) Add missing pwm3 attr for f71862fg hwmon: (f71882fg) Add F8000 support hwmon: (f71882fg) Remove the fan_mode module option hwmon: (f71882fg) Separate max and crit alarm and beep hwmon: (f71882fg) Check for hwmon powerdown state ... commit fa7b906e7fef53b6c9eb3ecb8164b0a69e9e1a68 Merge: 0824990... 66c7acf... Author: Linus Torvalds Date: Wed Jan 7 11:59:27 2009 -0800 Merge branch 'i2c-for-linus' of git://jdelvare.pck.nerim.net/jdelvare-2.6 * 'i2c-for-linus' of git://jdelvare.pck.nerim.net/jdelvare-2.6: i2c: Use snprintf to set adapter names Input: apanel - convert to new i2c binding i2c: Drop I2C_CLASS_CAM_DIGITAL i2c: Drop I2C_CLASS_CAM_ANALOG and I2C_CLASS_SOUND i2c: Drop I2C_CLASS_ALL i2c: Get rid of remaining bus_id access i2c: Replace bus_id with dev_name(), dev_set_name() commit 08249903ea233a79b4167395f2fb79ccd1fb5f94 Merge: 0d6326a... 183b3af... Author: Linus Torvalds Date: Wed Jan 7 11:58:30 2009 -0800 Merge git://git.kernel.org/pub/scm/linux/kernel/git/hskinnemoen/avr32-2.6 * git://git.kernel.org/pub/scm/linux/kernel/git/hskinnemoen/avr32-2.6: avr32: Move syscalls.h under arch/avr32/include/asm/ avr32: Define DIE_OOPS avr32: Remove DMATEST from defconfigs arch/avr32: Eliminate NULL test and memset after alloc_bootmem avr32: data param to at32_add_device_mci() must be non-NULL atmel-mci: move atmel-mci.h file to include/linux avr32: Hammerhead board support avr32: Allow reserving multiple pins at once favr-32: Remove deprecated call MIMC200: Remove deprecated call avr: struct device - replace bus_id with dev_name(), dev_set_name() avr32: Introducing asm/syscalls.h commit 0d6326a100d7aec588d7c1da9ad77ca7cc7c5b71 Merge: 52fefce... c8f554b... Author: Linus Torvalds Date: Wed Jan 7 11:58:06 2009 -0800 Merge git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-2.6-fixes * git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-2.6-fixes: GFS2: Fix typo in gfs_page_mkwrite() GFS2: LSF and LBD are now one and the same GFS2: Set GFP_NOFS when allocating page on write commit 52fefcec97c25b15887e6a9a885ca54e7f7c0928 Merge: a0e280e... 5fee325... Author: Linus Torvalds Date: Wed Jan 7 11:56:29 2009 -0800 Merge git://git.kernel.org/pub/scm/linux/kernel/git/czankel/xtensa-2.6 * git://git.kernel.org/pub/scm/linux/kernel/git/czankel/xtensa-2.6: xtensa: Update platform files to reflect new location of the header files. xtensa: switch to packed struct unaligned access implementation xtensa: Add xt2000 support files. xtensa: move headers files to arch/xtensa/include xtensa: use the new byteorder headers commit a0e280e0f33f6c859a235fb69a875ed8f3420388 Author: Heiko Carstens Date: Wed Jan 7 16:19:46 2009 +0100 stop_machine/cpu hotplug: fix disable_nonboot_cpus disable_nonboot_cpus calls _cpu_down. But _cpu_down requires that the caller already created the stop_machine workqueue (like cpu_down does). Otherwise a call to stop_machine will lead to accesses to random memory regions. When introducing this new interface (9ea09af3bd3090e8349ca2899ca2011bd94cda85 "stop_machine: introduce stop_machine_create/destroy") I missed the second call site of _cpu_down. So add the missing stop_machine_create/destroy calls to disable_nonboot_cpus as well. Fixes suspend-to-ram/disk and also this bug: [ 286.547348] BUG: unable to handle kernel paging request at 6b6b6b6b [ 286.548940] IP: [] __stop_machine+0x88/0xe3 [ 286.550598] Oops: 0002 [#1] SMP [ 286.560580] Pid: 3273, comm: halt Not tainted (2.6.28-06127-g238c6d5 [ 286.560580] EIP: is at __stop_machine+0x88/0xe3 [ 286.560580] Process halt (pid: 3273, ti=f1a28000 task=f4530f30 [ 286.560580] Call Trace: [ 286.560580] [] ? _cpu_down+0x10f/0x234 [ 286.560580] [] ? disable_nonboot_cpus+0x58/0xdc [ 286.560580] [] ? kernel_poweroff+0x22/0x39 [ 286.560580] [] ? sys_reboot+0xde/0x14c [ 286.560580] [] ? complete_signal+0x179/0x191 [ 286.560580] [] ? send_signal+0x1cc/0x1e1 [ 286.560580] [] ? _spin_unlock_irqrestore+0x2d/0x3c [ 286.560580] [] ? group_send_signal_info+0x58/0x61 [ 286.560580] [] ? kill_pid_info+0x30/0x3a [ 286.560580] [] ? sys_kill+0x75/0x13a [ 286.560580] [] ? mntput_no_expire+ox1f/0x101 [ 286.560580] [] ? dput+0x1e/0x105 [ 286.560580] [] ? __fput+0x150/0x158 [ 286.560580] [] ? audit_syscall_entry+0x137/0x159 [ 286.560580] [] ? sysenter_do_call+0x12/0x34 Reported-and-tested-by: "Justin P. Mattock" Reviewed-by: Pekka Enberg Signed-off-by: Heiko Carstens Tested-by: Ingo Molnar Signed-off-by: Linus Torvalds commit 30aafdba6f78619274a977d67283a681bedbcbbd Author: Alan Cox Date: Wed Jan 7 11:40:03 2009 +0000 touchscreen: Fix build of da9034 Missing an include and thus breaks the x86-64 build. Signed-off-by: Alan Cox Signed-off-by: Linus Torvalds commit 57c44c5f6fb0a8002feb258c1af58e1a744b1fcb Merge: 7605274... 5a9e67b... Author: Linus Torvalds Date: Wed Jan 7 11:31:52 2009 -0800 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (24 commits) trivial: chack -> check typo fix in main Makefile trivial: Add a space (and a comma) to a printk in 8250 driver trivial: Fix misspelling of "firmware" in docs for ncr53c8xx/sym53c8xx trivial: Fix misspelling of "firmware" in powerpc Makefile trivial: Fix misspelling of "firmware" in usb.c trivial: Fix misspelling of "firmware" in qla1280.c trivial: Fix misspelling of "firmware" in a100u2w.c trivial: Fix misspelling of "firmware" in megaraid.c trivial: Fix misspelling of "firmware" in ql4_mbx.c trivial: Fix misspelling of "firmware" in acpi_memhotplug.c trivial: Fix misspelling of "firmware" in ipw2100.c trivial: Fix misspelling of "firmware" in atmel.c trivial: Fix misspelled firmware in Kconfig trivial: fix an -> a typos in documentation and comments trivial: fix then -> than typos in comments and documentation trivial: update Jesper Juhl CREDITS entry with new email trivial: fix singal -> signal typo trivial: Fix incorrect use of "loose" in event.c trivial: printk: fix indentation of new_text_line declaration trivial: rtc-stk17ta8: fix sparse warning ... commit 76052749143d03006271cc0ce8205ad756917062 Author: Jiri Kosina Date: Wed Jan 7 13:25:36 2009 +0100 HID: fix hid->hiddev initialization in hiddev_connect() Commit 079034073fa ("HID: hiddev cleanup -- handle all error conditions properly") by mistake removed proper initialization of hid->hiddev pointer in hiddev_connect() in case usb_register_dev() succeeds for the hiddev node. Put it properly back in place. Reported-and-tested-by: Gabriel C Signed-off-by: Jiri Kosina Signed-off-by: Linus Torvalds commit 940fbf411e5fb42aee8ab7dd814b24080951dbfc Author: Detlef Riekenberg Date: Wed Jan 7 10:11:44 2009 +0100 linux/types.h: Don't depend on __GNUC__ for __le64/__be64 The typedefs for __u64 and __s64 where fixed to be available for other compiler on May 2 2008 by H. Peter Anvin (in commit edfa5cfa3dc5) Acked-by: H. Peter Anvin Signed-off-by: Detlef Riekenberg Signed-off-by: Linus Torvalds commit f6dc1e5e3d4b523e1616b43beddb04e4fb1d376a Author: Rafael J. Wysocki Date: Wed Jan 7 13:12:22 2009 +0100 PCI PM: Put PM callbacks in the order of execution Put PM callbacks in drivers/pci/pci-driver.c in the order in which they are executed which makes it much easier to follow the code. No functional changes should result from this. Signed-off-by: Rafael J. Wysocki Acked-by: Pavel Machek Signed-off-by: Jesse Barnes commit d67e37d7933ba3b28a63ff38c957e433aaca5dc4 Author: Rafael J. Wysocki Date: Wed Jan 7 13:11:28 2009 +0100 PCI PM: Run default PM callbacks for all devices using new framework It should be quite clear that it generally makes sense to execute the default PM callbacks (ie. the callbacks used for handling suspend, hibernation and resume of PCI devices without drivers) for all devices. Of course, the drivers that provide legacy PCI PM support (ie. the ->suspend, ->suspend_late, ->resume_early or ->resume hooks in the pci_driver structure), carry out these operations too, so we can't do it for devices with such drivers. Still, we can make the default PM callbacks run for devices with drivers using the new framework (ie. implement the pm object), since there are no such drivers at the moment. This also simplifies the code and makes it smaller. Signed-off-by: Rafael J. Wysocki Acked-by: Pavel Machek Signed-off-by: Jesse Barnes commit 98e6e286d7b01deb7453b717aa38ebb69d6cefc0 Author: Rafael J. Wysocki Date: Wed Jan 7 13:10:35 2009 +0100 PCI PM: Register power state of devices during initialization Use the observation that the power state of a PCI device can be loaded into its pci_dev structure as soon as pci_pm_init() is run for it and make that happen. Signed-off-by: Rafael J. Wysocki Acked-by: Pavel Machek Signed-off-by: Jesse Barnes commit ad8cfa1defee14a5181d9b63e666318c51cfaeed Author: Rafael J. Wysocki Date: Wed Jan 7 13:09:37 2009 +0100 PCI PM: Call pci_fixup_device from legacy routines The size of drivers/pci/pci-driver.c can be reduced quite a bit if pci_fixup_device() is called from the legacy PM callbacks, so make it happen. No functional changes should result from this. Signed-off-by: Rafael J. Wysocki Acked-by: Pavel Machek Signed-off-by: Jesse Barnes commit bb8089454391ac5577215aec1f1991adcd4b4cbf Author: Rafael J. Wysocki Date: Wed Jan 7 14:15:17 2009 +0100 PCI PM: Rearrange code in pci-driver.c Rename two functions and rearrange code in drivers/pci/pci-driver.c so that it's easier to follow. In particular, separate invocations of the legacy callbacks from the rest of the new callbacks' code. Signed-off-by: Rafael J. Wysocki Signed-off-by: Jesse Barnes commit 734104292ff77dc71fe626b4ebd91b314547ca1b Author: Rafael J. Wysocki Date: Wed Jan 7 13:07:15 2009 +0100 PCI PM: Avoid touching devices behind bridges in unknown state It generally is better to avoid accessing devices behind bridges that may not be in the D0 power state, because in that case the bridges' secondary buses may not be accessible. For this reason, during the early phase of resume (ie. with interrupts disabled), before restoring the standard config registers of a device, check the power state of the bridge the device is behind and postpone the restoration of the device's config space, as well as any other operations that would involve accessing the device, if that state is not D0. In such cases the restoration of the device's config space will be retried during the "normal" phase of resume (ie. with interrupts enabled), so that the bridge can be put into D0 before that happens. Also, save standard configuration registers of PCI devices during the "normal" phase of suspend (ie. with interrupts enabled), so that the bridges the devices are behind can be put into low power states (we don't put bridges into low power states at the moment, but we may want to do it in the future and it seems reasonable to design for that). Signed-off-by: Rafael J. Wysocki Signed-off-by: Jesse Barnes commit 07e836e8d1f3688311d97fe1bf46980b0f9ae9c1 Author: Rafael J. Wysocki Date: Wed Jan 7 13:06:10 2009 +0100 PCI PM: Move pci_has_legacy_pm_support Move pci_has_legacy_pm_support() closer to the functions that call it. Signed-off-by: Rafael J. Wysocki Acked-by: Pavel Machek Signed-off-by: Jesse Barnes commit 571ff7584bb9e05fca0eb79752ae55a46faf3a98 Author: Rafael J. Wysocki Date: Wed Jan 7 13:05:05 2009 +0100 PCI PM: Power-manage devices without drivers during suspend-resume PCI devices without drivers can be put into low power states during suspend with the help of pci_prepare_to_sleep() and prevented from generating wake-up events during resume with the help of pci_enable_wake(). However, it's better not to put bridges into low power states during suspend, because that might result in entire bus segments being powered off. Signed-off-by: Rafael J. Wysocki Acked-by: Pavel Machek Signed-off-by: Jesse Barnes commit fa58d305d9925b01830e535896a7227a868a9e15 Author: Rafael J. Wysocki Date: Wed Jan 7 13:03:42 2009 +0100 PCI PM: Add suspend counterpart of pci_reenable_device PCI devices without drivers are not disabled during suspend and hibernation, but they are enabled during resume, with the help of pci_reenable_device(), so there is an unbalanced execution of pcibios_enable_device() in the resume code path. To correct this introduce function pci_disable_enabled_device() that will disable the argument device, if it is enabled when the function is being run, without updating the device's pci_dev structure and use it in the suspend code path to balance the pci_reenable_device() executed during resume. Signed-off-by: Rafael J. Wysocki Acked-by: Pavel Machek Signed-off-by: Jesse Barnes commit c9b9972b3c88272be02d971346285d1c67fbb95f Author: Rafael J. Wysocki Date: Wed Jan 7 13:02:36 2009 +0100 PCI PM: Fix poweroff and restore callbacks pci_fixup_device() is called too early in pci_pm_poweroff() and too late in pci_pm_restore(). Moreover, pci_pm_restore_noirq() calls pci_fixup_device() twice and in a wrong way. Fix that. Signed-off-by: Rafael J. Wysocki Acked-by: Pavel Machek Signed-off-by: Jesse Barnes commit 987a4c783a8bbf3baf554e6b8ff588b26e06e020 Author: Andrew Patterson Date: Mon Jan 5 16:21:04 2009 -0700 PCI: Use msleep instead of cpu_relax during ASPM link retraining The cpu_relax() function can be a noop on certain architectures like IA-64 when CPU threads are disabled, so use msleep instead during link retraining busy/wait loop. Introduce define LINK_RETRAIN_TIMEOUT instead of hard-coding timeout in pcie_aspm_configure_common_clock. Use time_after() to avoid jiffy wraparound when checking for expired timeout. After timeout expires, recheck link status register link training bit instead of checking for expired timeout to avoid possible false positive. Note that Matthew Wilcox came up with the first rough version of this patch. Reviewed-by: Matthew Wilcox Signed-off-by: Andrew Patterson Signed-off-by: Jesse Barnes commit d9347371c538544a7309d5b6475ec011d98d40e6 Author: Rafael J. Wysocki Date: Thu Jan 1 19:53:32 2009 +0100 PCI: PCIe portdrv: Add kerneldoc comments to remining core funtions Add kerneldoc comments to the reamining functions in drivers/pci/pcie/portdrv_core.c . Signed-off-by: Rafael J. Wysocki Signed-off-by: Jesse Barnes commit fa6c993736cb8cc18af86b8d17b608efa7882ab5 Author: Rafael J. Wysocki Date: Thu Jan 1 19:52:12 2009 +0100 PCI: PCIe portdrv: Rearrange code so that related things are together Rearrange code in drivers/pci/pcie/portdrv_bus.c and drivers/pci/pcie/portdrv_core.c so that related functions and data structures are closer together. Signed-off-by: Rafael J. Wysocki Signed-off-by: Jesse Barnes commit e7ae88486670f3904f187d0fff9dcf469bcdd8ba Author: Rafael J. Wysocki Date: Thu Jan 1 19:51:15 2009 +0100 PCI: PCIe portdrv: Fix suspend and resume of PCI Express port services There is a problem with the suspend and resume of PCI Express port service devices that the ->suspend() and ->resume() routines of each service device are called twice in each suspend-resume cycle, which is obviously wrong. The scenario is that first, the PCI Express port driver calls suspend and resume routines of each port service driver from its pcie_portdrv_suspend() and pcie_portdrv_resume() callbacks, respectively (which is correct), and second, the pcie_port_bus_type driver calls them from its ->suspend() and ->resume() callbacks (which is not correct, because it doesn't happen at the right time). The solution is to remove the ->suspend() and ->resume() callbacks from pcie_port_bus_type and the associated functions. Signed-off-by: Rafael J. Wysocki Signed-off-by: Jesse Barnes commit facf6d1627a33badbbc154524c4a2c73c51bdc99 Author: Rafael J. Wysocki Date: Thu Jan 1 19:48:55 2009 +0100 PCI: PCIe portdrv: Add kerneldoc comments to some core functions Add kerneldoc comments to some functions in drivers/pci/pcie/portdrv_core.c, since the code in there is not easy to follow without any additional description. Signed-off-by: Rafael J. Wysocki Signed-off-by: Jesse Barnes commit 16cf0ebc35dd63f72628ba1246132a6fd17bced2 Author: Rafael J. Wysocki Date: Mon Jan 5 14:50:27 2009 +0100 x86/PCI: Do not use interrupt links for devices using MSI-X pcibios_enable_device() and pcibios_disable_device() don't handle IRQs for devices that have MSI enabled and it should treat the devices with MSI-X enabled in the same way. Signed-off-by: Rafael J. Wysocki Acked-by: Ingo Molnar Signed-off-by: Jesse Barnes commit ef1bba28bfe68ef3c0488feeaabd3e8bc523130c Author: Ben Hutchings Date: Tue Dec 23 03:09:53 2008 +0000 net: sfc: Use pci_clear_master() to disable bus mastering pci_disable_device() disables many features, like MSI-X, which we never reenable in efx_reset(). Further, calls to pci_enable_device() and pci_disable_device() must be matched since the nesting count was introduced, so switch to using pci_clear_master() instead. Signed-off-by: Ben Hutchings Signed-off-by: Jesse Barnes commit 6a479079c07211bf348ac8a79754f26bea258f26 Author: Ben Hutchings Date: Tue Dec 23 03:08:29 2008 +0000 PCI: Add pci_clear_master() as opposite of pci_set_master() During an online device reset it may be useful to disable bus-mastering. pci_disable_device() does that, and far more besides, so is not suitable for an online reset. Add pci_clear_master() which does just this. Signed-off-by: Ben Hutchings Reviewed-by: Matthew Wilcox Signed-off-by: Jesse Barnes commit b8d9cb2a2226118fd71f657c80b06b670a653022 Author: Julia Lawall Date: Sun Dec 21 16:39:37 2008 +0100 PCI hotplug: remove redundant test in cpq hotplug func is checked not to be NULL a few lines before. A simplified version of the semantic patch that makes this change is as follows: (http://www.emn.fr/x-info/coccinelle/) // @r exists@ local idexpression x; expression E; position p1,p2; @@ if (x@p1 == NULL || ...) { ... when forall return ...; } ... when != \(x=E\|x--\|x++\|--x\|++x\|x-=E\|x+=E\|x|=E\|x&=E\|&x\) ( x@p2 == NULL | x@p2 != NULL ) // another path to the test that is not through p1? @s exists@ local idexpression r.x; position r.p1,r.p2; @@ ... when != x@p1 ( x@p2 == NULL | x@p2 != NULL ) @fix depends on !s@ position r.p1,r.p2; expression x,E; statement S1,S2; @@ ( - if ((x@p2 != NULL) || ...) S1 | - if ((x@p2 == NULL) && ...) S1 | - BUG_ON(x@p2 == NULL); ) // Signed-off-by: Julia Lawall Signed-off-by: Jesse Barnes commit 322162a71bd9fc4edb1b11236e7bc8aa27ccac22 Author: Kenji Kaneshige Date: Fri Dec 19 15:19:02 2008 +0900 PCI: pciehp: cleanup register and field definitions Clean up register definitions related to PCI Express Hot plug. - Add register definitions into include/linux/pci_regs.h, and use them instead of pciehp's locally definied register definitions. - Remove pciehp's locally defined register definitions - Remove unused register definitions in pciehp. - Some minor cleanups. Signed-off-by: Kenji Kaneshige Signed-off-by: Jesse Barnes commit 67f6533802fd2cc6f5b3c6355ef72bcf636d7fda Author: Kenji Kaneshige Date: Fri Dec 19 15:18:10 2008 +0900 PCI: pciehp: ignore undefined bit in link status register Bit 10 in Link Status register used to be defined as Training Error in the PCI Express 1.0a specification. But it was removed by Training Error ECN and is no longer defined. So pciehp must ignore the value read from it. Signed-off-by: Kenji Kaneshige Signed-off-by: Jesse Barnes commit 46bbdfa44cfc0d352148a0dc33ba9f6db02ccdf0 Author: Shaohua Li Date: Fri Dec 19 09:27:42 2008 +0800 PCI: keep ASPM link state consistent throughout PCIe hierarchy In a PCIe hierarchy with a switch present, if the link state of an endpoint device is changed, we must check the whole hierarchy from the endpoint device to root port, and for each link in the hierarchy, the new link state should be configured. Previously, the implementation checked the state but forgot to configure the links between root port to switch. Fixes Novell bz #448987. Signed-off-by: Shaohua Li Tested-by: Andrew Patterson Signed-off-by: Jesse Barnes commit 2b8c2efe44ed897fc958131d70addc89876d806b Author: Bjorn Helgaas Date: Thu Dec 18 16:34:51 2008 -0700 x86/PCI: use dev_printk for PCI bus locality messages Since pci_bus has a struct device, use dev_printk directly instead of faking it by hand. Signed-off-by: Bjorn Helgaas Signed-off-by: Jesse Barnes commit a19f5df7d9696b9e53ba7c865816597057d5f76e Author: Bjorn Helgaas Date: Thu Dec 18 16:34:19 2008 -0700 PCI: use dev_printk for PCI bus resource mssages Since pci_bus has a struct device, use dev_printk directly instead of faking it by hand. Signed-off-by: Bjorn Helgaas Signed-off-by: Jesse Barnes commit db5679437a2b938c9127480a3923633721583a4f Author: Stephen Hemminger Date: Thu Dec 18 09:17:16 2008 -0800 PCI: add interface to set visible size of VPD The VPD on all devices may not be 32K. Unfortunately, there is no generic way to find the size, so this adds a simple API hook to reset it. Signed-off-by: Stephen Hemminger Signed-off-by: Jesse Barnes commit 287d19ce2e67c15e79a187b3bdcbbea1a0a51a7d Author: Stephen Hemminger Date: Thu Dec 18 09:17:16 2008 -0800 PCI: revise VPD access interface Change PCI VPD API which was only used by sysfs to something usable in drivers. * move iteration over multiple words to the low level * use conventional types for arguments * add exportable wrapper Signed-off-by: Stephen Hemminger Signed-off-by: Jesse Barnes commit 1120f8b8169fb2cb51219d326892d963e762edb6 Author: Stephen Hemminger Date: Thu Dec 18 09:17:16 2008 -0800 PCI: handle long delays in VPD access Accessing the VPD area can take a long time. The existing VPD access code fails consistently on my hardware. There are comments in the SysKonnect vendor driver that it can take up to 13ms per word. Change the access routines to: * use a mutex rather than spinning with IRQ's disabled and lock held * have a much longer timeout * call cond_resched while spinning Signed-off-by: Stephen Hemminger Reviewed-by: Matthew Wilcox Signed-off-by: Jesse Barnes commit 904d6a303361a85bfa4c8181ef62a24edb8da0a8 Author: Bjorn Helgaas Date: Tue Dec 16 21:37:20 2008 -0700 PCI: x86/visws: use generic INTx swizzle from PCI core Use the generic pci_common_swizzle() instead of arch-specific code. Signed-off-by: Bjorn Helgaas Signed-off-by: Jesse Barnes commit e55823492dde22f841ec7deeb4d61f195ecb7ed4 Author: Bjorn Helgaas Date: Tue Dec 16 21:37:15 2008 -0700 PCI: sh: use generic INTx swizzle from PCI core Use the generic pci_common_swizzle() instead of arch-specific code. Note that pci_common_swizzle() loops based on dev->bus->self, not dev->bus->parent as the sh simple_swizzle() did. I think they are equivalent for this purpose. Signed-off-by: Bjorn Helgaas Signed-off-by: Jesse Barnes commit 67eed58060ca2049fd59d35f426b6c7dbd51b20b Author: Bjorn Helgaas Date: Tue Dec 16 21:37:10 2008 -0700 PCI: mips: use generic INTx swizzle from PCI core Use the generic pci_common_swizzle() instead of arch-specific code. Note that pci_common_swizzle() loops based on dev->bus->self, not dev->bus->parent as the mips common_swizzle() did. I think they are equivalent for this purpose. Signed-off-by: Bjorn Helgaas Signed-off-by: Jesse Barnes commit 06df69932add8108f599ef26fcdf36c4f8125e50 Author: Bjorn Helgaas Date: Tue Dec 16 21:37:05 2008 -0700 PCI: arm: use generic INTx swizzle from PCI core Use the generic pci_common_swizzle() instead of arch-specific code. Signed-off-by: Bjorn Helgaas Signed-off-by: Jesse Barnes commit 3e08601f7f9b497abcb383491058bfb9e1dc6ec9 Author: Bjorn Helgaas Date: Tue Dec 16 21:37:00 2008 -0700 PCI: alpha: use generic INTx swizzle from PCI core Use the generic pci_common_swizzle() instead of arch-specific code. Note that pci_common_swizzle() loops based on dev->bus->self, not dev->bus->parent as the alpha common_swizzle() did. I think they are equivalent for this purpose. Signed-off-by: Bjorn Helgaas Signed-off-by: Jesse Barnes commit 68feac87de15edfc2c700d2d81b814288c93d003 Author: Bjorn Helgaas Date: Tue Dec 16 21:36:55 2008 -0700 PCI: add pci_common_swizzle() for INTx swizzling This patch adds pci_common_swizzle(), which swizzles INTx values all the way up to a root bridge. This common implementation can replace several architecture-specific ones. This should someday be combined with pci_get_interrupt_pin(), but I left it separate for now to make reviewing easier. Signed-off-by: Bjorn Helgaas Signed-off-by: Jesse Barnes commit e8c331e963c58b83db24b7d0e39e8c07f687dbc6 Author: Kenji Kaneshige Date: Wed Dec 17 12:09:12 2008 +0900 PCI hotplug: introduce functions for ACPI slot detection Some ACPI related PCI hotplug code can be shared among PCI hotplug drivers. This patch introduces the following functions in drivers/pci/hotplug/acpi_pcihp.c to share the code, and changes acpiphp and pciehp to use them. - int acpi_pci_detect_ejectable(struct pci_bus *pbus) This checks if the specified PCI bus has ejectable slots. - int acpi_pci_check_ejectable(struct pci_bus *pbus, acpi_handle handle) This checks if the specified handle is ejectable ACPI PCI slot. The 'pbus' parameter is needed to check if 'handle' is PCI related ACPI object. This patch also introduces the following inline function in include/linux/pci-acpi.h, which is useful to get ACPI handle of the PCI bridge from struct pci_bus of the bridge's secondary bus. - static inline acpi_handle acpi_pci_get_bridge_handle(struct pci_bus *pbus) This returns ACPI handle of the PCI bridge which generates PCI bus specified by 'pbus'. Signed-off-by: Kenji Kaneshige Signed-off-by: Jesse Barnes commit e046cbd6c05ee859244245d7beeac395cd0057b3 Author: Kenji Kaneshige Date: Wed Dec 17 12:08:15 2008 +0900 PCI: pciehp: add auto option to pciehp_detect_mode ACPI based hot-pluggable PCIe slot detection logic was added to prevent the problem non hot-pluggable PCIe slot was detected as hot-pluggable. The slot detection logic can be selected through 'pciehp_detect_mode', but it would be better if it is selected automatically. This patch adds 'auto' option for 'pciehp_detect_mode'. When it is specified, pciehp judges which 'acpi' or 'pcie' should be used. It seems that the physical slot number is duplicated among some slots on most of the platforms with the above-mentioned problem. So 'auto' mode uses this information to judge which 'acpi' or 'pcie' should be used. That is, if duplicated physical slot numbers are detected, 'acpi' mode is used. This method is not perfect, but it's realistic. Signed-off-by: Kenji Kaneshige Signed-off-by: Jesse Barnes commit c9ffa5a586a97da4d552f89b8f39eea79a63a612 Author: Kenji Kaneshige Date: Wed Dec 17 12:07:38 2008 +0900 PCI: pciehp: add ACPI based slot detection There is a problem that some non hot-pluggable PCIe slots are detected as hot-pluggable by pciehp on some platforms. The immediate cause of this problem is that hot-plug capable bit in the Slot Capabilities register is set even for non hot-pluggable slots on those platforms. It seems a BIOS/hardware problem, but we need workaround about that. Some of those platforms define hot-pluggable PCIe slots on ACPI namespace properly, while hot-plug capable bit in the Slot Capabilities register is set improperly. So using ACPI namespace information in pciehp to detect PCIe hot-pluggable slots would be a workaround. This patch adds 'pciehp_detect_mode' module option. When 'acpi' is specified, pciehp uses ACPI namespace information to detect PCIe hot-pluggable slots. Signed-off-by: Kenji Kaneshige Signed-off-by: Jesse Barnes commit 873392ca514f87eae39f53b6944caf85b1a047cb Author: Rusty Russell Date: Wed Dec 31 23:54:56 2008 +1030 PCI: work_on_cpu: use in drivers/pci/pci-driver.c This uses work_on_cpu(), rather than altering the cpumask of the thread which we happen to be. Note the cleanups: 1) I've removed the CONFIG_NUMA test, since dev_to_node() returns -1 for !CONFIG_NUMA anyway and the compiler will eliminate it. 2) No need to reset mempolicy to default (a bad idea anyway) since work_on_cpu is run from a workqueue. Signed-off-by: Rusty Russell Signed-off-by: Jesse Barnes commit a79d682f789730dfabaebbb507c87a90c0671a62 Author: Rafael J. Wysocki Date: Sat Dec 27 16:28:58 2008 +0100 PCI PM: Split PCI Express port suspend-resume Suspend-resume of PCI Express ports has recently been moved into _suspend_late() and _resume_early() callbacks, but some functions executed from there should not be called with interrupts disabled, eg. pci_enable_device(). For this reason, split the suspend-resume of PCI Express ports into parts to be executed with interrupts disabled and with interrupts enabled. Signed-off-by: Rafael J. Wysocki Signed-off-by: Jesse Barnes commit f06fc0b6f8a6846e0ad48aee7b0f282b4fb5dcdc Author: Rafael J. Wysocki Date: Sat Dec 27 16:30:52 2008 +0100 PCI PM: Fix pci_update_current_state Currently, PCI devices without the PM capability that are power manageable by the platform (eg. ACPI) are not handled correctly by pci_set_power_state(), because their current_state field is not updated to reflect the new power state of the device. Fix this by making pci_update_current_state() accept additional argument representing the power state of the device as set by the platform. Signed-off-by: Rafael J. Wysocki Signed-off-by: Jesse Barnes commit eb9c39d031bbcfd4005bd7e0337c3fd3909c1bf7 Author: Jesse Barnes Date: Wed Dec 17 12:10:05 2008 -0800 PCI: set device wakeup capable flag if platform support is present When PCI devices are initialized, we check whether they support PCI PM caps and set the device can_wakeup flag if so. However, some devices may have platform provided wakeup events rather than PCI PME signals, so we need to set can_wakeup in that case too. Doing so should allow wakeups from many more devices, especially on cost constrained systems. Reported-by: Alan Stern Tested-by: Joseph Chan Acked-by: "Rafael J. Wysocki" Signed-off-by: Jesse Barnes commit 876e501ab25dcd683574a5d3d56d8fe450083ed6 Author: Yu Zhao Date: Sat Nov 22 02:42:35 2008 +0800 PCI: factor pci_bus_add_child() from pci_bus_add_devices() This patch splits a new function, pci_bus_add_child(), from pci_bus_add_devices(). The new function can be used to register PCI buses to the device core. Signed-off-by: Yu Zhao Signed-off-by: Jesse Barnes commit 3fa16fdb48e0d83c2acf46e357548c89891df58b Author: Yu Zhao Date: Sat Nov 22 02:41:45 2008 +0800 PCI: cleanup pci_bus_add_devices() Cleanup pci_bus_add_devices() by negating the conditional and continuing, rather than having a single conditional take up the whole body. Signed-off-by: Yu Zhao Signed-off-by: Jesse Barnes commit 613e7ed6f72b1a115f7ece8ce1b66cf095de1348 Author: Yu Zhao Date: Sat Nov 22 02:41:27 2008 +0800 PCI: add a new function to map BAR offsets Add a function to map a given resource number to a corresponding register so drivers can get the offset and type of device specific BARs. Signed-off-by: Yu Zhao Signed-off-by: Jesse Barnes commit 3789fa8a2e534523c896a32a9f27f78d52ad7d82 Author: Yu Zhao Date: Sat Nov 22 02:41:07 2008 +0800 PCI: allow pci_alloc_child_bus() to handle a NULL bridge Allow pci_alloc_child_bus() to allocate buses without bridge devices. Some SR-IOV devices can occupy more than one bus number, but there is no explicit bridges because that have internal routing mechanism. Signed-off-by: Yu Zhao Signed-off-by: Jesse Barnes commit 0b400c7ed4d027e02f6231afa39852a2d48e6f25 Author: Yu Zhao Date: Sat Nov 22 02:40:40 2008 +0800 PCI: export __pci_read_base() Export __pci_read_base() so it can be used by whole PCI subsystem. Signed-off-by: Yu Zhao Signed-off-by: Jesse Barnes commit bc5f5a8277cb353161454b6704b3186ebcf3a2a3 Author: Yu Zhao Date: Sat Nov 22 02:40:00 2008 +0800 PCI: remove unnecessary condition check in pci_restore_bars() Remove the unnecessary number of resources condition checks because the pci_update_resource() will check availability of the resources. Signed-off-by: Yu Zhao Signed-off-by: Jesse Barnes commit fde09c6d8f92de0c9f75698a75f0989f2234c517 Author: Yu Zhao Date: Sat Nov 22 02:39:32 2008 +0800 PCI: define PCI resource names in an 'enum' This patch moves all definitions of the PCI resource names to an 'enum', and also replaces some hard-coded resource variables with symbol names. This change eases introduction of device specific resources. Reviewed-by: Bjorn Helgaas Signed-off-by: Yu Zhao Signed-off-by: Jesse Barnes commit 14add80b5120966fe0659d61815b9e9b4b68fdc5 Author: Yu Zhao Date: Sat Nov 22 02:38:52 2008 +0800 PCI: remove unnecessary arg of pci_update_resource() This cleanup removes unnecessary argument 'struct resource *res' in pci_update_resource(), so it takes same arguments as other companion functions (pci_assign_resource(), etc.). Signed-off-by: Yu Zhao Signed-off-by: Jesse Barnes commit 6a49d8120021897e139641062236215aac5d220e Author: Yu Zhao Date: Sat Nov 22 02:38:21 2008 +0800 PCI: enhance pci_ari_enabled() Change parameter of pci_ari_enabled() from 'pci_dev' to 'pci_bus'. ARI forwarding on the bridge mostly concerns the subordinate devices rather than the bridge itself. So this change will make the function easier to use. Signed-off-by: Yu Zhao Signed-off-by: Jesse Barnes commit 999da9fd489cd9774a89122940190376e19b21ce Author: Adam Jackson Date: Mon Dec 1 14:30:29 2008 -0800 PCI quirks: piix3: warn softer about enabling passive release All the other quirks are dev_info() not dev_err(), this one isn't special. This makes 'quiet' boot in qemu really quiet. Signed-off-by: Adam Jackson Cc: Bartlomiej Zolnierkiewicz Cc: Jeff Garzik Cc: Tejun Heo Signed-off-by: Andrew Morton Signed-off-by: Jesse Barnes commit 92425a405ea482209b43093a5e35be7de02acf18 Author: Trent Piepho Date: Sun Nov 30 17:10:12 2008 -0800 PCI: Make settable sysfs attributes more consistent PCI devices have three settable boolean attributes, enable, broken_parity_status, and msi_bus. The store functions for these would silently interpret "0x01" as false, "1llogical" as true, and "true" would be (silently!) ignored and do nothing. This is inconsistent with typical sysfs handling of settable attributes, and just plain doesn't make much sense. So, use strict_strtoul(), which was created for this purpose. The store functions will treat a value of 0 as false, non-zero as true, and return -EINVAL for a parse failure. Additionally, is_enabled_store() and msi_bus_store() return -EPERM if CAP_SYS_ADMIN is lacking, rather than silently doing nothing. This is more typical behavior for sysfs attributes that need a capability. And msi_bus_store() will only print the "forced subordinate bus ..." warning if the MSI flag was actually forced to a different value. Signed-off-by: Trent Piepho Signed-off-by: Jesse Barnes commit 1684f5ddd4c0c754f52c78eaa2c5c69ad09fb18c Author: Andrew Morton Date: Mon Dec 1 14:30:30 2008 -0800 PCI: uninline pci_ioremap_bar() It's too large to be inlined. Acked-by: Arjan van de Ven Signed-off-by: Andrew Morton Signed-off-by: Jesse Barnes commit bebd590ca27e80ffe3129ab4f0a3124f0a340f43 Author: Alan Stern Date: Tue Dec 16 14:06:58 2008 -0500 PCI: fix incorrect error return in pci_enable_wake This patch (as1186) fixes a minor mistake in pci_enable_wake(). When the routine is asked to disable remote wakeup, it should not return an error merely because the device is not allowed to do wakeups! Signed-off-by: Alan Stern Acked-by: Rafael J. Wysocki Signed-off-by: Jesse Barnes commit f0e88af855cbc5012f2e796f42686969b82d79d4 Author: Bjorn Helgaas Date: Tue Dec 9 16:12:22 2008 -0700 PCI: parisc: use generic pci_swizzle_interrupt_pin() Use the generic pci_swizzle_interrupt_pin() instead of arch-specific code. Acked-by: Kyle McMartin Signed-off-by: Bjorn Helgaas Signed-off-by: Jesse Barnes commit 30d546dac9420fc238109aec2c6596e044cc6d4c Author: Bjorn Helgaas Date: Tue Dec 9 16:12:17 2008 -0700 PCI: mips: use generic pci_swizzle_interrupt_pin() Use the generic pci_swizzle_interrupt_pin() instead of arch-specific code. Acked-by: Ralf Baechle Signed-off-by: Bjorn Helgaas Signed-off-by: Jesse Barnes commit b1c86792a0f3cf24a12c1ac7d452d665d90284b1 Author: Bjorn Helgaas Date: Tue Dec 9 16:12:37 2008 -0700 PCI: x86: use generic pci_swizzle_interrupt_pin() Use the generic pci_swizzle_interrupt_pin() instead of arch-specific code. Cc: Thomas Gleixner Cc: Ingo Molnar Cc: hpa@zytor.com Signed-off-by: Bjorn Helgaas Signed-off-by: Jesse Barnes commit 1be9baa09340bbe3329aab3bd0d41076f59c8f22 Author: Bjorn Helgaas Date: Tue Dec 9 16:12:07 2008 -0700 PCI: alpha: use generic pci_swizzle_interrupt_pin() Use the generic pci_swizzle_interrupt_pin() instead of arch-specific code. Cc: Ivan Kokshaysky Signed-off-by: Bjorn Helgaas Signed-off-by: Jesse Barnes commit 3f9455d488ca97f68a1c99c7473c26030261b713 Author: Bjorn Helgaas Date: Tue Dec 9 16:12:27 2008 -0700 PCI: powerpc: use generic pci_swizzle_interrupt_pin() Use the generic pci_swizzle_interrupt_pin() instead of arch-specific code. Acked-by: Benjamin Herrenschmidt Signed-off-by: Bjorn Helgaas Signed-off-by: Jesse Barnes commit 6aa6e4981741013e4a8c7c3ee7b90c24e89fae24 Author: Bjorn Helgaas Date: Tue Dec 9 16:12:32 2008 -0700 PCI: sh: use generic pci_swizzle_interrupt_pin() Use the generic pci_swizzle_interrupt_pin() instead of arch-specific code. Acked-by: Paul Mundt Signed-off-by: Bjorn Helgaas Signed-off-by: Jesse Barnes commit f14d766a1a438fdc69d04b876965d6b26b071f14 Author: Bjorn Helgaas Date: Tue Dec 9 16:12:12 2008 -0700 PCI: arm: use generic pci_swizzle_interrupt_pin() Use the generic pci_swizzle_interrupt_pin() instead of arch-specific code. Cc: Russell King Signed-off-by: Bjorn Helgaas Signed-off-by: Jesse Barnes commit 57c2cf71c12318b72ebaa5720d210476b6bac4d4 Author: Bjorn Helgaas Date: Thu Dec 11 11:24:23 2008 -0700 PCI: add pci_swizzle_interrupt_pin() This patch adds pci_swizzle_interrupt_pin(), which implements the INTx swizzling algorithm specified in Table 9-1 of the "PCI-to-PCI Bridge Architecture Specification," revision 1.2. There are many architecture-specific implementations of this swizzle that can be replaced by this common one. Reviewed-by: David Howells Signed-off-by: Bjorn Helgaas Signed-off-by: Jesse Barnes commit 12b955ff63db0b75cfc2d4939696c57b31891ec6 Author: Bjorn Helgaas Date: Tue Dec 9 16:11:57 2008 -0700 x86/PCI: minor logic simplications Test "pin" immediately to simplify the subsequent code. Cc: Thomas Gleixner Cc: Ingo Molnar Cc: hpa@zytor.com Signed-off-by: Bjorn Helgaas Signed-off-by: Jesse Barnes commit f672c392b9c61bcdfb1247561d404b2c3ed4b0b3 Author: Bjorn Helgaas Date: Tue Dec 9 16:11:51 2008 -0700 x86/PCI: use config space encoding for interrupt pins Keep "pin" encoded as it is in the "Interrupt Pin" value in PCI config space, i.e., 0=device doesn't use interrupts, 1=INTA, ..., 4=INTD. This makes the bridge INTx swizzle match other architectures. Cc: Thomas Gleixner Cc: Ingo Molnar Cc: hpa@zytor.com Signed-off-by: Bjorn Helgaas Signed-off-by: Jesse Barnes commit 878f2e50fd1cfea575cdca5bf019c2175dc64131 Author: Bjorn Helgaas Date: Tue Dec 9 16:11:46 2008 -0700 PCI: use config space encoding in pci_get_interrupt_pin() This patch makes pci_get_interrupt_pin() return values encoded the same way as the "Interrupt Pin" value in PCI config space, i.e., 1=INTA, ..., 4=INTD. pirq_bios_set() is the only in-tree caller of pci_get_interrupt_pin() and pci_get_interrupt_pin() is not exported. Cc: Thomas Gleixner Cc: Ingo Molnar Cc: hpa@zytor.com Signed-off-by: Bjorn Helgaas Signed-off-by: Jesse Barnes commit 98d3333a13029ab07ca1d1bfb9bfa138ea76c3c0 Author: Bjorn Helgaas Date: Tue Dec 9 16:11:41 2008 -0700 PCI hotplug: cpqphp: use config space PCI interrupt pin encoding This patch changes cpqphp to use interrupt pin values just as they come from PCI config space, i.e., 1=INTA, ..., 4=INTD. pcibios_set_irq_routing() takes pin arguments in the range 0=INTA, ..., 3=INTD, so we'll adjust the pin just before calling it. Signed-off-by: Bjorn Helgaas Acked-by: Alex Chiang Signed-off-by: Jesse Barnes commit 23a36002742bca87510201770a7d931c4aa63e97 Author: Jacob Pan Date: Mon Dec 8 09:44:16 2008 -0800 PCI: avoid early PCI mmconfig init if pci=noearly is given in cmdline Early type 1 accesses can cause problems on some platforms, and pci=noearly is supposed to prevent them from occurring. However, early mcfg probing code uses type 1 and isn't protected by a check for noearly. This patch fixes that problem. Signed-off-by: Jacob Pan Signed-off-by: Jesse Barnes commit 0e331bf1c44401a5b6d7b778dd1f254724132dff Author: Bjorn Helgaas Date: Wed Dec 10 13:00:21 2008 -0700 PCI: pcie port driver: remove extra printks These printks don't contain enough information to be useful. I think it would be more useful to have a message when a service driver binds to a root port. That could contain the service type, the interrupt mode and IRQ, etc. Signed-off-by: Bjorn Helgaas Signed-off-by: Jesse Barnes commit 0663a36284586ac9a9781be8aa7e8ca9fff16d06 Author: Bjorn Helgaas Date: Wed Dec 10 13:12:00 2008 -0700 x86/PCI: make PCI bus locality messages more meaningful Change PCI bus locality messages so they have a bit more context and look like the rest of PCI, e.g., - bus 01 -> node 0 - bus 04 -> node 0 + pci 0000:01: bus on NUMA node 0 + pci 0000:04: bus on NUMA node 0 Signed-off-by: Bjorn Helgaas Signed-off-by: Jesse Barnes commit 29935282f24a6ce2f0a65c3d77fb7f695461f583 Author: Bjorn Helgaas Date: Wed Dec 10 13:02:18 2008 -0700 PCI: make PCI bus resource messages more meaningful Change PCI bus resource messages so they have a bit more context and look like the rest of PCI, e.g., - bus: 00 index 0 io port: [0x00-0xffff] - bus: 00 index 1 mmio: [0x000000-0xffffffff] + pci 0000:00: bus resource 0 io : [0x00-0xffff] + pci 0000:00: bus resource 1 mem: [0x000000-0xffffffff] This also changes them from KERN_INFO to KERN_DEBUG. Signed-off-by: Bjorn Helgaas Signed-off-by: Jesse Barnes commit 2a9d35219c593bdf46ec21f2b75a6370af7af1b0 Author: Alex Chiang Date: Thu Dec 11 11:17:55 2008 -0700 PCI hotplug: acpiphp whitespace cleanup Clean up whitespace. Setting 'let c_space_errors=1' in .vimrc shows all sorts of ugliness. ;) Signed-off-by: Alex Chiang Signed-off-by: Jesse Barnes commit 104bafcfab7ce3031399e60069949f10acecc022 Author: Ingo Molnar Date: Fri Dec 12 06:49:40 2008 +0100 PCI: Don't carp about BAR allocation failures in quiet boot These are easy to trigger (more or less harmlessly) with multiple video cards, since the ROM BAR will typically not be given any space by the BIOS bridge setup. No reason to punish quiet boot for this. Signed-off-by: Adam Jackson Signed-off-by: Jesse Barnes commit a367f74cb6f9c49850a4ee86e45fd3a8e83065e4 Author: Hidetoshi Seto Date: Fri Dec 5 14:05:23 2008 +0900 PCI hotplug: aerdrv: fix a typo in error message "TLP" is an acronym for "Transaction Layer Packet." Signed-off-by: Hidetoshi Seto Signed-off-by: Jesse Barnes commit 63f4898ace2788a89ed685672aab092e1c3e50e6 Author: Rafael J. Wysocki Date: Sun Dec 7 22:02:58 2008 +0100 PCI: handle PCI state saving with interrupts disabled Since interrupts will soon be disabled at PCI resume time, we need to pre-allocate memory to save/restore PCI config space (or use GFP_ATOMIC, but this is safer). Reported-by: Linus Torvalds Signed-off-by: "Rafael J. Wysocki" Signed-off-by: Jesse Barnes commit 894886e5d3de0bde2eded8a39bf7e76023fbd791 Author: Linus Torvalds Date: Sat Dec 6 10:10:10 2008 -0800 PCI: extend on the ICH motherboard IO decode quirk list This adds more LPC controller IO range decode quirks for the Intel ICH family of chipsets. They differ a bit between the older ICH6 chipset and the more modern layout of the ICH7-ICH10 chipsets. This patch just prints out the IO decode information found by the quirks, but eventually we may want to add them to the resource tree, in order to know to avoid allocating things over them. That's especially true if it turns out that any firmware ends up putting the magic motherboard resources in an address range that we use for dynamic allocations (ie above PCIBIOS_MIN_IO, which is 0x1000 on x86). Signed-off-by: Linus Torvalds Cc: Rafael J. Wysocki Cc: Ivan Kokshaysky Cc: Greg KH Cc: Frans Pop Signed-off-by: Jesse Barnes commit 90d25f246ddefbb743764f8d45ae97e545a6ee86 Author: Rafael J. Wysocki Date: Sat Dec 6 15:07:59 2008 +0100 PCI: Suspend and resume PCI Express ports with interrupts disabled I don't see why the suspend and resume of PCI Express ports should be handled with interrupts enabled and it may even lead to problems in some situations. For this reason, move the suspending and resuming of PCI Express ports into ->suspend_late() and ->resume_early() callbacks executed with interrupts disabled. This patch addresses the regression from 2.6.26 tracked as http://bugzilla.kernel.org/show_bug.cgi?id=12121 . Acked-by: Linus Torvalds Signed-off-by: Rafael J. Wysocki Signed-off-by: Jesse Barnes commit c70e0d9dfef3d826c8ae4f7544acc53887cb161d Author: Chris Wright Date: Tue Nov 25 21:17:13 2008 -0800 PCI: pci-stub module to reserve pci device When doing device assignment with KVM there's currently nothing to protect the device from having a driver in the host as well as the guest. This trivial module just binds the pci device on the host to a stub driver so that a real host driver can't bind to the device. It has no pci id table, it supports only dynamic ids. # echo "8086 10f5" > /sys/bus/pci/drivers/pci-stub/new_id # echo -n 0000:00:19.0 > /sys/bus/pci/drivers/e1000e/unbind # echo -n 0000:00:19.0 > /sys/bus/pci/drivers/pci-stub/bind # ls -l /sys/bus/pci/devices/0000:00:19.0/driver lrwxrwxrwx 1 root root 0 2008-11-25 19:10 /sys/bus/pci/devices/0000:00:19.0/driver -> ../../../bus/pci/drivers/pci-stub Cc: "Kay, Allen M" Cc: "Nakajima, Jun" Signed-off-by: Chris Wright Acked-by: Greg Kroah-Hartman Signed-off-by: Jesse Barnes commit 2debb4d2019fa05a0896f1591dea0e0dc21bc046 Author: Chris Wright Date: Tue Nov 25 19:36:10 2008 -0800 PCI: allow pci driver to support only dynids commit b41d6cf38e27 (PCI: Check dynids driver_data value for validity) requires all drivers to include an id table to try and match driver_data. Before validating driver_data check driver has an id table. Acked-by: Jean Delvare Cc: Milton Miller Signed-off-by: Chris Wright Signed-off-by: Jesse Barnes commit 56ee325e25a0f76fc3267872867b3d70af179aad Author: Matthew Garrett Date: Tue Nov 25 21:48:14 2008 +0000 PCI/ACPI: acpiphp: Identify more removable slots According to section 6.3.6 of the ACPI spec, the presence of an _RMV method that evaluates to 1 is sufficient to indicate that a slot is removable without needing an eject method. This patch refactors the ejectable slot detection code a little in order to flag these slots as ejectable and register them. Acpihp then binds to the expresscard slot on my HP test machine. Acked-by: Kristen Carlson Accardi Signed-off-by: Matthew Garrett Signed-off-by: Jesse Barnes commit 86d8698027fd30cc067d2aeeb1e3603d43c83df0 Author: Taku Izumi Date: Thu Nov 20 15:22:39 2008 +0900 pci-acpi: Cleanup _OSC evaluation code Cleanup _OSC evaluation code. Some whitespace changes and a few other minor cleanups. Reviewed-by: Andrew Patterson Tested-by: Andrew Patterson Signed-off-by: Kenji Kaneshige Signed-off-by: Taku Izumi Signed-off-by: Jesse Barnes commit e0fa3b43df0b57967857b2c83bad9a5193fbddf5 Author: Taku Izumi Date: Thu Nov 20 15:22:37 2008 +0900 PCI/ACPI: Remove unnecessary _OSC evaluation for control request If a control had already been granted, we don't need to re-evaluate _OSC for it because firmware may not reject control of any feature it has previously granted control to. Reviewed-by: Andrew Patterson Tested-by: Andrew Patterson Signed-off-by: Kenji Kaneshige Signed-off-by: Taku Izumi Signed-off-by: Jesse Barnes commit 753e3aca735dc446f66d501b625122661738b57d Author: Taku Izumi Date: Thu Nov 20 15:22:32 2008 +0900 PCI: revert additional _OSC evaluation Reverts adf411b819adc9fa96e9b3e638c7480d5e71d270. The commit adf411b819adc9fa96e9b3e638c7480d5e71d270 was based on the improper assumption that queried result was not updated when _OSC support field was changed. But, in fact, queried result is updated whenever _OSC support field was changed through __acpi_query_osc(). As a result, the commit adf411b819adc9fa96e9b3e638c7480d5e71d270 only introduced unnecessary additional _OSC evaluation... Tested-by: Andrew Patterson Reviewed-by: Andrew Patterson Signed-off-by: Kenji Kaneshige Signed-off-by: Taku Izumi Signed-off-by: Jesse Barnes commit 4ba7d0f0eb68cf7731ead4ca20e540d0266cfa8e Author: Julia Lawall Date: Sun Nov 23 09:08:28 2008 +0100 drivers/pci/hotplug: Add missing pci_dev_get pci_get_slot does a pci_dev_get, so pci_dev_put needs to be called in an error case. An alterative would be to move the test_and_set_bit before the call to pci_get_slot. The problem was fixed using the following semantic patch. (http://www.emn.fr/x-info/coccinelle/) // @@ local idexpression *n; statement S1,S2; expression E,E1; expression *ptr != NULL; type T,T1; @@ ( if (!(n = pci_get_slot(...))) S1 | n = pci_get_slot(...) ) <... when != pci_dev_put(n) when != if (...) { <+... pci_dev_put(n) ...+> } when != true !n || ... when != n = (T)E when != E = n if (!n || ...) S2 ...> ( return \(0\|<+...n...+>\|ptr\); | + pci_dev_put(n); return ...; | pci_dev_put(n); | n = (T1)E1 | E1 = n ) // Signed-off-by: Julia Lawall Signed-off-by: Jesse Barnes commit e8de1481fd7126ee9e93d6889da6f00c05e1e019 Author: Arjan van de Ven Date: Wed Oct 22 19:55:31 2008 -0700 resource: allow MMIO exclusivity for device drivers Device drivers that use pci_request_regions() (and similar APIs) have a reasonable expectation that they are the only ones accessing their device. As part of the e1000e hunt, we were afraid that some userland (X or some bootsplash stuff) was mapping the MMIO region that the driver thought it had exclusively via /dev/mem or via various sysfs resource mappings. This patch adds the option for device drivers to cause their reserved regions to the "banned from /dev/mem use" list, so now both kernel memory and device-exclusive MMIO regions are banned. NOTE: This is only active when CONFIG_STRICT_DEVMEM is set. In addition to the config option, a kernel parameter iomem=relaxed is provided for the cases where developers want to diagnose, in the field, drivers issues from userspace. Reviewed-by: Matthew Wilcox Signed-off-by: Arjan van de Ven Signed-off-by: Jesse Barnes commit 23616941914917cf25b94789856b5326b68d8ee8 Author: Andrew Patterson Date: Mon Nov 10 15:31:10 2008 -0700 ACPI/PCI: remove obsolete _OSC capability support functions The acpi_query_osc, __pci_osc_support_set, pci_osc_support_set, and pcie_osc_support_set functions have been obsoleted in favor of setting these capabilities during root bridge discovery with pci_acpi_osc_support. There are no longer any callers of these functions, so remove them. Signed-off-by: Andrew Patterson Signed-off-by: Jesse Barnes commit 07ae95f988a34465bdcb384bfa73c03424fe2312 Author: Andrew Patterson Date: Mon Nov 10 15:31:05 2008 -0700 ACPI/PCI: PCI MSI _OSC support capabilities called when root bridge added The _OSC capability OSC_MSI_SUPPORT is set when the root bridge is added with pci_acpi_osc_support(), so we no longer need to do it in the PCI MSI driver. Also adds the function pci_msi_enabled, which returns true if pci=nomsi is not on the kernel command-line. Signed-off-by: Andrew Patterson Signed-off-by: Jesse Barnes commit eb9188bdb9d65aeead2382ec3dd656a17ec8936d Author: Andrew Patterson Date: Mon Nov 10 15:31:00 2008 -0700 ACPI/PCI: PCIe AER _OSC support capabilities called when root bridge added The _OSC capability OSC_EXT_PCI_CONFIG_SUPPORT is set when the root bridge is added with pci_acpi_osc_support(), so we no longer need to do it in the PCIe AER driver. Signed-off-by: Andrew Patterson Signed-off-by: Jesse Barnes commit 3e1b16002af29758b6bc9c38939d43838d9335bc Author: Andrew Patterson Date: Mon Nov 10 15:30:55 2008 -0700 ACPI/PCI: PCIe ASPM _OSC support capabilities called when root bridge added The _OSC capabilities OSC_ACTIVE_STATE_PWR_SUPPORT and OSC_CLOCK_PWR_CAPABILITY_SUPPORT are set when the root bridge is added with pci_acpi_osc_support(), so we no longer need to do it in the ASPM driver. Also add the function pcie_aspm_enabled, which returns true if pcie_aspm=off is not on the kernel command-line. Signed-off-by: Andrew Patterson Signed-off-by: Jesse Barnes commit 0ef5f8f6159e44b4faa997be08d1a3bcbf44ad08 Author: Andrew Patterson Date: Mon Nov 10 15:30:50 2008 -0700 ACPI/PCI: PCI extended config _OSC support called when root bridge added The _OSC capability OSC_EXT_PCI_CONFIG_SUPPORT is set when the root bridge is added with pci_acpi_osc_support() if we can access PCI extended config space. This adds the function pci_ext_cfg_avail which returns true if we can access PCI extended config space (offset greater than 0xff). It currently only returns false if arch=x86 and raw_pci_ext_ops is not set (which might happen if pci=nommcfg is set on the kernel command-line). Signed-off-by: Andrew Patterson Signed-off-by: Jesse Barnes commit 990a7ac5645883a833a11b900bb6f25b65dea65b Author: Andrew Patterson Date: Mon Nov 10 15:30:45 2008 -0700 ACPI/PCI: call _OSC support during root bridge discovery Add pci_acpi_osc_support() and call it when a PCI bridge is added. This allows us to avoid having every individual PCI root bridge driver call _OSC support for every root bridge in their probe functions, a significant savings in boot time. Signed-off-by: Matthew Wilcox Signed-off-by: Jesse Barnes commit 8b62091e20215730be1b94b7cd135a78a3e692ca Author: Andrew Patterson Date: Mon Nov 10 15:30:40 2008 -0700 ACPI/PCI: include missing acpi.h file in pci-acpi.h. The pci-acpi.h file will not compile without including linux/acpi.h. Signed-off-by: Matthew Wilcox Signed-off-by: Jesse Barnes commit d3a54014e2a94bd37b7dee5e76e03f7bc4fab49a Author: Benjamin Herrenschmidt Date: Wed Nov 12 14:38:53 2008 +1100 PCI: Add legacy_io/mem to all busses Currently, only PHBs get the legacy_* files, which makes it tricky for userland to get access to the legacy space. This commit exposes them in every bus, since even child buses may forward legacy cycles if configured properly. Signed-off-by: Benjamin Herrenschmidt Signed-off-by: Jesse Barnes commit 1ca887970a3971a22e4875b7c6ad5ae3ce49f61a Author: Sheng Yang Date: Tue Nov 11 17:17:48 2008 +0800 PCI: Extend pci_reset_function() to support PCI Advanced Features Some PCI devices implement PCI Advanced Features, which means they support Function Level Reset(FLR). Implement support for that in pci_reset_function. Signed-off-by: Sheng Yang Signed-off-by: Jesse Barnes commit f7b7baae6b30ff04124259ff8d7c0c0d281320e6 Author: Sheng Yang Date: Tue Nov 11 17:17:46 2008 +0800 PCI: add PCI Advanced Feature Capability defines PCI Advanced Features Capability is introduced by "Conventional PCI Advanced Caps ECN" (can be downloaded in pcisig.com). Add defines for the various AF capabilities, including function level reset (FLR). Reviewed-by: Matthew Wilcox Signed-off-by: Sheng Yang Signed-off-by: Jesse Barnes commit d91cdc745524a1b1ff537712a62803b8413c12d6 Author: Sheng Yang Date: Tue Nov 11 17:17:47 2008 +0800 PCI: Refactor pci_reset_function() Separate out function level reset so that pci_reset_function can be more easily extended. Signed-off-by: Sheng Yang Signed-off-by: Jesse Barnes commit 1a9271331ab663f3c7cda78d86b884f2ea86d4d7 Author: Kay Sievers Date: Thu Oct 30 02:17:49 2008 +0100 PCI: struct device - replace bus_id with dev_name(), dev_set_name() This patch is part of a larger patch series which will remove the "char bus_id[20]" name string from struct device. The device name is managed in the kobject anyway, and without any size limitation, and just needlessly copied into "struct device". To set and read the device name dev_name(dev) and dev_set_name(dev) must be used. If your code uses static kobjects, which it shouldn't do, "const char *init_name" can be used to statically provide the name the registered device should have. At registration time, the init_name field is cleared, to enforce the use of dev_name(dev) to access the device name at a later time. We need to get rid of all occurrences of bus_id in the entire tree to be able to enable the new interface. Please apply this patch, and possibly convert any remaining remaining occurrences of bus_id. Acked-by: Greg Kroah-Hartman Signed-Off-By: Kay Sievers Signed-off-by: Jesse Barnes commit bfb0f330a6c833fd12c35b907434256b4211a1dc Author: Jesse Barnes Date: Mon Oct 27 17:50:21 2008 -0700 PCI: fixup whitespace in quirks.c Had a space before tab in do_fixups, prototype wasn't wrapped properly either. Signed-off-by: Jesse Barnes commit c7b4fee3808a061ee0e704ba596ace56bf65a83d Author: Kenji Kaneshige Date: Fri Oct 24 14:26:35 2008 +0900 PCI hotplug: pciehp: remove unnecessary wait after turning power off The pciehp driver waits for 1000 msec after turning power off to make sure the power has been completely removed. But this 1000 msec wait is not needed if a slot doesn't implement power control because software cannot control the power. Power will be automatically removed at adapter removal time on such a slot Tested-by: "Phil Endecott" Signed-off-by: Kenji Kaneshige Signed-off-by: Jesse Barnes commit 9eff02e2042f96fb2aedd02e032eca1c5333d767 Author: Jesse Barnes Date: Fri Oct 24 10:32:33 2008 -0700 PCI: check mmap range of /proc/bus/pci files too /proc/bus/pci allows you to mmap resource ranges too, so we should probably be checking to make sure the mapping is somewhat valid. Uses the same code as the recent sysfs mmap range checking patch from Linus. Acked-by: David Miller Signed-off-by: Jesse Barnes commit 8a70da82edc50aa7a4b54864babf2d72538ba1bb Author: Inaky Perez-Gonzalez Date: Sat Dec 20 16:58:00 2008 -0800 wimax/i2400m: add CREDITS and MAINTAINERS entries This patch adds entries for the original developers of the i2400m drivers and up-to-date maintainer entries. Signed-off-by: Inaky Perez-Gonzalez Signed-off-by: Greg Kroah-Hartman commit e30698743419d20dce03d033761f203b4d847ab0 Author: Inaky Perez-Gonzalez Date: Sat Dec 20 16:57:59 2008 -0800 wimax: export linux/wimax.h and linux/wimax/i2400m.h with headers_install These two files are what user space can use to establish communication with the WiMAX kernel API and to speak the Intel 2400m Wireless WiMAX connection's control protocol. Signed-off-by: Inaky Perez-Gonzalez Cc: David Woodhouse Signed-off-by: Greg Kroah-Hartman commit 143ee2d5557c0598a97f3089eb29e8226e0e8cee Author: Inaky Perez-Gonzalez Date: Tue Dec 23 16:18:48 2008 -0800 i2400m: Makefile and Kconfig Integrate the i2400m driver into the kernel's build and Kconfig. Signed-off-by: Inaky Perez-Gonzalez Signed-off-by: Greg Kroah-Hartman commit 514ec71f7289c942f801bdbd309428c470bfc071 Author: Inaky Perez-Gonzalez Date: Sat Dec 20 16:57:57 2008 -0800 i2400m/SDIO: TX and RX path backends Implements the backend so that the generic driver can TX/RX to/from the SDIO device. For RX, when data is ready the SDIO IRQ is fired and that will allocate an skb, put all the data there and then pass it to the generic driver RX code for processing and delivery. TX, when kicked by the generic driver, will schedule work on a driver-specific workqueue that pulls data from the TX FIFO and sends it to the device until it drains it. Thread contexts are needed as SDIO functions are blocking. Signed-off-by: Inaky Perez-Gonzalez Signed-off-by: Greg Kroah-Hartman commit 020bb6f30b636d563d4268116107d592550ddd0c Author: Inaky Perez-Gonzalez Date: Sat Dec 20 16:57:56 2008 -0800 i2400m/SDIO: firmware upload backend This implements the backends for the generic driver (i2400m) to be able to load firmware to the SDIO device. Signed-off-by: Inaky Perez-Gonzalez Signed-off-by: Greg Kroah-Hartman commit a0848826bfaf0815ec9654d78c218a40f755ccd4 Author: Inaky Perez-Gonzalez Date: Sat Dec 20 16:57:55 2008 -0800 i2400m/SDIO: probe/disconnect, dev init/shutdown and reset backends Implements probe/disconnect for the SDIO device, as well as main backends for the generic driver to control the SDIO device (bus_dev_start(), bus_dev_stop() and bus_reset()). Signed-off-by: Inaky Perez-Gonzalez Signed-off-by: Greg Kroah-Hartman commit 17d559af963995e483a51ec26697034431bcf2b9 Author: Inaky Perez-Gonzalez Date: Sat Dec 20 16:57:54 2008 -0800 i2400m/SDIO: header for the SDIO subdriver This contains the common function declaration and constants for the SDIO driver for the 2400m Wireless WiMAX Connection and it's debug level settings. Signed-off-by: Inaky Perez-Gonzalez Signed-off-by: Greg Kroah-Hartman commit a8ebf98f541463107bb9544a1b611981dc2477e7 Author: Inaky Perez-Gonzalez Date: Sat Dec 20 16:57:53 2008 -0800 i2400m/USB: TX and RX path backends Implements the backend so that the generic driver can TX/RX to/from the USB device. TX is implemented with a kthread sitting in a never-ending loop that when kicked by the generic driver's TX code will pull data from the TX FIFO and send it to the device until it drains it. Then it goes back sleep, waiting for another kick. RX is implemented in a similar fashion, but reads are kicked in by the device notifying in the interrupt endpoint that data is ready. Device reset notifications are also sent via the notification endpoint. We need a thread contexts to run USB autopm functions (blocking) and to process the received data (can get to be heavy in processing time). Signed-off-by: Inaky Perez-Gonzalez Signed-off-by: Greg Kroah-Hartman commit 795038107b0078ee5ad3ad33327fe1c3520f6bf2 Author: Inaky Perez-Gonzalez Date: Sat Dec 20 16:57:52 2008 -0800 i2400m/USB: firmware upload backend This implements the backends for the generic driver (i2400m) to be able to load firmware to the USB device. Signed-off-by: Inaky Perez-Gonzalez Signed-off-by: Greg Kroah-Hartman commit f398e4240fce962d0dd74dc11c59fe20860e7a71 Author: Inaky Perez-Gonzalez Date: Sat Dec 20 16:57:51 2008 -0800 i2400m/USB: probe/disconnect, dev init/shutdown and reset backends Implements probe/disconnect for the USB device, as well as main backends for the generic driver to control the USB device (bus_dev_start(), bus_dev_stop() and bus_reset()). Signed-off-by: Inaky Perez-Gonzalez Signed-off-by: Greg Kroah-Hartman commit 11a7d0e3140d2f3e8052a856e8582ce9b021972c Author: Inaky Perez-Gonzalez Date: Sat Dec 20 16:57:50 2008 -0800 i2400m/USB: header for the USB bus driver This contains the common function declaration and constants for the USB driver for the 2400m Wireless WiMAX Connection, as well as it's debug level settings. Signed-off-by: Inaky Perez-Gonzalez Signed-off-by: Greg Kroah-Hartman commit c71228caf91ec6320b489dec5cd0087b64da9fb5 Author: Inaky Perez-Gonzalez Date: Sat Dec 20 16:57:49 2008 -0800 i2400m: debugfs controls Expose knobs to control the device (induce reset, power saving, querying tx or rx stats, internal debug information and debug level manipulation). Signed-off-by: Inaky Perez-Gonzalez Signed-off-by: Greg Kroah-Hartman commit 3a35a1d0bdf7cc32cddc234b956605e6d4db4673 Author: Inaky Perez-Gonzalez Date: Sat Dec 20 16:57:48 2008 -0800 i2400m: various functions for device management This is a collection of functions used to control the device (plus a few helpers). There are utilities for handling TLV buffers, hooks on the device's reports to act on device changes of state [i2400m_report_hook()], on acks to commands [i2400m_msg_ack_hook()], a helper for sending commands to the device and blocking until a reply arrives [i2400m_msg_to_dev()], a few high level commands for manipulating the device state, powersaving mode and configuration plus the routines to setup the device once communication is established with it [i2400m_dev_initialize()]. Signed-off-by: Inaky Perez-Gonzalez Signed-off-by: Greg Kroah-Hartman commit aa5a7acabe31ec27a212cbd25cad9f72aa476591 Author: Inaky Perez-Gonzalez Date: Sat Dec 20 16:57:47 2008 -0800 i2400m: RX and TX data/control paths Handling of TX/RX data to/from the i2400m device (IP packets, control and diagnostics). On RX, this parses the received read transaction from the device, breaks it in chunks and passes it to the corresponding subsystems (network and control). Transmission to the device is done through a software FIFO, as data/control frames can be coalesced (while the device is reading the previous tx transaction, others accumulate). A FIFO is used because at the end it is resource-cheaper that scatter/gather over USB. As well, most traffic is going to be download (vs upload). Signed-off-by: Inaky Perez-Gonzalez Signed-off-by: Greg Kroah-Hartman commit 467cc396fb4665957bc7d182c96e45a4d7c575e4 Author: Inaky Perez-Gonzalez Date: Sat Dec 20 16:57:46 2008 -0800 i2400m: firmware loading and bootrom initialization Implements the firmware loader (using the bus-specific driver's backends for the actual upload). The most critical thing in here is the piece that puts the device in boot-mode from any other (undetermined) state, otherwise, it is just pushing the bytes from the firmware file to the device. Signed-off-by: Inaky Perez-Gonzalez Signed-off-by: Greg Kroah-Hartman commit ce6cde92803e961d95ddacdf74bd8b067f82f7d4 Author: Inaky Perez-Gonzalez Date: Sat Dec 20 16:57:45 2008 -0800 i2400m: linkage to the networking stack Implementation of the glue to the network stack so the WiMAX device shows up as an Ethernet device. Initially we shot for implementing a Pure IP device -- however, the world seems to turn around Ethernet devices. Main issues were with the ISC DHCP client and servers (as they don't understand types other than Ethernet and Token Ring). We proceeded to register with IANA the PureIP hw type, so that DHCP requests could declare such. We also created patches to the main ISC DHCP versions to support it. However, until all that permeates into deployments, there is going to be a long time. So we moved back to wrap Ethernet frames around the PureIP device. At the time being this has overhead; we need to reallocate with space for an Ethernet header. The reason is the device-to-host protocol coalesces many network packets into a single message, so we can't introduce Ethernet headers without overwriting valid data from other packets. Coming-soon versions of the firmware have this issue solved. Signed-off-by: Inaky Perez-Gonzalez Signed-off-by: Greg Kroah-Hartman commit 024f7f31ed15c471f80408d8b5045497e27e1135 Author: Inaky Perez-Gonzalez Date: Sat Dec 20 16:57:44 2008 -0800 i2400m: Generic probe/disconnect, reset and message passing Implements the generic probe and disconnect functions that will be called by the USB and SDIO driver's probe/disconnect functions. Implements the backends for the WiMAX stack's basic operations: message passing, rfkill control and reset. Signed-off-by: Inaky Perez-Gonzalez Signed-off-by: Greg Kroah-Hartman commit ea24652d253eabfb83e955e55ce032228d9d99b9 Author: Inaky Perez-Gonzalez Date: Sat Dec 20 16:57:43 2008 -0800 i2400m: host/device procotol and core driver definitions The wimax/i2400m.h defines the structures and constants for the host-device protocols: - boot / firmware upload protocol - general data transport protocol - control protocol It is done in such a way that can also be used verbatim by user space. drivers/net/wimax/i2400m.h defines all the APIs used by the core, bus-generic driver (i2400m) and the bus specific drivers (i2400m-BUSNAME). It also gives a roadmap to the driver implementation. debug-levels.h adds the core driver's debug settings. Signed-off-by: Inaky Perez-Gonzalez Signed-off-by: Greg Kroah-Hartman commit 3e91029ae049852c153da3fc355ab255ea7e2e0a Author: Inaky Perez-Gonzalez Date: Sat Dec 20 16:57:42 2008 -0800 i2400m: documentation and instructions for usage The driver for the i2400m is a stacked driver. There is a core driver, the bus-generic driver that has no knowledge or dependencies on how the device is connected to the system; it only knows how to speak the device protocol. Then there are the bus-specific drivers (for USB and SDIO) that provide backends for the generic driver to communicate with the device. The bus generic driver connects to the network and WiMAX stacks on the top side, and on the bottom to the bus-specific drivers. Signed-off-by: Inaky Perez-Gonzalez Signed-off-by: Greg Kroah-Hartman commit b0c83ae1de01880075955c7224e751440688ec74 Author: Inaky Perez-Gonzalez Date: Tue Dec 23 16:18:24 2008 -0800 wimax: Makefile, Kconfig and docbook linkage for the stack This patch provides Makefile and KConfig for the WiMAX stack, integrating them into the networking stack's Makefile, Kconfig and doc-book templates. Signed-off-by: Inaky Perez-Gonzalez Signed-off-by: Greg Kroah-Hartman commit 617209ccf73b571953cf4c76519c65a5e52d15fd Author: Inaky Perez-Gonzalez Date: Sat Dec 20 16:57:40 2008 -0800 wimax: debugfs controls Expose knobs to control the stack's debug output. Signed-off-by: Inaky Perez-Gonzalez Signed-off-by: Greg Kroah-Hartman commit 3e65646bb12be03b14dff53907391095a52d5f49 Author: Inaky Perez-Gonzalez Date: Sat Dec 20 16:57:38 2008 -0800 wimax: basic API: kernel/user messaging, rfkill and reset Implements the three basic operations provided by the stack's control interface to WiMAX devices: - Messaging channel between user space and driver/device This implements a direct communication channel between user space and the driver/device, by which free form messages can be sent back and forth. This is intended for device-specific features, vendor quirks, etc. - RF-kill framework integration Provide most of the RF-Kill integration for WiMAX drivers so that all device drivers have to do is after wimax_dev_add() is call wimax_report_rfkill_{hw,sw}() to update initial state and then every time it changes. Provides wimax_rfkill() for the kernel to call to set software RF-Kill status and/or query current hardware and software switch status. Exports wimax_rfkill() over generic netlink to user space. - Reset a WiMAX device Provides wimax_reset() for the kernel to reset a wimax device as needed and exports it over generic netlink to user space. This API is clearly limited, as it still provides no way to do the basic scan, connect and disconnect in a hardware independent way. The WiMAX case is more complex than WiFi due to the way networks are discovered and provisioned. The next developments are to add the basic operations so they can be offerent by different drivers. However, we'd like to get more vendors to jump in and provide feedback of how the user/kernel API/abstraction layer should be. The user space code for the i2400m, as of now, uses the messaging channel, but that will change as the API evolves. Signed-off-by: Inaky Perez-Gonzalez Signed-off-by: Greg Kroah-Hartman commit 3efb40c2c6eea315abcf19239c15d088e2498299 Author: Inaky Perez-Gonzalez Date: Sat Dec 20 16:57:37 2008 -0800 genetlink: export genl_unregister_mc_group() Add an EXPORT_SYMBOL() to genl_unregister_mc_group(), to allow unregistering groups on the run. EXPORT_SYMBOL_GPL() is not used as the rest of the functions exported by this module (eg: genl_register_mc_group) are also not _GPL(). Cleanup is currently done when unregistering a family, but there is no way to unregister a single multicast group due to that function not being exported. Seems to be a mistake as it is documented as for external consumption. This is needed by the WiMAX stack to be able to cleanup unused mc groups. Signed-off-by: Inaky Perez-Gonzalez Acked-by: Johannes Berg Signed-off-by: Greg Kroah-Hartman commit 15530dfd330bd19d14e096f88c70355a61fda3f2 Author: Inaky Perez-Gonzalez Date: Sat Dec 20 16:57:36 2008 -0800 wimax: generic device management (registration, deregistration, lookup) Implements the basic life cycles of a 'struct wimax_dev', some common generic netlink functionality for marshalling calls to user space, and the device state machine. For looking up net devices based on their generic netlink family IDs, use a low overhead method that optimizes for the case where most systems have a single WiMAX device, or at most, a very low number of WiMAX adaptors. Signed-off-by: Inaky Perez-Gonzalez Signed-off-by: Greg Kroah-Hartman commit ea912f4e7f264981faf8665cfb63d46d7f948117 Author: Inaky Perez-Gonzalez Date: Sat Dec 20 16:57:35 2008 -0800 wimax: debug macros and debug settings for the WiMAX stack This file contains a simple debug framework that is used in the stack; it allows the debug level to be controlled at compile-time (so the debug code is optimized out) and at run-time (for what wasn't compiled out). This is eventually going to be moved to use dynamic_printk(). Just need to find time to do it. Signed-off-by: Inaky Perez-Gonzalez Signed-off-by: Greg Kroah-Hartman commit 60fa9ca6cfff2be4132ea93b7dd632801ec0c817 Author: Inaky Perez-Gonzalez Date: Sat Dec 20 16:57:34 2008 -0800 wimax: internal API for the kernel space WiMAX stack This file contains declarations and definitions used by the different submodules of the stack. Signed-off-by: Inaky Perez-Gonzalez Signed-off-by: Greg Kroah-Hartman commit ace22f0881e1333d0c55ddf484e5352fe03a806a Author: Inaky Perez-Gonzalez Date: Sat Dec 20 16:57:33 2008 -0800 wimax: headers for kernel API and user space interaction Definitions for the user/kernel API protocol through generic netlink. User space can copy it verbatim and use it. Kernel API definition declares the main data types and calls for the drivers to integrate into the WiMAX stack. Provides usage documentation. Signed-off-by: Inaky Perez-Gonzalez Signed-off-by: Greg Kroah-Hartman commit 0d695913b0016b362a84a8bb6d6e28f8d90a70e2 Author: Inaky Perez-Gonzalez Date: Sat Dec 20 16:57:32 2008 -0800 wimax: documentation for the stack wimax documentation Signed-off-by: Inaky Perez-Gonzalez Signed-off-by: Greg Kroah-Hartman commit 5e07878787ad07361571150230cc3a8d522ae046 Author: Inaky Perez-Gonzalez Date: Sat Dec 20 16:57:39 2008 -0800 debugfs: add helpers for exporting a size_t simple value In the same spirit as debugfs_create_*(), introduce helpers for exporting size_t values over debugfs. The only trick done is that the format verifier is kept at %llu instead of %zu; otherwise type warnings would pop up: format ‘%zu’ expects type ‘size_t’, but argument 2 has type ‘long long unsigned int’ There is no real way to fix this one--however, we can consider %llu and %zu to be compatible if we consider that we are using the same for validating in debugfs_create_{x,u}{8,16,32}(). Signed-off-by: Inaky Perez-Gonzalez Signed-off-by: Greg Kroah-Hartman commit 34c65d82e02147331701c7795e3144d511adf4e9 Author: Greg Kroah-Hartman Date: Mon Aug 18 13:21:04 2008 -0700 USB: remove info() macro from usb.h USB should not be having it's own printk macros, so remove info() and use the system-wide standard of dev_info() wherever possible. No one in the tree is using the macro, so it can now be removed. Signed-off-by: Greg Kroah-Hartman commit 338b67b0c1a97ca705023a8189cf41aa0828d294 Author: Greg Kroah-Hartman Date: Thu Aug 14 09:37:34 2008 -0700 USB: remove warn() macro from usb.h USB should not be having it's own printk macros, so remove warn() and use the system-wide standard of dev_warn() wherever possible. In the few places that will not work out, use a basic printk(). Now that all in-tree users are gone, remove the macro. Signed-off-by: Greg Kroah-Hartman commit 5aa637505fb8610cd2724b09fa0ab03fd6cdca63 Author: Greg Kroah-Hartman Date: Wed Dec 3 22:30:04 2008 -0800 USB: add siemens_mpi usb-serial "stub" driver This driver got rescued from a few years ago and was requested to be added. So I cleaned it up, ported it to the latest kernel version and here it is. Cc: Thomas Hergenhahn Cc: Emmanuele Signed-off-by: Greg Kroah-Hartman commit 57262b82d601c5ca8e3db219aebd332950f62ba1 Author: Greg Kroah-Hartman Date: Mon Nov 3 13:27:03 2008 -0800 USB: add new opticon serial driver This is for the serial mode of the Opticon barcode scanner. Cc: Kees Stoop Signed-off-by: Greg Kroah-Hartman commit 327d74f6b65ddc8a042c43c11fdd4be0bb354668 Author: Marcin Slusarz Date: Sun Jan 4 13:25:13 2009 +0100 USB: emi26: fix oops on load Fix oops introduced by commit ae93a55bf948753de0bb8e43fa9c027f786abb05 (emi26: use request_firmware()): usb 1-1: new full speed USB device using uhci_hcd and address 2 usb 1-1: configuration #1 chosen from 1 choice emi26 - firmware loader 1-1:1.0: emi26_probe start usb 1-1: firmware: requesting emi26/loader.fw usb 1-1: firmware: requesting emi26/bitstream.fw usb 1-1: firmware: requesting emi26/firmware.fw usb 1-1: emi26_set_reset - 1 usb 1-1: emi26_set_reset - 0 BUG: unable to handle kernel NULL pointer dereference at 00000000 IP: [] emi26_probe+0x2f7/0x620 [emi26] *pde = 00000000 Oops: 0000 [#1] SMP last sysfs file: /sys/devices/pci0000:00/0000:00:1d.0/usb1/1-1/firmware/1-1/loading Modules linked in: emi26(+) ipv6 cpufreq_ondemand coretemp arc4 ecb iwl3945 irtty_sir sir_dev nsc_ircc ehci_hcd uhci_hcd mac80211 irda usbcore snd_hda_intel thinkpad_acpi rfkill hwmon led_class e1000e snd_pcm cfg80211 snd_timer crc_ccitt snd snd_page_alloc aes_generic Pid: 5082, comm: modprobe Not tainted (2.6.28 #2) 17023QG EIP: 0060:[] EFLAGS: 00010206 CPU: 0 EIP is at emi26_probe+0x2f7/0x620 [emi26] EAX: 0000015c EBX: 00000000 ECX: c1ffd9c0 EDX: 00000000 ESI: 0000015c EDI: f6bb215c EBP: f6bb0400 ESP: f00ebcfc DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068 Process modprobe (pid: 5082, ti=f00ea000 task=f5c7c700 task.ti=f00ea000) Stack: 0000015c 000000a5 f6a67cb8 f80dc7e0 c01c6262 fbef2986 f6bb2000 00008fe0 0000015c f715f748 f715f740 f715f738 f715f748 f6a67c00 f80dd040 f80dcfc0 f6bb0400 fbacb290 f6a67c94 fbae0160 c01c70bf 00000000 f6a67c1c 00000000 Call Trace: [] sysfs_add_one+0x12/0x50 [] usb_probe_interface+0xa0/0x140 [usbcore] [] sysfs_create_link+0xf/0x20 [] driver_probe_device+0x82/0x180 [] usb_match_id+0x3b/0x50 [usbcore] [] __driver_attach+0x7e/0x80 [] bus_for_each_dev+0x3a/0x60 [] driver_attach+0x16/0x20 [] __driver_attach+0x0/0x80 [] bus_add_driver+0x1a1/0x220 [] driver_register+0x4d/0x120 [] idr_get_empty_slot+0xf2/0x290 [] usb_register_driver+0x81/0x100 [usbcore] [] emi26_init+0x0/0x14 [emi26] [] do_one_initcall+0x36/0x1b0 [] sysfs_ilookup_test+0x0/0x10 [] ifind+0x31/0x90 [] __sysfs_add_one+0x59/0x80 [] sysfs_addrm_finish+0x14/0x1c0 [] __vunmap+0xa3/0xd0 [] load_module+0x1544/0x1640 [] sys_init_module+0x87/0x1b0 [] sys_read+0x41/0x70 [] sysenter_do_call+0x12/0x21 [] wait_for_common+0x40/0x110 Code: 66 c1 e8 08 66 09 d0 75 a5 31 d2 89 e8 e8 72 fc ff ff 85 c0 0f 88 9a 02 00 00 b8 fa 00 00 00 e8 30 46 05 c8 8b 74 24 28 8b 5e 04 <8b> 03 89 44 24 1c 0f c8 89 44 24 1c 0f b7 4b 04 c7 44 24 20 00 EIP: [] emi26_probe+0x2f7/0x620 [emi26] SS:ESP 0068:f00ebcfc ---[ end trace 2eefa13825431230 ]--- After the last "package" of firmware data is sent to the device, we dereference NULL pointer (on access to rec->addr). Fix it. Reported--by: David Flatz Tested-by: David Flatz Signed-off-by: Marcin Slusarz Cc: David Woodhouse Cc: stable [2.6.27, 2.6.28] Signed-off-by: Greg Kroah-Hartman commit 32e7fea282b3765c64b935fa54f20ace437550a0 Author: SangSu Park Date: Fri Jan 2 01:11:14 2009 +0900 USB: Fix goku_udc usb speed handling The usb gadget framework revealed weakness in the godu_udc gadget driver register function. Instead of checking if speed asked for was USB_LOW_SPEED upon usb_gadget_register() to deny service, it checked only for USB_FULL_SPEED, thus denying service to usb high speed capable gadgets. Signed-off-by: SangSu Park Acked-by: David Brownell Signed-off-by: Greg Kroah-Hartman commit ed0c7720d23d5c82787e17cb02b28ca9eb11853d Author: Mark Lord Date: Fri Jan 2 02:48:24 2009 -0500 USB: fix minor nit in usbfs checking One minor nit did show up, though. The patch below seems to make more sense than the code does without it. Signed-off-by: Mark Lord Signed-off-by: Greg Kroah-Hartman commit 2caf7fcdb8532045680f06b67b9e63f0c9613aaa Author: Alan Stern Date: Wed Dec 31 11:31:33 2008 -0500 USB: re-enable interface after driver unbinds This patch (as1197) fixes an error introduced recently. Since a significant number of devices can't handle Set-Interface requests, we no longer call usb_set_interface() when a driver unbinds from an interface, provided the interface is already in altsetting 0. However the interface still does get disabled, and the call to usb_set_interface() was the only thing re-enabling it. Since the interface doesn't get re-enabled, further attempts to use it fail. So the patch adds a call to usb_enable_interface() when a driver unbinds and the interface is in altsetting 0. For this to work right, the interface's endpoints have to be re-enabled but their toggles have to be left alone. Therefore an additional argument is added to usb_enable_endpoint() and usb_enable_interface(), a flag indicating whether or not the endpoint toggles should be reset. This is a forward-ported version of a patch which fixes Bugzilla #12301. Signed-off-by: Alan Stern Reported-by: David Roka Reported-by: Erik Ekman Tested-by: Erik Ekman Tested-by: Alon Bar-Lev Signed-off-by: Greg Kroah-Hartman commit df718962bf91c7bd345060aadaa24b03f6140b07 Author: Alan Stern Date: Fri Dec 19 10:27:56 2008 -0500 USB: cancel pending Set-Config requests if userspace gets there first This patch (as1195) eliminates a potential problem identified by Oliver Neukum. When a driver queues an asynchronous Set-Config request using usb_driver_set_configuration(), the request should be cancelled if userspace changes the configuration first. The patch introduces a linked list of pending async Set-Config requests, and uses it to invalidate the requests for a particular device whenever that device's configuration is set. Signed-off-by: Alan Stern Cc: Oliver Neukum Signed-off-by: Greg Kroah-Hartman commit 6fd9086a518d4f14213a32fe6c9ac17fabebbc1e Author: Alan Stern Date: Wed Dec 17 17:20:38 2008 -0500 USB: automatically enable wakeup for PCI host controllers This patch (as1193b) enables wakeup during initialization for all PCI host controllers, and it removes some code (and comments!) that are no longer needed now that the PCI core automatically initializes wakeup settings for all new devices. The idea is that the bus should initialize wakeup, and the bus glue or controller driver should enable it. Signed-off-by: Alan Stern Signed-off-by: Greg Kroah-Hartman commit a0d4922da2e4ccb0973095d8d29f36f6b1b5f703 Author: Alan Stern Date: Wed Dec 17 15:06:03 2008 -0500 USB: fix up suspend and resume for PCI host controllers This patch (as1192) rearranges the USB PCI host controller suspend and resume and resume routines: Use pci_wake_from_d3() for enabling and disabling wakeup, instead of pci_enable_wake(). Carry out the actual state change while interrupts are disabled. Change the order of the preparations to agree with the general recommendation for PCI devices, instead of messing around with the wakeup settings while the device is in D3. In .suspend: Call the underlying driver to disable IRQ generation; pci_wake_from_d3(device_may_wakeup()); pci_disable_device(); In .suspend_late: pci_save_state(); pci_set_power_state(D3hot); (for PPC_PMAC) Disable ASIC clocks In .resume_early: (for PPC_PMAC) Enable ASIC clocks pci_set_power_state(D0); pci_restore_state(); In .resume: pci_enable_device(); pci_set_master(); pci_wake_from_d3(0); Call the underlying driver to reenable IRQ generation Add the necessary .suspend_late and .resume_early method pointers to the PCI host controller drivers. Signed-off-by: Alan Stern CC: Rafael J. Wysocki Signed-off-by: Greg Kroah-Hartman commit a81a81a25d3ecdab777abca87c5ddf484056103d Author: Alan Stern Date: Thu Dec 18 16:41:49 2008 -0500 USB: storage: set CAPACITY_HEURISTICS flag for bad vendors This patch (as1194) makes usb-storage set the CAPACITY_HEURISTICS flag for all devices made by Nokia, Nikon, or Motorola. These companies seem to include the READ CAPACITY bug in all of their devices. Since cell phones and digital cameras rely on flash storage, which always has an even number of sectors, setting CAPACITY_HEURISTICS shouldn't cause any problems. Not even if the companies wise up and start making devices without the bug. A large number of unusual_devs entries are now unnecessary, so the patch removes them. Signed-off-by: Alan Stern Cc: stable Signed-off-by: Greg Kroah-Hartman commit c838ea4626d6e982489ff519f9ecf5e1649ca90b Author: Alan Stern Date: Mon Dec 15 10:40:06 2008 -0500 USB: storage: make the "quirks=" module parameter writable This patch (as1190) makes usb-storage's "quirks=" module parameter writable, so that users can add entries for their devices at runtime with no need to reboot or reload usb-storage. New codes are added for the SANE_SENSE, CAPACITY_HEURISTICS, and CAPACITY_OK flags. Signed-off-by: Alan Stern Signed-off-by: Greg Kroah-Hartman commit 25ff1c316f6a763f1eefe7f8984b2d8c03888432 Author: Alan Stern Date: Mon Dec 15 12:43:41 2008 -0500 USB: storage: add last-sector hacks This patch (as1189b) adds some hacks to usb-storage for dealing with the growing problems involving bad capacity values and last-sector accesses: A new flag, US_FL_CAPACITY_OK, is created to indicate that the device is known to report its capacity correctly. An unusual_devs entry for Linux's own File-backed Storage Gadget is added with this flag set, since g_file_storage always reports the correct capacity and since the capacity need not be even (it is determined by the size of the backing file). An entry in unusual_devs.h which has only the CAPACITY_OK flag set shouldn't prejudice libusual, since the device will work perfectly well with either usb-storage or ub. So a new macro, COMPLIANT_DEV, is added to let libusual know about these entries. When a last-sector access succeeds and the total number of sectors is odd (the unexpected case, in which guessing that the number is even might cause trouble), a WARN is triggered. The kerneloops.org project will collect these warnings, allowing us to add CAPACITY_OK flags for the devices in question before implementing the default-to-even heuristic. If users want to prevent the stack dump produced by the WARN, they can disable the hack by adding an unusual_devs entry for their device with the CAPACITY_OK flag. When a last-sector access fails three times in a row and neither the FIX_CAPACITY nor the CAPACITY_OK flag is set, we assume the last-sector bug is present. We replace the existing status and sense data with values that will cause the SCSI core to fail the access immediately rather than retry indefinitely. This should fix the difficulties people have been having with Nokia phones. Signed-off-by: Alan Stern Cc: stable Signed-off-by: Greg Kroah-Hartman commit 9ebd9616648bc0e47e7f8e1898c919305f1e6347 Author: David Brownell Date: Thu Dec 18 12:25:44 2008 -0800 USB: otg: twl4030 transceiver driver Add driver for the high speed USB-OTG transceiver in TI's TWL4030 family of chips. Given this and various other pending patches, OMAP3 hardware like that from beagleboard.org, gumstix.com (Overo), and openpandora.org should now have basic USB host and peripheral connectivity with mainline kernels. Ditto for less widely-available boards. Signed-off-by: David Brownell Signed-off-by: Tony Lindgren Cc: Kevin Hilman Cc: Felipe Balbi Signed-off-by: Greg Kroah-Hartman commit 2a4f136fbdcd89d44d83ed54df2c492a89f5ba9c Author: Darius Augulis Date: Wed Nov 12 13:38:31 2008 -0800 USB: add imx udc gadget driver Implementation of USB device driver integrated in Freescale's i.MXL processor. Adds USB device driver for i.MXL. Signed-off-by: Darius Augulis Signed-off-by: Greg Kroah-Hartman commit 856395d6e137b4e7194972cb7765f3de6a72ba61 Author: Oliver Neukum Date: Thu Dec 18 09:17:49 2008 +0100 USB: extension of anchor API to unpoison an anchor This extension allows unpoisoning an anchor allowing drivers that resubmit URBs to reuse an anchor for methods like resume() Signed-off-by: Oliver Neukum Signed-off-by: Greg Kroah-Hartman commit 42c65396d4f10f25bdab13f8e2f33fe63fa94418 Author: Thomas Hommel Date: Thu Dec 18 10:31:40 2008 +0100 USB: isp1760: don't auto disable Port1 on ISP1761 There is no need to disable port 1 on ISP1761. That port could be used as an OTG port which would require a different init sequence. However we don't have OTG support (yet) so we can use it as a normal USB port. This patch allows port 1 to be used a normal Port on the ISP1761. Signed-off-by: Thomas Hommel Signed-off-by: Sebastian Andrzej Siewior Signed-off-by: Greg Kroah-Hartman commit 281b064f237205053ef1874ffc77b9211265af4c Author: Dan Williams Date: Sun Dec 14 12:39:22 2008 -0500 USB: unusual dev for Option N.V. ZeroCD modems Many newer Option mobile broadband devices initially provide a usb-storage "driver CD" device that's pretty useless on Linux since any software on it most likely wouldn't be compatible with your kernel or distro anyway. Thus, by default just kill the driver CD device by sending the SCSI 'rezero' command, but allow override of the default behavior via usb-storage module parameter so users can keep the ZeroCD device if they really want to. Inspired by the Sierra TruInstall patch. Signed-off-by: Dan Williams Acked-by: Marcel Holtmann Cc: Peter Henn Cc: Alan Stern Signed-off-by: Greg Kroah-Hartman commit 49367d8f1d9f26482cf7089489e90f0afd0a942c Author: Ming Lei Date: Fri Dec 12 21:38:45 2008 +0800 USB: mark "reject" field of struct urb as atomic_t It is enough to protect accesses to reject field of urb by marking it as atomic_t,also it is the only reason of existence of usb_reject_lock,so remove the lock to make code more clean. Signed-off-by: Ming Lei Acked-off-by: Alan Stern Signed-off-by: Greg Kroah-Hartman commit 3b23dd6f8a718e5339de4f7d86ce76a078b5f771 Author: Alan Stern Date: Fri Dec 5 14:10:34 2008 -0500 USB: utilize the bus notifiers This patch (as1185) makes usbcore take advantage of the bus notifications sent out by the driver core. Now we can create all our device and interface attribute files before the device or interface uevent is broadcast. A side effect is that we no longer create the endpoint "pseudo" devices at the same time as a device or interface is registered -- it seems like a bad idea to try registering an endpoint before the registration of its parent is complete. So the routines for creating and removing endpoint devices have been split out and renamed, and they are called explicitly when needed. A new bitflag is used for keeping track of whether or not the interface's endpoint devices have been created, since (just as with the interface attributes) they vary with the altsetting and hence can be changed at random times. Signed-off-by: Alan Stern Cc: Kay Sievers Signed-off-by: Greg Kroah-Hartman commit b9cef6c31913c34fb1065b1d01e04c3b92c59016 Author: Wu Fengguang Date: Mon Dec 15 15:32:01 2008 +0800 USB: make printk messages more searchable USB: make printk messages more searchable Make USB printk messages long and straightforward. One of these decorated USB error messages cost me non-trivial efforts to locate. Signed-off-by: Wu Fengguang Signed-off-by: Greg Kroah-Hartman commit e22b582e9108b94a8bb59010da3e09709bd39746 Author: Bryan Wu Date: Tue Dec 2 21:33:51 2008 +0200 USB: musb: Kill some compiling warning in musb Blackfin part Signed-off-by: Bryan Wu Signed-off-by: Felipe Balbi Signed-off-by: Greg Kroah-Hartman commit 7833414d4f39009d4d04e96648a099630adf3f62 Author: Bryan Wu Date: Tue Dec 2 21:33:50 2008 +0200 USB: musb: Blackfin provides read/write I/O accessor in header files Don't redefine the functions in musb driver Signed-off-by: Bryan Wu Signed-off-by: Felipe Balbi Signed-off-by: Greg Kroah-Hartman commit 085ad4067b5def12bb0e6f50ec65302053d9186d Author: Bryan Wu Date: Tue Dec 2 21:33:49 2008 +0200 USB: musb: add Blackfin Kconfig options and Makefile Signed-off-by: Bryan Wu Signed-off-by: Felipe Balbi Signed-off-by: Greg Kroah-Hartman commit c6cf8b003e5a37f8193c2883876c5942adcd7284 Author: Bryan Wu Date: Tue Dec 2 21:33:48 2008 +0200 USB: musb: add Blackfin specific configuration to MUSB Some config registers are not avaiable in Blackfin, we have to comment them out. v1-v2: - remove Blackfin specific header file - add Blackfin register version to musb_regs.h header file Signed-off-by: Bryan Wu Signed-off-by: Felipe Balbi Signed-off-by: Greg Kroah-Hartman commit 6995eb68aab70e79eedb710d7d6d1f22d8aea4a7 Author: Bryan Wu Date: Tue Dec 2 21:33:47 2008 +0200 USB: musb: enable low level DMA operation for Blackfin - DMA registers in Blackfin have different layout - DMA interrupt flags need to be cleared by software Signed-off-by: Bryan Wu Signed-off-by: Felipe Balbi Signed-off-by: Greg Kroah-Hartman commit 2c557a4a98be67ea54dfd0e8497050a24b7311c6 Author: Bryan Wu Date: Tue Dec 2 21:33:46 2008 +0200 USB: musb: add Blackfin version low level register accessing helper functions add Blackfin version low level register accessing helper functions Signed-off-by: Bryan Wu Signed-off-by: Felipe Balbi Signed-off-by: Greg Kroah-Hartman commit d426e60dbf6aa2c3199e37a59c6d134eb204d628 Author: Robin Getz Date: Tue Dec 2 21:33:45 2008 +0200 USB: musb: Make sure we program the correct values in only when necessary. Make sure we program the correct values in only when necessary. Signed-off-by: Robin Getz Signed-off-by: Bryan Wu Signed-off-by: Felipe Balbi Signed-off-by: Greg Kroah-Hartman commit 0c6a8818447d38f7bb0b0013448659113d37a3e1 Author: Bryan Wu Date: Tue Dec 2 21:33:44 2008 +0200 USB: musb: add Blackfin driver to MUSB framework (v2) - replace MUSB_FIFOSIZE register to MUSB_TXCOUNT, cause no MUSB_FIFOSIZE register on Blackfin - use #ifdef to replace #if defined() Signed-off-by: Bryan Wu Signed-off-by: Felipe Balbi Signed-off-by: Greg Kroah-Hartman commit 2ffcdb3bdadaf8260986e96384df26c94a6ad42c Author: Bryan Wu Date: Tue Dec 2 21:33:43 2008 +0200 USB: musb: use new platform data interface of musb to replace old one Signed-off-by: Bryan Wu Signed-off-by: Felipe Balbi Signed-off-by: Greg Kroah-Hartman commit c20b15fde50c32174af4b48851e5ddadba36330e Author: Alan Stern Date: Mon Dec 1 10:36:15 2008 -0500 USB: usb-storage: merge DPCM support into SDDR09 The DPCM subdriver is a little peculiar, in that it's meant to support devices where LUN 0 is Compact Flash and uses the CB transport whereas LUN 1 is SmartMedia and uses the SDDR09 transport. Thus DPCM isn't really a transport in itself; it's more like a demultiplexer. Much of the DPCM code is part of the SDDR09 subdriver already, and the remaining part is fairly small. This patch (as1182) moves that extra piece into sddr09.c, thereby eliminating dpcm.c. Also eliminated is the Kconfig entry for DPCM support; it is now listed as part of the SDDR09 entry. In order to make sure that the semantics are the same as before, each unusual_devs entry for DPCM is now present twice: once with DPCM support if SDDR09 is configured (as before), and once with the SINGLE_LUN flag and CB support otherwise. Signed-off-by: Alan Stern CC: Matthew Dharm Signed-off-by: Greg Kroah-Hartman commit f1632df36b9467b75b7abfd2799aef67ec74a60a Author: Greg Kroah-Hartman Date: Tue Dec 16 13:26:07 2008 -0800 USB: option: increase outgoing buffer size and number This should speed up the option driver's upload speed quite a bit. It has been tested by a number of different people on different devices with success. Cc: Roland Wolters Signed-off-by: Greg Kroah-Hartman commit 50de36f7af3b1d791c402478210790c582126fe5 Author: Greg Kroah-Hartman Date: Wed Dec 10 16:00:30 2008 -0800 USB: serial: fix up urb->status usage Some of the usb-serial drivers are starting to use urb->status in ways they should not be doing. This fixes up some of them to prevent that. Signed-off-by: Greg Kroah-Hartman commit 6013bbbab0dcbc43bcf9dd70beeab2a0b1ec5ea7 Author: Karl Bongers Date: Mon Dec 1 11:47:40 2008 +0100 USB: isp1760: Fix probe in PCI glue code Contains fixes so probe on x86 PCI runs, apparently I'm first to try this. Several fixes to memory access to probe host scratch register. Previously would bug check on chip_addr var used uninitialized. Scratch reg write failed in one instance due to 16-bit initial access mode, so added "& 0x0000ffff" to the readl as fix. Includes some general cleanup - remove global vars, organize memory map resource use. Signed-off-by: Karl Bongers Signed-off-by: Sebastian Andrzej Siewior Cc: stable Signed-off-by: Greg Kroah-Hartman commit 6c0735687d37e25a65866823881bcbf39a6a023f Author: Sebastian Andrzej Siewior Date: Sun Nov 30 16:50:04 2008 +0100 USB: isp1760: use a specific PLX bridge instead of any bdridge this driver can't handle (of course) any brdige class devices. So we now are just active on one specific bridge which should be only the isp1761 chip behind a PLX bridge. Signed-off-by: Sebastian Andrzej Siewior Tested-by: Karl Bongers Cc: stable Signed-off-by: Greg Kroah-Hartman commit 889394b1eb95f040525d06dd4f2f1222b94023e2 Author: Felipe Balbi Date: Mon Dec 8 13:50:27 2008 +0200 USB: gadget: don't wait for completion twice In some obscure scenarios e.g. passing a 0-byte backing file storage, wait_for_completion() would wait forever in fsg_cleanup(). Prevent it by completing the thread in fsg_bind() error path. Signed-off-by: Felipe Balbi Signed-off-by: Alan Stern Signed-off-by: Greg Kroah-Hartman commit 619b572ae205cea26b147c2cec5ebf19974f4bb0 Author: Roel Kluin Date: Tue Dec 9 22:50:22 2008 +0100 USB: serial: usb_debug: Make static Sparse asked whether these could be static. Signed-off-by: Roel Kluin Signed-off-by: Greg Kroah-Hartman commit 65bfd2967c906ca322a4bb69a285fe0de8916ac6 Author: Alan Stern Date: Tue Nov 25 16:39:18 2008 -0500 USB: Enhance usage of pm_message_t This patch (as1177) modifies the USB core suspend and resume routines. The resume functions now will take a pm_message_t argument, so they will know what sort of resume is occurring. The new argument is also passed to the port suspend/resume and bus suspend/resume routines (although they don't use it for anything but debugging). In addition, special pm_message_t values are used for user-initiated, device-initiated (i.e., remote wakeup), and automatic suspend/resume. By testing these values, drivers can tell whether or not a particular suspend was an autosuspend. Unfortunately, they can't do the same for resumes -- not until the pm_message_t argument is also passed to the drivers' resume methods. That will require a bigger change. IMO, the whole Power Management framework should have been set up this way in the first place. Signed-off-by: Alan Stern Signed-off-by: Greg Kroah-Hartman commit 4ec06d629628b6e5c7ff50d349a26ef5c35696e3 Author: Alan Stern Date: Tue Nov 25 16:40:02 2008 -0500 USB: utilize round_jiffies_up_relative() This patch (as1178) uses the new round_jiffies_up_relative() routine for setting the autosuspend delayed_work timer. It's appropriate since we don't care too much about the exact length of the delay, but we don't want it to be too short (rounded down). Signed-off-by: Alan Stern Signed-off-by: Greg Kroah-Hartman commit 3cb22d658668234edbe6dcb165501e9ef0c0a059 Author: Tony Lindgren Date: Mon Nov 24 12:02:21 2008 -0800 USB: otg: sharable otg transceiver ops Move otg_get/set/put_transceiver() from omap specific code to common otg.c so other upcoming drivers can share them. [ dbrownell@users.sourceforge.net: move to drivers/usb/otg, dox ] Signed-off-by: Tony Lindgren Signed-off-by: Felipe Balbi Signed-off-by: Philipp Zabel Signed-off-by: David Brownell Signed-off-by: Greg Kroah-Hartman commit 68144e0cc92125f41157ede7b060f83367bc4fe7 Author: Philipp Zabel Date: Mon Nov 24 12:01:17 2008 -0800 USB: otg: add otg_put_transceiver() As Russell King points out, calling put_device(otg_transceiver->dev) directly in driver cleanup paths makes assumptions about otg_transceiver internals. Signed-off-by: Philipp Zabel Signed-off-by: David Brownell Signed-off-by: Greg Kroah-Hartman commit 6084f1bf0c51a99cbba612ee90a4607cffb8b042 Author: Philipp Zabel Date: Mon Nov 24 12:00:01 2008 -0800 USB: otg: gpio_vbus transceiver stub gpio_vbus provides simple GPIO VBUS sensing for peripheral controllers with an internal transceiver. Optionally, a second GPIO can be used to control D+ pullup. It also interfaces with the regulator framework to limit charging currents when powered via USB. gpio_vbus requests the regulator supplying "vbus_draw" and can enable/disable it or limit its current depending on USB state. [dbrownell@users.sourceforge.net: use drivers/otg, cleanups ] Signed-off-by: Philipp Zabel Signed-off-by: David Brownell Signed-off-by: Greg Kroah-Hartman commit b8da8677d4f88db066c1cfe34529d970a060de46 Author: David Brownell Date: Mon Nov 24 11:53:35 2008 -0800 USB: move isp1301_omap to drivers/usb/otg This moves the isp1301-omap driver from the drivers/i2c/chips directory (which will be shrinking) into a new drivers/usb/otg directory (which will grow, with more drivers and utilities). Note that OTG infrastructure needs to be initialized before either host or peripheral side USB support, and may be needed before for pure host or pure peripheral configurations. Signed-off-by: David Brownell Acked-by: Jean Delvare Signed-off-by: Greg Kroah-Hartman commit ea99ecfdc81266e61f4445c1830315a65eb8175a Author: Ben Dooks Date: Mon Nov 24 11:45:03 2008 -0800 USB: gadget: s3c2410_udc uses standard GPIO calls Change the gpio code in the s3c2410_udc to use the generic gpio calls instead of the s3c24xx specific gpio functions. Signed-off-by: Ben Dooks Signed-off-by: David Brownell Signed-off-by: Greg Kroah-Hartman commit b40fc2a2563b03a7b925cd16d1657aa2c24fd9c0 Author: David Brownell Date: Mon Nov 24 11:43:30 2008 -0800 USB: gadget: pxa25x_udc vbus sense initialization Some code in the pxa25x_udc driver wrongly expects the value of is_vbus_present() to be 0/1, not zero/nonzero ... cope. Issue noted by Jaya Kumar This bug has been around since July 2007, and has a simple workaround: unplug the Linux gadget, then re-plug it. Signed-off-by: David Brownell Cc: Jaya Kumar Signed-off-by: Greg Kroah-Hartman commit c48a5155252fd9cba7bedc59e5f8a339a3454d58 Author: Felipe Balbi Date: Mon Nov 24 13:06:53 2008 +0200 USB: musb: check if set_irq_wake succeded and remember it Without it, in platforms that don't provide irq_chip.set_wake(), like omap, musb will WARN() on driver removal. Signed-off-by: Felipe Balbi Signed-off-by: Greg Kroah-Hartman commit b6a49b8490fe6f22f0027a3f05eb498918f09303 Author: Felipe Balbi Date: Mon Nov 24 13:06:51 2008 +0200 USB: musb: Add musb git tree to maintainers entry Trivial patch adding musb's git tree to MAINTAINERS file. Signed-off-by: Felipe Balbi Signed-off-by: Greg Kroah-Hartman commit bb1c9ef1b4cd64f22e15e8447deac6043eeb151c Author: David Brownell Date: Mon Nov 24 13:06:50 2008 +0200 USB: musb: host side diagnostics tweaks Random host-side MUSB updates, mostly relating to better diagnostics: + Improve diagnostics on host side: - tx flush fifo: * Avoid hundreds of duplicate TX FIFONOTEMPTY messages * make "Can't flush TX fifo" a warning, and say which endpoint - giveback: * use correct status code * show completion function name not just URB pointer - Fix annoying "1 bytes" (should be "1 byte") + Be more consistent about failing init of unusable fifo_mode It's not clear why that "can't flush TX fifo" message appears, though it might relate to disconnection; I see it not infrequently Signed-off-by: David Brownell Signed-off-by: Felipe Balbi Signed-off-by: Greg Kroah-Hartman commit 71783e0defa16ca5abca7750df98ff8e7767bd2e Author: David Brownell Date: Mon Nov 24 13:06:49 2008 +0200 USB: musb: minor locking fix Minor locking fix for musb_hdrc on OMAP3 and OMAP2430: don't read DEVCTL without holding the spinlock, since an IRQ could come in and corrupt things. Signed-off-by: David Brownell Signed-off-by: Felipe Balbi Signed-off-by: Greg Kroah-Hartman commit 58e660266d92aaa186c3df607c0ee88f18c8f4da Author: Kevin Hilman Date: Mon Nov 24 13:06:48 2008 +0200 USB: musb: build fixes for DaVinci - update includes after asm/arch --> mach headers move - adds musb_platform_set_mode() stub Signed-off-by: Kevin Hilman Signed-off-by: Felipe Balbi Signed-off-by: Greg Kroah-Hartman commit 96a274d1da950a96cb31ac1bed044e049d770980 Author: David Brownell Date: Mon Nov 24 13:06:47 2008 +0200 USB: musb: sysfs mode updates Fix three omissions in the "mode" sysfs attribute support: (a) inability to report errors; (b) no DaVinci support ... just report an error; (c) for omap2430, accepting unsupportable values The 2430 stuff is still odd.... Signed-off-by: David Brownell Signed-off-by: Felipe Balbi Signed-off-by: Greg Kroah-Hartman commit aa69a8093ff985873cb44fe1157bd6db29a20fe4 Author: David Lopo Date: Mon Nov 17 14:14:51 2008 -0800 USB: gadget: MIPS ci13xxx_udc MIPS USB IP core family device controller Currently it only supports IP part number CI13412. [dbrownell@users.sourceforge.net: minor comment tweaks] Signed-off-by: David Lopo Signed-off-by: David Brownell Signed-off-by: Greg Kroah-Hartman commit bb9496c6f7e853e5d4edd5397c9d45f1968d623c Author: Julia Lawall Date: Tue Nov 25 14:15:19 2008 +0100 USB: gadget: change simple_strtol to simple_strtoul Since num is unsigned, it would seem better to use simple_strtoul that simple_strtol. A simplified version of the semantic patch that makes this change is as follows: (http://www.emn.fr/x-info/coccinelle/) // @r2@ long e; position p; @@ e = simple_strtol@p(...) @@ position p != r2.p; type T; T e; @@ e = - simple_strtol@p + simple_strtoul (...) // Signed-o