commit 5b664cb235e97afbf34db9c4d77f08ebd725335e Merge: f39548a... c0420ad... Author: Linus Torvalds Date: Thu Jul 17 10:55:51 2008 -0700 Merge branch 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mfasheh/ocfs2 * 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mfasheh/ocfs2: [PATCH] ocfs2: fix oops in mmap_truncate testing configfs: call drop_link() to cleanup after create_link() failure configfs: Allow ->make_item() and ->make_group() to return detailed errors. configfs: Fix failing mkdir() making racing rmdir() fail configfs: Fix deadlock with racing rmdir() and rename() configfs: Make configfs_new_dirent() return error code instead of NULL configfs: Protect configfs_dirent s_links list mutations configfs: Introduce configfs_dirent_lock ocfs2: Don't snprintf() without a format. ocfs2: Fix CONFIG_OCFS2_DEBUG_FS #ifdefs ocfs2/net: Silence build warnings on sparc64 ocfs2: Handle error during journal load ocfs2: Silence an error message in ocfs2_file_aio_read() ocfs2: use simple_read_from_buffer() ocfs2: fix printk format warnings with OCFS2_FS_STATS=n [PATCH 2/2] ocfs2: Instrument fs cluster locks [PATCH 1/2] ocfs2: Add CONFIG_OCFS2_FS_STATS config option commit f39548a6ad1dbdfaab552419386ec5bb1d76fa0d Merge: 2b04be7... 417e149... Author: Linus Torvalds Date: Thu Jul 17 10:55:07 2008 -0700 Merge git://git.kernel.org/pub/scm/linux/kernel/git/brodo/pcmcia-fixes-2.6 * git://git.kernel.org/pub/scm/linux/kernel/git/brodo/pcmcia-fixes-2.6: pcmcia: ide-cs: Remove outdated comment pcmcia: fix cisinfo_t removal pcmcia: fix return value in cm4000_cs.c commit 2b04be7e8ab5756ea36e137dd03c8773d184e67e Merge: bdec6ca... 2567d71... Author: Linus Torvalds Date: Thu Jul 17 10:38:59 2008 -0700 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: x86: fix asm/e820.h for userspace inclusion x86: fix numaq_tsc_disable x86: fix kernel_physical_mapping_init() for large x86 systems commit bdec6cace4c3ecb6f90bcaa5424b92c97bd1df0f Merge: 2f73cca... 2464a60... Author: Linus Torvalds Date: Thu Jul 17 10:37:10 2008 -0700 Merge branch 'tracing-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip * 'tracing-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: ftrace: do not trace library functions ftrace: do not trace scheduler functions ftrace: fix lockup with MAXSMP ftrace: fix merge buglet commit 2567d71cc7acd99f0a0dd02e17fe17fd7df7b30c Author: Rusty Russell Date: Tue Jul 15 15:02:27 2008 +1000 x86: fix asm/e820.h for userspace inclusion asm-x86/e820.h is included from userspace. 'x86: make e820.c to have common functions' (b79cd8f1268bab57ff85b19d131f7f23deab2dee) broke it: make -C Documentation/lguest cc -Wall -Wmissing-declarations -Wmissing-prototypes -O3 -I../../include lguest.c -lz -o lguest In file included from ../../include/asm-x86/bootparam.h:8, from lguest.c:45: ../../include/asm/e820.h:66: error: expected ‘)’ before ‘start’ ../../include/asm/e820.h:67: error: expected ‘)’ before ‘start’ ../../include/asm/e820.h:68: error: expected ‘)’ before ‘start’ ../../include/asm/e820.h:72: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘e820_update_range’ ... Signed-off-by: Rusty Russell Cc: Yinghai Lu Signed-off-by: Ingo Molnar commit 9354094a95aed456a46b353b1051a7e2fab29045 Author: Yinghai Lu Date: Mon Jul 14 23:29:01 2008 -0700 x86: fix numaq_tsc_disable fix: arch/x86/kernel/numaq_32.c: In function ‘numaq_tsc_disable’: arch/x86/kernel/numaq_32.c:99: warning: ‘return’ with a value, in function returning void Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit c43c1be0f7e0ac3d2fe1d4a5b37041c4c4463af1 Merge: e22146e... a3cf859... Author: Ingo Molnar Date: Thu Jul 17 19:24:56 2008 +0200 Merge branch 'linus' into x86/urgent commit 2f73ccab5628b4f8e8f4b93fea8082dd31a87a10 Author: Takashi Iwai Date: Thu Jul 17 18:09:12 2008 +0200 fix build error of arch/ia64/kvm/* Fix calls of smp_call_function*() in arch/ia64/kvm for recent API changes. CC [M] arch/ia64/kvm/kvm-ia64.o arch/ia64/kvm/kvm-ia64.c: In function 'handle_global_purge': arch/ia64/kvm/kvm-ia64.c:398: error: too many arguments to function 'smp_call_function_single' arch/ia64/kvm/kvm-ia64.c: In function 'kvm_vcpu_kick': arch/ia64/kvm/kvm-ia64.c:1696: error: too many arguments to function 'smp_call_function_single' Signed-off-by: Takashi Iwai Acked-by Xiantao Zhang Signed-off-by: Linus Torvalds commit 42fea1f385e99a1db979eb75c8a53c0baad0d9f6 Merge: 7259d93... 666f164... Author: Linus Torvalds Date: Thu Jul 17 09:15:23 2008 -0700 Merge branch 'ptrace-cleanup' of git://git.kernel.org/pub/scm/linux/kernel/git/frob/linux-2.6-utrace * 'ptrace-cleanup' of git://git.kernel.org/pub/scm/linux/kernel/git/frob/linux-2.6-utrace: fix dangling zombie when new parent ignores children do_wait: return security_task_wait() error code in place of -ECHILD ptrace children revamp do_wait reorganization commit 7259d936c6af216198ae6af3a25ac6c9dbdbe779 Author: David Woodhouse Date: Wed Jul 16 23:44:32 2008 -0700 Update scripts/Makefile.fwinst to cope with older make Also fix unwanted rebuilds of the firmware/ihex2fw tool by including the .ihex2fw.cmd file when present. Signed-off-by: David Woodhouse Reported-and-tested-by: Wang Chen Signed-off-by: Linus Torvalds commit ee723cb3d419afcc8b6c7ccc0f73a34b0eb5ac7b Merge: 7023cc6... 8586cb6... Author: Linus Torvalds Date: Thu Jul 17 09:05:38 2008 -0700 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] dasd: use -EOPNOTSUPP instead of -ENOTSUPP [S390] qdio: new qdio driver. [S390] cio: Export chsc_error_from_response(). [S390] vmur: Fix return code handling. [S390] Fix stacktrace compile bug. [S390] Increase default warning stacksize. [S390] dasd: Fix cleanup in dasd_{fba,diag}_check_characteristics(). [S390] chsc headers userspace cleanup [S390] dasd: fix unsolicited SIM handling. [S390] zfcpdump: Make SCSI disk dump tool recognize storage holes commit 7023cc61292f9cd61d99521206480f6e387132ff Author: Grant Likely Date: Thu Jul 17 01:06:55 2008 -0600 Fix collateral damage to top level Makefile The patch named "powerpc/mpc5121: Add clock driver", also contained an unrelated and bogus change to the top-level makefile. This patch backs out the bad bit. SHA1 of offending patch: 137e95906e294913fab02162e8a1948ade49acb5) Signed-off-by: Grant Likely Acked-by: Benjamin Herrenschmidt Repented-by: John Rigby [ Heh. Normally I pick these out from the diffstats, but I guess I've grown to trust the ppc tree too much ;) - Linus ] Signed-off-by: Linus Torvalds commit 2464a609ded094204a3aed24823745ec58e3c879 Author: Ingo Molnar Date: Thu Jul 17 17:40:48 2008 +0200 ftrace: do not trace library functions make function tracing more robust: do not trace library functions. We've already got a sizable list of exceptions: ifdef CONFIG_FTRACE # Do not profile string.o, since it may be used in early boot or vdso CFLAGS_REMOVE_string.o = -pg # Also do not profile any debug utilities CFLAGS_REMOVE_spinlock_debug.o = -pg CFLAGS_REMOVE_list_debug.o = -pg CFLAGS_REMOVE_debugobjects.o = -pg CFLAGS_REMOVE_find_next_bit.o = -pg CFLAGS_REMOVE_cpumask.o = -pg CFLAGS_REMOVE_bitmap.o = -pg endif ... and the pattern has been that random library functionality showed up in ftrace's critical path (outside of its recursion check), causing hard to debug lockups. So be a bit defensive about it and exclude all lib/*.o functions by default. It's not that they are overly interesting for tracing purposes anyway. Specific ones can still be traced, in an opt-in manner. Signed-off-by: Ingo Molnar commit c349e0a01c3e0f70913db6a5bb61ab204e0602de Author: Ingo Molnar Date: Tue Apr 15 22:39:31 2008 +0200 ftrace: do not trace scheduler functions do not trace scheduler functions - it's still a bit fragile and can lock up with: http://redhat.com/~mingo/misc/config-Thu_Jul_17_13_34_52_CEST_2008 Signed-off-by: Ingo Molnar commit 9fa111372a54f695f65e0de2f2a2108fe6cf3584 Author: Ingo Molnar Date: Thu Jul 17 17:38:17 2008 +0200 ftrace: fix lockup with MAXSMP MAXSMP brings in lots of use of various bitops in smp_processor_id() and friends - causing ftrace to lock up during bootup: calling anon_inode_init+0x0/0x130 initcall anon_inode_init+0x0/0x130 returned 0 after 0 msecs calling acpi_event_init+0x0/0x57 [ hard hang ] So exclude the bitops facilities from tracing. Signed-off-by: Ingo Molnar commit 8586cb60ce85f40431cf06fe97512269d3992f03 Author: Stefan Haberland Date: Thu Jul 17 17:16:49 2008 +0200 [S390] dasd: use -EOPNOTSUPP instead of -ENOTSUPP return value -ENOTSUPP is not valid in userspace context, use -EOPNOTSUPP instead Signed-off-by: Stefan Haberland Cc: Martin Schwidefsky Signed-off-by: Heiko Carstens commit 779e6e1c724d30e0fd1baca78b852e41e3a23c1d Author: Jan Glauber Date: Thu Jul 17 17:16:48 2008 +0200 [S390] qdio: new qdio driver. List of major changes: - split qdio driver into several files - seperation of thin interrupt code - improved handling for multiple thin interrupt devices - inbound and outbound processing now always runs in tasklet context - significant less tasklet schedules per interrupt needed - merged qebsm with non-qebsm handling - cleanup qdio interface and added kerneldoc - coding style Reviewed-by: Cornelia Huck Reviewed-by: Utz Bacher Reviewed-by: Ursula Braun Signed-off-by: Jan Glauber Signed-off-by: Martin Schwidefsky Signed-off-by: Heiko Carstens commit dae39843f478d181da5b5e1c2c703dfcaaf838c1 Author: Cornelia Huck Date: Thu Jul 17 17:16:47 2008 +0200 [S390] cio: Export chsc_error_from_response(). Make chsc_error_from_response() available to chsc callers outside of chsc.c (namely qdio) to avoid duplicating error checking code. Signed-off-by: Cornelia Huck Signed-off-by: Martin Schwidefsky Signed-off-by: Heiko Carstens commit b9993a38a9b491a9df48a5bc82d2e03ab44e352a Author: Frank Munzert Date: Thu Jul 17 17:16:46 2008 +0200 [S390] vmur: Fix return code handling. Use -EOPNOTSUPP instead of -ENOTSUPP. Signed-off-by: Frank Munzert Signed-off-by: Heiko Carstens Cc: Martin Schwidefsky commit 8de2ce86cdde64d00fc4a4034008b35d8fc0dc83 Author: Heiko Carstens Date: Thu Jul 17 17:16:45 2008 +0200 [S390] Fix stacktrace compile bug. Add missing module.h include to fix this: CC arch/s390/kernel/stacktrace.o arch/s390/kernel/stacktrace.c:84: warning: data definition has no type or storage class arch/s390/kernel/stacktrace.c:84: warning: type defaults to 'int' in declaration of 'EXPORT_SYMBOL_GPL' arch/s390/kernel/stacktrace.c:84: warning: parameter names (without types) in function declaration arch/s390/kernel/stacktrace.c:97: warning: data definition has no type or storage class arch/s390/kernel/stacktrace.c:97: warning: type defaults to 'int' in declaration of 'EXPORT_SYMBOL_GPL' arch/s390/kernel/stacktrace.c:97: warning: parameter names (without types) in function declaration Signed-off-by: Heiko Carstens Cc: Martin Schwidefsky commit c5a37255493a3a8bf527534c8700dd73bd591fc7 Author: Heiko Carstens Date: Thu Jul 17 17:16:44 2008 +0200 [S390] Increase default warning stacksize. Compiling a kernel with allmodconfig or allyesconfig results in tons of gcc warnings, because the default maximum stacksize from which on gcc will emit a warning is just 256 bytes. Increase this to 2048, so these warnings don't distract from the real warnings that we need to watch at. Signed-off-by: Heiko Carstens Cc: Martin Schwidefsky commit 7337194f708bac977511c7890d7038ded187041a Author: Cornelia Huck Date: Thu Jul 17 17:16:43 2008 +0200 [S390] dasd: Fix cleanup in dasd_{fba,diag}_check_characteristics(). Signed-off-by: Cornelia Huck Signed-off-by: Heiko Carstens Cc: Martin Schwidefsky commit 626f311737770f0fb5c09a6da2ea795a559aa42a Author: Adrian Bunk Date: Thu Jul 17 17:16:42 2008 +0200 [S390] chsc headers userspace cleanup Kernel headers shouldn't expose functions to userspace. Cc: Cornelia Huck Signed-off-by: Adrian Bunk Signed-off-by: Heiko Carstens Cc: Martin Schwidefsky commit 9d853caf44e6f969a9ad056a9937e8d97bc2c761 Author: Stefan Haberland Date: Thu Jul 17 17:16:41 2008 +0200 [S390] dasd: fix unsolicited SIM handling. Add missing schedule_bh and check that there is 32 bit sense data. Signed-off-by: Stefan Haberland Signed-off-by: Heiko Carstens Cc: Martin Schwidefsky commit 12e0c95e0ca99f633c9d9f90773037eb178685ad Author: Frank Munzert Date: Thu Jul 17 17:16:40 2008 +0200 [S390] zfcpdump: Make SCSI disk dump tool recognize storage holes The kernel part of zfcpdump establishes a new debugfs file zcore/memmap which exports information on memory layout (start address and length of each memory chunk) to its userspace counterpart. Signed-off-by: Frank Munzert Signed-off-by: Heiko Carstens Cc: Martin Schwidefsky commit 8e9509c827a28e2f365c203c04224f9e9dd1b63a Author: Ingo Molnar Date: Thu Jul 17 13:26:50 2008 +0200 ftrace: fix merge buglet -tip testing found a bootup hang here: initcall anon_inode_init+0x0/0x130 returned 0 after 0 msecs calling acpi_event_init+0x0/0x57 the bootup should have continued with: initcall acpi_event_init+0x0/0x57 returned 0 after 45 msecs but it hung hard there instead. bisection led to this commit: | commit 5806b81ac1c0c52665b91723fd4146a4f86e386b | Merge: d14c8a6... 6712e29... | Author: Ingo Molnar | Date: Mon Jul 14 16:11:52 2008 +0200 | Merge branch 'auto-ftrace-next' into tracing/for-linus turns out that i made this mistake in the merge: ifdef CONFIG_FTRACE # Do not profile debug utilities CFLAGS_REMOVE_tsc_64.o = -pg CFLAGS_REMOVE_tsc_32.o = -pg those two files got unified meanwhile - so the dont-profile annotation got lost. The proper rule is: CFLAGS_REMOVE_tsc.o = -pg i guess this could have been caught sooner if the CFLAGS_REMOVE* kbuild rule aborted the build if it met a target that does not exist anymore? Signed-off-by: Ingo Molnar commit 666f164f4fbfa78bd00fb4b74788b42a39842c64 Author: Roland McGrath Date: Tue Apr 8 23:12:30 2008 -0700 fix dangling zombie when new parent ignores children This fixes an arcane bug that we think was a regression introduced by commit b2b2cbc4b2a2f389442549399a993a8306420baf. When a parent ignores SIGCHLD (or uses SA_NOCLDWAIT), its children would self-reap but they don't if it's using ptrace on them. When the parent thread later exits and ceases to ptrace a child but leaves other live threads in the parent's thread group, any zombie children are left dangling. The fix makes them self-reap then, as they would have done earlier if ptrace had not been in use. Signed-off-by: Roland McGrath commit 14dd0b81414a58caf0296dbeace016bb0a5d11ab Author: Roland McGrath Date: Sun Mar 30 18:41:25 2008 -0700 do_wait: return security_task_wait() error code in place of -ECHILD This reverts the effect of commit f2cc3eb133baa2e9dc8efd40f417106b2ee520f3 "do_wait: fix security checks". That change reverted the effect of commit 73243284463a761e04d69d22c7516b2be7de096c. The rationale for the original commit still stands. The inconsistent treatment of children hidden by ptrace was an unintended omission in the original change and in no way invalidates its purpose. This makes do_wait return the error returned by security_task_wait() (usually -EACCES) in place of -ECHILD when there are some children the caller would be able to wait for if not for the permission failure. A permission error will give the user a clue to look for security policy problems, rather than for mysterious wait bugs. Signed-off-by: Roland McGrath commit f470021adb9190819c03d6d8c5c860a17480aa6d Author: Roland McGrath Date: Mon Mar 24 18:36:23 2008 -0700 ptrace children revamp ptrace no longer fiddles with the children/sibling links, and the old ptrace_children list is gone. Now ptrace, whether of one's own children or another's via PTRACE_ATTACH, just uses the new ptraced list instead. There should be no user-visible difference that matters. The only change is the order in which do_wait() sees multiple stopped children and stopped ptrace attachees. Since wait_task_stopped() was changed earlier so it no longer reorders the children list, we already know this won't cause any new problems. Signed-off-by: Roland McGrath commit 98abed02007b19bbfd68b6d06a5485afc3eeb01b Author: Roland McGrath Date: Wed Mar 19 19:24:59 2008 -0700 do_wait reorganization This breaks out the guts of do_wait into three subfunctions. The control flow is less nonobvious without so much goto. do_wait_thread and ptrace_do_wait contain the main work of the outer loop. wait_consider_task contains the main work of the inner loop. Signed-off-by: Roland McGrath commit 33af79d12e0fa25545d49e86afc67ea8ad5f2f40 Author: Chandra Seetharaman Date: Wed Jul 16 17:35:08 2008 -0700 scsi_dh: Verify "dev" is a sdev before accessing it. Before accessing the device data structure in hardware handlers, make sure it is a indeed a sdev device. Yinghai Lu found the bug on Jul 16, 2008, and later tested/verified the following fix. Signed-off-by: Chandra Seetharaman Signed-off-by: Linus Torvalds commit dc7c65db2845a8d17432d89252c4227a9a7cb15f Merge: 8a0ca91... 58b6e55... Author: Linus Torvalds Date: Wed Jul 16 17:25:46 2008 -0700 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: (72 commits) Revert "x86/PCI: ACPI based PCI gap calculation" PCI: remove unnecessary volatile in PCIe hotplug struct controller x86/PCI: ACPI based PCI gap calculation PCI: include linux/pm_wakeup.h for device_set_wakeup_capable PCI PM: Fix pci_prepare_to_sleep x86/PCI: Fix PCI config space for domains > 0 Fix acpi_pm_device_sleep_wake() by providing a stub for CONFIG_PM_SLEEP=n PCI: Simplify PCI device PM code PCI PM: Introduce pci_prepare_to_sleep and pci_back_from_sleep PCI ACPI: Rework PCI handling of wake-up ACPI: Introduce new device wakeup flag 'prepared' ACPI: Introduce acpi_device_sleep_wake function PCI: rework pci_set_power_state function to call platform first PCI: Introduce platform_pci_power_manageable function ACPI: Introduce acpi_bus_power_manageable function PCI: make pci_name use dev_name PCI: handle pci_name() being const PCI: add stub for pci_set_consistent_dma_mask() PCI: remove unused arch pcibios_update_resource() functions PCI: fix pci_setup_device()'s sprinting into a const buffer ... Fixed up conflicts in various files (arch/x86/kernel/setup_64.c, arch/x86/pci/irq.c, arch/x86/pci/pci.h, drivers/acpi/sleep/main.c, drivers/pci/pci.c, drivers/pci/pci.h, include/acpi/acpi_bus.h) from x86 and ACPI updates manually. commit 58b6e5538460be358fdf1286d9a2fbcfcc2cfaba Author: Jesse Barnes Date: Wed Jul 16 16:21:47 2008 -0700 Revert "x86/PCI: ACPI based PCI gap calculation" This reverts commit 809d9a8f93bd8504dcc34b16bbfdfd1a8c9bb1ed. This one isn't quite ready for prime time. It needs more testing and additional feedback from the ACPI guys. commit c0420ad2ca514551ca086510b0e7d17a05c70492 Author: Coly Li Date: Mon Jun 30 18:45:45 2008 +0800 [PATCH] ocfs2: fix oops in mmap_truncate testing This patch fixes a mmap_truncate bug which was found by ocfs2 test suite. In an ocfs2 cluster more than 1 node, run program mmap_truncate, which races mmap writes and truncates from multiple processes. While the test is running, a stat from another node forces writeout, causing an oops in ocfs2_get_block() because it sees a buffer to write which isn't allocated. This patch fixed the bug by clear dirty and uptodate bits in buffer, leave the buffer unmapped and return. Fix is suggested by Mark Fasheh, and I code up the patch. Signed-off-by: Coly Li Signed-off-by: Mark Fasheh commit 8a0ca91e1db5de5eb5b18cfa919d52ff8be375af Merge: 9c1be0c... c43d863... Author: Linus Torvalds Date: Wed Jul 16 15:11:07 2008 -0700 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/drzeus/mmc * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/drzeus/mmc: (68 commits) sdio_uart: Fix SDIO break control to now return success or an error mmc: host driver for Ricoh Bay1Controllers sdio: sdio_io.c Fix sparse warnings sdio: fix the use of hard coded timeout value. mmc: OLPC: update vdd/powerup quirk comment mmc: fix spares errors of sdhci.c mmc: remove multiwrite capability wbsd: fix bad dma_addr_t conversion atmel-mci: Driver for Atmel on-chip MMC controllers mmc: fix sdio_io sparse errors mmc: wbsd.c fix shadowing of 'dma' variable MMC: S3C24XX: Refuse incorrectly aligned transfers MMC: S3C24XX: Add maintainer entry MMC: S3C24XX: Update error debugging. MMC: S3C24XX: Add media presence test to request handling. MMC: S3C24XX: Fix use of msecs where jiffies are needed MMC: S3C24XX: Add MODULE_ALIAS() entries for the platform devices MMC: S3C24XX: Fix s3c2410_dma_request() return code check. MMC: S3C24XX: Allow card-detect on non-IRQ capable pin MMC: S3C24XX: Ensure host->mrq->data is valid ... Manually fixed up bogus executable bits on drivers/mmc/core/sdio_io.c and include/linux/mmc/sdio_func.h when merging. commit 9c1be0c4712fe760d8969427ef91107e9c062d91 Merge: 42fdd14... 0d7eff8... Author: Linus Torvalds Date: Wed Jul 16 15:02:57 2008 -0700 Merge branch 'for_linus' of git://git.infradead.org/~dedekind/ubifs-2.6 * 'for_linus' of git://git.infradead.org/~dedekind/ubifs-2.6: UBIFS: include to compilation UBIFS: add new flash file system UBIFS: add brief documentation MAINTAINERS: add UBIFS section do_mounts: allow UBI root device name VFS: export sync_sb_inodes VFS: move inode_lock into sync_sb_inodes commit 42fdd144a40f3afaccaa7ea538268bad3596439e Merge: 4314652... 64a8f00... Author: Linus Torvalds Date: Wed Jul 16 14:53:54 2008 -0700 Merge git://git.kernel.org/pub/scm/linux/kernel/git/bart/ide-2.6 * git://git.kernel.org/pub/scm/linux/kernel/git/bart/ide-2.6: (76 commits) IDE: Report errors during drive reset back to user space Update documentation of HDIO_DRIVE_RESET ioctl IDE: Remove unused code IDE: Fix HDIO_DRIVE_RESET handling hd.c: remove the #include update the BLK_DEV_HD help text move ide/legacy/hd.c to drivers/block/ ide/legacy/hd.c: use late_initcall() remove BLK_DEV_HD_ONLY ide: endian annotations in ide-floppy.c ide-floppy: zero out the whole struct ide_atapi_pc on init ide-floppy: fold idefloppy_create_test_unit_ready_cmd into idefloppy_open ide-cd: move request prep chunk from cdrom_do_newpc_cont to rq issue path ide-cd: move request prep from cdrom_start_rw_cont to rq issue path ide-cd: move request prep from cdrom_start_seek_continuation to rq issue path ide-cd: fold cdrom_start_seek into ide_cd_do_request ide-cd: simplify request issuing path ide-cd: mv ide_do_rw_cdrom ide_cd_do_request ide-cd: cdrom_start_seek: remove unused argument block ide-cd: ide_do_rw_cdrom: add the catch-all bad request case to the if-else block ... commit 4314652bb41df08ad65bd25176ba1dfd24b14a51 Merge: d442cc4... 01a5bba... Author: Linus Torvalds Date: Wed Jul 16 14:52:12 2008 -0700 Merge branch 'release-2.6.27' of git://git.kernel.org/pub/scm/linux/kernel/git/ak/linux-acpi-merge-2.6 * 'release-2.6.27' of git://git.kernel.org/pub/scm/linux/kernel/git/ak/linux-acpi-merge-2.6: (87 commits) Fix FADT parsing Add the ability to reset the machine using the RESET_REG in ACPI's FADT table. ACPI: use dev_printk when possible PNPACPI: add support for HP vendor-specific CCSR descriptors PNP: avoid legacy IDE IRQs PNP: convert resource options to single linked list ISAPNP: handle independent options following dependent ones PNP: remove extra 0x100 bit from option priority PNP: support optional IRQ resources PNP: rename pnp_register_*_resource() local variables PNPACPI: ignore _PRS interrupt numbers larger than PNP_IRQ_NR PNP: centralize resource option allocations PNP: remove redundant pnp_can_configure() check PNP: make resource assignment functions return 0 (success) or -EBUSY (failure) PNP: in debug resource dump, make empty list obvious PNP: improve resource assignment debug PNP: increase I/O port & memory option address sizes PNP: introduce pnp_irq_mask_t typedef PNP: make resource option structures private to PNP subsystem PNP: define PNP-specific IORESOURCE_IO_* flags alongside IRQ, DMA, MEM ... commit d442cc44c0db56e84ef6aa244a88427d2efe06cd Author: Martin K. Petersen Date: Wed Jul 16 16:09:06 2008 -0400 block: Trivial fix for blk_integrity_rq() Fail integrity check gracefully when request does not have a bio attached (BLOCK_PC). Signed-off-by: Martin K. Petersen Signed-off-by: Linus Torvalds commit 8df1b049bc86495a40e421abc8b9cf1dda32f0d9 Merge: a3cf859... cadc723... Author: Linus Torvalds Date: Wed Jul 16 14:49:49 2008 -0700 Merge git://git.linux-nfs.org/projects/trondmy/nfs-2.6 * git://git.linux-nfs.org/projects/trondmy/nfs-2.6: (82 commits) NFSv4: Remove BKL from the nfsv4 state recovery SUNRPC: Remove the BKL from the callback functions NFS: Remove BKL from the readdir code NFS: Remove BKL from the symlink code NFS: Remove BKL from the sillydelete operations NFS: Remove the BKL from the rename, rmdir and unlink operations NFS: Remove BKL from NFS lookup code NFS: Remove the BKL from nfs_link() NFS: Remove the BKL from the inode creation operations NFS: Remove BKL usage from open() NFS: Remove BKL usage from the write path NFS: Remove the BKL from the permission checking code NFS: Remove attribute update related BKL references NFS: Remove BKL requirement from attribute updates NFS: Protect inode->i_nlink updates using inode->i_lock nfs: set correct fl_len in nlmclnt_test() SUNRPC: Support registering IPv6 interfaces with local rpcbind daemon SUNRPC: Refactor rpcb_register to make rpcbindv4 support easier SUNRPC: None of rpcb_create's callers wants a privileged source port SUNRPC: Introduce a specific rpcb_create for contacting localhost ... commit 01a5bba576b9364b33f61f0cd9fa70c2cf5535e2 Author: Jan Beulich Date: Wed Jul 16 23:27:08 2008 +0200 Fix FADT parsing The (1.0 inherited) separate length fields in the FADT are byte granular. Further, PM1a/b may have distinct lengths and live in distinct address spaces. acpi_tb_convert_fadt() should account for all of these conditions. Apart from these changes I'm puzzled by the fact that, not just for acpi_gbl_xpm1{a,b}_enable, acpi_hw_low_level_{read,write}() get an explicit size passed rather than using the size found in the passed GAS. What happens on a platform that defines PM1{a,b} wider than 16 bits? Of course, acpi_hw_low_level_{read,write}() at present are entirely un-prepared to deal with sizes other than 8, 16, or 32, not to speak of a non-zero bit_offset or access_width... Signed-off-by: Jan Beulich Signed-off-by: Andi Kleen Cc: Len Brown Signed-off-by: Andrew Morton commit 4d3870431d17346c4fdd80e087b7d76f1b5941d5 Author: Aaron Durbin Date: Wed Jul 16 23:27:08 2008 +0200 Add the ability to reset the machine using the RESET_REG in ACPI's FADT table. Signed-off-by: Aaron Durbin Signed-off-by: Andi Kleen Cc: Len Brown Cc: Andi Kleen Signed-off-by: Andrew Morton commit c83642d5123225a22cccd75adea6e97c245714cb Author: Bjorn Helgaas Date: Fri Jun 27 08:45:39 2008 -0600 ACPI: use dev_printk when possible Convert printks to use dev_printk(). The most obvious change will be messages like this: -ACPI: PCI Interrupt 0000:00:04.0[A] -> GSI 31 (level, low) -> IRQ 31 +cciss 0000:00:04.0: PCI INT A -> GSI 31 (level, low) -> IRQ 31 Signed-off-by: Bjorn Helgaas Signed-off-by: Len Brown Signed-off-by: Andi Kleen commit 40ab4f4c1d843362eb26d83425317e91fbd98b17 Author: Bjorn Helgaas Date: Fri Jun 27 16:57:19 2008 -0600 PNPACPI: add support for HP vendor-specific CCSR descriptors The HP CCSR descriptor describes MMIO address space that should appear as a MEM resource. This patch adds support for parsing these descriptors in the _CRS data. The visible effect of this is that these MEM resources will appear in /sys/devices/pnp0/.../resources, which means that "lspnp -v" will report it, user applications can use this to locate device CSR space, and kernel drivers can use the normal PNP resource accessors to locate them. Signed-off-by: Bjorn Helgaas Signed-off-by: Len Brown Signed-off-by: Andi Kleen commit 84684c7469a2e6fcbf8c808ac5030ba2de14ff77 Author: Bjorn Helgaas Date: Fri Jun 27 16:57:18 2008 -0600 PNP: avoid legacy IDE IRQs If an IDE controller is in compatibility mode, it expects to use IRQs 14 and 15, so PNP should avoid them. This patch should resolve this problem report: parallel driver grabs IRQ14 preventing legacy SFF ATA controller from working https://bugzilla.novell.com/show_bug.cgi?id=375836 Signed-off-by: Bjorn Helgaas Signed-off-by: Len Brown Signed-off-by: Andi Kleen commit 1f32ca31e7409d37c1b25e5f81840fb184380cdf Author: Bjorn Helgaas Date: Fri Jun 27 16:57:17 2008 -0600 PNP: convert resource options to single linked list ISAPNP, PNPBIOS, and ACPI describe the "possible resource settings" of a device, i.e., the possibilities an OS bus driver has when it assigns I/O port, MMIO, and other resources to the device. PNP used to maintain this "possible resource setting" information in one independent option structure and a list of dependent option structures for each device. Each of these option structures had lists of I/O, memory, IRQ, and DMA resources, for example: dev independent options ind-io0 -> ind-io1 ... ind-mem0 -> ind-mem1 ... ... dependent option set 0 dep0-io0 -> dep0-io1 ... dep0-mem0 -> dep0-mem1 ... ... dependent option set 1 dep1-io0 -> dep1-io1 ... dep1-mem0 -> dep1-mem1 ... ... ... This data structure was designed for ISAPNP, where the OS configures device resource settings by writing directly to configuration registers. The OS can write the registers in arbitrary order much like it writes PCI BARs. However, for PNPBIOS and ACPI devices, the OS uses firmware interfaces that perform device configuration, and it is important to pass the desired settings to those interfaces in the correct order. The OS learns the correct order by using firmware interfaces that return the "current resource settings" and "possible resource settings," but the option structures above doesn't store the ordering information. This patch replaces the independent and dependent lists with a single list of options. For example, a device might have possible resource settings like this: dev options ind-io0 -> dep0-io0 -> dep1->io0 -> ind-io1 ... All the possible settings are in the same list, in the order they come from the firmware "possible resource settings" list. Each entry is tagged with an independent/dependent flag. Dependent entries also have a "set number" and an optional priority value. All dependent entries must be assigned from the same set. For example, the OS can use all the entries from dependent set 0, or all the entries from dependent set 1, but it cannot mix entries from set 0 with entries from set 1. Prior to this patch PNP didn't keep track of the order of this list, and it assigned all independent options first, then all dependent ones. Using the example above, that resulted in a "desired configuration" list like this: ind->io0 -> ind->io1 -> depN-io0 ... instead of the list the firmware expects, which looks like this: ind->io0 -> depN-io0 -> ind-io1 ... Signed-off-by: Bjorn Helgaas Signed-off-by: Andi Kleen Acked-by: Rene Herman Signed-off-by: Len Brown commit bbe413b4fc7f791248c7ee00ce7b3778491a3700 Author: Bjorn Helgaas Date: Fri Jun 27 16:57:16 2008 -0600 ISAPNP: handle independent options following dependent ones The ISAPNP spec recommends that independent options precede dependent ones, but this is not actually required. The current ISAPNP code incorrectly puts such trailing independent options at the end of the last dependent option list. This patch fixes that bug by resetting the current option list to the independent list when we see an "End Dependent Functions" tag. PNPBIOS and PNPACPI handle this the same way. Signed-off-by: Bjorn Helgaas Signed-off-by: Andi Kleen Acked-by: Rene Herman Signed-off-by: Len Brown commit e2a1a6f1cfaf6ee770a8700e5df8a3708dae503b Author: Bjorn Helgaas Date: Fri Jun 27 16:57:15 2008 -0600 PNP: remove extra 0x100 bit from option priority When building resource options, ISAPNP and PNPBIOS set the priority to something like "0x100 | PNP_RES_PRIORITY_ACCEPTABLE", but we immediately mask off the 0x100 again in pnp_build_option(), so that bit looks superfluous. Thanks to Rene Herman for pointing this out. Signed-off-by: Bjorn Helgaas Signed-off-by: Andi Kleen Acked-by: Rene Herman Signed-off-by: Len Brown commit d5ebde6ef5c2d51828f975a81d7d0e58bccfd833 Author: Bjorn Helgaas Date: Fri Jun 27 16:57:14 2008 -0600 PNP: support optional IRQ resources This patch adds an IORESOURCE_IRQ_OPTIONAL flag for use when assigning resources to a device. If the flag is set and we are unable to assign an IRQ to the device, we can leave the IRQ disabled but allow the overall resource allocation to succeed. Some devices request an IRQ, but can run without an IRQ (possibly with degraded performance). This flag lets us run the device without the IRQ instead of just leaving the device disabled. This is a reimplementation of this previous change by Rene Herman : http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=3b73a223661ed137c5d3d2635f954382e94f5a43 I reimplemented this for two reasons: - to prepare for converting all resource options into a single linked list, as opposed to the per-resource-type lists we have now, and - to preserve the order and number of resource options. In PNPBIOS and ACPI, we configure a device by giving firmware a list of resource assignments. It is important that this list has exactly the same number of resources, in the same order, as the "template" list we got from the firmware in the first place. The problem of a sound card MPU401 being left disabled for want of an IRQ was reported by Uwe Bugla . Signed-off-by: Bjorn Helgaas Signed-off-by: Andi Kleen Acked-by: Rene Herman Signed-off-by: Len Brown commit 2d29a7a794c5bae982955cd5dd0a76e766e57f39 Author: Bjorn Helgaas Date: Fri Jun 27 16:57:13 2008 -0600 PNP: rename pnp_register_*_resource() local variables No functional change; just rename "data" to something more descriptive. Signed-off-by: Bjorn Helgaas Signed-off-by: Andi Kleen Acked-by: Rene Herman Signed-off-by: Len Brown commit fe2cf598e6942abd8fb70fee230d74b1a1eae0d1 Author: Bjorn Helgaas Date: Fri Jun 27 16:57:12 2008 -0600 PNPACPI: ignore _PRS interrupt numbers larger than PNP_IRQ_NR ACPI Extended Interrupt Descriptors can encode 32-bit interrupt numbers, so an interrupt number may exceed the size of the bitmap we use to track possible IRQ settings. To avoid corrupting memory, complain and ignore too-large interrupt numbers. There's similar code in pnpacpi_parse_irq_option(), but I didn't change that because the small IRQ descriptor can only encode IRQs 0-15, which do not exceed bitmap size. In the future, we could handle IRQ numbers greater than PNP_IRQ_NR by replacing the bitmap with a table or list. Signed-off-by: Bjorn Helgaas Signed-off-by: Andi Kleen Acked-by: Rene Herman Signed-off-by: Len Brown commit c227536b4cc2600fc9d22ba0067f699165f6621f Author: Bjorn Helgaas Date: Fri Jun 27 16:57:11 2008 -0600 PNP: centralize resource option allocations This patch moves all the option allocations (pnp_mem, pnp_port, etc) into the pnp_register_{mem,port,irq,dma}_resource() functions. This will make it easier to rework the option data structures. The non-trivial part of this patch is the IRQ handling. The backends have to allocate a local pnp_irq_mask_t bitmap, populate it, and pass a pointer to pnp_register_irq_resource(). Signed-off-by: Bjorn Helgaas Signed-off-by: Andi Kleen Acked-by: Rene Herman Signed-off-by: Len Brown commit b08395e5038e3337bb85c7246a635a3be6d5a29c Author: Bjorn Helgaas Date: Fri Jun 27 16:57:10 2008 -0600 PNP: remove redundant pnp_can_configure() check pnp_assign_resources() is static and the only caller checks pnp_can_configure() before calling it, so no need to do it again. Signed-off-by: Bjorn Helgaas Signed-off-by: Andi Kleen Acked-by: Rene Herman Signed-off-by: Len Brown commit 6e906f0e1c8633ed357a64e9861f1822789bee3d Author: Bjorn Helgaas Date: Fri Jun 27 16:57:09 2008 -0600 PNP: make resource assignment functions return 0 (success) or -EBUSY (failure) This patch doesn't change any behavior; it just makes the return values more conventional. This changes pnp_assign_dma() from a void function to one that returns an int, just like the other assignment functions. For now, at least, pnp_assign_dma() always returns 0 (success), so it appears to never fail, just like before. Signed-off-by: Bjorn Helgaas Signed-off-by: Andi Kleen Acked-by: Rene Herman Signed-off-by: Len Brown commit 819beac3806a5e986d81f476b999b7fffce1a233 Author: Bjorn Helgaas Date: Fri Jun 27 16:57:08 2008 -0600 PNP: in debug resource dump, make empty list obvious If the resource list is empty, say that explicitly. Previously, it was confusing because often the heading was followed by zero resource lines, then some "add resource" lines from auto-assignment, so the "add" lines looked like current resources. Signed-off-by: Bjorn Helgaas Signed-off-by: Andi Kleen Acked-by: Rene Herman Signed-off-by: Len Brown commit fcfb7ce3d688d5c15fc9bc0a2a48e1ededdb046f Author: Bjorn Helgaas Date: Fri Jun 27 16:57:07 2008 -0600 PNP: improve resource assignment debug When we fail to assign an I/O or MEM resource, include the min/max in the debug output to help match it with the options. Signed-off-by: Bjorn Helgaas Signed-off-by: Andi Kleen Acked-by: Rene Herman Signed-off-by: Len Brown commit 169aaffe885c56745188e7913f212a67beaa3b80 Author: Bjorn Helgaas Date: Fri Jun 27 16:57:06 2008 -0600 PNP: increase I/O port & memory option address sizes ACPI Address Space Descriptors can be up to 64 bits wide. We should keep track of the whole thing when parsing resource options, so this patch changes PNP port and mem option fields from "unsigned short" and "unsigned int" to "resource_size_t". Signed-off-by: Bjorn Helgaas Signed-off-by: Andi Kleen Acked-by: Rene Herman Signed-off-by: Len Brown commit 7aefff51854ccd33599c40b4e360d94cb2b7622f Author: Bjorn Helgaas Date: Fri Jun 27 16:57:05 2008 -0600 PNP: introduce pnp_irq_mask_t typedef This adds a typedef for the IRQ bitmap, which should cause no functional change, but will make it easier to pass a pointer to a bitmap to pnp_register_irq_resource(). Signed-off-by: Bjorn Helgaas Signed-off-by: Andi Kleen Acked-by: Rene Herman Signed-off-by: Len Brown commit a1802c42950403657d07e64558eff612d550ce16 Author: Bjorn Helgaas Date: Fri Jun 27 16:57:04 2008 -0600 PNP: make resource option structures private to PNP subsystem Nothing outside the PNP subsystem should need access to a device's resource options, so this patch moves the option structure declarations to a private header file. Signed-off-by: Bjorn Helgaas Signed-off-by: Andi Kleen Acked-by: Rene Herman Signed-off-by: Len Brown commit 08c9f262f268f7948be13bf3a5bda1d635c649b4 Author: Bjorn Helgaas Date: Fri Jun 27 16:57:03 2008 -0600 PNP: define PNP-specific IORESOURCE_IO_* flags alongside IRQ, DMA, MEM PNP previously defined PNP_PORT_FLAG_16BITADDR and PNP_PORT_FLAG_FIXED in a private header file, but put those flags in struct resource.flags fields. Better to make them IORESOURCE_IO_* flags like the existing IRQ, DMA, and MEM flags. Signed-off-by: Bjorn Helgaas Signed-off-by: Andi Kleen Acked-by: Rene Herman Signed-off-by: Len Brown commit b72ee1f11e373179ec703e0e5afaf585ed3a950a Author: Bjorn Helgaas Date: Fri Jun 27 16:57:02 2008 -0600 PNP: whitespace/coding style fixes No functional change; just make a couple declarations consistent with the rest of the file. Signed-off-by: Bjorn Helgaas Signed-off-by: Andi Kleen Acked-by: Rene Herman Signed-off-by: Len Brown commit 57fd51a8be26921b56747ddd09d1d9e01c11c9e0 Author: Bjorn Helgaas Date: Fri Jun 27 16:57:01 2008 -0600 PNP: add pnp_possible_config() -- can a device could be configured this way? As part of a heuristic to identify modem devices, 8250_pnp.c checks to see whether a device can be configured at any of the legacy COM port addresses. This patch moves the code that traverses the PNP "possible resource options" from 8250_pnp.c to the PNP subsystem. This encapsulation is important because a future patch will change the implementation of those resource options. Signed-off-by: Bjorn Helgaas Signed-off-by: Andi Kleen Acked-by: Rene Herman Signed-off-by: Len Brown commit f61ed7e32d2d6a0a8c3c101da513ccedd542e14d Author: Bjorn Helgaas Date: Fri Jun 27 16:57:00 2008 -0600 PNP: dont sort by type in /sys/.../resources Rather than stepping through all IO resources, then stepping through all MMIO resources, etc., we can just iterate over the resource list once directly. This can change the order in /sys, e.g., # cat /sys/devices/pnp0/00:07/resources # OLD state = active io 0x3f8-0x3ff irq 4 # cat /sys/devices/pnp0/00:07/resources # NEW state = active irq 4 io 0x3f8-0x3ff The old code artificially sorted resources by type; the new code just lists them in the order we read them from the ISAPNP hardware or the BIOS. Signed-off-by: Bjorn Helgaas Signed-off-by: Len Brown Signed-off-by: Andi Kleen commit 25d39c39d82d062f4be685146abd054a3bafdf12 Author: Bjorn Helgaas Date: Fri Jun 27 16:56:59 2008 -0600 PNP: remove ratelimit on add resource failures We used to have a fixed-size resource table. If a device had twenty resources when the table only had space for ten, we didn't need ten warnings, so we added the ratelimit. Now that we can dynamically allocate new resources, we should only get failures if the allocation fails. That should be rare enough that we don't need to ratelimit the messages. Signed-off-by: Bjorn Helgaas Signed-off-by: Len Brown Signed-off-by: Andi Kleen commit 5acf91415799025410cc0d13101340d352f34c89 Author: Bjorn Helgaas Date: Fri Jun 27 16:56:58 2008 -0600 PNPACPI: keep disabled resources when parsing current config When we parse a device's _CRS data (the current resource settings), we should keep track of everything we find, even if it's currently disabled or invalid. This is what we already do for ISAPNP and PNPBIOS, and it helps keep things matched up when we subsequently re-encode resources. For example, consider a device with (mem, irq0, irq1, io), where irq0 is disabled. If we drop irq0 when parsing the _CRS, we will mistakenly put irq1 in the irq0 slot when we encode resources for an _SRS call. Signed-off-by: Bjorn Helgaas Signed-off-by: Len Brown Signed-off-by: Andi Kleen commit aee3ad815dd291a7193ab01da0f1a30c84d00061 Author: Bjorn Helgaas Date: Fri Jun 27 16:56:57 2008 -0600 PNP: replace pnp_resource_table with dynamically allocated resources PNP used to have a fixed-size pnp_resource_table for tracking the resources used by a device. This table often overflowed, so we've had to increase the table size, which wastes memory because most devices have very few resources. This patch replaces the table with a linked list of resources where the entries are allocated on demand. This removes messages like these: pnpacpi: exceeded the max number of IO resources 00:01: too many I/O port resources References: http://bugzilla.kernel.org/show_bug.cgi?id=9535 http://bugzilla.kernel.org/show_bug.cgi?id=9740 http://lkml.org/lkml/2007/11/30/110 This patch also changes the way PNP uses the IORESOURCE_UNSET, IORESOURCE_AUTO, and IORESOURCE_DISABLED flags. Prior to this patch, the pnp_resource_table entries used the flags like this: IORESOURCE_UNSET This table entry is unused and available for use. When this flag is set, we shouldn't look at anything else in the resource structure. This flag is set when a resource table entry is initialized. IORESOURCE_AUTO This resource was assigned automatically by pnp_assign_{io,mem,etc}(). This flag is set when a resource table entry is initialized and cleared whenever we discover a resource setting by reading an ISAPNP config register, parsing a PNPBIOS resource data stream, parsing an ACPI _CRS list, or interpreting a sysfs "set" command. Resources marked IORESOURCE_AUTO are reinitialized and marked as IORESOURCE_UNSET by pnp_clean_resource_table() in these cases: - before we attempt to assign resources automatically, - if we fail to assign resources automatically, - after disabling a device IORESOURCE_DISABLED Set by pnp_assign_{io,mem,etc}() when automatic assignment fails. Also set by PNPBIOS and PNPACPI for: - invalid IRQs or GSI registration failures - invalid DMA channels - I/O ports above 0x10000 - mem ranges with negative length After this patch, there is no pnp_resource_table, and the resource list entries use the flags like this: IORESOURCE_UNSET This flag is no longer used in PNP. Instead of keeping IORESOURCE_UNSET entries in the resource list, we remove entries from the list and free them. IORESOURCE_AUTO No change in meaning: it still means the resource was assigned automatically by pnp_assign_{port,mem,etc}(), but these functions now set the bit explicitly. We still "clean" a device's resource list in the same places, but rather than reinitializing IORESOURCE_AUTO entries, we just remove them from the list. Note that IORESOURCE_AUTO entries are always at the end of the list, so removing them doesn't reorder other list entries. This is because non-IORESOURCE_AUTO entries are added by the ISAPNP, PNPBIOS, or PNPACPI "get resources" methods and by the sysfs "set" command. In each of these cases, we completely free the resource list first. IORESOURCE_DISABLED In addition to the cases where we used to set this flag, ISAPNP now adds an IORESOURCE_DISABLED resource when it reads a configuration register with a "disabled" value. Signed-off-by: Bjorn Helgaas Signed-off-by: Len Brown Signed-off-by: Andi Kleen commit 20bfdbba7212d19613b93dcea93f26cb65af91fe Author: Bjorn Helgaas Date: Fri Jun 27 16:56:56 2008 -0600 PNP: make pnp_{port,mem,etc}_start(), et al work for invalid resources Some callers use pnp_port_start() and similar functions without making sure the resource is valid. This patch makes us fall back to returning the initial values if the resource is not valid or not even present. This mostly preserves the previous behavior, where we would just return the initial values set by pnp_init_resource_table(). The original 2.6.25 code didn't range-check the "bar", so it would return garbage if the bar exceeded the table size. This code returns sensible values instead. Signed-off-by: Bjorn Helgaas Signed-off-by: Len Brown Signed-off-by: Andi Kleen commit 9fdee4e02e3b214cde8e4f3beb6776075a3d08a7 Author: Bjorn Helgaas Date: Fri Jun 27 16:56:55 2008 -0600 PNP: add pnp_resource_type_name() helper function This patch adds a "pnp_resource_type_name(struct resource *)" that returns the string resource type. This will be used by the sysfs "show resources" function and the debug resource dump function. Signed-off-by: Bjorn Helgaas Signed-off-by: Len Brown Signed-off-by: Andi Kleen commit 940e98dbc616f1df7b63b73858a966969baf261d Author: Bjorn Helgaas Date: Fri Jun 27 16:56:54 2008 -0600 PNP: add pnp_resource_type() internal interface Given a struct resource, this returns the type (IO, MEM, IRQ, DMA). Signed-off-by: Bjorn Helgaas Signed-off-by: Len Brown Signed-off-by: Andi Kleen commit 87e4acf3ebc02c9d0a2f7a37b655c49176c4d765 Author: Bjorn Helgaas Date: Fri Jun 27 16:56:53 2008 -0600 PNP: remove pnp_resource.index We used pnp_resource.index to keep track of which ISAPNP configuration register a resource should be written to. We needed this only to handle the case where a register is disabled but a subsequent register in the same set is enabled. Rather than explicitly maintaining the pnp_resource.index, this patch adds a resource every time we read an ISAPNP configuration register and marks the resource as IORESOURCE_DISABLED when appropriate. This makes the position in the pnp_resource_table always correspond to the config register index. Signed-off-by: Bjorn Helgaas Signed-off-by: Len Brown Signed-off-by: Andi Kleen commit b897f46cf7941fff8130ccdaf85f39528bff6a51 Author: Bjorn Helgaas Date: Fri Jun 27 16:56:52 2008 -0600 PNP: add detail to debug resource dump In the debug resource dump, decode the flags and indicate when a resource is disabled or has been automatically assigned. Signed-off-by: Bjorn Helgaas Signed-off-by: Len Brown Signed-off-by: Andi Kleen commit 469778c1740fcf3113498b6fdf4559bdec25c58f Author: Julia Jomantaite Date: Mon Jun 23 22:50:42 2008 +0100 ACPI: video: fix brightness allocation Fix use of uninitialized device->brightness. Signed-off-by: Julia Jomantaite Signed-off-by: Andi Kleen Acked-by: Zhang Rui Signed-off-by: Len Brown commit 8aa863b8ca0855378e3409b5e55ad57a856f6412 Author: Len Brown Date: Fri Jun 27 11:31:50 2008 -0400 ACPI: Andi Kleen maintains the ACPI sub-system ...while Len is on sabbatical from Intel Signed-off-by: Len Brown Signed-off-by: Andi Kleen commit 65573ee72e34e767a135a0841ac5380a2be1a390 Author: Len Brown Date: Fri Jun 27 11:22:46 2008 -0400 ACPI: Zhang Rui maintains ACPI THERMAL and FAN Reflect that Zhang-Rui has been the sub-maintainer for ACPI THERMAL and FAN for some time now. Also, the Chinese custom is to speak family name first, so rather than "Rui Zhang", write "Zhang Rui", as he does on e-mail. Signed-off-by: Len Brown Signed-off-by: Andi Kleen commit 2a2a64714d9c40f7705c4de1e79a5b855c7211a9 Author: Zhao Yakui Date: Tue Jun 24 18:02:57 2008 +0800 ACPI: Disable MWAIT via DMI on broken Compal board If a system matches in this DMI table, Linux will disable MWAIT support for idle. ie. "idle=nomwait" is automatically invoked and C1_FFH and C2C3_FFH access mode are disabled. http://bugzilla.kernel.org/show_bug.cgi?id=10807 http://bugzilla.kernel.org/show_bug.cgi?id=10914 Signed-off-by: Zhao Yakui Signed-off-by: Li Shaohua Signed-off-by: Len Brown Signed-off-by: Andi Kleen commit da5e09a1b3e5a9fc0b15a3feb64e921ccc55ba74 Author: Zhao Yakui Date: Tue Jun 24 18:01:09 2008 +0800 ACPI : Create "idle=nomwait" bootparam "idle=nomwait" disables the use of the MWAIT instruction from both C1 (C1_FFH) and deeper (C2C3_FFH) C-states. When MWAIT is unavailable, the BIOS and OS generally negotiate to use the HALT instruction for C1, and use IO accesses for deeper C-states. This option is useful for power and performance comparisons, and also to work around BIOS bugs where broken MWAIT support is advertised. http://bugzilla.kernel.org/show_bug.cgi?id=10807 http://bugzilla.kernel.org/show_bug.cgi?id=10914 Signed-off-by: Zhao Yakui Signed-off-by: Li Shaohua Signed-off-by: Len Brown Signed-off-by: Andi Kleen commit c1e3b377ad48febba6f91b8ae42c44ee4d4ab45e Author: Zhao Yakui Date: Tue Jun 24 17:58:53 2008 +0800 ACPI: Create "idle=halt" bootparam "idle=halt" limits the idle loop to using the halt instruction. No MWAIT, no IO accesses, no C-states deeper than C1. If something is broken in the idle code, "idle=halt" is a less severe workaround than "idle=poll" which disables all power savings. Signed-off-by: Zhao Yakui Signed-off-by: Len Brown Signed-off-by: Andi Kleen commit 5b53496a5ad79e91052f72761a7c5516b069bc99 Author: Zhao Yakui Date: Tue Jun 17 14:39:59 2008 +0800 ACPI: Disable the C2C3_FFH access mode HW has no MWAIT support 991528d7348667924176f3e29addea0675298944 (ACPI: Processor native C-states using MWAIT) started passing C2C3_FFH to _PDC to tell the BIOS that Linux supports MWAIT for deep C-states. However, we should first double check with the hardware that it actually supports MWAIT before potentially exposing a BIOS bug of an MWAIT _CST on HW that doesn't support MWAIT. Signed-off-by: Zhao Yakui Signed-off-by: Li Shaohua Signed-off-by: Len Brown Signed-off-by: Andi Kleen commit 71b58cbb0c30d1f78636a48c4721529449d6ea37 Author: Zhang Rui Date: Fri Jun 20 09:42:47 2008 +0800 ACPI: Enhance /sys/firmware/interrupts to allow enable/disable/clear from user-space Allow users to enable/disable/clear a specific & valid GPE/Fixed Event in user space. This is useful for debugging, especially for some interrupt storm issues. All wakeup GPEs are disabled and they can not be enabled at runtime, and we mark them as invalid. All GPEs that don't have a _Lxx/_Exx method are marked as invalid. All Fixed Events that don't have an event handler are marked as invalid and they can't be enabled until an event handler is registered. Signed-off-by: Zhang Rui Signed-off-by: Ling Ming Signed-off-by: Len Brown Signed-off-by: Andi Kleen commit 9c9f6d052dc6f469431461a97d49cf9c5558b8ad Author: Bob Moore Date: Tue Jun 10 14:37:53 2008 +0800 ACPICA: Update version to 20080609 Update version to 20080609. Signed-off-by: Len Brown Signed-off-by: Andi Kleen commit b53ce3f7186e2fc561f02085b5021df10d715ce2 Author: Bob Moore Date: Tue Jun 10 14:30:04 2008 +0800 ACPICA: Fix mutex debug code for wrong loop termination value Loop was terminating one iteration early, missing one of the debugger handshake mutexes. Linn Crosetto. Signed-off-by: Bob Moore Signed-off-by: Lin Ming Signed-off-by: Len Brown Signed-off-by: Andi Kleen commit fd0a43276dc986e186eb27e5755a18e97e07a7eb Author: Bob Moore Date: Tue Jun 10 14:27:55 2008 +0800 ACPICA: Cleanup of _PRT parsing code Removed extraneous else clauses, other general cleanup. Signed-off-by: Bob Moore Signed-off-by: Lin Ming Signed-off-by: Len Brown Signed-off-by: Andi Kleen commit 71d993e115706a4108bdc7e3cb3cf25309f17aa6 Author: Bob Moore Date: Tue Jun 10 14:25:05 2008 +0800 ACPICA: Cleanup debug operand dump mechanism Eliminated unnecessary operands; eliminated use of negative index in loop. Operands now displayed in correct order, not backwards. Signed-off-by: Bob Moore Signed-off-by: Lin Ming Signed-off-by: Len Brown Signed-off-by: Andi Kleen commit 5a1a57efeb152d6b8a3b2a20f6b192d074e919ec Author: Bob Moore Date: Tue Jun 10 14:21:05 2008 +0800 ACPICA: Fix for invalid large array index on 64-bit systems This problem was introduced in 20080514 as a result of the elimination of the acpi_native_uint type. Code uses a negative array index, which should be eliminated. Signed-off-by: Bob Moore Signed-off-by: Lin Ming Signed-off-by: Len Brown Signed-off-by: Andi Kleen commit 75e5b5fb778646a93d98adb1ca697435362d2856 Author: Bob Moore Date: Tue Jun 10 14:19:32 2008 +0800 ACPICA: Update disassembler for DMAR table changes Now supports the 2007 intel Virtualization Technology for Directed I/O specification. Signed-off-by: Bob Moore Signed-off-by: Lin Ming Signed-off-by: Len Brown Signed-off-by: Andi Kleen commit 19d0cfe9ddfdf7afa8d1765ab0bd2a7dd30e47c9 Author: Bob Moore Date: Tue Jun 10 15:54:40 2008 +0800 ACPICA: Update DMAR and SRAT table definitions Synchronized tables with current specifications. Signed-off-by: Bob Moore Signed-off-by: Lin Ming Signed-off-by: Len Brown Signed-off-by: Andi Kleen commit d0e184abc5983281ef189db2c759d65d56eb1b80 Author: Bob Moore Date: Tue Jun 10 14:16:47 2008 +0800 ACPICA: Workaround for reversed _PRT entries from BIOS Some BIOSs erroneously reverse the _PRT SourceName and the SourceIndex. Detect and repair this problem. MS ACPI also allows and repairs this problem, thus ACPICA must also. Signed-off-by: Bob Moore Signed-off-by: Lin Ming Signed-off-by: Len Brown Signed-off-by: Andi Kleen commit b25d2a470bc9ffef4c34248952d914bd6fc0fcf6 Author: Bob Moore Date: Tue Jun 10 14:15:05 2008 +0800 ACPICA: Update version to 20080514 Update version to 20080514 Signed-off-by: Bob Moore Signed-off-by: Lin Ming Signed-off-by: Len Brown Signed-off-by: Andi Kleen commit 4b8ed631679070c183c8ae7519d2bdb9df124ae4 Author: Bob Moore Date: Tue Jun 10 13:55:53 2008 +0800 ACPICA: Add const qualifier for appropriate string constants Mostly MODULE_NAME and printf format strings. Signed-off-by: Bob Moore Signed-off-by: Lin Ming Signed-off-by: Len Brown Signed-off-by: Andi Kleen commit b52437641edf63cee2f2f73a189154989b4a7ff4 Author: Bob Moore Date: Tue Jun 10 13:44:48 2008 +0800 ACPICA: Several lint changes, no functional changes Remove pointer cast warnings and fix for a debug printf. Signed-off-by: Bob Moore Signed-off-by: Lin Ming Signed-off-by: Len Brown Signed-off-by: Andi Kleen commit d97b4358da9bdaee5789c85415d770e36aebca52 Author: Bob Moore Date: Tue Jun 10 13:43:34 2008 +0800 ACPICA: Removed unused include files from source files From lint. Signed-off-by: Bob Moore Signed-off-by: Lin Ming Signed-off-by: Len Brown Signed-off-by: Andi Kleen commit 67a119f990063f5662574f6d6414fe9bc5ece86a Author: Bob Moore Date: Tue Jun 10 13:42:13 2008 +0800 ACPICA: Eliminate acpi_native_uint type v2 No longer needed; replaced mostly with u32, but also acpi_size where a type that changes 32/64 bit on 32/64-bit platforms is required. v2: Fix a cast of a 32-bit int to a pointer in ACPI to avoid a compiler warning. from David Howells Signed-off-by: Bob Moore Signed-off-by: Lin Ming Signed-off-by: Len Brown Signed-off-by: Andi Kleen commit 11f2a61ab418305167f9a3f3a31a50449222f64b Author: Bob Moore Date: Tue Jun 10 12:53:01 2008 +0800 ACPICA: Fix possible negative array index in acpi_ut_validate_exception Added NULL fields to the exception string arrays to eliminate the -1 subtraction on the SubStatus field. Signed-off-by: Bob Moore Signed-off-by: Lin Ming Signed-off-by: Len Brown Signed-off-by: Andi Kleen commit 6719561f9b4281491f58ed9f0bbc179dc7db95b7 Author: Jan Beulich Date: Tue Jun 10 12:49:56 2008 +0800 ACPICA: Update tracking macros to reduce code/data size Changed ACPI_MODULE_NAME and ACPI_FUNCTION_NAME to use arrays of strings instead of pointers to static strings. Jan Beulich and Bob Moore. Signed-off-by: Bob Moore Signed-off-by: Lin Ming Signed-off-by: Len Brown Signed-off-by: Andi Kleen commit c91d924e3af08d4f98eab6ebf81f2b8ce132448f Author: Bob Moore Date: Tue Jun 10 12:38:10 2008 +0800 ACPICA: Fix for hang on GPE method invocation Fixes problem where the new method argument count validation mechanism will enter an infinite loop when a GPE method is dispatched. Problem fixed be removing the obsolete code that passes GPE block information to the notify handler via the control method parameter pointer. Signed-off-by: Bob Moore Signed-off-by: Lin Ming Signed-off-by: Len Brown Signed-off-by: Andi Kleen commit f3454ae8104efb2dbf0d08ec42c6f5d0fe9225bc Author: Bob Moore Date: Tue Jun 10 12:25:42 2008 +0800 ACPICA: Add argument count checking to control method invocation via acpi_evaluate_object Error if too few arguments, warning if too many. This applies only to external programmatic control method execution, not method-to-method calls within the AML. Signed-off-by: Lin Ming Signed-off-by: Bob Moore Signed-off-by: Len Brown Signed-off-by: Andi Kleen commit c735ab7da3414c3e639d5c5223092b74689e5d87 Author: Randy Dunlap Date: Thu Jun 26 22:27:21 2008 -0400 fujitsu-laptop: depends on INPUT fujitsu-laptop uses input_* functions, so it should depend on INPUT. drivers/built-in.o: In function `acpi_fujitsu_add': fujitsu-laptop.c:(.text+0xaaec7): undefined reference to `input_allocate_device' fujitsu-laptop.c:(.text+0xaaf39): undefined reference to `input_register_device' fujitsu-laptop.c:(.text+0xab025): undefined reference to `input_free_device' drivers/built-in.o: In function `acpi_fujitsu_notify': fujitsu-laptop.c:(.text+0xab0d8): undefined reference to `input_event' fujitsu-laptop.c:(.text+0xab0e5): undefined reference to `input_event' fujitsu-laptop.c:(.text+0xab0f5): undefined reference to `input_event' fujitsu-laptop.c:(.text+0xab102): undefined reference to `input_event' drivers/built-in.o: In function `acpi_fujitsu_hotkey_notify': fujitsu-laptop.c:(.text+0xab261): undefined reference to `input_event' drivers/built-in.o:fujitsu-laptop.c:(.text+0xab26e): more undefined references to `input_event' follow drivers/built-in.o: In function `acpi_fujitsu_hotkey_add': fujitsu-laptop.c:(.text+0xab49c): undefined reference to `input_allocate_device' fujitsu-laptop.c:(.text+0xab51a): undefined reference to `input_register_device' fujitsu-laptop.c:(.text+0xab5e4): undefined reference to `input_free_device' make[1]: *** [.tmp_vmlinux1] Error 1 Signed-off-by: Randy Dunlap Signed-off-by: Andi Kleen Acked-by: Jonathan Woithe Signed-off-by: Andrew Morton Signed-off-by: Len Brown commit 25f2f3daadaf0768a61d02ee3ed3d9a21e9dc46c Author: Rafael J. Wysocki Date: Wed Jun 11 22:09:45 2008 +0200 snapshot: Use pm_mutex for mutual exclusion We can avoid taking the BKL in snapshot_ioctl() if pm_mutex is used to prevent the ioctls from being executed concurrently. In addition, although it is only possible to open /dev/snapshot once, the task which has done that may spawn a child that will inherit the open descriptor, so in theory they can call snapshot_write(), snapshot_read() and snapshot_release() concurrently. pm_mutex can also be used for mutual exclusion in such cases. Signed-off-by: Rafael J. Wysocki Signed-off-by: Andi Kleen Acked-by: Pavel Machek Signed-off-by: Len Brown commit 52d11025dba32bed696eaee1822b26529e764770 Author: Alan Cox Date: Wed Jun 11 22:07:52 2008 +0200 snapshot: Push BKL down into ioctl handlers Push BKL down into ioctl handlers - snapshot device. Signed-off-by: Alan Cox Signed-off-by: Rafael J. Wysocki Signed-off-by: Len Brown Signed-off-by: Andi Kleen commit ebb12db51f6c13b30752fcf506baad4c617b153c Author: Rafael J. Wysocki Date: Wed Jun 11 22:04:29 2008 +0200 Freezer: Introduce PF_FREEZER_NOSIG The freezer currently attempts to distinguish kernel threads from user space tasks by checking if their mm pointer is unset and it does not send fake signals to kernel threads. However, there are kernel threads, mostly related to networking, that behave like user space tasks and may want to be sent a fake signal to be frozen. Introduce the new process flag PF_FREEZER_NOSIG that will be set by default for all kernel threads and make the freezer only send fake signals to the tasks having PF_FREEZER_NOSIG unset. Provide the set_freezable_with_signal() function to be called by the kernel threads that want to be sent a fake signal for freezing. This patch should not change the freezer's observable behavior. Signed-off-by: Rafael J. Wysocki Signed-off-by: Andi Kleen Acked-by: Pavel Machek Signed-off-by: Len Brown commit d20a4dca47d2cd027ed58a13f91b424affd1f449 Author: Johannes Berg Date: Wed Jun 11 22:03:10 2008 +0200 APM emulation: Notify about all suspend events, not just APM invoked ones (v2) This revamps the apm-emulation code to get suspend notifications regardless of what way pm_suspend() was invoked, whether via the apm ioctl or via /sys/power/state. Also do some code cleanup and add comments while at it. Signed-off-by: Johannes Berg Signed-off-by: Rafael J. Wysocki Signed-off-by: Len Brown Signed-off-by: Andi Kleen commit 741438b5008791327d2183cebcd7ac9cfad64ec6 Author: Rafael J. Wysocki Date: Thu Jun 5 01:17:28 2008 +0200 ACPI PM: Remove obsolete Toshiba workaround Remove the obsolete workaround for a Toshiba Satellite 4030cdt S1 problem from drivers/acpi/sleep/main.c . Signed-off-by: Rafael J. Wysocki Signed-off-by: Andi Kleen Acked-by: Pavel Machek Signed-off-by: Len Brown commit a80a6da145bab8ee77af304961fc926de7a8ac84 Author: Rafael J. Wysocki Date: Thu Jun 5 01:16:37 2008 +0200 PCI ACPI: Drop the second argument of platform_pci_choose_state Since the second argument of acpi_pci_choose_state() and platform_pci_choose_state() is never used, remove it. Signed-off-by: Rafael J. Wysocki Signed-off-by: Andi Kleen Acked-by: Pavel Machek Signed-off-by: Len Brown commit 2fe2de5f6c283a7d2a82c1b99a19012079cee555 Author: David Brownell Date: Thu Jun 5 01:15:40 2008 +0200 ACPI PM: acpi_pm_device_sleep_state() cleanup Get rid of a superfluous acpi_pm_device_sleep_state() parameter. The only legitimate value of that parameter must be derived from the first parameter, which is what all the callers already do. (However, this does not address the fact that ACPI still doesn't set up those flags.) Signed-off-by: David Brownell Signed-off-by: Andi Kleen Acked-by: Pavel Machek Signed-off-by: Rafael J. Wysocki Signed-off-by: Len Brown commit cc7e51666d82aedfd6b9a033ca1a10d71c21f1ca Author: Len Brown Date: Tue Jun 24 22:57:12 2008 -0400 dock: bay: Don't call acpi_walk_namespace() when ACPI is disabled. Signed-off-by: Len Brown Signed-off-by: Andi Kleen commit d1857056904d5f313f11184fcfa624652ff9620a Author: Vegard Nossum Date: Fri Jun 20 15:39:09 2008 +0200 ACPI: don't walk tables if ACPI was disabled Ingo Molnar wrote: > -tip auto-testing started triggering this spinlock corruption message > yesterday: > > [ 3.976213] calling acpi_rtc_init+0x0/0xd3 > [ 3.980213] ACPI Exception (utmutex-0263): AE_BAD_PARAMETER, Thread F7C50000 could not acquire Mutex [3] [20080321] > [ 3.992213] BUG: spinlock bad magic on CPU#0, swapper/1 > [ 3.992213] lock: c2508dc4, .magic: 00000000, .owner: swapper/1, .owner_cpu: 0 This is apparently because some parts of ACPI, including mutexes, are not initialized when acpi=off is passed to the kernel. Reported-by: Ingo Molnar Signed-off-by: Vegard Nossum Signed-off-by: Len Brown Signed-off-by: Andi Kleen commit 860f0c6b3dcaa455894f690647442dc97cab19c8 Author: Carlos Corbacho Date: Sat Jun 21 09:09:58 2008 +0100 acer-wmi: Remove version number It doesn't make much sense these days. Signed-off-by: Carlos Corbacho Signed-off-by: Len Brown Signed-off-by: Andi Kleen commit 81143522aa823036c4aa35bdd3b2e41966cf6e15 Author: Carlos Corbacho Date: Sat Jun 21 09:09:53 2008 +0100 acer-wmi: Add debugfs file for device detection Add a debugfs file for showing the full results of the method we use to detect devices on WMID laptops. This should be useful in the case that a Linux user gets an Acer laptop with 3G support (and/ or people who enjoy ripping their wireless cards out) so we can get some feedback on how this value changes in these cases. (At the moment, we always enable the wireless and 3G control. In the case of the former, this is fairly safe. In the case of the latter though, trying to toggle this device if it doesn't exist on a laptop causes ACPI warnings/ errors). To summarise: If you have an Acer laptop with a built in 3G card, please report back the value from this file. Signed-off-by: Carlos Corbacho Signed-off-by: Len Brown Signed-off-by: Andi Kleen commit 5753dd539a86d8fc40a25e1a2cd1005a6525f083 Author: Carlos Corbacho Date: Sat Jun 21 09:09:48 2008 +0100 acer-wmi: Disable device autodetection on Fujitsu Siemens Amilo Li2732 The AMW0 (V1) device detection method doesn't work properly on this laptop, so disable it, and for other laptops that may have this problem, by switching on a strange GUID. Signed-off-by: Carlos Corbacho Signed-off-by: Len Brown Signed-off-by: Andi Kleen commit 6f061ab5e55d7fe6ce0c36e8954f56f0d95348fb Author: Carlos Corbacho Date: Sat Jun 21 09:09:38 2008 +0100 acer-wmi: Add EC quirk for Fujitsu Siemens Amilo Li 1718 This laptop needs a different EC quirk from the standard Acer one to read the wireless status. Signed-off-by: Carlos Corbacho Signed-off-by: Len Brown Signed-off-by: Andi Kleen commit f2b585b4a31731b17b9769eae523986fa7fddcde Author: Carlos Corbacho Date: Sat Jun 21 09:09:27 2008 +0100 acer-wmi: Respect framebuffer blanking in backlight If the framebuffer has requested blanking, turn the backlight down. Also offer the user the option to do this. Reported-by: Michal Pecio Signed-off-by: Carlos Corbacho Signed-off-by: Len Brown Signed-off-by: Andi Kleen commit 9991d9f2bc75dc8735932240b67432d4073b8f60 Author: Carlos Corbacho Date: Sat Jun 21 09:09:22 2008 +0100 acer-wmi: Blacklist backlight on Acer Aspire 1520 & 1360 series A newer BIOS for these laptops adds ACPI-WMI support to them. However, it does not add support for the backlight via the EC, and we have no way to detect this on older machines, so blacklist it from them. Signed-off-by: Carlos Corbacho Signed-off-by: Len Brown Signed-off-by: Andi Kleen commit a0bbaf83311cd995136c9047f174d79c1075ee2d Author: Carlos Corbacho Date: Sat Jun 21 09:09:08 2008 +0100 acer-wmi: Remove LED colour comment from documentation This should have been removed when the colour was removed from the LED device name. Signed-off-by: Carlos Corbacho Signed-off-by: Len Brown Signed-off-by: Andi Kleen commit 141094612d2606395a7b9e8658d10ef5c487cf97 Author: Adrian Bunk Date: Wed Jun 25 19:25:47 2008 +0300 eeepc-laptop: static make the needlessly global cm_{g,s}etv[] static. Signed-off-by: Adrian Bunk Signed-off-by: Len Brown Signed-off-by: Andi Kleen commit 47c00d2bc2ef2cf8a608688144fe2093a2aa9507 Author: Vegard Nossum Date: Fri Jun 20 13:56:56 2008 +0200 ACPICA: fix mutex names in debug code. Reorder the mutex names to match the preceding #defines Signed-off-by: Vegard Nossum Signed-off-by: Len Brown Signed-off-by: Andi Kleen commit e38e8a0743b0e996a8a3fbea8908fe75a84f02c7 Author: Bob Moore Date: Fri Jun 13 08:28:55 2008 +0800 Make GPE disable more robust Implemented another change for the GPE disable. We now perform a read-change-write of the enable register instead of simply writing out the cached enable mask. This will prevent inadvertent enabling of GPEs if a rogue GPE is received during initialization (before GPE handlers are installed.) http://bugzilla.kernel.org/show_bug.cgi?id=6217 Signed-off-by: Bob Moore Signed-off-by: Lin Ming Signed-off-by: Len Brown Signed-off-by: Andi Kleen commit 87dc5e3218ba3d7a9293f9113f58455747a233ac Author: Cezary Jackiewicz Date: Thu Jun 12 22:08:59 2008 +0200 compal-laptop: remove unnecessary lcd_level attribute Signed-off-by: Cezary Jackiewicz Signed-off-by: Len Brown Signed-off-by: Andi Kleen commit 12b2b34e240a24bdbb2fdacf26a54b24ebf1ed81 Author: Randy Dunlap Date: Tue Jun 17 09:43:41 2008 -0700 acpi: fix printk format warning Fix printk format warning: linux-next-20080617/drivers/acpi/processor_throttling.c:1258: warning: format '%d' expects type 'int', but argument 4 has type 'size_t' Signed-off-by: Randy Dunlap Signed-off-by: Len Brown Signed-off-by: Andi Kleen commit 3d532d5e3882c1387a2722df2a368c4a9224b12f Author: Yi Yang Date: Sat Jun 14 00:54:37 2008 -0400 ACPI: fix processor throttling set error http://bugzilla.kernel.org/show_bug.cgi?id=9704 When echo some invalid values to /proc/acpi/processor/*/throttling, there isn't any error info returned, on the contray, it sets throttling value to some T* successfully, obviously, this is incorrect, a correct way should be to let it fail and return error info. This patch fixed the aforementioned issue, it also enables /proc/acpi/processor/*/throttling to accept such values as 't0' and 'T0', it also strictly limits /proc/acpi/processor/*/throttling only to accept "*", "t*" and "T*", "*" is the throttling state value the processor can support, current, it is 0 - 7. Before applying this patch, the test result is below: [root@localhost acpi]# cat /proc/acpi/processor/CPU0/throttling state count: 8 active state: T1 state available: T0 to T7 states: T0: 100% *T1: 87% T2: 75% T3: 62% T4: 50% T5: 37% T6: 25% T7: 12% [root@localhost acpi]# echo "1xxxxxx" > /proc/acpi/processor/CPU0/throttling [root@localhost acpi]# cat /proc/acpi/processor/CPU0/throttling state count: 8 active state: T1 state available: T0 to T7 states: T0: 100% *T1: 87% T2: 75% T3: 62% T4: 50% T5: 37% T6: 25% T7: 12% [root@localhost acpi]# echo "0" > /proc/acpi/processor/CPU0/throttling [root@localhost acpi]# cat /proc/acpi/processor/CPU0/throttling state count: 8 active state: T0 state available: T0 to T7 states: *T0: 100% T1: 87% T2: 75% T3: 62% T4: 50% T5: 37% T6: 25% T7: 12% [root@localhost acpi]# cd / [root@localhost /]# cat /proc/acpi/processor/CPU0/throttling state count: 8 active state: T0 state available: T0 to T7 states: *T0: 100% T1: 87% T2: 75% T3: 62% T4: 50% T5: 37% T6: 25% T7: 12% [root@localhost /]# echo "T0" > /proc/acpi/processor/CPU0/throttling [root@localhost /]# cat /proc/acpi/processor/CPU0/throttling state count: 8 active state: T0 state available: T0 to T7 states: *T0: 100% T1: 87% T2: 75% T3: 62% T4: 50% T5: 37% T6: 25% T7: 12% [root@localhost /]# echo "T7" > /proc/acpi/processor/CPU0/throttling [root@localhost /]# cat /proc/acpi/processor/CPU0/throttling state count: 8 active state: T0 state available: T0 to T7 states: *T0: 100% T1: 87% T2: 75% T3: 62% T4: 50% T5: 37% T6: 25% T7: 12% [root@localhost /]# echo "T100" > /proc/acpi/processor/CPU0/throttling [root@localhost /]# cat /proc/acpi/processor/CPU0/throttling state count: 8 active state: T0 state available: T0 to T7 states: *T0: 100% T1: 87% T2: 75% T3: 62% T4: 50% T5: 37% T6: 25% T7: 12% [root@localhost /]# echo "xxx" > /proc/acpi/processor/CPU0/throttling [root@localhost /]# cat /proc/acpi/processor/CPU0/throttling state count: 8 active state: T0 state available: T0 to T7 states: *T0: 100% T1: 87% T2: 75% T3: 62% T4: 50% T5: 37% T6: 25% T7: 12% [root@localhost /]# echo "2xxxx" > /proc/acpi/processor/CPU0/throttling [root@localhost /]# cat /proc/acpi/processor/CPU0/throttling state count: 8 active state: T2 state available: T0 to T7 states: T0: 100% T1: 87% *T2: 75% T3: 62% T4: 50% T5: 37% T6: 25% T7: 12% [root@localhost /]# echo "" > /proc/acpi/processor/CPU0/throttling [root@localhost /]# cat /proc/acpi/processor/CPU0/throttling state count: 8 active state: T0 state available: T0 to T7 states: *T0: 100% T1: 87% T2: 75% T3: 62% T4: 50% T5: 37% T6: 25% T7: 12% [root@localhost /]# echo "7777" > /proc/acpi/processor/CPU0/throttling -bash: echo: write error: Invalid argument [root@localhost /]# echo "7xxx" > /proc/acpi/processor/CPU0/throttling [root@localhost /]# cat /proc/acpi/processor/CPU0/throttling state count: 8 active state: T7 state available: T0 to T7 states: T0: 100% T1: 87% T2: 75% T3: 62% T4: 50% T5: 37% T6: 25% *T7: 12% [root@localhost /]# After applying this patch, the test result is below: [root@localhost linux-2.6.24-rc6]# echo > /proc/acpi/processor/CPU0/throttling -bash: echo: write error: Invalid argument [root@localhost linux-2.6.24-rc6]# echo "" > /proc/acpi/processor/CPU0/throttling -bash: echo: write error: Invalid argument [root@localhost linux-2.6.24-rc6]# echo "0" > /proc/acpi/processor/CPU0/throttling [root@localhost linux-2.6.24-rc6]# echo "t0" > /proc/acpi/processor/CPU0/throttling [root@localhost linux-2.6.24-rc6]# echo "T0" > /proc/acpi/processor/CPU0/throttling [root@localhost linux-2.6.24-rc6]# cat /proc/acpi/processor/CPU0/throttling state count: 8 active state: T0 state available: T0 to T7 states: *T0: 100% T1: 87% T2: 75% T3: 62% T4: 50% T5: 37% T6: 25% T7: 12% [root@localhost linux-2.6.24-rc6]# echo "T7" > /proc/acpi/processor/CPU0/throttling [root@localhost linux-2.6.24-rc6]# cat /proc/acpi/processor/CPU0/throttling state count: 8 active state: T7 state available: T0 to T7 states: T0: 100% T1: 87% T2: 75% T3: 62% T4: 50% T5: 37% T6: 25% *T7: 12% [root@localhost linux-2.6.24-rc6]# echo "T8" > /proc/acpi/processor/CPU0/throttling -bash: echo: write error: Invalid argument [root@localhost linux-2.6.24-rc6]# vi drivers/acpi/processor_throttling.c [root@localhost linux-2.6.24-rc6]# echo "T8" > /proc/acpi/processor/CPU0/throttling -bash: echo: write error: Invalid argument [root@localhost linux-2.6.24-rc6]# echo "t7" > /proc/acpi/processor/CPU0/throttling [root@localhost linux-2.6.24-rc6]# echo "t70" > /proc/acpi/processor/CPU0/throttling -bash: echo: write error: Invalid argument [root@localhost linux-2.6.24-rc6]# echo "70" > /proc/acpi/processor/CPU0/throttling -bash: echo: write error: Invalid argument [root@localhost linux-2.6.24-rc6]# echo "7000" > /proc/acpi/processor/CPU0/throttling -bash: echo: write error: Invalid argument [root@localhost linux-2.6.24-rc6]# echo "70" > /proc/acpi/processor/CPU0/throttling -bash: echo: write error: Invalid argument [root@localhost linux-2.6.24-rc6]# echo "xxx" > /proc/acpi/processor/CPU0/throttling -bash: echo: write error: Invalid argument [root@localhost linux-2.6.24-rc6]# echo > /proc/acpi/processor/CPU0/throttling -bash: echo: write error: Invalid argument [root@localhost linux-2.6.24-rc6]# echo -n > /proc/acpi/processor/CPU0/throttling [root@localhost linux-2.6.24-rc6]# echo -n "" > /proc/acpi/processor/CPU0/throttling [root@localhost linux-2.6.24-rc6]# echo $? 0 [root@localhost linux-2.6.24-rc6]# echo -n "" > /proc/acpi/processor/CPU0/throttling [root@localhost linux-2.6.24-rc6]# cat /proc/acpi/processor/CPU0/throttling state count: 8 active state: T7 state available: T0 to T7 states: T0: 100% T1: 87% T2: 75% T3: 62% T4: 50% T5: 37% T6: 25% *T7: 12% [root@localhost linux-2.6.24-rc6]# echo -n "" > /proc/acpi/processor/CPU0/throttling [root@localhost linux-2.6.24-rc6]# cat /proc/acpi/processor/CPU0/throttling state count: 8 active state: T7 state available: T0 to T7 states: T0: 100% T1: 87% T2: 75% T3: 62% T4: 50% T5: 37% T6: 25% *T7: 12% [root@localhost linux-2.6.24-rc6]# echo t0 > /proc/acpi/processor/CPU0/throttling [root@localhost linux-2.6.24-rc6]# echo T0 > /proc/acpi/processor/CPU0/throttling [root@localhost linux-2.6.24-rc6]# echo Tt0 > /proc/acpi/processor/CPU0/throttling -bash: echo: write error: Invalid argument [root@localhost linux-2.6.24-rc6]# echo T > /proc/acpi/processor/CPU0/throttling -bash: echo: write error: Invalid argument [root@localhost linux-2.6.24-rc6]# Signed-off-by: Yi Yang Signed-off-by: Len Brown Signed-off-by: Andi Kleen commit 6594d87ebd8371f4b67f7ab4b68f172b139b78d6 Author: Yi Yang Date: Sat Jun 14 00:52:06 2008 -0400 ACPI: fix acpi fan state set error Under /proc/acpi, there is a fan control interface, a user can set 0 or 3 to /proc/acpi/fan/*/state, 0 denotes D0 state, 3 denotes D3 state, but in current implementation, a user can set a fan to D1 state by any char excluding '1', '2' and '3'. For example: [root@localhost acpi]# cat /proc/acpi/fan/C31B/state status: off [root@localhost acpi]# echo "" > /proc/acpi/fan/C31B/state [root@localhost acpi]# cat /proc/acpi/fan/C31B/state status: on [root@localhost acpi]# echo "3" > /proc/acpi/fan/C31B/state [root@localhost acpi]# cat /proc/acpi/fan/C31B/state status: off [root@localhost acpi]# echo "xxxxx" > /proc/acpi/fan/C31B/state [root@localhost acpi]# cat /proc/acpi/fan/C31B/state status: on Obviously, such inputs as "" and "xxxxx" are invalid for fan state. This patch fixes this issue, it strictly limits fan state only to accept 0, 1, 2 and 3, any other inputs are invalid. Before applying this patch, the test result is: [root@localhost acpi]# cat /proc/acpi/fan/C31B/state status: off [root@localhost acpi]# echo "" > /proc/acpi/fan/C31B/state [root@localhost acpi]# cat /proc/acpi/fan/C31B/state status: on [root@localhost acpi]# echo "3" > /proc/acpi/fan/C31B/state [root@localhost acpi]# cat /proc/acpi/fan/C31B/state status: off [root@localhost acpi]# echo "xxxxx" > /proc/acpi/fan/C31B/state [root@localhost acpi]# cat /proc/acpi/fan/C31B/state status: on [root@localhost acpi]# echo "3" > /proc/acpi/fan/C31B/state [root@localhost acpi]# cat /proc/acpi/fan/C31B/state status: off [root@localhost acpi]# echo "3x" > /proc/acpi/fan/C31B/state [root@localhost acpi]# cat /proc/acpi/fan/C31B/state status: off [root@localhost acpi]# echo "-1x" > /proc/acpi/fan/C31B/state [root@localhost acpi]# cat /proc/acpi/fan/C31B/state status: on [root@localhost acpi]# After applying this patch, the test result is: [root@localhost ~]# cat /proc/acpi/fan/C31B/state status: off [root@localhost ~]# echo "" > /proc/acpi/fan/C31B/state -bash: echo: write error: Invalid argument [root@localhost ~]# cat /proc/acpi/fan/C31B/state status: off [root@localhost ~]# echo "3" > /proc/acpi/fan/C31B/state [root@localhost ~]# cat /proc/acpi/fan/C31B/state status: off [root@localhost ~]# echo "xxxxx" > /proc/acpi/fan/C31B/state -bash: echo: write error: Invalid argument [root@localhost ~]# cat /proc/acpi/fan/C31B/state status: off [root@localhost ~]# echo "-1x" > /proc/acpi/fan/C31B/state -bash: echo: write error: Invalid argument [root@localhost ~]# cat /proc/acpi/fan/C31B/state status: off [root@localhost ~]# echo "0" > //proc/acpi/fan/C31B/state [root@localhost ~]# cat /proc/acpi/fan/C31B/state status: on [root@localhost ~]# echo "4" > //proc/acpi/fan/C31B/state -bash: echo: write error: Invalid argument [root@localhost ~]# cat /proc/acpi/fan/C31B/state status: on [root@localhost ~]# echo "3" > //proc/acpi/fan/C31B/state [root@localhost ~]# cat /proc/acpi/fan/C31B/state status: off [root@localhost ~]# echo "0" > //proc/acpi/fan/C31B/state [root@localhost ~]# cat /proc/acpi/fan/C31B/state status: on [root@localhost ~]# echo "3x" > //proc/acpi/fan/C31B/state -bash: echo: write error: Invalid argument [root@localhost ~]# Signed-off-by: Yi Yang Signed-off-by: Andi Kleen Acked-by: Zhang Rui Signed-off-by: Len Brown commit 74523c901342a773ddd9f14c14539ec3d4197ecf Author: Alok N Kataria Date: Fri Jun 13 12:54:24 2008 -0400 ACPI: fix checkpatch.pl complaints in scan.c http://bugzilla.kernel.org/show_bug.cgi?id=9772 Signed-off-by: Alok N Kataria Signed-off-by: Len Brown Signed-off-by: Andi Kleen commit 20b937343e55c16e37b1a4ad2176760b4a11002c Author: Jonathan Woithe Date: Wed Jun 11 10:14:56 2008 +0930 Fujitsu-laptop update Add additional capabilities to the Fujitsu-laptop driver. * Brightness hotkey actions are sent to userspace. This can be disabled using a module parameter if it causes issues with models which handle these keys transparently in the BIOS. * Actions of additional hotkeys found on some Fujitsu models (eg: the suspend key and the dedicated "power on passphrase" keys) are broadcast to userspace. * An alternative brightness control method used by some Fujitsu models (for example, the S6410) is now supported, enabling software brightness controls on models using this method. * DMI-based module aliases are configured for the S6410 and S7020. * The current LCD brightness after booting should now be reflected in the standard backlight interface sysfs file (previously it was always set to 0). The platform brightness sysfs interface has always been fine. Thanks go to Peter Gruber who provided a significant portion of this code and tested various iterations of the patch on his S6410. Signed-off-by: Peter Gruber Signed-off-by: Jonathan Woithe Signed-off-by: Len Brown Signed-off-by: Andi Kleen commit 706546d02384b64e083bd9130c56eaa599c66038 Author: Mike Travis Date: Mon Jun 9 16:22:23 2008 -0700 ACPI: change processors from array to per_cpu variable Change processors from an array sized by NR_CPUS to a per_cpu variable. Signed-off-by: Mike Travis Signed-off-by: Andrew Morton Signed-off-by: Len Brown Signed-off-by: Andi Kleen commit 5411552c707f4b7387ad63141ef3a559e7488091 Author: Cezary Jackiewicz Date: Mon Jun 9 16:22:22 2008 -0700 misc,acpi,backlight: compal Laptop Extras This is driver for Compal Laptop: FL90/IFL90, based on MSI driver. This driver exports a few files in /sys/devices/platform/compal-laptop/: lcd_level - screen brightness: contains a single integer in the range 0..7 (rw) wlan - wlan subsystem state: contains 0 or 1 (rw) bluetooth - bluetooth subsystem state: contains 0 or 1 (rw) raw - raw value taken from embedded controller register (ro) In addition to these platform device attributes the driver registers itself in the Linux backlight control subsystem and is available to userspace under /sys/class/backlight/compal-laptop/. Signed-off-by: Cezary Jackiewicz Signed-off-by: Andi Kleen Cc: Richard Purdie Cc: Henrique de Moraes Holschuh Cc: Len Brown Cc: Alexey Starikovskiy Signed-off-by: Andrew Morton Signed-off-by: Len Brown commit 9f1eb99c757939b0b1783f926130993e9c298bae Author: Zhang Rui Date: Tue Apr 29 02:36:07 2008 -0400 create sysfs link from acpi device to sysdev for cpu Sys I/F under acpi device node and sysdev device node are both needed for cpu hot-removal. User space need this link so that they know they are poking the sys I/F for the same cpu. http://bugzilla.kernel.org/show_bug.cgi?id=9772 Signed-off-by: Zhang Rui Signed-off-by: Len Brown Signed-off-by: Andi Kleen commit b62b8ef906cdf7115af579ce7378886ce3e0ce00 Author: Zhang Rui Date: Tue Apr 29 02:35:56 2008 -0400 force offline the processor during hot-removal The ACPI device node for the cpu has already been unregistered when acpi_processor_handle_eject is called. Thus we should offline the cpu and continue, rather than a failure here. http://bugzilla.kernel.org/show_bug.cgi?id=9772 Signed-off-by: Zhang Rui Signed-off-by: Len Brown Signed-off-by: Andi Kleen commit 26d46867b7d27f68a446b073dac7817721ae4c8f Author: Zhang Rui Date: Tue Apr 29 02:35:48 2008 -0400 fix a deadlock issue when poking "eject" file "/sys/devices/LNXSYSTM:00/.../eject" is used to evaluate _EJx method and eject a device in user space. But system hangs when poking the "eject" file because that the device hot-removal code invoke the driver .remove method which will try to remove the "eject" file as a result. Queues the hot-removal function for deferred execution in this patch. http://bugzilla.kernel.org/show_bug.cgi?id=9772 Signed-off-by: Zhang Rui Signed-off-by: Len Brown Signed-off-by: Andi Kleen commit a3cf859321486f69506326146ab3e2fd15c05c3f Merge: 3c3622d... 33468e7... Author: Linus Torvalds Date: Wed Jul 16 11:47:35 2008 -0700 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: (44 commits) hwmon: (w83l786ng) Convert to a new-style i2c driver hwmon: (w83l785ts) Convert to a new-style i2c driver hwmon: (w83793) Convert to a new-style i2c driver hwmon: (w83792d) Convert to a new-style i2c driver hwmon: (w83791d) Convert to a new-style i2c driver hwmon: (thmc50) Convert to a new-style i2c driver hwmon: (smsc47m192) Convert to a new-style i2c driver hwmon: (max6650) Convert to a new-style i2c driver hwmon: (max1619) Convert to a new-style i2c driver hwmon: (lm93) Convert to a new-style i2c driver hwmon: (lm92) Convert to a new-style i2c driver hwmon: (lm90) Convert to a new-style i2c driver hwmon: (lm87) Convert to a new-style i2c driver hwmon: (lm83) Convert to a new-style i2c driver hwmon: (lm80) Convert to a new-style i2c driver hwmon: (lm77) Convert to a new-style i2c driver hwmon: (lm63) Convert to a new-style i2c driver hwmon: (gl520sm) Convert to a new-style i2c driver hwmon: (gl518sm) Convert to a new-style i2c driver hwmon: (fscpos) Convert to a new-style i2c driver ... commit 3c3622dcb64c76c9abd2e468f802db9ba523421c Author: Randy Dunlap Date: Wed Jul 16 08:52:00 2008 -0500 Fix compile issues in fs/compat_ioctl.c when CONFIG_BLOCK is disabled Fix fs/compat_ioctl.c to handle CONFIG_BLOCK=n, CONFIG_SCSI=n to avoid build errors: In file included from include/scsi/scsi.h:12, from fs/compat_ioctl.c:71: include/scsi/scsi_cmnd.h:27:25: warning: "BLK_MAX_CDB" is not defined include/scsi/scsi_cmnd.h:28:3: error: #error MAX_COMMAND_SIZE can not be bigger than BLK_MAX_CDB In file included from include/scsi/scsi.h:12, from fs/compat_ioctl.c:71: include/scsi/scsi_cmnd.h: In function 'scsi_bidi_cmnd': include/scsi/scsi_cmnd.h:182: error: implicit declaration of function 'blk_bidi_rq' include/scsi/scsi_cmnd.h:183: error: dereferencing pointer to incomplete type include/scsi/scsi_cmnd.h: In function 'scsi_in': include/scsi/scsi_cmnd.h:189: error: dereferencing pointer to incomplete type Signed-off-by: Randy Dunlap Signed-off-by: Linus Torvalds commit e3621ee633810be1079d0fa65ac2c904f53b73fa Author: Kumar Gala Date: Wed Jul 16 08:39:12 2008 -0500 powerpc/ep8248e: Fix compile problem if !CONFIG_FS_ENET If we don't enable FS_ENET we get build issues: arch/powerpc/platforms/built-in.o: In function `ep8248e_mdio_probe': arch/powerpc/platforms/82xx/ep8248e.c:129: undefined reference to `alloc_mdio_bitbang' arch/powerpc/platforms/82xx/ep8248e.c:143: undefined reference to `mdiobus_register' Signed-off-by: Kumar Gala Signed-off-by: Linus Torvalds commit bef5b54bd7bf8117c75cb943d64549134c6d9a1f Author: Ralf Baechle Date: Wed Jul 16 13:02:24 2008 +0100 Fix MIPS cross-compile problem Crosscompiling on a Fedora 9 machine running gcc 4.3.0 as its host compiler and gcc 3.4.6 for the mips-linux target results in the following build error: $ make malta_defconfig $ make cc1: error: unrecognized command line option "-fno-stack-protector" scripts/kconfig/conf -s arch/mips/Kconfig cc1: error: unrecognized command line option "-fno-stack-protector" The arch Makefile is included too late so the host compiler is feature tested, not the crosscompiler as intended and thus the Makefile applies adds -fno-stack-protector to crosscompiler's flags which fails for gcc 3.4.6. The bug was introduced by e06b8b98da071f7dd78fb7822991694288047df0 in 2.6.25; 35bb5b1e0e84cfa1a8906f7e6a77f391ff315791 did add more flags testing before the arch Makefile inclusion. Signed-off-by: Ralf Baechle Signed-off-by: Linus Torvalds commit 64a8f00ff19508b3962c8a932375dbae88bee4d6 Author: Elias Oltmanns Date: Wed Jul 16 20:33:48 2008 +0200 IDE: Report errors during drive reset back to user space Make sure that each error condition during the execution of an HDIO_DRIVE_RESET ioctl is actually reported to the calling process. Also, unify the exit path of reset_pollfunc() when returning ide_stopped since the need of ->port_ops->reset_poll() to be treated specially has vanished (way back, it seems). Signed-off-by: Elias Oltmanns Cc: "Alan Cox" Cc: "Randy Dunlap" Signed-off-by: Bartlomiej Zolnierkiewicz commit bb7ee9b1ec15358af870a81b0c6a03af29417f99 Author: Elias Oltmanns Date: Wed Jul 16 20:33:48 2008 +0200 Update documentation of HDIO_DRIVE_RESET ioctl Alter the entry for HDIO_DRIVE_RESET in Documentation/ioctl/hdio.txt to reflect a functional change in the driver. Besides, the entry has been inaccurate before. Signed-off-by: Elias Oltmanns Cc: "Alan Cox" Cc: "Randy Dunlap" Signed-off-by: Bartlomiej Zolnierkiewicz commit 3ef5eb424ebf0cd981192a416358fd707a9f959b Author: Elias Oltmanns Date: Wed Jul 16 20:33:48 2008 +0200 IDE: Remove unused code Remove some code which has been made obsolete and hasn't worked properly before anyway. Part of the infrastructure may be reintroduced in a follow up patch to implement a working command aborting facility. Signed-off-by: Elias Oltmanns Cc: "Alan Cox" Cc: "Randy Dunlap" Signed-off-by: Bartlomiej Zolnierkiewicz commit 79e36a9f54aaf4a52eb2d9520953aa3960e99294 Author: Elias Oltmanns Date: Wed Jul 16 20:33:48 2008 +0200 IDE: Fix HDIO_DRIVE_RESET handling Currently, the code path executing an HDIO_DRIVE_RESET ioctl is broken in various ways. Most importantly, it is treated as an out of band request in an illegal way which may very likely lead to system lock ups. Use the drive's request queue to avoid this problem (and fix a locking issue for free along the way). Signed-off-by: Elias Oltmanns Cc: "Alan Cox" Cc: "Randy Dunlap" Signed-off-by: Bartlomiej Zolnierkiewicz commit 72a3d651b2fe341a8ae2ca164c395aa3007350cd Author: Adrian Bunk Date: Wed Jul 16 20:33:48 2008 +0200 hd.c: remove the #include The code that needed this #include was removed one year ago. Signed-off-by: Adrian Bunk Cc: rmk@arm.linux.org.uk Cc: Alan Cox Signed-off-by: Bartlomiej Zolnierkiewicz commit f327c1c33f4882c70f29ff3a9ff7c55c1951d1f6 Author: Adrian Bunk Date: Wed Jul 16 20:33:47 2008 +0200 update the BLK_DEV_HD help text Many people will see this option the first time now that it is in drivers/block/ Make it clear that virtually noone needs it. Signed-off-by: Adrian Bunk Cc: rmk@arm.linux.org.uk Cc: Alan Cox Signed-off-by: Bartlomiej Zolnierkiewicz commit 453ea3ed0b3e8ad67d4ee9d2fccf3d95a3e1f709 Author: Adrian Bunk Date: Wed Jul 16 20:33:47 2008 +0200 move ide/legacy/hd.c to drivers/block/ This patch moves hd.c to drivers/block/ Signed-off-by: Adrian Bunk Cc: rmk@arm.linux.org.uk Cc: Alan Cox Signed-off-by: Bartlomiej Zolnierkiewicz commit 01c22bfc30a3f40fed08cfd2779348edcb6c5e53 Author: Adrian Bunk Date: Wed Jul 16 20:33:47 2008 +0200 ide/legacy/hd.c: use late_initcall() Since the later move to drivers/block/ will break the link order, the module_init() has to become a late_initcall(). Signed-off-by: Adrian Bunk Cc: rmk@arm.linux.org.uk Cc: Alan Cox Signed-off-by: Bartlomiej Zolnierkiewicz commit ffa793f9bb5b563edb4cacc43a4d6677eec0e36b Author: Adrian Bunk Date: Wed Jul 16 20:33:47 2008 +0200 remove BLK_DEV_HD_ONLY After commit 80aa31cb460d12c1e02327b43eceb3eebc6e7090 (ide: remove CONFIG_BLK_DEV_HD_IDE config option (take 2)) the indirection through BLK_DEV_HD_ONLY is no longer required. Signed-off-by: Adrian Bunk Cc: rmk@arm.linux.org.uk Cc: Alan Cox Signed-off-by: Bartlomiej Zolnierkiewicz commit 85ae98a3dff2da860a4f8f9e4a0de69ad82ce633 Author: Harvey Harrison Date: Wed Jul 16 20:33:47 2008 +0200 ide: endian annotations in ide-floppy.c Signed-off-by: Harvey Harrison Cc: Al Viro Cc: Borislav Petkov Signed-off-by: Bartlomiej Zolnierkiewicz commit 68dc3575e064a5655cbd656fbf32d6ceeb85ac9e Author: Borislav Petkov Date: Wed Jul 16 20:33:47 2008 +0200 ide-floppy: zero out the whole struct ide_atapi_pc on init This is a precaution just to make sure a new pc is clean when allocated. There should be no functional change introduced by this patch. [bart: ported it over IDE changes] Signed-off-by: Borislav Petkov Signed-off-by: Bartlomiej Zolnierkiewicz commit c96a7df8dba5800c03b0f1edd87b2f3d0473a119 Author: Borislav Petkov Date: Wed Jul 16 20:33:46 2008 +0200 ide-floppy: fold idefloppy_create_test_unit_ready_cmd into idefloppy_open There's no need for this function since it is used only once. [bart: ported it over IDE changes] Signed-off-by: Borislav Petkov Signed-off-by: Bartlomiej Zolnierkiewicz commit 7fcebda501681080a242733b8db3f09f5ccb5d3f Author: Borislav Petkov Date: Wed Jul 16 20:33:46 2008 +0200 ide-cd: move request prep chunk from cdrom_do_newpc_cont to rq issue path As a nice side effect, this minimizes the IRQ handler execution time. There should be no functionality change resulting from this patch. [bart: remove extra newlines from ide_cd_do_request()] Signed-off-by: Borislav Petkov Signed-off-by: Bartlomiej Zolnierkiewicz commit 90eb808e0fd3cbda8a8b085238930c533f603642 Author: Borislav Petkov Date: Wed Jul 16 20:33:46 2008 +0200 ide-cd: move request prep from cdrom_start_rw_cont to rq issue path ... by factoring out the rq preparation code into a separate function called in the request routine. As a nice side effect, this minimizes the IRQ handler execution time. There should be no functionality change resulting from this patch. [bart: s/HWGROUP()/drive->hwif->hwgroup/ and remove extra newline] Signed-off-by: Borislav Petkov Signed-off-by: Bartlomiej Zolnierkiewicz commit e529c6087a845e64a6a36a2d17b8754b20bc7c0d Author: Borislav Petkov Date: Wed Jul 16 20:33:46 2008 +0200 ide-cd: move request prep from cdrom_start_seek_continuation to rq issue path ... by factoring out the rq preparation code into a separate function called in the request routine. As a nice side effect, this minimizes the IRQ handler execution time. There should be no functionality change resulting from this patch. [bart: s/HWGROUP()/drive->hwif->hwgroup/ and remove extra newlines] Signed-off-by: Borislav Petkov Signed-off-by: Bartlomiej Zolnierkiewicz commit 4b01fcbbe69bba34a8494fca6376ac0804f0f51d Author: Borislav Petkov Date: Wed Jul 16 20:33:46 2008 +0200 ide-cd: fold cdrom_start_seek into ide_cd_do_request Do what the compiler does anyway: inline a function that is used only once. This saves us the overhead of a function call and the function is small enough to be embedded in the callsite anyways. Signed-off-by: Borislav Petkov Signed-off-by: Bartlomiej Zolnierkiewicz commit b6ca440a8ff15e12478ea6f026a52970e7a0c54c Author: Borislav Petkov Date: Wed Jul 16 20:33:46 2008 +0200 ide-cd: simplify request issuing path Call cdrom_start_packet_command() only from the ->do_request() routine. As a nice side effect, this improves code readability a bit. There should be no functionality change resulting from this patch. Signed-off-by: Borislav Petkov Signed-off-by: Bartlomiej Zolnierkiewicz commit 99384aeafe3a78d8a2e66b09b67aa6a219cd7897 Author: Borislav Petkov Date: Wed Jul 16 20:33:45 2008 +0200 ide-cd: mv ide_do_rw_cdrom ide_cd_do_request There should be no functionality change resulting from this patch. Signed-off-by: Borislav Petkov Signed-off-by: Bartlomiej Zolnierkiewicz commit 8ea1d17b962c35401fe26428e25c4652023e2652 Author: Borislav Petkov Date: Wed Jul 16 20:33:45 2008 +0200 ide-cd: cdrom_start_seek: remove unused argument block There should be no functionality change resulting from this patch. Signed-off-by: Borislav Petkov Signed-off-by: Bartlomiej Zolnierkiewicz commit ab9d6e3374d938cf3d941fbed5ba32a19ad263b8 Author: Borislav Petkov Date: Wed Jul 16 20:33:45 2008 +0200 ide-cd: ide_do_rw_cdrom: add the catch-all bad request case to the if-else block There should be no functionality change resulting from this patch. Signed-off-by: Borislav Petkov Signed-off-by: Bartlomiej Zolnierkiewicz commit ae8789f034ffa077105575817ec0cc581fd18d83 Author: Borislav Petkov Date: Wed Jul 16 20:33:45 2008 +0200 ide-cd: remove ide_cd_drain_data and ide_cd_pad_transfer Use the generic ide_pad_transfer() helper instead. [bart: fixup ide_cd_drain_data() -> ide_pad_transfer() conversion] Signed-off-by: Borislav Petkov Signed-off-by: Bartlomiej Zolnierkiewicz commit af6765ce9f535f20e6f9975269660fe49594745a Author: Borislav Petkov Date: Wed Jul 16 20:33:45 2008 +0200 ide-cd: remove wait-for-idle-controller bit in cdrom_start_packet_command This is done in the request issue path anyway. Signed-off-by: Borislav Petkov Signed-off-by: Bartlomiej Zolnierkiewicz commit ce30e4015954e281f682aa8d158a47885d8e1262 Author: Bartlomiej Zolnierkiewicz Date: Wed Jul 16 20:33:44 2008 +0200 sgiioc4: call ide_find_port_slot() later Move ide_find_port_slot() call closer to ide_device_add(). This is basically a preparation for the future changes. Cc: Jeremy Higdon Signed-off-by: Bartlomiej Zolnierkiewicz commit cb8ea0929c9cb899d61c4e155aace0b34d8cffe3 Author: Bartlomiej Zolnierkiewicz Date: Wed Jul 16 20:33:44 2008 +0200 swarm: call ide_find_port_slot() later Move ide_find_port_slot() call closer to ide_device_add(). This is basically a preparation for the future changes. Cc: Maciej W. Rozycki Signed-off-by: Bartlomiej Zolnierkiewicz commit 67717e224181527987cce800fa2ddb5c8c1e9315 Author: Bartlomiej Zolnierkiewicz Date: Wed Jul 16 20:33:44 2008 +0200 icside: always try to probe first interface Try to probe first interface even if ide_hwifs[]'s slot for the second interface cannot be obtained. While at it: - Add DRV_NAME define and use it for request_dma() instead of hwif->name. Cc: Russell King Signed-off-by: Bartlomiej Zolnierkiewicz commit 47bc7e7425d198ad1f8c4597b0bf28619fcce0fd Author: Bartlomiej Zolnierkiewicz Date: Wed Jul 16 20:33:44 2008 +0200 rapide: fix rapide_probe() return value Return -ENOENT on ide_find_port() failure. While at it: - Cleanup rapide_probe() a bit. Cc: Russell King Signed-off-by: Bartlomiej Zolnierkiewicz commit ff23712e791fd80f3b088d5e1c5733c0944cfe64 Author: Bartlomiej Zolnierkiewicz Date: Wed Jul 16 20:33:44 2008 +0200 ide: remove needless includes from setup-pci.c (take 2) v2: * sparc build fix. (From Stephen Rothwell) Signed-off-by: Bartlomiej Zolnierkiewicz commit ad15e9fc8913b704978ffdda7d1f31c79ed6814d Author: Bartlomiej Zolnierkiewicz Date: Wed Jul 16 20:33:44 2008 +0200 ide: remove needless includes from ide-taskfile.c (take 2) v2: On Sunday 15 June 2008, Geert Uytterhoeven wrote: > As ide-taskfile.c uses scatterlists, it should include . (v1 broke IDE build on m68k, thanks to Geert for finding the bug) Cc: Geert Uytterhoeven Signed-off-by: Bartlomiej Zolnierkiewicz commit 61729415e64a1149d4eb36c3fac26a28728ad1d7 Author: Bartlomiej Zolnierkiewicz Date: Wed Jul 16 20:33:43 2008 +0200 ide: remove needless includes from ide.c Signed-off-by: Bartlomiej Zolnierkiewicz commit 605cfe8270cb182f494575c5a608404bb19fdfc5 Author: Bartlomiej Zolnierkiewicz Date: Wed Jul 16 20:33:43 2008 +0200 ide: remove superfluous BUG_ON() from set_geometry_intr() ide_set_handler() bugs on ->handler == NULL so no need to do it in set_geometry_intr(). There should be no functional changes caused by this patch. Signed-off-by: Bartlomiej Zolnierkiewicz commit 07fe69d5d0b6e476cecaf75e81c0c6093571087b Author: Bartlomiej Zolnierkiewicz Date: Wed Jul 16 20:33:43 2008 +0200 ide: allow any command requesting DMA data phase for HDIO_DRIVE_TASKFILE Allow any command requesting DMA data phase for HDIO_DRIVE_TASKFILE ioctl and remove no longer needed task_dma_ok() Signed-off-by: Bartlomiej Zolnierkiewicz commit e193c3e141df4b536ed077b29c83a96768333607 Author: Bartlomiej Zolnierkiewicz Date: Wed Jul 16 20:33:43 2008 +0200 ide-pnp: print driver banner message early Print driver banner message early and without interface number. Signed-off-by: Bartlomiej Zolnierkiewicz commit 740c397cc64272917a4c4c283649579d2044a836 Author: Bartlomiej Zolnierkiewicz Date: Wed Jul 16 20:33:43 2008 +0200 ide-h8300: print driver banner message early Print driver banner message early and without interface number. Signed-off-by: Bartlomiej Zolnierkiewicz commit eb3aff5530d22eb4be0a99c9d39c9ffde7b9891a Author: Bartlomiej Zolnierkiewicz Date: Wed Jul 16 20:33:42 2008 +0200 ide: print message on error in ide_find_port_slot() * Add DRV_NAME define to ide-h8300.c. * Fix ide-h8300.c, swarm.c and sgiioc4.c to set .name field in struct ide_port_info to DRV_NAME, then convert these host drivers to use ide_find_port_slot() instead of ide_find_port(). * Print message on error in ide_find_port_slot(). Signed-off-by: Bartlomiej Zolnierkiewicz commit 7b60fa16ca50b0f8cb9d007faee0dff71b397fb8 Author: Bartlomiej Zolnierkiewicz Date: Wed Jul 16 20:33:42 2008 +0200 ide_platform: use struct ide_port_info Convert the driver to use struct ide_port_info. There should be no functional changes caused by this patch. Signed-off-by: Bartlomiej Zolnierkiewicz commit f81eb80bbb949f9498980c785ef7dd4c994a4909 Author: Bartlomiej Zolnierkiewicz Date: Wed Jul 16 20:33:42 2008 +0200 ide-h8300: use struct ide_port_info Convert the driver to use struct ide_port_info. There should be no functional changes caused by this patch. Signed-off-by: Bartlomiej Zolnierkiewicz commit 9a5ae1faaaf43933dee48c223b193d5e1c4b8b0c Author: Bartlomiej Zolnierkiewicz Date: Wed Jul 16 20:33:42 2008 +0200 rapide: use struct ide_port_info Convert the driver to use struct ide_port_info. There should be no functional changes caused by this patch. Signed-off-by: Bartlomiej Zolnierkiewicz commit b48c89a9699f451e4e236fa7313461281c00e69b Author: Bartlomiej Zolnierkiewicz Date: Wed Jul 16 20:33:42 2008 +0200 cmd640: add ->init_dev method Convert the driver to use ->init_dev method instead of open-coding devices init in cmd640x_init(). While at it: - fix printk()-s to use KERN_INFO level instead of the default KERN_ERR - use DRV_NAME define in printk()-s - set proper ->pio_mask also for CONFIG_BLK_DEV_CMD640_ENHANCED=n There should be no functional changes caused by this patch (except fixing printk()-s levels). Signed-off-by: Bartlomiej Zolnierkiewicz commit e6d95bd14928926d6658b5e4ace905e8b83ed27a Author: Bartlomiej Zolnierkiewicz Date: Wed Jul 16 20:33:42 2008 +0200 ide: ->port_init_devs -> ->init_dev Change ->port_init_devs method to take 'ide_drive_t *' as an argument instead of 'ide_hwif_t *' and rename it to ->init_dev. There should be no functional changes caused by this patch. Signed-off-by: Bartlomiej Zolnierkiewicz commit a698400a1556cf9f0376d1a41e536973dd5c4747 Author: Bartlomiej Zolnierkiewicz Date: Wed Jul 16 20:33:41 2008 +0200 cmd640: fix warm-plug support for the secondary interface Register secondary interface also when user requested not to probe devices. While at it: - remove write-only second_port_toggled variable Signed-off-by: Bartlomiej Zolnierkiewicz commit ba1d0de70d64e68f0e035f00dbb041c1e05b49c9 Author: Arnd Bergmann Date: Wed Jul 16 20:33:41 2008 +0200 powerpc/ide: remove mpc8xx-ide driver This driver was only used by arch/ppc code and is obsolete now with the move to common arch/powerpc code. [bart: port it over IDE tree, remove leftover 'choice' from Kconfig] Signed-off-by: Arnd Bergmann Acked-by: Kumar Gala Cc: Paul Mackerras Signed-off-by: Bartlomiej Zolnierkiewicz commit e48905e9cfffd21861c3521d828ae992a53aac67 Author: Bartlomiej Zolnierkiewicz Date: Wed Jul 16 20:33:41 2008 +0200 swarm: use struct ide_port_info Convert the driver to use struct ide_port_info. There should be no functional changes caused by this patch. Acked-by: Maciej W. Rozycki Tested-by: Maciej W. Rozycki Signed-off-by: Bartlomiej Zolnierkiewicz commit c1da678b5b4d8ce7836ed1ded80109d1db37efe0 Author: Bartlomiej Zolnierkiewicz Date: Wed Jul 16 20:33:41 2008 +0200 ide: tighten checks on PCI BARs in ide_hwif_configure() Alan has fixed PCI layer handling of PCI IDE in Compatibility mode so PCI BAR 0/1 (and/or 2/3) content reported by kernel should never be zero. Tighten checks on PCI BARs and also fix printk() message while on it. Signed-off-by: Bartlomiej Zolnierkiewicz commit 01397012b3129147890bb116431d5a794dfc3990 Author: Bartlomiej Zolnierkiewicz Date: Wed Jul 16 20:33:41 2008 +0200 sgiioc4: use driver name for resource allocation Cc: Jeremy Higdon Signed-off-by: Bartlomiej Zolnierkiewicz commit b25afdf1336237fb0e4021eb35744e577e19bd14 Author: Bartlomiej Zolnierkiewicz Date: Wed Jul 16 20:33:41 2008 +0200 icside: use ide_init_port_hw() * Move ide_find_port() and default_hwif_mmiops() calls from icside_setup() to icside_register_v{5,6}(). * Convert icside_setup() to initialize hw_regs_t instead ide_hwif_t and icside_register_v{5,6}() to use ide_init_port_hw(). * Rename icside_setup() to icside_setup_ports(). There should be no functional changes caused by this patch. Cc: Russell King Signed-off-by: Bartlomiej Zolnierkiewicz commit 26839f09ca2d0f4239e546cd912bc9f4694f3c5e Author: Bartlomiej Zolnierkiewicz Date: Wed Jul 16 20:33:40 2008 +0200 icside: don't use hwif->hwif_data * Move ecard_set_drvdata() from icside_probe() to icside_register_v{5,6}(), then use state->ioc_base instead of hwif->hwif_data in icside_maskproc() and icside_dma_test_irq(). While at it: * Add sel field to struct icside_state, then use state->{sel,ioc_base} instead of ->{select,config}_data in icside_dma_setup(). There should be no functional changes caused by this patch. Cc: Russell King Signed-off-by: Bartlomiej Zolnierkiewicz commit dccdf527379dc2fe8a4efc5c75601d1d4035a750 Author: Bartlomiej Zolnierkiewicz Date: Wed Jul 16 20:33:40 2008 +0200 ide-cs: use struct ide_port_info Convert the driver to use struct ide_port_info. There should be no functional changes caused by this patch. Signed-off-by: Bartlomiej Zolnierkiewicz commit f333f92bf9040fb63d13c184295629c7a0ff449f Author: Bartlomiej Zolnierkiewicz Date: Wed Jul 16 20:33:40 2008 +0200 ide_4drives: use struct ide_port_info Convert the driver to use struct ide_port_info - as a nice side-effect this fixes hwif->channel initialization. Signed-off-by: Bartlomiej Zolnierkiewicz commit a536f326a2223c951818e199e23847c2ac5e483b Author: Bartlomiej Zolnierkiewicz Date: Wed Jul 16 20:33:40 2008 +0200 au1xxx-ide: don't use hwif->hwif_data * Use &auide_hwif directly instead of using hwif->hwif_data. While at it: * No need to initialize hwif->{select,config}_data. There should be no functional changes caused by this patch. Acked-by: Sergei Shtylyov Signed-off-by: Bartlomiej Zolnierkiewicz commit c56c5648a3bd15ff14c50f284b261140cd5b5472 Author: Bartlomiej Zolnierkiewicz Date: Wed Jul 16 20:33:40 2008 +0200 ide: set hwif->dev in ide_init_port_hw() (take 2) * Add 'parent' field to hw_regs_t for optional parent device pointer (needed by macio PMAC IDE controllers) and set hwif->dev in ide_init_port_hw(). * Update au1xxx-ide.c, sgiioc4.c, pmac.c and setup-pci.c accordingly. v2: * Update scc_pata.c. There should be no functional changes caused by this patch. Signed-off-by: Bartlomiej Zolnierkiewicz commit 63b51c6d1d63276fd320615c042f1ff5d94ebab8 Author: Bartlomiej Zolnierkiewicz Date: Wed Jul 16 20:33:40 2008 +0200 ide: make ide_hwifs[] static Move ide_hwifs[] from ide.c to ide-probe.c and make it static. Signed-off-by: Bartlomiej Zolnierkiewicz commit 256c5f8eef7b9a8c8a85c15c58cda9df455f947e Author: Bartlomiej Zolnierkiewicz Date: Wed Jul 16 20:33:39 2008 +0200 ide: fix hwif-s initialization * Add ide_hwifs[] entry initialization to ide_find_port_slot() and remove ide_init_port_data() calls from host drivers. * Unexport ide_init_port_data(). * Remove no longer needed init_ide_data(). Signed-off-by: Bartlomiej Zolnierkiewicz commit 9ad540937554a3779c5fe7af13aa390b1d2aeb3e Author: Bartlomiej Zolnierkiewicz Date: Wed Jul 16 20:33:39 2008 +0200 ide: move PIO blacklist to ide-pio-blacklist.c Move PIO blacklist to ide-pio-blacklist.c. While at it: - fix comment - fix whitespace damage There should be no functional changes caused by this patch. Signed-off-by: Bartlomiej Zolnierkiewicz commit 3e153cfb5e38ae237ff27a10a833946ac95db8a4 Author: Bartlomiej Zolnierkiewicz Date: Wed Jul 16 20:33:39 2008 +0200 ide: remove no longer used ide_pio_timings[] Acked-by: Sergei Shtylyov Signed-off-by: Bartlomiej Zolnierkiewicz commit c9d6c1a2379373219bb3271bdcbdc0ab2edf349d Author: Bartlomiej Zolnierkiewicz Date: Wed Jul 16 20:33:39 2008 +0200 ide: move ide_pio_cycle_time() to ide-timings.c All ide_pio_cycle_time() users already select CONFIG_IDE_TIMINGS so move the function from ide-lib.c to ide-timings.c. While at it: - convert ide_pio_cycle_time() to use ide_timing_find_mode() - cleanup ide_pio_cycle_time() a bit There should be no functional changes caused by this patch. Acked-by: Sergei Shtylyov Signed-off-by: Bartlomiej Zolnierkiewicz commit 8a97206e31dc2e2f8f9b4d97e234b5c701fe9894 Author: Bartlomiej Zolnierkiewicz Date: Wed Jul 16 20:33:38 2008 +0200 ide-pmac: convert to use ide_timing_find_mode() Also update my Copyrights while at it. There should be no functional changes caused by this patch. Acked-by: Sergei Shtylyov Signed-off-by: Bartlomiej Zolnierkiewicz commit b96f7384646519da54ad50bfad8d53b915b70cb3 Author: Bartlomiej Zolnierkiewicz Date: Wed Jul 16 20:33:38 2008 +0200 ide-mpc8xx: convert to use ide_timing_find_mode() Also fix (disabled) debugging code while at it. There should be no functional changes caused by this patch. Signed-off-by: Bartlomiej Zolnierkiewicz commit 3f847571a1cf845a338bcd352f31240b3615f40d Author: Bartlomiej Zolnierkiewicz Date: Wed Jul 16 20:33:38 2008 +0200 sl82c105: convert to use ide_timing_find_mode() There should be no functional changes caused by this patch. Acked-by: Sergei Shtylyov Signed-off-by: Bartlomiej Zolnierkiewicz commit 713a590dea9a61e84f2837e75c5e9429d95908b5 Author: Bartlomiej Zolnierkiewicz Date: Wed Jul 16 20:33:38 2008 +0200 cy82c693: convert to use ide_timing_find_mode() There should be no functional changes caused by this patch. Acked-by: Sergei Shtylyov Signed-off-by: Bartlomiej Zolnierkiewicz commit 86a0e12fcb590a6a84b90ae00e6d6564ce770749 Author: Bartlomiej Zolnierkiewicz Date: Wed Jul 16 20:33:38 2008 +0200 cmd64x: convert to use ide_timing_find_mode() There should be no functional changes caused by this patch. Acked-by: Sergei Shtylyov Signed-off-by: Bartlomiej Zolnierkiewicz commit 17b500de0ad79a306a0cd8acfe9a9f086ad28b4c Author: Bartlomiej Zolnierkiewicz Date: Wed Jul 16 20:33:38 2008 +0200 cmd640: convert to use ide_timing_find_mode() There should be no functional changes caused by this patch. Acked-by: Sergei Shtylyov Signed-off-by: Bartlomiej Zolnierkiewicz commit 288911af1209f5aa6119c9ec6d5a9bdb16a385b5 Author: Bartlomiej Zolnierkiewicz Date: Wed Jul 16 20:33:37 2008 +0200 alim15x3: convert to use ide_timing_find_mode() There should be no functional changes caused by this patch. Acked-by: Sergei Shtylyov Signed-off-by: Bartlomiej Zolnierkiewicz commit 2feecface7fd62be75bd4961324dc279a04bef22 Author: Bartlomiej Zolnierkiewicz Date: Wed Jul 16 20:33:37 2008 +0200 qd65xx: convert to use ide_timing_find_mode() There should be no functional changes caused by this patch. Acked-by: Sergei Shtylyov Signed-off-by: Bartlomiej Zolnierkiewicz commit b32b76f72df17de891181b47e714f9f897bb62a1 Author: Bartlomiej Zolnierkiewicz Date: Wed Jul 16 20:33:37 2008 +0200 ht6560b: convert to use ide_timing_find_mode() There should be no functional changes caused by this patch. Acked-by: Sergei Shtylyov Signed-off-by: Bartlomiej Zolnierkiewicz commit cc57ccc03d2a9b5622300f4b59fc8b54408c6e24 Author: Bartlomiej Zolnierkiewicz Date: Wed Jul 16 20:33:37 2008 +0200 ali14xx: convert to use ide_timing_find_mode() There should be no functional changes caused by this patch. Acked-by: Sergei Shtylyov Signed-off-by: Bartlomiej Zolnierkiewicz commit f06ab3402aa2d6de060442c1053ea10b24b65076 Author: Bartlomiej Zolnierkiewicz Date: Wed Jul 16 20:33:37 2008 +0200 ide: convert ide-timing.h to ide-timings.c library (take 2) * Don't include ide-timing.h in cs5535 and sis5513 host drivers (they don't need it currently). * Convert ide-timing.h to ide-timings.c library and add CONFIG_IDE_TIMINGS config option to be selected by host drivers using the library. While at it: - fix ide_timing_find_mode() placement v2: * Add missing EXPORT_SYMBOLs. (Stephen Rothwell ) There should be no functional changes caused by this patch. Cc: Stephen Rothwell Signed-off-by: Bartlomiej Zolnierkiewicz commit 2c139e7a7152f66ff93b173f8770c94ea53a691e Author: Bartlomiej Zolnierkiewicz Date: Wed Jul 16 20:33:36 2008 +0200 ide: checkpatch.pl fixes for ide-timing.h Also fix placement of comments in ide_timing_compute() while at it. There should be no functional changes caused by this patch (md5sum was verified to be the same before/after the patch). Acked-by: Sergei Shtylyov Signed-off-by: Bartlomiej Zolnierkiewicz commit bd887f72d2a28a8202519e67fd9ed93ee3c4e78d Author: Bartlomiej Zolnierkiewicz Date: Wed Jul 16 20:33:36 2008 +0200 ide: remove XFER_* masks from ide-timing.h * Check requested xfer mode against xfer modes instead of XFER_* masks in ide_timing_compute() and cs5535.c::cs5535_set_speed(). * Remove XFER_[MODE,MWDMA,EPIO,PIO] masks. There should be no functional changes caused by this patch. Acked-by: Sergei Shtylyov Signed-off-by: Bartlomiej Zolnierkiewicz commit 3be53f3f213223f50d8e29b5e1869685bf040a1e Author: Bartlomiej Zolnierkiewicz Date: Wed Jul 16 20:33:36 2008 +0200 ide: move some bits from ide-timing.h to Move struct ide_timing and IDE_TIMING_* defines to from drivers/ide/ide-timing.h. While at it: - use u8/u16 instead of short for struct ide_timing fields - use enum for IDE_TIMING_* There should be no functional changes caused by this patch. Acked-by: Sergei Shtylyov Signed-off-by: Bartlomiej Zolnierkiewicz commit 71d5161426c26742ba053fe93637559cbe2cea37 Author: Bartlomiej Zolnierkiewicz Date: Wed Jul 16 20:33:36 2008 +0200 ide: use u8 for xfer modes in ide-timing.h There should be no functional changes caused by this patch. Acked-by: Sergei Shtylyov Signed-off-by: Bartlomiej Zolnierkiewicz commit f0ffc9872e972e9d9fe8f7ae577ff046dbdba51b Author: Bartlomiej Zolnierkiewicz Date: Wed Jul 16 20:33:36 2008 +0200 ide: remove unused XFER_UDMA_SLOW Remove unused XFER_UDMA_SLOW from ide_timing[]. While at it: - fix re-defining XFER_PIO_5 (no need to define it in ide-timing.h as it is defined in which is included by ) - fix whitespace damage There should be no functional changes caused by this patch. Acked-by: Sergei Shtylyov Signed-off-by: Bartlomiej Zolnierkiewicz commit e4e8d02f56f5c0cefc6713384629e068193d706a Author: Bartlomiej Zolnierkiewicz Date: Wed Jul 16 20:33:35 2008 +0200 ide: remove needless includes from ide-lib.c Signed-off-by: Bartlomiej Zolnierkiewicz commit 96b1dfe8fe02e35f017c885b11f0beb10ff4f316 Author: Ben Dooks Date: Fri Jun 20 20:53:35 2008 +0200 BAST: Remove old IDE driver Remove the old BAST IDE driver, as we are now using the platform-pata support. Signed-off-by: Ben Dooks Cc: Jeff Garzik Signed-off-by: Bartlomiej Zolnierkiewicz commit e5318b531b008c79d2a0c0df06a7b8628da38e2f Author: FUJITA Tomonori Date: Wed Jul 16 20:33:35 2008 +0200 ide: use the dma safe check for REQ_TYPE_ATA_PC This uses the dma safe check for REQ_TYPE_ATA_PC. The dma safe check is used for only sg requests but it should be used for other non fs commands. This uses blk_queue_update_dma_pad to make the intention clear though ide don't use the blk APIs so it doesn't change anything. Signed-off-by: FUJITA Tomonori Acked-by: Borislav Petkov Cc: Thomas Bogendoerfer Cc: Tejun Heo Cc: Jens Axboe Cc: James Bottomley Signed-off-by: Andrew Morton Signed-off-by: Bartlomiej Zolnierkiewicz commit 0b6abc17700a7843b165c677da0ac94522f83083 Author: FUJITA Tomonori Date: Wed Jul 16 20:33:35 2008 +0200 ide: avoid DMA on the stack for REQ_TYPE_ATA_PC Some REQ_TYPE_ATA_PC commands uses the stack buffers for DMA, which leads to memory corruption on a non-coherent platform. With regard to alignment and padding, ide-cd has the the dma safe check for sg requests and REQ_TYPE_ATA_PC. This adds the stack buffer check to that check. Signed-off-by: FUJITA Tomonori Acked-by: Borislav Petkov Cc: Thomas Bogendoerfer Cc: Tejun Heo Cc: Jens Axboe Cc: James Bottomley Signed-off-by: Andrew Morton Signed-off-by: Bartlomiej Zolnierkiewicz commit 84e0f3f6c1e26588fdcb9f1b0f99d0275229bc99 Author: Dimitri Gorokhovik Date: Wed Jul 16 20:33:34 2008 +0200 ide: it821x in pass-through mode segfaults in 2.6.26-stable The driver of ITE8212 in pass-through mode (it8212.noraid=1 on cmndline) attempts to use the field `.dma_host_set' of the struct ide_dma_ops in `ide_config_drive_speed' which is set to NULL by default. So give a value to all fields of the struct ide_dma_ops. Signed-off-by: Dimitri Gorokhovik Signed-off-by: Bartlomiej Zolnierkiewicz commit 33468e7637c53b5516902422d66ca3d3fe64a9c3 Author: Jean Delvare Date: Wed Jul 16 19:30:18 2008 +0200 hwmon: (w83l786ng) Convert to a new-style i2c driver The new-style w83l786ng driver implements the optional detect() callback to cover the use cases of the legacy driver. Signed-off-by: Jean Delvare Cc: Kevin Lo commit dc18a4184d6794e2e5c6f05142f3f8aaeeaee506 Author: Jean Delvare Date: Wed Jul 16 19:30:18 2008 +0200 hwmon: (w83l785ts) Convert to a new-style i2c driver The new-style w83l785ts driver implements the optional detect() callback to cover the use cases of the legacy driver. Signed-off-by: Jean Delvare commit a7f13a6ec40379fe2116c647ac8e569227ba8d4f Author: Jean Delvare Date: Wed Jul 16 19:30:17 2008 +0200 hwmon: (w83793) Convert to a new-style i2c driver The new-style w83793 driver implements the optional detect() callback to cover the use cases of the legacy driver. Signed-off-by: Jean Delvare commit 31d5d275a118527a2b9b0f68613428f176efbb8f Author: Jean Delvare Date: Wed Jul 16 19:30:17 2008 +0200 hwmon: (w83792d) Convert to a new-style i2c driver The new-style w83792d driver implements the optional detect() callback to cover the use cases of the legacy driver. Signed-off-by: Jean Delvare commit cb0c1af37996f3016e34e9c709e5f727646f7207 Author: Jean Delvare Date: Wed Jul 16 19:30:17 2008 +0200 hwmon: (w83791d) Convert to a new-style i2c driver The new-style w83791d driver implements the optional detect() callback to cover the use cases of the legacy driver. Signed-off-by: Jean Delvare Cc: Marc Hulsman commit ccf37488322429bf8709f2227f3d48466add2b6b Author: Jean Delvare Date: Wed Jul 16 19:30:16 2008 +0200 hwmon: (thmc50) Convert to a new-style i2c driver The new-style thmc50 driver implements the optional detect() callback to cover the use cases of the legacy driver. Signed-off-by: Jean Delvare Cc: Krzysztof Helt commit 8fb597bb6ec80d53836229bf3576c7b848b909e3 Author: Jean Delvare Date: Wed Jul 16 19:30:16 2008 +0200 hwmon: (smsc47m192) Convert to a new-style i2c driver The new-style smsc47m192 driver implements the optional detect() callback to cover the use cases of the legacy driver. Signed-off-by: Jean Delvare Cc: Hartmut Rick commit 0d57abd5b87e2e82d8d2e8d5c9a3b56743ffa5ab Author: Jean Delvare Date: Wed Jul 16 19:30:16 2008 +0200 hwmon: (max6650) Convert to a new-style i2c driver The new-style max6650 driver implements the optional detect() callback to cover the use cases of the legacy driver. Signed-off-by: Jean Delvare Cc: Hans J. Koch commit c6d3f6fa1b0b984991d6e2a261c7dd7f2685c7bd Author: Jean Delvare Date: Wed Jul 16 19:30:15 2008 +0200 hwmon: (max1619) Convert to a new-style i2c driver The new-style max1619 driver implements the optional detect() callback to cover the use cases of the legacy driver. Signed-off-by: Jean Delvare Cc: Alexey Fisher commit 70b724063f789a443aff1e1a6f0f04d971342116 Author: Jean Delvare Date: Wed Jul 16 19:30:15 2008 +0200 hwmon: (lm93) Convert to a new-style i2c driver The new-style lm93 driver implements the optional detect() callback to cover the use cases of the legacy driver. Signed-off-by: Jean Delvare Cc: Mark M. Hoffman Cc: Eric J. Bowersox Cc: Carsten Emde Cc: Hans J. Koch commit 910e8dcf16dd7afc08dc1791155cc69e07ca4183 Author: Jean Delvare Date: Wed Jul 16 19:30:15 2008 +0200 hwmon: (lm92) Convert to a new-style i2c driver The new-style lm92 driver implements the optional detect() callback to cover the use cases of the legacy driver. Signed-off-by: Jean Delvare commit 9b0e85269275159a1f9c3e4a5d254caf5211950b Author: Jean Delvare Date: Wed Jul 16 19:30:15 2008 +0200 hwmon: (lm90) Convert to a new-style i2c driver The new-style lm90 driver implements the optional detect() callback to cover the use cases of the legacy driver. Signed-off-by: Jean Delvare commit a888420af07b9a26b6d518328baa913fb704e950 Author: Jean Delvare Date: Wed Jul 16 19:30:14 2008 +0200 hwmon: (lm87) Convert to a new-style i2c driver The new-style lm87 driver implements the optional detect() callback to cover the use cases of the legacy driver. Signed-off-by: Jean Delvare Cc: Ben Hutchings commit b6aacdcefac8ed60e77930b6e74129da6478e20e Author: Jean Delvare Date: Wed Jul 16 19:30:14 2008 +0200 hwmon: (lm83) Convert to a new-style i2c driver The new-style lm83 driver implements the optional detect() callback to cover the use cases of the legacy driver. Signed-off-by: Jean Delvare commit 8c8bacc883610b672d3f08dc6ebf1f17e495f5b9 Author: Jean Delvare Date: Wed Jul 16 19:30:14 2008 +0200 hwmon: (lm80) Convert to a new-style i2c driver The new-style lm80 driver implements the optional detect() callback to cover the use cases of the legacy driver. Signed-off-by: Jean Delvare commit a189dd62d328db7bf8ba68de6a948fdbc93dca25 Author: Jean Delvare Date: Wed Jul 16 19:30:13 2008 +0200 hwmon: (lm77) Convert to a new-style i2c driver The new-style lm77 driver implements the optional detect() callback to cover the use cases of the legacy driver. Signed-off-by: Jean Delvare Cc: Andras Bali commit d5957be2f1535b1a6c77eabba0781ec7245c5dea Author: Jean Delvare Date: Wed Jul 16 19:30:13 2008 +0200 hwmon: (lm63) Convert to a new-style i2c driver The new-style lm63 driver implements the optional detect() callback to cover the use cases of the legacy driver. Signed-off-by: Jean Delvare commit a23a9fe1d4d725e1624635f49e9790ec32deffd0 Author: Jean Delvare Date: Wed Jul 16 19:30:13 2008 +0200 hwmon: (gl520sm) Convert to a new-style i2c driver The new-style gl520sm driver implements the optional detect() callback to cover the use cases of the legacy driver. Signed-off-by: Jean Delvare Cc: Maarten Deprez commit 95d80e7c834d8742da38e2b9d2f36dec36da03a6 Author: Jean Delvare Date: Wed Jul 16 19:30:13 2008 +0200 hwmon: (gl518sm) Convert to a new-style i2c driver The new-style gl518sm driver implements the optional detect() callback to cover the use cases of the legacy driver. Signed-off-by: Jean Delvare commit b9e39b1b1b79d3e074ca79b63f548ac48c85ca98 Author: Jean Delvare Date: Wed Jul 16 19:30:12 2008 +0200 hwmon: (fscpos) Convert to a new-style i2c driver The new-style fscpos driver implements the optional detect() callback to cover the use cases of the legacy driver. Signed-off-by: Jean Delvare commit 40ac1994bf988dac05434f856c2a4fa24e22b2ea Author: Jean Delvare Date: Wed Jul 16 19:30:12 2008 +0200 hwmon: (fschmd) Convert to a new-style i2c driver The new-style fschmd driver implements the optional detect() callback to cover the use cases of the legacy driver. Signed-off-by: Jean Delvare Cc: Hans de Goede commit c2df1591df3ea83b4a5890a1131dd821ca07e761 Author: Jean Delvare Date: Wed Jul 16 19:30:12 2008 +0200 hwmon: (fscher) Convert to a new-style i2c driver The new-style fscher driver implements the optional detect() callback to cover the use cases of the legacy driver. Signed-off-by: Jean Delvare Cc: Reinhard Nissl commit 935ada8c4481f9591caa1b88c83127c5931a8855 Author: Jean Delvare Date: Wed Jul 16 19:30:11 2008 +0200 hwmon: (f75375s) Drop legacy i2c driver Drop the legacy f75375s i2c driver, and add a detect callback to the new-style i2c driver to achieve the same functionality. Signed-off-by: Jean Delvare Acked-by: Riku Voipio commit 70313eabfc63ce6aa89b9fa3074129e5c521568a Author: Jean Delvare Date: Wed Jul 16 19:30:11 2008 +0200 hwmon: (ds1621) Convert to a new-style i2c driver The new-style ds1621 driver implements the optional detect() callback to cover the use cases of the legacy driver. Signed-off-by: Jean Delvare commit 71163c7c36fa76bb5a72feca7fb685677444070a Author: Jean Delvare Date: Wed Jul 16 19:30:11 2008 +0200 hwmon: (atxp1) Convert to a new-style i2c driver The new-style atxp1 driver implements the optional detect() callback to cover the use cases of the legacy driver. Signed-off-by: Jean Delvare commit 063675b15608dfbb8404b3a19546d579bd039d02 Author: Jean Delvare Date: Wed Jul 16 19:30:11 2008 +0200 hwmon: (asb100) Convert to a new-style i2c driver The new-style asb100 driver implements the optional detect() callback to cover the use cases of the legacy driver. Signed-off-by: Jean Delvare commit eea54766c6e3f9850affa91061164aeb6bba44b6 Author: Jean Delvare Date: Wed Jul 16 19:30:10 2008 +0200 hwmon: (adt7473) Convert to a new-style i2c driver The new-style adt7473 driver implements the optional detect() callback to cover the use cases of the legacy driver. Signed-off-by: Jean Delvare Cc: Darrick J. Wong commit 008f1ca51e4a25ee3e34b8faa901dbeefaf0081a Author: Jean Delvare Date: Wed Jul 16 19:30:10 2008 +0200 hwmon: (adt7470) Convert to a new-style i2c driver The new-style adt7470 driver implements the optional detect() callback to cover the use cases of the legacy driver. Signed-off-by: Jean Delvare Cc: Darrick J. Wong commit 7347cb388e5aecffc4920bd5ea6a61e4a4690bae Author: Jean Delvare Date: Wed Jul 16 19:30:10 2008 +0200 hwmon: (ads7828) Convert to a new-style i2c driver The new-style ads7828 driver implements the optional detect() callback to cover the use cases of the legacy driver. Signed-off-by: Jean Delvare commit 7fae8283109e155467bc1c622178d3a475cdbddf Author: Jean Delvare Date: Wed Jul 16 19:30:09 2008 +0200 hwmon: (adm9240) Convert to a new-style i2c driver The new-style adm9240 driver implements the optional detect() callback to cover the use cases of the legacy driver. Signed-off-by: Jean Delvare Cc: Grant Coady commit af200f881d2cbf3ba2f4c505fa1ae5cfef36f46a Author: Jean Delvare Date: Wed Jul 16 19:30:09 2008 +0200 hwmon: (adm1031) Convert to a new-style i2c driver The new-style adm1031 driver implements the optional detect() callback to cover the use cases of the legacy driver. Signed-off-by: Jean Delvare Cc: Alexandre d'Alton commit 9c97fb4d255fbf6713ee2d77dd8ed8ae770a7e49 Author: Jean Delvare Date: Wed Jul 16 19:30:09 2008 +0200 hwmon: (adm1029) Convert to a new-style i2c driver The new-style adm1029 driver implements the optional detect() callback to cover the use cases of the legacy driver. Signed-off-by: Jean Delvare Cc: Corentin Labbe commit 57f7eb0bcb2316dc264cd26f38b33dd2cf3151c1 Author: Jean Delvare Date: Wed Jul 16 19:30:08 2008 +0200 hwmon: (adm1026) Convert to a new-style i2c driver The new-style adm1026 driver implements the optional detect() callback to cover the use cases of the legacy driver. Signed-off-by: Jean Delvare commit 7dbafe021ba360bf25674a7e290d3e4a5c953981 Author: Jean Delvare Date: Wed Jul 16 19:30:08 2008 +0200 hwmon: (adm1025) Convert to a new-style i2c driver The new-style adm1025 driver implements the optional detect() callback to cover the use cases of the legacy driver. Signed-off-by: Jean Delvare commit 65817ed8d1376afff21019b5c0e0109e5a7d9cc0 Author: Jean Delvare Date: Wed Jul 16 19:30:08 2008 +0200 hwmon: (adm1021) Convert to a new-style i2c driver The new-style adm1021 driver implements the optional detect() callback to cover the use cases of the legacy driver. Signed-off-by: Jean Delvare commit 369932f6f840aedfbc717dd156bba7668a11d916 Author: Jean Delvare Date: Wed Jul 16 19:30:08 2008 +0200 hwmon: (ad7418) Convert to a new-style i2c driver The ad7418 driver is only used on embedded platforms where i2c devices can easily be declared in platform code. Thus a new-style i2c driver makes perfect sense. This lets us get rid of quirky detection code (these chips have no identification registers) and shrinks the binary driver size by 38%. Signed-off-by: Jean Delvare Cc: Alessandro Zummo commit 61c91f7ded640bb2b340cc89d9ca3a3ca0229c74 Author: Jean Delvare Date: Wed Jul 16 19:30:07 2008 +0200 w1/ds2482: Convert to a new-style driver The new-style ds2482 driver implements the optional detect() callback to cover the use cases of the legacy driver. I'm curious if anyone really needs this though, so it might be removed in the feature. Signed-off-by: Jean Delvare commit bd8d421f7ca9f8da3d820d28379d796500f69529 Author: Jean Delvare Date: Wed Jul 16 19:30:07 2008 +0200 i2c: Convert the max6875 driver to a new-style i2c driver The new-style max6875 driver implements the optional detect() callback to cover the use cases of the legacy driver. I'm curious if anyone really needs this though, so it might be removed in the feature. Signed-off-by: Jean Delvare commit 3d63430a26b91fe3daee0dd933f899c225e66daa Author: Jean Delvare Date: Wed Jul 16 19:30:07 2008 +0200 i2c: Convert the pca9539 driver to a new-style i2c driver The new-style pca9539 driver implements the optional detect() callback to cover the use cases of the legacy driver. Warning: users will now have to use the force module parameter to get the driver to attach to their device. That's not a bad thing as these devices can't be detected anyway. Note that this doesn't change the fact that this driver is deprecated in favor of gpio/pca953x. Signed-off-by: Jean Delvare commit 97addff6def3f8e228a634fa017589f45c69de5c Author: Jean Delvare Date: Wed Jul 16 19:30:06 2008 +0200 i2c: Convert the pcf8575 driver to a new-style i2c driver The new-style pcf8575 driver implements the optional detect() callback to cover the use cases of the legacy driver. Warning: users will now have to use the force module parameter to get the driver to attach to their device. That's not a bad thing as these devices can't be detected anyway. Note that this doesn't change the fact that this driver is deprecated in favor of gpio/pcf857x. Signed-off-by: Jean Delvare commit 833bedb813689807385ae73175389c73a3f855c1 Author: Jean Delvare Date: Wed Jul 16 19:30:06 2008 +0200 i2c: Convert the pcf8574 driver to a new-style i2c driver The new-style pcf8574 driver implements the optional detect() callback to cover the use cases of the legacy driver. Warning: users will now have to use the force module parameter to get the driver to attach to their device. That's not a bad thing as these devices can't be detected anyway. Note that this doesn't change the fact that this driver is deprecated in favor of gpio/pcf857x. Signed-off-by: Jean Delvare commit 8b77e6ac4911a79993e583ece719736a9e035b1d Author: Jean Delvare Date: Wed Jul 16 19:30:06 2008 +0200 i2c: Convert the pcf8591 driver to a new-style i2c driver The new-style pcf8591 driver implements the optional detect() callback to cover the use cases of the legacy driver. Signed-off-by: Jean Delvare commit 68be3363740e4ac3b4309faebcdf8fe5bf62ed2f Author: Jean Delvare Date: Wed Jul 16 19:30:05 2008 +0200 i2c: Convert the eeprom driver to a new-style i2c driver The new-style eeprom driver implements the optional detect() callback to cover the use cases of the legacy driver. Signed-off-by: Jean Delvare commit bd4bc3dbded9cd7b2bdca6bba1aecb4251a8039d Author: Jean Delvare Date: Wed Jul 16 19:30:05 2008 +0200 i2c: Clear i2c_adapter.dev on adapter removal Clear i2c_adapter.dev on adapter removal. This makes it possible to re-add the adapter at a later point, which some drivers (i2c-amd756-s4882, i2c-nforce2-s4985) actually do. This fixes a bug reported by John Stultz here: http://lkml.org/lkml/2008/7/15/720 and by Ingo Molar there: http://lkml.org/lkml/2008/7/16/78 Signed-off-by: Jean Delvare Cc: John Stultz Cc: Ingo Molnar commit e22146e610bb7aed63282148740ab1d1b91e1d90 Author: Jack Steiner Date: Wed Jul 16 11:11:59 2008 -0500 x86: fix kernel_physical_mapping_init() for large x86 systems Fix bug in kernel_physical_mapping_init() that causes kernel page table to be built incorrectly for systems with greater than 512GB of memory. Signed-off-by: Jack Steiner Cc: linux-mm@kvack.org Signed-off-by: Ingo Molnar commit 9fce1bc956c21dfe0f46be028f18c4d5057f2bd7 Author: Ming Lei Date: Wed Jul 16 22:54:30 2008 +0800 PCI: remove unnecessary volatile in PCIe hotplug struct controller Proper memory barriers have been added to order accesses to ->cmd_busy, so volatile declaration for cmd_busy can be removed. Signed-off-by: Ming Lei Signed-off-by: Jesse Barnes commit d25dc7fd4740decf4c66e2f17dbaa288448fabd5 Author: David Woodhouse Date: Tue Jul 15 22:54:04 2008 -0700 Fix 'make clean' and .gitignore for firmware/ directory. Provide a .gitignore file, and fix a typo which prevented some of the generated binary files from being removed on 'make clean'. Signed-off-by: David Woodhouse Reported-and-tested-by: Alexey Dobriyan Signed-off-by: Linus Torvalds commit 45158894d4d6704afbb4cefe55e5f6ca279fe12a Merge: 89a93f2... 84c3d4a... Author: Linus Torvalds Date: Tue Jul 15 19:04:58 2008 -0700 Merge branch 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc * 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc: (249 commits) powerpc: Fix pte_update for CONFIG_PTE_64BIT and !PTE_ATOMIC_UPDATES powerpc: Fix a build problem on ppc32 with new DMA_ATTRs ibm_newemac: Add MII mode support to the EMAC RGMII bridge. powerpc: Don't spin on sync instruction at boot time powerpc: Add VSX load/store alignment exception handler powerpc: fix giveup_vsx to save registers correctly powerpc: support for latencytop powerpc: Remove unnecessary condition when sanity-checking WIMG bits powerpc: Add PPC_FEATURE_PSERIES_PERFMON_COMPAT powerpc: Add driver for Barrier Synchronization Register powerpc: mman.h export fixups powerpc/fsl: update crypto node definition and device tree instances powerpc/fsl: Refactor device bindings powerpc/85xx: Minor fixes for 85xxds and 8536ds board. powerpc: Add 82xx/83xx/86xx to 6xx Multiplatform powerpc/85xx: publish of device for cds platforms powerpc/booke: don't reinitialize time base powerpc/86xx: Refactor pic init powerpc/CPM: Add i2c pins to dts and board setup cpm_uart: Support uart_wait_until_sent() ... commit 89a93f2f4834f8c126e8d9dd6b368d0b9e21ec3d Merge: 260eddf... fe9233f... Author: Linus Torvalds Date: Tue Jul 15 18:58:04 2008 -0700 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: (102 commits) [SCSI] scsi_dh: fix kconfig related build errors [SCSI] sym53c8xx: Fix bogus sym_que_entry re-implementation of container_of [SCSI] scsi_cmnd.h: remove double inclusion of linux/blkdev.h [SCSI] make struct scsi_{host,target}_type static [SCSI] fix locking in host use of blk_plug_device() [SCSI] zfcp: Cleanup external header file [SCSI] zfcp: Cleanup code in zfcp_erp.c [SCSI] zfcp: zfcp_fsf cleanup. [SCSI] zfcp: consolidate sysfs things into one file. [SCSI] zfcp: Cleanup of code in zfcp_aux.c [SCSI] zfcp: Cleanup of code in zfcp_scsi.c [SCSI] zfcp: Move status accessors from zfcp to SCSI include file. [SCSI] zfcp: Small QDIO cleanups [SCSI] zfcp: Adapter reopen for large number of unsolicited status [SCSI] zfcp: Fix error checking for ELS ADISC requests [SCSI] zfcp: wait until adapter is finished with ERP during auto-port [SCSI] ibmvfc: IBM Power Virtual Fibre Channel Adapter Client Driver [SCSI] sg: Add target reset support [SCSI] lib: Add support for the T10 (SCSI) Data Integrity Field CRC [SCSI] sd: Move scsi_disk() accessor function to sd.h ... commit 260eddf4391f162a69d1d163729249635fa7a78f Merge: f2d9c74... 7890ea1... Author: Linus Torvalds Date: Tue Jul 15 18:57:38 2008 -0700 Merge git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 * git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6: Revert crypto: prng - Deterministic CPRNG commit f2d9c740f6b9f92608dfb2a2bdd797e0350cabe4 Author: Steven Rostedt Date: Tue Jul 15 10:57:33 2008 -0400 ftrace: ftrace.txt updates This patch includes ftrace.txt updates that address (mostly) comments from Andrew Morton. It also includes updates that were suggested by Randy Dunlap, John Kacur and David Teigland. Signed-off-by: Steven Rostedt Signed-off-by: Linus Torvalds commit 84c3d4aaec3338201b449034beac41635866bddf Merge: 43d2548... fafa3a3... Author: Benjamin Herrenschmidt Date: Wed Jul 16 11:07:59 2008 +1000 Merge commit 'origin/master' Manual merge of: arch/powerpc/Kconfig arch/powerpc/kernel/stacktrace.c arch/powerpc/mm/slice.c arch/ppc/kernel/smp.c commit fafa3a3f16723997f039a0193997464d66dafd8f Merge: 7e2225d... 431ceb8... Author: Linus Torvalds Date: Tue Jul 15 16:29:18 2008 -0700 Merge branch 'x86/urgent' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip * 'x86/urgent' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: x86: fix TSC build error on 32bit commit 809d9a8f93bd8504dcc34b16bbfdfd1a8c9bb1ed Author: Alok Kataria Date: Tue Jul 15 11:59:42 2008 -0700 x86/PCI: ACPI based PCI gap calculation Using ACPI to find free address space allows us to find a gap for the unallocated PCI resources or MMIO resources for hotplug devices within the BIOS allowed PCI regions. It works by evaluating the _CRS object under PCI0 looking for producer resources. Then searches the e820 memory space for a gap within these producer resources. Signed-off-by: Alok N Kataria Cc: Andi Kleen Cc: Len Brown Cc: Ingo Molnar Signed-off-by: Jesse Barnes commit cadc723cc19ce6b881d973d3c04e25ebb83058e6 Merge: e89e896... f839c4c... Author: Trond Myklebust Date: Tue Jul 15 18:34:58 2008 -0400 Merge branch 'bkl-removal' into next commit e89e896d31b11a51a54ddcd3f72a76bd286dd86c Merge: 3a628b0... d67d1c7... Author: Trond Myklebust Date: Tue Jul 15 18:34:16 2008 -0400 Merge branch 'devel' into next Conflicts: fs/nfs/file.c Fix up the conflict with Jon Corbet's bkl-removal tree commit f839c4c1991cc9b580ae38f98f54554938a7f49c Author: Trond Myklebust Date: Wed Jun 11 15:44:26 2008 -0400 NFSv4: Remove BKL from the nfsv4 state recovery Signed-off-by: Trond Myklebust commit a86dc496b764ebb1431677b38eab45310e5a2ad4 Author: Trond Myklebust Date: Wed Jun 11 13:37:09 2008 -0400 SUNRPC: Remove the BKL from the callback functions Push it into those callback functions that actually need it. Note that all the NFS operations use their own locking, so don't need the BKL. Ditto for the rpcbind client. Signed-off-by: Trond Myklebust commit c3cc8c019ca09767d7c9b5457d5cf8ac65085f44 Author: Trond Myklebust Date: Wed Jun 11 15:44:23 2008 -0400 NFS: Remove BKL from the readdir code Page accesses are serialised using the page locks, whereas all attribute updates are serialised using the inode->i_lock. Signed-off-by: Trond Myklebust commit 76566991f94c206d9c5881edcaf99ba72c9e9d61 Author: Trond Myklebust Date: Wed Jun 11 15:44:22 2008 -0400 NFS: Remove BKL from the symlink code Page cache accesses are serialised using page locks, whereas attribute updates are serialised using inode->i_lock. Signed-off-by: Trond Myklebust commit 52e2e8d37e01edf38ccdccc983fb13ec1456d63d Author: Trond Myklebust Date: Wed Jun 11 15:44:21 2008 -0400 NFS: Remove BKL from the sillydelete operations Signed-off-by: Trond Myklebust commit bd9bb454b76fb6ca2d00f17313f9f9df5f5c404a Author: Trond Myklebust Date: Wed Jun 11 16:09:59 2008 -0400 NFS: Remove the BKL from the rename, rmdir and unlink operations Attribute updates are safe, and dentry operations are protected using VFS level locks. Defer removing the BKL from sillyrename until a separate patch. Signed-off-by: Trond Myklebust commit fc0f684c21b5d4b41dc2ec76f7c0897ac98f5b6e Author: Trond Myklebust Date: Wed Jun 11 15:44:20 2008 -0400 NFS: Remove BKL from NFS lookup code All dentry-related operations are already BKL-safe, since they are protected by the VFS locking. No extra locks should be needed in the NFS code. In the case of nfs_revalidate_inode(), we're only doing an attribute update (protected by the inode->i_lock). In the case of nfs_lookup(), we're instantiating a new dentry, so there should be no contention possible until after we call d_materialise_unique. Signed-off-by: Trond Myklebust commit fc81af535e462764e17f638d542973fbef13b026 Author: Trond Myklebust Date: Wed Jun 11 15:52:40 2008 -0400 NFS: Remove the BKL from nfs_link() Signed-off-by: Trond Myklebust commit f1e2eda23513b68003202bddf1f84158baad8844 Author: Trond Myklebust Date: Wed Jun 11 15:50:50 2008 -0400 NFS: Remove the BKL from the inode creation operations nfs_instantiate() does not require the BKL, neither do the attribute updates or the RPC code. Signed-off-by: Trond Myklebust commit bba67e0e3f4caba2b2b90b48ed798fb0461bcb86 Author: Trond Myklebust Date: Wed Jun 11 13:26:23 2008 -0400 NFS: Remove BKL usage from open() All the NFSv4 stateful operations are already protected by other locks (in particular by the rpc_sequence locks. Signed-off-by: Trond Myklebust commit b6a2e569e2157509951c9f3f58dfa18b44ce91b3 Author: Trond Myklebust Date: Wed Jun 11 13:26:16 2008 -0400 NFS: Remove BKL usage from the write path Signed-off-by: Trond Myklebust commit 4d80f2ecd506d9732ad94a6da104580bb47680d6 Author: Trond Myklebust Date: Wed Jun 11 15:44:18 2008 -0400 NFS: Remove the BKL from the permission checking code Signed-off-by: Trond Myklebust commit fa6dc9dc59c3a76fd209a97c8cf37395980fb903 Author: Trond Myklebust Date: Wed Jun 11 13:26:14 2008 -0400 NFS: Remove attribute update related BKL references Signed-off-by: Trond Myklebust commit a3d01454bc58b5a211ef64a7670572a40b71e682 Author: Trond Myklebust Date: Wed Jun 11 12:21:19 2008 -0400 NFS: Remove BKL requirement from attribute updates The main problem is dealing with inode->i_size: we need to set the inode->i_lock on all attribute updates, and so vmtruncate won't cut it. Make an NFS-private version of vmtruncate that has the necessary locking semantics. The result should be that the following inode attribute updates are protected by inode->i_lock nfsi->cache_validity nfsi->read_cache_jiffies nfsi->attrtimeo nfsi->attrtimeo_timestamp nfsi->change_attr nfsi->last_updated nfsi->cache_change_attribute nfsi->access_cache nfsi->access_cache_entry_lru nfsi->access_cache_inode_lru nfsi->acl_access nfsi->acl_default nfsi->nfs_page_tree nfsi->ncommit nfsi->npages nfsi->open_files nfsi->silly_list nfsi->acl nfsi->open_states inode->i_size inode->i_atime inode->i_mtime inode->i_ctime inode->i_nlink inode->i_uid inode->i_gid The following is protected by dir->i_mutex nfsi->cookieverf Signed-off-by: Trond Myklebust commit 1b83d707032a1be40a60ed0a9bd841662cc04a5d Author: Trond Myklebust Date: Wed Jun 11 15:44:04 2008 -0400 NFS: Protect inode->i_nlink updates using inode->i_lock Signed-off-by: Trond Myklebust commit d67d1c7bf948341fd8678c8e337ec27f4b46b206 Author: Felix Blyakher Date: Tue Jul 15 12:40:22 2008 -0500 nfs: set correct fl_len in nlmclnt_test() fcntl(F_GETLK) on an nfs client incorrectly returns the values for the conflicting lock. fl_len value is always 1. If the conflicting lock is (0, 4095) the F_GETLK request for (1024, 10) returns (0, 1), which doesn't even cover the requested range, and is quite confusing. The fix is trivial, set fl_end from the fl_end value recieved from the nfs server. Signed-off-by: Felix Blyakher Signed-off-by: "J. Bruce Fields" Signed-off-by: Trond Myklebust commit c2e1b09ff237c0a3687b9a804cc8bf489743cffc Author: Chuck Lever Date: Mon Jul 14 16:03:30 2008 -0400 SUNRPC: Support registering IPv6 interfaces with local rpcbind daemon Introduce a new API to register RPC services on IPv6 interfaces to allow the NFS server and lockd to advertise on IPv6 networks. Unlike rpcb_register(), the new rpcb_v4_register() function uses rpcbind protocol version 4 to contact the local rpcbind daemon. The version 4 SET/UNSET procedures allow services to register address families besides AF_INET, register at specific network interfaces, and register transport protocols besides UDP and TCP. All of this functionality is exposed via the new rpcb_v4_register() kernel API. A user-space rpcbind daemon implementation that supports version 4 of the rpcbind protocol is required in order to make use of this new API. Note that rpcbind version 3 is sufficient to support the new rpcbind facilities listed above, but most extant implementations use version 4. Signed-off-by: Chuck Lever Signed-off-by: J. Bruce Fields Signed-off-by: Trond Myklebust commit babe80eb4994dfdc97d5be19a68b5af66d667585 Author: Chuck Lever Date: Mon Jul 14 16:03:29 2008 -0400 SUNRPC: Refactor rpcb_register to make rpcbindv4 support easier rpcbind version 4 registration will reuse part of rpcb_register, so just split it out into a separate function now. Signed-off-by: Chuck Lever Signed-off-by: J. Bruce Fields Signed-off-by: Trond Myklebust commit 423d8b064771f5cd8b706a4839b18db9bb6c3c59 Author: Chuck Lever Date: Mon Jul 14 16:03:28 2008 -0400 SUNRPC: None of rpcb_create's callers wants a privileged source port Clean up: Callers that required a privileged source port now use rpcb_create_local(), so we can remove the @privileged argument from rpcb_create(). Signed-off-by: Chuck Lever Signed-off-by: J. Bruce Fields Signed-off-by: Trond Myklebust commit cc5598b78fd320dd6d1f90c14491e08029f3c4f6 Author: Chuck Lever Date: Mon Jul 14 16:03:27 2008 -0400 SUNRPC: Introduce a specific rpcb_create for contacting localhost Add rpcb_create_local() for use by rpcb_register() and upcoming IPv6 registration functions. Ensure any errors encountered by rpcb_create_local() are properly reported. We can also use a statically allocated constant loopback socket address instead of one allocated on the stack and initialized every time the function is called. Signed-off-by: Chuck Lever Signed-off-by: J. Bruce Fields Signed-off-by: Trond Myklebust commit 166b88d755f925139af7f7b75aa0a1b896ca0670 Author: Chuck Lever Date: Mon Jul 14 16:03:26 2008 -0400 SUNRPC: Use correct XDR encoding procedure for rpcbind SET/UNSET The rpcbind versions 3 and 4 SET and UNSET procedures use the same arguments as the GETADDR procedure. While definitely a bug, this hasn't been a problem so far since the kernel hasn't used version 3 or 4 SET and UNSET. But this will change in just a moment. Signed-off-by: Chuck Lever Signed-off-by: J. Bruce Fields Signed-off-by: Trond Myklebust commit 7e2225d860772aaa07e1cebca6a5aa6f93f9aa91 Merge: 3a628b0... b27418a... Author: Linus Torvalds Date: Tue Jul 15 15:01:29 2008 -0700 Merge branch 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-linus * 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-linus: (54 commits) [MIPS] Remove mips_machtype for LASAT machines [MIPS] Remove mips_machtype from EMMA2RH machines [MIPS] Remove mips_machtype from ARC based machines [MIPS] MTX-1 flash partition setup move to platform devices registration [MIPS] TXx9: cleanup and fix some sparse warnings [MIPS] TXx9: rename asm-mips/mach-jmr3927 to asm-mips/mach-tx39xx [MIPS] remove machtype for group Toshiba [MIPS] separate rbtx4927_time_init() and rbtx4937_time_init() [MIPS] separate rbtx4927_arch_init() and rbtx4937_arch_init() [MIPS] txx9_cpu_clock setup move to rbtx4927_time_init() [MIPS] txx9_board_vec set directly without mips_machtype [MIPS] IP22: Add platform device for Indy volume buttons [MIPS] cmbvr4133: Remove support [MIPS] remove wrppmc_machine_power_off() [MIPS] replace inline assembler to cpu_wait() [MIPS] IP22/28: Add platform devices for HAL2 [MIPS] TXx9: Update and merge defconfigs [MIPS] TXx9: Make single kernel can support multiple boards [MIPS] TXx9: Update defconfigs [MIPS] TXx9: Reorganize PCI code ... commit 3a628b0fd42f7eaf9d052447784d48ceae9ffb8e Author: Mikulas Patocka Date: Tue Jul 15 17:19:55 2008 -0400 Don't crash on IOMMU overflow in A100U2W driver Handle IOMMU overflow correctly, by retrying. IOMMU errors can happen and drivers must deal with them. Signed-off-by: Mikulas Patocka Signed-off-by: Linus Torvalds commit a5db33411ae762e597bfcde6bb9d0c8c2ea9c0eb Author: Mikulas Patocka Date: Tue Jul 15 17:18:38 2008 -0400 BUG_ON on kernel misbehavior on A100U2W driver With broken Sparc64 IOMMU accounting, the kernel submits larger requests then allowed. Better to crash on BUG than corrupt memory. Signed-off-by: Mikulas Patocka Acked-by: James Bottomley Signed-off-by: Linus Torvalds commit 56d387ec210049be2fdb0fe26ba6d6de1b3c1b15 Author: Mikulas Patocka Date: Tue Jul 15 17:16:38 2008 -0400 Add udelay to A100U2W SCSI driver udelay is required on Sun Ultra 5. I don't know any reason or explanation for this, it was found purely experimentally. Signed-off-by: Mikulas Patocka Signed-off-by: Linus Torvalds commit 987ff954cda2a206f5e694f267b0ccad869c257c Author: Mikulas Patocka Date: Tue Jul 15 17:15:41 2008 -0400 Fix endianity in A100U2W SCSI driver Support big endian systems in a100u2w driver. Signed-off-by: Mikulas Patocka Signed-off-by: Linus Torvalds commit 63cf13b77ab785e87c867defa8545e6d4a989774 Author: Jeremy Fitzhardinge Date: Tue Jul 15 13:22:49 2008 -0700 generic ipi function calls: wait on alloc failure fallback When a GFP_ATOMIC allocation fails, it falls back to allocating the data on the stack and converting it to a waiting call. Make sure we actually wait in this case. Signed-off-by: Jeremy Fitzhardinge Signed-off-by: Linus Torvalds commit 59190f4213462f191fc0d22d39b1cf18ea39ca39 Merge: 64fd52a... f6f88e9... Author: Linus Torvalds Date: Tue Jul 15 14:02:33 2008 -0700 Merge branch 'generic-ipi-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip * 'generic-ipi-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (22 commits) generic-ipi: more merge fallout generic-ipi: merge fix x86, visws: use mach-default/entry_arch.h x86, visws: fix generic-ipi build generic-ipi: fixlet generic-ipi: fix s390 build bug generic-ipi: fix linux-next tree build failure fix: "smp_call_function: get rid of the unused nonatomic/retry argument" fix: "smp_call_function: get rid of the unused nonatomic/retry argument" fix "smp_call_function: get rid of the unused nonatomic/retry argument" on_each_cpu(): kill unused 'retry' parameter smp_call_function: get rid of the unused nonatomic/retry argument sh: convert to generic helpers for IPI function calls parisc: convert to generic helpers for IPI function calls mips: convert to generic helpers for IPI function calls m32r: convert to generic helpers for IPI function calls arm: convert to generic helpers for IPI function calls alpha: convert to generic helpers for IPI function calls ia64: convert to generic helpers for IPI function calls powerpc: convert to generic helpers for IPI function calls ... Fix trivial conflicts due to rcu updates in kernel/rcupdate.c manually commit 64fd52a52077d3cd5a778ca031c0aaecf885eaa6 Merge: fe1a687... 6c9fcaf... Author: Linus Torvalds Date: Tue Jul 15 13:59:31 2008 -0700 Merge branch 'core/rcu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip * 'core/rcu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (23 commits) rcu classic: update qlen when cpu offline rcu: make rcutorture even more vicious: invoke RCU readers from irq handlers (timers) rcu: make quiescent rcutorture less power-hungry rcu, rcutorture: make quiescent rcutorture less power-hungry rcu: make rcutorture more vicious: reinstate boot-time testing rcu: make rcutorture more vicious: add stutter feature rcutorture: WARN_ON_ONCE(1) when detecting an error rcu: remove unused field struct rcu_data::rcu_tasklet Revert "prohibit rcutorture from being compiled into the kernel" rcu: fix nf_conntrack_helper.c build bug rculist.h: fix include in net/netfilter/nf_conntrack_netlink.c rcu: remove duplicated include in kernel/rcupreempt.c rcu: remove duplicated include in kernel/rcupreempt_trace.c RCU, rculist.h: fix list iterators rcu: fix rcu_try_flip_waitack_needed() to prevent grace-period stall rculist.h: use the rcu API rcu: split list.h and move rcu-protected lists into rculist.h sched: 1Q08 RCU doc update, add call_rcu_sched() rcu: add call_rcu_sched() and friends to rcutorture rcu: add rcu_barrier_sched() and rcu_barrier_bh() ... commit fe1a6875fcaaac2041945008a9875d2c07be1d9b Author: Sebastian Siewior Date: Tue Jul 15 22:28:46 2008 +0200 mm: fix build on non-mmu machines Commit 1ea0704e0d aka "mm: add a ptep_modify_prot transaction abstraction" caused: | CC init/main.o |In file included from include2/asm/pgtable.h:68, | from /home/bigeasy/git/linux-2.6-m68k/include/linux/mm.h:39, | from include2/asm/uaccess.h:8, | from /home/bigeasy/git/linux-2.6-m68k/include/linux/poll.h:13, | from /home/bigeasy/git/linux-2.6-m68k/include/linux/rtc.h:113, | from /home/bigeasy/git/linux-2.6-m68k/include/linux/efi.h:19, | from /home/bigeasy/git/linux-2.6-m68k/init/main.c:43: |/linux-2.6/include/asm-generic/pgtable.h: In function '__ptep_modify_prot_start': |/linux-2.6/include/asm-generic/pgtable.h:209: error: implicit declaration of function 'ptep_get_and_clear' |/linux-2.6/include/asm-generic/pgtable.h:209: error: incompatible types in return |/linux-2.6/include/asm-generic/pgtable.h: In function '__ptep_modify_prot_commit': |/linux-2.6/include/asm-generic/pgtable.h:220: error: implicit declaration of function 'set_pte_at' |make[2]: *** [init/main.o] Error 1 |make[1]: *** [init] Error 2 |make: *** [sub-make] Error 2 on my m68knommu box. Acked-by: Jeremy Fitzhardinge Cc: Linus Torvalds Cc: Hugh Dickins Cc: Ingo Molnar Signed-off-by: Sebastian Siewior Signed-off-by: Linus Torvalds commit de3b69d7d87e1e86c0307f0f15b377dcebeab906 Author: Steven Rostedt Date: Tue Jul 15 13:28:14 2008 -0400 ftrace: maintainer I'm willing to take responsibility for ftrace, and follow up on any issues that arise due to it. Signed-off-by: Steven Rostedt Signed-off-by: Linus Torvalds commit 431ceb83f703a343bdd14350480a2224fa4bfedf Author: Thomas Gleixner Date: Tue Jul 15 22:08:04 2008 +0200 x86: fix TSC build error on 32bit Dave Hansen reported a build error on 32bit which went unnoticed as newer gcc versions seem to optimize unused static functions away before compiling them. Make vread_tsc() depend on CONFIG_X86_64 Signed-off-by: Thomas Gleixner commit f6f88e9bfb6ced9871ed65ebe85c371de3c9e4be Author: Ingo Molnar Date: Tue Jul 15 22:08:52 2008 +0200 generic-ipi: more merge fallout fix more API change fallout in recently merged upstream changes. Signed-off-by: Ingo Molnar commit b3c9816b9fa9a7b75ab36111eb76eca03e5bab78 Author: Ingo Molnar Date: Tue Jul 15 22:03:56 2008 +0200 generic-ipi: merge fix fix merge fallout: arch/x86/pci/amd_bus.c: In function ‘enable_pci_io_ecs': arch/x86/pci/amd_bus.c:581: error: too many arguments to function ‘on_each_cpu' Signed-off-by: Ingo Molnar commit 1a781a777b2f6ac46523fe92396215762ced624d Merge: b9d2252... 42a2f21... Author: Ingo Molnar Date: Tue Jul 15 21:55:59 2008 +0200 Merge branch 'generic-ipi' into generic-ipi-for-linus Conflicts: arch/powerpc/Kconfig arch/s390/kernel/time.c arch/x86/kernel/apic_32.c arch/x86/kernel/cpu/perfctr-watchdog.c arch/x86/kernel/i8259_64.c arch/x86/kernel/ldt.c arch/x86/kernel/nmi_64.c arch/x86/kernel/smpboot.c arch/x86/xen/smp.c include/asm-x86/hw_irq_32.h include/asm-x86/hw_irq_64.h include/asm-x86/mach-default/irq_vectors.h include/asm-x86/mach-voyager/irq_vectors.h include/asm-x86/smp.h kernel/Makefile Signed-off-by: Ingo Molnar commit 22a37bcb7857541eb2d37806c4744ee2530baa98 Merge: 849c529... 82f06e8... Author: Linus Torvalds Date: Tue Jul 15 12:39:44 2008 -0700 Merge branch 'sbp2-spindown' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6 * 'sbp2-spindown' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6: ieee1394: sbp2: spin disks down on suspend and shutdown firewire: fw-sbp2: spin disks down on suspend and shutdown ieee1394: sbp2: fix spindown for PL-3507 and TSB42AA9 firmwares firewire: fw-sbp2: fix spindown for PL-3507 and TSB42AA9 firmwares scsi: sd: optionally set power condition in START STOP UNIT commit 849c529f57020cc47085400edd5e641d95cd4faf Merge: b9d2252... a7ea678... Author: Linus Torvalds Date: Tue Jul 15 12:39:13 2008 -0700 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: don't respond to broadcast write requests firewire: clean up fw_card reference counting firewire: clean up some includes firewire: remove unused struct members firewire: implement broadcast_channel CSR for 1394a compliance ieee1394: dump mmapped iso buffers in core files ieee1394: raw1394: Push the BKL down into the driver ioctls ieee1394: video1394: reorder module init, prepare BKL removal ieee1394: reduce log noise about config ROM CRC errors commit 6c9fcaf2eec1b9f85226a694230dd957dd7926b3 Merge: b9d2252... 199a952... Author: Ingo Molnar Date: Tue Jul 15 21:10:12 2008 +0200 Merge branch 'core/rcu' into core/rcu-for-linus commit 417e1494fd70715b737428cc3c3d924255f22ba1 Author: Larry Finger Date: Tue Jul 15 11:30:00 2008 -0500 pcmcia: ide-cs: Remove outdated comment There is an outdated version information comment in ide-cs. Signed-off-by: Larry Finger Signed-off-by: Dominik Brodowski commit 002b90a1bf5fe9c8de7a8634403a685621841ff3 Author: Marc Zyngier Date: Tue Jul 15 15:26:15 2008 +0200 pcmcia: fix cisinfo_t removal The cisinfo_t removal patch (c5081d5f4775b2a3f858f91151bbf9163e473075 pcmcia: simplify pccard_validate_cis ) introduced a bug that prevented card detection, for the (info->Chains == MAX_TUPLES) check was replaced by (count), which is always true. Restoring the comparison to MAX_TUPLES makes everybody happy... [linux@dominikbrodowski.net: update changelog comment] Signed-off-by: Marc Zyngier Signed-off-by: Dominik Brodowski commit d93c768e66d8c3970187c179a91a2553b077d9e8 Author: Dominik Brodowski Date: Tue Jul 15 20:11:21 2008 +0200 pcmcia: fix return value in cm4000_cs.c should be -EINVAL, not EINVAL. Found by Peter Stuge. Signed-off-by: Dominik Brodowski commit b9d2252c1e44fa83a4e65fdc9eb93db6297c55af Merge: b312bf3... e79aec2... Author: Linus Torvalds Date: Tue Jul 15 11:26:14 2008 -0700 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/penberg/slab-2.6 * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/penberg/slab-2.6: slab: rename slab_destroy_objs slub: current is always valid slub: Add check for kfree() of non slab objects. commit b312bf359e20cc39c00d480fd40a24c245d80bf7 Merge: dc221ea... 2640d7c... Author: Linus Torvalds Date: Tue Jul 15 11:18:10 2008 -0700 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: AHCI: Remove an unnecessary flush from ahci_qc_issue AHCI: speed up resume [libata] Add support for VPD page b1 ata: endianness annotations in pata drivers libata-eh: update atapi_eh_request_sense() to take @dev instead of @qc [libata] sata_svw: update code comments relating to data corruption libata/ahci: enclosure management support libata: improve EH internal command timeout handling libata: use ULONG_MAX to terminate reset timeout table libata: improve EH retry delay handling libata: consistently use msecs for time durations commit dc221eae08eea3b0db127d1f152fac24d10b6a52 Merge: 98339cb... 4735c98... Author: Linus Torvalds Date: Tue Jul 15 11:16:05 2008 -0700 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: (56 commits) i2c: Add detection capability to new-style drivers i2c: Call client_unregister for new-style devices too i2c: Clean up old chip drivers i2c-ibm_iic: Register child nodes i2c: New-style EEPROM driver using device IDs i2c: Export the i2c_bus_type symbol i2c-au1550: Fix PM support i2c-dev: Delete empty detach_client callback i2c: Drop stray references to lm_sensors i2c: Check for ACPI resource conflicts i2c-ocores: basic PM support i2c-sibyte: SWARM I2C board initialization i2c-i801: Fix handling of error conditions i2c-i801: Rename local variable temp to status i2c-i801: Properly report bus arbitration loss i2c-i801: Remove verbose debugging messages i2c-algo-pcf: Drop unused struct members i2c-algo-pcf: Multi-master lost-arbitration improvement i2c: Deprecate the legacy gpio drivers i2c-pxa: Initialize early ... commit 98339cbd360b77c3167db287fd611468c2c44559 Merge: e4e0fad... cbbc4e8... Author: Linus Torvalds Date: Tue Jul 15 11:15:36 2008 -0700 Merge git://git.kernel.org/pub/scm/linux/kernel/git/bart/ide-2.6 * git://git.kernel.org/pub/scm/linux/kernel/git/bart/ide-2.6: (80 commits) ide-floppy: fix unfortunate function naming ide-tape: unify idetape_create_read/write_cmd ide: add ide_pc_intr() helper ide-{floppy,scsi}: read Status Register before stopping DMA engine ide-scsi: add more debugging to idescsi_pc_intr() ide-scsi: use pc->callback ide-floppy: add more debugging to idefloppy_pc_intr() ide-tape: always log debug info in idetape_pc_intr() if debugging is enabled ide-tape: add ide_tape_io_buffers() helper ide-tape: factor out DSC handling from idetape_pc_intr() ide-{floppy,tape}: move checking of ->failed_pc to ->callback ide: add ide_issue_pc() helper ide: add PC_FLAG_DRQ_INTERRUPT pc flag ide-scsi: move idescsi_map_sg() call out from idescsi_issue_pc() ide: add ide_transfer_pc() helper ide-scsi: set drive->scsi flag for devices handled by the driver ide-{cd,floppy,tape}: remove checking for drive->scsi ide: add PC_FLAG_ZIP_DRIVE pc flag ide-tape: factor out waiting for good ireason from idetape_transfer_pc() ide-tape: set PC_FLAG_DMA_IN_PROGRESS flag in idetape_transfer_pc() ... commit cbbc4e818de4451cdef75a112b7fc8a523d5d2a0 Author: Borislav Petkov Date: Tue Jul 15 21:22:03 2008 +0200 ide-floppy: fix unfortunate function naming mv idefloppy_transfer_pc1 idefloppy_start_pc_transfer mv idefloppy_transfer_pc2 idefloppy_transfer_pc which describes their functionality and disambiguates them. There should be no functionality change introduced by this patch. Signed-off-by: Borislav Petkov Signed-off-by: Bartlomiej Zolnierkiewicz commit cd2abbfec84f43db740483daf4ea528d49d8858f Author: Borislav Petkov Date: Tue Jul 15 21:22:03 2008 +0200 ide-tape: unify idetape_create_read/write_cmd A straightforward one. There should be no functional change resulting from this change. [bart: minor fixups] Signed-off-by: Borislav Petkov Signed-off-by: Bartlomiej Zolnierkiewicz commit 646c0cb6c430f8d3ad3769dd1518fe664ff0ce27 Author: Bartlomiej Zolnierkiewicz Date: Tue Jul 15 21:22:03 2008 +0200 ide: add ide_pc_intr() helper * ide-tape.c: add 'drive' argument to idetape_update_buffers(). * Add generic ide_pc_intr() helper to ide-atapi.c and then convert ide-{floppy,tape,scsi} device drivers to use it. * ide-tape.c: remove no longer needed DBG_PC_INTR. There should be no functional changes caused by this patch (unless the debugging is explicitely compiled in). Cc: Borislav Petkov Signed-off-by: Bartlomiej Zolnierkiewicz commit 55d82bfa6763d6761670d740ab3bac2f1c042d87 Author: Bartlomiej Zolnierkiewicz Date: Tue Jul 15 21:22:03 2008 +0200 ide-{floppy,scsi}: read Status Register before stopping DMA engine Read Status Register before stopping DMA engine to match ide-tape device driver - it should be safe and shouldn't affect anything. This is a preparation for adding generic ide_pc_intr() helper. Cc: Borislav Petkov Signed-off-by: Bartlomiej Zolnierkiewicz commit cdca5c1f3b769eb2cdfc9cadc254cb74ba73c7d6 Author: Bartlomiej Zolnierkiewicz Date: Tue Jul 15 21:22:02 2008 +0200 ide-scsi: add more debugging to idescsi_pc_intr() Add more debugging to idescsi_pc_intr() to match ide-tape's idetape_pc_intr(). While at it: * Correct the first debug message. This is a preparation for adding generic ide_pc_intr() helper. Cc: Borislav Petkov Signed-off-by: Bartlomiej Zolnierkiewicz commit c6b2d260b5a7a5ed32aa2ce370d81183fc37eeb1 Author: Bartlomiej Zolnierkiewicz Date: Tue Jul 15 21:22:02 2008 +0200 ide-scsi: use pc->callback * Add ide_scsi_callback() pc->callback implementation, then update idescsi_check_condition() and idescsi_queue() to setup ->callback. * Convert idescsi_pc_intr() to use pc->callback. This is a preparation for adding generic ide_pc_intr() helper. Cc: Borislav Petkov Signed-off-by: Bartlomiej Zolnierkiewicz commit 4c93067ea9e5eca9d975bec74dae641228ac1bbe Author: Bartlomiej Zolnierkiewicz Date: Tue Jul 15 21:22:02 2008 +0200 ide-floppy: add more debugging to idefloppy_pc_intr() Add more debugging to idefloppy_pc_intr() to match ide-tape's idetape_pc_intr(). While at it: * Correct the first debug message. * Log device name with "DMA finished" message. This is a preparation for adding generic ide_pc_intr() helper. Cc: Borislav Petkov Signed-off-by: Bartlomiej Zolnierkiewicz commit 3e421d324c003f8f002f402141b15d758adbfaef Author: Bartlomiej Zolnierkiewicz Date: Tue Jul 15 21:22:01 2008 +0200 ide-tape: always log debug info in idetape_pc_intr() if debugging is enabled Add DBG_PC_INTR debug level and use it to always log debug info in idetape_pc_intr() if debugging is enabled. While at it: * Use drive->name instead of tape->name. * Log device name with "DMA finished" message. This is a preparation for adding generic ide_pc_intr() helper. Cc: Borislav Petkov Signed-off-by: Bartlomiej Zolnierkiewicz commit 08424ac24a35b505463919a897b097f27e4dca96 Author: Bartlomiej Zolnierkiewicz Date: Tue Jul 15 21:22:01 2008 +0200 ide-tape: add ide_tape_io_buffers() helper * Add ide_tape_io_buffers() helper which is a wrapper for idetape_{in,out}put_buffers() and convert idetape_pc_intr() to use it. * Remove no longer used idetape_io_buf typedef. There should be no functional changes caused by this patch. Cc: Borislav Petkov Signed-off-by: Bartlomiej Zolnierkiewicz --- commit 74e63e74ea57e06839aa5fcf016eace35da26050 Author: Bartlomiej Zolnierkiewicz Date: Tue Jul 15 21:22:01 2008 +0200 ide-tape: factor out DSC handling from idetape_pc_intr() Factor out DSC handling from idetape_pc_intr() to ide_tape_handle_dsc() helper as a preparation for adding generic ide_pc_intr() helper. There should be no functional changes caused by this patch. Cc: Borislav Petkov Signed-off-by: Bartlomiej Zolnierkiewicz commit dd2e9a032bc552f6e2ae852e81cde602c09d7d3e Author: Bartlomiej Zolnierkiewicz Date: Tue Jul 15 21:22:01 2008 +0200 ide-{floppy,tape}: move checking of ->failed_pc to ->callback Move checking/resetting of ->failed_pc from ide*_pc_intr() to ->callback as a preparation for adding generic ide_pc_intr() helper. There should be no functional changes caused by this patch. Cc: Borislav Petkov Signed-off-by: Bartlomiej Zolnierkiewicz --- commit 6bf1641ca1c7554f0da54aaf89788731b541bacc Author: Bartlomiej Zolnierkiewicz Date: Tue Jul 15 21:22:00 2008 +0200 ide: add ide_issue_pc() helper Add generic ide_issue_pc() helper to ide-atapi.c and then convert ide-{floppy,tape,scsi} device drivers to use it. There should be no functional changes caused by this patch. Cc: Borislav Petkov Signed-off-by: Bartlomiej Zolnierkiewicz commit 28c7214bd8c2bbd4873b8f1e7f58d86d3731124f Author: Bartlomiej Zolnierkiewicz Date: Tue Jul 15 21:21:59 2008 +0200 ide: add PC_FLAG_DRQ_INTERRUPT pc flag Add PC_FLAG_DRQ_INTERRUPT pc flag, set it in ide*_do_request() and check for it (instead of checking for IDE*_FLAG_DRQ_INTERRUPT) in ide*_issue_pc(). This is a preparation for adding generic ide_issue_pc() helper. There should be no functional changes caused by this patch. Cc: Borislav Petkov Signed-off-by: Bartlomiej Zolnierkiewicz commit 4cc196897de9e6c02cf86debc5b9f7cf1b69a214 Author: Bartlomiej Zolnierkiewicz Date: Tue Jul 15 21:21:58 2008 +0200 ide-scsi: move idescsi_map_sg() call out from idescsi_issue_pc() Move idescsi_map_sg() call out from idescsi_issue_pc() to idescsi_do_request() as a preparation to adding generic ide_issue_pc() helper. There should be no functional changes caused by this patch. Cc: Borislav Petkov Signed-off-by: Bartlomiej Zolnierkiewicz commit 594c16d8dd54cd7b1c5ef1ec3ac0f6bf34301dad Author: Bartlomiej Zolnierkiewicz Date: Tue Jul 15 21:21:58 2008 +0200 ide: add ide_transfer_pc() helper * Add ide-atapi.c file for generic ATAPI support together with CONFIG_IDE_ATAPI config option. * Add generic ide_transfer_pc() helper to ide-atapi.c and then convert ide-{floppy,tape,scsi} device drivers to use it. There should be no functional changes caused by this patch. Cc: Borislav Petkov Signed-off-by: Bartlomiej Zolnierkiewicz commit f83cbc77b0d5521b4f0f591ede4870316944481a Author: Bartlomiej Zolnierkiewicz Date: Tue Jul 15 21:21:58 2008 +0200 ide-scsi: set drive->scsi flag for devices handled by the driver This is a preparation for adding generic ide_transfer_pc() helper. There should be no functional changes caused by this patch. Cc: Borislav Petkov Signed-off-by: Bartlomiej Zolnierkiewicz commit 794cc6804bb946826b7427d205ac391a5370d361 Author: Bartlomiej Zolnierkiewicz Date: Tue Jul 15 21:21:57 2008 +0200 ide-{cd,floppy,tape}: remove checking for drive->scsi Remove checking for drive->scsi which is no longer set by IDE core code (leave the flag since it will be re-used for generic ATAPI support). Cc: Borislav Petkov Signed-off-by: Bartlomiej Zolnierkiewicz commit 5d41893c0f9caf94b449eada0279a08c86f0212e Author: Bartlomiej Zolnierkiewicz Date: Tue Jul 15 21:21:57 2008 +0200 ide: add PC_FLAG_ZIP_DRIVE pc flag Add PC_FLAG_ZIP_DRIVE pc flag, set it in idefloppy_do_request() and check for it (instead of checking for IDEFLOPPY_FLAG_ZIP_DRIVE) in idefloppy_transfer_pc(). This is a preparation for adding generic ide_transfer_pc() helper. There should be no functional changes caused by this patch. Cc: Borislav Petkov Signed-off-by: Bartlomiej Zolnierkiewicz commit 5a7b75ab429e9ed568be50cfbf7091f097457cb8 Author: Bartlomiej Zolnierkiewicz Date: Tue Jul 15 21:21:57 2008 +0200 ide-tape: factor out waiting for good ireason from idetape_transfer_pc() Factor out waiting for good ireason from idetape_transfer_pc() to ide_tape_wait_ireason() as a preparation for adding generic ide_transfer_pc() helper. There should be no functional changes caused by this patch. Cc: Borislav Petkov Signed-off-by: Bartlomiej Zolnierkiewicz commit 9fd13a27c8a35ff1986793cb96aaedb5e75b5368 Author: Bartlomiej Zolnierkiewicz Date: Tue Jul 15 21:21:57 2008 +0200 ide-tape: set PC_FLAG_DMA_IN_PROGRESS flag in idetape_transfer_pc() Set PC_FLAG_DMA_IN_PROGRESS flag in idetape_transfer_pc() instead of idetape_issue_pc() to match the other ATAPI device drivers. Cc: Borislav Petkov Signed-off-by: Bartlomiej Zolnierkiewicz commit 6ffb66410dd9f5f383d9265d51ab667333a8296c Author: Bartlomiej Zolnierkiewicz Date: Tue Jul 15 21:21:56 2008 +0200 ide-floppy: start DMA engine in idefloppy_transfer_pc1() Start DMA engine and set PC_FLAG_DMA_IN_PROGRESS flag in idefloppy_transfer_pc1() instead of idefloppy_issue_pc() so the Status Register and the Interrupt Reason Register are checked first. Cc: Borislav Petkov Signed-off-by: Bartlomiej Zolnierkiewicz commit 5e3310958204912f3f00be2592c945fbc37db6ae Author: Bartlomiej Zolnierkiewicz Date: Tue Jul 15 21:21:56 2008 +0200 ide-{floppy,tape}: PC_FLAG_DMA_RECOMMENDED -> PC_FLAG_DMA_OK * Use PC_FLAG_DMA_OK flag instead of PC_FLAG_DMA_RECOMMENDED one. * Remove no longer used PC_FLAG_DMA_RECOMMENDED flag. There should be no functional changes caused by this patch. Cc: Borislav Petkov Signed-off-by: Bartlomiej Zolnierkiewicz commit 1b06e92aa03018e4b3ba281e03a7711d9b71a998 Author: Bartlomiej Zolnierkiewicz Date: Tue Jul 15 21:21:56 2008 +0200 ide-{floppy,tape}: merge pc->idefloppy_callback and pc->idetape_callback Merge pc->idefloppy_callback and pc->idetape_callback into pc->callback. There should be no functional changes caused by this patch. Cc: Borislav Petkov Signed-off-by: Bartlomiej Zolnierkiewicz commit 81f4938239fea86d0a7529194a37fb81041171e0 Author: Borislav Petkov Date: Tue Jul 15 21:21:56 2008 +0200 ide-floppy: merge callbacks The appropriate functionality of the callback is established through querying the ATAPI packet command in pc->c[0]. While at it, simplify if (floppy->failed_pc)-branch to be found in the original idefloppy_request_sense_callback(). Bart: - keep handling for blk_pc_request() requests unchanged + add FIXME - add uptodate variable + leave just one idefloppy_end_request() call - add newline to the debug message Signed-off-by: Borislav Petkov Signed-off-by: Bartlomiej Zolnierkiewicz commit 92f5daff2b8439fa4c57c57f47823ffc459c3bd9 Author: Bartlomiej Zolnierkiewicz Date: Tue Jul 15 21:21:55 2008 +0200 ide-tape: make pc->idetape_callback void There should be no functional changes caused by this patch. Cc: Borislav Petkov Signed-off-by: Bartlomiej Zolnierkiewicz commit 5985e6abbd89f969c17fd80ab864c80f089827a3 Author: Bartlomiej Zolnierkiewicz Date: Tue Jul 15 21:21:55 2008 +0200 ide-tape: merge callbacks The appropriate functionality of the callback is established through querying the ATAPI packet command in pc->c[0]. While at it: - add uptodate variable + leave just one idetape_end_request() call - don't use HWGROUP() macro Cc: Borislav Petkov Signed-off-by: Bartlomiej Zolnierkiewicz commit 258ec4113081c2b63117dc2df6d94c3e484e9747 Author: Bartlomiej Zolnierkiewicz Date: Tue Jul 15 21:21:55 2008 +0200 ide-tape: make idetape_retry_pc() void idetape_retry_pc() always returns ide_stopped so make it void. There should be no functional changes caused by this patch. Cc: Borislav Petkov Signed-off-by: Bartlomiej Zolnierkiewicz commit 568ca92774d2f6be4a7e2f8357559bfdc9424056 Author: Bartlomiej Zolnierkiewicz Date: Tue Jul 15 21:21:54 2008 +0200 ide-{floppy,tape,scsi}: log device name instead of driver name Log device name instead of driver name in *_pc_intr() and *_transfer_pc*(). While at it: * Merge two consecutive printk()-s in *_pc_intr() together. * Replace "floppy"/"tape"/"scsi" references in printk()-s by "device". Cc: Borislav Petkov Signed-off-by: Bartlomiej Zolnierkiewicz commit 0b2eea4c5594ceaf13c57eaff7ff226263f1c36f Author: Bartlomiej Zolnierkiewicz Date: Tue Jul 15 21:21:54 2008 +0200 ide-floppy: merge idefloppy_transfer_pc() and idefloppy_transfer_pc1() * Check IDEFLOPPY_FLAG_ZIP_DRIVE flag in idefloppy_transfer_pc1() and skip idefloppy_transfer_pc2()-phase if the flag is not set. * Always use idefloppy_transfer_pc1() in idefloppy_issue_pc() and remove no longer needed idefloppy_transfer_pc(). There should be no functional changes caused by this patch. Cc: Borislav Petkov Signed-off-by: Bartlomiej Zolnierkiewicz commit 170ee569bbe1005baebf2e9e4c3f4622d14ec851 Author: Bartlomiej Zolnierkiewicz Date: Tue Jul 15 21:21:54 2008 +0200 ide-tape: remove SIMULATE_ERRORS debug code Cc: Borislav Petkov Signed-off-by: Bartlomiej Zolnierkiewicz commit 531e9e50543ebf562237b8ac64529ae09b344a43 Author: Bartlomiej Zolnierkiewicz Date: Tue Jul 15 21:21:54 2008 +0200 ide-tape: remove stale comments from idetape_pc_intr() Cc: Borislav Petkov Signed-off-by: Bartlomiej Zolnierkiewicz commit 91395a16309596c2e78439aa5f9f6004f0365ef9 Author: Bartlomiej Zolnierkiewicz Date: Tue Jul 15 21:21:54 2008 +0200 ide-tape: remove unneeded CONFIG_BLK_DEV_IDEDMA ifdef PC_FLAG_DMA_IN_PROGRESS flag is never set if DMA support is disabled. Cc: Borislav Petkov Signed-off-by: Bartlomiej Zolnierkiewicz commit 6bd3b0bfb8fccdcce3b8524d6761e0a3ab6e23f0 Author: Bartlomiej Zolnierkiewicz Date: Tue Jul 15 21:21:53 2008 +0200 ide-tape: remove superfluous warning message from idetape_issue_pc() ide_dma_off() prints info about DMA being disabled. Cc: Borislav Petkov Signed-off-by: Bartlomiej Zolnierkiewicz commit 1e049a8ea190b7cc22320c7797b36b2c6128c9c5 Author: Bartlomiej Zolnierkiewicz Date: Tue Jul 15 21:21:53 2008 +0200 ide-tape: remove superfluous error message from idetape_pc_intr() ide_dma_off() prints info about DMA being disabled. Cc: Borislav Petkov Signed-off-by: Bartlomiej Zolnierkiewicz commit 87429bdc2e0701fa33a455297de01e79797b4210 Author: Bartlomiej Zolnierkiewicz Date: Tue Jul 15 21:21:53 2008 +0200 ide-tape: idetape_pc_intr() should use local_irq_enable_in_hardirq() Cc: Borislav Petkov Signed-off-by: Bartlomiej Zolnierkiewicz commit 43a2b5b29385a3e0997a47c86f286d3645e5cb44 Author: Bartlomiej Zolnierkiewicz Date: Tue Jul 15 21:21:52 2008 +0200 ide-scsi: add debug_log() macro Add debug_log() macro and convert the driver to use it. [ This makes debug messages to be always prefixed with "ide-scsi: " and use KERN_INFO level. ] While at it: * Change "DMA complete" debug message to "DMA finished" to match other ATAPI device drivers. * Use __func__. Cc: Borislav Petkov Signed-off-by: Bartlomiej Zolnierkiewicz commit c8c51129805c0efb32f34afd3af8fe94f5757363 Author: Bartlomiej Zolnierkiewicz Date: Tue Jul 15 21:21:52 2008 +0200 ide-scsi: remove superfluous BUG_ON() from idescsi_transfer_pc() ide_set_handler() bugs on ->handler == NULL so no need to do it in idescsi_transfer_pc(). There should be no functional changes caused by this patch. Cc: Borislav Petkov Signed-off-by: Bartlomiej Zolnierkiewicz commit 3e52fb4d1f4cc9630422982b6c5fa571e30f9889 Author: Bartlomiej Zolnierkiewicz Date: Tue Jul 15 21:21:52 2008 +0200 ide-scsi: merge idescsi_input_buffers() and idescsi_output_buffers() * Merge idescsi_input_buffers() and idescsi_output_buffers() into ide_scsi_io_buffers() helper. While at it: * Log device name instead of driver name on error. * Use xfer_func_t. Cc: Borislav Petkov Signed-off-by: Bartlomiej Zolnierkiewicz commit 6c60bd8ea7aa536d67830bc8384ef0ebdfb8aad4 Author: Bartlomiej Zolnierkiewicz Date: Tue Jul 15 21:21:52 2008 +0200 ide-scsi: fix Interrupt Reason checking in idescsi_pc_intr() Set PC_FLAG_WRITING pc flag in idescsi_queue() (if needed) and then fix Interrupt Reason checking in idescsi_pc_intr(). Cc: Borislav Petkov Signed-off-by: Bartlomiej Zolnierkiewicz commit c04bbc812b05b304a9118687d0e0a47e35f00d1d Author: Bartlomiej Zolnierkiewicz Date: Tue Jul 15 21:21:51 2008 +0200 ide-scsi: fix handling of DMA errors in idescsi_pc_intr() Check return value of ->dma_end method and if there was a DMA error handle it accordingly (set PC_FLAG_DMA_ERROR pc flag, don't update pc->xferred and increase rq->errors). Also move debug message in the right place while at it. Cc: Borislav Petkov Signed-off-by: Bartlomiej Zolnierkiewicz commit e8e25f03e19c2c47834c821511625c0b80567827 Author: Bartlomiej Zolnierkiewicz Date: Tue Jul 15 21:21:51 2008 +0200 ide-scsi: fix DRQ checking for DMA transfers in idescsi_pc_intr() If DRQ bit of Status Register is not cleared it is an error condition and should be handled accordingly (disable DMA + reset the device). Cc: Borislav Petkov Signed-off-by: Bartlomiej Zolnierkiewicz commit b3d96afccf8b5c67b66a61efb88c53ff029c6611 Author: Bartlomiej Zolnierkiewicz Date: Tue Jul 15 21:21:51 2008 +0200 ide-scsi: fix race in idescsi_transfer_pc() Start DMA engine before sending content of packet command (otherwise it is possible that IRQ will happen before DMA engine is started). Cc: Borislav Petkov Signed-off-by: Bartlomiej Zolnierkiewicz commit 63f5abb0959337db0d5bece9cefba03cdcadec51 Author: FUJITA Tomonori Date: Tue Jul 15 21:21:51 2008 +0200 ide: remove action argument in ide_do_drive_cmd ide_do_drive_cmd is called only with ide_preempt action argument. So we can remove the action argument in ide_do_drive_cmd and ide_action_t typedef. This patch also includes two minor cleanups: 1) ide_do_drive_cmd always succeeds so we don't need the return value; 2) the callers use blk_rq_init before ide_do_drive_cmd so there is no need to initialize rq->errors. Signed-off-by: FUJITA Tomonori Cc: Borislav Petkov Signed-off-by: Bartlomiej Zolnierkiewicz commit 7e12ca11d65f4cb29ed58ea3948f8c5d4f57b35e Author: FUJITA Tomonori Date: Tue Jul 15 21:21:50 2008 +0200 ide-scsi: replace ide_do_drive_cmd with blk_execute_rq_nowait All the callers of ide_do_drive_cmd() except for ide-scsi use ide_preempt action argument. This converts ide-scsi to use blk_execute_rq_nowait instead of ide_do_drive_cmd so that we can remove the action argument in ide_do_drive_cmd and ide_action_t typedef. Signed-off-by: FUJITA Tomonori Cc: Borislav Petkov Signed-off-by: Bartlomiej Zolnierkiewicz commit ff07488346702f554aaeb6aae982540aa0302373 Author: Bartlomiej Zolnierkiewicz Date: Tue Jul 15 21:21:50 2008 +0200 ide: remove drive->ctl Remove drive->ctl (it is always equal to 0x08 after init time). While at it: * Use ATA_DEVCTL_OBS define. There should be no functional changes caused by this patch. Signed-off-by: Bartlomiej Zolnierkiewicz commit 0fd04dcc2ebb6ec9088c24b368b0ce1f42a98ef5 Author: Bartlomiej Zolnierkiewicz Date: Tue Jul 15 21:21:50 2008 +0200 ide: use ->OUTBSYNC in ide_set_irq() Signed-off-by: Bartlomiej Zolnierkiewicz commit 6a732e11be1355baeeca7c47f19ab20e7baa6ce7 Author: Bartlomiej Zolnierkiewicz Date: Tue Jul 15 21:21:50 2008 +0200 ide: use ->OUTBSYNC in init_irq() Signed-off-by: Bartlomiej Zolnierkiewicz commit f8c4bd0ab2b8783c0f080957781e9f70bee48eaa Author: Bartlomiej Zolnierkiewicz Date: Tue Jul 15 21:21:49 2008 +0200 ide: pass 'hwif *' instead of 'drive *' to ->OUTBSYNC method There should be no functional changes caused by this patch. Signed-off-by: Bartlomiej Zolnierkiewicz commit 135721446144af005109c25eeacca4fdddcd9a66 Author: Bartlomiej Zolnierkiewicz Date: Tue Jul 15 21:21:49 2008 +0200 ide: remove ->mmio flag from ide_hwif_t Since scc_pata host driver no longer uses IDE PCI layer / ide_dma_setup() and all other ->mmio users set also IDE_HFLAG_MMIO host flag we can safely remove ->mmio flag. There should be no functional changes caused by this patch. Signed-off-by: Bartlomiej Zolnierkiewicz commit ed4af48fd660176680da905817f6e40d51436e4c Author: Bartlomiej Zolnierkiewicz Date: Tue Jul 15 21:21:48 2008 +0200 ide: move IRQ unmasking out from ->tf_load method Move IRQ unmasking out from ->tf_load method to its users. There should be no functional changes caused by this patch (SELECT_MASK() is NOP except for hpt366, icside and sgiioc4). Signed-off-by: Bartlomiej Zolnierkiewicz commit 9a410e79b552bacb4481f85618aa7333b7776ed7 Author: Bartlomiej Zolnierkiewicz Date: Tue Jul 15 21:21:48 2008 +0200 ide: remove IDE_TFLAG_NO_SELECT_MASK taskfile flag Always call SELECT_MASK(..., 0) in ide_tf_load() (needs to be done to match ide_set_irq(..., 1)) and then remove IDE_TFLAG_NO_SELECT_MASK taskfile flag. This change should only affect hpt366 and icside host drivers since ->maskproc(..., 0) for sgiioc4 is equivalent to ide_set_irq(..., 1). Cc: Sergei Shtylyov Cc: Russell King Signed-off-by: Bartlomiej Zolnierkiewicz commit e81a3bde13343bc36613aff8f864def7171b376a Author: Bartlomiej Zolnierkiewicz Date: Tue Jul 15 21:21:48 2008 +0200 ide: fix do_probe() to use SELECT_DRIVE() Fix one place in do_probe() which used ->OUTB directly instead of calling SELECT_DRIVE() (so ->selectproc method is also used). Signed-off-by: Bartlomiej Zolnierkiewicz commit 49e153e68187454e296f1e03442393f1a3f1d69c Author: Bartlomiej Zolnierkiewicz Date: Tue Jul 15 21:21:47 2008 +0200 ide: remove commented out code from ide_config_drive_speed() Signed-off-by: Bartlomiej Zolnierkiewicz commit 912ef6d94cc07ce5db19a8ed8953676727d4f30c Author: Bartlomiej Zolnierkiewicz Date: Tue Jul 15 21:21:47 2008 +0200 sgiioc4: use ->extra_base instead of ->dma_status for dma_handle This is a preparation for removal of ->dma_status field from ide_hwif_t. There should be no functional changes caused by this patch. Acked-by: Jeremy Higdon Signed-off-by: Bartlomiej Zolnierkiewicz commit 57279a7a401eed844ded4346c5ff512e622ac1de Author: Bartlomiej Zolnierkiewicz Date: Tue Jul 15 21:21:47 2008 +0200 ide: remove try_to_flush_leftover_data() Just use the new & shiny ide_pad_transfer() helper instead. Also remove the superfluous check for 'drive->media == ide_disk' while at it (ide_ata_error() is used only for ide_disk devices). Signed-off-by: Bartlomiej Zolnierkiewicz commit 931ee0dc5c69e8113233d21942681ab8fecde7f9 Author: Bartlomiej Zolnierkiewicz Date: Tue Jul 15 21:21:47 2008 +0200 ide: remove obsoleted "ide=" kernel parameters * Remove obsoleted "ide=" kernel parameters. * Remove no longer needed: - ide_setup() - parse_options() - __setup("", ...) - module_param(options, ...) * Use module_{init,exit}() for MODULE=y case and remove MODULE ifdef. * Make ide_*acpi* and ide_doubler variables static. Signed-off-by: Bartlomiej Zolnierkiewicz commit dbac9f895f628deebc99dee86dfd21c1823013c3 Author: Bartlomiej Zolnierkiewicz Date: Tue Jul 15 21:21:46 2008 +0200 ide: cleanup init_ide_data() * Remove no longer need init_ide_data() call from ide_setup(). * Cleanup init_ide_data(). Signed-off-by: Bartlomiej Zolnierkiewicz commit 232595eaff951e96cabe5e85fed35f66b72ff51e Author: Bartlomiej Zolnierkiewicz Date: Tue Jul 15 21:21:46 2008 +0200 ide: remove obsoleted "hdx=" kernel parameters * Remove obsoleted "hdx=" kernel parameters. * Remove no longer used stridx() and match_parm(). Signed-off-by: Bartlomiej Zolnierkiewicz commit 30e5ee4d1a651a0c66e86c6612c003034bd20ba2 Author: Bartlomiej Zolnierkiewicz Date: Tue Jul 15 21:21:46 2008 +0200 ide: remove obsoleted "idebus=" kernel parameter * Remove obsoleted "idebus=" kernel parameter. * Remove no longer needed ide_system_bus_speed() and system_bus_clock() (together with idebus_parameter and system_bus_speed variables). Signed-off-by: Bartlomiej Zolnierkiewicz commit 681a561b7ec7fdcd8f35b68e44ac6d6c70aecc04 Author: FUJITA Tomonori Date: Tue Jul 15 21:21:45 2008 +0200 block: unexport blk_end_sync_rq All the users of blk_end_sync_rq has gone (they are converted to use blk_execute_rq). This unexports blk_end_sync_rq. Signed-off-by: FUJITA Tomonori Cc: Borislav Petkov Signed-off-by: Jens Axboe Signed-off-by: Bartlomiej Zolnierkiewicz commit 52a93ba815737e3877f85b46850cffe993a22429 Author: FUJITA Tomonori Date: Tue Jul 15 21:21:45 2008 +0200 block: remove the checking for NULL queue in blk_put_request Some uses blk_put_request asymmetrically, that is, they uses it with requests that not allocated by blk_get_request. As a result, blk_put_request has a hack to catch a NULL request_queue. Now such callers are fixed (they use blk_get_request properly). So we can safely remove the hack in blk_put_request. Signed-off-by: FUJITA Tomonori Cc: Borislav Petkov Signed-off-by: Jens Axboe Signed-off-by: Bartlomiej Zolnierkiewicz commit d79c5a670ddf076a346ddcf3d9e21785ecab963f Author: FUJITA Tomonori Date: Tue Jul 15 21:21:45 2008 +0200 block: convert pd_special_command to use blk_execute_rq pd_special_command uses blk_put_request with struct request on the stack. As a result, blk_put_request needs a hack to catch a NULL request_queue. This converts pd_special_command to use blk_execute_rq. Signed-off-by: FUJITA Tomonori Cc: Borislav Petkov Signed-off-by: Jens Axboe Signed-off-by: Bartlomiej Zolnierkiewicz commit ed820f19521de246c5b7978f8f78290733a55b20 Author: FUJITA Tomonori Date: Tue Jul 15 21:21:45 2008 +0200 ide-cd: remove ide_cd_init_rq ide_cd_init_rq is not used by ide-cd_ioctl any more. Only cdrom_queue_request_sense use it. This converts cdrom_queue_request_sense to use blk_rq_init directly and removes ide_cd_init_rq. Signed-off-by: FUJITA Tomonori Cc: Borislav Petkov Cc: Jens Axboe Signed-off-by: Bartlomiej Zolnierkiewicz commit 124cafc5eb973e748c4ce3dc1caad29274e64613 Author: FUJITA Tomonori Date: Tue Jul 15 21:21:44 2008 +0200 ide: remove ide_init_drive_cmd ide_init_drive_cmd just calls blk_rq_init. This converts the users of ide_init_drive_cmd to use blk_rq_init directly and removes ide_init_drive_cmd. Signed-off-by: FUJITA Tomonori Cc: Borislav Petkov Cc: Jens Axboe Signed-off-by: Bartlomiej Zolnierkiewicz commit 5f2e1ceef45ac07d7c52d16de2531a56c453bb0f Author: FUJITA Tomonori Date: Tue Jul 15 21:21:44 2008 +0200 ide: remove ide_wait/head_wait path in ide_do_drive_cmd Now all the users of ide_do_drive_cmd using ide_wait/head_wait are converted to use blk_execute_rq this removes the ide_wait/head_wait path in ide_do_drive_cmd. Signed-off-by: FUJITA Tomonori Cc: Borislav Petkov Cc: Jens Axboe Signed-off-by: Bartlomiej Zolnierkiewicz commit 5b114715ed63f3a4fdf790f5df61364fc4adadf1 Author: FUJITA Tomonori Date: Tue Jul 15 21:21:44 2008 +0200 ide: convert ide_do_drive_cmd path to use blk_execute_rq This converts the ide_do_drive_cmd path using ide_[head_]wait to use blk_execute_rq. Signed-off-by: FUJITA Tomonori Cc: Borislav Petkov Cc: Jens Axboe Signed-off-by: Bartlomiej Zolnierkiewicz commit 9a2d43b7566caeeeb414aa628bc2759028897dbb Author: Bartlomiej Zolnierkiewicz Date: Tue Jul 15 21:21:43 2008 +0200 block: handle blk_pm_resume_request() requests in blk_execute_rq_nowait() For blk_pm_resume_request() requests (which are used only by IDE subsystem currently) the queue is stopped so we need to call ->request_fn explicitly. Thanks to: - Rafael for reporting/bisecting the bug - Borislav/Rafael for testing the fix This is a preparation for converting IDE to use blk_execute_rq(). Cc: FUJITA Tomonori Cc: Borislav Petkov Cc: Jens Axboe Cc: "Rafael J. Wysocki" Signed-off-by: Bartlomiej Zolnierkiewicz commit 64ea1b4ab7f51c5de601d291a51508c27d445f70 Author: FUJITA Tomonori Date: Tue Jul 15 21:21:43 2008 +0200 ide-tape: convert ide_do_drive_cmd path to use blk_execute_rq This converts the ide_do_drive_cmd path using ide_wait to use blk_execute_rq. Signed-off-by: FUJITA Tomonori Cc: Borislav Petkov Cc: Jens Axboe Signed-off-by: Bartlomiej Zolnierkiewicz commit 154ed280e3f48995d0689b57f10b7063add63019 Author: FUJITA Tomonori Date: Tue Jul 15 21:21:43 2008 +0200 ide-taskfile: convert ide_do_drive_cmd path to use blk_execute_rq This converts the ide_do_drive_cmd path using ide_wait to use blk_execute_rq. Signed-off-by: FUJITA Tomonori Cc: Borislav Petkov Cc: Jens Axboe Signed-off-by: Bartlomiej Zolnierkiewicz commit 6fe162381e547f457252e68521eb42fd36ec1418 Author: FUJITA Tomonori Date: Tue Jul 15 21:21:43 2008 +0200 ide-floppy: convert ide_do_drive_cmd path to use blk_execute_rq This converts the ide_do_drive_cmd path using ide_wait to use blk_execute_rq. Signed-off-by: FUJITA Tomonori Cc: Borislav Petkov Cc: Jens Axboe Signed-off-by: Bartlomiej Zolnierkiewicz commit dd47087bc173a84e8c42644b315d38b30dc02263 Author: FUJITA Tomonori Date: Tue Jul 15 21:21:43 2008 +0200 ide-disk: convert ide_do_drive_cmd path to use blk_execute_rq This converts the ide_do_drive_cmd path using ide_wait to use blk_execute_rq. Signed-off-by: FUJITA Tomonori Cc: Borislav Petkov Cc: Jens Axboe Signed-off-by: Bartlomiej Zolnierkiewicz commit 0ef4c4db7faabe4fb8a516e9e991e1e8e87a647f Author: FUJITA Tomonori Date: Tue Jul 15 21:21:42 2008 +0200 ide-cd: convert ide_do_drive_cmd path to use blk_execute_rq This converts the ide_do_drive_cmd path using ide_wait to use blk_execute_rq. Signed-off-by: FUJITA Tomonori Cc: Borislav Petkov Cc: Jens Axboe Signed-off-by: Bartlomiej Zolnierkiewicz commit 5f828546e1acb45678e73d3a9a796c1a3a8c7846 Author: FUJITA Tomonori Date: Tue Jul 15 21:21:42 2008 +0200 ide-cd: convert ide_cd_queue_pc to use blk_execute_rq This converts ide_cd_queue_pc to use blk_execute_rq, necessitating changing the ide_cd_queue_pc prototype into a form that doesn't takes a pointer to request struct. ide_cd_queue_pc works like scsi_execute. Signed-off-by: FUJITA Tomonori Cc: Borislav Petkov Cc: Jens Axboe Signed-off-by: Bartlomiej Zolnierkiewicz commit c6866a6ff571eebebda45bf14b5b62188768893a Author: Bartlomiej Zolnierkiewicz Date: Tue Jul 15 21:21:42 2008 +0200 ide: use __generic_unplug_device() in ide_do_drive_cmd() (take 2) * Call __elv_add_request() with 'plug' == 1 (so the device will be plugged) and then use __generic_unplug_device() instead of calling ide_do_request() directly. v2: * For blk_pm_resume_request() requests the queue is stopped so we need to call ->request_fn explicitly. Thanks to: - Rafael for reporting/bisecting the bug - Borislav/Rafael for testing the fix This is a preparation for converting IDE to use blk_execute_rq(). Cc: FUJITA Tomonori Cc: Borislav Petkov Cc: Jens Axboe Cc: "Rafael J. Wysocki" Signed-off-by: Bartlomiej Zolnierkiewicz commit e8a96aa71355edef9f40ce01459acf25c50cb78c Author: Bartlomiej Zolnierkiewicz Date: Tue Jul 15 21:21:41 2008 +0200 ide: set REQ_PREEMPT request flag in ide_do_drive_cmd() users * Set REQ_PREEMPT request flag in ide_do_drive_cmd() users for ide_preempt and ide_head_wait action types. * Remove setting REQ_PREEMPT from ide_do_drive_cmd(). While at it: * Set 'where' variable outside ide_lock. This is a preparation for converting IDE to use blk_execute_rq(). There should be no functional changes caused by this patch. Cc: FUJITA Tomonori Cc: Borislav Petkov Cc: Jens Axboe Signed-off-by: Bartlomiej Zolnierkiewicz commit 5d0cc8ae29b310ceb6516a6840ca22738aab7820 Author: Harvey Harrison Date: Tue Jul 15 21:21:41 2008 +0200 ide: use get_unaligned_* helpers Signed-off-by: Harvey Harrison Cc: Andrew Morton Signed-off-by: Bartlomiej Zolnierkiewicz commit a792bd5a407872714942f50bf24083874ce03745 Author: Harvey Harrison Date: Tue Jul 15 21:21:41 2008 +0200 ide-tape: use clamp_t() rather than nested min_t()/max_t() Signed-off-by: Harvey Harrison Signed-off-by: Andrew Morton Signed-off-by: Bartlomiej Zolnierkiewicz commit d6cddd3cac6650f273a2595c9f403aacee01ab05 Author: Harvey Harrison Date: Tue Jul 15 21:21:41 2008 +0200 ide: eliminate FIT() macro Replace the FIT() macro with the kernel-provided clamp_val() macro. FIT was always being called with a member of a struct ide_timing, which are shorts, and constant constraints for the min and max. Thus we can use clamp_val, rather than clamp_t. Signed-off-by: Harvey Harrison Signed-off-by: Andrew Morton Signed-off-by: Bartlomiej Zolnierkiewicz commit 5ddee516dae1acc779b36cb7565720a80503196d Author: Mikhail Cherkashin Date: Tue Jul 15 21:21:40 2008 +0200 ide: disable drive interrupts in ide_driveid_update() Since ide_driveid_update() uses polling to execute the IDENTIFY DEVICE command but clears nIEN bit in the control register and doesn't mask the IDE interrupt, the latter does happen and lead to the corresponding message to appear: ide0: unexpected interrupt, status=0x58, count=1 when e.g. running hdparm with option -X with a non-PCI IDE driver... Signed-off-by: Mikhail Cherkashin Signed-off-by: Sergei Shtylyov Signed-off-by: Bartlomiej Zolnierkiewicz commit 8c6e46ddb343004e33653f62f0b09c0721cd8c12 Author: Mikhail Cherkashin Date: Tue Jul 15 21:21:40 2008 +0200 palm_bk3710: fix tRP for UDMA mode 4 Fix tRP timing for UDMA mode 4 according to the ATA specification. Signed-off-by: Mikhail Cherkashin Signed-off-by: Sergei Shtylyov Signed-off-by: Bartlomiej Zolnierkiewicz commit e4e0fadcd929138aa82130a1c5f22206d86d7bb2 Merge: 1435176... ec1aef3... Author: Linus Torvalds Date: Tue Jul 15 11:03:19 2008 -0700 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/shaggy/jfs-2.6 * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/shaggy/jfs-2.6: jfs: remove DIRENTSIZ JFS: diAlloc() should return -EIO rather than EIO JFS: skip bad iput() call in error path JFS: switch to seq_files JFS: 0 is not valid errno value so return NULL from jfs_lookup commit 14351760e314b8a9720804b11c6bd11d0c0b1258 Author: Linus Torvalds Date: Tue Jul 15 11:01:39 2008 -0700 Fix printk format warning in clocksource/acpi_pm.c For real, this time. The earlier attempt just moved the warning around. Signed-off-by: Linus Torvalds commit b27418aa551a153e8bf1bd16cf93e5786f9590a9 Author: Thomas Bogendoerfer Date: Mon Jul 14 16:58:47 2008 +0200 [MIPS] Remove mips_machtype for LASAT machines This is the LASAT part of the mips_machtype removal. Signed-off-by: Thomas Bogendoerfer Signed-off-by: Ralf Baechle commit 0b56fd8c7abbf85baeecb77be25c54d3c7d11587 Author: Thomas Bogendoerfer Date: Mon Jul 14 15:54:30 2008 +0200 [MIPS] Remove mips_machtype from EMMA2RH machines This is the EMMA2RH part of the mips_machtype removal. [Ralf: Fixed to the #error statements] Signed-off-by: Thomas Bogendoerfer Signed-off-by: Ralf Baechle commit c660729501894e0b88054ad4b66a5f98a1a2a37e Author: Thomas Bogendoerfer Date: Mon Jul 14 15:11:40 2008 +0200 [MIPS] Remove mips_machtype from ARC based machines This is the ARC part of the mips_machtype removal. Signed-off-by: Thomas Bogendoerfer Signed-off-by: Ralf Baechle commit 9528356308ecd2fb6368472615996a8602c02964 Author: Yoichi Yuasa Date: Fri Jul 11 22:34:48 2008 +0900 [MIPS] MTX-1 flash partition setup move to platform devices registration Signed-off-by: Yoichi Yuasa Acked-By: David Woodhouse Signed-off-by: Ralf Baechle commit 7b22609442a32050e37cec5f6735376af61e68a1 Author: Atsushi Nemoto Date: Mon Jul 14 00:15:04 2008 +0900 [MIPS] TXx9: cleanup and fix some sparse warnings * Do not return void value * Make some functions static * Do not include unnecessary bootinfo.h Signed-off-by: Atsushi Nemoto Signed-off-by: Ralf Baechle commit 4c642f3f5e9f3f1a2fcce2c3fa1a94bf80142202 Author: Atsushi Nemoto Date: Sun Jul 13 23:37:56 2008 +0900 [MIPS] TXx9: rename asm-mips/mach-jmr3927 to asm-mips/mach-tx39xx Rename mach-jmr3927 directory to more proper name to make adding other platforms easier. Signed-off-by: Atsushi Nemoto Signed-off-by: Ralf Baechle commit 6e68665e51b9937b132a990b9ae7f04118e64688 Author: Yoichi Yuasa Date: Sun Jul 13 20:04:18 2008 +0900 [MIPS] remove machtype for group Toshiba Signed-off-by: Yoichi Yuasa Acked-by: Atsushi Nemoto Signed-off-by: Ralf Baechle commit b6c4053610f04011bc0ecbc5a0417afe169b2693 Author: Yoichi Yuasa Date: Sun Jul 13 20:02:13 2008 +0900 [MIPS] separate rbtx4927_time_init() and rbtx4937_time_init() Signed-off-by: Yoichi Yuasa Acked-by: Atsushi Nemoto Signed-off-by: Ralf Baechle commit a38c47519832f22659244fd8437722b7aaa67f9a Author: Yoichi Yuasa Date: Sun Jul 13 20:01:04 2008 +0900 [MIPS] separate rbtx4927_arch_init() and rbtx4937_arch_init() Signed-off-by: Yoichi Yuasa Acked-by: Atsushi Nemoto Signed-off-by: Ralf Baechle commit a00fb6694f15b3bccf105f34f10bbcb6b47af67c Author: Yoichi Yuasa Date: Sun Jul 13 19:54:08 2008 +0900 [MIPS] txx9_cpu_clock setup move to rbtx4927_time_init() Signed-off-by: Yoichi Yuasa Acked-by: Atsushi Nemoto Signed-off-by: Ralf Baechle commit 7a1fdf1946b641f7c2866b3386414657eeb88084 Author: Yoichi Yuasa Date: Sun Jul 13 19:51:55 2008 +0900 [MIPS] txx9_board_vec set directly without mips_machtype Signed-off-by: Yoichi Yuasa Acked-by: Atsushi Nemoto Signed-off-by: Ralf Baechle commit b03d7b18fd783f39e31560d568e7db954f3080af Author: Thomas Bogendoerfer Date: Fri Jul 11 23:03:03 2008 +0200 [MIPS] IP22: Add platform device for Indy volume buttons Create platform device for Indy volume buttons and remove button handling from ip22-reset.c Signed-off-by: Thomas Bogendoerfer Signed-off-by: Ralf Baechle commit efff4ae259b8f750ea426d3084007f85c0a15a85 Author: Yoichi Yuasa Date: Fri Jul 11 22:45:21 2008 +0900 [MIPS] cmbvr4133: Remove support It cannot be built for a long time and nobody maintains it. Signed-off-by: Yoichi Yuasa Signed-off-by: Ralf Baechle commit 3f16654f36723f5ef1ca38c4e2078ca377a0f86f Author: Yoichi Yuasa Date: Fri Jul 11 22:39:18 2008 +0900 [MIPS] remove wrppmc_machine_power_off() It can be replace wrppmc_machine_halt(). Signed-off-by: Yoichi Yuasa Signed-off-by: Ralf Baechle commit 9ecb1ff1b295a515b21d0ac83d8bd39b07335aab Author: Yoichi Yuasa Date: Fri Jul 11 22:39:14 2008 +0900 [MIPS] replace inline assembler to cpu_wait() Signed-off-by: Yoichi Yuasa Signed-off-by: Ralf Baechle commit 5b438c44082d9f09fed10f3621fe8d5c93d3676d Author: Thomas Bogendoerfer Date: Thu Jul 10 20:29:55 2008 +0200 [MIPS] IP22/28: Add platform devices for HAL2 Create platform devices for hal2 and add option for selecting HAL2 alsa driver. Signed-off-by: Thomas Bogendoerfer Signed-off-by: Ralf Baechle commit bf744d417ff2fe1e8e386c7ad06e79c34a078642 Author: Atsushi Nemoto Date: Fri Jul 11 23:28:04 2008 +0900 [MIPS] TXx9: Update and merge defconfigs Merge rbhma4200(RBTX4927/37) and rbhma4500(RBTX4938) defconfig into single rbtx49xx defconfig. And jmr3927 defconfig is also updated. Signed-off-by: Atsushi Nemoto Signed-off-by: Ralf Baechle commit edcaf1a6a77315562e9781245cc8e028c9a921dc Author: Atsushi Nemoto Date: Fri Jul 11 23:27:54 2008 +0900 [MIPS] TXx9: Make single kernel can support multiple boards Make single kernel can be used on RBTX4927/37/38. Also make some SoC-specific code independent from board-specific code. Signed-off-by: Atsushi Nemoto Signed-off-by: Ralf Baechle commit 766891565bdaf605ea4aebe3e75de77e848254d0 Author: Atsushi Nemoto Date: Fri Jul 11 00:33:21 2008 +0900 [MIPS] TXx9: Update defconfigs Signed-off-by: Atsushi Nemoto Signed-off-by: Ralf Baechle commit 89d63fe179520b11f54de1f26755b7444c79e73a Author: Atsushi Nemoto Date: Fri Jul 11 00:33:08 2008 +0900 [MIPS] TXx9: Reorganize PCI code Split out PCIC dependent code and SoC dependent code from board dependent code. Now TX4927 PCIC code is independent from TX4927/TX4938 SoC code. Also fix some build problems on CONFIG_PCI=n. As a bonus, "FPCIB0 Backplane Support" is available for all TX39/TX49 boards and PCI66 support is available for all TX49 boards. Signed-off-by: Atsushi Nemoto Signed-off-by: Ralf Baechle commit 22b1d707ffc99faebd86257ad19d5bb9fc624734 Author: Atsushi Nemoto Date: Fri Jul 11 00:31:36 2008 +0900 [MIPS] TXx9: Reorganize code Move arch/mips/{jmr3927,tx4927,tx4938} into arch/mips/txx9/ tree. This will help more code sharing and maintainance. Signed-off-by: Atsushi Nemoto Signed-off-by: Ralf Baechle commit 14476007c90005c8992b786c15a59cca31f53268 Author: Atsushi Nemoto Date: Thu Jul 10 01:02:08 2008 +0900 [MIPS] txx9: Make gpio_txx9 entirely spinlock-safe TXx9 GPIO set/get routines are spinlock-safe. This patch make gpio_direction_{input,output} routines also spinlock-safe so that they can be used during early board setup. Signed-off-by: Atsushi Nemoto Signed-off-by: Ralf Baechle commit 315806cb19f9d375dccbc2d60fa14e16afdcd5ac Author: Ralf Baechle Date: Tue Jul 15 18:44:34 2008 +0100 [MIPS] Malta: Cleanup organization of code into directories. Signed-off-by: Ralf Baechle commit eda49eeebf263f3a34f6968959fc2e4825b42beb Author: Ralf Baechle Date: Tue Jul 15 18:44:34 2008 +0100 [MIPS] Remove always true ifdef conditions. Signed-off-by: Ralf Baechle commit d5deda6fa1ca434d36c2daffb63127e92c6470f5 Author: Ralf Baechle Date: Tue Jul 15 18:44:34 2008 +0100 [MIPS] MSC01: Cleanup configuration. This shouldn't depend on CONFIG_MIPS_BOARDS_GEN which is about to go away. Signed-off-by: Ralf Baechle commit 6da5e30b879394f0c55b2bbf3353d797097c8f0f Author: Ralf Baechle Date: Tue Jul 15 18:44:34 2008 +0100 [MIPS] Remove impossible ifdef and code wrapped by it. Signed-off-by: Ralf Baechle commit 1398ddb2ebdb41e8efe6ba42505fd452704c8405 Author: Ralf Baechle Date: Tue Jul 15 18:44:33 2008 +0100 [MIPS] SEAD: Remove support code. Signed-off-by: Ralf Baechle commit 2157bc68711bf0e69f9aca4d310bd863298fbb3f Author: Ralf Baechle Date: Tue Jul 15 18:44:33 2008 +0100 [MIPS] Atlas: Remove support code. Signed-off-by: Ralf Baechle commit 372a775f50347f5c1dd87752b16e5c05ea965790 Author: Ralf Baechle Date: Tue Jul 15 18:44:33 2008 +0100 [MIPS] Enable -ffunction-sections sections. -ffunction-sections serves as a workaround for the problems caused by the limited branch range in some inline assembler fragments for very large compilation units. Signed-off-by: Ralf Baechle commit 74c8494eeb7b321e5922ee43120f91c7c9b7317f Author: Ralf Baechle Date: Tue Jul 15 18:44:33 2008 +0100 [MIPS] Bigsur: Make defconfig a bit more useful. Signed-off-by: Ralf Baechle commit b012cffe7f6971e9ba5afca034a3d80e1cf1435c Author: Ralf Baechle Date: Tue Jul 15 18:44:33 2008 +0100 [MIPS] Replace use of print_symbol with new %sP pointer format. Signed-off-by: Ralf Baechle commit b29eee4935d9e5952a7ea8543ea499f06fb86808 Author: Atsushi Nemoto Date: Wed Apr 16 02:00:45 2008 +0900 [MIPS] rbtx4927: misc cleanups * Merge tx4927_pci.h into tx4927.h * Kill (broken) external PCI clock frequency reporting * Kill unnecessary wbflush() * Kill unnecessary includes * Kill debug garbages Signed-off-by: Atsushi Nemoto Signed-off-by: Ralf Baechle commit af3e69cfc9644c742a22647a5091779b9dfb9653 Author: Atsushi Nemoto Date: Fri Jul 4 00:59:40 2008 +0900 [MIPS] Declare some pci variables in header file Declare pci_probe_only, etc. in asm-mips/pci.h file. This will fix some sparse warnings. Signed-off-by: Atsushi Nemoto Signed-off-by: Ralf Baechle commit 8fa9cc16f820915fbe8ab6047c420703a87c307e Author: Thomas Bogendoerfer Date: Sat Jul 5 01:12:13 2008 +0200 [MIPS] IP32: Add platform devices for audio and volume button Create platform devices for audio and volume button driver. Signed-off-by: Thomas Bogendoerfer Signed-off-by: Ralf Baechle commit 7a2852e49fe2d19296812c0f0f833b0ee3043bbb Author: Thomas Bogendoerfer Date: Tue Mar 18 22:47:56 2008 +0100 [MIPS] IP28: switch to "normal" mode after PROM no longer needed SGI-IP28 is running in so called slow mode, when kernel is started from the PROM. PROM calls must be done in slow mode otherwise the PROM will issue an error. To get better memory performance we now switch to normal mode, when the PROM is no longer needed. Signed-off-by: Thomas Bogendoerfer Signed-off-by: Ralf Baechle commit c3dd3de789630b9b1ac8f5175f1c21bbf1cca939 Author: Dmitri Vorobiev Date: Wed Jun 18 10:18:23 2008 +0300 [MIPS] Add an appropriate header into display.c The following errors were caught by sparse: >>>>>>>>>>> arch/mips/mips-boards/generic/display.c:30:6: warning: symbol 'mips_display_message' was not declared. Should it be static? arch/mips/mips-boards/generic/display.c:58:6: warning: symbol 'mips_scroll_message' was not declared. Should it be static? >>>>>>>>>>> This patch includes the asm/mips-boards/prom.h header file into arch/mips/mips-boards/generic/display.c. This adds the needed function declarations, and the errors are gone. Compile-tested using defconfigs for Malta, Atlas and SEAD boards. Runtime test was successfully performed by booting a Malta 4Kc board up to the shell prompt. Signed-off-by: Dmitri Vorobiev Signed-off-by: Ralf Baechle commit 6ccab43b49beced70d8663b47ab471c4a23cb580 Author: Dmitri Vorobiev Date: Wed Jun 18 10:18:22 2008 +0300 [MIPS] Make gcmp_probe() static The gcmp_probe() function is needlessly defined global, and this patch makes it static. Tested by booting a Malta 4Kc board up to the shell prompt. Signed-off-by: Dmitri Vorobiev Signed-off-by: Ralf Baechle commit 7afed6a6c92fadedde8474bbfd92d6debc5e23b0 Author: Dmitri Vorobiev Date: Wed Jun 18 10:18:21 2008 +0300 [MIPS] A few cleanups in malta_int.c Both the fill_ipi_map() routine and the gic_intr_map array defined in arch/mips/mips-boards/malta/malta_int.c are not used outside of the latter file. Thus, these objects can become static. Moreover, these two objects are used by the MT code only, which is why this patch adds the appropriate ifdef. While at it, this patch removes an unnecessary preprocessing macro in favor of the commonly used ARRAY_SIZE. Successfully tested using a Qemu-emulated Malta board for both SMP and UP kernels. Signed-off-by: Dmitri Vorobiev Signed-off-by: Ralf Baechle commit d58eaab5a01b9cf1819ec57271ac214a39bf6278 Author: Dmitri Vorobiev Date: Wed Jun 18 10:18:20 2008 +0300 [MIPS] Namespace clean-up in arch/mips/pci/pci.c The following symbols hose_head hose_tail are needlessly defined global in arch/mips/pci/pci.c, and this patch makes them static. The variable pci_isa_hose is not used, and is removed by this patch. Spotted by namespacecheck. Tested by booting a Malta 4Kc board up to the shell prompt. Signed-off-by: Dmitri Vorobiev Signed-off-by: Ralf Baechle commit 1ea6428cbdbb0fd1a6e7e8c3044253eab9aff4c7 Author: Dmitri Vorobiev Date: Wed Jun 18 10:18:19 2008 +0300 [MIPS] i8253: make the pit_clockevent variable static The pit_clockevent symbol is needlessly defined global. This patch makes that variable static. Spotted by sparse. Compile-tested using Malta defconfig. Signed-off-by: Dmitri Vorobiev Signed-off-by: Ralf Baechle commit 8736595bb2b0ce6188ca31308c40921f3f02f35b Author: Thomas Bogendoerfer Date: Wed Jul 2 21:06:03 2008 +0200 [MIPS] Enable FAST-20 for onboard scsi Both onboard controller of the O2 support FAST-20 transfer speeds, but the bit, which signals that to the aic driver, isn't set. Instead of adding detection code to the scsi driver, we just fake the missing bit in the PCI config space of the scsi chips. Signed-off-by: Thomas Bogendoerfer Signed-off-by: Ralf Baechle commit f2bc713f15103372c0efab5fc09dd813655c5096 Author: Yoichi Yuasa Date: Thu Jun 26 21:52:51 2008 +0900 [MIPS] Cobalt: Register new LCD platform device. Signed-off-by: Yoichi Yuasa Signed-off-by: Ralf Baechle commit 94daeb90698c56a85ed219eeb18d4a8cddde7b03 Author: David Daney Date: Wed Jun 11 10:04:25 2008 -0700 [MIPS] Fix asm constraints for 'ins' instructions. The third operand to 'ins' must be a constant int, not a register. [Ralf: The bug was actually intensional. Some versions used to throw an error under certain circumstances for code like: static inline void f(unsigned nr, unsigned *p) { unsigned short bit = nr & 5; if (__builtin_constant_p(bit)) { __asm__ __volatile__ (" foo %0, %1" : "=m" (*p) : "i" (bit)); } else { /* Do something else. */ } } because gcc was not able to figure out that the "i" constraint was possibly at the early stage when the constraint are getting verified. The solution was using "ri" instead of "i". The "ri" would keep gcc happy but in the end for code generation always the "i" constraint would be satisfied. The problem afair originally appeared in the i386 io.h and also hit it's mips equivalent. From there the workaround spread to many of the inline assembler functions.] Signed-off-by: David Daney Signed-off-by: Ralf Baechle commit 043ebd6c9de7500a399017643bbc5cafd4e37060 Author: Maciej W. Rozycki Date: Fri Jun 13 00:25:36 2008 +0100 [MIPS] DECstation: Document more MB ASIC register bits Document a few more register bits provided by the MB ASIC used on R4000SC (KN04) and R4400SC (KN05) CPU daughtercards with the DECstation. Reverse-engineered and not documented anywhere else to the best of my knowledge. Bit names appended to the last underscore the same as reported by the firmware in register dumps. Signed-off-by: Maciej W. Rozycki Signed-off-by: Ralf Baechle commit 52f4f6bbcff5510f662a002ec1219660ea25af62 Author: Robert P. J. Day Date: Thu Jun 12 15:20:05 2008 -0400 [MIPS] Use kernel-supplied ARRAY_SIZE() macro. Signed-off-by: Robert P. J. Day Signed-off-by: Ralf Baechle commit 2957c9e61ee9c37e7ebf2c8acab03e073fe942fd Author: Ralf Baechle Date: Tue Jul 15 18:44:30 2008 +0100 [MIPS] IRIX: Goodbye and thanks for all the fish Never terribly functional or popular, plagued by hard to fix bugs the time to say goodbye has more than arrived. Signed-off-by: Ralf Baechle commit 997288517ec839b7639fcba77111256b13a66000 Author: Manuel Lauss Date: Mon Jun 9 08:39:58 2008 +0200 [MIPS] Alchemy: remove unused MMC macros from db1x00 header. Signed-off-by: Manuel Lauss Signed-off-by: Ralf Baechle commit 4b62220b608ab71876d8920d5590f1db4ee2eb4a Author: Ralf Baechle Date: Tue Jul 15 18:44:29 2008 +0100 [MIPS] Alchemy, PNX: Use symbolic constants for DMA masks. Signed-off-by: Ralf Baechle commit f366e2085f28358a5294b8cdc847a377c02eb22d Author: Dmitri Vorobiev Date: Thu May 29 17:57:11 2008 +0300 [MIPS] unexport {allocate,free}_irqno The following routines allocate_irqno() free_irqno() seem not to be used outside of the core kernel code, hence exporting these functions is pointless. This patch removes the export. Signed-off-by: Dmitri Vorobiev Signed-off-by: Ralf Baechle commit 17f61e61b4a1d3ca254668cf12c1c5d828d892fd Author: Dmitri Vorobiev Date: Thu May 29 17:57:09 2008 +0300 [MIPS] Make two functions static The following routines uasm_rel_highest() uasm_rel_higher() are needlessly defined global. This patch makes them static. Compile-tested using a customized config for the Malta board. Booting the same board up to the shell prompt was also successful with this patch applied. Spotted by sparse. Signed-off-by: Dmitri Vorobiev Signed-off-by: Ralf Baechle commit 07cdb78436d52416a582e645b9afb6e26f986bc9 Author: Dmitri Vorobiev Date: Thu May 29 17:57:08 2008 +0300 [MIPS] fix sparse warning about setup_early_printk() This patch fixes the following sparse warning: <<<<<<<< arch/mips/kernel/early_printk.c:35:13: warning: symbol 'setup_early_printk' was not declared. Should it be static? <<<<<<<< The fix is to define a prototype of the setup_early_printk() function and to include the appropriate header into arch/mips/kernel/early_printk.c. [Ralf: Sorted includes again] Signed-off-by: Dmitri Vorobiev Signed-off-by: Ralf Baechle commit c88a8b4ab0e1a1f06938939d9ba42e9da6144ccb Author: Maciej W. Rozycki Date: Mon Jun 9 17:19:53 2008 +0100 [MIPS] Remove obsolete isa_slot_offset The isa_slot_offset variable and its __ISA_IO_base macro is not used anywhere anymore. It does not look like a decent interface per today's standards either. Remove both including all places of initialization. Signed-off-by: Maciej W. Rozycki Signed-off-by: Ralf Baechle commit cb11dfa0247df479e384c4a7ab6846f3a6bf1570 Author: David Daney Date: Mon Jun 9 16:30:03 2008 -0700 [MIPS] Remove board_watchpoint_handler It is not used anywhere in tree. Signed-off-by: David Daney Signed-off-by: Andrew Morton Signed-off-by: Ralf Baechle commit 2954c02a884dc0ba9e91882c0aba13bcb9d22e6c Author: Chen, Huacai Date: Tue Jun 10 09:05:08 2008 +0800 [MIPS] modify the MIPS CPU classfication Signed-off-by: Huacai Chen Signed-off-by: Ralf Baechle commit da6e88f4963385b1b649b043691d206fbb951913 Merge: 61d97f4... 7dc9719... Author: Linus Torvalds Date: Tue Jul 15 10:39:57 2008 -0700 Merge branch 'timers/for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip * 'timers/for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: x86: add PCI ID for 6300ESB force hpet x86: add another PCI ID for ICH6 force-hpet kernel-paramaters: document pmtmr= command line option acpi_pm clccksource: fix printk format warning nohz: don't stop idle tick if softirqs are pending. pmtmr: allow command line override of ioport nohz: reduce jiffies polling overhead hrtimer: Remove unused variables in ktime_divns() hrtimer: remove warning in hres_timers_resume posix-timers: print RT watchdog message commit 61d97f4fcf73d30864a52373a34093be25be6a03 Merge: 38c4657... 48627d8... Author: Linus Torvalds Date: Tue Jul 15 10:39:22 2008 -0700 Merge branch 'genirq' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip * 'genirq' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: genirq: remove extraneous checks in manage.c genirq: Expose default irq affinity mask (take 3) commit 38c46578ffd8ffbfec514c2a9876d527303322d6 Merge: e7849f1... 4abaca1... Author: Linus Torvalds Date: Tue Jul 15 10:38:46 2008 -0700 Merge git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-2.6-nmw * git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-2.6-nmw: [GFS2] Fix GFS2's use of do_div() in its quota calculations [GFS2] Remove unused declaration [GFS2] Remove support for unused and pointless flag [GFS2] Replace rgrp "recent list" with mru list [GFS2] Allow local DF locks when holding a cached EX glock [GFS2] Fix delayed demote race [GFS2] don't call permission() [GFS2] Fix module building [GFS2] Glock documentation [GFS2] Remove all_list from lock_dlm [GFS2] Remove obsolete conversion deadlock avoidance code [GFS2] Remove remote lock dropping code [GFS2] kernel panic mounting volume [GFS2] Revise readpage locking [GFS2] Fix ordering of args for list_add [GFS2] trivial sparse lock annotations [GFS2] No lock_nolock [GFS2] Fix ordering bug in lock_dlm [GFS2] Clean up the glock core commit e79aec291da55aa322ddb5d8f3bb04cdf69470d5 Author: Rabin Vincent Date: Fri Jul 4 00:40:32 2008 +0530 slab: rename slab_destroy_objs With the removal of destructors, slab_destroy_objs no longer actually destroys any objects, making the kernel doc incorrect and the function name misleading. In keeping with the other debug functions, rename it to slab_destroy_debugcheck and drop the kernel doc. Signed-off-by: Rabin Vincent Signed-off-by: Pekka Enberg commit 88e4ccf294ca62c2da998012a83533ce150c8dce Author: Alexey Dobriyan Date: Mon Jun 23 02:58:37 2008 +0400 slub: current is always valid Acked-by: Christoph Lameter Signed-off-by: Alexey Dobriyan Signed-off-by: Pekka Enberg commit 0937502af7c9b648ed4e884ccb7f504b01a005a1 Author: Christoph Lameter Date: Wed May 28 10:32:22 2008 -0700 slub: Add check for kfree() of non slab objects. We can detect kfree()s on non slab objects by checking for PageCompound(). Works in the same way as for ksize. This helped me catch an invalid kfree(). Signed-off-by: Christoph Lameter Signed-off-by: Pekka Enberg commit e7849f16c13476288fe4fbd420975e8456c75aa0 Merge: af5329c... 131b943... Author: Linus Torvalds Date: Tue Jul 15 10:32:39 2008 -0700 Merge branch 'core/topology' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip * 'core/topology' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: cputopology: always define CPU topology information, clean up cpu topology: always define CPU topology information commit af5329cdf51cdd208a323e521faa46800a16d2ec Merge: 1dc60c5... 7798ed0... Author: Linus Torvalds Date: Tue Jul 15 10:31:35 2008 -0700 Merge branch 'core/stacktrace' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip * 'core/stacktrace' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: generic-ipi: powerpc/generic-ipi tree build failure stacktrace: fix build failure on sparc64 stacktrace: export save_stack_trace[_tsk] stacktrace: fix modular build, export print_stack_trace and save_stack_trace backtrace: replace timer with tasklet + completions stacktrace: add saved stack traces to backtrace self-test stacktrace: print_stack_trace() cleanup debugging: make stacktrace independent from DEBUG_KERNEL stacktrace: don't crash on invalid stack trace structs commit 7890ea1f95fa8968fa6f5bb5860e6632932abfd3 Author: Herbert Xu Date: Tue Jul 15 23:46:24 2008 +0800 Revert crypto: prng - Deterministic CPRNG This patch is clearly not ready yet for prime time. Signed-off-by: Herbert Xu commit 1dc60c53d36b08f361e1a2767c41196acce96d08 Merge: 8d2567a... 3f1c387... Author: Linus Torvalds Date: Tue Jul 15 08:41:43 2008 -0700 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: x86: Fix compile error with CONFIG_AS_CFI=n Documentation: document debugpat commandline option x86: sanitize Kconfig x86, suspend, acpi: correct and add comments about Big Real Mode x86, suspend, acpi: enter Big Real Mode Fixed trivial conflict in include/asm-x86/dwarf2.h due to just using different names for "cfi_ignore" (vs "__cfi_ignore") macro. commit 8d2567a620ae8c24968a2bdc1c906c724fac1f6a Merge: bcf559e... 49f1487... Author: Linus Torvalds Date: Tue Jul 15 08:36:38 2008 -0700 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: (61 commits) ext4: Documention update for new ordered mode and delayed allocation ext4: do not set extents feature from the kernel ext4: Don't allow nonextenst mount option for large filesystem ext4: Enable delalloc by default. ext4: delayed allocation i_blocks fix for stat ext4: fix delalloc i_disksize early update issue ext4: Handle page without buffers in ext4_*_writepage() ext4: Add ordered mode support for delalloc ext4: Invert lock ordering of page_lock and transaction start in delalloc mm: Add range_cont mode for writeback ext4: delayed allocation ENOSPC handling percpu_counter: new function percpu_counter_sum_and_set ext4: Add delayed allocation support in data=writeback mode vfs: add hooks for ext4's delayed allocation support jbd2: Remove data=ordered mode support using jbd buffer heads ext4: Use new framework for data=ordered mode in JBD2 jbd2: Implement data=ordered mode handling via inodes vfs: export filemap_fdatawrite_range() ext4: Fix lock inversion in ext4_ext_truncate() ext4: Invert the locking order of page_lock and transaction start ... commit bcf559e385ba099996c90469c817d2eb38aba418 Merge: 732b720... 242e3df... Author: Linus Torvalds Date: Tue Jul 15 08:35:28 2008 -0700 Merge branch 'drm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6 * 'drm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6: drm/radeon: fixup issue with radeon and PAT support. commit 732b72069e77f288efa1d5245cc699d7cb98e528 Merge: 97c7d1e... 089be43... Author: Linus Torvalds Date: Tue Jul 15 08:16:48 2008 -0700 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: Revert "SELinux: allow fstype unknown to policy to use xattrs if present" commit 97c7d1ea1f80f457da78b11ca638b7096a4548ee Merge: 4d3702b6... f507d28... Author: Linus Torvalds Date: Tue Jul 15 08:01:15 2008 -0700 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband: (52 commits) IB/mlx4: Use kzalloc() for new QPs so flags are initialized to 0 mlx4_core: Use MOD_STAT_CFG command to get minimal page size RDMA/cma: Simplify locking needed for serialization of callbacks RDMA/addr: Keep pointer to netdevice in struct rdma_dev_addr RDMA/cxgb3: Fixes for zero STag RDMA/core: Add local DMA L_Key support IB/mthca: Fix check of max_send_sge for special QPs IB/mthca: Use round_jiffies() for catastrophic error polling timer IB/mthca: Remove "stop" flag for catastrophic error polling timer IPoIB: Double default RX/TX ring sizes IPoIB/cm: Reduce connected mode TX object size IB/ipath: Use IEEE OUI for vendor_id reported by ibv_query_device() IPoIB: Use dev_set_mtu() to change mtu IPoIB: Use rtnl lock/unlock when changing device flags IPoIB: Get rid of ipoib_mcast_detach() wrapper IPoIB: Only set Q_Key once: after joining broadcast group IPoIB: Remove priv->mcast_mutex IPoIB: Remove unused IPOIB_MCAST_STARTED code RDMA/cxgb3: Set rkey field for new memory windows in iwch_alloc_mw() RDMA/nes: Get rid of ring_doorbell parameter of nes_post_cqp_request() ... commit 0d7eff873caaeac84de01a1acdca983d2c7ba3fe Author: Artem Bityutskiy Date: Mon Jul 14 19:08:38 2008 +0300 UBIFS: include to compilation Add UBIFS to Makefile and Kbuild. Signed-off-by: Artem Bityutskiy Signed-off-by: Adrian Hunter commit 1e51764a3c2ac05a23a22b2a95ddee4d9bffb16d Author: Artem Bityutskiy Date: Mon Jul 14 19:08:37 2008 +0300 UBIFS: add new flash file system This is a new flash file system. See http://www.linux-mtd.infradead.org/doc/ubifs.html Signed-off-by: Artem Bityutskiy Signed-off-by: Adrian Hunter commit fe9233fb6914a0eb20166c967e3020f7f0fba2c9 Author: Chandra Seetharaman Date: Fri May 23 18:16:40 2008 -0700 [SCSI] scsi_dh: fix kconfig related build errors Do not automatically "select" SCSI_DH for dm-multipath. If SCSI_DH doesn't exist,just do not allow hardware handlers to be used. Handle SCSI_DH being a module also. Make sure it doesn't allow DM_MULTIPATH to be compiled in when SCSI_DH is a module. [jejb: added comment for Kconfig syntax] Signed-off-by: Chandra Seetharaman Reported-by: Randy Dunlap Reported-by: Andrew Morton Signed-off-by: James Bottomley commit c43d8636971c39da993e94082fd65bfff421618e Author: David Howells Date: Thu Jul 10 12:28:48 2008 +0100 sdio_uart: Fix SDIO break control to now return success or an error This is a consequence of patch 9ea761bfef52c116fed4715d4043392c2503fe6a. Signed-off-by: David Howells Signed-off-by: Pierre Ossman commit 6a36913a33cf3d366e124f25c486a71212d02bce Author: Sascha Sommer Date: Tue Jul 15 14:21:29 2008 +0200 mmc: host driver for Ricoh Bay1Controllers Signed-off-by: Sascha Sommer Signed-off-by: Pierre Ossman commit ea901300cd8b809285fa5cbced18124f127e0ac6 Author: Tomas Winkler Date: Thu Jul 10 03:01:56 2008 +0300 sdio: sdio_io.c Fix sparse warnings Unfold nested macros it creates not readable code and sparse warnings sdio_io.c:190:9: warning: symbol '_min1' shadows an earlier one Signed-off-by: Tomas Winkler Signed-off-by: Pierre Ossman commit 62a7573ee9f31d4fdb330b3e68ebf6efaba1d57c Author: Benzi Zbit Date: Thu Jul 10 02:41:43 2008 +0300 sdio: fix the use of hard coded timeout value. This adds reading and using of enable_timeout from the CIS Signed-off-by: Benzi Zbit Signed-off-by: Tomas Winkler Signed-off-by: Pierre Ossman commit 3f1c38723eb467d34d704d0ee6e7b796ba4981ee Author: Kevin Winchester Date: Mon Jul 14 21:36:13 2008 -0300 x86: Fix compile error with CONFIG_AS_CFI=n AS arch/x86/lib/csum-copy_64.o arch/x86/lib/csum-copy_64.S: Assembler messages: arch/x86/lib/csum-copy_64.S:48: Error: Macro `ignore' was already defined make[1]: *** [arch/x86/lib/csum-copy_64.o] Error 1 make: *** [arch/x86/lib] Error 2 It appears that csum-copy_64.S and dwarf2.h both define an ignore macro. I would expect one of them can be renamed quite easily, unless they are references elsewhere. Caused-by-commit: 392a0fc96bd059b38564f5f8fb58327460cb5a9d x86: merge dwarf2 headers Signed-off-by: Thomas Gleixner commit d3af01f18bf18e9b2a95711894fc239daeab5e2e Author: Thomas Gleixner Date: Tue Jul 15 15:04:56 2008 +0200 Documentation: document debugpat commandline option Signed-off-by: Thomas Gleixner commit aba3728ce2e8ce85e1e5f6b275131e9332256789 Author: Thomas Gleixner Date: Tue Jul 15 14:48:48 2008 +0200 x86: sanitize Kconfig Set default n for MEMTEST and MTRR_SANITIZER and fix the help texts. Signed-off-by: Thomas Gleixner commit c71f65129a1fb67bc6b9b8d03b493675b5c9302b Author: Andres Salomon Date: Mon Jul 7 17:25:56 2008 -0400 mmc: OLPC: update vdd/powerup quirk comment This comment update got lost in the great floo^Wmerge. As Pierre pointed out, no one knows what 'CaFe' is. Signed-off-by: Andres Salomon Signed-off-by: Pierre Ossman commit c8b3e02eb250ceb661437e9b198757eff0eb6fd2 Author: Tomas Winkler Date: Sat Jul 5 19:52:04 2008 +0300 mmc: fix spares errors of sdhci.c 1. sdhci_prepare_data: fix shadowing of count variable u8 count int count -> sg_cnt; 2. sdhci_add_host: assignment of integer to pointer dma_mask = 0 -> dma_mask = NULL; Signed-off-by: Tomas Winkler Signed-off-by: Pierre Ossman commit 23af60398af2f5033e2f53665538a09f498dbc03 Author: Pierre Ossman Date: Sun Jul 6 01:10:27 2008 +0200 mmc: remove multiwrite capability Relax requirements on host controllers and only require that they do not report a transfer count than is larger than the actual one (i.e. a lower value is okay). This is how many other parts of the kernel behaves so upper layers should already be prepared to handle that scenario. This gives us a performance boost on MMC cards. Signed-off-by: Pierre Ossman commit 97067d5581ec831a75a45a52e417bee0f7943dbf Author: Pierre Ossman Date: Sun Jul 6 00:51:07 2008 +0200 wbsd: fix bad dma_addr_t conversion DMA addresses are not pointers, so don't treat them as such. Avoids compiler warnings when using 64-bit DMA addresses on a 32-bit system. Signed-off-by: Pierre Ossman commit 7d2be0749a59096a334c94dc48f43294193cb8ed Author: Haavard Skinnemoen Date: Mon Jun 30 18:35:03 2008 +0200 atmel-mci: Driver for Atmel on-chip MMC controllers This is a driver for the MMC controller on the AP7000 chips from Atmel. It should in theory work on AT91 systems too with some tweaking, but since the DMA interface is quite different, it's not entirely clear if it's worth merging this with the at91_mci driver. This driver has been around for a while in BSPs and kernel sources provided by Atmel, but this particular version uses the generic DMA Engine framework (with the slave extensions) instead of an avr32-only DMA controller framework. This driver can also use PIO transfers when no DMA channels are available, and for transfers where using DMA may be difficult or impractical for some reason (e.g. the DMA setup overhead is usually not worth it for very short transfers, and badly aligned buffers or lengths are difficult to handle.) Currently, the driver only support PIO transfers. DMA support has been split out to a separate patch to hopefully make it easier to review. The driver has been tested using mmc-block and ext3fs on several SD, SDHC and MMC+ cards. Reads and writes work fine, with read transfer rates up to 3.5 MiB/s on fast cards with debugging disabled. The driver has also been tested using the mmc_test module on the same cards. All tests except 7, 9, 15 and 17 succeed. The first two are unsupported by all the cards I have, so I don't know if the driver handles this correctly. The last two fail because the hardware flags a Data CRC Error instead of a Data Timeout error. I'm not sure how to deal with that. Documentation for this controller can be found in many data sheets from Atmel, including the AT32AP7000 data sheet which can be found here: http://www.atmel.com/dyn/products/datasheets.asp?family_id=682 Signed-off-by: Haavard Skinnemoen Signed-off-by: Pierre Ossman commit 6d37333163025b46afbcad434ec9a5f2e88e7254 Author: Tomas Winkler Date: Mon Jun 30 10:50:24 2008 +0300 mmc: fix sdio_io sparse errors This patch fixes sdio_io sparse errors. This fix changes signature of API functions, changing unsigned char -> u8 unsigned short -> u16 unsigned long -> u32 - this was probably a bug in 64 bit platforms Signed-off-by: Tomas Winkler Signed-off-by: Pierre Ossman commit 9eeebd22ca757fee8dc10ffe6fa6992f33a3c5ec Author: Tomas Winkler Date: Mon Jun 30 10:50:23 2008 +0300 mmc: wbsd.c fix shadowing of 'dma' variable This patch fix warning :shadowing dma variable and made use of module_param_named instead of module_param Signed-off-by: Tomas Winkler Acked-by: Marcel Holtmann Signed-off-by: Pierre Ossman commit 7e9c7b64022b7faff6022df64baec8ab467d0bfd Author: Ben Dooks Date: Mon Jun 30 22:40:39 2008 +0100 MMC: S3C24XX: Refuse incorrectly aligned transfers The hardware does not support any multi-block transfers with an block-size that is not 32bit aligned. Also the driver itself does not support single block non-32bit transfers either. Ensure that the s3cmci_setup_data() returns the appropriate error if we encounter this. Signed-off-by: Ben Dooks Signed-off-by: Pierre Ossman commit 4dde7f755211fd58105c989a99a3a9f2f1238fba Author: Ben Dooks Date: Mon Jun 30 22:40:38 2008 +0100 MMC: S3C24XX: Add maintainer entry Add Ben Dooks as S3C24XX SD/MMC driver maintainer. Signed-off-by: Ben Dooks Signed-off-by: Pierre Ossman commit ff8c804f1fdecb198c4be57155c61800e0d37bd2 Author: Ben Dooks Date: Mon Jun 30 22:40:37 2008 +0100 MMC: S3C24XX: Update error debugging. Add better debugging to show where errors are being generated, as some error codes can come from several different code paths. Also fix the error return path from s3cmci_setup_data() to return the error it returned to the request. Signed-off-by: Ben Dooks Signed-off-by: Pierre Ossman commit 50a845700b3b55f825b0eb901b03d6091f66d9f4 Author: Ben Dooks Date: Mon Jun 30 22:40:36 2008 +0100 MMC: S3C24XX: Add media presence test to request handling. Ensure that we have physical media present before attempting to send a request to a card. This ensures that we do not get flooded by errors from commands that can never be completed timing out. Signed-off-by: Ben Dooks Signed-off-by: Pierre Ossman commit 2de5f79d4dfcb1be16f0b873bc77d6ec74b0426d Author: Ben Dooks Date: Mon Jun 30 22:40:35 2008 +0100 MMC: S3C24XX: Fix use of msecs where jiffies are needed mmc_detect_change() takes jiffies, not msecs. Convert the previous value of msecs into jiffies before calling. Signed-off-by: Ben Dooks Signed-off-by: Pierre Ossman commit 318f905f02b427b8df33d724b7392a0597b40bdd Author: Ben Dooks Date: Mon Jun 30 22:40:34 2008 +0100 MMC: S3C24XX: Add MODULE_ALIAS() entries for the platform devices Add MODULE_ALIAS() declerations for all the supported platform devices for this driver. Signed-off-by: Ben Dooks Signed-off-by: Pierre Ossman commit 3886ff5f63f33c801ed3af265ac0df20d3a8dcf5 Author: Ben Dooks Date: Mon Jun 30 22:40:33 2008 +0100 MMC: S3C24XX: Fix s3c2410_dma_request() return code check. The driver should be checking for a negative error code from s3c2410_dma_request(), not non-zero. Newer kernels now return the DMA channel number that was allocated by the request. Signed-off-by: Ben Dooks Signed-off-by: Pierre Ossman commit 55d70f5a7b25800fc8376cdd81d42d6c201fa91d Author: Ben Dooks Date: Mon Jun 30 22:40:32 2008 +0100 MMC: S3C24XX: Allow card-detect on non-IRQ capable pin Add support to the S3C24XX MMC driver to have the card detect be on a pin that is not IRQ capable. Signed-off-by: Ben Dooks Signed-off-by: Pierre Ossman commit 7c14450ed6ab4ed453b2bf216ca3aaa7a5402af3 Author: Ben Dooks Date: Mon Jun 30 22:40:31 2008 +0100 MMC: S3C24XX: Ensure host->mrq->data is valid Fix a crash if host->mrq->data is NULL on ending a transfer. Signed-off-by: Ben Dooks Signed-off-by: Pierre Ossman commit cf0984c8edf63017fcc2ead212ca057877e345df Author: Ben Dooks Date: Mon Jun 30 22:40:30 2008 +0100 MMC: S3C24XX: Add support to invert write protect line Support for inverting the sense of the MMC driver's write protect detection line. Signed-off-by: Ben Dooks Signed-off-by: Pierre Ossman commit edb5a98e43682d66c98ddd1dee863d867807546e Author: Ben Dooks Date: Mon Jun 30 22:40:29 2008 +0100 MMC: S3C24XX: Add platform data for MMC/SD driver This patch adds platform data support to the s3mci driver. This allows flexible board-specific configuration of set_power, card detect and read only pins. Signed-off-by: Ben Dooks Signed-off-by: Pierre Ossman commit d643b5f7e0793ef7828a35a5ea049d675ad2ad8c Author: Roman Moracik Date: Mon Jun 30 22:40:28 2008 +0100 MMC: Fix S3C24XX IRQ enable during PIO transfers Fix Bug #677 - I/O errors on heavy microSD writes for 2.6.22.x. Signed-off-by: Ben Dooks Signed-off-by: Pierre Ossman commit bdbc9c3a8f7a7956611c970e262693faa95081a5 Author: Thomas Kleffel Date: Mon Jun 30 22:40:27 2008 +0100 Fix the request finalisation by ensuring the controller is stopped. Signed-off-by: Ben Dooks Signed-off-by: Harald Welte Signed-off-by: Pierre Ossman commit ceb3ac252519f9ab318050c8ee842e62820d6731 Author: Harald Welte Date: Mon Jun 30 22:40:26 2008 +0100 MMC: DMA free fix for S3C24XX SD/MMC driver Bugfix to ensure DMA channel allocated is freed on exit. Signed-off-by: Ben Dooks Signed-off-by: Pierre Ossman commit 679f0f8abd7187baaff40a47fe4733ae4c24cc9a Author: Harald Welte Date: Mon Jun 30 22:40:25 2008 +0100 MMC: S3C24XX MMC/SD driver write fixes This patch is a workaround of some S3C2410 MMC chip bug Signed-off-by: Ben Dooks Signed-off-by: Pierre Ossman commit be518018c6b9224c02284fb243207ef741c31ec6 Author: Thomas Kleffel Date: Mon Jun 30 22:40:24 2008 +0100 MMC: S3C24XX MMC/SD driver. This is the latest S3C MMC/SD driver by Thomas Kleffel with cleanups as suggested by AKPM done by Ben Dooks. Signed-off-by: Ben Dooks Signed-off-by: Thomas Kleffel Signed-off-by: Pierre Ossman commit 8f1934ce784bd8f2eaf06f190526500f7f3f9c74 Author: Pierre Ossman Date: Mon Jun 30 21:15:49 2008 +0200 sdhci: graceful handling of bad addresses Be a bit more robust and fall back to PIO if someone is feeding us bogus addresses. Signed-off-by: Pierre Ossman commit 6b174931a73177c6519f87e6a8d5ae6ba269cdb5 Author: Pierre Ossman Date: Mon Jun 30 09:09:27 2008 +0200 mmc_test: cleanup Clean up and reorganise the mmc_test driver so that it (hopefully) is easier to extend with more complex tests. Signed-off-by: Pierre Ossman commit 979ce7208a679b8d012450610d5d5aa75aab3af9 Author: Pierre Ossman Date: Sun Jun 29 12:19:47 2008 +0200 mmc_block: wait for card even on failures Many failures are non-permanent, but the card might need some time to finish what it is doing before becoming responsive again. Make sure we wait for it to finish programming before dealing with the error. Signed-off-by: Pierre Ossman commit 2134a922c6e75c779983cad5d8aae832275f5a0d Author: Pierre Ossman Date: Sat Jun 28 18:28:51 2008 +0200 sdhci: scatter-gather (ADMA) support Add support for the scatter-gather DMA mode present on newer controllers. As the mode requires 32-bit alignment, non-aligned chunks are handled by using a bounce buffer. Also add some new quirks to handle controllers that have bugs in the ADMA engine. Signed-off-by: Pierre Ossman commit 93fc48c785f6266e67663b3cbbf24579b53fe5cf Author: Pierre Ossman Date: Sat Jun 28 18:21:41 2008 +0200 sdhci-pci: don't penalize newer jmicron chips The upcoming JMicron chips will have solved all the currently known bugs, so don't penalize them for older problems. Signed-off-by: Pierre Ossman commit 0121a9829bf28c65e1a05cc881899c10d82b8de2 Author: Pierre Ossman Date: Sat Jun 28 17:51:27 2008 +0200 mmc_test: only bind to supported cards We can only perform the tests on MMC and SD cards, so avoid binding to any other type. Signed-off-by: Pierre Ossman commit eea0f581c4e596e02250df230f8d385827977964 Author: Pierre Ossman Date: Sat Jun 28 13:22:40 2008 +0200 sdio: clean up handling of byte mode transfer size Make sure that the maximum size for a byte mode transfer is identical in all places. Also tweak the transfer helper so that a single byte mode transfer is preferred over (possibly multiple) block mode request(s). Signed-off-by: Pierre Ossman commit ad3868b2ec96ec14a1549c9e33f5f9a2a3c6ab15 Author: Pierre Ossman Date: Sat Jun 28 12:52:45 2008 +0200 mmc,sdio: helper function for transfer padding There are a lot of crappy controllers out there that cannot handle all the request sizes that the MMC/SD/SDIO specifications require. In case the card driver can pad the data to overcome the problems, this commit adds a helper that calculates how much that padding should be. A corresponding helper is also added for SDIO, but it can also deal with all the complexities of splitting up a large transfer efficiently. Signed-off-by: Pierre Ossman commit e2d2647702702ea08cb78cdc9eca8c24242aa9be Author: Manuel Lauss Date: Fri Jun 27 18:25:18 2008 +0200 au1xmmc: remove custom carddetect poll implementation. The MMC core provides a carddetect poll feature, time to remove the driver's own implementation of it. Signed-off-by: Manuel Lauss Signed-off-by: Pierre Ossman commit 08fcb7208c4a8913232e48931783270262ece954 Author: Manuel Lauss Date: Mon Jun 9 08:40:35 2008 +0200 au1xmmc: new maintainer. Signed-off-by: Manuel Lauss Signed-off-by: Pierre Ossman commit 88b8d9a83431237bf3eec1f2968f763607811171 Author: Manuel Lauss Date: Mon Jun 9 08:39:11 2008 +0200 au1xmmc: abort requests early if no card is present. Don't process an MMC request if no card is present. Signed-off-by: Manuel Lauss Signed-off-by: Pierre Ossman commit 5c0a889df56c9f6c5a68ec7aa222082569b35fd9 Author: Manuel Lauss Date: Mon Jun 9 08:38:35 2008 +0200 au1xmmc: codingstyle tidying. Clean up the codebase, no functional changes. - merge the au1xmmc.h header contents into the driver file, - indentation, spelling and style fixes. Signed-off-by: Manuel Lauss Signed-off-by: Pierre Ossman commit 20f522ff5583a818922b3f650f6f7ef0e3e1aa68 Author: Manuel Lauss Date: Mon Jun 9 08:38:03 2008 +0200 au1xmmc: SDIO IRQ support. Wire up the SD controllers' SDIO IRQ capability. Signed-off-by: Manuel Lauss Signed-off-by: Pierre Ossman commit 281dd23ea03e9893c02d237d9e35a7d20d412452 Author: Manuel Lauss Date: Mon Jun 9 08:37:33 2008 +0200 au1xmmc: enable 4 bit transfer mode Signed-off-by: Manuel Lauss Signed-off-by: Pierre Ossman commit c4223c2c91fa9e5addd6eadd804e57a925ac5e5e Author: Manuel Lauss Date: Mon Jun 9 08:36:13 2008 +0200 au1xmmc: remove db1200 board code, rewrite probe. Remove the DB1200 board-specific functions (card present, read-only, activity LED methods) and instead add platform data which is passed to the driver. This also allows for platforms to implement other carddetect schemes (e.g. dedicated irq) without having to pollute the driver code. The poll timer (used for pb1200) is kept for compatibility. With the board-specific stuff gone, the driver's ->probe() code can be cleaned up considerably. Signed-off-by: Manuel Lauss Signed-off-by: Pierre Ossman commit 12bd257532708a4d5be4b8548ff121a45ff88f5d Author: Ville Syrjala Date: Mon Jun 9 22:06:45 2008 +0300 at91_mci: Fix byte mode transitions. The byte mode support fails to clear the byte mode bit in the command register, possibly leaving byte mode enabled with the counters programmed in non-byte mode. Signed-off-by: Ville Syrjala Signed-off-by: Nicolas Ferre Signed-off-by: Pierre Ossman commit 9da3cbaf2881df97e502593c49c93f55eb696091 Author: Ville Syrjala Date: Mon Jun 9 22:06:44 2008 +0300 at91_mci: Cover more AT91RM9200 and AT91SAM9261 errata. According to the documentation the AT91SAM9261 MCI shares the block size limitations of the AT91RM9200 MCI. Also the errata documentation for AT91RM9200 and AT91SAM9261 state that stream commands are not supported. This has not been tested on actual hardware. Signed-off-by: Ville Syrjala Signed-off-by: Nicolas Ferre Signed-off-by: Pierre Ossman commit 5385edc50063a2175383ef5e90aa67fb6ab1beae Author: Ville Syrjala Date: Sat Jun 14 20:27:20 2008 +0300 at91_mci: AT91SAM9260/9263 12 byte write erratum (v2) AT91SAM926[0/3] PDC must write at least 12 bytes. The code compiles and runs but the actual condition for this erratum did not trigger in my tests so it's unclear if it actually works as intended. Signed-off-by: Ville Syrjala Signed-off-by: Nicolas Ferre Signed-off-by: Pierre Ossman commit fa1fe010c126ee69f2f75e3a4efc2f6252281ff8 Author: Nicolas Ferre Date: Tue Jun 10 11:27:29 2008 +0200 at91_mci: manage cmd error and data error independently In at91_mci_completed_command() function, this patch distinguishes command error and data error. It reports it in the corresponding error field. Signed-off-by: Nicolas Ferre Signed-off-by: Pierre Ossman commit ba7deeed96ca1855c153ad81c45baf6efe1a3362 Author: Nicolas Ferre Date: Fri May 30 14:28:45 2008 +0200 mmc: at91_mci: do not read irq status twice as it will forget some errors Reading AT91_MCI_SR again at the end of transfer can corrupt the error reporting. Some fields in the SR register are read-and-clear. Signed-off-by: Nicolas Ferre Signed-off-by: Pierre Ossman commit 7a6588ba20aed4505da912f9dd73616e9bd9ba67 Author: Eric Benard Date: Fri May 30 14:26:05 2008 +0200 mmc: at91_mci: add sdio irq management Enable SDIO interrupt handling. Signed-off-by: Eric Benard Signed-off-by: Nicolas Ferre Signed-off-by: Pierre Ossman commit 3eb99a7bff3d7459a695f45124a6bbabf31cb4b5 Author: Nicolas Ferre Date: Fri May 30 14:08:56 2008 +0200 mmc: at91_mci: add multiwrite switch at91_mci is capable of multiwrite. Enable it before it disappears. Signed-off-by: Nicolas Ferre Signed-off-by: Pierre Ossman commit 4ac24a8722b97d5b4cfc48a4fbd0b2489e358d4d Author: Nicolas Ferre Date: Fri May 30 14:18:57 2008 +0200 mmc: at91_mci: update bytes_xfered value once xfer done Modify bytes_xfered value after a write. That will report, as accurately as possible, the amount of sectors that are effectively written. This update introduces the check of the busy signal given by the card. Signed-off-by: Nicolas Ferre Signed-off-by: Pierre Ossman commit c5a89c6c0805959f813e8342d6f4040860f6d7db Author: Marc Pignat Date: Fri May 30 14:07:47 2008 +0200 mmc: at91_mci: avoid timeouts The at91 mci controller internal state machine seems to often crash. This can be fixed by resetting the controller after each command for at91rm9200 and by setting the MCI_BLKR register on at91sam926*. Signed-off-by: Marc Pignat Signed-off-by: Hans J Koch Signed-off-by: Nicolas Ferre Signed-off-by: Pierre Ossman commit e181dce8acab4f7d7c4772d2a8281510d503ab21 Author: Marc Pignat Date: Fri May 30 14:06:32 2008 +0200 mmc: at91_mci: show timeouts Detect command timeout (or mci controller hangs). Signed-off-by: Marc Pignat Signed-off-by: Hans J Koch Signed-off-by: Nicolas Ferre Signed-off-by: Pierre Ossman commit 80f9254668c63ae73c1359d8de50ad94aa1aa94a Author: Marc Pignat Date: Fri May 30 14:05:24 2008 +0200 mmc: at91_mci: support for block size not modulo 4 Implement transfer with size not modulo 4 for at91sam9*. Please note that the at91rm9200 simply can't handle this. Signed-off-by: Marc Pignat Signed-off-by: Nicolas Ferre Signed-off-by: Pierre Ossman commit 8769392b1918ec70ab62eebc82e06c47c12f8304 Author: Deepak Saxena Date: Mon Jun 16 19:20:57 2008 -0700 MMC: Trivial comment cleanup Make the variable name in the comments match the actual name of the variable. Signed-off-by: Deepak Saxena Signed-off-by: Pierre Ossman commit 08f80bb5196517a0dfe50dc7c10f234c0ff2f0e8 Author: Anton Vorontsov Date: Tue Jun 17 18:17:39 2008 +0400 mmc: change .get_ro() callback semantics Now get_ro() callback must return 0/1 values for its logical states, and negative errno values in case of error. If particular host instance doesn't support RO/WP switch, it should return -ENOSYS. This patch changes some hosts in two ways: 1. Now functions should be smart to not return negative values in "RO asserted" case (particularly gpio_ calls could return negative values for the outermost GPIOs). Also, board code usually passes get_ro() callbacks that directly return gpioreg & bit result, so at91_mci, imxmmc, pxamci and mmc_spi's get_ro() handlers need take special care when returning platform's values to the mmc core. 2. In case of host instance didn't implement get_ro() callback, it should really return -ENOSYS and let the mmc core decide what to do about it (mmc core thinks the same way as the hosts, so it isn't functional change). Signed-off-by: Anton Vorontsov Signed-off-by: Pierre Ossman commit 619ef4b42128709de4d89d209b2c874f560deecd Author: Anton Vorontsov Date: Tue Jun 17 18:17:21 2008 +0400 mmc_spi: add support for card-detection polling This patch adds new platform data variable "caps", so platforms could pass theirs capabilities into MMC core (for example, platforms without interrupt on the CD line will most probably want to pass MMC_CAP_NEEDS_POLL). New platform get_cd() callback provided to optimize polling. Signed-off-by: Anton Vorontsov Signed-off-by: Pierre Ossman commit 28f52482b41edc88cdf575aa6ed414c6e116ce10 Author: Anton Vorontsov Date: Tue Jun 17 18:17:15 2008 +0400 mmc: add support for card-detection polling Some hosts (and boards that use mmc_spi) do not use interrupts on the CD line, so they can't trigger mmc_detect_change. We want to poll the card and see if there was a change. 1 second poll interval seems resonable. This patch also implements .get_cd() host operation, that could be used by the hosts that are able to report card-detect status without need to talk MMC. Signed-off-by: Anton Vorontsov Signed-off-by: Pierre Ossman commit 150a55683b6b0ccb66aae75a10a3a514340c7c03 Author: Adrian Bunk Date: Tue May 20 00:57:27 2008 +0300 include/linux/mmc/mmc.h: remove CVS tags This patch removes a CVS tag that wasn't updated for a long time. Signed-off-by: Adrian Bunk Signed-off-by: Pierre Ossman commit 309d9736a903527d8bc41787b07573a054439bf6 Author: Pierre Ossman Date: Wed May 28 09:54:50 2008 +0200 sdhci-pci: unaligned data with ricoh controllers The Ricoh controllers cannot handle unaligned data blocks. Signed-off-by: Pierre Ossman commit fd8c326cadd2f781d5c4d6bcee79bb17b3745bb0 Author: Pierre Ossman Date: Sat May 24 22:36:31 2008 +0200 mmc_test: add test case control Add the ability to run just a single test case by writing the test case number into the sysfs "test" file. Signed-off-by: Pierre Ossman commit 1e72859e3ae16346d4007024b20d2d4ef387dcc3 Author: Pierre Ossman Date: Wed Apr 16 19:13:13 2008 +0200 sdhci: handle hot-remove Gracefully handle when the device is suddenly removed. Do a test read and avoid any further access if that read returns -1. Signed-off-by: Pierre Ossman commit 4489428ab5a49a6f443d9aa17f1d891417787d7b Author: Pierre Ossman Date: Fri Apr 4 19:36:59 2008 +0200 sdhci: support JMicron secondary interface JMicron chips sometimes have two interfaces to work around limitations in Microsoft's sdhci driver. This patch allows us to use either interface. Signed-off-by: Pierre Ossman commit 45211e21598441a32e53cf5032b7faeac143df6d Author: Pierre Ossman Date: Mon Mar 24 13:09:09 2008 +0100 sdhci: toggle JMicron PMOS setting Some of the JMicron chips requires us to manually enable the power output stages of the chip. Add the necessary hooks and functions to manage this. Signed-off-by: Pierre Ossman commit ee53ab5d73998e502801c024a08de2c39a92c52a Author: Pierre Ossman Date: Sat Jul 5 00:25:15 2008 +0200 sdhci: make workaround for timeout bug more general Give the quirk for broken timeout handling a better chance of handling more controllers by simply classifying the system as broken and setting a fixed value. Signed-off-by: Pierre Ossman commit 22606405894a3ca5796eb4454a4b83af611fd201 Author: Pierre Ossman Date: Sun Mar 23 19:33:23 2008 +0100 sdhci: more complex quirks handling Extend the quirks handling in the PCI driver to be able to have callbacks and not just flags. Signed-off-by: Pierre Ossman commit 3815a0ebab678c20d0d9c66af5ee9e68807b6681 Author: Pierre Ossman Date: Sat Mar 22 22:05:40 2008 +0100 sdhci: remove forced dma quirks Remove the quirk to force DMA on the Ricoh and TI controllers as it is no longer needed. The only bug they have is that they use an incorrect PCI interface value, and that is not respected anymore. Signed-off-by: Pierre Ossman commit b8c86fc5d8deaa5a6dc49c2c1ed144e6838bf0f3 Author: Pierre Ossman Date: Tue Mar 18 17:35:49 2008 +0100 sdhci: move pci stuff to separate module The SDHCI interface is not PCI specific, yet the Linux driver was intimitely connected to the PCI bus. This patch properly separates the PCI specific portion from the bus independent code. This patch is based on work by Ben Dooks but he did not have time to complete it. Signed-off-by: Pierre Ossman commit c9b74c5b8fb807187f6b1db09012828fcd2d7e73 Author: Pierre Ossman Date: Fri Apr 18 20:41:49 2008 +0200 sdhci: don't check block count for progress The specification is insufficiently strict when it comes to how the hardware should update the block count register, making it useless for checking transfer progress. Signed-off-by: Pierre Ossman commit 91d0322bef047e2916b3e52741411bffc63929cb Merge: 065cb3d... 50515af... Author: Ingo Molnar Date: Tue Jul 15 13:45:59 2008 +0200 Merge branch 'linus' into x86/urgent commit 089be43e403a78cd6889cde2fba164fefe9dfd89 Author: James Morris Date: Tue Jul 15 18:32:49 2008 +1000 Revert "SELinux: allow fstype unknown to policy to use xattrs if present" This reverts commit 811f3799279e567aa354c649ce22688d949ac7a9. From Eric Paris: "Please drop this patch for now. It deadlocks on ntfs-3g. I need to rework it to handle fuse filesystems better. (casey was right)" commit f507d28bff0601f1a8a96b7939fa3855c50d25b6 Author: Eli Cohen Date: Mon Jul 14 23:48:53 2008 -0700 IB/mlx4: Use kzalloc() for new QPs so flags are initialized to 0 Current code uses kmalloc() and then just does a bitwise OR operation on qp->flags in create_qp_common(), which means that qp->flags may potentially have some unintended bits set. This patch uses kzalloc() and avoids further explicit clearing of structure members, which also shrinks the code: add/remove: 0/0 grow/shrink: 0/1 up/down: 0/-65 (-65) function old new delta create_qp_common 2024 1959 -65 Signed-off-by: Eli Cohen Signed-off-by: Roland Dreier commit 2d92865158d0e21ef4350703af64bc2a610d81d3 Author: Vladimir Sokolovsky Date: Mon Jul 14 23:48:53 2008 -0700 mlx4_core: Use MOD_STAT_CFG command to get minimal page size There was a bug in some versions of the mlx4 driver in mlx4_alloc_fmr(), which hardcoded the minimum acceptable page_shift to be 12. However, new ConnectX firmware can support a minimum page_shift of 9 (log_pg_sz of 9 returned by QUERY_DEV_LIM) -- so with old drivers, ib_fmr_alloc() would fail for ULPs using the device minimum when creating FMRs. To preserve firmware compatibility with released mlx4 drivers, the firmware will continue to return 12 as before for log_page_sz in QUERY_DEV_CAP for these drivers. However, to enable new drivers to take advantage of the available smaller page size, the mlx4 driver now first sets the log_pg_sz to the device minimum by setting a log_page_sz value to 0 via the MOD_STAT_CFG command and then reading the real minimum via QUERY_DEV_CAP. Signed-off-by: Jack Morgenstein Signed-off-by: Vladimir Sokolovsky Signed-off-by: Roland Dreier commit de910bd92137005b5e1ecaf2ce68053d7d7d5350 Author: Or Gerlitz Date: Mon Jul 14 23:48:53 2008 -0700 RDMA/cma: Simplify locking needed for serialization of callbacks The RDMA CM has some logic in place to make sure that callbacks on a given CM ID are delivered to the consumer in a serialized manner. Specifically it has code to protect against a device removal racing with a running callback function. This patch simplifies this logic by using a mutex per ID instead of a wait queue and atomic variable. This means that cma_disable_remove() now is more properly named to cma_disable_callback(), and cma_enable_remove() can now be removed because it just would become a trivial wrapper around mutex_unlock(). Signed-off-by: Or Gerlitz Signed-off-by: Roland Dreier commit 64c5e613b9dd34ef1281ed6d22478609667ae36a Author: Or Gerlitz Date: Mon Jul 14 23:48:53 2008 -0700 RDMA/addr: Keep pointer to netdevice in struct rdma_dev_addr Keep a pointer to the local (src) netdevice in struct rdma_dev_addr, and copy it in as part of rdma_copy_addr(). Use rdma_translate_ip() in cma_new_conn_id() to reduce some code duplication and also make sure the src_dev member gets set. In a high-availability configuration the netdevice pointer can be used by the RDMA CM to align RDMA sessions to use the same links as the IP stack does under fail-over and route change cases. Signed-off-by: Or Gerlitz Signed-off-by: Roland Dreier commit 4ab928f69208d240d3681336f34589e4b151824f Author: Steve Wise Date: Mon Jul 14 23:48:53 2008 -0700 RDMA/cxgb3: Fixes for zero STag Handling the zero STag in receive work request requires some extra logic in the driver: - Only set the QP_PRIV bit for kernel mode QPs. - Add a zero STag build function for recv wrs. The uP needs a PBL allocated and passed down in the recv WR so it can construct a HW PBL for the zero STag S/G entries. Note: we need to place a few restrictions on zero STag usage because of this: 1) all SGEs in a recv WR must either be zero STag or not. No mixing. 2) an individual SGE length cannot exceed 128MB for a zero-stag SGE. This should be OK since it's not really practical to allocate such a large chunk of pinned contiguous DMA mapped memory. - Add an optimized non-zero-STag recv wr format for kernel users. This is needed to optimize both zero and non-zero STag cracking in the recv path for kernel users. - Remove the iwch_ prefix from the static build functions. - Bump required FW version. Signed-off-by: Steve Wise commit 96f15c03532282366364ecfd20f04e49b5d96f3a Author: Steve Wise Date: Mon Jul 14 23:48:53 2008 -0700 RDMA/core: Add local DMA L_Key support - Change the IB_DEVICE_ZERO_STAG flag to the transport-neutral name IB_DEVICE_LOCAL_DMA_LKEY, which is used by iWARP RNICs to indicate 0 STag support and IB HCAs to indicate reserved L_Key support. - Add a u32 local_dma_lkey member to struct ib_device. Drivers fill this in with the appropriate local DMA L_Key (if they support it). - Fix up the drivers using this flag. Signed-off-by: Steve Wise Signed-off-by: Roland Dreier commit aed012279d35e88e29fd55737d8821604433f50a Author: Roland Dreier Date: Mon Jul 14 23:48:52 2008 -0700 IB/mthca: Fix check of max_send_sge for special QPs The MLX transport requires two extra gather entries for sends (one for the header and one for the checksum at the end, as the comment says). However the code checked that max_recv_sge was not too big, instead of checking max_send_sge as it should have. Fix the code to check the correct condition. Signed-off-by: Roland Dreier commit c036925ac0e940a4e8525b08e89d2c64fe282c51 Author: Roland Dreier Date: Mon Jul 14 23:48:52 2008 -0700 IB/mthca: Use round_jiffies() for catastrophic error polling timer Exactly when the catastrophic error polling timer function runs is not important, so use round_jiffies() to save unnecessary wakeups. Signed-off-by: Roland Dreier commit 4522e08ced48baaf28990e2674e940aae9940310 Author: Roland Dreier Date: Mon Jul 14 23:48:52 2008 -0700 IB/mthca: Remove "stop" flag for catastrophic error polling timer Since we use del_timer_sync() anyway, there's no need for an additional flag to tell the timer not to rearm. Signed-off-by: Roland Dreier commit bc3a290b51aaefc6a6af2d6e6d52ed32387c416c Author: Eli Cohen Date: Mon Jul 14 23:48:52 2008 -0700 IPoIB: Double default RX/TX ring sizes Increase IPoIB ring sizes to twice their original sizes (RX: 128->256, TX: 64->128) to act as a shock absorber for high traffic peaks. With the current settings, we have seen cases that there are many calls to netif_stop_queue(), which causes degradation in throughput. Also, larger receive buffer sizes help IPoIB in CM mode to avoid experiencing RNR NAK conditions due to insufficient receive buffers at the SRQ. Signed-off-by: Eli Cohen Signed-off-by: Roland Dreier commit e112373fd6aa280bd2cbc0d5cc3809115325a1be Author: Eli Cohen Date: Mon Jul 14 23:48:52 2008 -0700 IPoIB/cm: Reduce connected mode TX object size Since IPoIB connected mode does not NETIF_F_SG, we only have one DMA mapping per send, so we don't need a mapping[] array. Define a new struct with a single u64 mapping member and use it for the CM tx_ring. Signed-off-by: Eli Cohen Signed-off-by: Roland Dreier commit df8666198dd058b9498ebdbc52c61957206d30a5 Author: Ralph Campbell Date: Mon Jul 14 23:48:52 2008 -0700 IB/ipath: Use IEEE OUI for vendor_id reported by ibv_query_device() The IB spe. for SubnGet(NodeInfo) and query HCA says that the vendor ID field should be the IEEE OUI assigned to the vendor. The ipath driver was returning the PCI vendor ID instead. This will affect applications which call ibv_query_device(). The old value was 0x001fc1 or 0x001077, the new value is 0x001175. The vendor ID doesn't appear to be exported via /sys so that should reduce possible compatibility issues. I'm only aware of Open MPI as a major application which depends on this change, and they have made necessary adjustments. Signed-off-by: Ralph Campbell Signed-off-by: Roland Dreier commit bd3606715effbf37df986548c43bbed0842b49d5 Author: Eli Cohen Date: Mon Jul 14 23:48:51 2008 -0700 IPoIB: Use dev_set_mtu() to change mtu When the driver sets the MTU of the net device outside of its change_mtu method, it should make use of dev_set_mtu() instead of directly setting the mtu field of struct netdevice. Otherwise functions registered to be called upon MTU change will not get called (this is done through call_netdevice_notifiers() in dev_set_mtu()). Signed-off-by: Eli Cohen Signed-off-by: Roland Dreier commit c8c2afe360b7366f586f6bece1109a72ea334876 Author: Eli Cohen Date: Mon Jul 14 23:48:51 2008 -0700 IPoIB: Use rtnl lock/unlock when changing device flags Use of this lock is required to synchronize changes to the netdvice's data structs. Also move the call to ipoib_flush_paths() after the modification of the netdevice flags in set_mode(). Signed-off-by: Eli Cohen Signed-off-by: Roland Dreier commit 9eae554c171e086c89ab83da2a2d3c8bf958fcb5 Author: Roland Dreier Date: Mon Jul 14 23:48:50 2008 -0700 IPoIB: Get rid of ipoib_mcast_detach() wrapper ipoib_mcast_detach() does nothing except call ib_detach_mcast(), so just use the core API in the one place that does a multicast group detach. add/remove: 0/1 grow/shrink: 0/1 up/down: 0/-105 (-105) function old new delta ipoib_mcast_leave 357 319 -38 ipoib_mcast_detach 67 - -67 Signed-off-by: Roland Dreier commit d0de13622d5ac658efe7c51521dbdbe0752aa3dd Author: Eli Cohen Date: Mon Jul 14 23:48:50 2008 -0700 IPoIB: Only set Q_Key once: after joining broadcast group The current code will set the Q_Key for any join of a non-sendonly multicast group. The operation involves a modify QP operation, which is fairly heavyweight, and is only really required after the join of the broadcast group. Fix this by adding a parameter to ipoib_mcast_attach() to control when the Q_Key is set. Signed-off-by: Eli Cohen Signed-off-by: Roland Dreier commit 5892eff91ad60ba365ae7f75050ce464036c5396 Author: Eli Cohen Date: Mon Jul 14 23:48:50 2008 -0700 IPoIB: Remove priv->mcast_mutex No need for a mutex around calls to ib_attach_mcast/ib_detach_mcast since these operations are synchronized at the HW driver layer. Signed-off-by: Eli Cohen Signed-off-by: Roland Dreier commit c03d4731b5b6de45b95a10bf1d510dde423d6757 Author: Eli Cohen Date: Mon Jul 14 23:48:50 2008 -0700 IPoIB: Remove unused IPOIB_MCAST_STARTED code The IPOIB_MCAST_STARTED flag is not used at all since commit b3e2749b ("IPoIB: Don't drop multicast sends when they can be queued"), so remove it. Signed-off-by: Eli Cohen Signed-off-by: Roland Dreier commit 70fe1796a5ebc5f955be39bba5c42eee9eb89e1f Author: Steve Wise Date: Mon Jul 14 23:48:49 2008 -0700 RDMA/cxgb3: Set rkey field for new memory windows in iwch_alloc_mw() Signed-off-by: Steve Wise Signed-off-by: Roland Dreier commit 8294f29767c53e97664a27db9974adea8e2ea95b Author: Roland Dreier Date: Mon Jul 14 23:48:49 2008 -0700 RDMA/nes: Get rid of ring_doorbell parameter of nes_post_cqp_request() Every caller of nes_post_cqp_request() passed it NES_CQP_REQUEST_RING_DOORBELL, so just remove that parameter and always ring the doorbell. Signed-off-by: Roland Dreier Acked-by: Faisal Latif commit 52c8084b740c42af27d5bfa62cec7079d12fbc2b Author: Jon Mason Date: Mon Jul 14 23:48:49 2008 -0700 RDMA/cxgb3: Propagate HW page size capabilities cxgb3 does not currently report the page size capabilities, and incorrectly reports them internally. This version changes the bit-shifting to a static value (per Steve's request). Signed-off-by: Jon Mason Acked-by: Steve Wise Signed-off-by: Roland Dreier commit 1ff66e8c1faee7c2711b84b9c89e1c5fcd767839 Author: Roland Dreier Date: Mon Jul 14 23:48:49 2008 -0700 RDMA/nes: Encapsulate logic nes_put_cqp_request() The iw_nes driver repeats the logic if (atomic_dec_and_test(&cqp_request->refcount)) { if (cqp_request->dynamic) { kfree(cqp_request); } else { spin_lock_irqsave(&nesdev->cqp.lock, flags); list_add_tail(&cqp_request->list, &nesdev->cqp_avail_reqs); spin_unlock_irqrestore(&nesdev->cqp.lock, flags); } } over and over. Wrap this up in functions nes_free_cqp_request() and nes_put_cqp_request() to simplify such code. In addition to making the source smaller and more readable, this shrinks the compiled code quite a bit: add/remove: 2/0 grow/shrink: 0/13 up/down: 164/-1692 (-1528) function old new delta nes_free_cqp_request - 147 +147 nes_put_cqp_request - 17 +17 nes_modify_qp 2316 2293 -23 nes_hw_modify_qp 737 657 -80 nes_dereg_mr 945 860 -85 flush_wqes 501 416 -85 nes_manage_apbvt 648 560 -88 nes_reg_mr 1117 1026 -91 nes_cqp_ce_handler 927 769 -158 nes_alloc_mw 1052 884 -168 nes_create_qp 5314 5141 -173 nes_alloc_fmr 2212 2035 -177 nes_destroy_cq 1097 918 -179 nes_create_cq 2787 2598 -189 nes_dealloc_mw 762 566 -196 Signed-off-by: Roland Dreier Acked-by: Faisal Latif commit ee1e2c82c245a5fb2864e9dbcdaab3390fde3fcc Author: Moni Shoua Date: Mon Jul 14 23:48:49 2008 -0700 IPoIB: Refresh paths instead of flushing them on SM change events The patch tries to solve the problem of device going down and paths being flushed on an SM change event. The method is to mark the paths as candidates for refresh (by setting the new valid flag to 0), and wait for an ARP probe a new path record query. The solution requires a different and less intrusive handling of SM change event. For that, the second argument of the flush function changes its meaning from a boolean flag to a level. In most cases, SM failover doesn't cause LID change so traffic won't stop. In the rare cases of LID change, the remote host (the one that hadn't changed its LID) will lose connectivity until paths are refreshed. This is no worse than the current state. In fact, preventing the device from going down saves packets that otherwise would be lost. Signed-off-by: Moni Levy Signed-off-by: Moni Shoua Signed-off-by: Roland Dreier commit 038919f29682b00ea95506e959210fc72d1aaf64 Author: Joachim Fenkes Date: Mon Jul 14 23:48:49 2008 -0700 IB/ehca: Make device table externally visible This gives ehca an autogenerated modalias and therefore enables automatic loading. Signed-off-by: Joachim Fenkes Signed-off-by: Roland Dreier commit af40da894e96d5c826d38be3ea53ee00d9de0367 Author: Vladimir Sokolovsky Date: Mon Jul 14 23:48:48 2008 -0700 IPoIB: add LRO support Add "ipoib_use_lro" module parameter to enable LRO and an "ipoib_lro_max_aggr" module parameter to set the max number of packets to be aggregated. Make LRO controllable and LRO statistics accessible through ethtool. Signed-off-by: Vladimir Sokolovsky Signed-off-by: Eli Cohen Signed-off-by: Roland Dreier commit 12406734051a26e9fe4c8568e931dfddbb72d431 Author: Ron Livne Date: Mon Jul 14 23:48:48 2008 -0700 IPoIB: Use multicast loopback blocking if available Set IB_QP_CREATE_BLOCK_MULTICAST_LOOPBACK for IPoIB's UD QPs if supported by the underlying device. This creates an improvement of up to 39% in bandwidth when sending multicast packets with IPoIB, and an improvment of 12% in cpu usage. Signed-off-by: Ron Livne Signed-off-by: Roland Dreier commit 521e575b9a7324a0bca762622139f69582a042bf Author: Ron Livne Date: Mon Jul 14 23:48:48 2008 -0700 IB/mlx4: Add support for blocking multicast loopback packets Add support for handling the IB_QP_CREATE_MULTICAST_BLOCK_LOOPBACK flag by using the per-multicast group loopback blocking feature of mlx4 hardware. Signed-off-by: Ron Livne Signed-off-by: Roland Dreier commit 47ee1b9f2e7bf73950602efe0b74fa1a8481f222 Author: Ron Livne Date: Mon Jul 14 23:48:48 2008 -0700 IB/core: Add support for multicast loopback blocking This patch also adds a creation flag for QPs, IB_QP_CREATE_MULTICAST_BLOCK_LOOPBACK, which when set means that multicast sends from the QP to a group that the QP is attached to will not be looped back to the QP's receive queue. This can be used to save receive resources when a consumer does not want a local copy of multicast traffic; for example IPoIB must waste CPU time throwing away such local copies of multicast traffic. This patch also adds a device capability flag that shows whether a device supports this feature or not. Signed-off-by: Ron Livne Signed-off-by: Roland Dreier commit 14cc180f7b032f8484c1a3d0533b1129ffe307fd Author: Steve Wise Date: Mon Jul 14 23:48:48 2008 -0700 RDMA/cxgb3: Add support for protocol statistics - Add a new rdma ctl command called RDMA_GET_MIB to the cxgb3 low level driver to obtain the protocol mib from the rnic hardware. - Add new iw_cxgb3 provider method to get the MIB from the low level driver. Signed-off-by: Steve Wise Signed-off-by: Roland Dreier commit 7f624d023b5fb150831e02c1e4c0f2619ade72c2 Author: Steve Wise Date: Mon Jul 14 23:48:48 2008 -0700 RDMA/core: Add iWARP protocol statistics attributes in sysfs This patch adds a sysfs attribute group called "proto_stats" under /sys/class/infiniband/$device/ and populates this group with protocol statistics if they exist for a given device. Currently, only iWARP stats are defined, but the code is designed to allow InfiniBand protocol stats if they become available. These stats are per-device and more importantly -not- per port. Details: - Add union rdma_protocol_stats in ib_verbs.h. This union allows defining transport-specific stats. Currently only iwarp stats are defined. - Add struct iw_protocol_stats to define the current set of iwarp protocol stats. - Add new ib_device method called get_proto_stats() to return protocol statistics. - Add logic in core/sysfs.c to create iwarp protocol stats attributes if the device is an RNIC and has a get_proto_stats() method. Signed-off-by: Steve Wise Signed-off-by: Roland Dreier commit a7d834c4bc6be73e8f83eaa5072fac3c5549f7f2 Author: Roland Dreier Date: Mon Jul 14 23:48:47 2008 -0700 IPoIB/cm: Fix racy use of receive WR/SGL in ipoib_cm_post_receive_nonsrq() For devices that don't support SRQs, ipoib_cm_post_receive_nonsrq() is called from both ipoib_cm_handle_rx_wc() and ipoib_cm_nonsrq_init_rx(), and these two callers are not synchronized against each other. However, ipoib_cm_post_receive_nonsrq() always reuses the same receive work request and scatter list structures, so multiple callers can end up stepping on each other, which leads to posting garbled work requests. Fix this by having the caller pass in the ib_recv_wr and ib_sge structures to use, and allocating new local structures in ipoib_cm_nonsrq_init_rx(). Based on a patch by Pradeep Satyanarayana and David Wilder , with debugging help from Hoang-Nam Nguyen . Signed-off-by: Roland Dreier commit 468f2239bcc71ae0f345c3fe58c797cf4627daf4 Author: Roland Dreier Date: Mon Jul 14 23:48:47 2008 -0700 RDMA/cma: Add missing newlines to printk()s Signed-off-by: Roland Dreier Acked-by: Sean Hefty commit eec8845d29504a12fbd434e192d61aed3d9d74fa Author: Roland Dreier Date: Mon Jul 14 23:48:47 2008 -0700 RDMA/cxgb3: Remove write-only iwch_rnic_attributes fields The members struct iwch_rnic_attributes.vendor_id and .vendor_part_id are write-only, so we might as well get rid of them. Signed-off-by: Roland Dreier Acked-by: Steve Wise commit 97d1cc8055c7b3fbd35bf693775d61102e65d174 Author: Steve Wise Date: Mon Jul 14 23:48:47 2008 -0700 RDMA/cxgb3: Fix up some ib_device_attr fields - set fw_ver - set hw_ver - set max_qp_wr to something reasonable - set max_cqe to something reasonable Signed-off-by: Steve Wise Signed-off-by: Roland Dreier commit 6f7bc01a7382641c61ec036d68ff3a9140b48a1c Author: Stefan Roscher Date: Mon Jul 14 23:48:47 2008 -0700 IB/ehca: In case of lost interrupts, trigger EOI to reenable interrupts During corner case testing, we noticed that some versions of ehca do not properly transition to interrupt done in special load situations. This can be resolved by periodically triggering EOI through H_EOI, if EQEs are pending. Signed-off-by: Stefan Roscher Acked-by: Benjamin Herrenschmidt Signed-off-by: Roland Dreier commit 3e255eac561672cbc92844b9f16cae9304c2a783 Author: Joachim Fenkes Date: Mon Jul 14 23:48:47 2008 -0700 IB/ehca: Reject receive work requests if QP is in RESET state Signed-off-by: Joachim Fenkes Signed-off-by: Roland Dreier commit 7c27f358209a8ce7c57b584346d7b611e823f1b1 Author: Roland Dreier Date: Mon Jul 14 23:48:46 2008 -0700 IB/mlx4: Remove extra code for RESET->ERR QP state transition Commit 65adfa91 ("IB/mlx4: Fix RESET to RESET and RESET to ERROR transitions") added some extra code to handle a QP state transition from RESET to ERROR. However, the latest 1.2.1 version of the IB spec has clarified that this transition is actually not allowed, so we can remove this extra code again. Signed-off-by: Roland Dreier commit d3809ad0972297fbc7ef0585049ef465d9d8d79d Author: Roland Dreier Date: Mon Jul 14 23:48:46 2008 -0700 IB/mthca: Remove extra code for RESET->ERR QP state transition Commit b18aad71 ("IB/mthca: Fix RESET to ERROR transition") added some extra code to handle a QP state transition from RESET to ERROR. However, the latest 1.2.1 version of the IB spec has clarified that this transition is actually not allowed, so we can remove this extra code again. Signed-off-by: Roland Dreier commit e5a5e7d59af5944a674b9cea420a1fedc60496f2 Author: Ralph Campbell Date: Mon Jul 14 23:48:46 2008 -0700 IB/core: Reset to error QP state transition is not allowed I was reviewing the QP state transition diagram in the IB 1.2.1 spec and the code for qp_state_table[], and noticed that the code allows a QP to be modified from IB_QPS_RESET to IB_QPS_ERR whereas the notes for figure 124 (pg 457) specifically says that this transition isn't allowed. This is a clarification from earlier versions of the IB spec, which were ambiguous in this area and suggested that the RESET to ERR transition was allowed. Fix up the qp_state_table[] to make RESET->ERR not allowed. Signed-off-by: Ralph Campbell Signed-off-by: Roland Dreier commit 6578cf33989a594bab37af988d45d87812b946b8 Author: Eli Cohen Date: Mon Jul 14 23:48:45 2008 -0700 IB/mlx4: Pass congestion management class MADs to the HCA ConnectX HCAs support the IB_MGMT_CLASS_CONG_MGMT management class, so process MADs of this class through the MAD_IFC firmware command. Signed-off-by: Eli Cohen Signed-off-by: Roland Dreier commit d1f2cd895f8733faa9d79d09d825a2ed80002ac7 Author: Eli Cohen Date: Mon Jul 14 23:48:45 2008 -0700 IB/mlx4: Configure QPs' max message size based on real device capability ConnectX returns the max message size it supports through the QUERY_DEV_CAP firmware command. When modifying a QP to RTR, the max message size for the QP must be specified. This value must not exceed the value declared through QUERY_DEV_CAP. The current code ignores the max allowed size and unconditionally sets the value to 2^31. This patch sets all QPs to the max value allowed as returned from firmware. Signed-off-by: Eli Cohen Signed-off-by: Roland Dreier commit e7e55829999deaab3f43e201a087731c02c54cf9 Author: Steve Wise Date: Mon Jul 14 23:48:45 2008 -0700 RDMA/cxgb3: MEM_MGT_EXTENSIONS support - set IB_DEVICE_MEM_MGT_EXTENSIONS capability bit if fw supports it. - set max_fast_reg_page_list_len device attribute. - add iwch_alloc_fast_reg_mr function. - add iwch_alloc_fastreg_pbl - add iwch_free_fastreg_pbl - adjust the WQ depth for kernel mode work queues to account for fastreg possibly taking 2 WR slots. - add fastreg_mr work request support. - add local_inv work request support. - add send_with_inv and send_with_se_inv work request support. - removed useless duplicate enums/defines for TPT/MW/MR stuff. Signed-off-by: Steve Wise Signed-off-by: Roland Dreier commit 00f7ec36c9324928e4cd23f02e6d8550f30c32ca Author: Steve Wise Date: Mon Jul 14 23:48:45 2008 -0700 RDMA/core: Add memory management extensions support This patch adds support for the IB "base memory management extension" (BMME) and the equivalent iWARP operations (which the iWARP verbs mandates all devices must implement). The new operations are: - Allocate an ib_mr for use in fast register work requests. - Allocate/free a physical buffer lists for use in fast register work requests. This allows device drivers to allocate this memory as needed for use in posting send requests (eg via dma_alloc_coherent). - New send queue work requests: * send with remote invalidate * fast register memory region * local invalidate memory region * RDMA read with invalidate local memory region (iWARP only) Consumer interface details: - A new device capability flag IB_DEVICE_MEM_MGT_EXTENSIONS is added to indicate device support for these features. - New send work request opcodes IB_WR_FAST_REG_MR, IB_WR_LOCAL_INV, IB_WR_RDMA_READ_WITH_INV are added. - A new consumer API function, ib_alloc_mr() is added to allocate fast register memory regions. - New consumer API functions, ib_alloc_fast_reg_page_list() and ib_free_fast_reg_page_list() are added to allocate and free device-specific memory for fast registration page lists. - A new consumer API function, ib_update_fast_reg_key(), is added to allow the key portion of the R_Key and L_Key of a fast registration MR to be updated. Consumers call this if desired before posting a IB_WR_FAST_REG_MR work request. Consumers can use this as follows: - MR is allocated with ib_alloc_mr(). - Page list memory is allocated with ib_alloc_fast_reg_page_list(). - MR R_Key/L_Key "key" field is updated with ib_update_fast_reg_key(). - MR made VALID and bound to a specific page list via ib_post_send(IB_WR_FAST_REG_MR) - MR made INVALID via ib_post_send(IB_WR_LOCAL_INV), ib_post_send(IB_WR_RDMA_READ_WITH_INV) or an incoming send with invalidate operation. - MR is deallocated with ib_dereg_mr() - page lists dealloced via ib_free_fast_reg_page_list(). Applications can allocate a fast register MR once, and then can repeatedly bind the MR to different physical block lists (PBLs) via posting work requests to a send queue (SQ). For each outstanding MR-to-PBL binding in the SQ pipe, a fast_reg_page_list needs to be allocated (the fast_reg_page_list is owned by the low-level driver from the consumer posting a work request until the request completes). Thus pipelining can be achieved while still allowing device-specific page_list processing. The 32-bit fast register memory key/STag is composed of a 24-bit index and an 8-bit key. The application can change the key each time it fast registers thus allowing more control over the peer's use of the key/STag (ie it can effectively be changed each time the rkey is rebound to a page list). Signed-off-by: Steve Wise Signed-off-by: Roland Dreier commit f89271da32bc1a636cf4eb078e615930886cd013 Author: Eli Cohen Date: Mon Jul 14 23:48:44 2008 -0700 IPoIB: Copy small received SKBs in connected mode The connected mode implementation in the IPoIB driver has a large overhead in the way SKBs are handled in the receive flow. It usually allocates an SKB with as big as was used in the currently received SKB and moves unused fragments from the old SKB to the new one. This involves a loop on all the remaining fragments and incurs overhead on the CPU. This patch, for small SKBs, allocates an SKB just large enough to contain the received data and copies to it the data from the received SKB. The newly allocated SKB is passed to the stack and the old SKB is reposted. When running netperf, UDP small messages, without this pach I get: UDP UNIDIRECTIONAL SEND TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 14.4.3.178 (14.4.3.178) port 0 AF_INET Socket Message Elapsed Messages Size Size Time Okay Errors Throughput bytes bytes secs # # 10^6bits/sec 114688 128 10.00 5142034 0 526.31 114688 10.00 1130489 115.71 With this patch I get both send and receive at ~315 mbps. The reason that send performance actually slows down is as follows: When using this patch, the overhead of the CPU for handling RX packets is dramatically reduced. As a result, we do not experience RNR NAK messages from the receiver which cause the connection to be closed and reopened again; when the patch is not used, the receiver cannot handle the packets fast enough so there is less time to post new buffers and hence the mentioned RNR NACKs. So what happens is that the application *thinks* it posted a certain number of packets for transmission but these packets are flushed and do not really get transmitted. Since the connection gets opened and closed many times, each time netperf gets the CPU time that otherwise would have been given to IPoIB to actually transmit the packets. This can be verified when looking at the port counters -- the output of ifconfig and the oputput of netperf (this is for the case without the patch): tx packets ========== port counter: 1,543,996 ifconfig: 1,581,426 netperf: 5,142,034 rx packets ========== netperf 1,1304,089 Signed-off-by: Eli Cohen commit f3781d2e89f12dd5afa046dc56032af6e39bd116 Author: Roland Dreier Date: Mon Jul 14 23:48:44 2008 -0700 RDMA: Remove subversion $Id tags They don't get updated by git and so they're worse than useless. Signed-off-by: Roland Dreier commit 4deccd6d95f1f1536dad3c842e39c1ace577329d Author: Dotan Barak Date: Mon Jul 14 23:48:44 2008 -0700 RDMA: Improve include file coding style Remove subversion $Id lines and improve readability by fixing other coding style problems pointed out by checkpatch.pl. Signed-off-by: Dotan Barak Signed-off-by: Roland Dreier commit fd91b1bf1bb6fb443cb8c7600c7314f093b31f40 Author: Robert P. J. Day Date: Mon Jul 14 23:48:44 2008 -0700 IB/ipath: Simplify code using ARRAY_SIZE() macro Signed-off-by: Robert P. J. Day Signed-off-by: Roland Dreier commit 9670e553915e67fb68f13258644342c68dc26b84 Author: Eli Cohen Date: Mon Jul 14 23:48:44 2008 -0700 IB/mlx4: Optimize QP stamping The idea is that for QPs with fixed size work requests (eg selective signaling QPs), before stamping the WQE, we read the value of the DS field, which gives the effective size of the descriptor as used in the previous post. Then we stamp only that area, since the rest of the descriptor is already stamped. When initializing the send queue buffer, make sure the DS field is initialized to the max descriptor size so that the subsequent stamping will be done on the entire descriptor area. Signed-off-by: Eli Cohen Signed-off-by: Roland Dreier commit 164ba0893c27a216557396320b6063fdac040392 Author: Moni Shoua Date: Mon Jul 14 23:48:43 2008 -0700 IB/sa: Fail requests made while creating new SM AH This patch solves a race that occurs after an event occurs that causes the SA query module to flush its SM address handle (AH). When SM AH becomes invalid and needs an update it is handled by the global workqueue. On the other hand this event is also handled in the IPoIB driver by queuing work in the ipoib_workqueue that does multicast joins. Although queuing is in the right order, it is done to 2 different workqueues and so there is no guarantee that the first to be queued is the first to be executed. This causes a problem because IPoIB may end up sending an request to the old SM, which will take a long time to time out (since the old SM is gone); this leads to a much longer than necessary interruption in multicast traffer. The patch sets the SA query module's SM AH to NULL when the event occurs, and until update_sm_ah() is done, any request that needs sm_ah fails with -EAGAIN return status. For consumers, the patch doesn't make things worse. Before the patch, MADs are sent to the wrong SM so the request gets lost. Consumers can be improved if they examine the return code and respond to EAGAIN properly but even without an improvement the situation is not getting worse. Signed-off-by: Moni Levy Signed-off-by: Moni Shoua Signed-off-by: Roland Dreier commit a9474917099e007c0f51d5474394b5890111614f Author: Sean Hefty Date: Mon Jul 14 23:48:43 2008 -0700 RDMA: Fix license text The license text for several files references a third software license that was inadvertently copied in. Update the license to what was intended. This update was based on a request from HP. Signed-off-by: Sean Hefty Signed-off-by: Roland Dreier commit 929555a2baed9b0b050d03532655bfd721a43c44 Author: Christophe Jaillet Date: Mon Jul 14 23:48:43 2008 -0700 RDMA/nes: Remove unnecessary memset() Remove an explicit memset(..., 0, ...) of a 'listener' structure allocated with kzalloc(). Signed-off-by: Christophe Jaillet Acked-by: Faisal Latif Signed-off-by: Roland Dreier commit 969a60f9db3f879f95bd37026a3c3bf02cc2568f Author: Roland Dreier Date: Mon Jul 14 23:48:43 2008 -0700 IB/srp: Remove use of cached P_Key/GID queries The SRP initiator is currently using ib_find_cached_pkey() and ib_get_cached_gid() in situations where the uncached ib_find_pkey() and ib_query_gid() functions serve just as well: sleeping is allowed and performance is not an issue. Since we want to eliminate the cached operations in the long term, convert SRP to use the uncached variants. Signed-off-by: Roland Dreier commit e56a99d5a42dcb91e622ae7a0289d8fb2ddabffb Author: Artem Bityutskiy Date: Mon Jul 14 19:08:34 2008 +0300 UBIFS: add brief documentation Signed-off-by: Artem Bityutskiy Signed-off-by: Adrian Hunter commit 9527056630b68c94b94b94cd58c6cbb65e611fd1 Author: Artem Bityutskiy Date: Mon Jul 14 17:58:44 2008 +0300 MAINTAINERS: add UBIFS section Signed-off-by: Artem Bityutskiy commit 242e3df80b8d25ed681c278512df0993725f25dd Author: Dave Airlie Date: Tue Jul 15 15:48:05 2008 +1000 drm/radeon: fixup issue with radeon and PAT support. With new userspace libpciaccess we can get a conflicting mapping on the PCIE GART table in the video RAM. Always try and map it _wc. Signed-off-by: Dave Airlie commit 43d2548bb2ef7e6d753f91468a746784041e522d Merge: 585583d... 85082fd... Author: Benjamin Herrenschmidt Date: Tue Jul 15 15:44:51 2008 +1000 Merge commit '85082fd7cbe3173198aac0eb5e85ab1edcc6352c' into test-build Manual fixup of: arch/powerpc/Kconfig commit 585583d95c5660973bc0cf64add517b040acd8a4 Author: Kumar Gala Date: Mon Jul 14 08:08:45 2008 -0500 powerpc: Fix pte_update for CONFIG_PTE_64BIT and !PTE_ATOMIC_UPDATES Because the pte is now 64-bits the compiler was optimizing the update to always clear the upper 32-bits of the pte. We need to ensure the clr mask is treated as an unsigned long long to get the proper behavior. Signed-off-by: Kumar Gala Acked-by: Josh Boyer Signed-off-by: Benjamin Herrenschmidt commit 7ff86b0317bc40c665aab62f3b7669713ade07c5 Author: Takashi Iwai Date: Wed Jul 16 02:20:11 2008 +0200 powerpc: Fix a build problem on ppc32 with new DMA_ATTRs The new dma_attrs support must only be enabled for 64 bits as it's not been implemented for 32 bits yet. Signed-off-by: Benjamin Herrenschmidt commit 4d3702b62e004172f44870763cf56793d8de0cbf Author: Roland Dreier Date: Mon Jul 14 18:11:23 2008 -0700 x86: Rename "ignore" macro in to avoid collision Commit 70f1bba4 ("x86: use ignore macro instead of hash comment") breaks the 64-bit x86 build on toolchains that have CONFIG_AS_CFI undefined with: arch/x86/lib/csum-copy_64.S:48: Error: Macro `ignore' was already defined because now uses the ignore macro name itself. Fix this by changing to __cfi_ignore in dwarf2.h. Signed-off-by: Roland Dreier Signed-off-by: Linus Torvalds commit ad1f8bf073e1c1996bb37b669352e3d7b1eb2b1f Author: David Woodhouse Date: Mon Jul 14 18:13:10 2008 -0700 Fix accidental reference to tg3 firmware We're not updating the tg3 driver to use request_firmware() yet, but a reference to its firmware accidentally slipped in as part of commit c4667746 ("dabusb: use request_firmware()"). Remove it again. Signed-off-by: David Woodhouse Reported-by: Yinghai Lu Signed-off-by: Linus Torvalds commit 004ea683d96ff51131789e78a3de7dafcdbf912d Author: Grant Erickson Date: Wed Jul 9 01:03:06 2008 +1000 ibm_newemac: Add MII mode support to the EMAC RGMII bridge. This patch adds support to the RGMII handler in the EMAC driver for the MII PHY mode such that device tree entries of the form `phy-mode = "mii";' are recognized and handled appropriately. While logically, in software, "gmii" and "mii" modes are the same, they are wired differently, so it makes sense to allow DTS authors to specify each explicitly. Signed-off-by: Grant Erickson Acked-by: Stefan Roese Acked-by: Benjamin Herrenschmidt Acked-by: Jeff Garzik Signed-off-by: Benjamin Herrenschmidt commit b6f6b98a4e91fcf31db7de54c3aa86252fc6fb5f Author: Sonny Rao Date: Sat Jul 12 09:00:26 2008 +1000 powerpc: Don't spin on sync instruction at boot time Push the sync below the secondary smp init hold loop and comment its purpose. This should speed up boot by reducing global traffic during the single-threaded portion of boot. Signed-off-by: Sonny Rao Signed-off-by: Milton Miller Signed-off-by: Benjamin Herrenschmidt commit cd6f37be7fdc9fea407379745350f6630b9d3cdd Author: Michael Neuling Date: Fri Jul 11 16:31:09 2008 +1000 powerpc: Add VSX load/store alignment exception handler VSX loads and stores will take an alignment exception when the address is not on a 4 byte boundary. This add support for these alignment exceptions and will emulate the requested load or store. Signed-off-by: Michael Neuling Signed-off-by: Benjamin Herrenschmidt commit 7c29217096d83f657e6ee70479af09b46f4275f6 Author: Michael Neuling Date: Fri Jul 11 16:29:12 2008 +1000 powerpc: fix giveup_vsx to save registers correctly giveup_vsx didn't save the FPU and VMX regsiters. Change it to be like giveup_fpr/altivec which save these registers. Also update call sites where FPU and VMX are already saved to use the original giveup_vsx (renamed to __giveup_vsx). Signed-off-by: Michael Neuling Signed-off-by: Benjamin Herrenschmidt commit 01f4b8b8b8db09b88be7df7e51192e4e678b69d3 Author: Arnd Bergmann Date: Fri Jul 11 00:08:18 2008 +1000 powerpc: support for latencytop Implement save_stack_trace_tsk on powerpc, so that we can run with latencytop. Signed-off-by: Arnd Bergmann Signed-off-by: Benjamin Herrenschmidt commit 443dcac4d89622cbfc61f53523007979879d6f8e Author: Dave Kleikamp Date: Thu Jul 10 01:28:07 2008 +1000 powerpc: Remove unnecessary condition when sanity-checking WIMG bits It is okay for both _PAGE_GUARDED and _PAGE_COHERENT (G and M) to be set in the same pte. In fact, even if that were not the case, there doesn't seem to be any place where G is set without also setting I (_PAGE_NO_CACHE), so the test for I is sufficient as a condition to clear _PAGE_COHERENT when filling the hash table. Signed-off-by: Dave Kleikamp Signed-off-by: Benjamin Herrenschmidt commit 0f47331475201c7785454030a9976c8ac902a35d Author: Nathan Lynch Date: Thu Jul 10 01:06:57 2008 +1000 powerpc: Add PPC_FEATURE_PSERIES_PERFMON_COMPAT Background from Maynard Johnson: As of POWER6, a set of 32 common events is defined that must be supported on all future POWER processors. The main impetus for this compat set is the need to support partition migration, especially from processor P(n) to processor P(n+1), where performance software that's running in the new partition may not be knowledgeable about processor P(n+1). If a performance tool determines it does not support the physical processor, but is told (via the PPC_FEATURE_PSERIES_PERFMON_COMPAT bit) that the processor supports the notion of the PMU compat set, then the performance tool can surface just those events to the user of the tool. PPC_FEATURE_PSERIES_PERFMON_COMPAT indicates that the PMU supports at least this basic subset of events which is compatible across POWER processor lines. Signed-off-by: Nathan Lynch Signed-off-by: Benjamin Herrenschmidt commit fe9e8d53772b5ea9ccf8ea4e8f0f009a6885eb70 Author: Sonny Rao Date: Tue Jul 8 15:45:11 2008 +1000 powerpc: Add driver for Barrier Synchronization Register Adds a character driver for BSR support on IBM POWER systems including Power5 and Power6. The BSR is an optional processor facility not currently implemented by any other processors. It's primary purpose is fast large SMP synchronization. More details on the BSR are in comments to the code which follows. This patch adds BSR driver to pseries_defconfig. Signed-off-by: Sonny Rao Signed-off-by: Joel Schopp Signed-off-by: Benjamin Herrenschmidt commit b3fcaaa8a6359e9ed623ed4c1d2d48c79eed4648 Author: Stephen Rothwell Date: Mon Jul 14 19:25:57 2008 +1000 powerpc: mman.h export fixups Commit ef3d3246a0d06be622867d21af25f997aeeb105f ("powerpc/mm: Add Strong Access Ordering support") in the powerpc/{next,master} tree caused the following in a powerpc allmodconfig build: usr/include/asm/mman.h requires linux/mm.h, which does not exist in exported headers We should not use CONFIG_PPC64 in an unprotected (by __KERNEL__) section of an exported include file and linux/mm.h is not exported. So protect the whole section that is CONFIG_PPC64 with __KERNEL__ and put the two introduced includes in there as well. Signed-off-by: Stephen Rothwell Acked-by: Dave Kleikamp Signed-off-by: Benjamin Herrenschmidt commit 5b0504c0d795d6b0a904ff861c043d7a231f67a4 Merge: 930074b... 77a7636... Author: Benjamin Herrenschmidt Date: Tue Jul 15 11:55:27 2008 +1000 Merge commit 'gcl/gcl-next' commit 930074b6b9c4895d20cdadba5aff97907e28728d Merge: 3fd4473... 2bf3016... Author: Benjamin Herrenschmidt Date: Tue Jul 15 11:54:57 2008 +1000 Merge commit 'jwb/jwb-next' commit 50515af207d410c9f228380e529c56f43c3de0bd Author: David Woodhouse Date: Mon Jul 14 17:50:24 2008 -0700 firmware: Correct dependency on CONFIG_EXTRA_FIRMWARE_DIR When CONFIG_EXTRA_FIRMWARE_DIR gets changed, the filename in the .S file (which uses .incbin to include the binary) needs to change. When we renamed the BUILTIN_FIRMWARE_DIR option to EXTRA_FIRMWARE_DIR, we forgot to update the manual dependency in firmware/Makefile, so it was depending on a non-existent file in include/config/ Signed-off-by: David Woodhouse Signed-off-by: Linus Torvalds commit 5a86102248592e178a9023359ccf7f0e489d8e35 Merge: 85082fd... 751851a... Author: Linus Torvalds Date: Mon Jul 14 16:54:07 2008 -0700 Merge branch 'for-2.6.27' of git://git.infradead.org/users/dwmw2/firmware-2.6 * 'for-2.6.27' of git://git.infradead.org/users/dwmw2/firmware-2.6: (64 commits) firmware: convert sb16_csp driver to use firmware loader exclusively dsp56k: use request_firmware edgeport-ti: use request_firmware() edgeport: use request_firmware() vicam: use request_firmware() dabusb: use request_firmware() cpia2: use request_firmware() ip2: use request_firmware() firmware: convert Ambassador ATM driver to request_firmware() whiteheat: use request_firmware() ti_usb_3410_5052: use request_firmware() emi62: use request_firmware() emi26: use request_firmware() keyspan_pda: use request_firmware() keyspan: use request_firmware() ttusb-budget: use request_firmware() kaweth: use request_firmware() smctr: use request_firmware() firmware: convert ymfpci driver to use firmware loader exclusively firmware: convert maestro3 driver to use firmware loader exclusively ... Fix up trivial conflicts with BKL removal in drivers/char/dsp56k.c and drivers/char/ip2/ip2main.c manually. commit 85082fd7cbe3173198aac0eb5e85ab1edcc6352c Merge: 666484f... 53ffe3b... Author: Linus Torvalds Date: Mon Jul 14 16:06:58 2008 -0700 Merge branch 'for-linus' of master.kernel.org:/home/rmk/linux-2.6-arm * 'for-linus' of master.kernel.org:/home/rmk/linux-2.6-arm: (241 commits) [ARM] 5171/1: ep93xx: fix compilation of modules using clocks [ARM] 5133/2: at91sam9g20 defconfig file [ARM] 5130/4: Support for the at91sam9g20 [ARM] 5160/1: IOP3XX: gpio/gpiolib support [ARM] at91: Fix NAND FLASH timings for at91sam9x evaluation kits. [ARM] 5084/1: zylonite: Register AC97 device [ARM] 5085/2: PXA: Move AC97 over to the new central device declaration model [ARM] 5120/1: pxa: correct platform driver names for PXA25x and PXA27x UDC drivers [ARM] 5147/1: pxaficp_ir: drop pxa_gpio_mode calls, as pin setting [ARM] 5145/1: PXA2xx: provide api to control IrDA pins state [ARM] 5144/1: pxaficp_ir: cleanup includes [ARM] pxa: remove pxa_set_cken() [ARM] pxa: allow clk aliases [ARM] Feroceon: don't disable BPU on boot [ARM] Orion: LED support for HP mv2120 [ARM] Orion: add RD88F5181L-FXO support [ARM] Orion: add RD88F5181L-GE support [ARM] Orion: add Netgear WNR854T support [ARM] s3c2410_defconfig: update for current build [ARM] Acer n30: Minor style and indentation fixes. ... commit 751851af7aae9b8bd5a60b3897209081fbc18b2b Merge: a41eeba... d71792a... Author: David Woodhouse Date: Mon Jul 14 15:49:04 2008 -0700 Merge git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git Conflicts: sound/pci/Kconfig commit 53ffe3b440aa85af6fc4eda09b2d44bcdd312d4d Merge: f000631... cabb352... Author: Russell King Date: Mon Jul 14 21:28:25 2008 +0100 [ARM] Merge most of the PXA work for initial merge This includes PXA work up to the SPI changes for the initial merge, since e172274ccc55d20536fbdceb6131f38e288541e0 depends on the SPI tree being merged. Conflicts: arch/arm/configs/em_x270_defconfig arch/arm/configs/xm_x270_defconfig commit 666484f0250db2e016948d63b3ef33e202e3b8d0 Merge: d18bb9a... ace7f1b... Author: Linus Torvalds Date: Mon Jul 14 15:28:42 2008 -0700 Merge branch 'core/softirq' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip * 'core/softirq' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: softirq: remove irqs_disabled warning from local_bh_enable softirq: remove initialization of static per-cpu variable Remove argument from open_softirq which is always NULL commit d18bb9a548e550f3ced57618e75085fb3f173133 Merge: 4bb0057... 6d72b79... Author: Linus Torvalds Date: Mon Jul 14 15:28:10 2008 -0700 Merge branch 'core/rodata' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip * 'core/rodata' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: move BUG_TABLE into RODATA commit 4bb0057f996b1491f93a64879f4c53c83bc0f0c7 Merge: 116a9fb... 9e4144a... Author: Linus Torvalds Date: Mon Jul 14 15:27:43 2008 -0700 Merge branch 'core/printk' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip * 'core/printk' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: x86, generic: mark early_printk as asmlinkage printk: export console_drivers printk: remember the message level for multi-line output printk: refactor processing of line severity tokens printk: don't prefer unsuited consoles on registration printk: clean up recursion check related static variables namespacecheck: more kernel/printk.c fixes namespacecheck: fix kernel printk.c commit 116a9fb3ed98c19d1ee0c6c55971f5b753949393 Author: Linus Torvalds Date: Mon Jul 14 15:03:25 2008 -0700 x86: MMIOTRACE should not default to on Even the help-text makes it clear that normal people shouldn't enable it. Signed-off-by: Linus Torvalds commit 40e7babbb52b4b57721b9175aed7a14d93bf242f Merge: 948769a... d12c1a3... Author: Linus Torvalds Date: Mon Jul 14 14:55:13 2008 -0700 Merge branch 'core/locking' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip * 'core/locking' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: lockdep: fix kernel/fork.c warning lockdep: fix ftrace irq tracing false positive lockdep: remove duplicate definition of STATIC_LOCKDEP_MAP_INIT lockdep: add lock_class information to lock_chain and output it lockdep: add lock_class information to lock_chain and output it lockdep: output lock_class key instead of address for forward dependency output __mutex_lock_common: use signal_pending_state() mutex-debug: check mutex magic before owner Fixed up conflict in kernel/fork.c manually commit 948769a5ba304ed3329a2f42ee3561f04a0b5692 Merge: e18425a... 773dc8e... Author: Linus Torvalds Date: Mon Jul 14 14:50:49 2008 -0700 Merge branch 'sched/new-API-sched_setscheduler' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip * 'sched/new-API-sched_setscheduler' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: sched: add new API sched_setscheduler_nocheck: add a flag to control access checks commit e18425a0abc8eafa8e98ecffac517bb0c0904f4b Merge: d1794f2... 5806b81... Author: Linus Torvalds Date: Mon Jul 14 14:49:54 2008 -0700 Merge branch 'tracing/for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip * 'tracing/for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (228 commits) ftrace: build fix for ftraced_suspend ftrace: separate out the function enabled variable ftrace: add ftrace_kill_atomic ftrace: use current CPU for function startup ftrace: start wakeup tracing after setting function tracer ftrace: check proper config for preempt type ftrace: trace schedule ftrace: define function trace nop ftrace: move sched_switch enable after markers ftrace: prevent ftrace modifications while being kprobe'd, v2 fix "ftrace: store mcount address in rec->ip" mmiotrace broken in linux-next (8-bit writes only) ftrace: avoid modifying kprobe'd records ftrace: freeze kprobe'd records kprobes: enable clean usage of get_kprobe ftrace: store mcount address in rec->ip ftrace: build fix with gcc 4.3 namespacecheck: fixes ftrace: fix "notrace" filtering priority ftrace: fix printout ... commit d1794f2c5b5817eb79ccc5e00701ca748d1b073a Merge: a41eeba... 2fceef3... Author: Linus Torvalds Date: Mon Jul 14 14:48:31 2008 -0700 Merge branch 'bkl-removal' of git://git.lwn.net/linux-2.6 * 'bkl-removal' of git://git.lwn.net/linux-2.6: (146 commits) IB/umad: BKL is not needed for ib_umad_open() IB/uverbs: BKL is not needed for ib_uverbs_open() bf561-coreb: BKL unneeded for open() Call fasync() functions without the BKL snd/PCM: fasync BKL pushdown ipmi: fasync BKL pushdown ecryptfs: fasync BKL pushdown Bluetooth VHCI: fasync BKL pushdown tty_io: fasync BKL pushdown tun: fasync BKL pushdown i2o: fasync BKL pushdown mpt: fasync BKL pushdown Remove BKL from remote_llseek v2 Make FAT users happier by not deadlocking x86-mce: BKL pushdown vmwatchdog: BKL pushdown vmcp: BKL pushdown via-pmu: BKL pushdown uml-random: BKL pushdown uml-mmapper: BKL pushdown ... commit d71792ac3d48df6693f7b339e02494efc27036c3 Author: Jaswinder Singh Date: Sat Jul 5 18:05:22 2008 +0530 firmware: convert sb16_csp driver to use firmware loader exclusively Signed-off-by: Jaswinder Singh Signed-off-by: David Woodhouse commit 7f127d5ed0da66053482a3e18014c439da3c41d1 Author: Jaswinder Singh Date: Sat Jul 5 15:28:30 2008 +0530 dsp56k: use request_firmware Signed-off-by: Jaswinder Singh Signed-off-by: David Woodhouse commit d12b219a228efe92f0778ed3af21305e65fbb052 Author: Jaswinder Singh Date: Fri Jul 4 23:06:09 2008 +0530 edgeport-ti: use request_firmware() Firmware blob looks like this... uint8_t MajorVersion uint8_t MinorVersion __le16 BuildNumber uint8_t data[] Signed-off-by: Jaswinder Singh Signed-off-by: David Woodhouse commit 5b9ea9322605da09d6f7119f03f71cc52b044911 Author: Jaswinder Singh Date: Thu Jul 3 17:00:23 2008 +0530 edgeport: use request_firmware() Version number provided in first HEX record. Signed-off-by: Jaswinder Singh Signed-off-by: David Woodhouse commit fb54be8755d386008bfadb7fc8ff89451fa3a9c9 Author: Jaswinder Singh Date: Fri Jun 27 19:50:40 2008 +0530 vicam: use request_firmware() Although it wasn't actually using ihex records before, we use the Intel HEX record format for this firmware -- because that gives us a simple way to split it into separate chunks internally as we need, without loading each part as a separate file. Signed-off-by: Jaswinder Singh Signed-off-by: David Woodhouse commit c466774636b3cc43c2c304b44e52974d9d53f3e0 Author: David Woodhouse Date: Mon Jun 23 11:41:04 2008 +0100 dabusb: use request_firmware() Signed-off-by: David Woodhouse commit 04a33e406a062cd1bb55014ee17a3558109a2d74 Author: David Woodhouse Date: Mon Jun 23 11:36:23 2008 +0100 cpia2: use request_firmware() Thanks for Jaswinder Singh for converting the firmware blob itself to ihex. Signed-off-by: David Woodhouse commit c300bd2fb583afb6d68804afd38bc90b31310d95 Author: Stephen Rothwell Date: Thu Jul 10 02:16:44 2008 +0200 PCI: include linux/pm_wakeup.h for device_set_wakeup_capable drivers/pci/pci.c needs pm_wakeup.h since it uses device_set_wakup_capable(). The latter also needs to be stubbed out for !CONFIG_PM. Signed-off-by: Stephen Rothwell Signed-off-by: Rafael J. Wysocki Signed-off-by: Jesse Barnes commit 2fceef397f9880b212a74c418290ce69e7ac00eb Merge: feae1ef... bce7f79... Author: Jonathan Corbet Date: Mon Jul 14 15:29:34 2008 -0600 Merge commit 'v2.6.26' into bkl-removal commit c157dfa3e4aea5775389f2f4d53c040bc8813af1 Author: Rafael J. Wysocki Date: Sun Jul 13 22:45:06 2008 +0200 PCI PM: Fix pci_prepare_to_sleep The recently introduced pci_prepare_to_sleep() needs the following fix, because there are systems which are not power manageable by ACPI (ie. ACPI doesn't provide methods to put the device into low power states and back), but require ACPI hooks to be executed for wake-up to work. Signed-off-by: Rafael J. Wysocki Signed-off-by: Jesse Barnes commit beef3129b3afb74817acff72fda4a9d951e3973e Author: Matthew Wilcox Date: Fri Jul 11 15:21:17 2008 -0600 x86/PCI: Fix PCI config space for domains > 0 John Keller reports that PCI config space access is broken on machines with more than one domain. conf1 accesses only work for domain 0, so make sure we check the domain number in the raw routines before trying conf1. Reported-by: John Keller Signed-off-by: Matthew Wilcox Signed-off-by: Jesse Barnes commit a41eebab7537890409ea9dfe0fcda9b5fbdb090d Author: Steven Rostedt Date: Mon Jul 14 16:41:12 2008 -0400 ftrace: document updates The following updates were recommended by Elias Oltmanns and Randy Dunlap. [ updates based on Andrew Morton's comments are still to come. ] Signed-off-by: Steven Rostedt Signed-off-by: Linus Torvalds commit e75206517504461778c283b942440ef312e437d5 Author: Louis Rilling Date: Thu Jun 12 17:26:47 2008 +0200 configfs: call drop_link() to cleanup after create_link() failure When allow_link() succeeds but create_link() fails, the subsystem is not informed of the failure. This patch fixes this by calling drop_link() on create_link() failures. Signed-off-by: Louis Rilling Signed-off-by: Joel Becker commit 11c3b79218390a139f2d474ee1e983a672d5839a Author: Joel Becker Date: Thu Jun 12 14:00:18 2008 -0700 configfs: Allow ->make_item() and ->make_group() to return detailed errors. The configfs operations ->make_item() and ->make_group() currently return a new item/group. A return of NULL signifies an error. Because of this, -ENOMEM is the only return code bubbled up the stack. Multiple folks have requested the ability to return specific error codes when these operations fail. This patch adds that ability by changing the ->make_item/group() ops to return an int. Also updated are the in-kernel users of configfs. Signed-off-by: Joel Becker commit 6d8344baee99402de58b5fa5dfea197242955c15 Author: Louis Rilling Date: Mon Jun 16 19:01:02 2008 +0200 configfs: Fix failing mkdir() making racing rmdir() fail When fixing the rename() vs rmdir() deadlock, we stopped locking default groups' inodes in configfs_detach_prep(), letting racing mkdir() in default groups proceed concurrently. This enables races like below happen, which leads to a failing mkdir() making rmdir() fail, despite the group to remove having no user-created directory under it in the end. process A: process B: /* PWD=A/B */ mkdir("C") make_item("C") attach_group("C") rmdir("A") detach_prep("A") detach_prep("B") error because of "C" return -ENOTEMPTY attach_group("C/D") error (eg -ENOMEM) return -ENOMEM This patch prevents such scenarii by making rmdir() wait as long as detach_prep() fails because a racing mkdir() is in the middle of attach_group(). To achieve this, mkdir() sets a flag CONFIGFS_USET_IN_MKDIR in parent's configfs_dirent before calling attach_group(), and clears the flag once attach_group() is done. detach_prep() fails with -EAGAIN whenever the flag is hit and returns the guilty inode's mutex so that rmdir() can wait on it. Signed-off-by: Louis Rilling Signed-off-by: Joel Becker commit b3e76af87441fc36eef3516d73ab2314e7b2d911 Author: Louis Rilling Date: Mon Jun 16 19:01:01 2008 +0200 configfs: Fix deadlock with racing rmdir() and rename() This patch fixes the deadlock between racing sys_rename() and configfs_rmdir(). The idea is to avoid locking i_mutexes of default groups in configfs_detach_prep(), and rely instead on the new configfs_dirent_lock to protect against configfs_dirent's linkage mutations. To ensure that an mkdir() racing with rmdir() will not create new items in a to-be-removed default group, we make configfs_new_dirent() check for the CONFIGFS_USET_DROPPING flag right before linking the new dirent, and return error if the flag is set. This makes racing mkdir()/symlink()/dir_open() fail in places where errors could already happen, resp. in (attach_item()|attach_group())/create_link()/new_dirent(). configfs_depend() remains safe since it locks all the path from configfs root, and is thus mutually exclusive with rmdir(). An advantage of this is that now detach_groups() unconditionnaly takes the default groups i_mutex, which makes it more consistent with populate_groups(). Signed-off-by: Louis Rilling Signed-off-by: Joel Becker commit 107ed40bd070df5e4a0a012042c45c40963dc574 Author: Louis Rilling Date: Mon Jun 16 19:01:00 2008 +0200 configfs: Make configfs_new_dirent() return error code instead of NULL This patch makes configfs_new_dirent return negative error code instead of NULL, which will be useful in the next patch to differentiate ENOMEM from ENOENT. Signed-off-by: Louis Rilling Signed-off-by: Joel Becker commit 5301a77da2da1e4c22573e0e8d394a653b8ad9f9 Author: Louis Rilling Date: Mon Jun 16 19:00:59 2008 +0200 configfs: Protect configfs_dirent s_links list mutations Symlinks to a config_item are listed under its configfs_dirent s_links, but the list mutations are not protected by any common lock. This patch uses the configfs_dirent_lock spinlock to add the necessary protection. Note: we should also protect the list_empty() test in configfs_detach_prep() but 1/ the lock should not be released immediately because nothing would prevent the list from being filled after a successful list_empty() test, making the problem tricky, 2/ this will be solved by the rmdir() vs rename() deadlock bugfix. Signed-off-by: Louis Rilling Signed-off-by: Joel Becker commit 6f61076406251626be39651d114fac412b1e0c39 Author: Louis Rilling Date: Mon Jun 16 19:00:58 2008 +0200 configfs: Introduce configfs_dirent_lock This patch introduces configfs_dirent_lock spinlock to protect configfs_dirent traversals against linkage mutations (add/del/move). This will allow configfs_detach_prep() to avoid locking i_mutexes. Locking rules for configfs_dirent linkage mutations are the same plus the requirement of taking configfs_dirent_lock. For configfs_dirent walking, one can either take appropriate i_mutex as before, or take configfs_dirent_lock. The spinlock could actually be a mutex, but the critical sections are either O(1) or should not be too long (default groups walking in last patch). ChangeLog: - Clarify the comment on configfs_dirent_lock usage - Move sd->s_element init before linking the new dirent - In lseek(), do not release configfs_dirent_lock before the dirent is relinked. Signed-off-by: Louis Rilling Signed-off-by: Joel Becker commit fe9f387740ac7cb3b7c2fffa76807e997e6c6292 Author: Joel Becker Date: Thu Jun 12 22:39:18 2008 -0700 ocfs2: Don't snprintf() without a format. Some system files are per-slot. Their names include the slot number. ocfs2_sprintf_system_inode_name() uses the system inode definitions to fill in the slot number with snprintf(). For global system files, there is no node number, and the name was printed as a format with no arguments. -Wformat-nonliteral and -Wformat-security don't like this. Instead, use a static "%s" format and the name as the argument. Signed-off-by: Joel Becker commit e407e39783a7206d20b3e9961aedf272de966e31 Author: Joel Becker Date: Thu Jun 12 22:35:39 2008 -0700 ocfs2: Fix CONFIG_OCFS2_DEBUG_FS #ifdefs A couple places use OCFS2_DEBUG_FS where they really mean CONFIG_OCFS2_DEBUG_FS. Reported-by: Robert P. J. Day Signed-off-by: Joel Becker commit 461c6a30eca6f25add1dadb9fd8a1d8e89a6e627 Author: Sunil Mushran Date: Mon May 19 16:23:37 2008 -0700 ocfs2/net: Silence build warnings on sparc64 suseconds_t is type long on most arches except sparc64 where it is type int. This patch silences the following warnings that are generated when building on it. netdebug.c: In function 'nst_seq_show': netdebug.c:152: warning: format '%lu' expects type 'long unsigned int', but argument 13 has type 'suseconds_t' netdebug.c:152: warning: format '%lu' expects type 'long unsigned int', but argument 15 has type 'suseconds_t' netdebug.c:152: warning: format '%lu' expects type 'long unsigned int', but argument 17 has type 'suseconds_t' netdebug.c: In function 'sc_seq_show': netdebug.c:332: warning: format '%lu' expects type 'long unsigned int', but argument 19 has type 'suseconds_t' netdebug.c:332: warning: format '%lu' expects type 'long unsigned int', but argument 21 has type 'suseconds_t' netdebug.c:332: warning: format '%lu' expects type 'long unsigned int', but argument 23 has type 'suseconds_t' netdebug.c:332: warning: format '%lu' expects type 'long unsigned int', but argument 25 has type 'suseconds_t' netdebug.c:332: warning: format '%lu' expects type 'long unsigned int', but argument 27 has type 'suseconds_t' netdebug.c:332: warning: format '%lu' expects type 'long unsigned int', but argument 29 has type 'suseconds_t' Signed-off-by: Sunil Mushran Signed-off-by: Mark Fasheh commit 01af482037d32c215aab208a0b110ffe6fd782c0 Author: Wengang Wang Date: Tue Jun 10 14:24:48 2008 +0800 ocfs2: Handle error during journal load This patch ensures the mount fails if the fs is unable to load the journal. Signed-off-by: Wengang Wang Acked-by: Sunil Mushran Signed-off-by: Mark Fasheh commit 56753bd3b9220f6f2477eb1cf97f40c24e0a4c91 Author: Sunil Mushran Date: Mon Jun 9 11:24:41 2008 -0700 ocfs2: Silence an error message in ocfs2_file_aio_read() This patch silences an EINVAL error message in ocfs2_file_aio_read() that is always due to a user error. Signed-off-by: Sunil Mushran Signed-off-by: Mark Fasheh commit 7600c72b75bab374ad39b2a4799a0728579a8e2f Author: Akinobu Mita Date: Mon Jun 9 16:34:23 2008 -0700 ocfs2: use simple_read_from_buffer() Signed-off-by: Akinobu Mita Acked-by: Joel Becker Signed-off-by: Andrew Morton Signed-off-by: Mark Fasheh commit dd25e55ea133b14678cfaa9e205b082b24b26dbc Author: Randy Dunlap Date: Wed May 28 14:41:00 2008 -0700 ocfs2: fix printk format warnings with OCFS2_FS_STATS=n Fix printk format warnings when OCFS2_FS_STATS=n: linux-next-20080528/fs/ocfs2/dlmglue.c: In function 'ocfs2_dlm_seq_show': linux-next-20080528/fs/ocfs2/dlmglue.c:2623: warning: format '%llu' expects type 'long long unsigned int', but argument 3 has type 'int' linux-next-20080528/fs/ocfs2/dlmglue.c:2623: warning: format '%llu' expects type 'long long unsigned int', but argument 4 has type 'int' linux-next-20080528/fs/ocfs2/dlmglue.c:2623: warning: format '%llu' expects type 'long long unsigned int', but argument 7 has type 'int' linux-next-20080528/fs/ocfs2/dlmglue.c:2623: warning: format '%llu' expects type 'long long unsigned int', but argument 8 has type 'int' Signed-off-by: Randy Dunlap Signed-off-by: Mark Fasheh commit 8ddb7b004dfa1832a750e199df8bff4b75b73565 Author: Sunil Mushran Date: Tue May 13 13:45:15 2008 -0700 [PATCH 2/2] ocfs2: Instrument fs cluster locks This patch adds code to track the number of times the fs takes various cluster locks as well as the times associated with it. The information is made available to users via debugfs. This patch was originally written by Jan Kara . Signed-off-by: Sunil Mushran Signed-off-by: Mark Fasheh commit ce7231e92dac381f6e4f9cfdfdf9e0ea055223ad Author: Sunil Mushran Date: Tue May 13 13:45:14 2008 -0700 [PATCH 1/2] ocfs2: Add CONFIG_OCFS2_FS_STATS config option This patch adds config option CONFIG_OCFS2_FS_STATS to allow building the fs with instrumentation enabled. An upcoming patch will provide support to instrument cluster locking, which is a crucial overhead in a cluster file system. This config option allows users to avoid the cpu and memory overhead that is involved in gathering such statistics. Signed-off-by: Sunil Mushran Signed-off-by: Mark Fasheh commit 17489c058e8c63ab5ebdc67ab52ca70d1bc270b1 Merge: a3da5bf... 873a6ed... Author: Linus Torvalds Date: Mon Jul 14 13:54:49 2008 -0700 Merge branch 'sched/for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip * 'sched/for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (76 commits) sched_clock: and multiplier for TSC to gtod drift sched_clock: record TSC after gtod sched_clock: only update deltas with local reads. sched_clock: fix calculation of other CPU sched_clock: stop maximum check on NO HZ sched_clock: widen the max and min time sched_clock: record from last tick sched: fix accounting in task delay accounting & migration sched: add avg-overlap support to RT tasks sched: terminate newidle balancing once at least one task has moved over sched: fix warning sched: build fix sched: sched_clock_cpu() based cpu_clock(), lockdep fix sched: export cpu_clock sched: make sched_{rt,fair}.c ifdefs more readable sched: bias effective_load() error towards failing wake_affine(). sched: incremental effective_load() sched: correct wakeup weight calculations sched: fix mult overflow sched: update shares on wakeup ... commit a3da5bf84a97d48cfaf66c6842470fc403da5121 Merge: 3b23e66... d59fdcf... Author: Linus Torvalds Date: Mon Jul 14 13:43:24 2008 -0700 Merge branch 'x86/for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip * 'x86/for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (821 commits) x86: make 64bit hpet_set_mapping to use ioremap too, v2 x86: get x86_phys_bits early x86: max_low_pfn_mapped fix #4 x86: change _node_to_cpumask_ptr to return const ptr x86: I/O APIC: remove an IRQ2-mask hack x86: fix numaq_tsc_disable calling x86, e820: remove end_user_pfn x86: max_low_pfn_mapped fix, #3 x86: max_low_pfn_mapped fix, #2 x86: max_low_pfn_mapped fix, #1 x86_64: fix delayed signals x86: remove conflicting nx6325 and nx6125 quirks x86: Recover timer_ack lost in the merge of the NMI watchdog x86: I/O APIC: Never configure IRQ2 x86: L-APIC: Always fully configure IRQ0 x86: L-APIC: Set IRQ0 as edge-triggered x86: merge dwarf2 headers x86: use AS_CFI instead of UNWIND_INFO x86: use ignore macro instead of hash comment x86: use matching CFI_ENDPROC ... commit 3b23e665b68387f5ee7b21f7b75ceea4d9acae4a Merge: 6c118e4... 090657e... Author: Linus Torvalds Date: Mon Jul 14 13:40:42 2008 -0700 Merge git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 * git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6: (50 commits) crypto: ixp4xx - Select CRYPTO_AUTHENC crypto: s390 - Respect STFL bit crypto: talitos - Add support for sha256 and md5 variants crypto: hash - Move ahash functions into crypto/hash.h crypto: crc32c - Add ahash implementation crypto: hash - Added scatter list walking helper crypto: prng - Deterministic CPRNG crypto: hash - Removed vestigial ahash fields crypto: hash - Fixed digest size check crypto: rmd - sparse annotations crypto: rmd128 - sparse annotations crypto: camellia - Use kernel-provided bitops, unaligned access helpers crypto: talitos - Use proper form for algorithm driver names crypto: talitos - Add support for 3des crypto: padlock - Make module loading quieter when hardware isn't available crypto: tcrpyt - Remove unnecessary kmap/kunmap calls crypto: ixp4xx - Hardware crypto support for IXP4xx CPUs crypto: talitos - Freescale integrated security engine (SEC) driver [CRYPTO] tcrypt: Add self test for des3_ebe cipher operating in cbc mode [CRYPTO] rmd: Use pointer form of endian swapping operations ... commit 4735c98f8447acb1c8977e2b8024640f7bf36dd6 Author: Jean Delvare Date: Mon Jul 14 22:38:36 2008 +0200 i2c: Add detection capability to new-style drivers Add a mechanism to let new-style i2c drivers optionally autodetect devices they would support on selected buses and ask i2c-core to instantiate them. This is a replacement for legacy i2c drivers, much cleaner. Where drivers had to implement both a legacy i2c_driver and a new-style i2c_driver so far, this mechanism makes it possible to get rid of the legacy i2c_driver and implement both enumerated and detected device support with just one (new-style) i2c_driver. Here is a quick conversion guide for these drivers, step by step: * Delete the legacy driver definition, registration and removal. Delete the attach_adapter and detach_client methods of the legacy driver. * Change the prototype of the legacy detect function from static int foo_detect(struct i2c_adapter *adapter, int address, int kind); to static int foo_detect(struct i2c_client *client, int kind, struct i2c_board_info *info); * Set the new-style driver detect callback to this new function, and set its address_data to &addr_data (addr_data is generally provided by I2C_CLIENT_INSMOD.) * Add the appropriate class to the new-style driver. This is typically the class the legacy attach_adapter method was checking for. Class checking is now mandatory (done by i2c-core.) See for the list of available classes. * Remove the i2c_client allocation and freeing from the detect function. A pre-allocated client is now handed to you by i2c-core, and is freed automatically. * Make the detect function fill the type field of the i2c_board_info structure it was passed as a parameter, and return 0, on success. If the detection fails, return -ENODEV. Signed-off-by: Jean Delvare commit 8508159e2f3b82bf109f0ec77bcbd8ff3f3a7e17 Author: Jean Delvare Date: Mon Jul 14 22:38:36 2008 +0200 i2c: Call client_unregister for new-style devices too We call adapter->client_register for both legacy and new-style i2c devices, however we only call adapter->client_unregister for legacy drivers. This doesn't make much sense. Usually, drivers will undo in client_unregister what they did in client_register, so we should call neither or both for every given i2c device. In order to ease the transition from legacy to new-style devices, it seems preferable to actually call both. Signed-off-by: Jean Delvare Cc: David Brownell commit f741f673298b03b92d46e30b0b6fd0e960423665 Author: Jean Delvare Date: Mon Jul 14 22:38:36 2008 +0200 i2c: Clean up old chip drivers Clean up old i2c chip drivers: * Name the i2c_client "client" instead of "new_client". * Drop useless initializations to 0. Signed-off-by: Jean Delvare commit b1204e6ec16468ebf89d9d818bfe425ca7adcdf3 Author: Sean MacLennan Date: Mon Jul 14 22:38:36 2008 +0200 i2c-ibm_iic: Register child nodes This patch completes the conversion of the IBM IIC driver to an of-platform driver. It removes the index from the IBM IIC driver and makes it an unnumbered driver. It then calls of_register_i2c_devices to properly register all the child nodes in the DTS. Signed-off-by: Sean MacLennan Signed-off-by: Jean Delvare commit 2b7a5056a0a7ff17d5d2004c29c852a92a6bd632 Author: Wolfram Sang Date: Mon Jul 14 22:38:35 2008 +0200 i2c: New-style EEPROM driver using device IDs Add a new-style driver for most I2C EEPROMs, giving sysfs read/write access to their data. Tested with various chips and clock rates. Signed-off-by: Wolfram Sang Signed-off-by: Jean Delvare commit e9ca9eb9d7fc7bf3dc3cec5ba7edb089c4625f7b Author: Jon Smirl Date: Mon Jul 14 22:38:35 2008 +0200 i2c: Export the i2c_bus_type symbol Export the root of the i2c bus so that PowerPC device tree code can iterate over devices on the i2c bus. Signed-off-by: Jon Smirl Signed-off-by: Jean Delvare commit f09f71b24e77a2f2b4e5c98311c8804fc61ad8bc Author: Manuel Lauss Date: Mon Jul 14 22:38:34 2008 +0200 i2c-au1550: Fix PM support Fix driver power management: - suspend the PSC while driver is idle. - move PSC init/deinit to separate functions, as PSC must be initialized/shutdown on resume/suspend. Signed-off-by: Manuel Lauss Signed-off-by: Jean Delvare commit f6a7110520037ba786f17b53790c6eb8a3d4ef55 Author: Jean Delvare Date: Mon Jul 14 22:38:34 2008 +0200 i2c-dev: Delete empty detach_client callback Implementing detach_client is optional, so there is no point in an empty implementation. Likewise, i2c driver IDs are optional, and we don't need one. Signed-off-by: Jean Delvare commit 954a99307f256f1badd751a2e128c09af235c317 Author: Jean Delvare Date: Mon Jul 14 22:38:34 2008 +0200 i2c: Drop stray references to lm_sensors Signed-off-by: Jean Delvare commit 54fb4a05af0a4b814e6716cfdf3fa97fc6be7a32 Author: Jean Delvare Date: Mon Jul 14 22:38:33 2008 +0200 i2c: Check for ACPI resource conflicts Check for ACPI resource conflicts in i2c bus drivers. I've included all recent SMBus master drivers for PC hardware. I've voluntarily left out: * Drivers that don't run on PCs: they can't conflict with ACPI. * Bit-banged bus device drivers: it's very unlikely that ACPI would deal with such buses. Signed-off-by: Jean Delvare commit 2373c1801afd06d3a206376902b39a98458c9cfb Author: Manuel Lauss Date: Mon Jul 14 22:38:33 2008 +0200 i2c-ocores: basic PM support Basic PM support: reinit the core on resume, disable it on suspend. Signed-off-by: Manuel Lauss Acked-by: Peter Korsgaard Signed-off-by: Jean Delvare commit 392a0408fdc4c9069c32a9a02b0088eae76c4618 Author: Maciej W. Rozycki Date: Mon Jul 14 22:38:33 2008 +0200 i2c-sibyte: SWARM I2C board initialization The standard rtc-m41t80.c driver cannot be used with the SWARM as it is, because the board does not provide setup information for the I2C core. As a result the bus and the address to probe for the M41T80 chip is not known. Here is a set of changes that fix the problem: 1. swarm-i2c.c -- SWARM I2C board setup, currently for the M41T80 chip on the bus #1 only (there is a MAX6654 temperature sensor on the bus #0 which may be added in the future if we have a driver for that chip). 2. The i2c-sibyte.c BCM1250A SMBus controller driver now registers its buses as numbered so that board setup is correctly applied. Signed-off-by: Maciej W. Rozycki Signed-off-by: Jean Delvare commit cf898dc5e9dfd1487b28ca0176b68722f05d4d48 Author: Jean Delvare Date: Mon Jul 14 22:38:33 2008 +0200 i2c-i801: Fix handling of error conditions Move the check of pre-transaction and post-transaction conditions to separate functions, and adjust them a bit. Having dedicated functions for that ensures that errors are handled in a consistent way. Bit HOST_BUSY of the status register is read-only, so writing to it is certainly not going to clear it. If this bit is set then we simply don't want to start the transaction, as it means that somebody else (ACPI, SMM?) is already using the controller. Signed-off-by: Jean Delvare commit 2b73809d06649fe6c7f4294b051ca4934a34bb91 Author: Jean Delvare Date: Mon Jul 14 22:38:32 2008 +0200 i2c-i801: Rename local variable temp to status "temp" isn't a terribly well chosen name for a local variable. Signed-off-by: Jean Delvare commit dcb5c9239de8d3ff1c663e75f0f1c75bcb21ee20 Author: Jean Delvare Date: Mon Jul 14 22:38:32 2008 +0200 i2c-i801: Properly report bus arbitration loss Bit BUS_ERR of the status register means that the ICH host controller lost the arbitration. Report this event as such. Signed-off-by: Jean Delvare commit 90df2cb1c8822ef8d06a2b30627e7a810218b0dd Author: Jean Delvare Date: Mon Jul 14 22:38:32 2008 +0200 i2c-i801: Remove verbose debugging messages Dumping the register values before and after every transaction was useful during driver development but now it's only spamming the log. Signed-off-by: Jean Delvare commit e3e7fc3c401a5d53f0599a357b3cf65d6a4f52e3 Author: Jean Delvare Date: Mon Jul 14 22:38:31 2008 +0200 i2c-algo-pcf: Drop unused struct members Struct members udelay and timeout aren't used anywhere, so drop them. Signed-off-by: Jean Delvare Acked-by: Eric Brower commit 0573d11b2bbd0e4774f33f4c1959c1939c055e96 Author: Eric Brower Date: Mon Jul 14 22:38:31 2008 +0200 i2c-algo-pcf: Multi-master lost-arbitration improvement Improve lost-arbitration handling of PCF8584. This is necessary for support of a currently out-of-kernel driver for Sun Microsystems E250 environmental management; perhaps others. Signed-off-by: Eric Brower Acked-by: Dan Smolik Signed-off-by: Jean Delvare commit 8a56ce1033073657572bd993595a56498baa4800 Author: David Brownell Date: Mon Jul 14 22:38:31 2008 +0200 i2c: Deprecate the legacy gpio drivers The legacy pcf8574 and pcf8575 drivers should be avoided on systems using the new gpiolib code, and generally deprecated in the same way the legacy pca9539 driver is deprecated. Also, correct the pca9539 deprecation to match the current name of the preferred driver: pca953x, supporting several more chips. Signed-off-by: David Brownell Signed-off-by: Jean Delvare commit 47a9b1379a5ebc8b00ba8635d1d3885fc0d51739 Author: Uli Luckas Date: Mon Jul 14 22:38:30 2008 +0200 i2c-pxa: Initialize early Initialize the pxa i2c bus during subsystem initialization to make it available during driver initialization (e.g. display powerup for pxafb). Signed-off-by: Uli Luckas Signed-off-by: Jean Delvare commit d3dc685eb5ef64aa695dabb74f00440ec3ab6796 Author: Stefan Roese Date: Mon Jul 14 22:38:30 2008 +0200 i2c-ibm_iic: Enable driver for all PPC4xx variants in arch/powerpc Enable the IBM I2C driver for all PPC4xx variants by adding "ibm,iic" to the compatible list. This way all currently available arch/powerpc 4xx ports can make use of this driver without any changes. Additionally all "other" compatible entries are removed since they are not needed anymore. Currently all 4xx PPC's have the same compatible I2C macro. If at some time an incompatibility is detected we can take care of this with an additional property. Signed-off-by: Stefan Roese Acked-by: Josh Boyer Signed-off-by: Jean Delvare commit e6c3de6c146d2513332c581433caca6e5cae62bf Author: Stefan Roese Date: Mon Jul 14 22:38:30 2008 +0200 i2c-ibm_iic: Remove deprecated OCP style part The deprecated OCP style driver part is used by the "old" arch/ppc platform. This platform is scheduled for removal in June/July this year. This patch now removes the OCP driver part from the IBM I2C driver. Signed-off-by: Stefan Roese Signed-off-by: Jean Delvare commit e0457442fd522107204da14a2dc2cbbb5dcac5f6 Author: Jean Delvare Date: Mon Jul 14 22:38:30 2008 +0200 i2c: Simplify i2c_device_probe i2c_driver.id_table is mandatory now, so we can simplify i2c_device_probe() a bit. Signed-off-by: Jean Delvare commit 1b4dff9cd37d430bc76112396e92bb3552f37ccd Author: Jean Delvare Date: Mon Jul 14 22:38:29 2008 +0200 i2c/eeprom: Fall back to SMBus read word transactions When I2C block reads are not supported by the underlying adapter, use SMBus read word transactions instead of consecutive byte reads. Reasons for this change are: * The consecutive byte read approach is not safe on multi-master buses. * While consecutive byte reads have less overhead if you only count the bytes on the bus, it takes more than twice as many transactions as with SMBus read word transactions, and each transaction has a cost: taking and releasing the adapter mutex, and for polling drivers, waiting for the transaction to complete. This change yields a significant performance boost at HZ=250 with EEPROMs on an Intel 82801 bus (basically twice as fast.) SMBus read word transactions are widely supported so I don't expect compatibility issues. Signed-off-by: Jean Delvare commit d4653bf946a5856a17342cd47c47d10b16b1cc22 Author: Jean Delvare Date: Mon Jul 14 22:38:29 2008 +0200 i2c/eeprom: Only probe buses with DDC or SPD class The eeprom driver shouldn't probe i2c buses which don't want to be probed. Signed-off-by: Jean Delvare commit 3401b2fff38fbb8b73ea6bcc69a8370ae5d2a7a0 Author: Jean Delvare Date: Mon Jul 14 22:38:29 2008 +0200 i2c: Let bus drivers add SPD to their class Let general purpose I2C/SMBus bus drivers add SPD to their class. Once this is done, we will be able to tell the eeprom driver to only probe for SPD EEPROMs and similar on these buses. Note that I took a conservative approach here, adding I2C_CLASS_SPD to many drivers that have no idea whether they can host SPD EEPROMs or not. This is to make sure that the eeprom driver doesn't stop probing buses where SPD EEPROMs or equivalent live. So, bus driver maintainers and users should feel free to remove the SPD class from drivers those buses never have SPD EEPROMs or they don't want the eeprom driver to bind to them. Likewise, feel free to add the SPD class to any bus driver I might have missed. Signed-off-by: Jean Delvare commit c1b6b4f2342d073698dfc2547240c35045a1d00e Author: Jean Delvare Date: Mon Jul 14 22:38:28 2008 +0200 i2c: Let framebuffer drivers set their I2C bus class to DDC Let framebuffer drivers set their I2C bus class to DDC. Once this is done, we will be able to tell the eeprom driver to only probe for EDID EEPROMs on these buses. Signed-off-by: Jean Delvare commit 0d2b405a628309310b4fc02b26d713b855ad5f68 Author: Jochen Friedrich Date: Mon Jul 14 22:38:28 2008 +0200 i2c: Add MAINTAINER entry for i2c-cpm Signed-off-by: Jochen Friedrich Signed-off-by: Jean Delvare commit 3b270804a9345e4a0c493889f98e838692f7bc9b Author: Wolfram Sang Date: Mon Jul 14 22:38:28 2008 +0200 i2c-cpm: Bugfixes Bugfixes to the i2c-cpm driver - enable correct interrupts (I2CER_TXE instead of I2CER_BUSY) - replace forgotten iic with i2c - prefix debug-output on init with 0x and add frequency Signed-off-by: Wolfram Sang Acked-by: Jochen Friedrich Signed-off-by: Jean Delvare commit 61045dbe9d8d81b1bae4dc1e9482d389ca99edc1 Author: Jochen Friedrich Date: Mon Jul 14 22:38:27 2008 +0200 i2c: Add support for I2C bus on Freescale CPM1/CPM2 controllers This driver uses the port of 2.4 code from Vitaly Bordug and the actual algorithm used by the i2c driver of the DBox code on cvs.tuxboc.org from Felix Domke (tmbinc@gmx.net) and Gillem (htoa@gmx.net) converted to an of_platform_driver. Tested on CPM1 (MPC823 on dbox2 hardware) and CPM2 (MPC8272). Signed-off-by: Jochen Friedrich Tested-by: Wolfram Sang Signed-off-by: Jean Delvare commit 77e38bffe0fcaa48f0be68eaa1de4a59d1fd93ad Author: Alan Cox Date: Mon Jul 14 22:38:27 2008 +0200 i2c: Push ioctl BKL down into the i2c code This is part of the effort to get rid of the BKL. [JD: In fact i2c-dev doesn't need more locking than is already done for the other i2c drivers, so we can simply switch to unlocked_ioctl.] Signed-off-by: Alan Cox Signed-off-by: Jean Delvare commit 5bc1200852c3dfc312481f57622f48b289ac802e Author: Alek Du Date: Mon Jul 14 22:38:27 2008 +0200 i2c: Add Intel SCH SMBus support New i2c bus driver for the Intel SCH chipsets (AF82US15W, AF82US15L, AF82UL11L). Signed-off-by: Alek Du Signed-off-by: Jean Delvare commit f7050bd716047a4dfec7d061e28df7ffd6815ebd Author: Jean Delvare Date: Mon Jul 14 22:38:26 2008 +0200 i2c: Simplify i2c_del_driver() i2c_del_driver() can be simplified a bit. Signed-off-by: Jean Delvare commit 6a03cd931196673634b58c955d2f9d42da602045 Author: Matthias Kaehlcke Date: Mon Jul 14 22:38:26 2008 +0200 i2c: Use list_for_each_entry_safe Use list_for_each_entry_safe() in i2c_del_adapter() and i2c_del_driver(). Signed-off-by: Matthias Kaehlcke Signed-off-by: Jean Delvare commit 7650da023eb05426812bbf8999b69dc93fee67ab Author: Wolfram Sang Date: Mon Jul 14 22:38:26 2008 +0200 i2c-pca-platform: Fix error code Fix errorcode to be more descriptive when ioremap fails. Signed-off-by: Wolfram Sang Signed-off-by: Jean Delvare commit c80ebe7987931ec4e80abc33ebf8aa2dad0d3763 Author: Wolfram Sang Date: Mon Jul 14 22:38:26 2008 +0200 i2c-pca-algo: Fix error code Give a more concrete error code, when the bus is not idle. Signed-off-by: Wolfram Sang Signed-off-by: Jean Delvare commit ac7fc4fb2b6a126af8d07f46500440c9641976cf Author: Jean Delvare Date: Mon Jul 14 22:38:25 2008 +0200 i2c: Consistently reject unsupported transactions Many PC SMBus host controller drivers don't properly handle the case where they are requested to achieve a transaction they do not support. Update them so that the consistently print a warning message and return a single error value in this case. Signed-off-by: Jean Delvare commit fa63cd56d2f09806169307d761e8f430e23bc09b Author: Jean Delvare Date: Mon Jul 14 22:38:25 2008 +0200 i2c-piix4: Various cleanups and minor fixes The i2c-piix4 driver was used recently as a model to write a new SMBus host controller driver and this made me realize that the code of this old driver wasn't exactly good. So, here are many cleanups and minor fixes to this driver, so that these minor mistakes aren't duplicated again: * Delete unused structure. * Delete needless forward function declaration. * Properly announce the SMBus host controller as we find it. * Spell it SMBus not SMB. * Return -EBUSY instead of -ENODEV when the I/O region is already in use. * Drop useless masks on the 7-bit address and the R/W bit. * Reject block transaction requests with an invalid block length. * Check and report block transaction replies with an invalid block length. * Delete a useless comment. Signed-off-by: Jean Delvare commit 97140342e69d479a3ad82bfd4c154c0b08fe3eea Author: David Brownell Date: Mon Jul 14 22:38:25 2008 +0200 i2c: Bus drivers return -Errno not -1 Tighten error paths used by various i2c adapters (mostly x86) so they return real fault/errno codes instead of a "-1" (which is most often interpreted as "-EPERM"). Build tested, with eyeball review. One minor initial goal is to have adapters consistently return the code "-ENXIO" when addressing a device doesn't get an ACK response, at least in the probe paths where they are already good at stifling related logspam. Signed-off-by: David Brownell Signed-off-by: Jean Delvare commit 6ea438ec8da4ec56bf415f5ea360e6b0cb59c6c3 Author: David Brownell Date: Mon Jul 14 22:38:24 2008 +0200 i2c: i2c_use_client() defends against NULL Defend the i2c refcount calls against NULL pointers, as is important (and conventional) for such calls. Note that none of the current callers of i2c_use_client() use its return value. [JD: I hate this but apparently all the other subsystems do it so...] Signed-off-by: David Brownell Signed-off-by: Jean Delvare commit a1cdedac634eef81f747078bf1c27ad36ab13553 Author: David Brownell Date: Mon Jul 14 22:38:24 2008 +0200 i2c: Kerneldoc for most I/O calls Provide kerneldoc for most of the I2C and SMBus I/O calls. Add a comment summarizing some fault reporting issues which affect the ability to provide clean fault reports through I2C master transfer calls. (Making it hard to precisely specify their return values...) Signed-off-by: David Brownell Signed-off-by: Jean Delvare commit ae7193f7fa3e1735ab70807eb6e35a2a6575623f Author: Jean Delvare Date: Mon Jul 14 22:38:24 2008 +0200 i2c: Update stray references to smbus_access That function is actually named i2c_smbus_xfer. Signed-off-by: Jean Delvare commit 67c2e66571c383404a5acd08189194da660da942 Author: Jean Delvare Date: Mon Jul 14 22:38:23 2008 +0200 i2c: Delete unused function i2c_smbus_write_quick Function i2c_smbus_write_quick has no users left, so we can delete it. Also update the list of these helper functions which are gone but could be added back if needed. Signed-off-by: Jean Delvare commit f5b728a164b22ec38a5657ebe038def36ffae98b Author: Jean Delvare Date: Mon Jul 14 22:38:23 2008 +0200 i2c: Group bus drivers by type The list of I2C/SMBus bus drivers is growing and it is sometimes difficult for the users to figure out what drivers they should enable. By grouping the drivers by type, I hope to make the selection easier. Signed-off-by: Jean Delvare commit 24a5bb7b1838dc4524dd353224e2aa09c22cac3b Author: David Brownell Date: Mon Jul 14 22:38:23 2008 +0200 i2c-core: Return -Errno, not -1 More updates to the I2C stack's fault reporting: make the core stop returning "-1" (usually "-EPERM") for all faults. Instead, pass lower level fault code up the stack, or return some appropriate errno. This patch happens to touch almost exclusively SMBus calls. Signed-off-by: David Brownell Signed-off-by: Jean Delvare commit 75415490d6adc1aecbf0cade0785b007957d0cfe Author: Jean Delvare Date: Mon Jul 14 22:38:22 2008 +0200 i2c-core: Remove needless include i2c-core doesn't use seq files, so doesn't need to include . Signed-off-by: Jean Delvare commit 81fded1f79771809059bdfa721ae5ab9114af545 Author: David Brownell Date: Mon Jul 14 22:38:22 2008 +0200 i2c: Document standard fault codes Create Documentation/i2c/fault-codes to help standardize fault/error code usage in the I2C stack. It turns out that returning -1 (-EPERM) for everything was not at all helpful. Signed-off-by: David Brownell Signed-off-by: Jean Delvare commit 4d2bee582be1e9da76e0717bad0cfd988c2a5921 Author: Mike Frysinger Date: Mon Jul 14 22:38:22 2008 +0200 i2c-bfin-twi: Update the dependencies Since only a few Blackfins lack TWI, just list them in a depends statement. Signed-off-by: Mike Frysinger Signed-off-by: Bryan Wu Signed-off-by: Jean Delvare commit 20a9b6e7c303f2a6f9afe17c0997bc9a3c734442 Author: Adrian Bunk Date: Mon Jul 14 22:38:22 2008 +0200 i2c: Remove 3 deprecated bus drivers This patch contains the scheduled removal of i2c-i810, i2c-prosavage and i2c-savage4. Signed-off-by: Adrian Bunk Signed-off-by: Jean Delvare commit 279e902445557897707d325182916a6e28ba80de Author: Jean Delvare Date: Mon Jul 14 22:38:21 2008 +0200 i2c-nforce2: Add support for multiplexing on the Tyan S4985 Just like the Tyan S4882, the S4985 uses a multiplexer to give access to all 16 memory module SPD EEPROMs. This specific i2c-nforce2-s4985 driver adds support for this. It is heavily based on the older i2c-amd756-s4882 driver. As more mainboards will use multiplexer chips, we will have to find a way to support them without having to write a new specfic driver for each. The recent changes to the i2c subsystem should help us, and the new gpio subsystem might help, too. Signed-off-by: Jean Delvare commit 2e7437879897a4185bd84478a0451e5367dee7ed Author: Troy Kisky Date: Mon Jul 14 22:38:21 2008 +0200 i2c-davinci: Initialize cmd_complete sooner If an interrupt happens before an I2c master read/write, complete is called on uninitialized structure. Signed-off-by: Troy Kisky Signed-off-by: Kevin Hilman Signed-off-by: Jean Delvare commit 5a0d5f5ffa5d294d895ef54fc220c6182db63998 Author: Troy Kisky Date: Mon Jul 14 22:38:21 2008 +0200 i2c-davinci: Fix signal handling bug If wait_for_completion_interruptible_timeout exits due to a signal, the i2c bus was locking up. Signed-off-by: Troy Kisky Signed-off-by: Kevin Hilman Signed-off-by: Jean Delvare commit 0ab56e20674b41dd0203d16b602aac8d9d26a70a Author: Troy Kisky Date: Mon Jul 14 22:38:20 2008 +0200 i2c-davinci: Remove useless IVR read Interrupts are enabled at the point where the DAVINCI_I2C_IVR_REG is read, so unless an interrupt happened just at that moment, no interrupt would be pending. Even though documentation implies you should do this, I see no reason. If slave support is added, this read would cause a hard to reproduce bug. Signed-off-by: Troy Kisky Signed-off-by: Kevin Hilman Signed-off-by: Jean Delvare commit d868caa177d4487ce1935926498f542a8f67c1cf Author: Troy Kisky Date: Mon Jul 14 22:38:20 2008 +0200 i2c-davinci: Move dev_dbg statement for more output Previously the dev_dbg only printed if no error. Printing also on an error is more useful Signed-off-by: Troy Kisky Signed-off-by: Kevin Hilman Signed-off-by: Jean Delvare commit cc99ff70c7ad36e01db545a81a8594474964f918 Author: Troy Kisky Date: Mon Jul 14 22:38:20 2008 +0200 i2c-davinci: Ensure clock between 7-12 MHz Ensure psc value gives a clock between 7-12 MHz Signed-off-by: Troy Kisky Signed-off-by: Kevin Hilman Signed-off-by: Jean Delvare commit 7f101a97866e2687a455ecffeb96bcf317c8482a Author: Dave Young Date: Mon Jul 14 22:38:19 2008 +0200 i2c: Use class_for_each_device Use class_for_each_device for iteration. Signed-off-by: Dave Young Signed-off-by: Jean Delvare commit 6c118e43dc513a7118b49b9ff953fe61e14515dc Merge: 847106f... 72f6bef... Author: Linus Torvalds Date: Mon Jul 14 13:37:29 2008 -0700 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: (31 commits) avr32: Fix typo of IFSR in a comment in the PIO header file avr32: Power Management support ("standby" and "mem" modes) avr32: Add system device for the internal interrupt controller (intc) avr32: Add simple SRAM allocator avr32: Enable SDRAMC clock at startup rtc-at32ap700x: Enable wakeup macb: Basic suspend/resume support atmel_serial: Drain console TX shifter before suspending atmel_serial: Fix build on avr32 with CONFIG_PM enabled avr32: Use a quicklist for PTE allocation as well avr32: Use a quicklist for PGD allocation avr32: Cover the kernel page tables in the user PGDs avr32: Store virtual addresses in the PGD avr32: Remove useless zeroing of swapper_pg_dir at startup avr32: Clean up and optimize the TLB operations avr32: Rename at32ap.c -> pdc.c avr32: Move setup_platform() into chip-specific file avr32: Kill special exception handler sections avr32: Kill unneeded #include from asm/mmu_context.h avr32: Clean up time.c #includes ... commit 847106ff628805e1a0aa91e7f53381f3fdfcd839 Merge: c142bda... 6f0f0fd... Author: Linus Torvalds Date: Mon Jul 14 13:36:55 2008 -0700 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: (25 commits) security: remove register_security hook security: remove dummy module fix security: remove dummy module security: remove unused sb_get_mnt_opts hook LSM/SELinux: show LSM mount options in /proc/mounts SELinux: allow fstype unknown to policy to use xattrs if present security: fix return of void-valued expressions SELinux: use do_each_thread as a proper do/while block SELinux: remove unused and shadowed addrlen variable SELinux: more user friendly unknown handling printk selinux: change handling of invalid classes (Was: Re: 2.6.26-rc5-mm1 selinux whine) SELinux: drop load_mutex in security_load_policy SELinux: fix off by 1 reference of class_to_string in context_struct_compute_av SELinux: open code sidtab lock SELinux: open code load_mutex SELinux: open code policy_rwlock selinux: fix endianness bug in network node address handling selinux: simplify ioctl checking SELinux: enable processes with mac_admin to get the raw inode contexts Security: split proc ptrace checking into read vs. attach ... commit c142bda458a9c81097238800e1bd8eeeea09913d Merge: b5cf43c... c0e0920... Author: Linus Torvalds Date: Mon Jul 14 13:32:24 2008 -0700 Merge branch 'drm-reorg' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6 * 'drm-reorg' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6: drm: reorganise drm tree to be more future proof. commit b5cf43c47b05c8deb10f9674d541dddbdec0e341 Merge: b7f80af... fe0a3fe... Author: Linus Torvalds Date: Mon Jul 14 13:26:07 2008 -0700 Merge branch 'for-linus' of git://git.alsa-project.org/alsa-kernel * 'for-linus' of git://git.alsa-project.org/alsa-kernel: (179 commits) ALSA: Release v1.0.17 ALSA: correct kcalloc usage ALSA: ALSA driver for SGI O2 audio board ALSA: asoc: kbuild - only show menus for the current ASoC CPU platform. ALSA: ALSA driver for SGI HAL2 audio device ALSA: hda - Fix FSC V5505 model ALSA: hda - Fix missing init for unsol events on micsense model ALSA: hda - Fix internal mic vref pin setup ALSA: hda: 92hd71bxx PC Beep ALSA: HDA - HP dc7600 with pci sub IDs 0x103c/0x3011 belongs to hp-3013 model ALSA: usb-audio: add some Yamaha USB MIDI quirks ALSA: usb-audio: fix Yamaha KX quirk ALSA: ASoC: Au12x0/Au1550 PSC Audio support ALSA: Add Yamaha KX49 (USB MIDI controller) to usbquirks.h ALSA: ASoC: pxa2xx-ac97: fix warning due to missing argument in fuction declaration ALSA: tosa: fix compilation with new DAPM API ALSA: wavefront - add const ALSA: remove CONFIG_KMOD from sound ALSA: Fix a const to non-const assignment in the Digigram VXpocket sound driver ALSA: Fix a const pointer usage warning in the Digigram VX soundcard driver ... commit b7f80afa28866c257876c272d6c013e0dbed3c31 Merge: 42c5920... 5e34599... Author: Linus Torvalds Date: Mon Jul 14 13:25:01 2008 -0700 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: (71 commits) [S390] sclp_tty: Fix scheduling while atomic bug. [S390] sclp_tty: remove ioctl interface. [S390] Remove P390 support. [S390] Cleanup vmcp printk messages. [S390] Cleanup lcs printk messages. [S390] Cleanup kprobes printk messages. [S390] Cleanup vmwatch printk messages. [S390] Cleanup dcssblk printk messages. [S390] Cleanup zfcp dumper printk messages. [S390] Cleanup vmlogrdr printk messages. [S390] Cleanup s390 debug feature print messages. [S390] Cleanup monreader printk messages. [S390] Cleanup appldata printk messages. [S390] Cleanup smsgiucv printk messages. [S390] Cleanup cpacf printk messages. [S390] Cleanup qeth print messages. [S390] Cleanup netiucv printk messages. [S390] Cleanup iucv printk messages. [S390] Cleanup sclp printk messages. [S390] Cleanup zcrypt printk messages. ... commit 42c59208219a2d43f0dde94bebc68c20b95b13ce Merge: dddec01... 727c674... Author: Linus Torvalds Date: Mon Jul 14 13:24:39 2008 -0700 Merge git://git.kernel.org/pub/scm/linux/kernel/git/brodo/pcmcia-2.6 * git://git.kernel.org/pub/scm/linux/kernel/git/brodo/pcmcia-2.6: (23 commits) pcmcia: Fix ide-cs sparse warning pcmcia: ide-cs debugging bugfix pcmcia: allow for longer CIS firmware files pcmcia: cm40x0 cdev lock_kernel() pushdown pcmcia: (re)move {pcmcia,pccard}_get_status pcmcia: kill IN_CARD_SERVICES pcmcia: Remove unused header file code pcmcia: remove unused bulkmem.h pcmcia: simplify pccard_validate_cis pcmcia: carve out ioctl adjust function to pcmcia_ioctl pcmcia: irq probe can be done without risking an IRQ storm pcmcia: Fix ti12xx_2nd_slot_empty always failing pcmcia: check for pointer instead of pointer address pcmcia: switch cm4000_cs.c to unlocked_ioctl pcmcia: simplify rsrc_nonstatic attributes pcmcia: add support CompactFlash PCMCIA support for Blackfin. pcmcia: remove version.h pcmcia: cs: kill thread_wait pcmcia: i82365.c: check request_irq return value pcmcia: fix Alchemy warnings ... commit dddec01eb8e2b56267b37a6f9f0997a64b4e0b2a Merge: 7daf705... 32502b8... Author: Linus Torvalds Date: Mon Jul 14 13:15:14 2008 -0700 Merge branch 'for-linus' of git://git.kernel.dk/linux-2.6-block * 'for-linus' of git://git.kernel.dk/linux-2.6-block: (37 commits) splice: fix generic_file_splice_read() race with page invalidation ramfs: enable splice write drivers/block/pktcdvd.c: avoid useless memset cdrom: revert commit 22a9189 (cdrom: use kmalloced buffers instead of buffers on stack) scsi: sr avoids useless buffer allocation block: blk_rq_map_kern uses the bounce buffers for stack buffers block: add blk_queue_update_dma_pad DAC960: push down BKL pktcdvd: push BKL down into driver paride: push ioctl down into driver block: use get_unaligned_* helpers block: extend queue_flag bitops block: request_module(): use format string Add bvec_merge_data to handle stacked devices and ->merge_bvec() block: integrity flags can't use bit ops on unsigned short cmdfilter: extend default read filter sg: fix odd style (extra parenthesis) introduced by cmd filter patch block: add bounce support to blk_rq_map_user_iov cfq-iosched: get rid of enable_idle being unused warning allow userspace to modify scsi command filter on per device basis ... commit 2640d7c0b8d5d9d9ee303b8cd09f5124176f6239 Author: Matthew Wilcox Date: Sun Jul 6 09:23:20 2008 -0400 AHCI: Remove an unnecessary flush from ahci_qc_issue In an I/O heavy workload (IOZone), ahci_qc_issue is the second-highest consumer of CPU cycles. Removing the flush gets us approximately 10% bandwidth improvement. I believe this to be because the CPU can start queueing the next request instead of waiting for the readl() to flush the writes to the device. The flush isn't necessary because we're using a 'queue' metaphor; we don't guarantee the command has got to the device, nor do we need to guarantee the command has got to the controller. Signed-off-by: Matthew Wilcox Signed-off-by: Jeff Garzik commit 24920c8a6358bf5532f1336b990b1c0fe2b599ee Author: Zhang Rui Date: Fri Jul 4 13:32:17 2008 +0800 AHCI: speed up resume During resume, sleep 1 second to wait for the HBA reset to finish is a waste of time. According to the AHCI 1.2 spec, We should poll the HOST_CTL register, and return error if the host reset is not finished within 1 second. Test results show that the HBA reset can be done quickly(in usecs). And this patch may save nearly 1 second during resume. Signed-off-by: Zhang Rui Signed-off-by: Jeff Garzik commit 1e9dbc9291738149577cc488fd441f061815e02e Author: Matthew Wilcox Date: Thu Jun 19 13:13:38 2008 -0600 [libata] Add support for VPD page b1 SCSI VPD page b1 reports the nominal rotation speed and physical size of the device. Devices that conform to ATA-8 can return this information in words 217 and 168 of the identify data. Signed-off-by: Matthew Wilcox Signed-off-by: Jeff Garzik commit 6ad67403da47e833d9e418caf7f28295c9472e11 Author: Harvey Harrison Date: Wed Jun 18 17:16:43 2008 -0700 ata: endianness annotations in pata drivers drivers/ata/pata_qdi.c:142:9: warning: incorrect type in assignment (different base types) drivers/ata/pata_qdi.c:142:9: expected unsigned int [unsigned] [usertype] pad drivers/ata/pata_qdi.c:142:9: got restricted __le32 [usertype] drivers/ata/pata_qdi.c:146:15: warning: cast to restricted __le32 drivers/ata/pata_winbond.c:110:9: warning: incorrect type in assignment (different base types) drivers/ata/pata_winbond.c:110:9: expected unsigned int [unsigned] [usertype] pad drivers/ata/pata_winbond.c:110:9: got restricted __le32 [usertype] drivers/ata/pata_winbond.c:114:15: warning: cast to restricted __le32 drivers/ata/pata_legacy.c:310:9: warning: incorrect type in assignment (different base types) drivers/ata/pata_legacy.c:310:9: expected unsigned int [unsigned] [usertype] pad drivers/ata/pata_legacy.c:310:9: got restricted __le32 [usertype] drivers/ata/pata_legacy.c:314:15: warning: cast to restricted __le32 drivers/ata/pata_legacy.c:752:11: warning: cast to restricted __le32 drivers/ata/pata_legacy.c:756:9: warning: incorrect type in assignment (different base types) drivers/ata/pata_legacy.c:756:9: expected unsigned int [unsigned] [addressable] [assigned] [usertype] pad drivers/ata/pata_legacy.c:756:9: got restricted __le32 [usertype] Signed-off-by: Harvey Harrison Signed-off-by: Jeff Garzik commit 3eabddb8ed4f488664ff5d67968392bb424836a3 Author: Tejun Heo Date: Tue Jun 10 18:28:05 2008 +0900 libata-eh: update atapi_eh_request_sense() to take @dev instead of @qc Update atapi_eh_request_sense() to take @dev, @sense_buf and @dfl_sense_key instead of taking @qc and extracting information from it. This change is to make the function more generic and allow it to be called from other places. While at it, make cdb initialization use initializer. Signed-off-by: Tejun Heo Signed-off-by: Jeff Garzik commit ec6add99307d5149e17f6e358f19f0205b622407 Author: Pavel Machek Date: Mon Jun 23 11:01:31 2008 +0200 [libata] sata_svw: update code comments relating to data corruption Signed-off-by: Pavel Machek Signed-off-by: Jeff Garzik commit 18f7ba4c2f4be6b37d925931f04d6cc28d88d1ee Author: Kristen Carlson Accardi Date: Tue Jun 3 10:33:55 2008 -0700 libata/ahci: enclosure management support Add Enclosure Management support to libata and ahci. Signed-off-by: Kristen Carlson Accardi Signed-off-by: Jeff Garzik commit 87fbc5a060faf2394bee88a93519f9b9d434727c Author: Tejun Heo Date: Tue May 20 02:17:54 2008 +0900 libata: improve EH internal command timeout handling ATA_TMOUT_INTERNAL which was 30secs were used for all internal commands which is way too long when something goes wrong. This patch implements command type based stepped timeouts. Different command types can use different timeouts and each command type can use different timeout values after timeouts. ie. the initial timeout is set to a value which should cover most of the cases but not too long so that run away cases don't delay things too much. After the first try times out, the second try can use longer timeout and if that one times out too, it can go for full 30sec timeout. IDENTIFYs use 5s - 10s - 30s timeout and all other commands use 5s - 10s timeouts. This patch significantly cuts down the needed time to handle failure cases while still allowing libata to work with nut job devices through retries. Signed-off-by: Tejun Heo Signed-off-by: Jeff Garzik commit d8af0eb6046c56e7238171ca420622541db24926 Author: Tejun Heo Date: Tue May 20 02:17:53 2008 +0900 libata: use ULONG_MAX to terminate reset timeout table This doesn't introduce any functional changes. This is to make reset timeout table consistent with to-be-added command timeout tables. Signed-off-by: Tejun Heo Signed-off-by: Jeff Garzik commit 0a2c0f56159999e20015241d3b8fa89b1ab14309 Author: Tejun Heo Date: Tue May 20 02:17:52 2008 +0900 libata: improve EH retry delay handling EH retries were delayed by 5 seconds to ensure that resets don't occur back-to-back. However, this 5 second delay is superflous or excessive in many cases. For example, after IDENTIFY times out, there's no reason to wait five more seconds before retrying. This patch adds ehc->last_reset timestamp and record the timestamp for the last reset trial or success and uses it to space resets by ATA_EH_RESET_COOL_DOWN which is 5 secs and removes unconditional 5 sec sleeps. As this change makes inter-try waits often shorter and they're redundant in nature, this patch also removes the "retrying..." messages. While at it, convert explicit rounding up division to DIV_ROUND_UP(). This change speeds up EH in many cases w/o sacrificing robustness. Signed-off-by: Tejun Heo Signed-off-by: Jeff Garzik commit 341c2c958ec7bdd9f54733a8b0b432fe76842a82 Author: Tejun Heo Date: Tue May 20 02:17:51 2008 +0900 libata: consistently use msecs for time durations libata has been using mix of jiffies and msecs for time druations. This is getting confusing. As writing sub HZ values in jiffies is PITA and msecs_to_jiffies() can't be used as initializer, unify unit for all time durations to msecs. So, durations are in msecs and deadlines are in jiffies. ata_deadline() is added to compute deadline from a start time and duration in msecs. While at it, drop now superflous _msec suffix from arguments and rename @timeout to @deadline if it represents a fixed point in time rather than duration. Signed-off-by: Tejun Heo Signed-off-by: Jeff Garzik commit 7daf705f362e349983e92037a198b8821db198af Author: Linus Torvalds Date: Mon Jul 14 12:12:53 2008 -0700 Start using the new '%pS' infrastructure to print symbols This simplifies the code significantly, and was the whole point of the exercise. Signed-off-by: Linus Torvalds commit 065cb3dfe24978651caedfa54da585388ad15dde Author: H. Peter Anvin Date: Mon Jul 14 11:44:26 2008 -0700 x86, suspend, acpi: correct and add comments about Big Real Mode Explain that we set up the descriptors for Big Real Mode, and why we do so. In particular, one system that is known to fail without it is the Lenovo X61. Signed-off-by: H. Peter Anvin commit 3bf2e77453a87c22eb57ed4926760ac131c84459 Author: H. Peter Anvin Date: Sun Jul 13 21:18:02 2008 -0700 x86, suspend, acpi: enter Big Real Mode The explanation for recent video BIOS suspend quirk failures is that the VESA BIOS expects to be entered in Big Real Mode (*.limit = 0xffffffff) instead of ordinary Real Mode (*.limit = 0xffff). This patch changes the segment descriptors to Big Real Mode instead. The segment descriptor registers (what Intel calls "segment cache") is always active. The only thing that changes based on CR0.PE is how it is *loaded* and the interpretation of the CS flags. The segment descriptor registers contain of the following sub-registers: selector (the "visible" part), base, limit and flags. In protected mode or long mode, they are loaded from descriptors (or fs.base or gs.base can be manipulated directly in long mode.) In real mode, the only thing changed by a segment register load is the selector and the base, where the base <- selector << 4. In particular, *the limit and the flags are not changed*. As far as the handling of the CS flags: a code segment cannot be writable in protected mode, whereas it is "just another segment" in real mode, so there is some kind of quirk that kicks in for this when CR0.PE <- 0. I'm not sure if this is accomplished by actually changing the cs.flags register or just changing the interpretation; it might be something that is CPU-specific. In particular, the Transmeta CPUs had an explicit "CS is writable if you're in real mode" override, so even if you had loaded CS with an execute-only segment it'd be writable (but not readable!) on return to real mode. I'm not at all sure if that is how other CPUs behave. Signed-off-by: "H. Peter Anvin" Signed-off-by: Ingo Molnar commit 2d62f488585405bc9108c47cb06957397cfd1059 Author: Adrian Hunter Date: Thu Jan 31 17:25:00 2008 +0200 do_mounts: allow UBI root device name Similarly to MTD devices, allow UBI devices. Signed-off-by: Adrian Hunter commit 4ee6afd34409d296782a5b667d7991b1050e910a Author: Artem Bityutskiy Date: Wed May 7 21:01:30 2008 +0300 VFS: export sync_sb_inodes This patch exports the 'sync_sb_inodes()' which is needed for UBIFS because it has to force write-back from time to time. Namely, the UBIFS budgeting subsystem forces write-back when its pessimistic callculations show that there is no free space on the media. Signed-off-by: Artem Bityutskiy commit ae8547b0a9e5d718ce272ddc48f91703a0f52a0b Author: Hans Reiser Date: Wed May 7 15:48:57 2008 +0300 VFS: move inode_lock into sync_sb_inodes This patch makes 'sync_sb_inodes()' lock 'inode_lock', rather than expect that the caller will do this. This change was previously done by Hans Reiser and sat in the -mm tree. Signed-off-by: Artem Bityutskiy commit 7dc9719682ce8c46215bc9a1bdc7ee0c38ada94b Merge: 4c2a997... 900cfa4... 857f3fd... de32a24... 81d50bb... Author: Thomas Gleixner Date: Mon Jul 14 18:09:05 2008 +0200 Merge commit '900cfa46191a7d87cf1891924cb90499287fd235'; branches 'timers/nohz', 'timers/clocksource' and 'timers/posixtimers' into timers/for-linus commit 7798ed0f57b4d137e660fbf5be1e1528e40f89ac Author: Stephen Rothwell Date: Mon Jul 14 19:55:03 2008 +1000 generic-ipi: powerpc/generic-ipi tree build failure Today's linux-next build (powerpc allmodconfig) failed like this: ERROR: ".save_stack_trace" [tests/backtracetest.ko] undefined! But save_stack_trace is exported in arch/powerpc/kernel/stacktrace.c I couldn't figure it out until I noticed these earlier warnings: arch/powerpc/kernel/stacktrace.c:47: warning: data definition has no type or storage class arch/powerpc/kernel/stacktrace.c:47: warning: type defaults to 'int' in declaration of 'EXPORT_SYMBOL_GPL' arch/powerpc/kernel/stacktrace.c:47: warning: parameter names (without types) in function declaration I applied the patch below. Signed-off-by: Stephen Rothwell Cc: Paul Mackerras Cc: Benjamin Herrenschmidt Cc: Signed-off-by: Ingo Molnar commit 4c2a997c34c0aa952ba9c247b0c2043526054919 Author: Joe Buehler Date: Mon Jun 9 08:55:20 2008 -0400 x86: add PCI ID for 6300ESB force hpet 00:1f.0 ISA bridge: Intel Corporation 6300ESB LPC Interface Controller (rev 02) 00:1f.0 Class 0601: 8086:25a1 (rev 02) kernel: pci 0000:00:1f.0: Force enabled HPET at 0xfed00000 kernel: hpet clockevent registered kernel: hpet0: at MMIO 0xfed00000, IRQs 2, 8, 0 kernel: hpet0: 3 64-bit timers, 14318180 Hz Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 1c776bf87c855a6e823e13c3667f0cf7c14635bd Author: Krzysztof Oledzki Date: Wed Jun 4 03:40:17 2008 +0200 x86: add another PCI ID for ICH6 force-hpet Tested on Asus P5GDC-V $ lspci -n -n |grep ISA 00:1f.0 ISA bridge [0601]: Intel Corporation 82801FB/FR (ICH6/ICH6R) LPC Interface Bridge [8086:2640] (rev 03) Force enabled HPET at base address 0xfed00000 hpet clockevent registered hpet0: at MMIO 0xfed00000, IRQs 2, 8, 0 hpet0: 3 64-bit timers, 14318180 Hz Signed-off-by: Krzysztof Piotr Oledzki Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 5806b81ac1c0c52665b91723fd4146a4f86e386b Merge: d14c8a6... 6712e29... Author: Ingo Molnar Date: Mon Jul 14 16:11:52 2008 +0200 Merge branch 'auto-ftrace-next' into tracing/for-linus Conflicts: arch/x86/kernel/entry_32.S arch/x86/kernel/process_32.c arch/x86/kernel/process_64.c arch/x86/lib/Makefile include/asm-x86/irqflags.h kernel/Makefile kernel/sched.c Signed-off-by: Ingo Molnar commit d14c8a680ccfdeb5e7b9be4d61162c2b373bd1e8 Merge: d59fdcf... 873a6ed... Author: Ingo Molnar Date: Mon Jul 14 16:11:02 2008 +0200 Merge branch 'sched/for-linus' into tracing/for-linus commit 6712e299b7dc78aa4971b85e803435ee6d49a9dd Merge: ec1bb60... b2613e3... Author: Ingo Molnar Date: Mon Jul 14 15:58:35 2008 +0200 Merge branch 'tracing/ftrace' into auto-ftrace-next commit 3fd44736db9a5bf33e4a216b9cd43c9cfd57c459 Author: Kim Phillips Date: Tue Jul 8 19:13:33 2008 -0500 powerpc/fsl: update crypto node definition and device tree instances delete obsolete device-type property, delete model property (use compatible property instead), prepend "fsl," to Freescale specific properties. Add nodes to device trees that are missing them, and fix broken property values in other trees. Signed-off-by: Kim Phillips Signed-off-by: Kumar Gala commit d0fc2eaaf4c56a95f5ed29b6bfb609e19714fc16 Author: Kumar Gala Date: Mon Jul 7 11:28:33 2008 -0500 powerpc/fsl: Refactor device bindings Moved Freescale SoC related bindings out of booting-without-of.txt and into their own files. Signed-off-by: Kumar Gala commit b93eeba49efb30f88a83fc97ad22c255605654a1 Author: Jason Jin Date: Tue Jul 8 09:21:08 2008 +0800 powerpc/85xx: Minor fixes for 85xxds and 8536ds board. Remove the "uninitialized use" compile warning and avoid potential runtime issue. Signed-off-by: Jason Jin Signed-off-by: Kumar Gala commit d8267c1a36864fc30a2ce01f4349a8f2931ae741 Author: Kumar Gala Date: Fri Jun 27 11:26:26 2008 -0500 powerpc: Add 82xx/83xx/86xx to 6xx Multiplatform There isn't any reason at this point that we can't build 82xx, 83xx & 86xx support in with the other 6xx based boards. Twiddle the Kconfigs to allow this. This allows us to remove the machine type selection for related to 6xx. Signed-off-by: Kumar Gala commit a64887eb0a376d412cfa07a52728fb3f56cf9d6c Author: Dave Jiang Date: Mon Jun 16 15:36:17 2008 -0700 powerpc/85xx: publish of device for cds platforms Publish the devices listed in dts under SOC as of_device for 85xx_cds platform. The devices are needed by the 85xx EDAC driver. Signed-off-by: Dave Jiang Signed-off-by: Kumar Gala commit ddb107e98b58ee280e99317cfd6efd16112678f2 Author: Kumar Gala Date: Fri Jun 27 08:03:13 2008 -0500 powerpc/booke: don't reinitialize time base For some reason long ago I decided that we should zero out the time base when we calibrate the decrementer. The problem is that this can be harmful in SMP systems where the firmware has already synchronized the time bases on the various cores. Signed-off-by: Kumar Gala commit 98384c6cdd1fd593f399b6f879bae2cae70aad48 Author: Kumar Gala Date: Wed Jul 2 11:46:20 2008 -0500 powerpc/86xx: Refactor pic init Moved the pic initialization into its own common file and out of the board code. Also fixed the OF reference counting on the mpic node. Signed-off-by: Kumar Gala commit a5d28c8e64ff0bc77d38d9c19c6d8163e4c0ffaa Author: Jochen Friedrich Date: Wed Jul 2 18:06:13 2008 +0200 powerpc/CPM: Add i2c pins to dts and board setup Initialize I2C pins on boards with CPM1/CPM2 controllers and document the i2c bus in booting-without-of. The boards don't have any I2C chips connected to the I2C bus, so unless some external chips are connected to the boards, this code is just an example of setting everything else up. Signed-off-by: Jochen Friedrich Signed-off-by: Kumar Gala commit dc320815305c5f019672d144f4c4c2710ef7732e Author: Laurent Pinchart Date: Wed Jul 2 10:58:45 2008 +0200 cpm_uart: Support uart_wait_until_sent() Set port->fifosize to the software FIFO size, and update the port timeout when the baud rate is modified. SCC ports have an optional 32 byte hardware FIFO which is currently not taken into account, as there is no documented way to check when the FIFO becomes empty. Signed-off-by: Laurent Pinchart Signed-off-by: Kumar Gala commit 2f3804edf971d2080243d2b4552bfd61ddfbf969 Author: Kumar Gala Date: Wed Jul 2 01:36:15 2008 -0500 powerpc/85xx: Add support for MPC8536DS Add support for the MPC8536 process and MPC8536DS reference board. The MPC8536 is an e500v2 based SoC which eTSEC, USB, SATA, PCI, and PCIe. The USB and SATA IP blocks are similiar to those on the PQ2 Pro SoCs and thus use the same drivers. Signed-off-by: Kumar Gala commit a712b65cd015d9bd05bce01f57a42cd6c73c4aa0 Author: Kumar Gala Date: Wed Jul 2 10:00:56 2008 -0500 powerpc/85xx: minor fixes for MPC85xx DS board port These issues were reported by Stephen Rothwell for another 85xx board port and pointed out by Chen Gong as issues in the DS port. * mpic OF node reference counting was off * of_device_id struct should be marked as __initdata Signed-off-by: Kumar Gala commit 5e82eb333949e2f1652bf70d36dfaa875306ae11 Author: Nye Liu Date: Fri Jun 27 13:01:00 2008 -0700 powerpc/CPM: Minor cosmetic changes to udbg_putc udbg_putc is a *function pointer* that is initialized during udbg_init_cpm. It might not be initialized properly when called from udbg_putc_cpm(), so (recursively) call udbg_putc_cpm() directly. Signed-off-by: Nye Liu Signed-off-by: Kumar Gala commit a3083220c089c626a66b66af0eff4f9220d5b797 Author: Wolfgang Grandegger Date: Thu Jun 26 15:15:43 2008 +0200 powerpc/85xx: TQM8548: add missing support for RTC and LM75 It adds the missing RTC node to tqm8548.dts and enables support for I2C, DS1307 and LM75 in the default configuration. Signed-off-by: Wolfgang Grandegger Signed-off-by: Kumar Gala commit deabeabf0bb8e6ad0b5917859893ac5af46d9b04 Author: Anton Vorontsov Date: Tue Jul 1 17:04:38 2008 +0400 powerpc/86xx: mpc8610_hpcd: fix interrupt trigger type for ULi IDE i8259 PIC is disabled on MPC8610HPCD, and ULi IDE is configured to use PCI sideband interrupt that is specified in the device tree. Current HPCD's device tree specify that IDE interrupt is low to high sensitive, but in practice ULi IDE throws active-high interrupts (not active-low as all normal PCI devices). Signed-off-by: Anton Vorontsov Signed-off-by: Kumar Gala commit 6c1160991283a12537b136a71d10d271997fd64c Author: Rune Torgersen Date: Tue May 20 14:28:57 2008 -0500 powerpc: Fix pq2fads irq handling with PREEMPT_RT Fix interrupt threading issue on pq2fads when running with CONFIG_PREEMPT_RT Signed-off-by: Rune Torgersen Signed-off-by: Kumar Gala commit 491a7a436cc90e97d666cfc025e141ca3186f86c Author: Rune Torgersen Date: Tue May 20 14:39:17 2008 -0500 cpm_uart: Fix cpm uart corruption with PREEMPT_RT Fix CPM serial port corruption when running with CONFIG_PREEMPT_RT. Userland usage of console, and kernel printf's were stepping on each others toes. Also only take lock if not in an oops. Signed-off-by: Rune Torgersen Signed-off-by: Kumar Gala commit 0fe9b1ea60bc209c8c87afcbb1c2ec0b28835aa4 Author: Kumar Gala Date: Mon Jun 30 23:24:14 2008 -0500 powerpc/85xx: Fix KSI8560 .dts Rename MPIC label to mpic to match all other 85xx .dts and to fix compile issue introduced by addition of the DMA node. Signed-off-by: Kumar Gala commit a7ea67823af4a7e442e92064b0fab46603a588f6 Author: Stefan Richter Date: Sun May 25 11:06:55 2008 +0200 firewire: don't respond to broadcast write requests Contrary to a comment in the source, request->ack of a broadcast write request can be ACK_PENDING. Hence the existing check is insufficient. Debug dmesg before: AR spd 0 tl 00, ffc0 -> ffff, ack_pending , QW req, fffff0000234 = ffffffff AT spd 0 tl 00, ffff -> ffc0, ack_complete, W resp And the requesting node (linux1394) reports an unsolicited response. Debug dmesg after: AR spd 0 tl 00, ffc0 -> ffff, ack_pending , QW req, fffff0000234 = ffffffff Signed-off-by: Stefan Richter commit 459f79235d8faa0050180c7e0c7bb4b2b52cbdfd Author: Stefan Richter Date: Sat May 24 16:50:22 2008 +0200 firewire: clean up fw_card reference counting This is a functionally equivalent replacement of the current reference counting of struct fw_card instances. It only converts it to common idioms as suggested by Kristian Høgsberg: - struct kref replaces atomic_t as the counter. - wait_for_completion is used to wait for all card users to complete. BTW, it may make sense to count card->flush_timer and card->work as card users too. Signed-off-by: Stefan Richter commit 2147ef204f57191e0fff6d5d3d1a0336afa6cfae Author: Stefan Richter Date: Sat May 24 16:48:05 2008 +0200 firewire: clean up some includes Signed-off-by: Stefan Richter commit bbf094cf3dbd9a969dd17cf52325e9fab8dfbe91 Author: Stefan Richter Date: Sat May 24 16:46:10 2008 +0200 firewire: remove unused struct members Signed-off-by: Stefan Richter commit e534fe16b987780744da351acece2a4699783096 Author: Stefan Richter Date: Sat May 24 16:41:09 2008 +0200 firewire: implement broadcast_channel CSR for 1394a compliance See IEEE 1394a clause 8.3.2.3.11. Signed-off-by: Stefan Richter commit 435f972697fcd4c424db941f0ea8f2e38eda2b39 Author: Philippe De Muyter Date: Thu Jul 3 18:52:28 2008 +0200 ieee1394: dump mmapped iso buffers in core files Currently, core files do not contain the mmapped memory of the video1394 or dv1394 devices, which contain the actual video input, making it impossible to analyse the cause of abnormal program termination for image analysis or (de)compression software. Fix that. Signed-off-by: Philippe De Muyter Also affects users of the rawiso ioctl API of raw1394. Signed-off-by: Stefan Richter commit 3aea50a379ed152bcb86b24b65a4cb59be82446f Author: Alan Cox Date: Fri May 23 11:57:41 2008 +0100 ieee1394: raw1394: Push the BKL down into the driver ioctls Actually in this case wrap the function for now. Signed-off-by: Alan Cox Added raw1394_compat_ioctl hunk. Signed-off-by: Stefan Richter commit 055a7da0bb7b14f2f5009bf1c486a6e965e1e7ac Author: Stefan Richter Date: Mon May 19 22:07:28 2008 +0200 ieee1394: video1394: reorder module init, prepare BKL removal This prepares video1394 for removal of the BKL (big kernel lock): It allows video1394_open() to be called while video1394_init_module() is still in progress. Signed-off-by: Stefan Richter commit fde675fa2a1b07108976b42b20c9e69c80a53248 Author: Stefan Richter Date: Fri May 2 20:14:52 2008 +0200 ieee1394: reduce log noise about config ROM CRC errors This avoids redundant messages about a special and usually harmless firmware flaw. Signed-off-by: Stefan Richter commit 82f06e86117680ada35fdb76c8852268d994cd99 Author: Stefan Richter Date: Sun May 11 00:37:14 2008 +0200 ieee1394: sbp2: spin disks down on suspend and shutdown This instructs sd_mod to send START STOP UNIT on suspend and resume, and on driver unbinding or unloading (including when the system is shut down). We don't do this though if multiple initiators may log in to the target. Signed-off-by: Stefan Richter commit 2635f96f9086409de0ec882a210f374c012bffc3 Author: Stefan Richter Date: Sun May 11 00:36:47 2008 +0200 firewire: fw-sbp2: spin disks down on suspend and shutdown This instructs sd_mod to send START STOP UNIT on suspend and resume, and on driver unbinding or unloading (including when the system is shut down). We don't do this though if multiple initiators may log in to the target. Signed-off-by: Stefan Richter Tested-by: Tino Keitel commit 3719122a520af2957031859317e74858ab4d3f4b Author: Stefan Richter Date: Sun May 11 00:35:55 2008 +0200 ieee1394: sbp2: fix spindown for PL-3507 and TSB42AA9 firmwares Reported by Tino Keitel: PL-3507 with firmware from Prolific does not spin down the disk on START STOP UNIT with power condition = 0 and start = 0. It does however work with power condition = 2 or 3. Also found while investigating this: DViCO Momobay CX-1 and FX-3A (TI TSB42AA9/A based) become unresponsive after START STOP UNIT with power condition = 0 and start = 0. They stay responsive if power condition is set when stopping the motor. Signed-off-by: Stefan Richter commit ffcaade3109c3a4c0a2c601cf2a44d55b4c3af37 Author: Stefan Richter Date: Sun May 11 00:35:04 2008 +0200 firewire: fw-sbp2: fix spindown for PL-3507 and TSB42AA9 firmwares Reported by Tino Keitel: PL-3507 with firmware from Prolific does not spin down the disk on START STOP UNIT with power condition = 0 and start = 0. It does however work with power condition = 2 or 3. Also found while investigating this: DViCO Momobay CX-1 and FX-3A (TI TSB42AA9/A based) become unresponsive after START STOP UNIT with power condition = 0 and start = 0. They stay responsive if power condition is set when stopping the motor. Signed-off-by: Stefan Richter Tested-by: Tino Keitel commit d2886ea368a67704ecc13e69075f18a9d74cb12b Author: Stefan Richter Date: Sun May 11 00:34:07 2008 +0200 scsi: sd: optionally set power condition in START STOP UNIT Adds a new scsi_device flag, start_stop_pwr_cond: If enabled, the sd driver will not send plain START STOP UNIT commands but ones with the power condition field set to 3 (standby) or 1 (active) respectively. Some FireWire disk firmwares do not stop the motor if power condition is zero. Or worse, they become unresponsive after a START STOP UNIT with power condition = 0 and start = 0. http://lkml.org/lkml/2008/4/29/704 This patch only adds the necessary code to sd_mod but doesn't activate it. Follow-up patches to the FireWire drivers will add detection of affected devices and enable the code for them. I did not add power condition values to scsi_error.c::scsi_eh_try_stu() for now. The three firmwares which suffer from above mentioned problems do not need START STOP UNIT in the error handler, and they are not adversely affected by START STOP UNIT with power condition = 0 and start = 1 (like scsi_eh_try_stu() sends it if scsi_device.allow_restart is enabled). Signed-off-by: Stefan Richter Tested-by: Tino Keitel commit 873a6ed6288b6c2c0d2cc84d3b2bf2fab9ba0181 Merge: 361833e... bce7f79... Author: Ingo Molnar Date: Mon Jul 14 12:19:19 2008 +0200 Merge commit 'v2.6.26' into sched/devel commit 361833efac4d277d209008e1e0658e597bc1bdef Merge: 54ef76f... c300ba2... Author: Ingo Molnar Date: Mon Jul 14 12:19:13 2008 +0200 Merge branch 'sched/clock' into sched/devel commit d12c1a37925a8ec386994169605fe99217295199 Author: Ingo Molnar Date: Mon Jul 14 12:09:28 2008 +0200 lockdep: fix kernel/fork.c warning fix: [ 0.184011] ------------[ cut here ]------------ [ 0.188011] WARNING: at kernel/fork.c:918 copy_process+0x1c0/0x1084() [ 0.192011] Pid: 0, comm: swapper Not tainted 2.6.26-tip-00351-g01d4a50-dirty #14521 [ 0.196011] [] warn_on_slowpath+0x3c/0x60 [ 0.200012] [] ? __alloc_pages_internal+0x92/0x36b [ 0.208012] [] ? __spin_lock_init+0x24/0x4a [ 0.212012] [] copy_process+0x1c0/0x1084 [ 0.216013] [] do_fork+0xb8/0x1ad [ 0.220013] [] ? acpi_os_release_lock+0x8/0xa [ 0.228013] [] ? acpi_os_vprintf+0x20/0x24 [ 0.232014] [] kernel_thread+0x75/0x7d [ 0.236014] [] ? kernel_init+0x0/0x24a [ 0.240014] [] ? kernel_init+0x0/0x24a [ 0.244014] [] ? kernel_thread_helper+0x0/0x10 [ 0.252015] [] rest_init+0x14/0x50 [ 0.256015] [] start_kernel+0x2b9/0x2c0 [ 0.260015] [] __init_begin+0x4f/0x57 [ 0.264016] ======================= [ 0.268016] ---[ end trace 4eaa2a86a8e2da22 ]--- [ 0.272016] enabled ExtINT on CPU#0 which occurs if CONFIG_TRACE_IRQFLAGS=y, CONFIG_DEBUG_LOCKDEP=y, but CONFIG_PROVE_LOCKING is disabled. Signed-off-by: Ingo Molnar commit d59fdcf2ac501de99c3dfb452af5e254d4342886 Merge: 2387ce5... bce7f79... Author: Ingo Molnar Date: Mon Jul 14 11:37:46 2008 +0200 Merge commit 'v2.6.26' into x86/core commit 992860e991f2015fb8c8df65aa32afa0dcbb4430 Author: Ingo Molnar Date: Mon Jul 14 10:28:38 2008 +0200 lockdep: fix ftrace irq tracing false positive fix this false positive: [ 0.020000] ------------[ cut here ]------------ [ 0.020000] WARNING: at kernel/lockdep.c:2718 check_flags+0x14a/0x170() [ 0.020000] Modules linked in: [ 0.020000] Pid: 0, comm: swapper Not tainted 2.6.26-tip-00343-gd7e5521-dirty #14486 [ 0.020000] [] warn_on_slowpath+0x54/0x80 [ 0.020000] [] ? _spin_unlock_irqrestore+0x61/0x70 [ 0.020000] [] ? release_console_sem+0x201/0x210 [ 0.020000] [] ? __kernel_text_address+0x35/0x40 [ 0.020000] [] ? dump_trace+0x5e/0x140 [ 0.020000] [] ? __lock_acquire+0x245/0x820 [ 0.020000] [] check_flags+0x14a/0x170 [ 0.020000] [] ? lock_acquire+0x48/0xc0 [ 0.020000] [] lock_acquire+0x51/0xc0 [ 0.020000] [] ? down+0x2c/0x40 [ 0.020000] [] ? sched_clock+0x9/0x10 [ 0.020000] [] _write_lock+0x32/0x60 [ 0.020000] [] ? request_resource+0x1f/0xb0 [ 0.020000] [] request_resource+0x1f/0xb0 [ 0.020000] [] vgacon_startup+0x2bd/0x3e0 [ 0.020000] [] con_init+0x19/0x22f [ 0.020000] [] ? tty_register_ldisc+0x5c/0x70 [ 0.020000] [] console_init+0x20/0x2e [ 0.020000] [] start_kernel+0x20c/0x379 [ 0.020000] [] ? unknown_bootoption+0x0/0x1f6 [ 0.020000] [] __init_begin+0x99/0xa1 [ 0.020000] ======================= [ 0.020000] ---[ end trace 4eaa2a86a8e2da22 ]--- [ 0.020000] possible reason: unannotated irqs-on. [ 0.020000] irq event stamp: 0 which occurs if CONFIG_TRACE_IRQFLAGS=y, CONFIG_DEBUG_LOCKDEP=y, but CONFIG_PROVE_LOCKING is disabled. Signed-off-by: Ingo Molnar commit b4ba0ba24b57ec975482f4ba2d350fbee7557240 Merge: a033c33... bce7f79... Author: Ingo Molnar Date: Mon Jul 14 10:31:59 2008 +0200 Merge commit 'v2.6.26' into core/locking commit 5e34599fc8ba1e8889095bd56a71fd9802ed5a51 Author: Heiko Carstens Date: Mon Jul 14 09:59:46 2008 +0200 [S390] sclp_tty: Fix scheduling while atomic bug. Finally fixes a possible scheduling while in atomic context bug. The driver used to wait on a waitqueue if no empty buffer was available. This could lead to a deadlock if the driver was called from non-schedulable context. So fix this. The write operation may fail now. It returns the number of characters accepted. put_char will never fail, since it writes characters to an intermediate buffer which gets flushed as soon as it is full. That means the driver now can busy wait if something is in the intermediate buffer and a write_string operation follows. Seems to be an acceptable compromise, since that shouldn't happen too often. Cc: Peter Oberparleiter Signed-off-by: Heiko Carstens Cc: Martin Schwidefsky commit 095761d28ae43eae7d4504d49b0b952cf02b0188 Author: Heiko Carstens Date: Mon Jul 14 09:59:45 2008 +0200 [S390] sclp_tty: remove ioctl interface. After all we came to the conclusion that this interface doesn't make any sense. Besides that the ioctl number used was never registered, the header file isn't exported, and we doubt there is even a single user. So remove this interface, since it eases maintenance. Cc: Peter Oberparleiter Signed-off-by: Heiko Carstens Cc: Martin Schwidefsky commit 1d030370f09036e8dcb3cc40915f3f9cf92bb54c Author: Heiko Carstens Date: Mon Jul 14 09:59:44 2008 +0200 [S390] Remove P390 support. Most likely it is broken anyway because of the changes in memory detection. Since we can't test it and there are probably better ways that using a P390 card, remove support for it. Signed-off-by: Heiko Carstens Signed-off-by: Martin Schwidefsky commit a44008f2372684bacfab03de5039f68b613c5b53 Author: Christian Borntraeger Date: Mon Jul 14 09:59:43 2008 +0200 [S390] Cleanup vmcp printk messages. Signed-off-by: Christian Borntraeger Signed-off-by: Martin Schwidefsky Signed-off-by: Heiko Carstens commit 6b648063eb51e2620774ddaebef4e07f2f6f4ae7 Author: Klaus-D. Wacker Date: Mon Jul 14 09:59:42 2008 +0200 [S390] Cleanup lcs printk messages. Cc: Jeff Garzik Signed-off-by: Klaus-D. Wacker Signed-off-by: Martin Schwidefsky Signed-off-by: Heiko Carstens commit 5532bd0f8591a5f61cfe903646e1f55e047bae90 Author: Martin Schwidefsky Date: Mon Jul 14 09:59:41 2008 +0200 [S390] Cleanup kprobes printk messages. Signed-off-by: Martin Schwidefsky Signed-off-by: Heiko Carstens commit 0d130066801af8f0a0ea8c70c9c7374c51fd1a92 Author: Martin Schwidefsky Date: Mon Jul 14 09:59:40 2008 +0200 [S390] Cleanup vmwatch printk messages. Signed-off-by: Martin Schwidefsky Signed-off-by: Heiko Carstens commit ded77fb4dfcd6f84e564ddd9458208bf5b691c7f Author: Hongjie Yang Date: Mon Jul 14 09:59:39 2008 +0200 [S390] Cleanup dcssblk printk messages. Signed-off-by: Hongjie Yang Signed-off-by: Martin Schwidefsky Signed-off-by: Heiko Carstens commit 2a062ab483f5afd764fb20631ee960672946a4be Author: Michael Holzheu Date: Mon Jul 14 09:59:38 2008 +0200 [S390] Cleanup zfcp dumper printk messages. Signed-off-by: Michael Holzheu Signed-off-by: Martin Schwidefsky Signed-off-by: Heiko Carstens commit 2f6f2521bcfff108e02d97e3a326f995996ce95f Author: Martin Schwidefsky Date: Mon Jul 14 09:59:37 2008 +0200 [S390] Cleanup vmlogrdr printk messages. The message descriptions are still missing though .. Signed-off-by: Martin Schwidefsky Signed-off-by: Heiko Carstens commit 21b21fc4f4b03361ceec0c7eb6b7b0557d4ffe86 Author: Michael Holzheu Date: Mon Jul 14 09:59:36 2008 +0200 [S390] Cleanup s390 debug feature print messages. Signed-off-by: Michael Holzheu Signed-off-by: Martin Schwidefsky Signed-off-by: Heiko Carstens commit 2ca5b6e288d02503cba5a6d3409cb9a0600e01dd Author: Gerald Schaefer Date: Mon Jul 14 09:59:35 2008 +0200 [S390] Cleanup monreader printk messages. Signed-off-by: Gerald Schaefer Signed-off-by: Martin Schwidefsky Signed-off-by: Heiko Carstens commit d3ae942d185bdb9b84a661889fc3349044eeb260 Author: Gerald Schaefer Date: Mon Jul 14 09:59:34 2008 +0200 [S390] Cleanup appldata printk messages. Signed-off-by: Gerald Schaefer Signed-off-by: Martin Schwidefsky Signed-off-by: Heiko Carstens commit d5ddc809bf3e63a9cd6d02062f6a7c86bcff7fea Author: Martin Schwidefsky Date: Mon Jul 14 09:59:33 2008 +0200 [S390] Cleanup smsgiucv printk messages. Signed-off-by: Martin Schwidefsky Signed-off-by: Heiko Carstens commit d4ebabe8cae5a9265eb55b7f873b6b7d92c0cdd6 Author: Jan Glauber Date: Mon Jul 14 09:59:32 2008 +0200 [S390] Cleanup cpacf printk messages. Signed-off-by: Jan Glauber Signed-off-by: Martin Schwidefsky Signed-off-by: Heiko Carstens commit c4cef07cf39e18e9211a674d99cafde434b45a81 Author: Frank Blaschka Date: Mon Jul 14 09:59:31 2008 +0200 [S390] Cleanup qeth print messages. Cc: Jeff Garzik Signed-off-by: Frank Blaschka Signed-off-by: Martin Schwidefsky Signed-off-by: Heiko Carstens commit f082bcae72575714823ea2ea9447332642127d9c Author: Ursula Braun Date: Mon Jul 14 09:59:30 2008 +0200 [S390] Cleanup netiucv printk messages. Cc: Jeff Garzik Signed-off-by: Ursula Braun Signed-off-by: Heiko Carstens Signed-off-by: Martin Schwidefsky commit c2b4afd2f99a187ec3bbd6e2def186fbfb755929 Author: Ursula Braun Date: Mon Jul 14 09:59:29 2008 +0200 [S390] Cleanup iucv printk messages. Cc: David S. Miller Signed-off-by: Ursula Braun Signed-off-by: Martin Schwidefsky Signed-off-by: Heiko Carstens commit a12c53f4fa759b59654b6d5f21eb4070cd45cd54 Author: Martin Schwidefsky Date: Mon Jul 14 09:59:28 2008 +0200 [S390] Cleanup sclp printk messages. Signed-off-by: Martin Schwidefsky Signed-off-by: Heiko Carstens commit 1a89dd8f0b4d7eca2dd4abffb736f37676e1b073 Author: Felix Beck Date: Mon Jul 14 09:59:27 2008 +0200 [S390] Cleanup zcrypt printk messages. Signed-off-by: Felix Beck Signed-off-by: Martin Schwidefsky Signed-off-by: Heiko Carstens commit 26348f78e84613371eb657ca1e584153ccb7d596 Author: Martin Schwidefsky Date: Mon Jul 14 09:59:26 2008 +0200 [S390] Cleanup 3215 printk messages. Signed-off-by: Martin Schwidefsky Signed-off-by: Heiko Carstens commit a26182ed7171bff74caf5a55d4d3bdd6f400dfb5 Author: Martin Schwidefsky Date: Mon Jul 14 09:59:25 2008 +0200 [S390] Cleanup 3270 printk messages. Signed-off-by: Martin Schwidefsky Signed-off-by: Heiko Carstens commit 8df22b4b39c6a1679f471bd68f97cf6f6819571a Author: Martin Schwidefsky Date: Mon Jul 14 09:59:24 2008 +0200 [S390] Cleanup xpram printk messages. Signed-off-by: Martin Schwidefsky Signed-off-by: Heiko Carstens commit ca366a329ad8eff1230decd55b33fe23326862f6 Author: Martin Schwidefsky Date: Mon Jul 14 09:59:23 2008 +0200 [S390] Cleanup vtime printk messages. Signed-off-by: Martin Schwidefsky Signed-off-by: Heiko Carstens commit c78aa6cbace460081ddc6227f02b6d3203a21585 Author: Michael Ernst Date: Mon Jul 14 09:59:22 2008 +0200 [S390] Cleanup cio printk messages. Unnecessary dev_info, dev_warn and printk messages are removed. Signed-off-by: Michael Ernst Signed-off-by: Martin Schwidefsky Signed-off-by: Heiko Carstens commit 23d1742179170b69e61ac9166248ffd64857e55a Author: Heiko Carstens Date: Mon Jul 14 09:59:21 2008 +0200 [S390] Move memory detection code to own file. Move memory detection code to own file and also simplify it. Also add an interface which can be called at any time to get the current memory layout. This interface is needed by our kernel internal system dumper. Cc: Peter Oberparleiter Cc: Michael Holzheu Cc: Frank Munzert Signed-off-by: Heiko Carstens Signed-off-by: Martin Schwidefsky commit ef60cd13ecee0ccf2439d63013cbfc798aea2bb9 Author: Sebastian Ott Date: Mon Jul 14 09:59:20 2008 +0200 [S390] cio: fix double unregistering of subchannels In some cases where the channel subsystem decides to drop a subchannel device device_unregister may be called twice, which results in an oops. The patch prevents this by only unregistering registered devices. Signed-off-by: Sebastian Ott Signed-off-by: Heiko Carstens Signed-off-by: Martin Schwidefsky commit e0bc24958e1305efe176adc9d5f23a09e84c0058 Author: Heiko Carstens Date: Mon Jul 14 09:59:19 2008 +0200 [S390] Add support for memory hot-add via sclp. Cc: Peter Oberparleiter Cc: Gerald Schaefer Signed-off-by: Heiko Carstens Signed-off-by: Martin Schwidefsky commit 421c175c4d609864350df495b34d3e99f9fb1bdd Author: Heiko Carstens Date: Mon Jul 14 09:59:18 2008 +0200 [S390] Add support for memory hot-add. Cc: Gerald Schaefer Signed-off-by: Heiko Carstens Signed-off-by: Martin Schwidefsky commit 0788fea4d583a3b7d199696819940ff3387d79a3 Author: Akinobu Mita Date: Mon Jul 14 09:59:17 2008 +0200 [S390] s390: use memory_read_from_buffer() Signed-off-by: Akinobu Mita Cc: Michael Holzheu Signed-off-by: Andrew Morton Signed-off-by: Heiko Carstens Signed-off-by: Martin Schwidefsky commit a29591c47524dde594c84a279a5f1827e688a4c4 Author: Akinobu Mita Date: Mon Jul 14 09:59:16 2008 +0200 [S390] s390: use simple_read_from_buffer() Signed-off-by: Akinobu Mita Signed-off-by: Andrew Morton Signed-off-by: Heiko Carstens Signed-off-by: Martin Schwidefsky commit d9cef21af03eb56473db5bb20d8754f377a498e7 Author: Akinobu Mita Date: Mon Jul 14 09:59:15 2008 +0200 [S390] s390/cio: use memory_read_from_buffer() Signed-off-by: Akinobu Mita Cc: Peter Oberparleiter Signed-off-by: Andrew Morton Signed-off-by Heiko Carstens Signed-off-by: Martin Schwidefsky commit 7785857a5a4f3e2093ced12568744a205e164d59 Author: Akinobu Mita Date: Mon Jul 14 09:59:14 2008 +0200 [S390] s390/vmcp: use simple_read_from_buffer() Signed-off-by: Akinobu Mita Cc: Christian Borntraeger Signed-off-by: Andrew Morton Signed-off-by: Heiko Carstens Signed-off-by: Martin Schwidefsky commit 3ca1c9907a352140bc83366511182b6ac776d8ee Author: Julia Lawall Date: Mon Jul 14 09:59:13 2008 +0200 [S390] drivers/s390: Eliminate NULL test and memset after alloc_bootmem As noted by Akinobu Mita in patch b1fceac2b9e04d278316b2faddf276015fc06e3b, alloc_bootmem and related functions never return NULL and always return a zeroed region of memory. Thus a NULL test or memset after calls to these functions is unnecessary. drivers/s390/char/raw3270.c | 11 +---------- drivers/s390/char/sclp_con.c | 2 -- 2 files changed, 1 insertion(+), 12 deletions(-) This was fixed using the following semantic patch. (http://www.emn.fr/x-info/coccinelle/) // @@ expression E; statement S; @@ E = \(alloc_bootmem\|alloc_bootmem_low\|alloc_bootmem_pages\|alloc_bootmem_low_pages\)(...) ... when != E ( - BUG_ON (E == NULL); | - if (E == NULL) S ) @@ expression E,E1; @@ E = \(alloc_bootmem\|alloc_bootmem_low\|alloc_bootmem_pages\|alloc_bootmem_low_pages\)(...) ... when != E - memset(E,0,E1); // Signed-off-by: Julia Lawall Signed-off-by: Heiko Carstens Signed-off-by: Martin Schwidefsky commit 402a3998ba6ba81bae6ac586ada55a0dd6a7c287 Author: Julia Lawall Date: Mon Jul 14 09:59:12 2008 +0200 [S390] arch/s390: Eliminate NULL test and memset after alloc_bootmem As noted by Akinobu Mita in patch b1fceac2b9e04d278316b2faddf276015fc06e3b, alloc_bootmem and related functions never return NULL and always return a zeroed region of memory. Thus a NULL test or memset after calls to these functions is unnecessary. arch/s390/kernel/topology.c | 2 -- 1 file changed, 2 deletions(-) This was fixed using the following semantic patch. (http://www.emn.fr/x-info/coccinelle/) // @@ expression E; statement S; @@ E = \(alloc_bootmem\|alloc_bootmem_low\|alloc_bootmem_pages\|alloc_bootmem_low_pages\)(...) ... when != E ( - BUG_ON (E == NULL); | - if (E == NULL) S ) @@ expression E,E1; @@ E = \(alloc_bootmem\|alloc_bootmem_low\|alloc_bootmem_pages\|alloc_bootmem_low_pages\)(...) ... when != E - memset(E,0,E1); // Signed-off-by: Julia Lawall Signed-off-by: Heiko Carstens Signed-off-by: Martin Schwidefsky commit 9789db08c020193ae18826c3aa48bd24296f7848 Author: Heiko Carstens Date: Mon Jul 14 09:59:11 2008 +0200 [S390] Add sched.h include to asm-s390/pgtable.h. Some macros in pgtable.h access members from struct task_struct. Currently always works since sched.h seems always to be included before asm/pgtable.h. Unfortunately that is not anymore true with Jeremy Fitzhardinge's ptep_modify_prot transaction abstraction patch. So fix this. Signed-off-by: Heiko Carstens Signed-off-by: Martin Schwidefsky commit d8c33d32a4c4f326579e7c2960492512de74662b Author: Ralph Wuerthner Date: Mon Jul 14 09:59:10 2008 +0200 [S390] zcrypt: Add additional card IDs to CEX2C and CEX2A Add support for new micro code load of CEX2C and CEX2A adapters, which uses different IDs. This patch just adds the IDs to the existing drivers. Signed-off-by: Ralph Wuerthner Signed-off-by: Martin Schwidefsky Signed-off-by: Heiko Carstens commit a0443fbb467af5e5930b9b059b52190605f70059 Author: Hendrik Brueckner Date: Mon Jul 14 09:59:09 2008 +0200 [S390] Extra Kernel Parameters via VMPARM Now it is possible to specify additional kernel parameters on the IPL command line using the IPL PARM option. If the Linux system is already running, the new reipl sysfs attribute 'parm' can be used to change kernel parameters for the next reboot. Examples: IPL C PARM dasd=1234 root=/dev/dasda1 IPL 1234 PARM savesys=mylnxnss echo "init=/bin/bash" > /sys/firmware/reipl/ccw/parm Signed-off-by: Hendrik Brueckner Signed-off-by: Martin Schwidefsky Signed-off-by: Heiko Carstens commit fe1372306149d8c8a68d43765e7caea2377003b6 Author: Felix Beck Date: Mon Jul 14 09:59:08 2008 +0200 [S390] ap: Use high-resolution timer for polling The ap poll mechanism is converted to use a high-resolution timer for polling. This allows more specific polling. With this a new sysfs attribute is introduced to specify the polling rate in nanoseconds. Signed-off-by: Felix Beck Signed-off-by: Martin Schwidefsky Signed-off-by: Heiko Carstens commit ad211790c040fae3459e9c4c8cbd681ae126d2b8 Author: Peter Oberparleiter Date: Mon Jul 14 09:59:07 2008 +0200 [S390] sclp: simplify vt220 cleanup logic Fix a number of sclp_vt220 cleanup problems: * fix list_empty check after list_del() * mark init-only flag as __initdata * remove implicit dependency between slab_available() and num_pages * straighten multiple init handling (use init count) Signed-off-by: Peter Oberparleiter Signed-off-by: Martin Schwidefsky Signed-off-by: Heiko Carstens commit 773922e1dab93a62e60cfb34afadb0f66d5f12e9 Author: Heiko Carstens Date: Mon Jul 14 09:59:06 2008 +0200 [S390] idle: remove idle notifier chain. The idle notifier chain consists of at most one element. So there's no point in having a notifier chain. Remove it and directly call the function. Signed-off-by: Heiko Carstens Signed-off-by: Martin Schwidefsky commit 9d92a7e1b0d095c8be96ce5e592c6c5541684631 Author: Cornelia Huck Date: Mon Jul 14 09:59:05 2008 +0200 [S390] cio: Add chsc subchannel driver. This patch adds a driver for subchannels of type chsc. A device /dev/chsc is created which may be used to issue ioctls to: - obtain information about the machine's I/O configuration - dynamically change the machine's I/O configuration via asynchronous chsc commands Signed-off-by: Cornelia Huck Signed-off-by: Martin Schwidefsky Signed-off-by: Heiko Carstens commit 683c5418e6ac9f40f925dab6f547a5b0a4ad43c6 Author: Peter Oberparleiter Date: Mon Jul 14 09:59:04 2008 +0200 [S390] cio: suppress chpid event in case of configure error Do not send CHP_ONLINE/CHP_OFFLINE events to subchannel drivers when a channel-path configure request failed. Signed-off-by: Peter Oberparleiter Signed-off-by: Martin Schwidefsky Signed-off-by: Heiko Carstens commit f08adc008d84f6b03d377ede951e29ed169e76e2 Author: Cornelia Huck Date: Mon Jul 14 09:59:03 2008 +0200 [S390] css: Use css_device_id for bus matching. css_device_id exists, so use it for determining the right driver (and add a match_flags which is always 1 for valid types). Signed-off-by: Cornelia Huck Signed-off-by: Martin Schwidefsky Signed-off-by: Heiko Carstens commit 99611f87176b2a908d8c66ab19a5fc550a3cd13a Author: Cornelia Huck Date: Mon Jul 14 09:59:02 2008 +0200 [S390] cio: Repair chpid event handling. Passing the affected chpid in chp_event() worked only by chance since chpid is the first element in res_acc_data. Make it work properly by generalizing res_acc_data as chp_link and always passing around a properly filled out chp_link structure in chp_event(). Signed-off-by: Cornelia Huck Signed-off-by: Martin Schwidefsky Signed-off-by: Heiko Carstens commit 6ef556ccc8fd256259745c4f0d0ab65aaf703824 Author: Cornelia Huck Date: Mon Jul 14 09:59:01 2008 +0200 [S390] cio: Use isc_{register,unregister}. Use the new isc registration functions for all places that need an I/O interruption subclass. Signed-off-by: Cornelia Huck Signed-off-by: Martin Schwidefsky Signed-off-by: Heiko Carstens commit fcc6ab335ba4d0f2b2548a910466c0dac767e5b1 Author: Sebastian Ott Date: Mon Jul 14 09:59:00 2008 +0200 [S390] cio: introduce isc_(un)register functions. This interface makes it easy for drivers to register usage of different I/O interruption subclasses without needing to worry about possible other users of the same isc. Signed-off-by: Sebastian Ott Signed-off-by: Martin Schwidefsky Signed-off-by: Heiko Carstens commit da7c5af82879828409f6b81431ac2f9f353ab04e Author: Cornelia Huck Date: Mon Jul 14 09:58:59 2008 +0200 [S390] cio: Allow adapter interrupt handlers per isc. Enhance the adapter interruption API so that device drivers can register a handler for a specific interruption subclass. This will allow different device drivers to move to differently prioritized subclasses in order to avoid congestion. Signed-off-by: Cornelia Huck Signed-off-by: Martin Schwidefsky Signed-off-by: Heiko Carstens commit 3a3fc29a6d0626fb4897b7391c4e956efbacd394 Author: Cornelia Huck Date: Mon Jul 14 09:58:58 2008 +0200 [S390] cio: Introduce abstract isc definitions. Replace the numeric values for I/O interruption subclass usage with abstract definitions and collect them all in asm/isc.h. This gives us a better overview of which iscs are actually used and makes it possible to better spread out isc usage in the future. Signed-off-by: Cornelia Huck Signed-off-by: Martin Schwidefsky Signed-off-by: Heiko Carstens commit 75784c00876c88ca6e955c39cbb5d47cf408fd3c Author: Cornelia Huck Date: Mon Jul 14 09:58:57 2008 +0200 [S390] cio: Get rid of css_characteristics_avail. Checking for the validity of the css_*_characteristics is superfluous since they stay 0 for non-successful scsc. Signed-off-by: Cornelia Huck Signed-off-by: Martin Schwidefsky Signed-off-by: Heiko Carstens commit d2fec595511b5718bdb65645b3d5d99800d97943 Author: Martin Schwidefsky Date: Mon Jul 14 09:58:56 2008 +0200 [S390] stp support. Add support for clock synchronization with the server time protocol. Signed-off-by: Martin Schwidefsky Signed-off-by: Heiko Carstens commit 761cdf6aacdb76f819050f4938cdab1f4cdcb945 Author: Heiko Carstens Date: Mon Jul 14 09:58:55 2008 +0200 [S390] initrd vs bss section clearing. In case the initrd is located within the bss section it will be overwritten when the section is cleared. To prevent this just move the initrd right behind the bss section if it starts within the section. The current code already moves the initrd if the bootmem allocator bitmap would overwrite it. With this patch we should be safe against initrd corruptions. Cc: Peter Oberparleiter Signed-off-by: Heiko Carstens Signed-off-by: Martin Schwidefsky commit 63506c41986c4af9d4fd6f3490e98e335f3dc8f5 Author: Martin Schwidefsky Date: Mon Jul 14 09:58:54 2008 +0200 [S390] Introduce user_regset accessors for s390 Add the user_regset definitions for normal and compat processes, replace the dump_regs core dump cruft with the generic CORE_DUMP_USER_REGSET and replace binfmt_elf32.c with the generic compat_binfmt_elf.c implementation. Signed-off-by: Martin Schwidefsky Signed-off-by: Heiko Carstens commit ae437a452ed20f9d13c1f17b0356201d54394efa Author: Sebastian Ott Date: Mon Jul 14 09:58:53 2008 +0200 [S390] cio: remove lock from ccw_device_oper_notify. Remove unnecessary ccw device locking inside ccw_device_oper_notify. Signed-off-by: Sebastian Ott Acked-by: Cornelia Huck Signed-off-by: Martin Schwidefsky Signed-off-by: Heiko Carstens commit 23f626894765d4c03b72a0d21e44bc46f5ccd12b Author: Peter Oberparleiter Date: Mon Jul 14 09:58:52 2008 +0200 [S390] cio: provide helper functions for fcx enabled I/O Provide functions which can be used to incrementally construct fcx enabled I/O control blocks. Signed-off-by: Peter Oberparleiter Signed-off-by: Martin Schwidefsky Signed-off-by: Heiko Carstens commit 83262d6349e60b9d10798d489719d80029c00798 Author: Peter Oberparleiter Date: Mon Jul 14 09:58:51 2008 +0200 [S390] cio: provide functions for fcx enabled I/O Provide functions for assembling and starting fcx enabled I/O request blocks. Signed-off-by: Peter Oberparleiter Signed-off-by: Martin Schwidefsky Signed-off-by: Heiko Carstens commit 23d805b647db6c2063a13089497615efa9deacdd Author: Peter Oberparleiter Date: Mon Jul 14 09:58:50 2008 +0200 [S390] cio: introduce fcx enabled scsw format Extend the scsw data structure to the format required by fcx. Also provide helper functions for easier access to fields which are present in both the traditional as well as the modified format. Signed-off-by: Peter Oberparleiter Signed-off-by: Martin Schwidefsky Signed-off-by: Heiko Carstens commit 4f2bd92e3b4f3b6405c5aadae3ad64acd94cdb78 Author: Peter Oberparleiter Date: Mon Jul 14 09:58:49 2008 +0200 [S390] cio: introduce fcx bit to chsc characteristics Introduce fcx bit to chsc characteristics. Signed-off-by: Peter Oberparleiter Signed-off-by: Martin Schwidefsky Signed-off-by: Heiko Carstens commit b3a686f47a3615fcfec0a01c4103c50bb9621369 Author: Cornelia Huck Date: Mon Jul 14 09:58:48 2008 +0200 [S390] cio: Base message subchannel handling. Signed-off-by: Cornelia Huck Signed-off-by: Martin Schwidefsky Signed-off-by: Heiko Carstens commit 44a1c19e3b47a7ac596808177ccd250b95f5e688 Author: Cornelia Huck Date: Mon Jul 14 09:58:47 2008 +0200 [S390] cio: Export some symbols for modular css drivers. Signed-off-by: Cornelia Huck Signed-off-by: Martin Schwidefsky Signed-off-by: Heiko Carstens commit c11561897ab57a3c11e0a284ba17795d580589ab Author: Cornelia Huck Date: Mon Jul 14 09:58:46 2008 +0200 [S390] cio: Cleanup crw interface. Eliminate the need for the machine check handler to call into the common I/O layer directly by introducing an interface to register handlers for crws per rsc. Signed-off-by: Cornelia Huck Signed-off-by: Martin Schwidefsky Signed-off-by: Heiko Carstens commit c820de39bd083222f5be2563181c87493e436f7c Author: Cornelia Huck Date: Mon Jul 14 09:58:45 2008 +0200 [S390] cio: Rework css driver. Rework the css driver methods to provide sane callbacks for subchannels of all types. As a bonus, this cleans up and simplyfies the machine check handling for I/O subchannels a lot. Signed-off-by: Cornelia Huck Signed-off-by: Martin Schwidefsky Signed-off-by: Heiko Carstens commit 7e9db9eaefdb8798730790214ff1b7746006ec98 Author: Cornelia Huck Date: Mon Jul 14 09:58:44 2008 +0200 [S390] cio: Introduce modalias for css bus. Add modalias and subchannel type attributes for all subchannels. I/O subchannel specific attributes are now created in io_subchannel_probe(). modalias and subchannel type are also added to the uevent for the css bus. Also make the css modalias known. Signed-off-by: Cornelia Huck Signed-off-by: Martin Schwidefsky Signed-off-by: Heiko Carstens commit 0ae7a7b250bdf7ee87c8346164ef3c47fb79dfbd Author: Cornelia Huck Date: Mon Jul 14 09:58:43 2008 +0200 [S390] cio: Register all subchannels. Register all valid subchannels, not only I/O subchannels. Move I/O subchannel specific initialization to io_subchannel_probe(). Signed-off-by: Cornelia Huck Signed-off-by: Martin Schwidefsky Signed-off-by: Heiko Carstens commit b4a33acb690525c5ca37e177f5cd26c62d3ef976 Author: Heiko Carstens Date: Mon Jul 14 09:57:29 2008 +0200 [S390] Remove ipldelay kernel parameter. Using the ipldelay kernel parameter leads to a crash at IPL time. Since this is broken since a long time it looks like nobody is using it anymore. So remove it instead of fixing it. Signed-off-by: Heiko Carstens Signed-off-by: Martin Schwidefsky commit b9732ca1cb2c18129d2f984b8de02db141b7b830 Author: Heiko Carstens Date: Mon Jul 14 09:57:28 2008 +0200 [S390] sclp: fix possible deadlock on cpu rescan. smp_rescan_cpus() calls get_online_cpus() from a multithreaded workqueue context. This may deadlock. This is the same bug as in arch/s390/kernel/topology.c. This patch can be reverted as soon as Oleg's patch gets merged. Signed-off-by: Heiko Carstens Signed-off-by: Martin Schwidefsky commit 0c3252d58c54c87ee0f8f40d840e0146a3b1d5fd Author: Gerald Schaefer Date: Mon Jul 14 09:57:27 2008 +0200 [S390] make appldata compile w/o CONFIG_SWAP Avoid compile error by using EXPORT_SYMBOL_GPL(si_swapinfo) only if CONFIG_SWAP is set. Signed-off-by: Gerald Schaefer Signed-off-by: Martin Schwidefsky Signed-off-by: Heiko Carstens commit 887d935a84df41f154508821c6b7d96de7dc2c41 Author: Heiko Carstens Date: Mon Jul 14 09:57:26 2008 +0200 [S390] sclp: keep facility mask up to date. In case the supported sclp facilities change the new mask should be saved. Cc: Peter Oberparleiter Signed-off-by: Heiko Carstens Signed-off-by: Martin Schwidefsky commit bb0ca330a7e273cdecebae0283c9d267f60fe363 Author: Ursula Braun Date: Mon Jul 14 09:57:25 2008 +0200 [S390] qdio: Repair timeout handling for qdio_shutdown If qdio shutdown runs in parallel with a channel error, the qdio_timeout_handler might not be triggered. In this case neither state INACTIVE nor state ERR is reached and the following wait_event hangs forever. Solution: do not make use of ccw_device_set_timeout(), but add a timeout to the following wait_event. And make sure, wake_up is called in case of an i/o error on the qdio-device. Signed-off-by: Ursula Braun Signed-off-by: Martin Schwidefsky Signed-off-by: Heiko Carstens commit b1c02d9110e72ec510ec9b038f9564e3c0d87384 Author: Michael Ernst Date: Mon Jul 14 09:57:24 2008 +0200 [S390] cio: Use locks when accessing /sys/firmware/cpi data. Mutex locks are used to avoid problems when /sys/firmware/cpi data are accessed to in parallel. Signed-off-by: Michael Ernst Signed-off-by: Martin Schwidefsky Signed-off-by: Heiko Carstens commit 9689b336e193680fc0fcaa33829dc670637e9c98 Author: Cornelia Huck Date: Mon Jul 14 09:57:23 2008 +0200 [S390] cio: Clear correct bit in cio_release_console(). Fallout from the console isc 7 -> 1 change. Signed-off-by: Cornelia Huck Signed-off-by: Martin Schwidefsky Signed-off-by: Heiko Carstens commit 727c6742c29e46177951fdc8f6758085e03bb981 Author: Larry Finger Date: Sun Jul 13 12:46:36 2008 -0500 pcmcia: Fix ide-cs sparse warning Sparse shows the following warning: CHECK drivers/ide/legacy/ide-cs.c drivers/ide/legacy/ide-cs.c:378:6: warning: symbol 'ide_release' was not declared. Should it be static? Signed-off-by: Larry Finger CC: Bartlomiej Zolnierkiewicz Signed-off-by: Dominik Brodowski commit fe0a3fe324811385b64790d42079bf534798a0cd Author: Jaroslav Kysela Date: Mon Jul 14 09:54:43 2008 +0200 ALSA: Release v1.0.17 Signed-off-by: Jaroslav Kysela commit 2387ce57a8167490d3b34a7e1ffa9a64a1a76244 Author: Yinghai Lu Date: Sun Jul 13 14:50:56 2008 -0700 x86: make 64bit hpet_set_mapping to use ioremap too, v2 keep the one for VSYSCALL_HPET Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit 87a1c441e1aeaf00f97e63dfc310ea7684ec9dda Author: Yinghai Lu Date: Sun Jul 13 14:30:35 2008 -0700 x86: get x86_phys_bits early when try to make hpet_enable use io_remap instead fixmap got ioremap: invalid physical address fed00000 ------------[ cut here ]------------ WARNING: at arch/x86/mm/ioremap.c:161 __ioremap_caller+0x8c/0x2f3() Modules linked in: Pid: 0, comm: swapper Not tainted 2.6.26-rc9-tip-01873-ga9827e7-dirty #358 Call Trace: [] warn_on_slowpath+0x6c/0xa7 [] ? __slab_alloc+0x20a/0x3fb [] ? mpol_new+0x88/0x17d [] ? mcount_call+0x5/0x31 [] ? mcount_call+0x5/0x31 [] __ioremap_caller+0x8c/0x2f3 [] ? hpet_enable+0x39/0x241 [] ? mcount_call+0x5/0x31 [] ioremap_nocache+0x2a/0x40 [] hpet_enable+0x39/0x241 [] hpet_time_init+0x21/0x4e [] start_kernel+0x302/0x395 [] x86_64_start_reservations+0xb9/0xd4 [] ? x86_64_init_pda+0x39/0x4f [] x86_64_start_kernel+0xec/0x107 ---[ end trace a7919e7f17c0a725 ]--- it seems for amd system that is set later... try to move setting early in early_identify_cpu. and remove same code for intel and centaur. Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit 32b23e9a7331fce57eb0af52e19e8409fdef831b Author: Yinghai Lu Date: Sun Jul 13 14:29:41 2008 -0700 x86: max_low_pfn_mapped fix #4 only add direct mapping for aperture Signed-off-by: Yinghai Lu Cc: Suresh Siddha Signed-off-by: Ingo Molnar commit 80ca9a706b458d09b8cc8d5258bb61957f66ca5e Author: Milton Miller Date: Sun Jul 13 13:58:12 2008 +0200 ALSA: correct kcalloc usage kcalloc is supposed to be called with the count as its first argument and the element size as the second. Both arguments are size_t so does not affect correctness. This callsite is during module_init and therefore not performance critical. Another patch will optimize the case when the count is variable but the size is fixed. Signed-off-by: Milton Miller Signed-off-by: Andrew Morton Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit 862c2c0a61c515f2e9f63f689215bcf99a607eaf Author: Thomas Bogendoerfer Date: Sat Jul 12 22:43:50 2008 +0200 ALSA: ALSA driver for SGI O2 audio board This patch adds a new ALSA driver for the audio device found inside most of the SGI O2 workstation. The hardware uses a SGI custom chip, which feeds a AD codec chip. Signed-off-by: Thomas Bogendoerfer Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit 1e066322c26562621811effb1eb14097bc67a9ee Author: Liam Girdwood Date: Fri Jul 11 14:05:17 2008 +0100 ALSA: asoc: kbuild - only show menus for the current ASoC CPU platform. We don't want to see ASoC platform menus for other non selected architectures in our config. Signed-off-by: Liam Girdwood Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit 787dba37a6ff5c80c67f37c081712a6e4af92e25 Author: Thomas Bogendoerfer Date: Sat Jul 12 12:12:20 2008 +0200 ALSA: ALSA driver for SGI HAL2 audio device This patch adds a new ALSA driver for the audio device found inside many older SGI workstation (Indy, Indigo2). The hardware uses a SGI custom chip, which feeds two codec chips, an IEC chip and a synth chip. Currently only one of the codecs is supported. This driver already has the same functionality as the HAL2 OSS driver and will replace it. Signed-off-by: Thomas Bogendoerfer Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit 9e4641541e9681a568483133813332cfafa34d86 Author: Takashi Iwai Date: Sat Jul 12 12:05:25 2008 +0200 ALSA: hda - Fix FSC V5505 model model=laptop-hpmicsense matches better to FSC V5505 laptop. Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit 86376df6ad0f1a7a1118cd53b0cfd679524f5436 Author: Takashi Iwai Date: Sat Jul 12 12:04:05 2008 +0200 ALSA: hda - Fix missing init for unsol events on micsense model Fixed the missing initialization for unsolicited events on Cx5045 micsense model. Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit 4090dffb1438e03a434e3747b14321440561d956 Author: Takashi Iwai Date: Sat Jul 12 12:02:45 2008 +0200 ALSA: hda - Fix internal mic vref pin setup Set the vref80 to the internal mic pin 0x12 for Cx5045. Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit f7c5dda23a9f4b7f8977612154daef44cc0f423b Author: Matthew Ranostay Date: Thu Jul 10 17:49:11 2008 +0200 ALSA: hda: 92hd71bxx PC Beep Added volume controls for the analog PC Beep on 92hd71bxx codecs. Signed-off-by: Matthew Ranostay Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit 6f0f0fd496333777d53daff21a4e3b28c4d03a6d Author: James Morris Date: Thu Jul 10 17:02:07 2008 +0900 security: remove register_security hook The register security hook is no longer required, as the capability module is always registered. LSMs wishing to stack capability as a secondary module should do so explicitly. Signed-off-by: James Morris Acked-by: Stephen Smalley Acked-by: Greg Kroah-Hartman commit 93cbace7a058bce7f99319ef6ceff4b78cf45051 Author: Miklos Szeredi Date: Thu Jul 10 11:10:09 2008 +0200 security: remove dummy module fix Fix small oversight in "security: remove dummy module": CONFIG_SECURITY_FILE_CAPABILITIES doesn't depend on CONFIG_SECURITY Signed-off-by: Miklos Szeredi Signed-off-by: James Morris commit 5915eb53861c5776cfec33ca4fcc1fd20d66dd27 Author: Miklos Szeredi Date: Thu Jul 3 20:56:05 2008 +0200 security: remove dummy module Remove the dummy module and make the "capability" module the default. Compile and boot tested. Signed-off-by: Miklos Szeredi Acked-by: Serge Hallyn Signed-off-by: James Morris commit b478a9f9889c81e88077d1495daadee64c0af541 Author: Miklos Szeredi Date: Thu Jul 3 20:56:04 2008 +0200 security: remove unused sb_get_mnt_opts hook The sb_get_mnt_opts() hook is unused, and is superseded by the sb_show_options() hook. Signed-off-by: Miklos Szeredi Acked-by: James Morris commit 2069f457848f846cb31149c9aa29b330a6b66d1b Author: Eric Paris Date: Fri Jul 4 09:47:13 2008 +1000 LSM/SELinux: show LSM mount options in /proc/mounts This patch causes SELinux mount options to show up in /proc/mounts. As with other code in the area seq_put errors are ignored. Other LSM's will not have their mount options displayed until they fill in their own security_sb_show_options() function. Signed-off-by: Eric Paris Signed-off-by: Miklos Szeredi Signed-off-by: James Morris commit 811f3799279e567aa354c649ce22688d949ac7a9 Author: Eric Paris Date: Wed Jun 18 09:50:04 2008 -0400 SELinux: allow fstype unknown to policy to use xattrs if present Currently if a FS is mounted for which SELinux policy does not define an fs_use_* that FS will either be genfs labeled or not labeled at all. This decision is based on the existence of a genfscon rule in policy and is irrespective of the capabilities of the filesystem itself. This patch allows the kernel to check if the filesystem supports security xattrs and if so will use those if there is no fs_use_* rule in policy. An fstype with a no fs_use_* rule but with a genfs rule will use xattrs if available and will follow the genfs rule. This can be particularly interesting for things like ecryptfs which actually overlays a real underlying FS. If we define excryptfs in policy to use xattrs we will likely get this wrong at times, so with this path we just don't need to define it! Overlay ecryptfs on top of NFS with no xattr support: SELinux: initialized (dev ecryptfs, type ecryptfs), uses genfs_contexts Overlay ecryptfs on top of ext4 with xattr support: SELinux: initialized (dev ecryptfs, type ecryptfs), uses xattr It is also useful as the kernel adds new FS we don't need to add them in policy if they support xattrs and that is how we want to handle them. Signed-off-by: Eric Paris Acked-by: Stephen Smalley Signed-off-by: James Morris commit 65fc7668006b537f7ae8451990c0ed9ec882544e Author: James Morris Date: Thu Jun 12 01:00:10 2008 +1000 security: fix return of void-valued expressions Fix several warnings generated by sparse of the form "returning void-valued expression". Signed-off-by: James Morris Acked-by: Casey Schaufler Acked-by: Serge Hallyn commit 2baf06df85b27c1d64867883a0692519594f1ef2 Author: James Morris Date: Thu Jun 12 01:42:35 2008 +1000 SELinux: use do_each_thread as a proper do/while block Use do_each_thread as a proper do/while block. Sparse complained. Signed-off-by: James Morris Acked-by: Stephen Smalley commit e399f98224a03d2e85fb45eacba367c47173f6f9 Author: James Morris Date: Thu Jun 12 01:39:58 2008 +1000 SELinux: remove unused and shadowed addrlen variable Remove unused and shadowed addrlen variable. Picked up by sparse. Signed-off-by: James Morris Acked-by: Stephen Smalley Acked-by: Paul Moore commit 6cbe27061a69ab89d25dbe42d1a4f33a8425fe88 Author: Eric Paris Date: Mon Jun 9 16:51:37 2008 -0400 SELinux: more user friendly unknown handling printk I've gotten complaints and reports about people not understanding the meaning of the current unknown class/perm handling the kernel emits on every policy load. Hopefully this will make make it clear to everyone the meaning of the message and won't waste a printk the user won't care about anyway on systems where the kernel and the policy agree on everything. Signed-off-by: Eric Paris Signed-off-by: James Morris commit 22df4adb049a5cbb340dd935f5bbfa1ab3947562 Author: Stephen Smalley Date: Mon Jun 9 16:03:56 2008 -0400 selinux: change handling of invalid classes (Was: Re: 2.6.26-rc5-mm1 selinux whine) On Mon, 2008-06-09 at 01:24 -0700, Andrew Morton wrote: > Getting a few of these with FC5: > > SELinux: context_struct_compute_av: unrecognized class 69 > SELinux: context_struct_compute_av: unrecognized class 69 > > one came out when I logged in. > > No other symptoms, yet. Change handling of invalid classes by SELinux, reporting class values unknown to the kernel as errors (w/ ratelimit applied) and handling class values unknown to policy as normal denials. Signed-off-by: Stephen Smalley Acked-by: Eric Paris Signed-off-by: James Morris commit 89abd0acf0335f3f760a3c0698d43bb1eaa83e44 Author: Eric Paris Date: Mon Jun 9 15:58:04 2008 -0400 SELinux: drop load_mutex in security_load_policy We used to protect against races of policy load in security_load_policy by using the load_mutex. Since then we have added a new mutex, sel_mutex, in sel_write_load() which is always held across all calls to security_load_policy we are covered and can safely just drop this one. Signed-off-by: Eric Paris Acked-by: Stephen Smalley Signed-off-by: James Morris commit cea78dc4ca044e9666e8f5d797ec50ab85253e49 Author: Eric Paris Date: Mon Jun 9 15:43:12 2008 -0400 SELinux: fix off by 1 reference of class_to_string in context_struct_compute_av The class_to_string array is referenced by tclass. My code mistakenly was using tclass - 1. If the proceeding class is a userspace class rather than kernel class this may cause a denial/EINVAL even if unknown handling is set to allow. The bug shouldn't be allowing excess privileges since those are given based on the contents of another array which should be correctly referenced. At this point in time its pretty unlikely this is going to cause problems. The most recently added kernel classes which could be affected are association, dccp_socket, and peer. Its pretty unlikely any policy with handle_unknown=allow doesn't have association and dccp_socket undefined (they've been around longer than unknown handling) and peer is conditionalized on a policy cap which should only be defined if that class exists in policy. Signed-off-by: Eric Paris Acked-by: Stephen Smalley Signed-off-by: James Morris commit bdd581c1439339f1d3e8446b83e0f1beaef294e9 Author: James Morris Date: Fri Jun 6 18:50:12 2008 +1000 SELinux: open code sidtab lock Open code sidtab lock to make Andrew Morton happy. Signed-off-by: James Morris Acked-by: Stephen Smalley commit 972ccac2b237967ed7e56a50eb181b5a0a484b79 Author: James Morris Date: Fri Jun 6 18:43:26 2008 +1000 SELinux: open code load_mutex Open code load_mutex as suggested by Andrew Morton. Signed-off-by: James Morris commit 0804d1133c02cbdfba0055de774f2c21a8b777dc Author: James Morris Date: Fri Jun 6 18:40:29 2008 +1000 SELinux: open code policy_rwlock Open code policy_rwlock, as suggested by Andrew Morton. Signed-off-by: James Morris Acked-by: Stephen Smalley commit 59dbd1ba9847837aa7095f3e4a29599dae412ac4 Author: Stephen Smalley Date: Thu Jun 5 09:48:51 2008 -0400 selinux: fix endianness bug in network node address handling Fix an endianness bug in the handling of network node addresses by SELinux. This yields no change on little endian hardware but fixes the incorrect handling on big endian hardware. The network node addresses are stored in network order in memory by checkpolicy, not in cpu/host order, and thus should not have cpu_to_le32/le32_to_cpu conversions applied upon policy write/read unlike other data in the policy. Bug reported by John Weeks of Sun, who noticed that binary policy files built from the same policy source on x86 and sparc differed and tracked it down to the ipv4 address handling in checkpolicy. Signed-off-by: Stephen Smalley Signed-off-by: James Morris commit 242631c49d4cf39642741d6627750151b058233b Author: Stephen Smalley Date: Thu Jun 5 09:21:28 2008 -0400 selinux: simplify ioctl checking Simplify and improve the robustness of the SELinux ioctl checking by using the "access mode" bits of the ioctl command to determine the permission check rather than dealing with individual command values. This removes any knowledge of specific ioctl commands from SELinux and follows the same guidance we gave to Smack earlier. Signed-off-by: Stephen Smalley Signed-off-by: James Morris commit abc69bb633931bf54c6db798bcdc6fd1e0284742 Author: Stephen Smalley Date: Wed May 21 14:16:12 2008 -0400 SELinux: enable processes with mac_admin to get the raw inode contexts Enable processes with CAP_MAC_ADMIN + mac_admin permission in policy to get undefined contexts on inodes. This extends the support for deferred mapping of security contexts in order to permit restorecon and similar programs to see the raw file contexts unknown to the system policy in order to check them. Signed-off-by: Stephen Smalley Signed-off-by: James Morris commit 006ebb40d3d65338bd74abb03b945f8d60e362bd Author: Stephen Smalley Date: Mon May 19 08:32:49 2008 -0400 Security: split proc ptrace checking into read vs. attach Enable security modules to distinguish reading of process state via proc from full ptrace access by renaming ptrace_may_attach to ptrace_may_access and adding a mode argument indicating whether only read access or full attach access is requested. This allows security modules to permit access to reading process state without granting full ptrace access. The base DAC/capability checking remains unchanged. Read access to /proc/pid/mem continues to apply a full ptrace attach check since check_mem_permission() already requires the current task to already be ptracing the target. The other ptrace checks within proc for elements like environ, maps, and fds are changed to pass the read mode instead of attach. In the SELinux case, we model such reading of process state as a reading of a proc file labeled with the target process' label. This enables SELinux policy to permit such reading of process state without permitting control or manipulation of the target process, as there are a number of cases where programs probe for such information via proc but do not need to be able to control the target (e.g. procps, lsof, PolicyKit, ConsoleKit). At present we have to choose between allowing full ptrace in policy (more permissive than required/desired) or breaking functionality (or in some cases just silencing the denials via dontaudit rules but this can hide genuine attacks). This version of the patch incorporates comments from Casey Schaufler (change/replace existing ptrace_may_attach interface, pass access mode), and Chris Wright (provide greater consistency in the checking). Note that like their predecessors __ptrace_may_attach and ptrace_may_attach, the __ptrace_may_access and ptrace_may_access interfaces use different return value conventions from each other (0 or -errno vs. 1 or 0). I retained this difference to avoid any changes to the caller logic but made the difference clearer by changing the latter interface to return a bool rather than an int and by adding a comment about it to ptrace.h for any future callers. Signed-off-by: Stephen Smalley Acked-by: Chris Wright Signed-off-by: James Morris commit feb2a5b82d87fbdc01c00b7e9413e4b5f4c1f0c1 Author: James Morris Date: Tue May 20 09:42:33 2008 +1000 SELinux: remove inherit field from inode_security_struct Remove inherit field from inode_security_struct, per Stephen Smalley: "Let's just drop inherit altogether - dead field." Signed-off-by: James Morris commit fdeb05184b8b2500e120647778d63fddba76dc59 Author: Richard Kennedy Date: Sun May 18 12:32:57 2008 +0100 SELinux: reorder inode_security_struct to increase objs/slab on 64bit reorder inode_security_struct to remove padding on 64 bit builds size reduced from 72 to 64 bytes increasing objects per slab to 64. Signed-off-by: Richard Kennedy Signed-off-by: James Morris commit f5269710789f666a65cf1132c4f1d14fbc8d3c29 Author: Eric Paris Date: Wed May 14 11:27:45 2008 -0400 SELinux: keep the code clean formating and syntax Formatting and syntax changes whitespace, tabs to spaces, trailing space put open { on same line as struct def remove unneeded {} after if statements change printk("Lu") to printk("llu") convert asm/uaccess.h to linux/uaacess.h includes remove unnecessary asm/bug.h includes convert all users of simple_strtol to strict_strtol Signed-off-by: Eric Paris Signed-off-by: James Morris commit 9a59daa03df72526d234b91dd3e32ded5aebd3ef Author: Stephen Smalley Date: Wed May 14 10:33:55 2008 -0400 SELinux: fix sleeping allocation in security_context_to_sid Fix a sleeping function called from invalid context bug by moving allocation to the callers prior to taking the policy rdlock. Signed-off-by: Stephen Smalley Signed-off-by: James Morris commit 12b29f34558b9b45a2c6eabd4f3c6be939a3980f Author: Stephen Smalley Date: Wed May 7 13:03:20 2008 -0400 selinux: support deferred mapping of contexts Introduce SELinux support for deferred mapping of security contexts in the SID table upon policy reload, and use this support for inode security contexts when the context is not yet valid under the current policy. Only processes with CAP_MAC_ADMIN + mac_admin permission in policy can set undefined security contexts on inodes. Inodes with such undefined contexts are treated as having the unlabeled context until the context becomes valid upon a policy reload that defines the context. Context invalidation upon policy reload also uses this support to save the context information in the SID table and later recover it upon a subsequent policy reload that defines the context again. This support is to enable package managers and similar programs to set down file contexts unknown to the system policy at the time the file is created in order to better support placing loadable policy modules in packages and to support build systems that need to create images of different distro releases with different policies w/o requiring all of the contexts to be defined or legal in the build host policy. With this patch applied, the following sequence is possible, although in practice it is recommended that this permission only be allowed to specific program domains such as the package manager. # rmdir baz # rm bar # touch bar # chcon -t foo_exec_t bar # foo_exec_t is not yet defined chcon: failed to change context of `bar' to `system_u:object_r:foo_exec_t': Invalid argument # mkdir -Z system_u:object_r:foo_exec_t baz mkdir: failed to set default file creation context to `system_u:object_r:foo_exec_t': Invalid argument # cat setundefined.te policy_module(setundefined, 1.0) require { type unconfined_t; type unlabeled_t; } files_type(unlabeled_t) allow unconfined_t self:capability2 mac_admin; # make -f /usr/share/selinux/devel/Makefile setundefined.pp # semodule -i setundefined.pp # chcon -t foo_exec_t bar # foo_exec_t is not yet defined # mkdir -Z system_u:object_r:foo_exec_t baz # ls -Zd bar baz -rw-r--r-- root root system_u:object_r:unlabeled_t bar drwxr-xr-x root root system_u:object_r:unlabeled_t baz # cat foo.te policy_module(foo, 1.0) type foo_exec_t; files_type(foo_exec_t) # make -f /usr/share/selinux/devel/Makefile foo.pp # semodule -i foo.pp # defines foo_exec_t # ls -Zd bar baz -rw-r--r-- root root user_u:object_r:foo_exec_t bar drwxr-xr-x root root system_u:object_r:foo_exec_t baz # semodule -r foo # ls -Zd bar baz -rw-r--r-- root root system_u:object_r:unlabeled_t bar drwxr-xr-x root root system_u:object_r:unlabeled_t baz # semodule -i foo.pp # ls -Zd bar baz -rw-r--r-- root root user_u:object_r:foo_exec_t bar drwxr-xr-x root root system_u:object_r:foo_exec_t baz # semodule -r setundefined foo # chcon -t foo_exec_t bar # no longer defined and not allowed chcon: failed to change context of `bar' to `system_u:object_r:foo_exec_t': Invalid argument # rmdir baz # mkdir -Z system_u:object_r:foo_exec_t baz mkdir: failed to set default file creation context to `system_u:object_r:foo_exec_t': Invalid argument Signed-off-by: Stephen Smalley Signed-off-by: James Morris commit 11c2d8174ed3dc4f1971564732689b4a39129702 Merge: cde274c... bce7f79... Author: Benjamin Herrenschmidt Date: Mon Jul 14 14:29:49 2008 +1000 Merge commit 'origin/HEAD' into test-merge Manual fixup of include/asm-powerpc/pgtable-ppc64.h commit c0e09200dc0813972442e550a5905a132768e56c Author: Dave Airlie Date: Thu May 29 10:09:59 2008 +1000 drm: reorganise drm tree to be more future proof. With the coming of kernel based modesetting and the memory manager stuff, the everything in one directory approach was getting very ugly and starting to be unmanageable. This restructures the drm along the lines of other kernel components. It creates a drivers/gpu/drm directory and moves the hw drivers into subdirectores. It moves the includes into an include/drm, and sets up the unifdef for the userspace headers we should be exporting. Signed-off-by: Dave Airlie commit 199a952876adbfc2b6c13b8b07adabebf4ff54b2 Author: Lai Jiangshan Date: Thu Jun 26 10:06:43 2008 +0800 rcu classic: update qlen when cpu offline When callbacks are moved from offline cpu to this cpu, the qlen field of this rdp should be updated. [ Paul E. McKenney: ] The effect of this bug would be for force_quiescent_state() to be invoked when it should not and vice versa -- wasting cycles in the first case and letting RCU callbacks remain piled up in the second case. The bug is thus "benign" in that it does not result in premature grace-period termination, but should of course be fixed nonetheless. Preemption is disabled by the caller's get_cpu_var(), so we are guaranteed to remain on the same CPU, as required. The local_irq_disable() is indeed needed, otherwise, an interrupt might invoke call_rcu() or call_rcu_bh(), which could cause that interrupt's increment of ->qlen to be lost. Signed-off-by: Lai Jiangshan Cc: Andrew Morton Reviewed-by: Paul E. McKenney Signed-off-by: Ingo Molnar commit 11369f356b66d363a615fde2c5526962f7683674 Author: Mike Travis Date: Tue Jul 8 14:35:21 2008 -0700 x86: change _node_to_cpumask_ptr to return const ptr * Strengthen the return type for the _node_to_cpumask_ptr to be a const pointer. This adds compiler checking to insure that node_to_cpumask_map[] is not changed inadvertently. Signed-off-by: Mike Travis Cc: "akpm@linux-foundation.org" Cc: Yinghai Lu Acked-by: Vegard Nossum Signed-off-by: Ingo Molnar commit 090657e423f45a77151943f50165ae9565bfbf33 Author: Imre Kaloz Date: Sun Jul 13 20:12:11 2008 +0800 crypto: ixp4xx - Select CRYPTO_AUTHENC Without CRYPTO_AUTHENC the driver fails to build: drivers/built-in.o: In function `ixp_module_init': ixp4xx_crypto.c:(.init.text+0x3250): undefined reference to `crypto_aead_type' Signed-off-by: Imre Kaloz Signed-off-by: Herbert Xu commit 815224293e5aa4c7dc1638807889e345f385b38d Author: Larry Finger Date: Fri Jul 11 21:48:54 2008 -0500 pcmcia: ide-cs debugging bugfix The code in module ide-cs does not conform to the current standard if setting CONFIG_PCMCIA_DEBUG to "y", and loading the module with the option "pc_debug=N". When that is fixed, then a warning results that version is defined but not used. This patch fixes both situations. Signed-off-by: Larry Finger CC: Bartlomiej Zolnierkiewicz Signed-off-by: Dominik Brodowski commit ce8b06b985ae48f9425de6e4641e77cb3613ef00 Author: Maciej W. Rozycki Date: Sun Jul 13 03:29:42 2008 +0100 x86: I/O APIC: remove an IRQ2-mask hack Now that IRQ2 is never made available to the I/O APIC, there is no need to special-case it and mask as a workaround for broken systems. Actually, because of the former, mask_IO_APIC_irq(2) is a no-op already. Signed-off-by: Maciej W. Rozycki Cc: "Rafael J. Wysocki" Cc: Matthew Garrett Cc: Andreas Herrmann Cc: Stephen Rothwell Signed-off-by: Ingo Molnar commit 54ef76f37bcccf8c16fbaaed13c3c40825195958 Merge: 032f827... 9df2fe9... Author: Ingo Molnar Date: Sun Jul 13 08:50:13 2008 +0200 Merge branch 'linus' into sched/devel commit 3d88cca7085cffce077f808f36551e9050eb9e3a Author: Yinghai Lu Date: Sat Jul 12 22:52:55 2008 -0700 x86: fix numaq_tsc_disable calling got this on a test-system: calling numaq_tsc_disable+0x0/0x39 NUMAQ: disabling TSC initcall numaq_tsc_disable+0x0/0x39 returned 0 after 0 msecs that's because we should not be using arch_initcall to call numaq_tsc_disable. need to call it in setup_arch before time_init()/tsc_init() and call it in init_intel() to make the cpu feature bits right. Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit 7b479becdb8c1fb4ff6fbb2a4076c471c737b54c Author: Yinghai Lu Date: Sat Jul 12 22:57:07 2008 -0700 x86, e820: remove end_user_pfn end_user_pfn used to modify the meaning of the e820 maps. Now that all e820 operations are cleaned up, unified, tightened up, the e820 map always get updated to reality, we don't need to keep this secondary mechanism anymore. If you hit this commit in bisection it means something slipped through. Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit 9958e810f8ac92f8a447035ee6555420ba27b847 Author: Yinghai Lu Date: Sat Jul 12 14:32:45 2008 -0700 x86: max_low_pfn_mapped fix, #3 optimization: try to merge the range with same page size in init_memory_mapping, to get the best possible linear mappings set up. thus when GBpages is not there, we could do 2M pages. Signed-off-by: Yinghai Lu Cc: Suresh Siddha Signed-off-by: Ingo Molnar commit 965194c15dc9e4f3bc44432b39c441c86af7f11d Author: Yinghai Lu Date: Sat Jul 12 14:31:28 2008 -0700 x86: max_low_pfn_mapped fix, #2 tighten the boundary checks around max_low_pfn_mapped - dont overmap nor undermap into holes. also print out tseg for AMD cpus, for diagnostic purposes. (this is an SMM area, and we split up any big mappings around that area) Signed-off-by: Yinghai Lu Cc: Suresh Siddha Signed-off-by: Ingo Molnar commit 7ab073b6e0cde1544f4e79fadb75532528af7595 Author: Yinghai Lu Date: Sat Jul 12 14:30:35 2008 -0700 x86: max_low_pfn_mapped fix, #1 fix crash on Ingo's big box: calling pci_iommu_init+0x0/0x17 PCI-DMA: Disabling AGP. PCI-DMA: aperture base @ d0000000 size 65536 KB PCI-DMA: using GART IOMMU. PCI-DMA: Reserving 64MB of IOMMU area in the AGP aperture BUG: unable to handle kernel paging request at ffff88000003be88 IP: [] __alloc_pages_internal+0xc3/0x3f2 PGD 202063 PUD 206063 PMD 22fc00163 PTE 3b162 Oops: 0000 [1] SMP and e820 is: BIOS-e820: 0000000000000000 - 000000000009ac00 (usable) BIOS-e820: 000000000009ac00 - 00000000000a0000 (reserved) BIOS-e820: 00000000000ca000 - 0000000000100000 (reserved) BIOS-e820: 0000000000100000 - 000000007ff70000 (usable) BIOS-e820: 000000007ff70000 - 000000007ff86000 (ACPI data) BIOS-e820: 000000007ff86000 - 0000000080000000 (ACPI NVS) BIOS-e820: 0000000080000000 - 00000000cfe00000 (usable) BIOS-e820: 00000000cfe00000 - 00000000d0000000 (reserved) BIOS-e820: 00000000e0000000 - 00000000f0000000 (reserved) BIOS-e820: 00000000fec00000 - 00000000fec10000 (reserved) BIOS-e820: 00000000fee00000 - 00000000fee01000 (reserved) BIOS-e820: 00000000fff80000 - 0000000100000000 (reserved) BIOS-e820: 0000000100000000 - 0000000830000000 (usable) system has 32 GB RAM installed. max_low_pfn_mapped is 0xcfe00, and GART aperture is not mapped. So try to use init_memory_mapping to map that area, because the iommu thinks that area is ram ... Signed-off-by: Yinghai Lu Cc: Suresh Siddha Signed-off-by: Ingo Molnar commit 77a76369475801ab8cbb338b9d8cfa92a491badb Author: Grant Likely Date: Sat Jul 12 12:11:43 2008 -0600 powerpc: Modify MPC52xx maintainers entry to cover all MPC5xxx parts Linux now supports the MPC5121 part and is handled by the same maintainer. Update MAINTAINERS to reflect this. Also remove URLs which are out of date or are not particularly relevant. Signed-off-by: Grant Likely commit 1879f711d8c3960e0fd927f38ff885017a77291b Author: John Rigby Date: Wed Jul 9 14:54:04 2008 -0600 powerpc/mpc5121: Add support for CPLD on MPC5121ADS board Add a interrupt host for the interrupt controller in the mpc5121ads cpld. PCI interrupts are 0-7 the rest are 8-15 Touchscreen pendown irq is hardwired to irq1 All other irqs are chained to irq0 Signed-off-by: John Rigby Signed-off-by: Grant Likely commit fb1803224ea145e3424d6295d4aaa8e9fef70642 Author: John Rigby Date: Wed Jul 9 14:54:03 2008 -0600 powerpc/mpc5121: Add generic board support for MPC5121 platforms Move shared code from mpc5121_ads.c to new file mpc512x_shared.c - mpc512x_find_ips_freq -> unchanged - contents of mpc5121_ads_init_IRQ -> mpc512x_init_IRQ - looking for fsl,mpc5121-ipic instead of fsl,ipic - mpc5121_ads_declare_of_platform_devices -> mpc5121_declare_of_platform_devices - and use compatible for lookup instead of node name Add new generic board setup mpc5121_generic.c Signed-off-by: John Rigby Signed-off-by: Grant Likely commit 137e95906e294913fab02162e8a1948ade49acb5 Author: John Rigby Date: Wed Jul 9 14:54:02 2008 -0600 powerpc/mpc5121: Add clock driver Plugs into the generic powerpc clock driver in arch/powerpc/kernel/clock.c The following subset of clk_interface is implemented: clk_get, clk_put: get clock via name, release clock clk_enable, clk_disable: enable or disable clock clk_get_rate: get clock rate in Hz clk_set_rate: stubbed clk_round_rate: stubbed clk_set_parent: NULL clk_get_parent: NULL Signed-off-by: John Rigby Signed-off-by: Grant Likely commit 4df64c3e58d28ffc5c61bdbdd733c5d0303b9f3c Author: John Rigby Date: Wed Jul 9 14:54:01 2008 -0600 powerpc/mpc5121: Update device tree for MPC5121ADS evaluation board Current device tree is only bare bones. This patch adds nodes to make it a complete tree for the MPC5121ads. Added nodes include: mbx - opengl coprocessor nfc - nand flash controller cpld-pic - on board cpld rtc clock - clock control pmc - power management control gpio mscan - can module i2c axe - audio coprocessor display - display interface unit mdio ethernet usb ioctl - pin config pata ac97 - PSC configured as AC97 pscfifo - psc fifo configuration dma pci Fix typo in header changing MDS to ADS. Add a compatible property of the form "fsl,mpc5121-..." to nodes missing one. Changed localbus compatible to fsl,mpc5121-localbus, this does not break anything because the only code that uses it finds it via the node name, not compatible. Signed-off-by: John Rigby Signed-off-by: Grant Likely commit 08b6c06de5d3f37295f6dbf7010fb45ae5ee14a7 Author: Grant Likely Date: Fri Jul 11 16:17:58 2008 -0600 powerpc/mpc5200: fix compile warnings in bestcomm driver Fix for the following compiler warnings: CC arch/powerpc/sysdev/bestcomm/bestcomm.o arch/powerpc/sysdev/bestcomm/bestcomm.c: In function 'mpc52xx_bcom_probe': arch/powerpc/sysdev/bestcomm/bestcomm.c:446: warning: format '%08lx' expects type 'long unsigned int', but argument 2 has type 'phys_addr_t' CC arch/powerpc/sysdev/bestcomm/sram.o arch/powerpc/sysdev/bestcomm/sram.c: In function 'bcom_sram_init': arch/powerpc/sysdev/bestcomm/sram.c:89: warning: format '%08lx' expects type 'long unsigned int', but argument 3 has type 'phys_addr_t' Signed-off-by: Grant Likely commit 7ba6d6dc8d58c49cff0533819195b44fb35d6ece Author: Grant Likely Date: Tue Jul 1 21:38:16 2008 -0600 powerpc/mpc5200: Add PSC helpers for bestcomm engine Simplify the interface for setting up bestcomm DMA to PSCs by adding some helper functions. The helper function sets the correct values for the initator and ipr values in PSC DMA tasks based on the PSC number. Signed-off-by: Grant Likely commit 75195dabce797f49b7d96d272e4e9330873e4340 Author: Stephen Rothwell Date: Fri May 23 16:42:56 2008 +1000 powerpc/mpc5200_wdt: use linux/of_platform.h instead of asm Signed-off-by: Stephen Rothwell Signed-off-by: Grant Likely commit 76ef7dd030823518506d65237a12666fc3f5a0d4 Author: Stephen Rothwell Date: Fri May 23 16:35:47 2008 +1000 powerpc/mpc52xx_psc_spi: use linux/of_platform.h instead of asm Signed-off-by: Stephen Rothwell Signed-off-by: Grant Likely commit e6a9192d066b30353b78ce1647070c0c171dd9a7 Author: Stephen Rothwell Date: Fri May 23 16:16:27 2008 +1000 powerpc/pata_mpc52xx: use linux/of_platform.h instead of asm Signed-off-by: Stephen Rothwell Signed-off-by: Grant Likely commit b0852cb8841f35b124f4344d92abd8c0a6b54fcf Author: Wolfgang Grandegger Date: Wed Jul 2 11:56:40 2008 +0200 powerpc/mpc5200: add missing MSCAN FDT nodes for TQM52xx This patch adds the still missing FDT nodes for the MSCAN devices for the TQM52xx modules. Signed-off-by: Wolfgang Grandegger Signed-off-by: Grant Likely commit f40987b64d0f4d40b006ce09e37161b57c1e970b Author: Robert P. J. Day Date: Tue Jul 8 06:38:24 2008 -0400 OpenFirmware: Include from of_i2c.c. drivers/of/of_i2c.c should include for the prototype for of_register_i2c_devices(). Signed-off-by: Robert P. J. Day Acked-by: Jean Delvare Acked-by: Jochen Friedrich Acked-by: Stephen Rothwell Signed-off-by: Grant Likely commit 0d1cde235874b00905bce23f659690d060ebf475 Author: Jon Smirl Date: Mon Jun 30 19:01:26 2008 -0400 powerpc/i2c: Convert i2c-mpc into an of_platform driver Convert i2c-mpc to an of_platform driver. Utilize the code in drivers/of-i2c.c to make i2c modules dynamically loadable by the device tree. Signed-off-by: Jon Smirl Signed-off-by: Grant Likely commit 6eb9d32298290b956693fd85c815b817d39a9505 Author: Andre Schwarz Date: Thu Jul 10 11:53:16 2008 +0200 powerpc/mpc5200: PCI write combine timer On MPC5200 the PCI target control register (PCITCR) @ MBAR + 0xD6C is initialized with only bit 7 (Latrule disable) set. The 8-Bit write combine timer (Bits 24..31) should be also set to a reasonable value _greater zero_ (0x08 = default) since setting it to 0x00 leads to _very poor_ performance as a PCI target since external burst won't be possible at all. Setting the WCT to 0x08 (cache-line size) leads to good overall perfomance. Signed-off-by: Andre Schwarz Signed-off-by: Grant Likely commit d7f305e9a08040649b0800245e67708df58cdb55 Author: Benjamin Herrenschmidt Date: Mon Jul 7 10:50:25 2008 +1000 [SCSI] sym53c8xx: Fix bogus sym_que_entry re-implementation of container_of The sym53c8xx driver, for some reason, seems to mostly re-implement linux/list.h with added bogosity. The main one is it's implementation of sym_que_entry which spits warnings with recent gcc's on some 64 bits architectures. Signed-off-by: Benjamin Herrenschmidt Signed-off-by: James Bottomley commit 02a1e3ce7df624ba91e8ff06e172f448746ad76a Author: Alexander Beregalov Date: Sun Jul 6 17:01:34 2008 +0400 [SCSI] scsi_cmnd.h: remove double inclusion of linux/blkdev.h Signed-off-by: Alexander Beregalov Signed-off-by: James Bottomley commit 453cd0f3ff3bf25d86c96e62d271ba238f06d5ff Author: Adrian Bunk Date: Thu Jul 3 23:47:33 2008 -0700 [SCSI] make struct scsi_{host,target}_type static Make the needlessly global struct scsi_{host,target}_type static. Signed-off-by: Adrian Bunk Signed-off-by: Andrew Morton Signed-off-by: James Bottomley commit 2476b4d0426e1d6d4a42b2f7ae08f668b2cfe510 Author: James Bottomley Date: Thu Jul 3 11:31:55 2008 -0500 [SCSI] fix locking in host use of blk_plug_device() scsi_lib.c:scsi_host_queue_ready() plugs the device with incorrect locking. It should actually have the queue lock held, but it's holding the host lock. Fix this by eliminating the call. The host ready has no need to plug the queue because if it returns 0 in scsi_request_function control transfers to not_ready which acquires the queue lock and plugs the device if its at zero depth. Reported-by: Elias Oltmanns Signed-off-by: James Bottomley commit 92c299d11acd3f3e75a721acb8f57c457d5c394f Author: Christof Schmitt Date: Wed Jul 2 10:56:41 2008 +0200 [SCSI] zfcp: Cleanup external header file Sort the extern definitions by file. Signed-off-by: Christof Schmitt Signed-off-by: Swen Schillig Signed-off-by: James Bottomley commit 287ac01acf22ab6aaaf9f5a4919ce2449c8b391c Author: Christof Schmitt Date: Wed Jul 2 10:56:40 2008 +0200 [SCSI] zfcp: Cleanup code in zfcp_erp.c Cleanup the code in zfcp_erp.c, move erp internal definititions to this file and move FSF timeout handling to the FSF layer. Signed-off-by: Christof Schmitt Signed-off-by: Swen Schillig Signed-off-by: James Bottomley commit c41f8cbddd4e0e72951e0575165dea8ea26f1c4b Author: Swen Schillig Date: Wed Jul 2 10:56:39 2008 +0200 [SCSI] zfcp: zfcp_fsf cleanup. Code cleanup for the zfcp_fsf.c file. Signed-off-by: Swen Schillig Signed-off-by: Christof Schmitt Signed-off-by: James Bottomley commit 60221920706a01bef89af2577f9a90a8eeb4e662 Author: Swen Schillig Date: Wed Jul 2 10:56:38 2008 +0200 [SCSI] zfcp: consolidate sysfs things into one file. zfcp was using three files to deal with sysfs representation for adapters, ports and units. The consolidation into one file prevents code-duplication and eases maintainability. Signed-off-by: Swen Schillig Signed-off-by: Christof Schmitt Signed-off-by: James Bottomley commit 317e6b6519b5a34263a33f150ed57ad468b26a64 Author: Swen Schillig Date: Wed Jul 2 10:56:37 2008 +0200 [SCSI] zfcp: Cleanup of code in zfcp_aux.c Overall cleanup of zfcp_aux.c to simplify code and follow kernel coding style. Signed-off-by: Swen Schillig Signed-off-by: Christof Schmitt Signed-off-by: James Bottomley commit f76af7d7e36373179be7a9e09f6b0aae330549b7 Author: Martin Petermann Date: Wed Jul 2 10:56:36 2008 +0200 [SCSI] zfcp: Cleanup of code in zfcp_scsi.c Cleanup code in zfcp_scsi.c, fix coding style issues and simplify the code. Signed-off-by: Martin Petermann Signed-off-by: Christof Schmitt Signed-off-by: James Bottomley commit feac6a07c4a3578bffd6769bb4927e8a7e1f3ffe Author: Martin Petermann Date: Wed Jul 2 10:56:35 2008 +0200 [SCSI] zfcp: Move status accessors from zfcp to SCSI include file. Move the accessor functions for the scsi_cmnd status from zfcp to the SCSI include file. Change the interface to the functions to pass the scsi_cmnd pointer instead of the status pointer. Signed-off-by: Martin Petermann Signed-off-by: Christof Schmitt Signed-off-by: James Bottomley commit 5d4e226246331087799a01c267ec72e5931ff190 Author: Christof Schmitt Date: Wed Jul 2 10:56:34 2008 +0200 [SCSI] zfcp: Small QDIO cleanups QBUFF_PER_PAGE is only used inside the qdio module, so move it to zfcp_qdio.c zfcp_qdio_zero_sbals is now only used in the qdio module, so make it static. Signed-off-by: Christof Schmitt Signed-off-by: Swen Schillig Signed-off-by: James Bottomley commit 7afe29f7dd6dccbe454d7fd6cd6a5a7f7bcbc530 Author: Swen Schillig Date: Wed Jul 2 10:56:33 2008 +0200 [SCSI] zfcp: Adapter reopen for large number of unsolicited status When zfcp receives 16 unsolicited status messages, this could trigger an adapter reopen. In this case, first try to send a new status read, and only if this fails, go through the recovery. Signed-off-by: Swen Schillig Signed-off-by: Christof Schmitt Signed-off-by: James Bottomley commit 3968ce800f45d8795ceb6f186c1efe420c98e1b0 Author: Christof Schmitt Date: Wed Jul 2 10:56:32 2008 +0200 [SCSI] zfcp: Fix error checking for ELS ADISC requests Correctly check the status for ELS ADISC requests. 0 means success. Signed-off-by: Christof Schmitt Signed-off-by: Swen Schillig Signed-off-by: James Bottomley commit c57a39a45a76bc8ecdd2c8a9bc7cf7be3ed73fe1 Author: Swen Schillig Date: Wed Jul 2 10:56:31 2008 +0200 [SCSI] zfcp: wait until adapter is finished with ERP during auto-port In some situations the auto port attachment task is started before the ERP is finished. To prevent this unwanted situation we wait until the adapter is up and running before we start our work. Signed-off-by: Swen Schillig Signed-off-by: Christof Schmitt Signed-off-by: James Bottomley commit 072b91f9c6510d0ec4a49d07dbc318760c7da7b3 Author: Brian King Date: Tue Jul 1 13:14:30 2008 -0500 [SCSI] ibmvfc: IBM Power Virtual Fibre Channel Adapter Client Driver This patch adds a new device driver to support the Virtual Fibre Channel interface on IBM Power based servers. The Virtual I/O Server on IBM Power servers utilizes N-Port ID Virtualization to export a Virtual Fibre Channel adapter to the client. This driver is the client device driver. Signed-off-by: Brian King Signed-off-by: James Bottomley commit 39120e11705782c77d3a47d7d2927676fd8e3aaa Author: Brian King Date: Tue Jul 1 13:03:19 2008 -0500 [SCSI] sg: Add target reset support Adds support for target reset to SG_SCSI_RESET. Signed-off-by: Brian King Acked-by: Douglas Gilbert Signed-off-by: James Bottomley commit f11f594edba7f689af9792a5673ed59d660ad371 Author: Martin K. Petersen Date: Wed Jun 25 11:22:42 2008 -0400 [SCSI] lib: Add support for the T10 (SCSI) Data Integrity Field CRC The SCSI Block Protocol uses this 16-bit CRC to verify the integrity of each data sector. crc_t10dif() is used by sd_dif.c when performing I/O to or from disks formatted with protection information. Signed-off-by: Martin K. Petersen Signed-off-by: James Bottomley commit 5b635da11e3a6387172abd651d26d8ef54b1fbc7 Author: Martin K. Petersen Date: Wed Jun 25 11:22:41 2008 -0400 [SCSI] sd: Move scsi_disk() accessor function to sd.h Signed-off-by: Martin K. Petersen Signed-off-by: James Bottomley commit aa91696e56a0870db5754610e9f9b937e77507e0 Author: Martin K. Petersen Date: Tue Jun 17 12:47:32 2008 -0400 [SCSI] sd: Move sd.h header file Christoph objected to having sd.h in include/scsi since it is internal to the sd driver. Move it to drivers/scsi/sd.h. Signed-off-by: Martin K. Petersen Signed-off-by: James Bottomley commit dbfe54a9c9a9e31cdf71704e4e70d10d22a57264 Author: Frans Pop Date: Thu Jun 19 20:20:12 2008 -0700 [SCSI] esp: correct module name in Kconfig help for SCSI_SUNESP The module name was changed from esp to sun_esp some time ago. Also correct the list of chips supported by the driver. Signed-off-by: Frans Pop Signed-off-by: David S. Miller Signed-off-by: James Bottomley commit a793804f25fb2c0fe2b784450092699ea3475332 Author: David S. Miller Date: Sun Sep 30 17:10:42 2007 -0700 [SCSI] esp: Correct chip ID probing sequence. The features enable bit has to be set in the config2 register before we can be absolutely sure we will probe a correct part unique ID and family code from the transfer-count-high register. Also, reload the CFACT, STP, SOFF, and TIMEO near the end of esp_reset_esp(). From a patch by Maciej W. Rozycki. Signed-off-by: David S. Miller Signed-off-by: James Bottomley commit eac6e8e449647cbb9efee53977c8bfee0aa7d69e Author: Matthew Wilcox Date: Thu Jun 19 10:02:58 2008 -0600 [SCSI] scsi_debug: add support for rotation speed Add support for VPD page b1 to scsi_debug SCSI VPD page b1 reports the nominal rotation speed of the device. Since scsi_debug is ram-based, claim to be a non-rotating medium. Signed-off-by: Matthew Wilcox Acked-by: Douglas Gilbert Signed-off-by: James Bottomley commit f80f868ec463b0463b332cdb704fe5438f013f98 Author: Mike Christie Date: Mon Jun 16 10:11:35 2008 -0500 [SCSI] iscsi class: fix endpoint leak class_find_device gets a ref to the device so we must release it. The class will serialize access to the ep so we do not have to worry about a remove racing with the callers access, so we can simplify the use and drop the ref right away. Signed-off-by: Mike Christie Signed-off-by: James Bottomley commit 4c2133c82385c31dd3eed76b07da1e986eb00294 Author: Mike Christie Date: Mon Jun 16 10:11:34 2008 -0500 [SCSI] iscsi class: update version number Update iscsi class version number. Signed-off-by: Mike Christie Signed-off-by: James Bottomley commit 8e9a20cee4511be4560f9c858d9994eb6913731e Author: Mike Christie Date: Mon Jun 16 10:11:33 2008 -0500 [SCSI] libiscsi, iscsi_tcp, ib_iser: fix setting of can_queue with old tools. This patch fixes two bugs that are related. 1. Old tools did not set can_queue/cmds_max. This patch modifies libiscsi so that when we add the host we catch this and set it to the default. 2. iscsi_tcp thought that the scsi command that was passed to the eh functions needed a iscsi_cmd_task allocated for it. It only needed a mgmt task, and now it does not matter since it all comes from the same pool and libiscsi handles this for the drivers. ib_iser had copied iscsi_tcp's code and set can_queue to its max - 1 to handle this. So this patch removes the max -1, and just sets it to the max. Signed-off-by: Mike Christie Signed-off-by: James Bottomley commit c95fddc729fafb43f420747027eeb998c2e5e798 Author: Mike Christie Date: Mon Jun 16 10:11:32 2008 -0500 [SCSI] iscsi class: fix refcount leak Must do a module_out if the endpoint lookup fails. Signed-off-by: Mike Christie Signed-off-by: James Bottomley commit ff0f4cb5ea322dcc32d08bab2d758c050ba1ab07 Author: James Smart Date: Sat Jun 14 22:53:02 2008 -0400 [SCSI] lpfc 8.2.7 : Update version to 8.2.7 Update lpfc driver version to 8.2.7 Signed-off-by: James Smart Signed-off-by: James Bottomley commit 495a714c50e2c6ca6357129812f983b3ac0a32f2 Author: James Smart Date: Sat Jun 14 22:52:59 2008 -0400 [SCSI] lpfc 8.2.7 : Miscellaneous Fixes Miscellaneous Fixes: - Fix bug in mbox sysfs interface that locked in EAGAIN if discovery stalled. - Fix missing error message when npiv and loop are true when link up occurs. - Fix panic in lpfc_scsi_cmd_iocb_cmpl: scsi_buf was NULL, but created race conditions with other code paths. - Fix error in sysfs mailbox structure that didn't rezero on next use. - Add missing mempool_free() to attachment failure path - Fix missing put of ndlp structure during driver unload. - Fix applications unable to send mailbox commands during discovery. - Remove unused argument (type) from function lpfc_post_buffer() API - Fix vport name is not shown after hbacmd vportcreate. - Remove repeated code statements. Signed-off-by: James Smart Signed-off-by: James Bottomley commit 5e9d9b8276980fc5dfa88ce34f6ec88ce3026232 Author: James Smart Date: Sat Jun 14 22:52:53 2008 -0400 [SCSI] lpfc 8.2.7 : Rework the worker thread Rework of the worker thread to make it more efficient. Make a finer-grain notfication of pending work so less time is spent checking conditions. Also made other general cleanups. Signed-off-by: James Smart Signed-off-by: James Bottomley commit 0d2b6b83030d6a88cbf7db57f84f2daf0e0b251b Author: James Smart Date: Sat Jun 14 22:52:47 2008 -0400 [SCSI] lpfc 8.2.7 : Discovery Fixes - Fix ADISC timeout on initiators causing devloss timeout on targets - Correct FAN processing : port state vs unreg rpi's wasn't consistent - Correct mismatches between ASICs and PLOGI that would skip PLOGI Signed-off-by: James Smart Signed-off-by: James Bottomley commit 915caaaf622172bd3451e7b76ba9cfcea80e87c7 Author: James Smart Date: Sat Jun 14 22:52:38 2008 -0400 [SCSI] lpfc 8.2.7 : Change device reset behavior Prior handler was only waiting for I/O on one lun to finish before returning completion. Now, wait for all LUNs on the target. Also performed some rudimentary cleanup while in this code. Signed-off-by: James Smart Signed-off-by: James Bottomley commit 235f7f25f4928f5075dbebdfb9ca2c5d90db882c Author: Martin Peschke Date: Tue Jun 10 18:21:01 2008 +0200 [SCSI] zfcp: Remove sysfs attribute port_add With the automatic scanning of remote ports in place, there is no need to add remote ports manually. So, remove the port_add attribute. Signed-off-by: Martin Peschke Signed-off-by: Christof Schmitt Signed-off-by: James Bottomley commit cc8c282963bd258a5bf49d3aa52675a4ae6d31f6 Author: Swen Schillig Date: Tue Jun 10 18:21:00 2008 +0200 [SCSI] zfcp: Automatically attach remote ports Automatically attach the remote ports in zfcp when the adapter is set online. This is done by querying all available ports from the FC namesever. The scan for remote ports is also triggered by RSCNs and can be triggered manually with the sysfs attribute 'port_rescan'. Signed-off-by: Swen Schillig Signed-off-by: Christof Schmitt Signed-off-by: James Bottomley commit 85a82392fe6fe7620d8fe0eb694f926cefe62e1f Author: Sven Schuetz Date: Tue Jun 10 18:20:59 2008 +0200 [SCSI] zfcp: Add port_state attribute to sysfs The sysfs attribute /sys/class/fc_host/hostX/port_state was not set by zfcp so far. Now, the appropriate members of the fc_function_template struct are set during its initialziation. The first is a boolean to show the port state. The second is a function pointer to the function zfcp_get_host_port_state, which reads the port state from our adapter status bits and calls fc_host_port_state with the approriate port state afterwards. Signed-off-by: Sven Schuetz Signed-off-by: Christof Schmitt Signed-off-by: James Bottomley commit 553448f6c4838a1e4bed2bc9301c748278d7d9ce Author: Christof Schmitt Date: Tue Jun 10 18:20:58 2008 +0200 [SCSI] zfcp: Message cleanup Cleanup the messages used in the zfcp driver: Remove unnecessary debug and trace message and convert the remaining messages to standard kernel macros. Remove the zfcp message macros and while updating the whole flie also update the copyright headers. Signed-off-by: Christof Schmitt Signed-off-by: Swen Schillig Signed-off-by: James Bottomley commit 00bab91066a49468bfa4f6d5c8ad5e9ec53b7ea3 Author: Swen Schillig Date: Tue Jun 10 18:20:57 2008 +0200 [SCSI] zfcp: Cleanup qdio code Cleanup the interface code from zfcp to qdio. Also move code that belongs to the qdio interface from the erp to the qdio file. Signed-off-by: Swen Schillig Signed-off-by: Christof Schmitt Signed-off-by: James Bottomley commit fa04c2816883a49ec518514f6c19767d54be20b5 Author: Christof Schmitt Date: Tue Jun 10 18:20:56 2008 +0200 [SCSI] zfcp: Cleanup code in zfcp_ccw Overall cleanup in file zfcp_ccw.c. Fix coding style issues, remove useless macros and messages and convert remaining messages to standard macros. Signed-off-by: Christof Schmitt Signed-off-by: Swen Schillig Signed-off-by: James Bottomley commit 45633fdc9615f9fd2a0ae18e301562298b15abf3 Author: Christof Schmitt Date: Tue Jun 10 18:20:55 2008 +0200 [SCSI] zfcp: Move CFDC code to new file. zfcp implements a device file to allow Linux guests changing the Access Control Tables stored in the adapter. The code for the device file has nothing to do with the other parts of the driver, so move it to a new file and cleanup the code while doing so. Signed-off-by: Christof Schmitt Signed-off-by: Swen Schillig Signed-off-by: James Bottomley commit 24073b475d6d2bad8880434a16343ee1da816ea5 Author: Christof Schmitt Date: Tue Jun 10 18:20:54 2008 +0200 [SCSI] zfcp: Move FC code to new file Move all Fibre Channel related code to new file and cleanup the code while doing so. Signed-off-by: Christof Schmitt Signed-off-by: Swen Schillig Signed-off-by: James Bottomley commit 6362abd3e00d3161affad996fa53cc69a01fc6d1 Author: Martin K. Petersen Date: Thu Jun 5 23:30:03 2008 -0400 [SCSI] Rename scsi_bidi_sdb_cache The data integrity changes need to dynamically allocate scsi_data_buffers too. Rename scsi_bidi_sdb_cache for clarity. Signed-off-by: Martin K. Petersen Signed-off-by: James Bottomley commit 090507157f3bc43dd925fda50f8aca7d03b616b6 Author: Mark Salyzyn Date: Wed May 28 15:32:55 2008 -0400 [SCSI] aacraid: prevent copy_from_user() BUG! Seen: kernel BUG at arch/i386/lib/usercopy.c:872 under a 2.6.18-8.el5 kernel. Traced it to a garbage-in/garbage-out ioctl condition in the aacraid driver. Adaptec's special ioctl scb passthrough needs to check the validity of the individual scatter gather count fields to the maximum the adapter supports. Doing so will have the side effect of preventing copy_from_user() from bugging out while populating the dma buffers. This is a hardening effort, issue was triggered by an errant version of the management tools and thus the BUG should not be seen in the field. [jejb: fixed up compile failure] Signed-off-by: Mark Salyzyn Signed-off-by: James Bottomley commit 597136ab70a6dccba5c40ee6eed88e881412429b Author: Martin K. Petersen Date: Thu Jun 5 00:12:59 2008 -0400 [SCSI] scsi_debug: Runtime-configurable sector size Make scsi_debug sector size configurable at load time instead of being a #define. Handy for testing 4KB sectors. Signed-off-by: Martin K. Petersen Acked-by: Douglas Gilbert Signed-off-by: James Bottomley commit 3f27e3ed11e67c5ee19d560a50eafd93cf8c6682 Author: FUJITA Tomonori Date: Thu May 29 07:56:55 2008 +0900 [SCSI] bsg: fix bsg_mutex hang with device removal We don't need to hold bsg_mutex during bsg_complete_all_commands(). It leads to a problem that we block bsg_unregister_queue during bsg_complete_all_commands (untill all the outstanding commands complete). Thanks to Pete Wyckoff for finding the bug and testing the patch. The detailed bug report is: http://marc.info/?l=linux-scsi&m=121182137132145&w=2 Tested-by: Pete Wyckoff Signed-off-by: FUJITA Tomonori Signed-off-by: James Bottomley commit 30e9ba9f2001f45960507f1963551311a67d0209 Author: Boaz Harrosh Date: Mon May 26 11:31:19 2008 +0300 [SCSI] iscsi_tcp: Enable any size command Let through upto the largest command of 260 defined by the scsi standard. iscsi core supports this already. Now that the scsi-ml supports it we can start using large commands. [jejb:rejections fixed up] Signed-off-by: Boaz Harrosh Acked-by: Mike Christie Signed-off-by: James Bottomley commit 8f333991ba8479fe8a9d72aea978db415e3c2f2a Author: Harvey Harrison Date: Wed May 21 15:54:20 2008 -0500 [SCSI] scsi: use get_unaligned_* helpers Signed-off-by: Harvey Harrison Signed-off-by: Mike Christie Signed-off-by: James Bottomley commit 3a12b199fc820a52b8321c2b35172a1b3651120d Author: Harvey Harrison Date: Wed May 21 15:54:19 2008 -0500 [SCSI] Replace __FUNCTION__ with __func__ in iscsi_tcp. __FUNCTION__ is gcc-specific, use __func__ (Update diff by Mike Christie) Signed-off-by: Harvey Harrison Signed-off-by: Mike Christie Signed-off-by: James Bottomley commit 913e5bf435617aa529919a4f7567f849f9f35f9f Author: Mike Christie Date: Wed May 21 15:54:18 2008 -0500 [SCSI] libiscsi, iser, tcp: remove recv_lock The recv lock was defined so the iscsi layer could block the recv path from processing IO during recovery. It turns out iser just set a lock to that pointer which was pointless. We now disconnect the transport connection before doing recovery so we do not need the recv lock. For iscsi_tcp we still stop the recv path incase older tools are being used. This patch also has iscsi_itt_to_ctask user grab the session lock and has the caller access the task with the lock or get a ref to it in case the target is broken and sends a tmf success response then sends data or a response for the command that was supposed to be affected bty the tmf. Signed-off-by: Mike Christie Signed-off-by: James Bottomley commit 3cf7b233ffc45d4fc381221f74d24f10e692c4ea Author: Mike Christie Date: Wed May 21 15:54:17 2008 -0500 [SCSI] libiscsi: fix cmds_max setting Drivers expect that the cmds_max value they pass to the iscsi layer is the max scsi commands + mgmt tasks. This patch implements that and fixes some checks for nr cmd limits. Signed-off-by: Mike Christie Signed-off-by: James Bottomley commit 88dfd340b9dece8fcaa1a2d4c782338926c017f7 Author: Mike Christie Date: Wed May 21 15:54:16 2008 -0500 [SCSI] iscsi class: Add session initiatorname and ifacename sysfs attrs. This adds two new attrs used for creating initiator ports and binding sessions to hardware. The session level initiatorname: Since bnx2i does a scsi_host per host device, we need to add the iface initiator port settings on the session, so we can create multiple initiator ports (each with different inames) per device/scsi_host. The current iname reflects that qla4xxx can have one iname per hba, and we are allocating a host per session for software. The iname on the host will remain so we can export and set the hba level qla4xxx setting. The ifacename attr: To bind a session to a some peice of hardware in userspace we maintain some mappings, but during boot or iscsid restart (iscsid contains the user space part of the driver) we need to be able to figure out which of those host mappings abstractions maps to certain sessions. This patch adds a ifacename attr, which userspace can set to id the host side of the endpoint across pivot_roots and iscsid restarts. Signed-off-by: Mike Christie Signed-off-by: James Bottomley commit 06520edea0fc7007985fa4cd51560149feb3f442 Author: Mike Christie Date: Wed May 21 15:54:15 2008 -0500 [SCSI] iscsi_tcp: hook iscsi_tcp into iscsi_endpoint code iscsi_tcp creates its ep in userspace using sockets because it is virtual, so we just check if we are sent a ep and fail if we are. Signed-off-by: Mike Christie Signed-off-by: James Bottomley commit 412eeafa0a51a8d86545d0be637bf84e4374fccf Author: Mike Christie Date: Wed May 21 15:54:14 2008 -0500 [SCSI] iser: Modify iser to take a iscsi_endpoint struct in ep callouts and session setup This hooks iser into the iscsi endpoint code. Previously it handled the lookup and allocation. This has been made generic so bnx2i and iser can share it. It also allows us to pass iser the leading conn's ep, so we know the ib_deivce being used and can set it as the scsi_host's parent. And that allows scsi-ml to set the dma_mask based on those values. Signed-off-by: Mike Christie Signed-off-by: James Bottomley commit d82ff9be733a2e6da4f6c2ab4e9216f3f536503d Author: Mike Christie Date: Wed May 21 15:54:13 2008 -0500 [SCSI] iscsi class: add endpoint class Add sysfs representation for the endpoint, so userspace can match the host and session to the endpoint. This will allow us to set the host's parent correctly at host creation time. The next patches will convert tcp and iser, and fix iser's dma_mask bug. Signed-off-by: Mike Christie Signed-off-by: James Bottomley commit 7970634b81a6e3561954517bca42615542c4535b Author: Mike Christie Date: Wed May 21 15:54:12 2008 -0500 [SCSI] iscsi class: user device_for_each_child instead of duplicating session list Currently we duplicate the list of sessions, because we were using the test for if a session was on the host list to indicate if the session was bound or unbound. We can instead use the target_id and fix up the class so that drivers like bnx2i do not have to manage the target id space. Signed-off-by: Mike Christie Signed-off-by: James Bottomley commit 2261ec3d686e35c1a6088ab7f00a1d02b528b994 Author: Mike Christie Date: Wed May 21 15:54:11 2008 -0500 [SCSI] iser: handle iscsi_cmd_task rename This handles the iscsi_cmd_task rename and renames the iser cmd task to iser task. Signed-off-by: Mike Christie Signed-off-by: James Bottomley commit 135a8ad4e09309d36dcb8b5c7f55db0b6a15b2d6 Author: Mike Christie Date: Wed May 21 15:54:10 2008 -0500 [SCSI] iscsi_tcp: handle iscsi_cmd_task rename This converts iscsi_tcp to use the iscsi_task name. Signed-off-by: Mike Christie Signed-off-by: James Bottomley commit 9c19a7d0387124a508d2cdb38ebf8cd484631ad0 Author: Mike Christie Date: Wed May 21 15:54:09 2008 -0500 [SCSI] libiscsi: rename iscsi_cmd_task to iscsi_task This is the second part of the iscsi task merging, and all it does it rename iscsi_cmd_task to iscsi_task and mtask/ctask to just task. Signed-off-by: Mike Christie Signed-off-by: James Bottomley commit 2747fdb25726caa1a89229f43d99ca50af72576a Author: Mike Christie Date: Wed May 21 15:54:08 2008 -0500 [SCSI] iser: convert ib_iser to support merged tasks Convert ib_iser to support merged tasks. Signed-off-by: Mike Christie Signed-off-by: James Bottomley commit fbc514b4e262bc0596faae8640ebc0b9142a1cdd Author: Mike Christie Date: Wed May 21 15:54:07 2008 -0500 [SCSI] iscsi_tcp: convert iscsi_tcp to support merged tasks Convert iscsi_tcp to support merged tasks. Signed-off-by: Mike Christie Signed-off-by: James Bottomley commit 3e5c28ad0391389959ccae81c938c7533efb3490 Author: Mike Christie Date: Wed May 21 15:54:06 2008 -0500 [SCSI] libiscsi: merge iscsi_mgmt_task and iscsi_cmd_task There is no need to have the mgmt and cmd tasks separate structs. It used to save a lot of memory when we overprealocated memory for tasks, but the next patches will set up the driver so in the future they can use a mempool or some other common scsi command allocator and common tagging. Signed-off-by: Mike Christie Signed-off-by: James Bottomley commit 052d014485d2ce5bb7fa8dd0df875dafd1db77df Author: Mike Christie Date: Wed May 21 15:54:05 2008 -0500 [SCSI] libiscsi: modify libiscsi so it supports offloaded data paths This patch modifies libiscsi, so drivers like bnx2i and iser can execute a command from queuecommand/send_pdu instead of having to be queued to be run in a workq. Signed-off-by: Mike Christie Signed-off-by: James Bottomley commit 0af967f5d4f2dd1e00618d34ac988037d37a6c3b Author: Mike Christie Date: Wed May 21 15:54:04 2008 -0500 [SCSI] libiscsi, iscsi_tcp, iser: add session cmds array accessor Currently to get a ctask from the session cmd array, you have to know to use the itt modifier. To make this easier on LLDs and so in the future we can easilly kill the session array and use the host shared map instead, this patch adds a nice wrapper to strip the itt into a session->cmds index and return a ctask. Signed-off-by: Mike Christie Signed-off-by: James Bottomley commit b40977d95fb3a1898ace6a7d97e4ed1a33a440a4 Author: Mike Christie Date: Wed May 21 15:54:03 2008 -0500 [SCSI] iser: fix handling of scsi cmnds during recovery. After the stop_conn callback has returned the LLD should not touch the scsi cmds. iscsi_tcp and libiscsi use the conn->recv_lock and suspend_rx field to halt recv path processing, but iser does not have any protection. This patch modifies iser so that userspace can just call the ep_disconnect callback, which will halt all recv IO, before calling the stop_conn callback so we do not have to worry about the conn->recv_lock and suspend rx field. iser just needs to stop the send side from accessing the ib conn. Fixup to handle when the ep poll fails and ep disconnect is called from Erez. Signed-off-by: Mike Christie Signed-off-by: James Bottomley commit 5af3e91d232b7e022f258202f72ebb79b8b0c706 Author: Mike Christie Date: Wed May 21 15:54:02 2008 -0500 [SCSI] iscsi: modify iscsi printk so it can take driver data pointers Some drivers want to be able to just pass in the driver data pointers to the iscsi objects. To enable this we need the iscsi printk macro to cast the object. Signed-off-by: Mike Christie Signed-off-by: James Bottomley commit 5d91e209fb21fb9cc765729d4c6a85a9fb6c9187 Author: Mike Christie Date: Wed May 21 15:54:01 2008 -0500 [SCSI] iscsi: remove session/conn_data_size from iscsi_transport This removes the session and conn data_size fields from the iscsi_transport. Just pass in the value like with host allocation. This patch also makes it so the LLD iscsi_conn data is allocated with the iscsi_cls_conn. Signed-off-by: Mike Christie Signed-off-by: James Bottomley commit a4804cd6eb19318ae8d08ea967cfeaaf5c5b68a6 Author: Mike Christie Date: Wed May 21 15:54:00 2008 -0500 [SCSI] iscsi: add iscsi host helpers This finishes the host/session unbinding, by adding some helpers to add and remove hosts and the session they manage. Signed-off-by: Mike Christie Signed-off-by: James Bottomley commit 756135215ec743be6fdce2bdebe8cdb9f8a231f6 Author: Mike Christie Date: Wed May 21 15:53:59 2008 -0500 [SCSI] iscsi: remove session and host binding in libiscsi bnx2i allocates a host per netdevice but will use libiscsi, so this unbinds the session from the host in that code. This will also be useful for the iser parent device dma settings fixes. Signed-off-by: Mike Christie Signed-off-by: James Bottomley commit 32c6e1b9a2e27076b7070a9ec56a9e5437ebd725 Author: Mike Christie Date: Wed May 21 15:53:58 2008 -0500 [SCSI] iscsi class: rename iscsi_host to iscsi_cls_host This renames the iscsi_host to iscsi_cls_host to match the other structs, because libiscsi wants to use the iscsi_host name in the future. Signed-off-by: Mike Christie Signed-off-by: James Bottomley commit d3826721b198001c55353b1c54e10843068aae63 Author: Mike Christie Date: Wed May 21 15:53:57 2008 -0500 [SCSI] iscsi class, iscsi drivers: remove unused iscsi_transport attrs max_cmd_len and max_conn are not really used. max_cmd_len is always 16 and can be set by the LLD. max_conn is always one since we do not support MCS. Signed-off-by: Mike Christie Signed-off-by: James Bottomley commit 40753caa364bfba60ebd5e2a8bdf366ef175d03c Author: Mike Christie Date: Wed May 21 15:53:56 2008 -0500 [SCSI] iscsi class, iscsi_tcp/iser: add host arg to session creation iscsi offload (bnx2i and qla4xx) allocate a scsi host per hba, so the session creation path needs a shost/host_no argument. Software iscsi/iser will follow the same behabior as before where it allcoates a host per session, but in the future iser will probably look more like bnx2i where the host's parent is the hardware (rnic for iser and for bnx2i it is the nic), because it does not use a socket layer like how iscsi_tcp does. Signed-off-by: Mike Christie Signed-off-by: James Bottomley commit d54d48b80fb523ce1b1a644e4876b08835ad757f Author: Prakash, Sathya Date: Wed May 21 01:02:18 2008 +0530 [SCSI] mpt fusion : Adding FAULT Reset polling work When the firmware is in Fault state it will be identifed only when the next time the driver access the IOC state. This patch includes a polling function in the driver which will be executed in regular interval to check the status of the firmware and if it is in Fault state, then the firmware will be reset by the driver. Signed-off-by: Sathya Prakash Signed-off-by: James Bottomley commit cc4724492ddf920475ad7f12bfcb81ffca16f777 Author: Prakash, Sathya Date: Wed May 21 01:01:11 2008 +0530 [SCSI] mpt fusion : Setting intial period to 0xFF instead of 0xA The initial period is set to 0xFF Signed-off-by: Sathya Prakash Signed-off-by: James Bottomley commit a72f0dbfd93159acdf2467e5a022b28f763061f6 Author: Jan Glauber Date: Sat Jul 12 15:42:11 2008 +0800 crypto: s390 - Respect STFL bit Bevore issuing any s390 crypto operation check whether the CPACF facility is enabled in the facility list. That way a virtualization layer can prevent usage of the CPACF facility regardless of the availability of the crypto instructions. Signed-off-by: Jan Glauber Signed-off-by: Herbert Xu commit ae94b8075a2ed58d2318ef03827b25bc844f844e Merge: eca91e7... a26929f... Author: Ingo Molnar Date: Sat Jul 12 07:29:02 2008 +0200 Merge branch 'linus' into x86/core Conflicts: arch/x86/mm/ioremap.c Signed-off-by: Ingo Molnar commit eca91e7838ec92e8c12122849ec7539c4765b689 Author: Roland McGrath Date: Thu Jul 10 14:50:39 2008 -0700 x86_64: fix delayed signals On three of the several paths in entry_64.S that call do_notify_resume() on the way back to user mode, we fail to properly check again for newly-arrived work that requires another call to do_notify_resume() before going to user mode. These paths set the mask to check only _TIF_NEED_RESCHED, but this is wrong. The other paths that lead to do_notify_resume() do this correctly already, and entry_32.S does it correctly in all cases. All paths back to user mode have to check all the _TIF_WORK_MASK flags at the last possible stage, with interrupts disabled. Otherwise, we miss any flags (TIF_SIGPENDING for example) that were set any time after we entered do_notify_resume(). More work flags can be set (or left set) synchronously inside do_notify_resume(), as TIF_SIGPENDING can be, or asynchronously by interrupts or other CPUs (which then send an asynchronous interrupt). There are many different scenarios that could hit this bug, most of them races. The simplest one to demonstrate does not require any race: when one signal has done handler setup at the check before returning from a syscall, and there is another signal pending that should be handled. The second signal's handler should interrupt the first signal handler before it actually starts (so the interrupted PC is still at the handler's entry point). Instead, it runs away until the next kernel entry (next syscall, tick, etc). This test behaves correctly on 32-bit kernels, and fails on 64-bit (either 32-bit or 64-bit test binary). With this fix, it works. #define _GNU_SOURCE #include #include #include #include #ifndef REG_RIP #define REG_RIP REG_EIP #endif static sig_atomic_t hit1, hit2; static void handler (int sig, siginfo_t *info, void *ctx) { ucontext_t *uc = ctx; if ((void *) uc->uc_mcontext.gregs[REG_RIP] == &handler) { if (sig == SIGUSR1) hit1 = 1; else hit2 = 1; } printf ("%s at %#lx\n", strsignal (sig), uc->uc_mcontext.gregs[REG_RIP]); } int main (void) { struct sigaction sa; sigset_t set; sigemptyset (&sa.sa_mask); sa.sa_flags = SA_SIGINFO; sa.sa_sigaction = &handler; if (sigaction (SIGUSR1, &sa, NULL) || sigaction (SIGUSR2, &sa, NULL)) return 2; sigemptyset (&set); sigaddset (&set, SIGUSR1); sigaddset (&set, SIGUSR2); if (sigprocmask (SIG_BLOCK, &set, NULL)) return 3; printf ("main at %p, handler at %p\n", &main, &handler); raise (SIGUSR1); raise (SIGUSR2); if (sigprocmask (SIG_UNBLOCK, &set, NULL)) return 4; if (hit1 + hit2 == 1) { puts ("PASS"); return 0; } puts ("FAIL"); return 1; } Signed-off-by: Roland McGrath Cc: Andrew Morton Cc: Linus Torvalds Signed-off-by: Ingo Molnar commit da1f29f5dfcc8641f9ff6f3deaa9f03b57e63229 Author: Rafael J. Wysocki Date: Sat Jul 12 02:50:15 2008 +0200 x86: remove conflicting nx6325 and nx6125 quirks We have two conflicting DMA-based quirks in there for the same set of boxes (HP nx6325 and nx6125) and one of them actually breaks my box. So remove the extra code. Signed-off-by: Rafael J. Wysocki Cc: Stephen Rothwell Cc: =?iso-8859-1?q?T=F6r=F6k_Edwin?= Cc: Vegard Nossum Cc: Andreas Herrmann Signed-off-by: Ingo Molnar commit de32a2434f7ce4600da90ecb44abcdc365ada1d0 Author: Thomas Gleixner Date: Sat Jul 12 05:33:30 2008 +0200 kernel-paramaters: document pmtmr= command line option Signed-off-by: Thomas Gleixner commit 38032f72601deac7aab00691c79e83d09b204e2a Author: Randy Dunlap Date: Fri Jul 11 12:57:31 2008 -0700 acpi_pm clccksource: fix printk format warning Fix printk format warning in acpi_pm clocksource: linux-next-20080711/drivers/clocksource/acpi_pm.c:231: warning: format '%04lx' expects type 'long unsigned int', but argument 2 has type 'u32' Signed-off-by: Randy Dunlap Cc: akpm Signed-off-by: Thomas Gleixner commit 49f1487b2e41bd8439ea39a4f15b4064e823cc54 Author: Mingming Cao Date: Fri Jul 11 19:27:31 2008 -0400 ext4: Documention update for new ordered mode and delayed allocation Adding some documentations for delayed allocation and new ordered mode. Signed-off-by: Mingming Cao Signed-off-by: "Theodore Ts'o" commit e4079a11f5ed966b7d972cc69e8d337a0f095e32 Author: Eric Sandeen Date: Fri Jul 11 19:27:31 2008 -0400 ext4: do not set extents feature from the kernel We've talked for a while about getting rid of any feature- setting from the kernel; this gets rid of the code which would set the INCOMPAT_EXTENTS flag on the first file write when mounted as ext4[dev]. With this patch, if the extents feature is not already set on disk, then mounting as ext4 will fall back to noextents with a warning, and if -o extents is explicitly requested, the mount will fail, also with warning. Signed-off-by: Eric Sandeen Signed-off-by: "Theodore Ts'o" commit c07651b556323e0e763c452587fe29d2b034b314 Author: Aneesh Kumar K.V Date: Fri Jul 11 19:27:31 2008 -0400 ext4: Don't allow nonextenst mount option for large filesystem The block mapped inode format can address only blocks within 2**32. This causes a number of issues, the biggest of which is that the block allocator needs to be taught that certain inodes can not utilize block numbers > 2**32. So until this is fixed, it is simplest to fail mounting of file systems with more than 2**32 blocks if the -o noextents option is given. Signed-off-by: Aneesh Kumar K.V Signed-off-by: Mingming Cao Signed-off-by: "Theodore Ts'o" commit dd919b9822c5fd9fd72f95a602440130297c3857 Author: Aneesh Kumar K.V Date: Fri Jul 11 19:27:31 2008 -0400 ext4: Enable delalloc by default. Enable delalloc by default to ensure it gets sufficient testing and because it makes the filesystem much more efficient. Add a nodealalloc option to disable delayed allocation, and update ext4_show_options to show delayed allocation off if it is disabled. If the data=journal mount option is used, disable delayed allocation since the delalloc code doesn't support data=journal yet. Signed-off-by: Aneesh Kumar K.V Signed-off-by: "Theodore Ts'o" Signed-off-by: Mingming Cao commit 3e3398a08d6e516675d5af853d625dc7dd90eab1 Author: Mingming Cao Date: Fri Jul 11 19:27:31 2008 -0400 ext4: delayed allocation i_blocks fix for stat Right now i_blocks is not getting updated until the blocks are actually allocaed on disk. This means with delayed allocation, right after files are copied, "ls -sF" shoes the file as taking 0 blocks on disk. "du" also shows the files taking zero space, which is highly confusing to the user. Since delayed allocation already keeps track of per-inode total number of blocks that are subject to delayed allocation, this patch fix this by using that to adjust the value returned by stat(2). When real block allocation is done, the i_blocks will get updated. Since the reserved blocks for delayed allocation will be decreased, this will be keep value returned by stat(2) consistent. Signed-off-by: Mingming Cao Signed-off-by: "Theodore Ts'o" commit 632eaeab1feb5d78c1e2bfb1d2dfc0ebb8ac187f Author: Mingming Cao Date: Fri Jul 11 19:27:31 2008 -0400 ext4: fix delalloc i_disksize early update issue Ext4_da_write_end() used walk_page_buffers() with a callback function of ext4_bh_unmapped_or_delay() to check if it extended the file size without allocating any blocks (since in this case i_disksize needs to be updated). However, this is didn't work proprely because the buffer head has not been marked dirty yet --- this is done later in block_commit_write() --- which caused ext4_bh_unmapped_or_delay() to always return false. In addition, walk_page_buffers() checks all of the buffer heads covering the page, and the only buffer_head that should be checked is the one covering the end of the write. Otherwise, given a 1k blocksize filesystem and a 4k page size, the buffer head covering the first 1k stripe of the file could be unmapped (because it was a sparse file), and the second or third buffer_head covering that page could be mapped, and using walk_page_buffers() would fail in this case since it would stop at the first unmapped buffer_head and return true. The core problem is that walk_page_buffers() was intended to do work in a callback function, and a non-zero return value indicated a failure, which termined the walk of the buffer heads covering the page. It was not intended to be used with a boolean function, such as ext4_bh_unmapped_or_delay(). Add addtional fix from Aneesh to protect i_disksize update rave with truncate. Signed-off-by: Mingming Cao Signed-off-by: Aneesh Kumar K.V Signed-off-by: "Theodore Ts'o" commit f0e6c98593eb8a77edb7dd0edb22bb9f9368c567 Author: Aneesh Kumar K.V Date: Fri Jul 11 19:27:31 2008 -0400 ext4: Handle page without buffers in ext4_*_writepage() It can happen that buffers are removed from the page before it gets marked dirty and then is passed to writepage(). In writepage() we just initialize the buffers and check whether they are mapped and non delay. If they are mapped and non delay we write the page. Otherwise we mark them dirty. With this change we don't do block allocation at all in ext4_*_write_page. writepage() can get called under many condition and with a locking order of journal_start -> lock_page, we should not try to allocate blocks in writepage() which get called after taking page lock. writepage() can get called via shrink_page_list even with a journal handle which was created for doing inode update. For example when doing ext4_da_write_begin we create a journal handle with credit 1 expecting a i_disksize update for the inode. But ext4_da_write_begin can cause shrink_page_list via _grab_page_cache. So having a valid handle via ext4_journal_current_handle is not a guarantee that we can use the handle for block allocation in writepage, since we shouldn't be using credits that had been reserved for other updates. That it could result in we running out of credits when we update inodes. Signed-off-by: Aneesh Kumar K.V Signed-off-by: Mingming Cao Signed-off-by: "Theodore Ts'o" commit cd1aac32923a9c8adcc0ae85e33c1ca0c5855838 Author: Aneesh Kumar K.V Date: Fri Jul 11 19:27:31 2008 -0400 ext4: Add ordered mode support for delalloc This provides a new ordered mode implementation which gets rid of using buffer heads to enforce the ordering between metadata change with the related data chage. Instead, in the new ordering mode, it keeps track of all of the inodes touched by each transaction on a list, and when that transaction is committed, it flushes all of the dirty pages for those inodes. In addition, the new ordered mode reverses the lock ordering of the page lock and transaction lock, which provides easier support for delayed allocation. Signed-off-by: Aneesh Kumar K.V Signed-off-by: Mingming Cao Signed-off-by: "Theodore Ts'o" commit 61628a3f3a37af2bf25daf8e26fd6b76a78c4f76 Author: Mingming Cao Date: Fri Jul 11 19:27:31 2008 -0400 ext4: Invert lock ordering of page_lock and transaction start in delalloc With the reverse locking, we need to start a transation before taking the page lock, so in ext4_da_writepages() we need to break the write-out into chunks, and restart the journal for each chunck to ensure the write-out fits in a single transaction. Updated patch from Aneesh Kumar K.V which fixes delalloc sync hang with journal lock inversion, and address the performance regression issue. Signed-off-by: Mingming Cao Signed-off-by: Aneesh Kumar K.V Signed-off-by: Jan Kara Signed-off-by: "Theodore Ts'o" commit 06d6cf6959d22037fcec598f4f954db5db3d7356 Author: Aneesh Kumar K.V Date: Fri Jul 11 19:27:31 2008 -0400 mm: Add range_cont mode for writeback Filesystems like ext4 needs to start a new transaction in the writepages for block allocation. This happens with delayed allocation and there is limit to how many credits we can request from the journal layer. So we call write_cache_pages multiple times with wbc->nr_to_write set to the maximum possible value limitted by the max journal credits available. Add a new mode to writeback that enables us to handle this behaviour. In the new mode we update the wbc->range_start to point to the new offset to be written. Next call to call to write_cache_pages will start writeout from specified range_start offset. In the new mode we also limit writing to the specified wbc->range_end. Signed-off-by: Aneesh Kumar K.V Signed-off-by: Mingming Cao Acked-by: Jan Kara Signed-off-by: "Theodore Ts'o" commit d2a1763791a634e315ec926b62829c1e88842c86 Author: Mingming Cao Date: Mon Jul 14 17:52:37 2008 -0400 ext4: delayed allocation ENOSPC handling This patch does block reservation for delayed allocation, to avoid ENOSPC later at page flush time. Blocks(data and metadata) are reserved at da_write_begin() time, the freeblocks counter is updated by then, and the number of reserved blocks is store in per inode counter. At the writepage time, the unused reserved meta blocks are returned back. At unlink/truncate time, reserved blocks are properly released. Updated fix from Aneesh Kumar K.V to fix the oldallocator block reservation accounting with delalloc, added lock to guard the counters and also fix the reservation for meta blocks. Signed-off-by: Aneesh Kumar K.V Signed-off-by: Mingming Cao Signed-off-by: Theodore Ts'o commit e8ced39d5e8911c662d4d69a342b9d053eaaac4e Author: Mingming Cao Date: Fri Jul 11 19:27:31 2008 -0400 percpu_counter: new function percpu_counter_sum_and_set Delayed allocation need to check free blocks at every write time. percpu_counter_read_positive() is not quit accurate. delayed allocation need a more accurate accounting, but using percpu_counter_sum_positive() is frequently is quite expensive. This patch added a new function to update center counter when sum per-cpu counter, to increase the accurate rate for next percpu_counter_read() and require less calling expensive percpu_counter_sum(). Signed-off-by: Mingming Cao Signed-off-by: "Theodore Ts'o" commit 64769240bd07f446f83660bb143bb609d8ab4910 Author: Alex Tomas Date: Fri Jul 11 19:27:31 2008 -0400 ext4: Add delayed allocation support in data=writeback mode Updated with fixes from Mingming Cao to unlock and release the page from page cache if the delalloc write_begin failed, and properly handle preallocated blocks. Also added a fix to clear buffer_delay in block_write_full_page() after allocating a delayed buffer. Updated with fixes from Aneesh Kumar K.V to update i_disksize properly and to add bmap support for delayed allocation. Updated with a fix from Valerie Clement to avoid filesystem corruption when the filesystem is mounted with the delalloc option and blocksize < pagesize. Signed-off-by: Alex Tomas Signed-off-by: Mingming Cao Signed-off-by: Dave Kleikamp Signed-off-by: "Theodore Ts'o" Signed-off-by: Aneesh Kumar K.V commit 29a814d2ee0e43c2980f33f91c1311ec06c0aa35 Author: Alex Tomas Date: Fri Jul 11 19:27:31 2008 -0400 vfs: add hooks for ext4's delayed allocation support Export mpage_bio_submit() and __mpage_writepage() for the benefit of ext4's delayed allocation support. Also change __block_write_full_page so that if buffers that have the BH_Delay flag set it will call get_block() to get the physical block allocated, just as in the !BH_Mapped case. Signed-off-by: Alex Tomas Signed-off-by: "Theodore Ts'o" commit 87c89c232c8f7b3820c33c3b9bc803e9358027da Author: Jan Kara Date: Fri Jul 11 19:27:31 2008 -0400 jbd2: Remove data=ordered mode support using jbd buffer heads Signed-off-by: Jan Kara commit 678aaf481496b01473b778685eca231d6784098b Author: Jan Kara Date: Fri Jul 11 19:27:31 2008 -0400 ext4: Use new framework for data=ordered mode in JBD2 This patch makes ext4 use inode-based implementation of data=ordered mode in JBD2. It allows us to unify some data=ordered and data=writeback paths (especially writepage since we don't have to start a transaction anymore) and remove some buffer walking. Updated fix from Aneesh Kumar K.V to fix file system hang due to corrupt jinode values. Signed-off-by: Jan Kara Signed-off-by: Aneesh Kumar K.V Signed-off-by: Mingming Cao Signed-off-by: "Theodore Ts'o" commit c851ed540173736e60d48b53b91a16ea5c903896 Author: Jan Kara Date: Fri Jul 11 19:27:31 2008 -0400 jbd2: Implement data=ordered mode handling via inodes This patch adds necessary framework into JBD2 to be able to track inodes with each transaction and write-out their dirty data during transaction commit time. This new ordered mode brings all sorts of advantages such as possibility to get rid of journal heads and buffer heads for data buffers in ordered mode, better ordering of writes on transaction commit, simplification of some JBD code, no more anonymous pages when truncate of data being committed happens. Also with this new ordered mode, delayed allocation on ordered mode is much simpler. Signed-off-by: Jan Kara commit f4c0a0fdfae708f7aa438c27a380ed4071294e11 Author: Jan Kara Date: Fri Jul 11 19:27:31 2008 -0400 vfs: export filemap_fdatawrite_range() Make filemap_fdatawrite_range() function public, so that it can later be used in ordered mode rewrite by JBD/JBD2. Signed-off-by: Jan Kara commit 9ddfc3dc75b5cc55ff3cfa586e962d252f1db9d3 Author: Jan Kara Date: Fri Jul 11 19:27:31 2008 -0400 ext4: Fix lock inversion in ext4_ext_truncate() We cannot call ext4_orphan_add() from under i_data_sem because that causes a lock ordering violation between i_data_sem and and the superblock lock. Updated with Aneesh's locking order fix Signed-off-by: Jan Kara Signed-off-by: Mingming Cao Signed-off-by: Aneesh Kumar K.V Signed-off-by: "Theodore Ts'o" commit cf108bca465dde0c015f32dd453b99457d31c7c7 Author: Jan Kara Date: Fri Jul 11 19:27:31 2008 -0400 ext4: Invert the locking order of page_lock and transaction start This changes are needed to support data=ordered mode handling via inodes. This enables us to get rid of the journal heads and buffer heads for data buffers in the ordered mode. With the changes, during tranasaction commit we writeout the inode pages using the writepages()/writepage(). That implies we take page lock during transaction commit. This can cause a deadlock with the locking order page_lock -> jbd2_journal_start, since the jbd2_journal_start can wait for the journal_commit to happen and the journal_commit now needs to take the page lock. To avoid this dead lock reverse the locking order. Signed-off-by: Jan Kara Signed-off-by: Mingming Cao Signed-off-by: Aneesh Kumar K.V Signed-off-by: "Theodore Ts'o" commit c7d206b3379f7d6462e778b74f475c470ee3dcaf Author: Jan Kara Date: Fri Jul 11 19:27:31 2008 -0400 vfs: Move mark_inode_dirty() from under page lock in generic_write_end() There's no need to call mark_inode_dirty() under page lock in generic_write_end(). It unnecessarily makes hold time of page lock longer and more importantly it forces locking order of page lock and transaction start for journaling filesystems. Signed-off-by: Jan Kara Signed-off-by: Aneesh Kumar K.V Signed-off-by: "Theodore Ts'o" commit 2e9ee850355593e311d9a26542290fe51e152f74 Author: Aneesh Kumar K.V Date: Fri Jul 11 19:27:31 2008 -0400 ext4: Use page_mkwrite vma_operations to get mmap write notification. We would like to get notified when we are doing a write on mmap section. This is needed with respect to preallocated area. We split the preallocated area into initialzed extent and uninitialzed extent in the call back. This let us handle ENOSPC better. Otherwise we get ENOSPC in the writepage and that would result in data loss. The changes are also needed to handle ENOSPC when writing to an mmap section of files with holes. Acked-by: Jan Kara Signed-off-by: Aneesh Kumar K.V Signed-off-by: Mingming Cao Signed-off-by: "Theodore Ts'o" commit 93e3270c87549dc531a0b0e5d06362d998d810cb Author: Jose R. Santos Date: Fri Jul 11 19:27:31 2008 -0400 ext4: Documentation updates. Some of the information in Documentation/filesystems/ext4.txt is out of date and in need of an update. Signed-off-by: Jose R. Santos Signed-off-by: "Theodore Ts'o" commit 5f21b0e642d7bf6fe4434c9ba12bc9cb96b17cf7 Author: Frederic Bohe Date: Fri Jul 11 19:27:31 2008 -0400 ext4: fix online resize with mballoc Update group infos when updating a group's descriptor. Add group infos when adding a group's descriptor. Refresh cache pages used by mb_alloc when changes occur. This will probably need modifications when META_BG resizing will be allowed. Signed-off-by: Frederic Bohe Signed-off-by: Mingming Cao commit 953e622b601f58b7cc0f29fe644457fa40a18456 Author: Eric Sandeen Date: Fri Jul 11 19:27:31 2008 -0400 ext4: use atomic functions to set bh_state Use the BUFFER_FNS functions (set_buffer_foo) to set buffer head state atomically instead of nonatomic __set_bit(). Signed-off-by: Eric Sandeen Signed-off-by: Mingming Cao Signed-off-by: "Theodore Ts'o" commit 47b4a50bebfd34b5e1fa2a9c673c8f31fa231cc1 Author: Jan Kara Date: Fri Jul 11 19:27:31 2008 -0400 ext4: Set journal pointer to NULL when journal is released Set sbi->s_journal to NULL after we call journal_destroy(). This will be later needed because after journal_destroy() is called, ext4_clear_inode() can still be called for some inodes (e.g. root inode) and we'll need to detect there that journal doesn't exists anymore. Signed-off-by: Jan Kara Signed-off-by: "Theodore Ts'o" commit 07031431072ece801d53d2c03d5e5bb21f4f64a4 Author: Mingming Cao Date: Fri Jul 11 19:27:31 2008 -0400 ext4: mballoc avoid use root reserved blocks for non root allocation mballoc allocation missed check for blocks reserved for root users. Add ext4_has_free_blocks() check before allocation. Also modified ext4_has_free_blocks() to support multiple block allocation request. Signed-off-by: Mingming Cao Signed-off-by: "Theodore Ts'o" commit d755fb384250d6bd7fd18a0930e71965acc8e72e Author: Eric Sandeen Date: Fri Jul 11 19:27:31 2008 -0400 ext4: call blkdev_issue_flush on fsync To ensure that bits are truly on-disk after an fsync, we should call blkdev_issue_flush if barriers are supported. Inspired by an old thread on barriers, by reiserfs & xfs which do the same, and by a patch SuSE ships with their kernel Signed-off-by: Eric Sandeen Signed-off-by: Mingming Cao Signed-off-by: "Theodore Ts'o" commit 654b4908bc17a6318d18f3036fecc5155de92f55 Author: Aneesh Kumar K.V Date: Fri Jul 11 19:27:31 2008 -0400 ext4: cleanup block allocator Move the code related to block allocation to a single function and add helper funtions to differient allocation for data and meta data blocks Signed-off-by: Aneesh Kumar K.V Signed-off-by: Mingming Cao Signed-off-by: "Theodore Ts'o" commit 7061eba75ceb0835ba61e7cbd757a6f9c1e4af92 Author: Aneesh Kumar K.V Date: Fri Jul 11 19:27:31 2008 -0400 ext4: Use inode preallocation with -o noextents When mballoc is enabled, block allocation for old block-based files are allocated using mballoc allocator instead of old block-based allocator. The old ext3 block reservation is turned off when mballoc is turned on. However, the in-core preallocation is not enabled for block-based/ non-extent based file block allocation. This result in performance regression, as now we don't have "reservation" ore in-core preallocation to prevent interleaved fragmentation in multiple writes workload. This patch fix this by enable per inode in-core preallocation for non extent files when mballoc is used. Signed-off-by: Aneesh Kumar K.V Signed-off-by: Mingming Cao Signed-off-by: "Theodore Ts'o" commit 6afd670713c9e7d5c5550e379dfedca8ffab4c90 Author: Akinobu Mita Date: Fri Jul 11 19:27:31 2008 -0400 ext4: fix ext4_init_block_bitmap() for metablock block group When meta_bg feature is enabled and s_first_meta_bg != 0, ext4_init_block_bitmap() miscalculates the number of block used by the group descriptor table (0 or 1 for metablock block group) This patch fixes this by using ext4_bg_num_gdb() Signed-off-by: Akinobu Mita Cc: Andrew Morton Cc: Stephen Tweedie Signed-off-by: Mingming Cao Signed-off-by: "Theodore Ts'o" Acked-by: Andreas Dilger commit 7477827f6686ce29b6216d9eb26f6b9027742dcc Author: Aneesh Kumar K.V Date: Fri Jul 11 19:27:31 2008 -0400 ext4: Fix sparse warning Signed-off-by: Aneesh Kumar K.V Signed-off-by: "Theodore Ts'o" commit d9c769b769a8bcd70371c71797fc4e407b37ba75 Author: Li Zefan Date: Fri Jul 11 19:27:31 2008 -0400 ext4: cleanup never-used magic numbers from htree code dx_root_limit() will had some dead code which forced it to always return 20, and dx_node_limit to always return 22 for debugging purposes. Remove it. Acked-by: Andreas Dilger Signed-off-by: Li Zefan Signed-off-by: Mingming Cao Signed-off-by: "Theodore Ts'o" commit 9102e4fa8016af8bf1a263df913ee8fdafd4dfb0 Author: Shen Feng Date: Fri Jul 11 19:27:31 2008 -0400 ext4: Fix ext4_ext_journal_restart() to reflect errors up to the caller Fix ext4_ext_journal_restart() so it returns any errors reported by ext4_journal_extend() and ext4_journal_restart(). Signed-off-by: Shen Feng Reviewed-by: Aneesh Kumar K.V Signed-off-by: Mingming Cao Signed-off-by: "Theodore Ts'o" commit 1973adcba570c226de840299056e055a3614185e Author: Shen Feng Date: Fri Jul 11 19:27:31 2008 -0400 ext4: Make ext4_ext_find_extent fills ext_path completely When pos=0 or depth, the fields of ext4_ext_path is are not completely filled. This patch also removes some unnecessary code. Signed-off-by: Shen Feng Signed-off-by: Mingming Cao Signed-off-by: "Theodore Ts'o" commit 787e0981fad97a5ca3d07c7afe115a7e345b2861 Author: Shen Feng Date: Fri Jul 11 19:27:31 2008 -0400 ext4: return error when calling ext4_ext_split failed ext4_ext_create_new_leaf must return error when its calling to ext4_ext_split failed. Signed-off-by: Shen Feng Signed-off-by: Mingming Cao Reviewed-by: Aneesh Kumar K.V Signed-off-by: "Theodore Ts'o" commit a379cd1d6bb00f9f5d2759d4a5621a884df5914e Author: Aneesh Kumar K.V Date: Fri Jul 11 19:27:31 2008 -0400 ext4: Update i_disksize properly when allocating from fallocate area. When allocating unitialized space at the end of file which had been preallocated with the FALLOC_FL_KEEP_SIZE option, the file size is not updated at that time. But the later we are not updating the file size when writing to that preallocated space. These changes are for code correctness. This patch allows us to update the i_disksize at the write_end() callback of filesystem properly. Signed-off-by: Aneesh Kumar K.V Signed-off-by: Mingming Cao Signed-off-by: "Theodore Ts'o" commit 363d4251d4bd984c304e0989789f6494343660fd Author: Shen Feng Date: Fri Jul 11 19:27:31 2008 -0400 ext4: remove quota allocation when ext4_mb_new_blocks fails Quota allocation is not removed when ext4_mb_new_blocks calls kmem_cache_alloc failed. Also make sure the allocation context is freed on the error path. Signed-off-by: Shen Feng Signed-off-by: Mingming Cao Signed-off-by: "Theodore Ts'o" commit f9a8ac99fd79eb961a8573ccf058439bc17b4d3a Author: Li Zefan Date: Fri Jul 11 19:27:31 2008 -0400 ext4: remove redundant code in ext4_fill_super() The previous sb_min_blocksize() has already set the block size. Signed-off-by: Li Zefan Signed-off-by: Mingming Cao Signed-off-by: "Theodore Ts'o" commit 530576bbf379fc45cfb34f246257d8526db44567 Author: Mingming Cao Date: Sun Jul 13 21:06:39 2008 -0400 jbd2: fix race between jbd2_journal_try_to_free_buffers() and jbd2 commit transaction journal_try_to_free_buffers() could race with jbd commit transaction when the later is holding the buffer reference while waiting for the data buffer to flush to disk. If the caller of journal_try_to_free_buffers() request tries hard to release the buffers, it will treat the failure as error and return back to the caller. We have seen the directo IO failed due to this race. Some of the caller of releasepage() also expecting the buffer to be dropped when passed with GFP_KERNEL mask to the releasepage()->journal_try_to_free_buffers(). With this patch, if the caller is passing the GFP_KERNEL to indicating this call could wait, in case of try_to_free_buffers() failed, let's waiting for journal_commit_transaction() to finish commit the current committing transaction , then try to free those buffers again with journal locked. Signed-off-by: Mingming Cao Reviewed-by: Badari Pulavarty Signed-off-by: "Theodore Ts'o" commit 772cb7c83ba256a11c7bf99a11bef3858d23767c Author: Jose R. Santos Date: Fri Jul 11 19:27:31 2008 -0400 ext4: New inode allocation for FLEX_BG meta-data groups. This patch mostly controls the way inode are allocated in order to make ialloc aware of flex_bg block group grouping. It achieves this by bypassing the Orlov allocator when block group meta-data are packed toghether through mke2fs. Since the impact on the block allocator is minimal, this patch should have little or no effect on other block allocation algorithms. By controlling the inode allocation, it can basically control where the initial search for new block begins and thus indirectly manipulate the block allocator. This allocator favors data and meta-data locality so the disk will gradually be filled from block group zero upward. This helps improve performance by reducing seek time. Since the group of inode tables within one flex_bg are treated as one giant inode table, uninitialized block groups would not need to partially initialize as many inode table as with Orlov which would help fsck time as the filesystem usage goes up. Signed-off-by: Jose R. Santos Signed-off-by: Valerie Clement Signed-off-by: "Theodore Ts'o" commit 736603ab297506f4396cb5af592004499950fcfd Author: Theodore Ts'o Date: Fri Jul 11 19:27:31 2008 -0400 jbd2: Add commit time into the commit block Carlo Wood has demonstrated that it's possible to recover deleted files from the journal. Something that will make this easier is if we can put the time of the commit into commit block. Signed-off-by: "Theodore Ts'o" commit 4db9c54a53135b7c1c1f403f1aeaf9fc0d7738b8 Author: Stoyan Gaydarov Date: Sun Jul 13 21:03:29 2008 -0400 ext4: replace __FUNCTION__ occurrences __FUNCTION__ is gcc-specific, use __func__ instead Signed-off-by: Stoyan Gaydarov Cc: Theodore Ts'o Cc: Mingming Cao Signed-off-by: Andrew Morton Signed-off-by: Theodore Ts'o commit 7e5a8cdd843b7af8d6d38a9bf96306145edb66e0 Author: Shen Feng Date: Sun Jul 13 21:03:31 2008 -0400 ext4: fix error processing in mb_free_blocks The error processing of the return value of mb_free_blocks is meanless because it only returns 0. This fix includes - make mb_free_blocks return void - remove the error processing part in callers - unlock group before calling ext4_error in mb_free_blocks Signed-off-by: Shen Feng Cc: Mingming Cao Cc: Theodore Ts'o Signed-off-by: Andrew Morton Signed-off-by: Theodore Ts'o commit cfbe7e4f5e4a0e1fc2ff23b167bfb3fa992f623d Author: Shen Feng Date: Sun Jul 13 21:03:31 2008 -0400 ext4: error proc entry creation when the fs/ext4 is not correctly created When the directory fs/ext4 is not correctly created under proc, the entry under this directory should not be created. Signed-off-by: Shen Feng Signed-off-by: Andrew Morton Signed-off-by: Theodore Ts'o commit f795e1407343ebe6597653f4a6a7f770676e84c5 Author: Li Zefan Date: Fri Jul 11 19:27:31 2008 -0400 ext4: fix build failure if DX_DEBUG is enabled ext4_next_entry() is used by the debugging function dx_show_leaf(), so it must be defined before that function. Signed-off-by: Li Zefan Signed-off-by: Eric Sandeen Signed-off-by: "Theodore Ts'o" commit 7ad72ca60b6be3c79f90a81ce5883e12a2c6e667 Author: Theodore Ts'o Date: Fri Jul 11 19:27:31 2008 -0400 ext4: Remove unused variable from ext4_show_options Signed-off-by: "Theodore Ts'o" commit 574ca174c97f790086e3e6f2251381420ad38fd0 Author: Theodore Ts'o Date: Fri Jul 11 19:27:31 2008 -0400 ext4: Rename read_block_bitmap() to ext4_read_block_bitmap() Since this a non-static function, make it be ext4 specific to avoid conflicts with potentially other filesystems. Signed-off-by: "Theodore Ts'o" commit 3537576a707c6df98e883b77b854c6083f844602 Author: Shen Feng Date: Fri Jul 11 19:27:31 2008 -0400 ext4: remove double definitions of xattr macros remove the definitions of macros XATTR_TRUSTED_PREFIX and XATTR_USER_PREFIX since they are defined in linux/xattr.h Signed-off-by: Shen Feng Signed-off-by: Mingming Cao Signed-off-by: "Theodore Ts'o" commit 74767c5a2dca0a60676d60d36377a41f60ca42ba Author: Shen Feng Date: Fri Jul 11 19:27:31 2008 -0400 ext4: miscellaneous error checks and coding cleanups for mballoc ext4_mb_seq_history_open(): check if sbi->s_mb_history is NULL ext4_mb_history_init(): replace kmalloc and memset with kzalloc ext4_mb_init_backend(): remove memset since kzalloc is used ext4_mb_init(): the return value of ext4_mb_init_backend is int, but i is unsigned, replace it with a new int variable. Signed-off-by: Shen Feng Reviewed-by: Aneesh Kumar K.V Signed-off-by: Mingming Cao Signed-off-by: "Theodore Ts'o" commit fdf6c7a7683c6272e953a33358920e98a4d93cf0 Author: Shen Feng Date: Fri Jul 11 19:27:31 2008 -0400 ext4: add error processing when calling ext4_mb_init_cache in mballoc Add error processing for ext4_mb_load_buddy when it calls ext4_mb_init_cache. Signed-off-by: Shen Feng Reviewed-by: Aneesh Kumar K.V Signed-off-by: Mingming Cao Signed-off-by: "Theodore Ts'o" commit 31b481dc7c249eac0a108ec5dfc0d4aef2217e39 Author: Mingming Cao Date: Fri Jul 11 19:27:31 2008 -0400 ext4: Fix ext4_mb_init_cache return error ext4_mb_init_cache() incorrectly always return EIO on success. This causes the caller of ext4_mb_init_cache() fail when it checks the return value. Signed-off-by: Mingming Cao Signed-off-by: "Theodore Ts'o" commit 69baee062a044ef1588e423e52131710e7584d1a Author: Shen Feng Date: Fri Jul 11 19:27:31 2008 -0400 ext4: improve some code in rb tree part of dir.c * remove unnecessary code in free_rb_tree_fname * rename free_rb_tree_fname to ext4_htree_create_dir_info since it and ext4_htree_free_dir_info are a pair * replace kmalloc with kzalloc in ext4_htree_free_dir_info All these make the code more readable and simple. PS: this patch is also suitable for ext3. Signed-off-by: Shen Feng Signed-off-by: Mingming Cao Signed-off-by: "Theodore Ts'o" commit 91d99827791fdd5f9424458ad5ae870f89dbcadf Author: Alexey Dobriyan Date: Fri Jul 11 19:27:31 2008 -0400 ext4: switch to seq_files Signed-off-by: Alexey Dobriyan Cc: Mingming Cao Signed-off-by: "Theodore Ts'o" Signed-off-by: Andrew Morton commit 07d45f126712fea3a9f44068bf65e0a26a162286 Author: Julia Lawall Date: Fri Jul 11 19:27:31 2008 -0400 ext4: Use BUG_ON() instead of BUG() if (...) BUG(); should be replaced with BUG_ON(...) when the test has no side-effects to allow a definition of BUG_ON that drops the code completely. The semantic patch that makes this change is as follows: (http://www.emn.fr/x-info/coccinelle/) // @ disable unlikely @ expression E,f; @@ ( if (<... f(...) ...>) { BUG(); } | - if (unlikely(E)) { BUG(); } + BUG_ON(E); ) @@ expression E,f; @@ ( if (<... f(...) ...>) { BUG(); } | - if (E) { BUG(); } + BUG_ON(E); ) // Signed-off-by: Julia Lawall Signed-off-by: Andrew Morton Signed-off-by: "Theodore Ts'o" commit ed8f9c751feb3aebf7c0dd25e61481a16412bd6e Author: Aneesh Kumar K.V Date: Fri Jul 11 19:27:31 2008 -0400 ext4: start searching for the right extent from the goal group. With mballoc we search for the best extent using different criteria. We should always use the goal group when we are starting with a new criteria. Signed-off-by: Aneesh Kumar K.V Signed-off-by: Mingming Cao Signed-off-by: "Theodore Ts'o" commit 8a35694e1181a5c6d6496dca09407fc7fa4c86c2 Author: Shen Feng Date: Fri Jul 11 19:27:31 2008 -0400 ext4: fix comments to say "ext4" Change second/third to fourth. Signed-off-by: Shen Feng Signed-off-by: Mingming Cao Signed-off-by: "Theodore Ts'o" commit e7dfb2463e3c1b10c38372023e0186d25dec1fa6 Author: Aneesh Kumar K.V Date: Fri Jul 11 19:27:31 2008 -0400 ext4: Fix mb_find_next_bit not to return larger than max Some architectures implement ext4_find_next_bit and ext4_find_next_zero_bit in such a way that they return greater than max for some input values. Make sure mb_find_next_bit and mb_find_next_zero_bit return the right values. On 2.6.25 we have include/asm-x86/bitops_32.h static inline unsigned find_first_bit(const unsigned long *addr, unsigned size) { unsigned x = 0; while (x < size) { unsigned long val = *addr++; if (val) return __ffs(val) + x; x += (sizeof(*addr)<<3); } return x; } This can return value greater than size. Reported and fixed here for lustre https://bugzilla.lustre.org/show_bug.cgi?id=15932 https://bugzilla.lustre.org/attachment.cgi?id=17205 Signed-off-by: Aneesh Kumar K.V Signed-off-by: Mingming Cao Signed-off-by: "Theodore Ts'o" commit f3b35f063e9a795495fe2f7a2fe55fab11f8ab12 Author: Duane Griffin Date: Fri Jul 11 19:27:31 2008 -0400 ext4: validate directory entry data before use ext4_dx_find_entry uses ext4_next_entry without verifying that the entry is valid. If its rec_len == 0 this causes an infinite loop. Refactor the loop to check the validity of entries before checking whether they match and moving onto the next one. There are other uses of ext4_next_entry in this file which also look problematic. They should be reviewed and fixed if/when we have a test-case that triggers them. This patch fixes the first case (image hdb.25.softlockup.gz) reported in http://bugzilla.kernel.org/show_bug.cgi?id=10882. Signed-off-by: Duane Griffin Signed-off-by: Theodore Ts'o commit 71dc8fbcf5f6363342bd636a646eeac7cfef25c3 Author: Duane Griffin Date: Fri Jul 11 19:27:31 2008 -0400 ext4: handle deleting corrupted indirect blocks While freeing indirect blocks we attach a journal head to the parent buffer head, free the blocks, then journal the parent. If the indirect block list is corrupted and points to the parent the journal head will be detached when the block is cleared, causing an OOPS. Check for that explicitly and handle it gracefully. This patch fixes the third case (image hdb.20000057.nullderef.gz) reported in http://bugzilla.kernel.org/show_bug.cgi?id=10882. Signed-off-by: Duane Griffin Signed-off-by: Theodore Ts'o commit 91ef4caf800030fa6e5224b8a41f8c74787b303d Author: Duane Griffin Date: Fri Jul 11 19:27:31 2008 -0400 ext4: handle corrupted orphan list at mount If the orphan node list includes valid, untruncatable nodes with nlink > 0 the ext4_orphan_cleanup loop which attempts to delete them will not do so, causing it to loop forever. Fix by checking for such nodes in the ext4_orphan_get function. This patch fixes the second case (image hdb.20000009.softlockup.gz) reported in http://bugzilla.kernel.org/show_bug.cgi?id=10882. Signed-off-by: Duane Griffin Signed-off-by: Theodore Ts'o commit feae1ef116ed381625d3731c5ae4f4ebcb3fa302 Author: Roland Dreier Date: Fri Jul 11 13:54:40 2008 -0700 IB/umad: BKL is not needed for ib_umad_open() Remove explicit lock_kernel() calls and document why the code is safe. Signed-off-by: Roland Dreier Signed-off-by: Jonathan Corbet commit 6c82a000a29b93541b5b7db597a083c069755cc9 Merge: 5b4d238... 39415a4... Author: Ingo Molnar Date: Fri Jul 11 21:22:18 2008 +0200 Merge branch 'x86/generalize-visws' into x86/core commit 5b4d2386c23e5de553fce002892c7691a989b350 Author: Maciej W. Rozycki Date: Fri Jul 11 19:47:15 2008 +0100 x86: Recover timer_ack lost in the merge of the NMI watchdog In the course of the recent unification of the NMI watchdog an assignment to timer_ack to switch off unnecesary POLL commands to the 8259A in the case of a watchdog failure has been accidentally removed. The statement used to be limited to the 32-bit variation as since the rewrite of the timer code it has been relevant for the 82489DX only. This change brings it back. Signed-off-by: Maciej W. Rozycki Signed-off-by: Ingo Molnar commit af174783b9251f0afd4bb78927221bcaaa65d3ac Author: Maciej W. Rozycki Date: Fri Jul 11 19:35:23 2008 +0100 x86: I/O APIC: Never configure IRQ2 There is no such entity as ISA IRQ2. The ACPI spec does not make it explicitly clear, but does not preclude it either -- all it says is ISA legacy interrupts are identity mapped by default (subject to overrides), but it does not state whether IRQ2 exists or not. As a result if there is no IRQ0 override, then IRQ2 is normally initialised as an ISA interrupt, which implies an edge-triggered line, which is unmasked by default as this is what we do for edge-triggered I/O APIC interrupts so as not to miss an edge. To the best of my knowledge it is useless, as IRQ2 has not been in use since the PC/AT as back then it was taken by the 8259A cascade interrupt to the slave, with the line position in the slot rerouted to newly-created IRQ9. No device could thus make use of this line with the pair of 8259A chips. Now in theory INTIN2 of the I/O APIC may be usable, but the interrupt of the device wired to it would not be available in the PIC mode at all, so I seriously doubt if anybody decided to reuse it for a regular device. However there are two common uses of INTIN2. One is for IRQ0, with an ACPI interrupt override (or its equivalent in the MP table). But in this case IRQ2 is gone entirely with INTIN0 left vacant. The other one is for an 8959A ExtINTA cascade. In this case IRQ0 goes to INTIN0 and if ACPI is used INTIN2 is assumed to be IRQ2 (there is no override and ACPI has no way to report ExtINTA interrupts). This is where a problem happens. The problem is INTIN2 is configured as a native APIC interrupt, with a vector assigned and the mask cleared. And the line may indeed get active and inject interrupts if the master 8959A has its timer interrupt enabled (it might happen for other interrupts too, but they are normally masked in the process of rerouting them to the I/O APIC). There are two cases where it will happen: * When the I/O APIC NMI watchdog is enabled. This is actually a misnomer as the watchdog pulses are delivered through the 8259A to the LINT0 inputs of all the local APICs in the system. The implication is the output of the master 8259A goes high and low repeatedly, signalling interrupts to INTIN2 which is enabled too! [The origin of the name is I think for a brief period during the development we had a capability in our code to configure the watchdog to use an I/O APIC input; that would be INTIN2 in this scenario.] * When the native route of IRQ0 via INTIN0 fails for whatever reason -- as it happens with the system considered here. In this scenario the timer pulse is delivered through the 8259A to LINT0 input of the local APIC of the bootstrap processor, quite similarly to how is done for the watchdog described above. The result is, again, INTIN2 receives these pulses too. Rafael's system used to escape this scenario, because an incorrect IRQ0 override would occupy INTIN2 and prevent it from being unmasked. My conclusion is IRQ2 should be excluded from configuration in all the cases and the current exception for ACPI systems should be lifted. The reason being the exception not only being useless, but harmful as well. Signed-off-by: Maciej W. Rozycki Cc: "Rafael J. Wysocki" Cc: Matthew Garrett Cc: Andreas Herrmann Cc: Stephen Rothwell Signed-off-by: Ingo Molnar commit c88ac1df4885ce0d762cfeff0e7d5b83725c1e5c Author: Maciej W. Rozycki Date: Fri Jul 11 19:35:17 2008 +0100 x86: L-APIC: Always fully configure IRQ0 Unlike the 32-bit one, the 64-bit variation of the LVT0 setup code for the "8259A Virtual Wire" through the local APIC timer configuration does not fully configure the relevant irq_chip structure. Instead it relies on the preceding I/O APIC code to have set it up, which does not happen if the I/O APIC variants have not been tried. The patch includes corresponding changes to the 32-bit variation too which make them both the same, barring a small syntactic difference involving sequence of functions in the source. That should work as an aid with the upcoming merge. Signed-off-by: Maciej W. Rozycki Cc: "Rafael J. Wysocki" Cc: Matthew Garrett Cc: Andreas Herrmann Cc: Stephen Rothwell Signed-off-by: Ingo Molnar commit 1baea6e2fea6f235b21f32a322cb6cb43ffdb704 Author: Maciej W. Rozycki Date: Fri Jul 11 19:34:36 2008 +0100 x86: L-APIC: Set IRQ0 as edge-triggered IRQ0 is edge-triggered, but the "8259A Virtual Wire" through the local APIC configuration in the 32-bit version uses the "fasteoi" handler suitable for level-triggered APIC interrupt. Rewrite code so that the "edge" handler is used. The 64-bit version uses different code and is unaffected. Signed-off-by: Maciej W. Rozycki Cc: "Rafael J. Wysocki" Cc: Matthew Garrett Cc: Andreas Herrmann Cc: Stephen Rothwell Signed-off-by: Ingo Molnar commit 392a0fc96bd059b38564f5f8fb58327460cb5a9d Author: Glauber Costa Date: Fri Jul 11 12:36:52 2008 -0300 x86: merge dwarf2 headers Merge dwarf2_32.h and dwarf2_64.h into dwarf2.h. Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit d73a731abe2a77fb54c5de4f72036b60ce3a048e Author: Glauber Costa Date: Thu Jul 10 15:17:53 2008 -0300 x86: use AS_CFI instead of UNWIND_INFO In dwarf2_32.h, test for CONFIG_AS_CFI instead of CONFIG_UNWIND_INFO. Turns out that searching for UNWIND_INFO returns no match in any Kconfig or Makefile, so we're really just throwing everything away regarding dwarf frames for i386. The test that generates CONFIG_AS_CFI does not have anything x86_64-specific, and right now, checking V=1 builds shows me that the flags is there anyway, although unused. Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit 70f1bba4c8ff88d7fd9e06f1b2cb2b3c58e8e5f9 Author: Glauber Costa Date: Thu Jul 10 15:14:57 2008 -0300 x86: use ignore macro instead of hash comment In dwarf_64.h header, use the "ignore" macro the way i386 does. Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit 557d7d4e294ee6fb1db0cb6c1ec97a1c908b880d Author: Glauber Costa Date: Thu Jul 10 15:09:20 2008 -0300 x86: use matching CFI_ENDPROC The RING0_INT_FRAME macro defines a CFI_STARTPROC. So we should really be using CFI_ENDPROC after it. Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit d9fc3fd3fab186447b5d2e7db3c2ee149064cc7c Author: Ingo Molnar Date: Fri Jul 11 19:41:19 2008 +0200 x86: fix savesegment() bug causing crashes on 64-bit i spent a fair amount of time chasing a 64-bit bootup crash that manifested itself as bootup segfaults: S10network[1825]: segfault at 7f3e2b5d16b8 ip 00000031108748c9 sp 00007fffb9c14c70 error 4 in libc-2.7.so[3110800000+14d000] eventually causing init to die and panic the system: Kernel panic - not syncing: Attempted to kill init! Pid: 1, comm: init Not tainted 2.6.26-rc9-tip #13878 after a maratonic bisection session, the bad commit turned out to be: | b7675791859075418199c7af86a116ea34eaf5bd is first bad commit | commit b7675791859075418199c7af86a116ea34eaf5bd | Author: Jeremy Fitzhardinge | Date: Wed Jun 25 00:19:00 2008 -0400 | | x86: remove open-coded save/load segment operations | | This removes a pile of buggy open-coded implementations of savesegment | and loadsegment. after some more bisection of this patch itself, it turns out that what makes the difference are the savesegment() changes to __switch_to(). Taking a look at this portion of arch/x86/kernel/process_64.o revealed this crutial difference: | good: 99c: 8c e0 mov %fs,%eax | 99e: 89 45 cc mov %eax,-0x34(%rbp) | | bad: 99c: 8c 65 cc mov %fs,-0x34(%rbp) which is due to: | unsigned fsindex; | - asm volatile("movl %%fs,%0" : "=r" (fsindex)); | + savesegment(fs, fsindex); savesegment() is implemented as: #define savesegment(seg, value) \ asm("mov %%" #seg ",%0":"=rm" (value) : : "memory") note the "m" modifier - it allows GCC to generate the segment move into a memory operand as well. But regarding segment operands there's a subtle detail in the x86 instruction set: the above 16-bit moves are zero-extend, but only if it goes to a register. If it goes to a memory operand, -0x34(%rbp) in the above case, there's no zero-extend to 32-bit and the instruction will only save 16 bits instead of the intended 32-bit. The other 16 bits is random data - which can cause problems when that value is used later on. The solution is to only allow segment operands to go to registers. This fix allows my test-system to boot up without crashing. Signed-off-by: Ingo Molnar commit b2613e370dbeb69edbff989382fa54f2395aa471 Author: Ingo Molnar Date: Fri Jul 11 16:44:27 2008 +0200 ftrace: build fix for ftraced_suspend fix: kernel/trace/ftrace.c:1615: error: 'ftraced_suspend' undeclared (first use in this function) kernel/trace/ftrace.c:1615: error: (Each undeclared identifier is reported only once kernel/trace/ftrace.c:1615: error: for each function it appears in.) Signed-off-by: Ingo Molnar commit c300ba252829e9325e08f0af60687add94445b25 Author: Steven Rostedt Date: Wed Jul 9 00:15:33 2008 -0400 sched_clock: and multiplier for TSC to gtod drift The sched_clock code currently tries to keep all CPU clocks of all CPUS somewhat in sync. At every clock tick it records the gtod clock and uses that and jiffies and the TSC to calculate a CPU clock that tries to stay in sync with all the other CPUs. ftrace depends heavily on this timer and it detects when this timer "jumps". One problem is that the TSC and the gtod also drift. When the TSC is 0.1% faster or slower than the gtod it is very noticeable in ftrace. To help compensate for this, I've added a multiplier that tries to keep the CPU clock updating at the same rate as the gtod. I've tried various ways to get it to be in sync and this ended up being the most reliable. At every scheduler tick we calculate the new multiplier: multi = delta_gtod / delta_TSC This means we perform a 64 bit divide at the tick (once a HZ). A shift is used to handle the accuracy. Other methods that failed due to dynamic HZ are: (not used) multi += (gtod - tsc) / delta_gtod (not used) multi += (gtod - (last_tsc + delta_tsc)) / delta_gtod as well as other variants. This code still allows for a slight drift between TSC and gtod, but it keeps the damage down to a minimum. Signed-off-by: Steven Rostedt Cc: Steven Rostedt Cc: Peter Zijlstra Cc: Andrew Morton Cc: john stultz Signed-off-by: Ingo Molnar commit a83bc47c33ab182f1e48977fd5a04024d713c75e Author: Steven Rostedt Date: Wed Jul 9 00:15:32 2008 -0400 sched_clock: record TSC after gtod To read the gtod we need to grab the xtime lock for read. Reading the gtod before the TSC can cause a bigger gab if the xtime lock is contended. This patch simply reverses the order to read the TSC after the gtod. The locking in the reading of the gtod handles any barriers one might think is needed. Signed-off-by: Steven Rostedt Cc: Steven Rostedt Cc: Peter Zijlstra Cc: Andrew Morton Cc: john stultz Signed-off-by: Ingo Molnar commit c0c87734f125d2fa8ebc70310f3257fa6209f2b6 Author: Steven Rostedt Date: Wed Jul 9 00:15:31 2008 -0400 sched_clock: only update deltas with local reads. Reading the CPU clock should try to stay accurate within the CPU. By reading the CPU clock from another CPU and updating the deltas can cause unneeded jumps when reading from the local CPU. This patch changes the code to update the last read TSC only when read from the local CPU. Signed-off-by: Steven Rostedt Cc: Steven Rostedt Cc: Peter Zijlstra Cc: Andrew Morton Cc: john stultz Signed-off-by: Ingo Molnar commit 2b8a0cf4890d7537a77b51caa8f508e4a05a0e67 Author: Steven Rostedt Date: Mon Jul 7 19:49:41 2008 -0400 sched_clock: fix calculation of other CPU The algorithm to calculate the 'now' of another CPU is not correct. At each scheduler tick, each CPU records the last sched_clock and gtod (tick_raw and tick_gtod respectively). If the TSC is somewhat the same in speed between two clocks the algorithm would be: tick_gtod1 + (now1 - tick_raw1) = tick_gtod2 + (now2 - tick_raw2) To calculate now2 we would have: now2 = (tick_gtod1 - tick_gtod2) + (tick_raw2 - tick_raw1) + now1 Currently the algorithm is: now2 = (tick_gtod1 - tick_gtod2) + (tick_raw1 - tick_raw2) + now1 This solves most of the rest of the issues I've had with timestamps in ftace. Signed-off-by: Steven Rostedt Cc: Andrew Morton Cc: john stultz Cc: Peter Zijlstra Signed-off-by: Ingo Molnar commit af52a90a14cdaa54ecbfb6e6982abb13466a4b56 Author: Steven Rostedt Date: Mon Jul 7 14:16:52 2008 -0400 sched_clock: stop maximum check on NO HZ Working with ftrace I would get large jumps of 11 millisecs or more with the clock tracer. This killed the latencing timings of ftrace and also caused the irqoff self tests to fail. What was happening is with NO_HZ the idle would stop the jiffy counter and before the jiffy counter was updated the sched_clock would have a bad delta jiffies to compare with the gtod with the maximum. The jiffies would stop and the last sched_tick would record the last gtod. On wakeup, the sched clock update would compare the gtod + delta jiffies (which would be zero) and compare it to the TSC. The TSC would have correctly (with a stable TSC) moved forward several jiffies. But because the jiffies has not been updated yet the clock would be prevented from moving forward because it would appear that the TSC jumped too far ahead. The clock would then virtually stop, until the jiffies are updated. Then the next sched clock update would see that the clock was very much behind since the delta jiffies is now correct. This would then jump the clock forward by several jiffies. This caused ftrace to report several milliseconds of interrupts off latency at every resume from NO_HZ idle. This patch adds hooks into the nohz code to disable the checking of the maximum clock update when nohz is in effect. It resumes the max check when nohz has updated the jiffies again. Signed-off-by: Steven Rostedt Cc: Steven Rostedt Cc: Peter Zijlstra Cc: Andrew Morton Signed-off-by: Ingo Molnar commit f7cce27f5605b9e137b829a47949cb2d3c7e1cab Author: Steven Rostedt Date: Mon Jul 7 14:16:51 2008 -0400 sched_clock: widen the max and min time With keeping the max and min sched time within one jiffy of the gtod clock was too tight. Just before a schedule tick the max could easily be hit, as well as just after a schedule_tick the min could be hit. This caused the clock to jump around by a jiffy. This patch widens the minimum to last gtod + (delta_jiffies ? delta_jiffies - 1 : 0) * TICK_NSECS and the maximum to last gtod + (2 + delta_jiffies) * TICK_NSECS This keeps the minum to gtod or if one jiffy less than delta jiffies and the maxim 2 jiffies ahead of gtod. This may cause unstable TSCs to be a bit more sporadic, but it helps keep a clock with a stable TSC working well. Signed-off-by: Steven Rostedt Cc: Steven Rostedt Cc: Peter Zijlstra Cc: Andrew Morton Signed-off-by: Ingo Molnar commit 62c43dd9864dbd52ff158922d1d08c75f20335af Author: Steven Rostedt Date: Mon Jul 7 14:16:50 2008 -0400 sched_clock: record from last tick The sched_clock code tries to keep within the gtod time by one tick (jiffy). The current code mistakenly keeps track of the delta jiffies between updates of the clock, where the the delta is used to compare with the number of jiffies that have past since an update of the gtod. The gtod is updated at each schedule tick not each sched_clock update. After one jiffy passes the clock is updated fine. But the delta is taken from the last update so if the next update happens before the next tick the delta jiffies used will be incorrect. This patch changes the code to check the delta of jiffies between ticks and not updates to match the comparison of the updates with the gtod. Signed-off-by: Steven Rostedt Cc: Steven Rostedt Cc: Peter Zijlstra Cc: Andrew Morton Signed-off-by: Ingo Molnar commit 60bc080090e3bf6afa29c62cb25f913706551010 Author: Steven Rostedt Date: Thu Jul 10 20:58:16 2008 -0400 ftrace: separate out the function enabled variable Currently the function tracer uses the global tracer_enabled variable that is used to keep track if the tracer is enabled or not. The function tracing startup needs to be separated out, otherwise the internal happenings of the tracer startup is also recorded. This patch creates a ftrace_function_enabled variable to all the starting of the function traces to happen after everything has been started. Signed-off-by: Steven Rostedt Cc: Steven Rostedt Cc: Peter Zijlstra Cc: Andrew Morton Signed-off-by: Ingo Molnar commit a2bb6a3d85ef3124cd336403a95abc0540d3fbe2 Author: Steven Rostedt Date: Thu Jul 10 20:58:15 2008 -0400 ftrace: add ftrace_kill_atomic It has been suggested that I add a way to disable the function tracer on an oops. This code adds a ftrace_kill_atomic. It is not meant to be used in normal situations. It will disable the ftrace tracer, but will not perform the nice shutdown that requires scheduling. Signed-off-by: Steven Rostedt Cc: Steven Rostedt Cc: Peter Zijlstra Cc: Andrew Morton Signed-off-by: Ingo Molnar commit 26bc83f4cb911a0b4dabfe23b700aaf3235f2955 Author: Steven Rostedt Date: Thu Jul 10 20:58:14 2008 -0400 ftrace: use current CPU for function startup This is more of a clean up. Currently the function tracer initializes the tracer with which ever CPU was last used for tracing. This value isn't realy useful for function tracing, but at least it should be something other than a random number. Signed-off-by: Steven Rostedt Cc: Steven Rostedt Cc: Peter Zijlstra Cc: Andrew Morton Signed-off-by: Ingo Molnar commit ad591240ceadcaf41b2a88855ca5f1c77c5a0298 Author: Steven Rostedt Date: Thu Jul 10 20:58:13 2008 -0400 ftrace: start wakeup tracing after setting function tracer Enabling the wakeup tracer before enabling the function tracing causes some strange results due to the dynamic enabling of the functions. Signed-off-by: Steven Rostedt Cc: Steven Rostedt Cc: Peter Zijlstra Cc: Andrew Morton Signed-off-by: Ingo Molnar commit b5c21b4514b38f450848feb432f7120376d01ffe Author: Steven Rostedt Date: Thu Jul 10 20:58:12 2008 -0400 ftrace: check proper config for preempt type There is no CONFIG_PREEMPT_DESKTOP. Use the proper entry CONFIG_PREEMPT. Signed-off-by: Steven Rostedt Cc: Steven Rostedt Cc: Peter Zijlstra Cc: Andrew Morton Signed-off-by: Ingo Molnar commit 1e16c0a081f6c93f04c6af784d6a160955269f91 Author: Steven Rostedt Date: Thu Jul 10 20:58:11 2008 -0400 ftrace: trace schedule After the sched_clock code has been removed from sched.c we can now trace the scheduler. The scheduler has a lot of functions that would be worth tracing. Signed-off-by: Steven Rostedt Cc: Steven Rostedt Cc: Peter Zijlstra Cc: Andrew Morton Signed-off-by: Ingo Molnar commit 001b6767b1d0c89e458e5ddb039245b268f569fb Author: Steven Rostedt Date: Thu Jul 10 20:58:10 2008 -0400 ftrace: define function trace nop When CONFIG_FTRACE is not enabled, the tracing_start_functon_trace and tracing_stop_function_trace should be nops. Signed-off-by: Steven Rostedt Cc: Steven Rostedt Cc: Peter Zijlstra Cc: Andrew Morton Signed-off-by: Ingo Molnar commit 007c05d4d2ce42fabd58cb54ed98e0a1714d9d86 Author: Steven Rostedt Date: Thu Jul 10 20:58:09 2008 -0400 ftrace: move sched_switch enable after markers We have two markers now that are enabled on sched_switch. One that records the context switching and the other that records task wake ups. Currently we enable the tracing first and then set the markers. This causes some confusing traces: # tracer: sched_switch # # TASK-PID CPU# TIMESTAMP FUNCTION # | | | | | trace-cmd-3973 [00] 115.834817: 3973:120:R + 3: 0:S trace-cmd-3973 [01] 115.834910: 3973:120:R + 6: 0:S trace-cmd-3973 [02] 115.834910: 3973:120:R + 9: 0:S trace-cmd-3973 [03] 115.834910: 3973:120:R + 12: 0:S trace-cmd-3973 [02] 115.834910: 3973:120:R + 9: 0:S -0 [02] 115.834910: 0:140:R ==> 3973:120:R Here we see that trace-cmd with PID 3973 wakes up task 9 but the next line shows the idle task doing a context switch to task 3973. Enabling the tracing to _after_ the markers are set creates a much saner output: # tracer: sched_switch # # TASK-PID CPU# TIMESTAMP FUNCTION # | | | | | -0 [02] 7922.634225: 0:140:R ==> 4790:120:R trace-cmd-4789 [03] 7922.634225: 0:140:R + 4790:120:R Signed-off-by: Steven Rostedt Cc: Steven Rostedt Cc: Peter Zijlstra Cc: Andrew Morton Signed-off-by: Ingo Molnar commit b6ad92d4faade38619e89acc509ca1416b81a0bd Author: Jeremy Fitzhardinge Date: Thu Jul 10 18:13:36 2008 -0700 x86_64: vdso32 cleanup using feature flags Use the X86_FEATURE_SYSENTER32 to remove hard-coded CPU vendor check. Signed-off-by: Jeremy Fitzhardinge Signed-off-by: Ingo Molnar commit 8d28aab59fe939be40efae870ced0b05caa259fb Author: Jeremy Fitzhardinge Date: Thu Jul 10 16:22:56 2008 -0700 x86_64: add pseudo-features for 32-bit compat syscall Add pseudo-feature bits to describe whether the CPU supports sysenter and/or syscall from ia32-compat userspace. This removes a hardcoded test in vdso32-setup. Signed-off-by: Jeremy Fitzhardinge Signed-off-by: Ingo Molnar commit 4abaca17e758e3326c96ced88b2cd9b7b84922f6 Author: David Howells Date: Fri Jul 11 14:39:56 2008 +0100 [GFS2] Fix GFS2's use of do_div() in its quota calculations Fix GFS2's need_sync()'s use of do_div() on an s64 by using div_s64() instead. This does assume that gt_quota_scale_den can be cast to an s32. This was introduced by patch b3b94faa5fe5968827ba0640ee9fba4b3e7f736e. Signed-off-by: David Howells Signed-off-by: Steven Whitehouse commit 3d0decc4f49e8645cd6369b02ed076bebd3d61ad Author: Ingo Molnar Date: Fri Jul 11 15:09:15 2008 +0200 x86: fix tsc unification buglet with ftrace and stackprotector Yinghai Lu reported crashes on 64-bit x86: BUG: unable to handle kernel NULL pointer dereference at 0000000000000000 IP: [] hrtick_start_fair+0x89/0x173 [...] And with a long session of debugging and a lot of difficulty, tracked it down to this commit: ---------------> 8fbbc4b45ce3e4c0eeb15004c79c72b6896a79c2 is first bad commit commit 8fbbc4b45ce3e4c0eeb15004c79c72b6896a79c2 Author: Alok Kataria Date: Tue Jul 1 11:43:34 2008 -0700 x86: merge tsc_init and clocksource code <-------------- The problem is that the TSC unification missed these Makefile rules in arch/x86/kernel/Makefile: # Do not profile debug and lowlevel utilities CFLAGS_REMOVE_tsc_64.o = -pg CFLAGS_REMOVE_tsc_32.o = -pg ... CFLAGS_tsc_64.o := $(nostackp) ... which rules make sure that various instrumentation and debugging facilities are disabled for code that might end up in a VDSO - such as the TSC code. Reported-and-bisected-by: Yinghai Lu Signed-off-by: Ingo Molnar Conflicts: Signed-off-by: Ingo Molnar commit 857f3fd7a496ddf4329345af65a4a2b16dd25fe8 Author: Heiko Carstens Date: Fri Jul 11 11:09:22 2008 +0200 nohz: don't stop idle tick if softirqs are pending. In case a cpu goes idle but softirqs are pending only an error message is printed to the console. It may take a very long time until the pending softirqs will finally be executed. Worst case would be a hanging system. With this patch the timer tick just continues and the softirqs will be executed after the next interrupt. Still a delay but better than a hanging system. Currently we have at least two device drivers on s390 which under certain circumstances schedule a tasklet from process context. This is a reason why we can end up with pending softirqs when going idle. Fixing these drivers seems to be non-trivial. However there is no question that the drivers should be fixed. This patch shouldn't be considered as a bug fix. It just is intended to keep a system running even if device drivers are buggy. Signed-off-by: Heiko Carstens Cc: Jan Glauber Cc: Stefan Weinhuber Cc: Andrew Morton Signed-off-by: Ingo Molnar commit 0c81b2a1448bc6a2a9b2d6469fb0669fb4b25e5b Merge: 0729fbf... 70ff055... Author: Ingo Molnar Date: Fri Jul 11 10:46:50 2008 +0200 Merge branch 'linus' into core/rcu Conflicts: include/linux/rculist.h kernel/rcupreempt.c Signed-off-by: Ingo Molnar commit f361a450bf1ad14e2b003217dbf3958638631265 Author: Yinghai Lu Date: Thu Jul 10 20:38:26 2008 -0700 x86: introduce max_low_pfn_mapped for 64-bit when more than 4g memory is installed, don't map the big hole below 4g. Signed-off-by: Yinghai Lu Cc: Suresh Siddha Signed-off-by: Ingo Molnar commit f302a5bbe5eb95f3d4227d5bd0e9b92b1b125f4f Author: Yinghai Lu Date: Thu Jul 10 20:36:37 2008 -0700 x86: reserve SLIT save the SLIT, in case we are using fixmap to read it, and that fixmap could be cleared by others. Signed-off-by: Yinghai Lu Cc: Suresh Siddha Signed-off-by: Ingo Molnar commit 69a7704d7a80b2563278a0c55c2ca6d6202280dc Author: Yinghai Lu Date: Thu Jul 10 04:17:00 2008 -0700 x86: e820: user-defined memory maps: remove the range instead of update it to reserved also let mem= to print out modified e820 map too Signed-off-by: Yinghai Lu Cc: Bernhard Walle Signed-off-by: Ingo Molnar commit 27cb0a75ba252ea7294d67232c4bbbac3f2b2656 Author: Jeremy Fitzhardinge Date: Thu Jul 10 12:52:52 2008 -0700 x86: fix compile error in current tip.git Gas 2.15 complains about 32-bit registers being used in lea. AS arch/x86/lib/copy_user_64.o /local/scratch-2/jeremy/hg/xen/paravirt/linux/arch/x86/lib/copy_user_64.S: Assembler messages: /local/scratch-2/jeremy/hg/xen/paravirt/linux/arch/x86/lib/copy_user_64.S:188: Error: `(%edx,%ecx,8)' is not a valid 64 bit base/index expression /local/scratch-2/jeremy/hg/xen/paravirt/linux/arch/x86/lib/copy_user_64.S:257: Error: `(%edx,%ecx,8)' is not a valid 64 bit base/index expression AS arch/x86/lib/copy_user_nocache_64.o /local/scratch-2/jeremy/hg/xen/paravirt/linux/arch/x86/lib/copy_user_nocache_64.S: Assembler messages: /local/scratch-2/jeremy/hg/xen/paravirt/linux/arch/x86/lib/copy_user_nocache_64.S:107: Error: `(%edx,%ecx,8)' is not a valid 64 bit base/index expression Signed-off-by: Jeremy Fitzhardinge Cc: Vitaly Mayatskikh Signed-off-by: Ingo Molnar commit 39415a440ecceb0a5bd3c23686f18f83bb8368c6 Author: Ingo Molnar Date: Thu Jul 10 20:06:30 2008 +0200 x86, VisWS: fix pci_direct_conf1 dependency fix: arch/x86/pci/built-in.o: In function `pci_subsys_init': visws.c:(.init.text+0xfc5): undefined reference to `pci_direct_conf1' Signed-off-by: Ingo Molnar commit c47277d2f842d6c50d1991579307625540b26eac Author: Ingo Molnar Date: Thu Jul 10 19:47:49 2008 +0200 x86, VisWS: build fix fix: arch/x86/kernel/built-in.o: In function `visws_early_detect': : undefined reference to `mach_get_smp_config_quirk' arch/x86/kernel/built-in.o: In function `visws_early_detect': : undefined reference to `mach_find_smp_config_quirk' Signed-off-by: Ingo Molnar commit e54afe38630e3b577968428f48ed8ef1e13a2a15 Author: Glauber Costa Date: Thu Jul 10 14:01:47 2008 -0300 x86: remove duplicate call to use_tsc_delay Integration generated a duplicate call to use_tsc_delay. Particularly, the one that is done before we check for general tsc usability seems wrong. Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit f78cb9b1cfe618e8b4cc0c118f187f54ed102f45 Author: Ingo Molnar Date: Thu Jul 10 19:39:55 2008 +0200 x86, VisWS: build fix fix: arch/x86/kernel/visws_quirks.c: In function ‘visws_early_detect’: arch/x86/kernel/visws_quirks.c:293: error: ‘no_broadcast’ undeclared (first use in this function) arch/x86/kernel/visws_quirks.c:293: error: (Each undeclared identifier is reported only once arch/x86/kernel/visws_quirks.c:293: error: for each function it appears in.) make[1]: *** [arch/x86/kernel/visws_quirks.o] Error 1 make: *** [arch/x86/kernel/visws_quirks.o] Error 2 Signed-off-by: Ingo Molnar commit b6770c83b4b88dd832cc77916b1935b0311c64e0 Author: Ingo Molnar Date: Thu Jul 10 19:37:44 2008 +0200 x86, VisWS: do not allow VisWS for Voyager Signed-off-by: Ingo Molnar commit 8a55a00aad9f5c4e9bb97729b42a7ceea2a3b6fb Author: Ingo Molnar Date: Thu Jul 10 19:35:33 2008 +0200 x86, VisWS: turn into generic arch, update include file change Signed-off-by: Ingo Molnar commit 3a62ed73ccb76b3d573c2ceb52ee01081fa89f3d Author: Robert Richter Date: Thu Jul 10 18:58:25 2008 +0200 x86/pci: fix warnings in subsys_initcall functions Signed-off-by: Robert Richter Cc: Robert Richter Signed-off-by: Ingo Molnar commit 3f68f7d945e37e4d4bf1da445a285c59a6185815 Author: Robert Richter Date: Thu Jul 10 18:58:24 2008 +0200 x86/pci merge: fixing numaq initialization Patch d49c4288 (tip/x86/mpparse) introduced some changes in calling subsys_init calls if CONFIG_X86_NUMAQ option is set. This patch updates subsystem initalization according to this changes. Signed-off-by: Robert Richter Cc: Robert Richter Signed-off-by: Ingo Molnar commit 15e551d25e5a600c76cb92171357d4cbe2d1bf7a Author: Ingo Molnar Date: Thu Jul 10 17:02:10 2008 +0200 x86, VisWS: turn into generic arch, eliminate Kconfig specials remove leftover traces of various VISWS related Kconfig specials. Signed-off-by: Ingo Molnar commit 62fa572f6933038b3d79558812de88702bda176f Author: Ingo Molnar Date: Thu Jul 10 16:45:50 2008 +0200 x86, VisWS: turn into generic arch, remove leftover files remove leftover arch/x86/mach-visws/* files. Signed-off-by: Ingo Molnar commit 26dd9fcfc2abc298e3c60597bbe6405826aabf91 Author: Ingo Molnar Date: Thu Jul 10 16:21:38 2008 +0200 x86, VisWS: turn into generic arch, clean up merge traps_visws.c and apic_visws.c into visws_quirks.c. (no code changed) Signed-off-by: Ingo Molnar commit 0cecf92db84694cfed08329271e8ae6316e811eb Author: Ingo Molnar Date: Thu Jul 10 16:20:32 2008 +0200 x86, VisWS: turn into generic arch, clean up rename setup_visws.c to visws_quirks.c. Signed-off-by: Ingo Molnar commit 54ce7f99065cadcbb627f47f2321b76f099fda28 Author: Ingo Molnar Date: Thu Jul 10 16:14:56 2008 +0200 x86, VisWS: turn into generic arch, IO-APIC setup fix skip IO-APIC setup on a VISWS if it's enabled. Signed-off-by: Ingo Molnar commit efefa6f63fe6f08c16fa28dc9391bd1b89df5274 Author: Ingo Molnar Date: Thu Jul 10 16:09:50 2008 +0200 x86, VisWS: turn into generic arch, clean up remove VISWS Kconfig complications, now that it's supported by the generic architecture. Signed-off-by: Ingo Molnar commit 1b84e1c81f56e13c7d81b47c85eda15d94624e43 Author: Ingo Molnar Date: Thu Jul 10 15:55:27 2008 +0200 x86, VisWS: turn into generic arch, flip over VISWS to generic arch this is the big move: flip over VISWS to generic arch support. From this commit on CONFIG_X86_VISWS is just another (default-disabled) option that turns on certain quirks - no other complications. Signed-off-by: Ingo Molnar commit 652536367b727251bfeba72189a17a040accbc2d Author: Ingo Molnar Date: Thu Jul 10 15:50:37 2008 +0200 x86, VisWS: turn into generic arch, copy visws files copy arch/x86/mach-visws/setup_visws.c, apic_visws.c and traps_visws.c files to arch/x86/kernel/, in preparation of the switchover to a non-subarch setup for VISWS. Signed-off-by: Ingo Molnar commit 078c0bba55b3dc751881d40cf170c002eafc048d Author: Ingo Molnar Date: Thu Jul 10 15:48:48 2008 +0200 x86, VisWS: turn into generic arch, add early quirks to default architectures add early quirk support to the generic architecture code. this allows VISWS to be supported by the generic code and allows us to remove the VISWS subarch. Signed-off-by: Ingo Molnar commit 8bfaba873f0cc81c1747d6787f2721926192a3dc Author: Ingo Molnar Date: Thu Jul 10 15:42:50 2008 +0200 x86, VisWS: turn into generic arch, add NR_IRQS quirk NR_IRQS: let VISWS be just a sub-case of the generic code. This can create a somewhat larger irq_desc[] array if NR_CPUS is high but that should not worry VisWS which has 4 CPUs at most. Signed-off-by: Ingo Molnar commit 4191894b68a85bd8da935fb9ac4c882a1fa8651c Author: Ingo Molnar Date: Thu Jul 10 15:33:49 2008 +0200 x86, VisWS: turn into generic arch, eliminate include/asm-x86/mach-visws/setup_arch.h use the generic version of setup_arch.h - it's the same. Signed-off-by: Ingo Molnar commit efd746b8892d1d40c43c3d518b3bde9e56238ce8 Author: Ingo Molnar Date: Thu Jul 10 15:31:35 2008 +0200 x86, VisWS: turn into generic arch, move definitions move the SGIVW definitions from setup_arch.h into its own header file. preparation for turning VISWS into a generic PC architecture. Signed-off-by: Ingo Molnar commit b4b86416712d79a77cdc53756751b3b91fbb7a3d Author: Ingo Molnar Date: Thu Jul 10 15:25:21 2008 +0200 x86, VisWS: turn into generic arch, create include/asm-x86/visws/ move the include/asm-x86/mach-visws/ VISWS specific hardware details include files into include/asm-x86/visws, to be used from generic code. No code changed. Signed-off-by: Ingo Molnar commit 18c413e27e1585358cedc22e450847e3240006ff Author: Ingo Molnar Date: Thu Jul 10 15:13:41 2008 +0200 x86, VisWS: turn into generic arch, eliminate asm-x86/mach-visws/mach_apicdef.h Signed-off-by: Ingo Molnar commit b70d9c2473ffbe327f5d7364bfbf67e94c440af8 Author: Ingo Molnar Date: Thu Jul 10 15:12:05 2008 +0200 x86, VisWS: turn into generic arch, update asm-x86/mach-visws/mach_apicdef.h update asm-x86/mach-visws/mach_apicdef.h to the generic version. This should work fine as VISWS has a standard local APIC and thus its mach_apicdef.h copy is just an ancient version of the generic code. Signed-off-by: Ingo Molnar commit 6649ababd52014afaca62a12aed37d797f9f865c Author: Ingo Molnar Date: Thu Jul 10 15:10:29 2008 +0200 x86, VisWS: turn into generic arch, eliminate include/asm-x86/mach-visws/smpboot_hooks.h now that include/asm-x86/mach-visws/smpboot_hooks.h equals to the default file in ../mach-default/smpboot_hooks.h, simply include it instead of maintaining a copy. Signed-off-by: Ingo Molnar commit 244a5e2ee0ba204d66dfe4273df91c6bc65a310a Author: Ingo Molnar Date: Thu Jul 10 15:06:07 2008 +0200 x86, VisWS: turn into generic arch, update include/asm-x86/mach-visws/smpboot_hooks.h update include/asm-x86/mach-visws/smpboot_hooks.h to include/asm-x86/mach-default/smpboot_hooks.h (the generic version). this _should_ work, because VISWS sets skip_ioapic_setup, but it should be tested on a real VISWS to make sure. Signed-off-by: Ingo Molnar commit 6a64b5da9bbe561fd189361812f5ed205bb55345 Author: Ingo Molnar Date: Thu Jul 10 15:09:04 2008 +0200 x86, VisWS: turn into generic arch, enhance include/asm-x86/mach-default/smpboot_hooks.h Allow the generic smpboot quirks code to be built with ONFIG_X86_IO_APIC disabled. This way VISWS will be able to use it as-is. Signed-off-by: Ingo Molnar commit d8d1bc73f0ccb60f4d6056333b8fcb3140772c21 Author: Ingo Molnar Date: Thu Jul 10 15:04:13 2008 +0200 x86, VisWS: turn into generic arch, eliminate include/asm-x86/mach-visws/mach_apic.h now that include/asm-x86/mach-visws/mach_apic.h equals to include/asm-x86/mach-default/mach_apic.h, simply start using the generic one. Signed-off-by: Ingo Molnar commit 808fc878d373c338f138529c284df5f86ab3cc55 Author: Ingo Molnar Date: Thu Jul 10 15:01:54 2008 +0200 x86, VisWS: turn into generic arch, update asm-x86/mach-visws/mach_apic.h update asm-x86/mach-visws/mach_apic.h to the generic version. Signed-off-by: Ingo Molnar commit 5548ed1135842d1993a4ba699377a8a3c65dd568 Author: Ingo Molnar Date: Thu Jul 10 16:53:21 2008 +0200 x86, VisWS: turn into generic arch, install proper PCI quirk Signed-off-by: Ingo Molnar commit 5ab74722a4656612d1f3b087b1afd91133ec0eeb Author: Ingo Molnar Date: Thu Jul 10 14:42:03 2008 +0200 x86, VisWS: turn into generic arch, use generic mpparse code Signed-off-by: Ingo Molnar commit 31ac409a7921da39cc998f2432afa13e77fd8705 Author: Ingo Molnar Date: Thu Jul 10 13:31:04 2008 +0200 x86, VisWS: turn into generic arch, add early init quirks add early init quirks for VisWS. This gradually turns the VISWS subarch into a generic PC architecture. Signed-off-by: Ingo Molnar commit 22d5c67c5b0476e463ce4b632ba9ec3953d33a5f Author: Ingo Molnar Date: Thu Jul 10 16:29:28 2008 +0200 x86, VisWS: turn into generic arch, make VisWS boot on a regular PC first step: make the VISWS subarch boot on a regular PC. We take various shortcuts for that. We copy the generic arch setup file over into the VISWS setup file. This is the only step that is not expected to boot on a real VISWS. Signed-off-by: Ingo Molnar commit 3b33553badcde952adcf3b3ba5faae38d7d85071 Author: Ingo Molnar Date: Thu Jul 10 17:30:40 2008 +0200 x86: add early quirk support Add early quirks support. In preparation of enabling the generic architecture to boot on a VISWS. This will allow us to remove the VISWS subarch and all its complications. Signed-off-by: Ingo Molnar commit 520b9617ab4aea764ddfc5d58cae21c16b3318e1 Merge: f57e916... f87f38e... Author: Ingo Molnar Date: Thu Jul 10 18:55:17 2008 +0200 Merge branch 'x86/core' into x86/generalize-visws commit f87f38ec5a5157aa39f44f6018dc58ea62f8e0e2 Merge: a6784ad... 8dd779b... Author: Ingo Molnar Date: Thu Jul 10 18:47:29 2008 +0200 Merge branch 'x86/unify-pci' into x86/core commit f0006314d37639714da9658cf4ff3f1f9f420764 Merge: a177ba3... 1bd55a4... Author: Russell King Date: Thu Jul 10 16:41:50 2008 +0100 Merge branch 'imx' into devel Conflicts: arch/arm/mm/Kconfig commit a177ba3b7a08beef3f0fe74efa0f90701891945a Merge: 66ee156... 3ef8191... 150c917... 0c5d5b7... 63f385c... 7e36e2f... f7def13... 188237e... 88b8ba9... 341eb78... bedd78c... 7ba06b1... Author: Russell King Date: Thu Jul 10 16:38:50 2008 +0100 Merge branches 'at91', 'dyntick', 'ep93xx', 'iop', 'ixp', 'misc', 'orion', 'omap-reviewed', 'rpc', 'rtc' and 's3c' into devel commit a93a6ce24215c69126c88f9c488afa50a168e0ca Author: Li Xiaodong Date: Mon Jul 7 18:04:09 2008 +0800 [GFS2] Remove unused declaration The implementation of gfs2_inode_attr_in is removed. So remove its declaration. Signed-off-by: Li Xiaodong Signed-off-by: Steven Whitehouse commit c9f6a6bbc284ba87337876086f7e2e6e0b0d50dd Author: Steven Whitehouse Date: Thu Jul 10 16:09:29 2008 +0100 [GFS2] Remove support for unused and pointless flag The ability to mark files for direct i/o access when opened normally is both unused and pointless, so this patch removes support for that feature. Signed-off-by: Steven Whitehouse commit 9cabcdbd4638cf884839ee4cd15780800c223b90 Author: Steven Whitehouse Date: Thu Jul 10 15:54:12 2008 +0100 [GFS2] Replace rgrp "recent list" with mru list This patch removes the "recent list" which is used during allocation and replaces it with the (already existing) mru list used during deletion. The "recent list" was not a true mru list leading to a number of inefficiencies including a "next" function which made scanning the list an order N^2 operation wrt to the number of list elements. This should increase allocation performance with large numbers of rgrps. Its also a useful preparation and cleanup before some further changes which are planned in this area. Signed-off-by: Steven Whitehouse commit 0c5d5b70449eddb7e2c8a5fdaf71b6108c1a9afc Author: Dmitry Baryshkov Date: Thu Jul 10 14:44:23 2008 +0100 [ARM] 5171/1: ep93xx: fix compilation of modules using clocks Signed-off-by: Dmitry Baryshkov Signed-off-by: Russell King commit 547d8bb7ddf7f5d9f53741086a394c8318e15f16 Author: David Woodhouse Date: Wed Jun 11 16:57:21 2008 +0100 ip2: use request_firmware() Converted with help from Jaswinder Singh Signed-off-by: David Woodhouse Acked-by: Alan Cox commit 27d202fff1555f5b0eb16a5aedc452566f9ab8bb Author: David Woodhouse Date: Thu Jun 5 12:59:51 2008 +0100 firmware: convert Ambassador ATM driver to request_firmware() Since it had various regions to be loaded to separate addresses, and it wanted to do them in fairly small chunks anyway, switch it to use the new ihex code. Encode the start address in the first record. Signed-off-by: David Woodhouse Acked-by: Chas Williams commit ec6752f5afce659025962e25fb2f42b3911254a1 Author: David Woodhouse Date: Sat May 31 01:35:29 2008 +0300 whiteheat: use request_firmware() Signed-off-by: David Woodhouse commit 5f24e2d6b40f0c74ce5bfaddfdb89f9bfae4b594 Author: David Woodhouse Date: Fri May 30 18:49:51 2008 +0300 ti_usb_3410_5052: use request_firmware() Signed-off-by: David Woodhouse commit b8e24bfabb03527d1c876fcaf24cccb05e1cbc65 Author: David Woodhouse Date: Fri May 30 17:35:47 2008 +0300 emi62: use request_firmware() Signed-off-by: David Woodhouse commit ae93a55bf948753de0bb8e43fa9c027f786abb05 Author: David Woodhouse Date: Fri May 30 16:19:39 2008 +0300 emi26: use request_firmware() Signed-off-by: David Woodhouse commit 3edbf98b863391bdd7ad2bf47b7db1689afac886 Author: David Woodhouse Date: Fri May 30 15:15:13 2008 +0300 keyspan_pda: use request_firmware() Signed-off-by: David Woodhouse commit 2971c579f93bcff26744672ea98c13bef71ded97 Author: David Woodhouse Date: Fri May 30 14:04:03 2008 +0300 keyspan: use request_firmware() Signed-off-by: David Woodhouse commit 0a2a736afa91e8a0402c9dbdaf2ee28481a50bd3 Author: David Woodhouse Date: Thu May 29 19:50:06 2008 +0300 ttusb-budget: use request_firmware() Signed-off-by: David Woodhouse Acked-by: Mauro Carvalho Chehab commit 79682499d9f3eaea4e6a970d8aa0b9bc1ac2a97f Author: David Woodhouse Date: Thu May 29 17:17:17 2008 +0300 kaweth: use request_firmware() Signed-off-by: David Woodhouse commit 0f805b86c9492c294c710de8539a8be68b521a86 Author: David Woodhouse Date: Thu May 29 16:39:16 2008 +0300 smctr: use request_firmware() Signed-off-by: David Woodhouse commit 18ee6dfae89d9c131e3c9952939633ba8fa86247 Author: David Woodhouse Date: Thu May 29 15:07:34 2008 +0300 firmware: convert ymfpci driver to use firmware loader exclusively Signed-off-by: David Woodhouse commit a292f404fabb342716a9d96e8155b7fb7b651dc1 Author: David Woodhouse Date: Thu May 29 14:48:34 2008 +0300 firmware: convert maestro3 driver to use firmware loader exclusively Signed-off-by: David Woodhouse commit 76770664dcbc008300c2ac8747671efcc4f78c2d Author: David Woodhouse Date: Mon May 26 23:01:27 2008 +0100 firmware: convert korg1212 driver to use firmware loader exclusively Signed-off-by: David Woodhouse commit 59890f74e51abffd0dd017785d89f8a8475d489d Author: David Woodhouse Date: Thu Jun 26 13:55:30 2008 +0100 ihex: Add support for long records to ihex2fw.c Some drivers could do with using records like Intel HEX, but with each record being larger than 256 bytes. This has been possible in the binary representation (struct ihex_binrec) in the kernel since the beginning -- at least of the the current version of history. But we haven't been able to represent that in the .HEX files which get converted to .fw files. This adds a '-w' option to ihex2fw to make it interpret the first _two_ bytes of each line as the record length, instead of only one byte. And adds makefile rules for %.H16->%.fw which use that. Signed-off-by: David Woodhouse commit 8bd6b2229bf98761465020467ec33547d05bff46 Author: David Woodhouse Date: Sat May 31 15:07:18 2008 +0300 ihex: add ihex2fw tool for converting HEX files into firmware images Not the straight conversion to binary which objcopy can do for us, but actually representing each record with its original {addr, length}, because some drivers need that information preserved. Fix up 'firmware_install' to be able to build $(hostprogs-y) too. Signed-off-by: David Woodhouse commit f1485f3deb89e6ae10c4d34662ec9e692855ab5d Author: David Woodhouse Date: Sat May 31 15:20:37 2008 +0300 ihex: request_ihex_firmware() function to load and validate firmware Provide a helper to load the file and validate it in one call, to simplify error handling in the drivers which are going to use it. Signed-off-by: David Woodhouse commit bacfe09dd7545467965e8d8f1eab20bc62dce00d Author: David Woodhouse Date: Fri May 30 13:57:27 2008 +0300 ihex.h: binary representation of ihex records Some devices need their firmware as a set of {address, len, data...} records in some specific order rather than a simple blob. The normal way of doing this kind of thing is 'ihex', which is a text format and not entirely suitable for use in the kernel. This provides a binary representation which is very similar, but much more compact -- and a helper routine to skip to the next record, because the alignment constraints mean that everybody will screw it up for themselves otherwise. Also a helper function which can verify that a 'struct firmware' contains a valid set of ihex records, and that following them won't run off the end of the loaded data. Signed-off-by: David Woodhouse commit 88ecf814c47f577248751ddbe9626d98aeef5783 Author: David Woodhouse Date: Thu May 29 11:01:51 2008 +0300 firmware: Add firmware installation to modules_install, add firmware_install For 'make modules_install', install any firmware required by the modules which are being installed. Also add a 'make firmware_install' target which doesn't depend on the configuration, but installs _all_ available in-kernel-tree firmware into $(INSTALL_FW_PATH), which defaults to /lib/firmware. This is intended for distributors to make arch-independent (and config-independent) packages containing firmware. Signed-off-by: David Woodhouse commit d172e7f5c67f2d41f453c7aa83d3bdb405ef8ba5 Author: David Woodhouse Date: Wed Jun 25 13:56:07 2008 +0100 firmware: Add CONFIG_FIRMWARE_IN_KERNEL option. This will control whether we build firmware into the kernel image for _every_ driver which we convert to request_firmware(), to avoid a proliferation of 'CONFIG_XXX_FIRMWARE' options for each one. Default to 'y' for now, which is the wrong thing to do but people seem to be insisting on it and refusing to even review patches until it's done. And it does preserve the existing behaviour for built-in drivers. Signed-off-by: David Woodhouse commit 4d2acfbfdf68257e846aaa355edd10fc35ba0feb Author: David Woodhouse Date: Fri May 23 13:58:12 2008 +0100 firmware: Add CONFIG_EXTRA_FIRMWARE option This allows arbitrary firmware files to be included in the static kernel where the firmware loader can find them without requiring userspace to be alive. (Updated and CONFIG_EXTRA_FIRMWARE_DIR added with lots of help from Johannes Berg). Signed-off-by: David Woodhouse Signed-off-by: Johannes Berg commit 5658c769443d543728b6c5c673dffc2df8676317 Author: David Woodhouse Date: Fri May 23 13:52:42 2008 +0100 firmware: allow firmware files to be built into kernel image Some drivers have their own hacks to bypass the kernel's firmware loader and build their firmware into the kernel; this renders those unnecessary. Other drivers don't use the firmware loader at all, because they always want the firmware to be available. This allows them to start using the firmware loader. A third set of drivers already use the firmware loader, but can't be used without help from userspace, which sometimes requires an initrd. This allows them to work in a static kernel. Signed-off-by: David Woodhouse commit b7a39bd0afc4021e8ad2b1189e884551e147427f Author: David Woodhouse Date: Fri May 23 18:38:49 2008 +0100 firmware: make fw->data const In preparation for supporting firmware files linked into the static kernel, make fw->data const to ensure that users aren't modifying it (so that we can pass a pointer to the original in-kernel copy, rather than having to copy it). Signed-off-by: David Woodhouse commit fd4f80de4612cc5255c108a8c13df88f89c46654 Author: David Howells Date: Tue Jul 8 17:43:01 2008 +0100 Fix a const pointer usage warning in the Digigram miXart soundcard driver Fix a const pointer usage warning in the Digigram miXart soundcard driver. A const pointer is being passed to copy_from_user() to load the firmware into. This is okay in this case because the function has allocated the firmware struct itself, but the const qualifier is part of the firmware struct - so the patch casts the const away. Signed-off-by: David Howells Signed-off-by: David Woodhouse commit 67852dc08c0782735d48ce1e2a6eb44cd02a6ff7 Author: David Howells Date: Tue Jul 8 17:45:58 2008 +0100 Fix a const pointer usage warning in the Digigram pcxhr soundcard driver Fix a const pointer usage warning in the Digigram pcxhr compatible soundcard driver. A const pointer is being passed to copy_from_user() to load the firmware into. This is okay in this case because the function has allocated the firmware struct itself, but the const qualifier is part of the firmware struct - so the patch casts the const away. Signed-off-by: David Howells Signed-off-by: David Woodhouse commit 9b8a3e4cb1361cf4b4a50916876e72f07a9037e9 Author: David Howells Date: Tue Jul 8 17:38:56 2008 +0100 Fix a const pointer error in the Conexant cx23418 MPEG encoder driver Fix a const pointer to non-const pointer assignment error in the Conexant cx23418 MPEG encoder driver. Signed-off-by: David Howells Signed-off-by: David Woodhouse commit 2bca76e89bc43f86136080536858048ebffab3e3 Author: David Howells Date: Tue Jul 8 17:37:15 2008 +0100 Fix a const assignment in moxa_load_fw() Fix an assignment of a const pointer to a non-const pointer in moxa_load_fw(). Signed-off-by: David Howells Signed-off-by: David Woodhouse commit b561c74ae2832d32cc189ecd82863d31151cdcb5 Author: David Howells Date: Tue Jul 8 17:36:45 2008 +0100 Fix a const pointer usage warning in the Digigram VX soundcard driver Fix a const pointer usage warning in the Digigram VX soundcard driver. A const pointer is being passed to copy_from_user() to load the firmware into. This is okay in this case because the function has allocated the firmware struct itself, but the const qualifier will be part of the firmware struct - so the patch casts the const away. Signed-off-by: David Howells Signed-off-by: David Woodhouse commit ed5a2825feb79c424882c9d0f483172a91c93b54 Author: gregkh@suse.de Date: Thu May 29 10:17:38 2008 -0700 isight: treat firmware data as const Signed-off-by: Greg Kroah-Hartman Signed-off-by: David Woodhouse commit a13b04af713bfa60d44cbac956ab00d3a5793de7 Author: Greg Kroah-Hartman Date: Thu May 29 10:05:08 2008 -0700 x86 microcode: firmware data is const Signed-off-by: Greg Kroah-Hartman Signed-off-by: David Woodhouse commit c6c1c94e8225c833d4c175622f8c2e70c7347a7d Author: Greg Kroah-Hartman Date: Thu May 29 10:05:08 2008 -0700 dell_rbu: firmware data is const Signed-off-by: Greg Kroah-Hartman Signed-off-by: David Woodhouse commit b82a82d0a90af74847ae3e873a241dedf3786fd5 Author: David Woodhouse Date: Thu May 29 14:40:00 2008 +0300 ymfpci: treat firmware data as const Standardise both in-kernel and loaded firmware to be stored as little-endian instead of host-endian. Signed-off-by: David Woodhouse commit fa6e1cb66e2f9d2d4703e7bd7dd50839bb10e4c3 Author: David Woodhouse Date: Thu May 29 11:58:27 2008 +0300 maestro3: treat firmware data as const The maestro3 driver is byte-swapping its firmware to be host-endian in advance, when it doesn't seem to be necessary -- we could just use le16_to_cpu() as we load it. Doing that means that we need to switch the in-tree firmware to be little-endian too. Take the least intrusive way of doing this, which is to switch the existing snd_m3_convert_from_le() function to convert _to_ little-endian instead, and use it on the in-tree firmware instead of the loaded firmware. It's a bit suboptimal but doesn't matter much right now because we're about to remove the special cases for the in-tree version anyway. Signed-off-by: David Woodhouse commit c63e87e90abb5d3ecd05d6c6eba94163bf8c1760 Author: David Woodhouse Date: Sat May 24 00:13:34 2008 +0100 tuners: treat firmware data as const Signed-off-by: David Woodhouse commit 3a9282cacdb13466b9c745518237938434dbde0b Author: David Woodhouse Date: Sat May 24 00:13:08 2008 +0100 gp8psk: treat firmware data as const Signed-off-by: David Woodhouse commit e62f89f2aebd57f48687f139c20cf6375693b622 Author: David Woodhouse Date: Sat May 24 00:12:42 2008 +0100 cxusb: treat firmware data as const ...which means allocating our own copy when we want to modify it. (stupid thinko fixed by mkrufky) Signed-off-by: David Woodhouse Signed-off-by: Michael Krufky commit bc179153ae2334efe28cf4f3300e024da7d83753 Author: David Woodhouse Date: Sat May 24 00:12:23 2008 +0100 dvb frontends: treat firmware data as const Signed-off-by: David Woodhouse commit 99b6e4f511e38ea7beae35ee1b46b440151ce727 Author: David Woodhouse Date: Sat May 24 00:12:00 2008 +0100 ttusb-dec: treat firmware data as const Signed-off-by: David Woodhouse commit 4f2a0c3cdbead635f8aae729f550fcabcb73d1a5 Author: David Woodhouse Date: Sat May 24 00:11:44 2008 +0100 bt8xx: treat firmware data as const Signed-off-by: David Woodhouse commit 2c733a16784021c7c6a0c10e800937f0645d0a36 Author: David Woodhouse Date: Sat May 24 00:10:55 2008 +0100 cxgb3: treat firmware data as const Signed-off-by: David Woodhouse commit afd636e94d3cd99697f7291dbf957f0ca8a7544e Author: David Woodhouse Date: Sat May 24 00:10:26 2008 +0100 irda-usb: treat firmware data as const Signed-off-by: David Woodhouse commit 2f26e8afb22d79f655def146894595a39aeea1f8 Author: David Woodhouse Date: Sat May 24 00:09:29 2008 +0100 atmel: treat firmware data as const Signed-off-by: David Woodhouse commit 8b72eb4333aba692a16339acf8a74d84b10d3568 Author: David Woodhouse Date: Sat May 24 00:08:55 2008 +0100 p54: treat firmware data as const Signed-off-by: David Woodhouse commit f160ebcbeb6c9b79a770f22e14398158dac3de00 Author: David Woodhouse Date: Sat May 24 00:08:39 2008 +0100 rt2x00: treat firmware data as const Signed-off-by: David Woodhouse commit 45ef0bdb18a37bcf102e2a18c757227f8b192a36 Author: David Woodhouse Date: Sat May 24 00:08:19 2008 +0100 zd1201: treat firmware data as const Signed-off-by: David Woodhouse commit 0bc202e0fd84b8c8d042bdf9f0995e1e47bdbf59 Author: David Woodhouse Date: Sat May 24 00:05:45 2008 +0100 aic94xx: treat firmware data as const Signed-off-by: David Woodhouse commit 3b216d186c6df2642b397dbb67fbb7884ead0d88 Author: David Woodhouse Date: Sat May 24 00:05:28 2008 +0100 cxacru: treat firmware data as const Signed-off-by: David Woodhouse commit aafcd2f7d6790490bd921f04390bc210b386ecfa Author: David Woodhouse Date: Sat May 24 00:05:10 2008 +0100 ueagle-atm: treat firmware data as const Signed-off-by: David Woodhouse commit 2f0600b639777cbc1c0ae3f7bbbc982b0838e706 Author: David Woodhouse Date: Sat May 24 00:02:49 2008 +0100 vx: treat firmware data as const Signed-off-by: David Woodhouse commit b8d21807a1a479e0214a03069a88e3e93492b72d Author: David Woodhouse Date: Sat May 24 00:02:28 2008 +0100 pcxhr: treat firmware data as const Signed-off-by: David Woodhouse commit 93a9c901c88ba2b1bae9dd55e6243896b8a580f1 Author: David Woodhouse Date: Sat May 24 00:02:03 2008 +0100 riptide: treat firmware data as const Signed-off-by: David Woodhouse commit c2ba47d776bf9a45e15f28fc73ad44877437bef9 Author: David Woodhouse Date: Sat May 24 00:01:40 2008 +0100 vx222: treat firmware data as const Signed-off-by: David Woodhouse commit b0d31d6b28c7ca2ed78ce16ec649c0aac383a3fe Author: David Woodhouse Date: Sat May 24 00:00:07 2008 +0100 myri10ge: treat firmware data as const ... which means allocating our own buffer for reading it back. Signed-off-by: David Woodhouse commit 9ad46a6ac5422882d9f9a7f0d77ca0766f56bb6e Author: David Woodhouse Date: Fri May 23 23:58:24 2008 +0100 cx25840: treat firmware data as const Signed-off-by: David Woodhouse Acked-by: Hans Verkuil Acked-by: Tyler Trafford Acked-by: Mike Isely commit f61e761e2128c7ca0d044651b18928991ab03be2 Author: David Woodhouse Date: Fri May 23 23:57:19 2008 +0100 cyclades: treat firmware data as const Signed-off-by: David Woodhouse commit 8187b4fb9c17ea8e2a71c0563434f3ee08aad0d7 Author: David Woodhouse Date: Fri May 23 23:56:51 2008 +0100 bluetooth: treat firmware data as const Signed-off-by: David Woodhouse commit 6dfff895fa33b8576f82a38cee8abe5f73561e24 Author: David Woodhouse Date: Fri May 23 18:37:51 2008 +0100 libertas: treat firmware data as const Signed-off-by: David Woodhouse commit 34ec8a0ae138c2787a550b930d29a9cce4900cee Author: Jaroslav Kysela Date: Thu Jul 10 14:49:19 2008 +0200 ALSA: HDA - HP dc7600 with pci sub IDs 0x103c/0x3011 belongs to hp-3013 model As reported and tested by an RedHat customer, HP dc7600 with pci sub IDs 0x103c/0x3011 works with the hp-3013 model and not with the hp only model. Signed-off-by: Jaroslav Kysela commit 3952f17ed63434cc2154c3765ff97e1d4adab042 Author: Lee Nipper Date: Thu Jul 10 18:29:18 2008 +0800 crypto: talitos - Add support for sha256 and md5 variants This patch adds support for: authenc(hmac(sha256),cbc(aes)), authenc(hmac(sha256),cbc(des3_ede)), authenc(hmac(md5),cbc(aes)), authenc(hmac(md5),cbc(des3_ede)). Some constant usage was changed to use aes, des, and sha include files. Signed-off-by: Lee Nipper Signed-off-by: Herbert Xu commit 18e33e6d5cc0495826f5245777cd267732815e01 Author: Herbert Xu Date: Thu Jul 10 16:01:22 2008 +0800 crypto: hash - Move ahash functions into crypto/hash.h All new crypto interfaces should go into individual files as much as possible in order to ensure that crypto.h does not collapse under its own weight. This patch moves the ahash code into crypto/hash.h and crypto/internal/hash.h respectively. Signed-off-by: Herbert Xu commit 5773a3e6e396d5fd9de58372abe6a86b7e258e3e Author: Herbert Xu Date: Tue Jul 8 20:54:28 2008 +0800 crypto: crc32c - Add ahash implementation This patch reimplements crc32c using the ahash interface. This allows one tfm to be used by an unlimited number of users provided that they all use the same key (which all current crc32c users do). Signed-off-by: Herbert Xu commit 20036252fc61c624a49770fb89684ea5cfdfa05e Author: Herbert Xu Date: Mon Jul 7 22:19:53 2008 +0800 crypto: hash - Added scatter list walking helper This patch adds the walking helpers for hash algorithms akin to those of block ciphers. This is a necessary step before we can reimplement existing hash algorithms using the new ahash interface. Signed-off-by: Herbert Xu commit b8454eebe380677789735fd6bad368af2e6b2d1e Author: Neil Horman Date: Mon Jul 7 22:41:31 2008 +0800 crypto: prng - Deterministic CPRNG This patch adds a cryptographic pseudo-random number generator based on CTR(AES-128). It is meant to be used in cases where a deterministic CPRNG is required. One of the first applications will be as an input in the IPsec IV generation process. Signed-off-by: Neil Horman Signed-off-by: Herbert Xu commit 166247f46a9c866e6f7f7d2212be875fb82212a1 Author: Herbert Xu Date: Mon Jul 7 20:54:35 2008 +0800 crypto: hash - Removed vestigial ahash fields The base field in ahash_tfm appears to have been cut-n-pasted from ablkcipher. It isn't needed here at all. Similarly, the info field in ahash_request also appears to have originated from its cipher counter-part and is vestigial. Signed-off-by: Herbert Xu commit ca786dc738f4f583b57b1bba7a335b5e8233f4b0 Author: Herbert Xu Date: Mon Jul 7 20:23:56 2008 +0800 crypto: hash - Fixed digest size check The digest size check on hash algorithms is incorrect. It's perfectly valid for hash algorithms to have a digest length longer than their block size. For example crc32c has a block size of 1 and a digest size of 4. Rather than having it lie about its block size, this patch fixes the checks to do what they really should which is to bound the digest size so that code placing the digest on the stack continue to work. HMAC however still needs to check this as it's only defined for such algorithms. Signed-off-by: Herbert Xu commit caee16883a235b1b042282276859e7d5901fad21 Author: Harvey Harrison Date: Fri Jul 4 19:48:58 2008 +0800 crypto: rmd - sparse annotations Similar to the rmd128.c annotations, significantly cuts down on the noise. Signed-off-by: Harvey Harrison Signed-off-by: Herbert Xu commit b2b6a1720db65c97885ab9fc51fa23be47573bf4 Author: Harvey Harrison Date: Fri Jul 4 19:45:57 2008 +0800 crypto: rmd128 - sparse annotations Signed-off-by: Harvey Harrison Signed-off-by: Herbert Xu commit bd699f2df6dbc2f4cba528fe598bd63a4d3702c5 Author: Harvey Harrison Date: Fri Jul 4 19:42:24 2008 +0800 crypto: camellia - Use kernel-provided bitops, unaligned access helpers Remove the private implementation of 32-bit rotation and unaligned access with byteswapping. As a bonus, fixes sparse warnings: crypto/camellia.c:602:2: warning: cast to restricted __be32 crypto/camellia.c:603:2: warning: cast to restricted __be32 crypto/camellia.c:604:2: warning: cast to restricted __be32 crypto/camellia.c:605:2: warning: cast to restricted __be32 crypto/camellia.c:710:2: warning: cast to restricted __be32 crypto/camellia.c:711:2: warning: cast to restricted __be32 crypto/camellia.c:712:2: warning: cast to restricted __be32 crypto/camellia.c:713:2: warning: cast to restricted __be32 crypto/camellia.c:714:2: warning: cast to restricted __be32 crypto/camellia.c:715:2: warning: cast to restricted __be32 crypto/camellia.c:716:2: warning: cast to restricted __be32 crypto/camellia.c:717:2: warning: cast to restricted __be32 Signed-off-by: Harvey Harrison Signed-off-by: Herbert Xu commit ebbcf3369224ae7d23bfee06d8c5ea87a9541db5 Author: Herbert Xu Date: Thu Jul 3 19:14:02 2008 +0800 crypto: talitos - Use proper form for algorithm driver names The name authenc(hmac(sha1-talitos),cbc(aes-talitos)) is potentially ambiguous since it could also mean using the generic authenc template on hmac(sha1-talitos) and cbc(aes-talitos). In general, parentheses should be reserved for templates that spawn algorithms. This patches changes it to the form authenc-hmac-sha1-cbc-aes-talitos. Signed-off-by: Herbert Xu commit 70bcaca75389a6c011ddc866eb1743b070a838b0 Author: Lee Nipper Date: Thu Jul 3 19:08:46 2008 +0800 crypto: talitos - Add support for 3des This patch adds support for authenc(hmac(sha1),cbc(des3_ede)) to the talitos crypto driver for the Freescale Security Engine. Some adjustments were made to the scatterlist to link table conversion to make 3des work for ping -s 1439..1446. Signed-off-by: Lee Nipper Signed-off-by: Herbert Xu commit b43e726b32b85713c7c56b6545cf71c2b02b5e1a Author: Jeremy Katz Date: Thu Jul 3 19:03:31 2008 +0800 crypto: padlock - Make module loading quieter when hardware isn't available When loading aes or sha256 via the module aliases, the padlock modules also try to get loaded. Make the error message for them not being present only be a NOTICE rather than an ERROR so that use of 'quiet' will suppress the messages Signed-off-by: Jeremy Katz Signed-off-by: Herbert Xu commit 4b22f0ddb6564210c9ded7ba25b2a1007733e784 Author: Herbert Xu Date: Thu Jul 3 14:57:30 2008 +0800 crypto: tcrpyt - Remove unnecessary kmap/kunmap calls Noticed by Neil Horman: we are doing unnecessary kmap/kunmap calls on kmalloced memory. This patch removes them. For the purposes of testing SG construction, the underlying crypto code already does plenty of kmap/kunmap calls anyway. Signed-off-by: Herbert Xu commit 81bef0150074d677d8cbd4e971a8ce6c9746a1fc Author: Christian Hohnstaedt Date: Wed Jun 25 14:38:47 2008 +0800 crypto: ixp4xx - Hardware crypto support for IXP4xx CPUs Add support for the hardware crypto engine provided by the NPE C of the Intel IXP4xx networking processor series. Supported ciphers: des, des3, aes and a combination of them with md5 and sha1 hmac Signed-off-by: Christian Hohnstaedt Signed-off-by: Herbert Xu commit 9c4a79653b35efc9d6790c295e22f79f4b361125 Author: Kim Phillips Date: Mon Jun 23 19:50:15 2008 +0800 crypto: talitos - Freescale integrated security engine (SEC) driver Add support for the SEC available on a wide range of PowerQUICC devices, e.g. MPC8349E, MPC8548E. This initial version supports authenc(hmac(sha1),cbc(aes)) for use with IPsec. Signed-off-by: Kim Phillips Signed-off-by: Herbert Xu commit d729de23e86bbbb28adf6c3ded3651ea4ad8c539 Author: Neil Horman Date: Tue Jun 3 20:00:16 2008 +1000 [CRYPTO] tcrypt: Add self test for des3_ebe cipher operating in cbc mode Patch to add checking of DES3 test vectors using CBC mode. FIPS-140-2 compliance mandates that any supported mode of operation must include a self test. This satisfies that requirement for cbc(des3_ede). The included test vector was generated by me using openssl. Key/IV was generated with the following command: openssl enc -des_ede_cbc -P input and output values were generated by repeating the string "Too many secrets" a few times over, truncating it to 128 bytes, and encrypting it with openssl using the aformentioned key. Tested successfully by myself Signed-off-by: Neil Horman Acked-by: Adrian-Ken Rueegsegger Signed-off-by: Herbert Xu commit 5cdcc22f25b0766fe16d5dd8e3b2efc91fa4da6e Author: Herbert Xu Date: Mon Jun 2 21:30:38 2008 +1000 [CRYPTO] rmd: Use pointer form of endian swapping operations This patch converts the relevant code in the rmd implementations to use the pointer form of the endian swapping operations. This allows certain architectures to generate more optimised code. For example, on sparc64 this more than halves the CPU cycles on a typical hashing operation. Based on a patch by David Miller. Signed-off-by: Herbert Xu commit 0936a944068ef68f8b19f437e03f4654c29f2423 Author: Robert P. J. Day Date: Mon May 26 21:21:07 2008 +1000 [CRYPTO] hifn: Simplify code using ARRAY_SIZE() macro Signed-off-by: Robert P. J. Day Signed-off-by: Herbert Xu commit feedfdaa7bc02694c122d2d5246184248fb04513 Author: Adrian-Ken Rueegsegger Date: Mon May 26 20:54:34 2008 +1000 [CRYPTO] rmd320: Fix endian issues This patch fixes endian issues making rmd320 work properly on big-endian machines. Signed-off-by: Adrian-Ken Rueegsegger Acked-by: Sebastian Siewior Signed-off-by: Herbert Xu commit 2952ff1a598ce300c911d00d82872d00ca8b61ca Author: Adrian-Ken Rueegsegger Date: Mon May 26 20:33:44 2008 +1000 [CRYPTO] rmd256: Fix endian issues This patch fixes endian issues making rmd256 work properly on big-endian machines. Signed-off-by: Adrian-Ken Rueegsegger Acked-by: Sebastian Siewior Signed-off-by: Herbert Xu commit c928a0cddd070720268013fd012508059aa3de5a Author: Adrian-Ken Rueegsegger Date: Mon May 26 20:32:52 2008 +1000 [CRYPTO] rmd160: Fix endian issues This patch fixes endian issues making rmd160 work properly on big-endian machines. Signed-off-by: Adrian-Ken Rueegsegger Acked-by: Sebastian Siewior Signed-off-by: Herbert Xu commit 0f923a2aab7baa94c5fef498384151af1cd72cba Author: Adrian-Ken Rueegsegger Date: Tue May 20 11:41:48 2008 +0800 [CRYPTO] rmd128: Fix endian problems This patch is based on Sebastian Siewior's patch and fixes endian issues making rmd128 work properly on big-endian machines. Signed-off-by: Adrian-Ken Rueegsegger Acked-by: Sebastian Siewior Signed-off-by: Herbert Xu commit 0bea3dc1e2d85deb9e0bc523949d5c812f65b556 Author: Huang Weiyi Date: Thu May 15 14:29:46 2008 +0800 [CRYPTO] hifn: Remove duplicated include Removed duplicated include file . Signed-off-by: Huang Weiyi Signed-off-by: Evgeniy Polyakov Signed-off-by: Herbert Xu commit cde0e2c819aad91ed1e1c2e8aa64c16e7774c769 Author: Loc Ho Date: Wed May 14 21:24:51 2008 +0800 [CRYPTO] tcrypt: Use asynchronous hash interface This patch changes tcrypt to use the new asynchronous hash interface for testing hash algorithm correctness. The speed tests will continue to use the existing interface for now. Signed-off-by: Loc Ho Signed-off-by: Herbert Xu commit b8a28251c2066a2ac6481fc49ced5eb7f078e49b Author: Loc Ho Date: Wed May 14 21:23:00 2008 +0800 [CRYPTO] cryptd: Add asynchronous hash support This patch adds asynchronous hash support to crypto daemon. Signed-off-by: Loc Ho Signed-off-by: Herbert Xu commit 004a403c2e954734090a69aedc7f4f822bdcc142 Author: Loc Ho Date: Wed May 14 20:41:47 2008 +0800 [CRYPTO] hash: Add asynchronous hash support This patch adds asynchronous hash and digest support. Signed-off-by: Loc Ho Signed-off-by: Herbert Xu commit 534fe2c1c3ffbbc3db66dba0783c82d3b345fd33 Author: Adrian-Ken Rueegsegger Date: Fri May 9 21:30:27 2008 +0800 [CRYPTO] ripemd: Add Kconfig entries for extended RIPEMD hash algorithms This patch adds Kconfig entries for RIPEMD-256 and RIPEMD-320. Signed-off-by: Adrian-Ken Rueegsegger Signed-off-by: Herbert Xu commit 2998db37b5c62890ff1a0d48abd76ada13ebc554 Author: Adrian-Ken Rueegsegger Date: Fri May 9 21:29:35 2008 +0800 [CRYPTO] tcrypt: Add test vectors for RIPEMD-256 and RIPEMD-320 This patch adds test vectors for RIPEMD-256 and RIPEMD-320 hash algorithms. The test vectors are taken from Signed-off-by: Adrian-Ken Rueegsegger Signed-off-by: Herbert Xu commit c555c28d9da517579085a00fc80e725b0b5d9fce Author: Adrian-Ken Rueegsegger Date: Fri May 9 21:27:02 2008 +0800 [CRYPTO] ripemd: Add support for RIPEMD-256 and RIPEMD-320 This patch adds support for the extended RIPEMD hash algorithms RIPEMD-256 and RIPEMD-320. Signed-off-by: Adrian-Ken Rueegsegger Signed-off-by: Herbert Xu commit ba6b0398721524ec817f74ea3492b48fa79de52f Author: Adrian-Ken Rueegsegger Date: Fri May 9 21:25:42 2008 +0800 [CRYPTO] ripemd: Put all common RIPEMD values in header file This patch puts all common RIPEMD values in the appropriate header file. Initial values and constants are the same for all variants of RIPEMD. Signed-off-by: Adrian-Ken Rueegsegger Signed-off-by: Herbert Xu commit a558f1d4f8730f055b004b4c8ca1605aeb957daa Author: Patrick McHardy Date: Thu May 8 19:27:47 2008 +0800 [CRYPTO] tcrypt: Catch cipher destination memory corruption Check whether the destination buffer is written to beyond the last byte contained in the scatterlist. Also change IDX1 of the cross-page access offsets to a multiple of 4. This triggers a corruption in the HIFN driver and doesn't seem to negatively impact other testcases. Signed-off-by: Patrick McHardy Signed-off-by: Herbert Xu commit 692af5da779e018fc6a3b480b67adb33e3c6e1f0 Author: Patrick McHardy Date: Wed May 7 22:37:29 2008 +0800 [HIFN]: Have HW invalidate src and dest descriptors after processing The descriptors need to be invalidated after processing for ring cleanup to work properly and to avoid using an old destination descriptor when the src and cmd descriptors are already set up and the dst descriptor isn't. Signed-off-by: Patrick McHardy Acked-by: Evgeniy Polyakov Signed-off-by: Herbert Xu commit 85e7e60b856141cc9831e11cdfc8e9265886abac Author: Patrick McHardy Date: Wed May 7 22:36:54 2008 +0800 [HIFN]: Move command descriptor setup to seperate function Move command descriptor setup to seperate function as preparation for the following DMA setup fixes. Note 1: also fix a harmless typo while moving it: sa_idx is initialized to dma->resi instead of dma->cmdi. Note 2: errors from command descriptor setup are not propagated back, anymore, they can't be handled anyway and all conditions leading to errors should be checked earlier. Signed-off-by: Patrick McHardy Acked-by: Evgeniy Polyakov Signed-off-by: Herbert Xu commit 6cd3d674ddd1706226d4c395440ef1997fd72381 Author: Patrick McHardy Date: Wed May 7 22:36:17 2008 +0800 [HIFN]: Fix max queue length value All but the last element of the command and result descriptor rings can be used for crypto requests, fix HIFN_QUEUE_LENGTH. Signed-off-by: Patrick McHardy Acked-by: Evgeniy Polyakov Signed-off-by: Herbert Xu commit 4b804b53ef5a3c1a49c11bfff2754e0334cc932e Author: Patrick McHardy Date: Wed May 7 22:35:47 2008 +0800 [HIFN]: Properly initialize ivsize for CBC modes For combined modes like cbc(aes) the driver is responsible for initializing ivsize. Signed-off-by: Patrick McHardy Signed-off-by: Herbert Xu commit 281d6bd45385c689e7c03c9ff2434c143971682d Author: Patrick McHardy Date: Wed May 7 22:35:07 2008 +0800 [HIFN]: Use unique driver names for different algos When the CryptoAPI instantiates a new algorithm, it performs a lookup by driver name. Since hifn uses the same name for all modes of one algorithm, the lookup may return an incorrect algorithm. Change the name to use -- to provide unique names for the different combinations and devices. Signed-off-by: Patrick McHardy Acked-by: Evgeniy Polyakov Signed-off-by: Herbert Xu commit 136f702f51a4bfa38003660768e7153823fff8a1 Author: Patrick McHardy Date: Wed May 7 22:34:27 2008 +0800 [HIFN]: Properly handle requests for less than the full scatterlist The scatterlist may contain more data than the crypto request, causing an underflow of the remaining byte count while walking the list. Use the minimum of the scatterlist element size and the remaining byte count specified in the crypto request to avoid this. Signed-off-by: Patrick McHardy Acked-by: Evgeniy Polyakov Signed-off-by: Herbert Xu commit d069033b42b392662320f71e319296a14d57ff3a Author: Patrick McHardy Date: Wed May 7 22:33:37 2008 +0800 [HIFN]: Fix data alignment checks The check for misalignment of the scatterlist data has two bugs: - the source buffer doesn't need to be aligned at all - the destination buffer and its size needs to be aligned to a multiple of 4, not to the crypto alg blocksize Introduce symbolic constant for destination buffer alignment requirements, use it instead of the crypto alg blocksize and remove the unnecessary checks for source buffer alignment and change cra_alignmask to zero. Signed-off-by: Patrick McHardy Signed-off-by: Herbert Xu commit 94eaa1bd7ca67e8f57919da96cbb41c215ef20cb Author: Patrick McHardy Date: Wed May 7 22:32:28 2008 +0800 [HIFN]: Handle ablkcipher_walk errors ablkcipher_walk may return a negative error value, handle this properly instead of treating it as a huge number of scatter-gather elements. Signed-off-by: Patrick McHardy Acked-by: Evgeniy Polyakov Signed-off-by: Herbert Xu commit 9e70a408ad66846bc98dc026efe0384ef68373fc Author: Patrick McHardy Date: Wed May 7 22:31:35 2008 +0800 [HIFN]: Indicate asynchronous processing to crypto API hifn_setup_crypto() needs to return -EINPROGRESS on success to indicate asynchronous processing to the crypto API. This also means it must not return the errno code returned by hifn_process_queue(), if any. Signed-off-by: Patrick McHardy Signed-off-by: Herbert Xu commit 7808f0738f9ac5cff05bd89ee457334b9a029b5c Author: Patrick McHardy Date: Wed May 7 22:29:42 2008 +0800 [HIFN]: Remove printk_ratelimit() for debugging printk Without debugging this spams the log with "printk: N messages surpressed" without any actual messages on error. With debugging its more useful to always see the message. Signed-off-by: Patrick McHardy Acked-by: Evgeniy Polyakov Signed-off-by: Herbert Xu commit 3c42cbc2e01238778db92e16873a6e6f015a00af Author: Patrick McHardy Date: Wed May 7 22:28:27 2008 +0800 [HIFN]: Endianess fixes HIFN uses little-endian by default, move cpu_to_le32 conversion to hifn_write_0/ hifn_write_1, add sparse annotations and fix an invalid endian conversion in hifn_setup_src_desc. Signed-off-by: Patrick McHardy Acked-by: Evgeniy Polyakov Signed-off-by: Herbert Xu commit b10c170638c1f75bf582a75442fcdf27057ff537 Author: Herbert Xu Date: Wed May 7 22:19:38 2008 +0800 [CRYPTO] tcrpyt: Get rid of change log in source Change logs should be kept in source control systems, not the source. This patch removes the change log from tcrpyt to stop people from extending it any more. Signed-off-by: Herbert Xu commit 82798f90fb13fd934a15ed56fee227fe808dcbe8 Author: Adrian-Ken Rueegsegger Date: Wed May 7 22:17:37 2008 +0800 [CRYPTO] ripemd: Add Kconfig entries for RIPEMD hash algorithms This patch adds Kconfig entries for RIPEMD-128 and RIPEMD-160. Signed-off-by: Adrian-Ken Rueegsegger Signed-off-by: Herbert Xu commit fd4adf1a0b1923f6126835e1097b2997eb0d27e2 Author: Adrian-Ken Rueegsegger Date: Wed May 7 22:16:36 2008 +0800 [CRYPTO] tcrypt: Add test vectors for RIPEMD-128 and RIPEMD-160 This patch adds test vectors for RIPEMD-128 and RIPEMD-160 hash algorithms and digests (HMAC). The test vectors are taken from ISO:IEC 10118-3 (2004) and RFC2286. Signed-off-by: Adrian-Ken Rueegsegger Signed-off-by: Herbert Xu commit c6580eb8b17d64f0d6ad25c86a034adbda5ab4e1 Author: Adrian-Ken Rueegsegger Date: Wed May 7 22:14:10 2008 +0800 [CRYPTO] ripemd: Add support for RIPEMD hash algorithms This patch adds support for RIPEMD-128 and RIPEMD-160 hash algorithms. Signed-off-by: Adrian-Ken Rueegsegger Signed-off-by: Herbert Xu commit 93aa7f8a12d1b229bcee12a1100a6df4945f5432 Author: Herbert Xu Date: Wed May 7 21:10:13 2008 +0800 [CRYPTO] cryptd: Fix EINPROGRESS notification context The EINPROGRESS notifications should be done just like the final call-backs, i.e., with BH off. This patch fixes the call in cryptd since previously it was called with BH on. Signed-off-by: Herbert Xu commit 3ef8191f43cfd936ea00b7483ea0acf2f0303a23 Author: sedji gaouaou Date: Thu Jul 10 10:12:14 2008 +0100 [ARM] 5133/2: at91sam9g20 defconfig file at91sam9g20 defconfig file Signed-off-by: Sedji Gaouaou Signed-off-by: Justin Waters Acked-by: Andrew Victor Signed-off-by: Russell King commit 613526677a74c2b3d1b1696ea7334b2cf35155b3 Author: sedji gaouaou Date: Thu Jul 10 10:15:35 2008 +0100 [ARM] 5130/4: Support for the at91sam9g20 Support for the at91sam9g20 : Atmel 400Mhz ARM 926ej-s SOC. AT91sam9g20 is an evolution of the at91sam9260 with a faster clock speed. We created a new board for this device but based the chip support directly on 9260 files with little updates. Here is the chip page on Atmel wabsite: http://atmel.com/dyn/products/product_card.asp?part_id=4337 Signed-off-by: Sedji Gaouaou Signed-off-by: Justin Waters Acked-by: Andrew Victor Signed-off-by: Russell King commit 42a2f217a5e324ed5f2373ab1b7a0a15187c4d6c Author: Ingo Molnar Date: Thu Jul 10 12:35:46 2008 +0200 x86, visws: use mach-default/entry_arch.h mach-default/entry_arch.h is exactly the same file as mach-visws/entry_arch.h, so include the first from the second, so that updates to the generic one get picked up by VISWS as well. Signed-off-by: Ingo Molnar commit ca201c8230de336c3684aa3f3422d0c3f02bcef9 Author: Ingo Molnar Date: Thu Jul 10 12:33:20 2008 +0200 x86, visws: fix generic-ipi build fix: arch/x86/kernel/built-in.o: In function `smp_intr_init': (.init.text+0x49e2): undefined reference to `call_function_single_interrupt' Caused by include/asm-x86/mach-visws/entry_arch.h getting out of sync with the include/asm-x86/mach-default/entry_arch.h file it derives from. Copy the default file over - next step will be to simply include the default file. Signed-off-by: Ingo Molnar commit a6784ad7eafa74a085c8458909eda0699a8fcf57 Author: Ingo Molnar Date: Thu Jul 10 12:21:58 2008 +0200 x86: fix visws and vsmp build these two sub-architectures want PCI to be default-on, not default-off. Reported-by: Robert Richter Signed-off-by: Ingo Molnar commit ec1bb60bbff0386c3ec25360e7a8c72f467a6ff1 Merge: 5373fdb... 37f5d73... Author: Ingo Molnar Date: Thu Jul 10 11:43:08 2008 +0200 Merge branch 'tracing/sysprof' into auto-ftrace-next commit 5373fdbdc1dba69aa956098650f71b731d471885 Merge: bac0c91... 4d51c75... Author: Ingo Molnar Date: Thu Jul 10 11:43:06 2008 +0200 Merge branch 'tracing/mmiotrace' into auto-ftrace-next commit bac0c9103b31c3dd83ad9d731dd9834e2ba75e4f Merge: 6329d30... 98a05ed... Author: Ingo Molnar Date: Thu Jul 10 11:43:00 2008 +0200 Merge branch 'tracing/ftrace' into auto-ftrace-next commit 83a1a3974f33d45d6631363738db737624a32e82 Author: Clemens Ladisch Date: Thu Jul 10 11:05:42 2008 +0200 ALSA: usb-audio: add some Yamaha USB MIDI quirks Add quirk entries for four Yamaha USB MIDI devices. Signed-off-by: Clemens Ladisch commit 0b9f4f49e2abe787673de8f1f56f053fb30fec24 Author: Maciej W. Rozycki Date: Tue Jul 1 01:19:31 2008 +0100 x86: I/O APIC: Add a 64-bit variation of replace_pin_at_irq() When an interrupt is rerouted to a different I/O APIC pin the relevant entry of the irq_2_pin list should get updated accordingly so that operations are performed on the correct redirection entry. This is already done by the 32-bit variation of the code and here is a complementing 64-bit implementation. Should make someone's decision less tough when merging the two. ;) Signed-off-by: Maciej W. Rozycki Signed-off-by: Ingo Molnar commit c85ceac97487580e39daaf57858513246e425647 Author: Clemens Ladisch Date: Thu Jul 10 11:01:06 2008 +0200 ALSA: usb-audio: fix Yamaha KX quirk We have to restrict the quirk to interface 0 because the second interface is not MIDI but HID. Additionally, this product ID is used by all four KX models, so it is better to read the product name from the device. Signed-off-by: Clemens Ladisch commit c9076b63191ec799ba6848ce5603fff109da57d2 Author: Ingo Molnar Date: Thu Jul 10 11:00:50 2008 +0200 Revert "x86: fix IO APIC breakage on HP nx6325" This reverts commit 90221a61a71b7ad659d8741cf1e404506b174982. This too was just temporary diagnostics - not needed now that we've got the final fix via: | commit e2079c43861f71b2deb78ee20e247ad954fdd67e | Author: Rafael J. Wysocki | Date: Tue Jul 8 16:12:26 2008 +0200 | | x86: fix C1E && nx6325 stability problem Signed-off-by: Ingo Molnar commit 2179bab7d431ab8ed539e19e029b1f6a231f4ed3 Author: Ingo Molnar Date: Thu Jul 10 10:59:59 2008 +0200 Revert "x86: fix IO APIC breakage on HP nx6325, v2" This reverts commit a74a1cc3df0be89658bc735c8aed80c8392e2c15. This was just temporary diagnostics commit - not needed now that we've got the final fix. Signed-off-by: Ingo Molnar commit 18b743dc948aaddc46258b73f17bdec2ee4019ee Author: FUJITA Tomonori Date: Thu Jul 10 09:50:50 2008 +0900 x86, AMD IOMMU: clean up Kconfig entry AMD_IOMMU should depend on IOMMU_HELPER since they are the IOMMU helper functions. SWIOTLB requires IOMMU_HELPER so declaring that AMD_IOMMU depends on SWIOTLB properly fixes the problems. Signed-off-by: Ingo Molnar commit e93be88d7ec9d183c1cca51eabe040c051cdb687 Author: FUJITA Tomonori Date: Thu Jul 10 08:27:49 2008 +0900 x86: clean up iommu.h and gart.h This remove lots of duplications in iommu.h and gart.h. The end result of this patch is: - iommu.h is a header file for everyone related with IOMMUs. - gart.h is the private header file. Only pci-gart_64.c and its friends include it. Signed-off-by: FUJITA Tomonori Cc: fujita.tomonori@lab.ntt.co.jp Signed-off-by: Ingo Molnar commit 849567b9363dc8b90c369fff8acc245a1b47d94d Merge: 3d43ecd... 8cbfd4f4... Author: Ingo Molnar Date: Thu Jul 10 10:43:11 2008 +0200 Merge branch 'x86/gart' into x86/core commit 4a161d235b68eb7234f40106560c488a1bdb3851 Author: Manuel Lauss Date: Wed Jul 9 16:27:56 2008 +0200 ALSA: ASoC: Au12x0/Au1550 PSC Audio support Audio for Au12x0/Au1550 PSCs in AC97 and I2S mode, for ASoC v1 framework. - DBDMA, AC97 and I2S drivers - sample AC97 machine code (Db1200) Signed-off-by: Manuel Lauss Signed-off-by: Liam Girdwood Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit bf41534506a0572c06c8f34d12aa489be4c8780e Author: Richard Chan Date: Wed Jul 9 19:39:07 2008 +0200 ALSA: Add Yamaha KX49 (USB MIDI controller) to usbquirks.h This patch is for the Yamaha USB MIDI controller KX49. http://www.yamahasynth.com/products/kx/index.html It has a 3-port MIDI interface and an HID interface (it has a tiny keyboard subset). Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit a84534dc179d3e9f501e5a12598cc5271cd28f5b Author: Dmitry Baryshkov Date: Tue Jul 8 19:45:42 2008 +0400 ALSA: ASoC: pxa2xx-ac97: fix warning due to missing argument in fuction declaration Signed-off-by: Dmitry Baryshkov Acked-by: Mark Brown Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit 76d39d0a1947fee4c29976e507fb93188eaa2b38 Author: Dmitry Baryshkov Date: Tue Jul 8 19:45:20 2008 +0400 ALSA: tosa: fix compilation with new DAPM API Signed-off-by: Dmitry Baryshkov Acked-by: Mark Brown Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit af13452820d075cb7153fe155ca796e64038d7e5 Author: Takashi Iwai Date: Wed Jul 9 19:13:30 2008 +0200 ALSA: wavefront - add const Fix const to non-const pointer cast warning in wavefront_synth.c. Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit ee2da99782d717b264d5c309a2084ca85e9a64ff Author: Johannes Berg Date: Wed Jul 9 10:28:41 2008 +0200 ALSA: remove CONFIG_KMOD from sound A bunch of things in alsa depend on CONFIG_KMOD, use CONFIG_MODULES instead where the dependency is needed at all. Signed-off-by: Johannes Berg Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit 7fc077fba5f8896c6fed3b35c5a10e7fdae82bbe Author: David Howells Date: Tue Jul 8 17:52:10 2008 +0100 ALSA: Fix a const to non-const assignment in the Digigram VXpocket sound driver Fix a const to non-const pointer assignment warning in the Digigram VXpocket sound driver. This may be due to patch 0aa4937648b91e9e6d3879b2cbeaa5f0c9863ac0. Signed-off-by: David Howells Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit bd5d06eb8f0b9e0eb117b9c45c254d577ec2e273 Author: David Howells Date: Tue Jul 8 17:30:30 2008 +0100 ALSA: Fix a const pointer usage warning in the Digigram VX soundcard driver Fix a const pointer usage warning in the Digigram VX soundcard driver. A const pointer is being passed to copy_from_user() to load the firmware into. This is okay in this case because the function has allocated the firmware struct itself, but the const qualifier is part of the firmware struct - so the patch casts the const away. Signed-off-by: David Howells Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit 6f48413dd0f28d81a20fba2e264dd1b9f205893e Author: Liam Girdwood Date: Tue Jul 8 13:21:52 2008 +0100 ALSA: asoc: at32 - DAI struct merge and enable_pin() change. This adds support for the recent DAI struct merge and new DAPM pin API. Signed-off-by: Liam Girdwood Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit ac8615baf279f9bcb90c8ae017321d63a94e1762 Author: Liam Girdwood Date: Tue Jul 8 13:20:39 2008 +0100 ALSA: asoc: n810 - fix build error. This patch adds a missing " that was recently introduced (removed) in the DAI struct merge patch series. Signed-off-by: Liam Girdwood Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit 64105cfd65df74fdf82c1d053b2c9953304a94ea Author: Liam Girdwood Date: Tue Jul 8 13:19:18 2008 +0100 ALSA: asoc: machines - add Digital Audio Interface (DAI) control functions. This patch adds several functions for DAI control and config and replaces the current method of calling function pointers within the DAI struct within the machine drivers. Signed-off-by: Liam Girdwood Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit 8c6529dbf881303920a415c2d14a500218661949 Author: Liam Girdwood Date: Tue Jul 8 13:19:13 2008 +0100 ALSA: asoc: core - add Digital Audio Interface (DAI) control functions. This patch adds several functions for DAI control and config and replaces the current method of calling function pointers within the DAI struct. Signed-off-by: Liam Girdwood Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit 7e2574050e6af203f0c94915c98c53ce1fc48044 Author: Matthew Ranostay Date: Tue Jul 8 11:50:09 2008 +0200 ALSA: hda - removed redundant gpio_mask An gpio_mask value was defined twice needlessly. Signed-off-by: Matthew Ranostay Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit 3fccd8b1bf716f1314c76689a3554ea37ad282b6 Author: Mark Brown Date: Mon Jul 7 19:26:04 2008 +0100 ALSA: ASoC: Dump DAPM state for non-stream changes Explicit DAPM syncs are likely to cause DAPM state updates, as are mixer and mux configuration changes, so display the DAPM status after them too. Signed-off-by: Mark Brown Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit c1286b8671135006eeb66b0267fa2895561b78e4 Author: Mark Brown Date: Mon Jul 7 19:26:03 2008 +0100 ALSA: ASoC: Switch DAPM to use of standard DEBUG macro DAPM contains debug output controlled by a DAPM_DEBUG macro. Change this to be controlled by the standard DEBUG, dropping the custom dbg() macro as we go. Also fix the error printed when configuring an unknown pin to be an unconditionally displayed error rather than debug output. Signed-off-by: Mark Brown Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit 53640650ffe07f6201ecae0b0dca078b97327247 Author: Liam Girdwood Date: Mon Jul 7 16:08:29 2008 +0100 ALSA: asoc: sh - merge structs snd_soc_codec_dai and snd_soc_cpu_dai. This patch merges struct snd_soc_codec_dai and struct snd_soc_cpu_dai into struct snd_soc_dai for the SuperH platform. Signed-off-by: Liam Girdwood Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit 1992a6fbd929196aebe95e0e7b04c4da66c3bfec Author: Liam Girdwood Date: Mon Jul 7 16:08:24 2008 +0100 ALSA: asoc: s3c24xx - merge structs snd_soc_codec_dai and snd_soc_cpu_dai. This patch merges struct snd_soc_codec_dai and struct snd_soc_cpu_dai into struct snd_soc_dai for the S3C24xx platform. Signed-off-by: Liam Girdwood Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit 917f93ac80a1c007d4a3ce269a3712f93a75728f Author: Liam Girdwood Date: Mon Jul 7 16:08:11 2008 +0100 ALSA: asoc: pxa - merge structs snd_soc_codec_dai and snd_soc_cpu_dai. This patch merges struct snd_soc_codec_dai and struct snd_soc_cpu_dai into struct snd_soc_dai for the PXA platform. Signed-off-by: Liam Girdwood Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit 8687eb8bded8c3c5842a85bd0c30e43fc5a3e0e0 Author: Liam Girdwood Date: Mon Jul 7 16:08:07 2008 +0100 ALSA: asoc: omap - merge structs snd_soc_codec_dai and snd_soc_cpu_dai. This patch merges struct snd_soc_codec_dai and struct snd_soc_cpu_dai into struct snd_soc_dai for the Omap platform. Signed-off-by: Liam Girdwood Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit 8cf7b2b393b26b9ba1ccbeeb271a88e51d58f3e3 Author: Liam Girdwood Date: Mon Jul 7 16:08:00 2008 +0100 ALSA: asoc: fsl - merge structs snd_soc_codec_dai and snd_soc_cpu_dai. This patch merges struct snd_soc_codec_dai and struct snd_soc_cpu_dai into struct snd_soc_dai for the Freescale PPC platform. Signed-off-by: Liam Girdwood Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit e550e17ffeb8cf8db27724eaf2ad05f77388afb9 Author: Liam Girdwood Date: Mon Jul 7 16:07:52 2008 +0100 ALSA: asoc: codecs - merge structs snd_soc_codec_dai and snd_soc_cpu_dai. This patch merges struct snd_soc_codec_dai and struct snd_soc_cpu_dai into struct snd_soc_dai for the codec drivers. Signed-off-by: Liam Girdwood Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit 9cb132d743cf39b3bbe4288e9035217e7237a0bb Author: Liam Girdwood Date: Mon Jul 7 16:07:42 2008 +0100 ALSA: asoc: davinci - merge structs snd_soc_codec_dai and snd_soc_cpu_dai. This patch merges struct snd_soc_codec_dai and struct snd_soc_cpu_dai into struct snd_soc_dai for the DaVinci platform. Signed-off-by: Liam Girdwood Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit d37ae539a1d76da8fe5a939ce8b6d818501c8716 Author: Liam Girdwood Date: Mon Jul 7 16:07:37 2008 +0100 ALSA: asoc: at91 - merge structs snd_soc_codec_dai and snd_soc_cpu_dai. This patch merges struct snd_soc_codec_dai and struct snd_soc_cpu_dai into struct snd_soc_dai for the AT91 platform. Signed-off-by: Liam Girdwood Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit 453ba20b2800bc07a3eaf220010dc0127cc552fd Author: Liam Girdwood Date: Mon Jul 7 16:07:29 2008 +0100 ALSA: asoc: at32 - merge structs snd_soc_codec_dai and snd_soc_cpu_dai. This patch series merges struct snd_soc_codec_dai and struct snd_soc_cpu_dai into struct snd_soc_dai for AT32 platform. Signed-off-by: Liam Girdwood Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit 3c4b266fe642bcaebe2b95edb56c3f8802924ff9 Author: Liam Girdwood Date: Mon Jul 7 16:07:17 2008 +0100 ALSA: asoc: core - merge structs snd_soc_codec_dai and snd_soc_cpu_dai. This patch series merges struct snd_soc_codec_dai and struct snd_soc_cpu_dai into struct snd_soc_dai in preparation for further ASoC v2 patches. This merger removes duplication in both DAI structures and simplifies the API for other users. Signed-off-by: Liam Girdwood Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit a5302181e5321664047f75715242aac4e0bbd17c Author: Liam Girdwood Date: Mon Jul 7 13:35:17 2008 +0100 ALSA: asoc: core - refactored DAPM pin control API. Refactored snd_soc_dapm_set_endpoint() to snd_soc_dapm_enable_pin() and snd_soc_dapm_disable_pin(). Renamed snd_soc_dapm_sync_endpoints() to snd_soc_dapm_sync(). Renamed snd_soc_dapm_get_endpoint_status() to snd_soc_dapm_get_pin_status(). Signed-off-by: Liam Girdwood Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit be321a890c25272965129ffe4b3b59a519fcf583 Author: Takashi Iwai Date: Mon Jul 7 16:04:04 2008 +0200 ALSA: hda - Add support for Lenovo 3000 N200 Added the model entry (model=lenovo) for Lenovo N3000 N200 laptop with ALC861-VD. Reference below: https://bugzilla.novell.com/show_bug.cgi?id=406425 Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit 73ead4855d98e330f2840523e1648575b9f2aae9 Author: Mark Brown Date: Fri Jul 4 16:01:14 2008 +0100 ALSA: ASoC: Fix warning from strict_strtoul() Signed-off-by: Mark Brown Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit 3f775987030cf7ff922765c18ddd0d311b4b46ef Author: Manuel Lauss Date: Thu Jul 3 09:33:10 2008 +0200 ALSA: ASoC: AC97 codec PM Simple suspend/resume for AC97 ASoC codec. Signed-off-by: Manuel Lauss Acked-by: Liam Girdwood Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit 15e4c72f520d1db9adc38ba157547a7c1fca45b2 Author: Mark Brown Date: Wed Jul 2 11:51:20 2008 +0100 ALSA: ASoC: Make pop/click debug wait times dynamically configurable DAPM supports adding a compile time configurable delay to the widget power sequences, aiding diagnosis of problems with pops and clicks being generated during them. This patch converts this to be configurable at run time via a sysfs file. Signed-off-by: Mark Brown Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit 5415552d21150dbfbff012de2b59e685ea232b1e Author: Mark Brown Date: Wed Jul 2 11:51:19 2008 +0100 ALSA: ASoC: Advertise 16000Hz rate for WM9713 PCM interface Signed-off-by: Mark Brown Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit 25552e87aa4102f048f1a8a8ddc87c96593c304e Author: Mike Rapoport Date: Wed Jul 2 13:19:23 2008 +0300 ALSA: ac97 - fix patch_ucb1400 for proper resume Replace 'snd_ac97_write' with snd_ac97_write_cache' in pacth_ucb1400 to allow proper codec wakeup. Signed-off-by: Mike Rapoport Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit 6a9dccd61253f361760802d8d19c28fa83ea83f5 Author: Takashi Iwai Date: Tue Jul 1 14:52:05 2008 +0200 ALSA: ALSA: hda - Fix speaker output on Toshiba P105 Toshiba Satellite P105 with cx5045 has no HP pin but only a speaker pin and does the speaker-muting on hardware. Thus the matching model is laptop-micsense. Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit 470eaf6be78424fc499a5039e5d5fe58bace2bc3 Author: Takashi Iwai Date: Mon Jun 30 16:40:10 2008 +0200 ALSA: hda - Add missing Thinkpad Z60m support Added the missing SSID of Thinkpad Z60m for model=thinkpad with AD1981HD. Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit 0701e0640f4a1de2b509cfee508216275f81d812 Author: Takashi Iwai Date: Fri Jun 27 16:30:57 2008 +0200 ALSA: ALSA: hda - Fix ALC883 medion model ALC883 medion model doesn't unmute the proper amps so no output can be heard. Replaced the mute switches to behave just like other models. Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit 4d20f70a787e03530786152ea27a6ed157205cdc Author: Jarkko Nikula Date: Fri Jun 27 14:07:57 2008 +0300 ALSA: ASoC: TLV320AIC3X: Add mixer control for ADC highpass filter Signed-off-by: Jarkko Nikula Signed-off-by: Liam Girdwood Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit 6cabf6b0694951288520512e0b68c78523acc9fd Author: Takashi Iwai Date: Fri Jun 27 11:55:20 2008 +0200 ALSA: Fix AC97 power down Some laptops don't like PR3 powerdown. Do PR3 powerdown only for the real power-saving. Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit 942fd1ebf6072fdaa07ae6d77a4f58b39c1bfdf9 Author: Walter Sheets Date: Fri Jun 27 11:53:31 2008 +0200 ALSA: via82xx - Add VIA audio device #1841 to ac97_quirk list Signed-off-by: Walter Sheets Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit 3d43ecd286e442792f2e899e6e06eb23ab3d99f6 Author: Yinghai Lu Date: Wed Jul 9 20:17:50 2008 -0700 x86: make e820_end return end_of_ram again for 64bit even on 64bit systems with less than 4G RAM, we can now use fixmap to handle acpi SIT near end of ram. change e820_end to e820_end_of_ram again? or e820_ram_pfn? Signed-off-by: Yinghai Lu Cc: Suresh Siddha Signed-off-by: Ingo Molnar commit f34fa82b19581affffb14f8ad9bdad9b5ab4daf5 Author: Yinghai Lu Date: Wed Jul 9 20:16:36 2008 -0700 x86, acpi: merge __acpi_map_table and let 64-bit to fall back to use fixmap too. Signed-off-by: Yinghai Lu Cc: Suresh Siddha Signed-off-by: Ingo Molnar commit 7b16eb8930d1e2a7ce5c7f35c87d62252ecc91f2 Author: Yinghai Lu Date: Wed Jul 9 20:15:02 2008 -0700 x86: overmapped fix when 4K pages on tail, 64-bit fix phys_pmd_init to make sure not to return bigger value than end. also print out range split:1G/2M/4K in init_memory_mapping(). Signed-off-by: Yinghai Lu Cc: Suresh Siddha Signed-off-by: Ingo Molnar commit 9e4144abf8a30ae221311368bbb10690ebdb4b76 Merge: e17ba73... 6329d30... Author: Ingo Molnar Date: Thu Jul 10 08:17:14 2008 +0200 Merge branch 'linus' into core/printk Conflicts: kernel/printk.c Signed-off-by: Ingo Molnar commit 4fb3dc2729c22ed1b023475fe28b720460251de1 Author: Ingo Molnar Date: Wed Jul 9 13:07:23 2008 +0200 x86: build fix for "x86: fix C1E && nx6325 stability problem" fix: arch/x86/kernel/built-in.o: In function `dmi_ignore_irq0_timer_override': boot.c:(.init.text+0x3ea4): undefined reference to `force_mask_ioapic_irq_2' Signed-off-by: Ingo Molnar commit 6b148507d3d042a3c11f4c3f6c0f649c6a89220d Author: Thomas Gleixner Date: Wed May 21 21:14:58 2008 +0200 pmtmr: allow command line override of ioport Stupid BIOSes do not tell us about the PMTimer, but we might know where it is. Signed-off-by: Thomas Gleixner commit 48627d8d23c34106c1365563604739a50343edaf Author: Thomas Gleixner Date: Thu Jul 10 07:01:13 2008 +0200 genirq: remove extraneous checks in manage.c In http://bugzilla.kernel.org/show_bug.cgi?id=9580 it was pointed out that the desc->chip checks are extraneous. In fact these are left overs from early development and can be removed safely. Signed-off-by: Thomas Gleixner commit 63f385cd1f649b3f4f2d59fc609e051981215fd7 Author: Arnaud Patard Date: Tue Jul 8 23:07:48 2008 +0100 [ARM] 5160/1: IOP3XX: gpio/gpiolib support This patch brings support for gpio/gpiolib framework to Intel IOP3xx platforms. Signed-off-by: Arnaud Patard Acked-by: Dan Williams Signed-off-by: Russell King commit 16074b669ea97e2bef494ec7cceb475566f763e3 Author: Patrice Vilchez Date: Wed Jul 9 22:16:00 2008 +0100 [ARM] at91: Fix NAND FLASH timings for at91sam9x evaluation kits. New timings are based on application note "NAND Flash Support on AT91SAM9 Microcontrollers" available at http://atmel.com/dyn/resources/prod_documents/doc6255.pdf). Signed-off-by: Patrice Vilchez Acked-by: Andrew Victor Signed-off-by: Andrew Morton Signed-off-by: Russell King commit cabb352a6455c3550f157909196845f533b0f374 Author: Mark Brown Date: Tue Jun 10 10:48:25 2008 +0100 [ARM] 5084/1: zylonite: Register AC97 device The Zylonite has an AC97 subsystem on it so register the AC97 controller device. Signed-off-by: Mark Brown Acked-by: Eric Miao Signed-off-by: Russell King commit 9f19d6382854d6b2d58cc364253779479e14facc Author: Mark Brown Date: Tue Jun 10 12:30:05 2008 +0100 [ARM] 5085/2: PXA: Move AC97 over to the new central device declaration model As well as moving all the device declarations to a single one in devices.c this causes all platforms to register the I/O and interrupt resources for the AC97 controller. Cc: eric miao Cc: Mike Rapoport Cc: Lennert Buytenhek Cc: Jürgen Schindele Cc: Juergen Beisert Signed-off-by: Mark Brown Signed-off-by: Russell King commit 7a8576204333d133d58cbcc59dacf49a5546e3e4 Author: Philipp Zabel Date: Sun Jun 22 23:36:39 2008 +0100 [ARM] 5120/1: pxa: correct platform driver names for PXA25x and PXA27x UDC drivers The pxa2xx_udc.c driver is renamed to pxa25x_udc.c (the platform driver name changes from pxa2xx-udc to pxa25x-udc) and the platform driver name of pxa27x_udc.c is fixed to pxa27x-udc. pxa_device_udc in devices.c is split into pxa25x and pxa27x flavors and the pxa27x_device_udc is enabled in pxa27x.c. Signed-off-by: Philipp Zabel Acked-by: Nicolas Pitre Acked-by: Eric Miao Signed-off-by: Russell King Including from Ian Molton: Fixes for mistakes left over from the PXA2{5,7}X UDC split. Signed-off-by: Ian Molton Signed-off-by: Russell King commit 73d1a2c467ba4fb7420b499b6a7c66edf9626679 Author: Dmitry Baryshkov Date: Wed Jul 2 13:55:28 2008 +0100 [ARM] 5147/1: pxaficp_ir: drop pxa_gpio_mode calls, as pin setting is handled in board code Signed-off-by: Dmitry Baryshkov Signed-off-by: Russell King commit 918dbcba4ee3f0ad7d617b3969d5016481b9ceff Author: Dmitry Baryshkov Date: Wed Jul 2 13:53:45 2008 +0100 [ARM] 5145/1: PXA2xx: provide api to control IrDA pins state Provide a set of functions to control state of pins dedicated to IrDA. Signed-off-by: Dmitry Baryshkov Signed-off-by: Russell King commit 330ff197fcdc83ba151960d78294fb37777ebe12 Author: Dmitry Baryshkov Date: Wed Jul 2 13:52:27 2008 +0100 [ARM] 5144/1: pxaficp_ir: cleanup includes Signed-off-by: Dmitry Baryshkov Signed-off-by: Russell King commit 66a7f72d9892013e9ea663260f407758989ff510 Author: Russell King Date: Mon Jun 2 16:10:20 2008 +0100 [ARM] pxa: remove pxa_set_cken() pxa_set_cken() is now unused, remove it. Signed-off-by: Russell King commit fdc614e873bc56ed15d8f4e9fa33516cd0915fc2 Merge: bdb08cb... c0f7edb... 9fc697b... Author: Russell King Date: Wed Jul 9 20:56:05 2008 +0100 Merge branches 'pxa-misc', 'pxa-pwm' and 'pxa-multi' into pxa commit bdb08cb2d3491d441dd403dfb88d90ba90fb7232 Author: Russell King Date: Mon Jun 30 19:47:59 2008 +0100 [ARM] pxa: allow clk aliases We need to support more than one name+device for a struct clk for a small number of peripherals. We do this by re-using struct clk alias to another struct clk - IOW, if we find that the entry we're using is an alias, we return the aliased entry not the one we found. Signed-off-by: Russell King commit 2bf3016f89344d4cd8b2c96bbec2b642a2bde413 Author: Stefan Roese Date: Thu Jul 10 01:09:23 2008 +1000 powerpc: Fix problems with 32bit PPC's running with >= 4GB of RAM This patch enables 32bit PPC's (with 36bit physical address space, e.g. IBM/AMCC PPC44x) to run with >= 4GB of RAM. Mostly its just replacing types (unsigned long -> phys_addr_t). Tested on an AMCC Katmai with 4GB of DDR2. Signed-off-by: Stefan Roese Signed-off-by: Josh Boyer commit 3fa69dd57759cb45fa48bb70a055025d25a7e4e8 Author: Josh Boyer Date: Wed Jul 9 14:05:15 2008 -0400 powerpc/44x: Update ppc44x_defconfig Add the virtex and sam440ep platforms to the multiboard defconfig Signed-off-by: Josh Boyer commit 4248652d4f3ce6be1a94c77ddbfeb937af1df800 Author: Sean MacLennan Date: Wed Jul 9 05:00:10 2008 +1000 powerpc/44x: Support NAND boot for Rev A Warp boards Allow the Rev A Warp boards to boot from NAND. Signed-off-by: Sean MacLennan Signed-off-by: Josh Boyer commit 1bc54c03117b90716e0dedd7abb2a20405de65df Author: Benjamin Herrenschmidt Date: Tue Jul 8 15:54:40 2008 +1000 powerpc: rework 4xx PTE access and TLB miss This is some preliminary work to improve TLB management on SW loaded TLB powerpc platforms. This introduce support for non-atomic PTE operations in pgtable-ppc32.h and removes write back to the PTE from the TLB miss handlers. In addition, the DSI interrupt code no longer tries to fixup write permission, this is left to generic code, and _PAGE_HWWRITE is gone. Signed-off-by: Benjamin Herrenschmidt Signed-off-by: Josh Boyer commit beae4c03c0fe69cf7d57518aa0572ad21730b8be Merge: 0db9360... 9fde9bd... Author: Josh Boyer Date: Wed Jul 9 13:35:16 2008 -0400 Merge branch 'virtex-for-2.6.27' of git://git.secretlab.ca/git/linux-2.6-virtex into 4xx-next commit 9fde9bdd3023854f7b03cc425ff4a0ed51bd1eb3 Author: Grant Likely Date: Wed Jul 9 10:56:11 2008 -0600 powerpc/440: Convert Virtex ML507 device tree to dts-v1 Signed-off-by: Grant Likely commit 381ba74af55e58bca4c01553835a360a9f6fbb07 Author: Trond Myklebust Date: Mon Jul 7 12:18:53 2008 -0400 SUNRPC: Ensure our task is notified when an rpcbind call is done If another task is busy in rpcb_getport_async number, it is more efficient to have it wake us up when it has finished instead of arbitrarily sleeping for 5 seconds. Also ensure that rpcb_wake_rpcbind_waiters() is called regardless of whether or not rpcb_getport_done() gets called. Signed-off-by: Trond Myklebust commit f45663ce5fb30f76a3414ab3ac69f4dd320e760a Author: Chuck Lever Date: Tue Jun 24 19:28:02 2008 -0400 NFS: Allow either strict or sloppy mount option parsing The kernel's NFS client mount option parser currently doesn't allow unrecognized or incorrect mount options. This prevents misspellings or incorrectly specified mount options from possibly causing silent data corruption. However, NFS mount options are not standardized, so different operating systems can use differently spelled mount options to support similar features, or can support mount options which no other operating system supports. "Sloppy" mount option parsing, which allows the parser to ignore any option it doesn't recognize, is needed to support automounters that often use maps that are shared between heterogenous operating systems. The legacy mount command ignores the validity of the values of mount options entirely, except for the "sec=" and "proto=" options. If an incorrect value is specified, the out-of-range value is passed to the kernel; if a value is specified that contains non-numeric characters, it appears as though the legacy mount command sets that option to zero (probably incorrect behavior in general). In any case, this sets a precedent which we will partially follow for the kernel mount option parser: + if "sloppy" is not set, the parser will be strict about both unrecognized options (same as legacy) and invalid option values (stricter than legacy) + if "sloppy" is set, the parser will ignore unrecognized options and invalid option values (same as legacy) An "invalid" option value in this case means that either the type (integer, short, or string) or sign (for integer values) of the specified value is incorrect. This patch does two things: it changes the NFS client's mount option parsing loop so that it parses the whole string instead of failing at the first unrecognized option or invalid option value. An unrecognized option or an invalid option value cause the option to be skipped. Then, the patch adds a "sloppy" mount option that allows the parsing to succeed anyway if there were any problems during parsing. When parsing a set of options is complete, if there are errors and "sloppy" was specified, return success anyway. Otherwise, only return success if there are no errors. Signed-off-by: Chuck Lever Signed-off-by: Trond Myklebust commit 6738b2512bdf93ffbefe108b38a9165d5a718c3f Author: Chuck Lever Date: Tue Jun 24 16:33:54 2008 -0400 NFS4: Set security flavor default for NFSv4 mounts like other defaults Set the default security flavor when we set the other mount option default values for NFSv4. This cleans up the NFSv4 mount option parsing path to look like the NFSv2/v3 one. Signed-off-by: Chuck Lever Signed-off-by: Trond Myklebust commit dd07c94750cb1ee4449fb0db06623e1865b3e26e Author: Chuck Lever Date: Tue Jun 24 16:33:46 2008 -0400 NFS: Set security flavor default for NFSv2/3 mounts like other defaults Set the default security flavor when we set the other mount option default values. After this change, only the legacy user-space mount path needs to set the NFS_MOUNT_SECFLAVOUR flag. Signed-off-by: Chuck Lever Signed-off-by: Trond Myklebust commit 01060c896e3e1ef53dcb914301c186932cd31b81 Author: Chuck Lever Date: Tue Jun 24 16:33:38 2008 -0400 NFS: Refactor logic for parsing NFS security flavor mount options Clean up: Refactor the NFS mount option parsing function to extract the security flavor parsing logic into a separate function. Signed-off-by: Chuck Lever Signed-off-by: Trond Myklebust commit 0e0cab744b17a70ef0f08d818d66935feade7cad Author: Chuck Lever Date: Thu Jun 26 17:47:12 2008 -0400 NFS: use documenting macro constants for initializing ac{reg, dir}{min, max} Clean up. Signed-off-by: Chuck Lever Signed-off-by: Trond Myklebust commit ed596a8adb7964cf9d2f7682f9cf2c37322a775d Author: Chuck Lever Date: Thu Jun 26 17:47:05 2008 -0400 NFS: Move the nfs_set_port() call out of nfs_parse_mount_options() The remount path does not need to set the port in the server address. Since it's not really a part of option parsing, move the nfs_set_port() call to nfs_parse_mount_options()'s callers. Signed-off-by: Chuck Lever Signed-off-by: Trond Myklebust commit 259875efed06d6936f54c9a264e868937f1bc217 Author: Trond Myklebust Date: Wed Jul 2 14:43:47 2008 -0400 NFS: set transport defaults after mount option parsing is finished Move the UDP/TCP default timeo/retrans settings for text mounts to nfs_init_timeout_values(), which was were they were always being initialised (and sanity checked) for binary mounts. Document the default timeout values using appropriate #defines. Ensure that we initialise and sanity check the transport protocols that may have been specified by the user. Signed-off-by: Trond Myklebust commit 40fef8a649e5344bfb6a67a7cc3def3e0dad6448 Author: Chuck Lever Date: Wed Jun 25 17:24:54 2008 -0400 SUNRPC: Use only rpcbind v2 for AF_INET requests Some server vendors support the higher versions of rpcbind only for AF_INET6. The kernel doesn't need to use v3 or v4 for AF_INET anyway, so change the kernel's rpcbind client to query AF_INET servers over rpcbind v2 only. This has a few interesting benefits: 1. If the rpcbind request is going over TCP, and the server doesn't support rpcbind versions 3 or 4, the client reduces by two the number of ephemeral ports left in TIME_WAIT for each rpcbind request. This will help during NFS mount storms. 2. The rpcbind interaction with servers that don't support rpcbind versions 3 or 4 will use less network traffic. Also helpful during mount storms. 3. We can eliminate the kernel build option that controls whether the kernel's rpcbind client uses rpcbind version 3 and 4 for AF_INET servers. Less complicated kernel configuration... Signed-off-by: Chuck Lever Signed-off-by: Trond Myklebust commit 8842413aa4c3220ce9313791f99808fc149ca16d Author: Chuck Lever Date: Wed Jun 25 17:24:47 2008 -0400 SUNRPC: Use GETADDR for rpcbind version 4 queries Some rpcbind servers that do support rpcbind version 4 do not support the GETVERSADDR procedure. Use GETADDR for querying rpcbind servers via rpcbind version 4 instead of GETVERSADDR. Signed-off-by: Chuck Lever Signed-off-by: Trond Myklebust commit 6a774051573042cdeb57e81f77b36c25e5856739 Author: Chuck Lever Date: Wed Jun 25 17:24:39 2008 -0400 SUNRPC: Use rpcbind version 2 GETPORT Clean up: Change the version 2 procedure name to GETPORT. It's the same procedure number as GETADDR, but version 2 implementations usually refer to it as GETPORT. This also now matches the procedure name used in the version 2 procedure entry in the rpcb_next_version[] array, making it slightly less confusing. Signed-off-by: Chuck Lever Signed-off-by: Trond Myklebust commit fc200e794d723bc88c39859e8f096b717532f9c9 Author: Chuck Lever Date: Wed Jun 25 17:24:31 2008 -0400 SUNRPC: Document some naked integers in rpcbind client Clean up: Replace naked integers that represent rpcbind protocol versions. Signed-off-by: Chuck Lever Signed-off-by: Trond Myklebust commit 877fcf103982e52a59a1035378b4c0b8c63fe004 Author: Chuck Lever Date: Wed Jun 25 17:24:23 2008 -0400 SUNRPC: More useful debugging output for rpcb client Clean up dprintk's in rpcb client's XDR decoder functions. Signed-off-by: Chuck Lever Signed-off-by: Trond Myklebust commit 5afc597c5f0bd184457e49b9a330fcb37b69db11 Author: Jeff Layton Date: Wed Jun 11 10:03:11 2008 -0400 nfs4: fix potential race with rapid nfs_callback_up/down cycle If the nfsv4 callback thread is rapidly brought up and down, it's possible that nfs_callback_svc might never get a chance to run. If this happens, the cleanup at thread exit might never occur, throwing the refcounting off and nfs_callback_info in an incorrect state. Move the clean functions into nfs_callback_down. Also change the nfs_callback_info struct to track the svc_rqst rather than svc_serv since we need to know that to call svc_exit_thread. Signed-off-by: Jeff Layton Signed-off-by: Trond Myklebust commit ee84dfc45467fd8e5ce04fa2813d98e0aebe465c Author: Jeff Layton Date: Wed Jun 11 10:03:10 2008 -0400 nfs4: remove BKL from nfs_callback_up and nfs_callback_down The nfs_callback_mutex is sufficient protection. Signed-off-by: Jeff Layton Signed-off-by: Trond Myklebust commit 77e03677ac76d413fbb6d6caaffa1d64877a0c2a Author: Benny Halevy Date: Tue Jun 24 20:25:57 2008 +0300 nfs: initialize timeout variable in nfs4_proc_setclientid_confirm gcc (4.3.0) rightfully warns about this: /usr0/export/dev/bhalevy/git/linux-pnfs-bh-nfs41/fs/nfs/nfs4proc.c: In function ‘nfs4_proc_setclientid_confirm’: /usr0/export/dev/bhalevy/git/linux-pnfs-bh-nfs41/fs/nfs/nfs4proc.c:2936: warning: ‘timeout’ may be used uninitialized in this function nfs4_delay that's passed a pointer to 'timeout' is looking at its value and sets it up to some value in the range: NFS4_POLL_RETRY_MIN..NFS4_POLL_RETRY_MAX if (*timeout <= 0) *timeout = NFS4_POLL_RETRY_MIN; if (*timeout > NFS4_POLL_RETRY_MAX) *timeout = NFS4_POLL_RETRY_MAX; Therefore it will end up set to some sane, though rather indeterministic, value. Signed-off-by: Benny Halevy Signed-off-by: Trond Myklebust commit d8e7748ab8322171ebfd78f6155ff35e7d57ac32 Author: Chuck Lever Date: Mon Jun 23 12:37:01 2008 -0400 NFS: handle interface identifiers in incoming IPv6 addresses Add support in the kernel NFS client's address parser for interface identifiers. IPv6 link-local addresses require an additional "interface identifier", which is a network device name or an integer that indexes the array of local network interfaces. They are suffixed to the address with a '%'. For example: fe80::215:c5ff:fe3b:e1b2%2 indicates an interface index of 2. Or fe80::215:c5ff:fe3b:e1b2%eth0 indicates that requests should be routed through the eth0 device. Without the interface ID, link-local addresses are not usable for NFS. Both the kernel NFS client mount option parser and the mount.nfs command can take either form. The mount.nfs command always passes the address through getnameinfo(3), which usually re-writes interface indices as device names. Signed-off-by: Chuck Lever Signed-off-by: Trond Myklebust commit ce3b7e1906ebbe96753fe090b36de6ffb8e0e0e7 Author: Chuck Lever Date: Mon Jun 23 12:36:53 2008 -0400 NFS: Add string length argument to nfs_parse_server_address To make nfs_parse_server_address() more generally useful, allow it to accept input strings that are not terminated with '\0'. Signed-off-by: Chuck Lever Signed-off-by: Trond Myklebust commit d1aa08257312f1439c1ab7c8a18e3856f9530f46 Author: Chuck Lever Date: Mon Jun 23 12:36:45 2008 -0400 NFS: Support raw IPv6 address hostnames during NFS mount operation Traditionally the mount command has looked for a ":" to separate the server's hostname from the export path in the mounted on device name, like this: mount server:/export /mounted/on/dir The server's hostname is "server" and the export path is "/export". You can also substitute a specific IPv4 network address for the server hostname, like this: mount 192.168.0.55:/export /mounted/on/dir Raw IPv6 addresses present a problem, however, because they look something like this: fe80::200:5aff:fe00:30b Note the use of colons. To get around the presence of colons, copy the Solaris convention used for mounting IPv6 servers by address: wrap a raw IPv6 address with square brackets. Signed-off-by: Chuck Lever Signed-off-by: Trond Myklebust commit dc04589827f7e1af12714af8bb00e3f3c4c48c62 Author: Chuck Lever Date: Mon Jun 23 12:36:37 2008 -0400 NFS: Use common device name parsing logic for NFSv4 and NFSv2/v3 To support passing a raw IPv6 address as a server hostname, we need to expand the logic that handles splitting the passed-in device name into a server hostname and export path Start by pulling device name parsing out of the mount option validation functions and into separate helper functions. Signed-off-by: Chuck Lever Signed-off-by: Trond Myklebust commit cd100725620a8063fbc81bcf16d7c9e71a9583e0 Author: Trond Myklebust Date: Tue Jun 17 16:12:00 2008 -0400 NFS: Fix a dependency on CONFIG_NFS_V4 in nfs_remount Fix the 'nfs4_fs_type' undeclared error in nfs_remount when compiling sans NFSv4... Signed-off-by: Trond Myklebust Cc: Jeff Layton commit e468bae97d243fe0e1515abaa1f7d0edf1476ad0 Author: Trond Myklebust Date: Fri Jun 13 13:25:22 2008 -0400 NFS: Allow redirtying of a completed unstable write. Currently, if an unstable write completes, we cannot redirty the page in order to reflect a new change in the page data until after we've sent a COMMIT request. This patch allows a page rewrite to proceed without the unnecessary COMMIT step, putting it immediately back onto the dirty page list, undoing the VM unstable write accounting, and removing the NFS_PAGE_TAG_COMMIT tag from the NFS radix tree. Signed-off-by: Trond Myklebust commit e7d39069e387a12d4c57f4067d9f48c1d29ea900 Author: Trond Myklebust Date: Fri Jun 13 12:12:32 2008 -0400 NFS: Clean up nfs_update_request() Simplify the loop in nfs_update_request by moving into a separate function the code that attempts to update an existing cached NFS write. Signed-off-by: Trond Myklebust commit 396cee977f79590673ad51b04f1853e58bc30e7b Author: Chuck Lever Date: Thu Jun 12 12:37:49 2008 -0400 NFS: missing newline in NFS mount debugging message Clean up. Signed-off-by: Chuck Lever Signed-off-by: Trond Myklebust commit d33e4dfeab5eb0c3c1359cc1a399f2f8b49e18de Author: Chuck Lever Date: Thu Jun 12 12:37:41 2008 -0400 NFS: Treat "intr" and "nointr" options as deprecated Clean up: the "intr" and "nointr" mount options were recently retired. Document this in the NFS mount option parser. Signed-off-by: Chuck Lever Signed-off-by: Trond Myklebust commit ecbb3845dd678364148c1faad32adbc9dd833ef9 Author: Chuck Lever Date: Thu Jun 12 12:37:33 2008 -0400 NFS: Allow any value for the "retry" option The kernel NFS mount option parser should ignore the retry= mount option since it is meaningful only in user space. Today it expects a number rather than arbitrary text, so it ignores the option if the value is numeric, but chokes if there are other characters in the value. Change it to allow any text (except ",") as its value. Signed-off-by: Chuck Lever Signed-off-by: Trond Myklebust commit f41f741838480aeaa3a189cff6e210503cf9c42d Author: Trond Myklebust Date: Wed Jun 11 17:39:04 2008 -0400 NFS: Ensure we zap only the access and acl caches when setting new acls ...and ensure that we obey the NFS_INO_INVALID_ACL flag when retrieving the acls. Signed-off-by: Trond Myklebust commit 2e96d2867245668dbdb973729288cf69b9fafa66 Author: Trond Myklebust Date: Wed Jun 11 16:42:05 2008 -0400 NFS: Fix a warning in nfs4_async_handle_error We're not modifying the nfs_server when we call nfs_inc_server_stats and friends, so allow the compiler to pass 'const' pointers too. Signed-off-by: Trond Myklebust commit 34e8f92831cb5c40b3137e47a3daf4c09016ef02 Author: Chuck Lever Date: Thu Jun 12 12:32:25 2008 -0400 NFS: Move fs/nfs/iostat.h to include/linux The fs/nfs/iostat.h header has definitions that were designed to be exposed to user space. Move these definitions under include/linux so user space can use the definitions in applications that read /proc/self/mountstats. Also address a handful of coding style issues called out by checkpatch.pl in fs/nfs/iostat.h. Signed-off-by: Chuck Lever Signed-off-by: Trond Myklebust commit 46cb650c224bb8e64a749090105d74b9e8eda669 Author: Trond Myklebust Date: Wed Jun 11 16:32:46 2008 -0400 NFS: Remove the redundant file_open entry from struct nfs_rpc_ops All instances are set to nfs_open(), so we should just remove the redundant indirection. Ditto for the file_release op Signed-off-by: Trond Myklebust commit b22602a673b1743bba4b62bb404ffd3b269d2f09 Author: Chuck Lever Date: Fri Jun 6 13:22:25 2008 -0400 SUNRPC: Ensure all transports set rq_xtime consistently The RPC client uses the rq_xtime field in each RPC request to determine the round-trip time of the request. Currently, the rq_xtime field is initialized by each transport just before it starts enqueing a request to be sent. However, transports do not handle initializing this value consistently; sometimes they don't initialize it at all. To make the measurement of request round-trip time consistent for all RPC client transport capabilities, pull rq_xtime initialization into the RPC client's generic transport logic. Now all transports will get a standardized RTT measure automatically, from: xprt_transmit() to xprt_complete_rqst() This makes round-trip time calculation more accurate for the TCP transport. The socket ->sendmsg() method can return "-EAGAIN" if the socket's output buffer is full, so the TCP transport's ->send_request() method may call the ->sendmsg() method repeatedly until it gets all of the request's bytes queued in the socket's buffer. Currently, the TCP transport sets the rq_xtime field every time through that loop so the final value is the timestamp just before the *last* call to the underlying socket's ->sendmsg() method. After this patch, the rq_xtime field contains a timestamp that reflects the time just before the *first* call to ->sendmsg(). This is consequential under heavy workloads because large requests often take multiple ->sendmsg() calls to get all the bytes of a request queued. The TCP transport causes the request to sleep until the remote end of the socket has received enough bytes to clear space in the socket's local output buffer. This delay can be quite significant. The method introduced by this patch is a more accurate measure of RTT for stream transports, since the server can cause enough back pressure to delay (ie increase the latency of) requests from the client. Additionally, this patch corrects the behavior of the RDMA transport, which entirely neglected to initialize the rq_xtime field. RPC performance metrics for RDMA transports now display correct RPC request round trip times. Signed-off-by: Chuck Lever Acked-by: Tom Talpey Signed-off-by: Trond Myklebust commit 659bfcd6dd88919a5ad453f62afbeffcb3106847 Author: Trond Myklebust Date: Tue Jun 10 19:39:41 2008 -0400 NFS: Fix the ftruncate() credential problem ftruncate() access checking is supposed to be performed at open() time, just like reads and writes. Signed-off-by: Trond Myklebust commit a486aeda9b2b0d944aecce7871b3186379b898de Author: \\\"J. Bruce Fields\\\ Date: Mon Jun 9 16:51:35 2008 -0400 rpc: minor cleanup of scheduler callback code Try to make the comment here a little more clear and concise. Also, this macro definition seems unnecessary. Signed-off-by: J. Bruce Fields Signed-off-by: Trond Myklebust commit d25a03cf966f2cf9990dc0bf2a921a554919ea34 Author: \\\"J. Bruce Fields\\\ Date: Mon Jun 9 16:51:34 2008 -0400 rpc: remove some unused macros There used to be a print_hexl() function that used isprint(), now gone. I don't know why NFS_NGROUPS and CA_RUN_AS_MACHINE were here. I also don't know why another #define that's actually used was marked "unused". Signed-off-by: J. Bruce Fields Signed-off-by: Trond Myklebust commit 720b8f2d6f7de9e16f1217448cc7396e1604e175 Author: \\\"J. Bruce Fields\\\ Date: Mon Jun 9 16:51:33 2008 -0400 rpc: eliminate unused variable in auth_gss upcall code Also, a minor comment grammar fix in the same file. Signed-off-by: J. Bruce Fields Signed-off-by: Trond Myklebust commit b6b6152c46861dd914d0e6cea9c27df057d6e235 Author: Olga Kornievskaia Date: Mon Jun 9 16:51:31 2008 -0400 rpc: bring back cl_chatty The cl_chatty flag alows us to control whether a given rpc client leaves "server X not responding, timed out" messages in the syslog. Such messages make sense for ordinary nfs clients (where an unresponsive server means applications on the mountpoint are probably hanging), but not for the callback client (which can fail more commonly, with the only result just of disabling some optimizations). Previously cl_chatty was removed, do to lack of users; reinstate it, and use it for the nfsd's callback client. Signed-off-by: J. Bruce Fields Signed-off-by: Trond Myklebust commit 48b605f83c920d8daa50e43fc2c7f718e04c7bfa Author: Jeff Layton Date: Tue Jun 10 15:38:39 2008 -0400 NFS: implement option checking when remounting NFS filesystems (resend) When remounting an NFS or NFS4 filesystem, the new NFS options are not respected, yet the remount will still return success. This patch adds a remount_fs sb op for NFS that checks any new nfs mount options against the existing ones and fails the mount if any have changed. This is only implemented for string-based mount options since doing this with binary options isn't really feasible. This is essentially the same as the original patch I sent out, but adds a check to see if the addr= option has changed. Signed-off-by: Jeff Layton Signed-off-by: Trond Myklebust commit c2d946e55e1be20a7443918e3b7497b905e6b3f7 Author: Adrian Bunk Date: Tue May 20 01:08:00 2008 +0300 fs/nfs/nfsroot.c: remove CVS keyword This patch removes a CVS keyword that wasn't updated for a long time from a comment. Signed-off-by: Adrian Bunk Signed-off-by: Trond Myklebust commit cd983ef81b9d79573848dabf81277c7314220257 Author: Chuck Lever Date: Wed Jun 11 17:56:13 2008 -0400 SUNRPC: Remove obsolete messages during transport connect Recent changes to the RPC client's transport connect logic make connect status values ECONNREFUSED and ECONNRESET impossible. Clean up xprt_connect_status() to account for these changes. Signed-off-by: Chuck Lever Signed-off-by: Trond Myklebust commit 48186c7d5734a6b137f9186b37f6dc98097d0429 Author: Chuck Lever Date: Wed Jun 11 17:56:05 2008 -0400 NFS: Fix trace debugging nits in write.c Clean up: fix a few dprintk messages that still need to show the RPC task ID correctly, and be sure we use the preferred %lld or %llu instead of %Ld or %Lu. Signed-off-by: Chuck Lever Signed-off-by: Trond Myklebust commit 6da24bc9cfc645c619992e39aab09747164c9f14 Author: Chuck Lever Date: Wed Jun 11 17:55:58 2008 -0400 NFS: Use NFSDBG_FILE for all fops Clean up: some fops use NFSDBG_FILE, some use NFSDBG_VFS. Let's use NFSDBG_FILE for all fops, and consistently report file names instead of inode numbers. Signed-off-by: Chuck Lever Signed-off-by: Trond Myklebust commit b7eaefaa8722fd98e5c2632640d1abd2b0c83e84 Author: Chuck Lever Date: Wed Jun 11 17:55:50 2008 -0400 NFS: Add debugging facility for NFS aops Recent work in fs/nfs/file.c neglected to add appropriate trace debugging for the NFS client's address space operations. Signed-off-by: Chuck Lever Signed-off-by: Trond Myklebust commit cc0dd2d1052aede2946ad1338a8f6f5d5c604740 Author: Chuck Lever Date: Wed Jun 11 17:55:42 2008 -0400 NFS: Make nfs_open methods consistent Clean up: Report the same debugging info and count function calls the same for files and directories in nfs_opendir() and nfs_file_open(). Signed-off-by: Chuck Lever Signed-off-by: Trond Myklebust commit b84e06c58fdefdc42931f771dc295e63f4b27365 Author: Chuck Lever Date: Wed Jun 11 17:55:34 2008 -0400 NFS: Make nfs_llseek methods consistent Clean up: Report the same debugging info in nfs_llseek_dir() and nfs_llseek_file(). Signed-off-by: Chuck Lever Signed-off-by: Trond Myklebust commit 549177863bac22f23663ee9f70c4e3b9fb269f2c Author: Chuck Lever Date: Tue May 27 16:29:07 2008 -0400 NFS: Make nfs_fsync methods consistent Clean up: Report the same debugging info, count function calls the same, and use similar function naming in nfs_fsync_dir() and nfs_fsync(). Signed-off-by: Chuck Lever Signed-off-by: Trond Myklebust commit cb3997b5a0b21864368bd1bd1d0929f9304fb6d9 Author: Chuck Lever Date: Wed May 21 17:09:41 2008 -0400 SUNRPC: Display some debugging information as text rather than numbers In rpc_show_tasks(), display the program name, version number, procedure name and tk_action as human-readable variable-length text fields rather than columnar numbers. Doing the symbol lookup here helps in cases where we have actual debugging output from a kernel log, but don't have access to the kernel image or RPC module that generated the output. Sample output: -pid- flgs status -client- --rqstp- -timeout ---ops-- 5608 0001 -11 eeb42690 f6d93710 0 f8fa1764 nfsv3 WRITE a:call_transmit_status q:none 5609 0001 -11 eeb42690 f6d937e0 0 f8fa1764 nfsv3 WRITE a:call_status q:xprt_sending 5610 0001 -11 eeb42690 f6d93230 0 f8fa1764 nfsv3 WRITE a:call_status q:xprt_sending 5611 0001 -11 eeb42690 f6d93300 0 f8fa1764 nfsv3 WRITE a:call_status q:xprt_sending 5612 0001 -11 eeb42690 f6d93090 0 f8fa1764 nfsv3 WRITE a:call_status q:xprt_sending 5613 0001 -11 eeb42690 f6d933d0 0 f8fa1764 nfsv3 WRITE a:call_status q:xprt_sending 5614 0001 -11 eeb42690 f6d93cc0 0 f8fa1764 nfsv3 WRITE a:call_status q:xprt_sending 5615 0001 -11 eeb42690 f6d93a50 0 f8fa1764 nfsv3 WRITE a:call_status q:xprt_sending 5616 0001 -11 eeb42690 f6d93640 0 f8fa1764 nfsv3 WRITE a:call_status q:xprt_sending 5617 0001 -11 eeb42690 f6d93b20 0 f8fa1764 nfsv3 WRITE a:call_status q:xprt_sending 5618 0001 -11 eeb42690 f6d93160 0 f8fa1764 nfsv3 WRITE a:call_status q:xprt_sending Signed-off-by: Chuck Lever Signed-off-by: Trond Myklebust commit 38e886e0c18975543938519254fc9bf0829c75a3 Author: Chuck Lever Date: Wed May 21 17:09:33 2008 -0400 SUNRPC: Refactor rpc_show_tasks Clean up: move the logic that displays each task to its own function. This removes indentation and makes future changes easier. Signed-off-by: Chuck Lever Signed-off-by: Trond Myklebust commit 68a23ee94e3a06819f5a39d64f2e1f3131bab12d Author: Chuck Lever Date: Wed May 21 17:09:26 2008 -0400 SUNRPC: Don't display the rpc_show_tasks header if there are no tasks Clean up: don't display the rpc_show_tasks column header unless there is at least one task to display. As far as I can tell, it is safe to let the list_for_each_entry macro decide that each list is empty. scripts/checkpatch.pl also wants a KERN_FOO at the start of any newly added printk() calls, so this and subsequent patches will also add KERN_INFO. Signed-off-by: Chuck Lever Signed-off-by: Trond Myklebust commit b0e1c57ea00302c3ac541ffd37e7db07d13cd674 Author: Chuck Lever Date: Wed May 21 17:09:19 2008 -0400 SUNRPC: Rename "call_" functions that are no longer FSM states The RPC client uses a finite state machine to move RPC tasks through each step of an RPC request. Each state is contained in a function in net/sunrpc/clnt.c, and named call_foo. Some of the functions named call_foo have changed over the past few years and are no longer states in the FSM. These include: call_encode, call_header, and call_verify. As a clean up, rename the functions that have changed. Signed-off-by: Chuck Lever Signed-off-by: Trond Myklebust commit 3748f1e447ac1dbf45f33ee7491a008a8bb5cdf0 Author: Chuck Lever Date: Wed May 21 17:09:12 2008 -0400 SUNRPC: Add a function to display the name of an RPC procedure Improve debugging messages in call_start() and call_verify() by having them show the RPC procedure name instead of the procedure number. Signed-off-by: Chuck Lever Signed-off-by: Trond Myklebust commit 6fb1bc10303c0d88f635d014324432ab6ee49d1b Author: Chuck Lever Date: Wed May 21 17:09:04 2008 -0400 NFS: Update help text for CONFIG_NFS_FS Clean up: refresh the help text for Kconfig items related to the NFS client. Remove obsolete URLs, and make the language consistent among the options. Also move the ROOT_NFS config option next to the options related to the NFS client. Signed-off-by: Chuck Lever Signed-off-by: Trond Myklebust commit b5418383ef13f70528281546d02c15edc03d8567 Author: Trond Myklebust Date: Tue Jun 10 18:31:02 2008 -0400 NFS: do_setlk(): don't flush caches when we have a delegation Signed-off-by: Trond Myklebust commit 0f38b873aeaae698c3693748438547c8493165fb Author: Trond Myklebust Date: Tue Jun 10 18:31:01 2008 -0400 SUNRPC: Use GFP_NOFS when allocating credentials Since the credentials may be allocated during the call to rpc_new_task(), which again may be called by a memory allocator... Signed-off-by: Trond Myklebust commit 7e5f6146609eb9134fac7d1b6bfee43df1732188 Author: Trond Myklebust Date: Sun May 25 12:59:19 2008 -0400 NFS: Revert commit 44dd151d Revert commit 44dd151d "NFS: Don't mark a written page as uptodate until it is on disk". While it is true that the write may fail, that is always the case. There is no reason why we should treat data on pages that are not already marked as PG_uptodate as being special. The only thing we gain is a noticeable slowdown when re-reading these pages. Signed-off-by: Trond Myklebust commit efc91ed0191e3fc62bb1c556ac93fc4e661214d2 Author: Trond Myklebust Date: Tue Jun 10 18:31:00 2008 -0400 NFS: Optimise append writes with holes If a file is being extended, and we're creating a hole, we might as well declare the entire page to be up to date. This patch significantly improves the write performance for sparse files in the case where lseek(SEEK_END) is used to append several non-contiguous writes at intervals of < PAGE_SIZE. Signed-off-by: Trond Myklebust commit b390c2b55c830eb3b64633fa8d8b8837e073e458 Author: Trond Myklebust Date: Tue Jun 10 18:30:11 2008 -0400 SUNRPC: An ENOMEM error from call_encode is always fatal The special 'ENOMEM' case that was previously flagged as non-fatal is bogus: auth_gss always returns EAGAIN for non-fatal errors, and may in fact return ENOMEM in the special case where xdr_buf_read_netobj runs out of preallocated buffer space (invariably a _fatal_ error, since there is no provision for preallocating larger buffers). Signed-off-by: Trond Myklebust commit 8b39f2b41033754e7ba669503d27268beb1b524a Author: Trond Myklebust Date: Wed May 14 19:48:25 2008 -0700 SUNRPC: Ensure we exit early in case of an encode error All errors from call_encode(), with exception of EAGAIN are fatal, so we should immediately return instead of proceeding to xprt_transmit(). Signed-off-by: Trond Myklebust commit 2116271a347d1181b5497602c2bfada1de8fd53b Author: Trond Myklebust Date: Tue May 20 19:34:39 2008 -0400 NFS: Add correct bounds checking to NFSv2 locks NFSv2 file locking currently fails the Connectathon tests, because the calls to the VFS locking code do not return an EINVAL error if the struct file_lock overflows the 32-bit boundaries. The problem is due to the fact that we occasionally call helpers from fs/locks.c in order to avoid RPC calls to the server when we know that a local process holds the lock. These helpers are, of course, always 64-bit enabled, so EINVAL is not returned in cases when it would if the call had gone to the NLM code. For consistency, we therefore add support for a bounds-checking helper. Signed-off-by: Trond Myklebust commit f3d47a3a6a1484a93c8cfe1e8c8d4399c95199c7 Author: Trond Myklebust Date: Thu Jun 5 15:17:39 2008 -0400 NFS: Fix a preemption count leak in nfs_update_request The commit 2785259631697ebb0749a3782cca206e2e542939 (nfs: use GFP_NOFS preloads for radix-tree insertion) appears to have introduced a bug: We only want to call radix_tree_preload() once after creating a request. Calling it every time we loop after we created the request, will cause preemption count leaks. Signed-off-by: Trond Myklebust Cc: Nick Piggin commit 0b4aae7aad162ad175ba8a65708332f888066b26 Author: Trond Myklebust Date: Fri Jun 20 17:00:23 2008 -0400 NFS: Reduce the stack usage in NFSv3 create operations Signed-off-by: Trond Myklebust commit 57dc9a5747942f131a1a8b36d661fec6e6a5e9f6 Author: Trond Myklebust Date: Fri Jun 20 15:35:32 2008 -0400 NFS: Reduce the stack usage in NFSv4 create operations Signed-off-by: Trond Myklebust commit c356aa456e8677682aa3cdb4b81d08e814b1a379 Author: Grant Likely Date: Wed Jul 9 09:41:52 2008 -0600 powerpc/bootwrapper: Allow user to specify additional default targets It is inconvenient to add additional default targets to the bootwrapper Makefile for each new board supported which just needs a different dts file. This change allows the defconfig to specify additional build targets. Signed-off-by: Grant Likely Acked-by: Josh Boyer commit ad2fc2cd925300b8127cf682f5a1c7511ae9dd27 Author: Vitaly Mayatskikh Date: Wed Jul 2 15:53:13 2008 +0200 x86: fix copy_user on x86 Switch copy_user_generic_string(), copy_user_generic_unrolled() and __copy_user_nocache() from custom tail handlers to generic copy_user_tail_handle(). Signed-off-by: Vitaly Mayatskikh Acked-by: Linus Torvalds Signed-off-by: Ingo Molnar commit 1129585a08baf58582c0da91e572cb29e3179acf Author: Vitaly Mayatskikh Date: Wed Jul 2 15:48:21 2008 +0200 x86: introduce copy_user_handle_tail() routine Introduce generic C routine for handling necessary tail operations after protection fault in copy_*_user on x86. Signed-off-by: Vitaly Mayatskikh Acked-by: Linus Torvalds Signed-off-by: Ingo Molnar commit de989ef093623ab5259f885f30be699c431d4006 Merge: a737abd... 22cac16... Author: Ingo Molnar Date: Wed Jul 9 15:00:48 2008 +0200 Merge branch 'x86/unify-lib' into x86/core commit a737abd11ac4eb9f4226fa8c9f1d9b5be12a96c1 Author: Cyrill Gorcunov Date: Sat Jul 5 15:53:39 2008 +0400 x86: e820 memmap - add checking for NULL early param Signed-off-by: Cyrill Gorcunov Cc: Cyrill Gorcunov Cc: akpm@linux-foundation.org Cc: andi@firstfloor.org Signed-off-by: Ingo Molnar commit c22d4c1885130db9c07f6441ab461208a1ba16b2 Author: Yinghai Lu Date: Wed Jul 9 03:01:14 2008 -0700 x86: make e820_end return max ram type only for 32 bit to avoid warning from find_low_pfn_range for high pages size etc Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit 8dd779b19ce5972072ad2372a86c8acbae4da768 Author: Robert Richter Date: Wed Jul 2 22:50:29 2008 +0200 x86/pci: removing subsys_initcall ordering dependencies So far subsys_initcalls has been executed in this order depending on the object order in the Makefile: arch/x86/pci/visws.c:subsys_initcall(pcibios_init); arch/x86/pci/numa.c:subsys_initcall(pci_numa_init); arch/x86/pci/acpi.c:subsys_initcall(pci_acpi_init); arch/x86/pci/legacy.c:subsys_initcall(pci_legacy_init); arch/x86/pci/irq.c:subsys_initcall(pcibios_irq_init); arch/x86/pci/common.c:subsys_initcall(pcibios_init); This patch removes the ordering dependency. There is now only one subsys_initcall function that contains subsystem initialization code with a defined order. Signed-off-by: Robert Richter Acked-by: Jesse Barnes Signed-off-by: Ingo Molnar commit ae28d70529b874f657afd0f70ca148599345ba2a Author: Robert Richter Date: Wed Jul 2 22:50:28 2008 +0200 x86/pci: visws: renaming pcibios_init() Signed-off-by: Robert Richter Acked-by: Jesse Barnes Signed-off-by: Ingo Molnar commit f4d994b541198446fc3d5d4ec5de232e171bf6dd Author: Robert Richter Date: Wed Jul 2 22:50:27 2008 +0200 x86/pci: Makefile merge: coalescing 32 and 64 bit Signed-off-by: Robert Richter Acked-by: Jesse Barnes Signed-off-by: Ingo Molnar commit d199a0482791bdf2f052081aa212d8c83ccef88a Author: Robert Richter Date: Wed Jul 2 22:50:26 2008 +0200 x86/pci: merge: moving mp_bus_to_node.c to amd_bus.c Signed-off-by: Robert Richter Acked-by: Jesse Barnes Signed-off-by: Ingo Molnar commit 42a4b427a8d7bff95d9622ffa2365cb56da8e7d6 Author: Robert Richter Date: Wed Jul 2 22:50:25 2008 +0200 x86/pci: mp_bus_to_node merge: moving code in amd_bus.c Signed-off-by: Robert Richter Acked-by: Jesse Barnes Signed-off-by: Ingo Molnar commit 8eefc6640311bb56408fa0abe3f2930b3037f91a Author: Robert Richter Date: Wed Jul 2 22:50:24 2008 +0200 x86/pci: Makefile merge: creating pci-y for 64 bit Signed-off-by: Robert Richter Acked-by: Jesse Barnes Signed-off-by: Ingo Molnar commit 8043c7be4b8dabaaeed8344dd0a4cbaa9a94fb71 Author: Robert Richter Date: Wed Jul 2 22:50:23 2008 +0200 x86/pci: Makefile merge: changing 64bit ordering This should be safe since mmconfig*.o and init.o do not contain *initcalls with the same level as in other files. Signed-off-by: Robert Richter Acked-by: Jesse Barnes Signed-off-by: Ingo Molnar commit a5d4fb94f750e439a0722c0a76c9aade3a9199be Author: Robert Richter Date: Wed Jul 2 22:50:22 2008 +0200 x86/pci: Makefile merge: decoupling options for mp_bus_to_node.o Signed-off-by: Robert Richter Acked-by: Jesse Barnes Signed-off-by: Ingo Molnar commit 0b40e84ab750b4ba5fc8d6712c892502dc93b212 Author: Robert Richter Date: Wed Jul 2 22:50:21 2008 +0200 x86/pci: Makefile merge: whitespace changes only Signed-off-by: Robert Richter Acked-by: Jesse Barnes Signed-off-by: Ingo Molnar commit 7fa71c0e0e371b995fdf3a367542a014c1f37f29 Author: Robert Richter Date: Wed Jul 2 22:50:20 2008 +0200 x86/pci: Makefile merge: removing include dir flag Signed-off-by: Robert Richter Acked-by: Jesse Barnes Signed-off-by: Ingo Molnar commit 6d8566ac131f3dc3e976de824dcb04feaea4b14c Author: Robert Richter Date: Wed Jul 2 22:50:19 2008 +0200 x86/pci: Makefile merge: Removing Makefile_* No functional nor ordering changes here. Signed-off-by: Robert Richter Acked-by: Jesse Barnes Signed-off-by: Ingo Molnar commit d028203c0446c7f65ed2b22342a56f03c6c4a6c1 Merge: f57e916... 183fe06... Author: Ingo Molnar Date: Wed Jul 9 11:39:02 2008 +0200 Merge branch 'x86/core' into x86/unify-pci commit 183fe065652dbd64953afa9f389327e23e97967f Author: Ingo Molnar Date: Wed Jul 9 11:32:10 2008 +0200 x86: build fix for "x86: fix C1E && nx6325 stability problem" fix: arch/x86/kernel/acpi/boot.c: In function ‘dmi_ignore_irq0_timer_override’: arch/x86/kernel/acpi/boot.c:1443: error: implicit declaration of function ‘force_mask_ioapic_irq_2’ Signed-off-by: Ingo Molnar commit e2079c43861f71b2deb78ee20e247ad954fdd67e Author: Rafael J. Wysocki Date: Tue Jul 8 16:12:26 2008 +0200 x86: fix C1E && nx6325 stability problem The problems are that, with the ACPI vs timer overring issue _fixed_, after using the box for some time (between several seconds and 1 hour, at random) processes get very high CPU loads (once I've got X using 107% of the CPU, for example) and the system becomes unresponsive, as though there were interrupts lost or something similar. Andreas Herrman reproduced similar problems: > Ok, now I've reproduced the stability problem. > - Using tip/master, > - reverting e38502eb8aa82314d5ab0eba45f50e6790dadd88 and > - applying your patch from this posting > http://marc.info/?l=linux-kernel&m=121539354224562&w=4 > > Starting X, firefox, gimp, tuxpaint and doing some drawing in tuxpaint > results in a slow system. Drawing is almost not possible anymore -- > Selections of new colors, cursors etc. is performed with huge delay > if it's performed at all. > > BTW, the code sets up timer IRQ as Virtual Wire IRQ: > > Jul 8 14:57:58 kodscha IO-APIC (apicid-pin) 2-22, 2-23 not connected. > Jul 8 14:57:58 kodscha ..TIMER: vector=0x30 apic1=0 pin1=2 apic2=-1 pin2=-1 > Jul 8 14:57:58 kodscha ...trying to set up timer as Virtual Wire IRQ... works. > > and both INT0 and INT2 of IOAPIC are masked: > > Jul 8 14:57:58 kodscha NR Dst Mask Trig IRR Pol Stat Dmod Deli Vect: > Jul 8 14:57:58 kodscha 00 000 1 0 0 0 0 0 0 00 > Jul 8 14:57:58 kodscha 01 003 0 0 0 0 0 1 1 31 > Jul 8 14:57:58 kodscha 02 003 1 0 0 0 0 0 0 30 > > I've also seen strange CPU utilization -- with syslog-ng: > > top - 15:33:06 up 35 min, 4 users, load average: 1.70, 0.68, 0.37 > Tasks: 64 total, 4 running, 60 sleeping, 0 stopped, 0 zombie > Cpu0 : 0.0%us,100.0%sy, 0.0%ni, 0.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st > Cpu1 : 6.4%us, 87.2%sy, 0.0%ni, 5.8%id, 0.0%wa, 0.6%hi, 0.0%si, 0.0%st > Mem: 895384k total, 283568k used, 611816k free, 35492k buffers > Swap: 1959920k total, 0k used, 1959920k free, 163044k cached > > PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND > 4632 root 20 0 17216 800 580 S 104 0.1 0:34.22 syslog-ng > 28505 root 20 0 205m 11m 4024 S 6 1.3 0:21.16 X > 28518 root 20 0 56292 5652 4492 S 1 0.6 0:01.80 fluxbox > 1 root 20 0 3724 608 508 S 0 0.1 0:00.36 init > > So far I have no clue why C1E-idle in conjunction with virtual wire > mode causes this strange behaviour. > > ... and I start to think about the root cause of all this. > > I've performed similar tests under X with the IRQ0/INT0 configuration and > I did not see above symptoms. So lets fall back to the IRQ0/INT0 configuration on this box. This basically restores the dont-use-the-lapic-timer exception mechanism that was unconditional on this box prior commit 8750bf5 ("x86: add C1E aware idle function"). Signed-off-by: Ingo Molnar commit 8cbfd4f44d5c6cb1ba9e44f493c2f2a2c9b769d7 Author: FUJITA Tomonori Date: Wed Jul 9 16:29:41 2008 +0900 x86, iommu: replace CONFIG_IOMMU with CONFIG_GART_IOMMU in iommu.h Hmm, looks like it would be nice to have more cleanups of iommu.h and gart.h. Signed-off-by: FUJITA Tomonori Signed-off-by: Ingo Molnar commit c2e6d65bcea2672788f9bb58ce7606c41388387b Author: Yinghai Lu Date: Tue Jul 8 01:43:27 2008 -0700 x86: not overmap more than the end of RAM in init_memory_mapping - 64bit handle head and tail that are not aligned to big pages (2MB/1GB boundary). with this patch, on system that support gbpages, change: last_map_addr: 1080000000 end: 1078000000 to: last_map_addr: 1078000000 end: 1078000000 Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit 2dc807b37b7b8c7df445513ad2b415df4ebcaf6d Author: Yinghai Lu Date: Tue Jul 8 18:56:38 2008 -0700 x86: make max_pfn cover acpi table below 4g When system have 4g less ram installed, and acpi table sit near end of ram, make max_pfn cover them too, so 64bit kernel don't need to mess up fixmap. Signed-off-by: Yinghai Lu Cc: "Suresh Siddha" Signed-off-by: Ingo Molnar commit 49c980df552499e5e8595b52448f612fdab0484a Author: Yinghai Lu Date: Thu Jul 3 12:29:34 2008 -0700 x86: fix vmemmap printout check Signed-off-by: Yinghai Lu Cc: "Nick Piggin" Cc: "Mark McLoughlin" Cc: xen-devel Cc: "Eduardo Habkost" Cc: "Vegard Nossum" Cc: "Stephen Tweedie" Cc: "Jeremy Fitzhardinge" Signed-off-by: Ingo Molnar commit b50efd2a55fc1344654875369d458bb6838bd37a Author: Yinghai Lu Date: Tue Jul 8 01:41:05 2008 -0700 x86: introduce page_size_mask for 64bit prepare for overmapped patch also printout last_map_addr together with end Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit 22cac1670786108ccd4caa0656c39fa4ba69fa7d Author: Glauber Costa Date: Wed Jun 25 14:56:53 2008 -0300 x86: define architectural characteristics in uaccess.h. Remove them from the arch-specific file. Signed-off-by: Glauber Costa Signed-off-by: H. Peter Anvin Signed-off-by: Ingo Molnar commit 8bc7de0c5dc0a5d3bcdc04bac6de0c799f91c5e4 Author: Glauber Costa Date: Wed Jun 25 14:53:41 2008 -0300 x86: put movsl_mask into uaccess.h. x86_64 does not need it, but it won't have X86_INTEL_USERCOPY defined either. Signed-off-by: Glauber Costa Signed-off-by: H. Peter Anvin Signed-off-by: Ingo Molnar commit 8cb834e99f44bd56409b794504ae2b170675fc92 Author: Glauber Costa Date: Wed Jun 25 14:43:30 2008 -0300 x86: move __get_user and __put_user into uaccess.h. We also carry the unaligned version with us. Only x86_64 uses it, but there's no problem in defining it. Signed-off-by: Glauber Costa Signed-off-by: H. Peter Anvin Signed-off-by: Ingo Molnar commit e30a44fdbf11c7ca3a0096d71790f176a4a09e03 Author: Glauber Costa Date: Wed Jun 25 13:17:43 2008 -0300 x86: merge put_user. Move both versions, which are highly similar, to uaccess.h. Note that, for x86_64, X86_WP_WORKS_OK is always defined. Signed-off-by: Glauber Costa Signed-off-by: H. Peter Anvin Signed-off-by: Ingo Molnar commit ec840956d269e2beefe3a1c0fd7c1c70a199087f Author: Glauber Costa Date: Wed Jun 25 13:00:48 2008 -0300 x86: turn __put_user_check directly into put_user. We also check user pointer in x86_64 put_user, the way i386 does. In a separate patch for bisecting purposes. Signed-off-by: Glauber Costa Signed-off-by: H. Peter Anvin Signed-off-by: Ingo Molnar commit 64a978c1e3b2c0e2b663caf54719319919c5c17f Author: Glauber Costa Date: Wed Jun 25 12:59:37 2008 -0300 x86: be more explicit in __put_user_x. For both __put_user_x and __put_user_8 macros, pass the error variable explicitly. Signed-off-by: Glauber Costa Signed-off-by: H. Peter Anvin Signed-off-by: Ingo Molnar commit 3f168221167ca7a844fde3bf58e1c7ca0bf9741e Author: Glauber Costa Date: Wed Jun 25 12:48:47 2008 -0300 x86: merge __get_user_asm and its users. Move __get_user_asm and __get_user_size and __get_user_nocheck to uaccess.h. This requires us to define a macro at __get_user_size for the 64-bit access case. Signed-off-by: Glauber Costa Signed-off-by: H. Peter Anvin Signed-off-by: Ingo Molnar commit 6fd4725d75c5049641640ce23fa5896501dfbd42 Author: Glauber Costa Date: Wed Jun 25 11:57:33 2008 -0300 x86: don't always use EFAULT on __get_user_size. Let the user of the macro specify the desired return. Signed-off-by: Glauber Costa Signed-off-by: H. Peter Anvin Signed-off-by: Ingo Molnar commit dc70ddf4098de043ac52f623c7573a11f2ae3d09 Author: Glauber Costa Date: Wed Jun 25 11:48:29 2008 -0300 x86: merge __put_user_asm and its user. Move both __put_user_asm and __put_user_size to uaccess.h. i386 already had a special function for 64-bit access, so for x86_64, we just define a macro with the same name. Note that for X86_64, CONFIG_X86_WP_WORKS_OK will always be defined, so the #else part will never be even compiled in. Signed-off-by: Glauber Costa Signed-off-by: H. Peter Anvin Signed-off-by: Ingo Molnar commit d42e6af613375be7a9a431628ecd742e87230554 Author: Glauber Costa Date: Wed Jun 25 12:00:44 2008 -0300 x86: don't always use EFAULT on __put_user_size. Let the user of the macro specify the desired return. Signed-off-by: Glauber Costa Signed-off-by: H. Peter Anvin Signed-off-by: Ingo Molnar commit 293e6a2524ae775fef41d21d17af288d4b2ee91e Author: Glauber Costa Date: Wed Jun 25 11:40:42 2008 -0300 x86: mark x86_64 as having a working WP. Select X86_WP_WORKS_OK for x86_64 too. Signed-off-by: Glauber Costa Signed-off-by: H. Peter Anvin Signed-off-by: Ingo Molnar commit 5e322163b19735fbef3e294c297d38e0d2ba8f7e Author: Glauber Costa Date: Wed Jun 25 11:35:06 2008 -0300 x86: use k modifier for 4-byte access. Do it in a separate patch for bisectability. Goal is to have put_user_size integrated. Signed-off-by: Glauber Costa Signed-off-by: H. Peter Anvin Signed-off-by: Ingo Molnar commit 002ca1690c3d0a495e6aedd608281aeb01ce6385 Author: Glauber Costa Date: Wed Jun 25 11:08:51 2008 -0300 x86: move __addr_ok to uaccess.h. Take it out of uaccess_32.h. Since it seems that no users of the x86_64 exists, we simply pick the i386 version. Signed-off-by: Glauber Costa Signed-off-by: H. Peter Anvin Signed-off-by: Ingo Molnar commit 865e5b76505cdade261773bde32f785b3ce579f1 Author: Glauber Costa Date: Wed Jun 25 11:05:11 2008 -0300 x86: merge getuser. Merge versions of getuser from uaccess_32.h and uaccess_64.h into uaccess.h. There is a part which is 64-bit only (for now), and for that, we use a __get_user_8 macro. Signed-off-by: Glauber Costa Signed-off-by: H. Peter Anvin Signed-off-by: Ingo Molnar commit ca23386216b9d4fc3bb211101205077d2b2916ae Author: Glauber Costa Date: Fri Jun 13 14:39:25 2008 -0300 x86: merge common parts of uaccess. Common parts of uaccess_32.h and uaccess_64.h are put in uaccess.h. Bits in uaccess_32.h and uaccess_64.h that come to this file are equal except for comments and whitespaces differences. Signed-off-by: Glauber Costa Signed-off-by: H. Peter Anvin Signed-off-by: Ingo Molnar commit be9d06bfd48934fbd56ccb7476eabccfa31b4afe Author: Glauber Costa Date: Fri Jun 13 21:01:46 2008 -0300 x86: use something common for both architectures. Using explicit hexa (0xFFFFFFUL) introduces an unnecessary difference between i386 and x86_64 because of the size of their long. Use -1UL instead. Signed-off-by: Glauber Costa Signed-off-by: H. Peter Anvin Signed-off-by: Ingo Molnar commit 1dc186e82c1ab476ef83080adca43a70969b01cd Author: Glauber Costa Date: Mon Jun 30 17:37:08 2008 -0300 x86: use long instead of int. Do not refer to the processor word-size with int, as it won't work with x86_64. Use long instead. Signed-off-by: Glauber Costa Signed-off-by: H. Peter Anvin Signed-off-by: Ingo Molnar commit 8b0a8aaf05325a1a96f53b45708f77599da35161 Author: Glauber Costa Date: Mon Jun 30 17:34:39 2008 -0300 x86: introduce likely in macro. Put the likely hint in access_ok. Just for bisectability. Signed-off-by: Glauber Costa Signed-off-by: H. Peter Anvin Signed-off-by: Ingo Molnar commit c28b95d9bb7da0c3be22826c56a05899e21e5ece Author: Glauber Costa Date: Mon Jun 30 17:07:51 2008 -0300 x86: change asm constraint. Our integration efforts broke a build with this function being used with i386. Reason is "g" can put the operand in an imm32, which according to The Book (tm), is invalid as the second operand. This is actually a bug in x86_64 too, since the x86_64 instruction set reference does not list it as valid. We probably didn't trigger this before due to the ammount of registers available for 64-bit platforms. But that's just my guess. Signed-off-by: Glauber Costa Signed-off-by: H. Peter Anvin Signed-off-by: Ingo Molnar commit 53938a68a2f971058bc53aaa8c70f9f24f684cdc Author: Glauber Costa Date: Wed Jun 25 10:14:13 2008 -0300 x86: commonize __range_not_ok. For i386, __range_not_ok is a better name than __range_ok, since it returns 0 when it is in fact okay. Other than that, both versions does not need the word size specifiers, and we remove them. Signed-off-by: Glauber Costa Signed-off-by: H. Peter Anvin Signed-off-by: Ingo Molnar commit 5cbbc3b1eb37bdc72eefd2de03b39f5e784400c2 Author: Glauber Costa Date: Tue Jun 24 17:40:14 2008 -0300 x86: merge putuser asm functions. putuser_32.S and putuser_64.S are merged into putuser.S. Signed-off-by: Glauber Costa Signed-off-by: H. Peter Anvin Signed-off-by: Ingo Molnar commit 2528de431ddb200653d1dc6ca90074bad9520f09 Author: Glauber Costa Date: Tue Jun 24 17:36:31 2008 -0300 x86: use macros from asm.h. In putuser_32.S and putuser_64.S, replace things like .quad, .long, and explicit references to [r|e]ax for the apropriate macros in asm/asm.h. Signed-off-by: Glauber Costa Signed-off-by: H. Peter Anvin Signed-off-by: Ingo Molnar commit efea505d83873cfc8a7cdbb8a2a11d2c67467843 Author: Glauber Costa Date: Tue Jun 24 16:59:05 2008 -0300 x86: don't use word-size specifiers in putuser files. Remove them where unambiguous. Signed-off-by: Glauber Costa Signed-off-by: H. Peter Anvin Signed-off-by: Ingo Molnar commit 766ed4282114eab616741107745b0dd11075e496 Author: Glauber Costa Date: Tue Jun 24 16:56:30 2008 -0300 x86: replace function headers by macros. In putuser_64.S, do it the i386 way, and replace the code in beginning and end of functions with macros, since it's always the same thing. Save lines. Signed-off-by: Glauber Costa Signed-off-by: H. Peter Anvin Signed-off-by: Ingo Molnar commit 663aa96df32af9c4141ef3179282f95c7537643a Author: Glauber Costa Date: Tue Jun 24 16:51:59 2008 -0300 x86: change testing logic in putuser_64.S. Instead of operating over a register we need to put back into normal state afterwards (the memory position), just sub from rbx, which is trashed anyway. We can save a few instructions. Also, this is the i386 way. Signed-off-by: Glauber Costa Signed-off-by: H. Peter Anvin Signed-off-by: Ingo Molnar commit 0ada3164031162b4e1b7ff6b36ba8cc80ff7fe96 Author: Glauber Costa Date: Tue Jun 24 16:44:39 2008 -0300 x86: pass argument to putuser_64 functions in ax register. This is consistent with i386 usage. Signed-off-by: Glauber Costa Signed-off-by: H. Peter Anvin Signed-off-by: Ingo Molnar commit 770546b99fb99e71a3aa4181980d42664f9c18bd Author: Glauber Costa Date: Tue Jun 24 15:03:40 2008 -0300 x86: clobber rbx in putuser_64.S. Instead of clobbering r8, clobber rbx, which is the i386 way. Signed-off-by: Glauber Costa Signed-off-by: H. Peter Anvin Signed-off-by: Ingo Molnar commit 70706e432ee5618abf59381101d8dea7b8d97a7d Author: Glauber Costa Date: Tue Jun 24 15:02:31 2008 -0300 x86: user put_user_x instead of all variants. Follow the pattern, and define a single put_user_x, instead of defining macros for all available sizes. Exception is put_user_8, since the "A" constraint does not give us enough power to specify which register (a or d) to use in the 32-bit common case. Signed-off-by: Glauber Costa Signed-off-by: H. Peter Anvin Signed-off-by: Ingo Molnar commit 268cf048c890d10bd3a86bd87922ed8a722d502f Author: Glauber Costa Date: Tue Jun 24 12:40:55 2008 -0300 x86: don't save ebx in putuser_32.S. Clobber it in the inline asm macros, and let the compiler do this for us. Signed-off-by: Glauber Costa Signed-off-by: H. Peter Anvin Signed-off-by: Ingo Molnar commit 6c2d458680d49d939ffd4b4cdc84d9e004d65910 Author: Glauber Costa Date: Tue Jun 24 12:05:11 2008 -0300 x86: merge getuser asm functions. getuser_32.S and getuser_64.S are merged into getuser.S. Signed-off-by: Glauber Costa Signed-off-by: H. Peter Anvin Signed-off-by: Ingo Molnar commit 87e2f1e7f6ab66306320403d4502d7938d3c703e Author: Glauber Costa Date: Tue Jun 24 12:02:44 2008 -0300 x86: use _ASM_PTR instead of explicit word-size pointers. Switch .long and .quad with _ASM_PTR in getuser*.S. Signed-off-by: Glauber Costa Signed-off-by: H. Peter Anvin Signed-off-by: Ingo Molnar commit 40faf463e62de0b29722910eded7dd26cd8b684b Author: Glauber Costa Date: Tue Jun 24 11:37:57 2008 -0300 x86: introduce __ASM_REG macro. There are situations in which the architecture wants to use the register that represents its word-size, whatever it is. For those, introduce __ASM_REG in asm.h, along with the first users _ASM_AX and _ASM_DX. They have users waiting for it, namely the getuser functions. Signed-off-by: Glauber Costa Signed-off-by: H. Peter Anvin Signed-off-by: Ingo Molnar commit ef8c1a2d0e990d0f4f15e1d45eeb262755e3d4c3 Author: Glauber Costa Date: Tue Jun 24 11:21:53 2008 -0300 x86: don't use word-size specifiers on getuser_64. The instructions access registers, so the size is unambiguous. Signed-off-by: Glauber Costa Signed-off-by: H. Peter Anvin Signed-off-by: Ingo Molnar commit 26ccb8a7183eed424ff9c874c83af20dafe7cdef Author: Glauber Costa Date: Tue Jun 24 11:19:35 2008 -0300 x86: rename threadinfo to TI. This is for consistency with i386. Signed-off-by: Glauber Costa Signed-off-by: H. Peter Anvin Signed-off-by: Ingo Molnar commit 9262875395cf22b5a90dd8a640e1070cedf55d0e Author: Glauber Costa Date: Tue Jun 24 11:13:16 2008 -0300 x86: adapt x86_64 getuser functions. Instead of doing a sub after the addition, use the offset directly at the memory operand of the mov instructions. This is the way i386 do. Signed-off-by: Glauber Costa Signed-off-by: H. Peter Anvin Signed-off-by: Ingo Molnar commit 9aa038815b5756e20a00b8e1efd5740434b37aea Author: Glauber Costa Date: Fri Jun 13 22:41:51 2008 -0300 x86: don't use word-size specifiers. Since the instructions refer to registers, they'll be able to figure it out. Signed-off-by: Glauber Costa Signed-off-by: H. Peter Anvin Signed-off-by: Ingo Molnar commit edf10162b2c5ad78ada8e63e960f9d0949c6c219 Author: Glauber Costa Date: Fri Jun 13 16:35:52 2008 -0300 x86: don't clobber r8 nor use rcx. There's really no reason to clobber r8 or pass the address in rcx. We can safely use only two registers (which we already have to touch anyway) to do the job. Signed-off-by: Glauber Costa Signed-off-by: H. Peter Anvin Signed-off-by: Ingo Molnar commit f8dd0d3c62164160c59034a96eb17d69ac8a0328 Author: Ingo Molnar Date: Wed Jul 9 09:12:55 2008 +0200 x86: delay lib unification build fix fix: arch/x86/lib/delay.c:93:24: error: macro "use_tsc_delay" passed 1 arguments, but takes just 0 arch/x86/lib/delay.c:94: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token Signed-off-by: Ingo Molnar commit f0fbf0abc093ec8bf64506eee4ede9e5daf40ffd Author: Glauber Costa Date: Thu Jul 3 12:35:41 2008 -0300 x86: integrate delay functions. delay_32.c, delay_64.c are now equal, and are integrated into delay.c. Signed-off-by: Glauber Costa Signed-off-by: H. Peter Anvin Signed-off-by: Ingo Molnar commit 7e58818d32c18197602d1869b22cfda99efd05fe Author: Glauber Costa Date: Tue Jun 24 10:21:25 2008 -0300 x86: explicitly use edx in const delay function. For x86_64, we can't just use %0, as it would generate a mul against rdx, which is not really what we want (note the ">> 32" in x86_64 version). Using a u64 variable with a shift in i386 generates bad code, so the solution is to explicitly use %%edx in inline assembly for both. Signed-off-by: Glauber Costa Signed-off-by: H. Peter Anvin Signed-off-by: Ingo Molnar commit a76febe975997b933b7285b6e20bb0a21c09d453 Author: Glauber Costa Date: Tue Jun 24 09:52:36 2008 -0300 x86: use rdtscll in read_current_timer for i386. This way we achieve the same code for both arches. Signed-off-by: Glauber Costa Signed-off-by: H. Peter Anvin Signed-off-by: Ingo Molnar commit 0a4d8a472f645d99f86303db1462b64e371b090d Author: Glauber Costa Date: Tue Jun 24 09:34:08 2008 -0300 x86: provide delay loop for x86_64. This is for consistency with i386. We call use_tsc_delay() at tsc initialization for x86_64, so we'll be always using it. Signed-off-by: Glauber Costa Signed-off-by: H. Peter Anvin Signed-off-by: Ingo Molnar commit ff1b15b646177c6cc465ac2dd0be6ae16e965654 Author: Glauber Costa Date: Tue Jun 24 09:27:19 2008 -0300 x86: don't use size specifiers. Remove the "l" from inline asm at arch/x86/lib/delay_32.c. It is not needed. Signed-off-by: Glauber Costa Signed-off-by: H. Peter Anvin Signed-off-by: Ingo Molnar commit cde274c0c789404df8ece3f9e7d6506caf0127e2 Author: Mike Mason Date: Wed Jul 9 02:04:35 2008 +1000 powerpc/eeh: PERR/SERR bit settings during EEH device recovery The following patch restores the PERR and SERR bits in the PCI command register during an EEH device recovery. We have found at least one case (an Agilent test card) where the PERR/SERR bits are set to 1 by firmware at boot time, but are not restored to 1 during EEH recovery. The patch fixes the Agilent card problem. It has been tested on several other EEH-enabled cards with no regressions. Signed-off-by: Mike Mason Acked-by: Linas Vepstas Signed-off-by: Benjamin Herrenschmidt commit b887ec620a7575f54fa025d38fa1008dc8a3b12a Author: Michael Neuling Date: Tue Jul 8 18:53:03 2008 +1000 powerpc: remove unused variable in emulate_fp_pair regs is not used in emulate_fp_pair so remove it. Signed-off-by: Michael Neuling Signed-off-by: Benjamin Herrenschmidt commit c1cb299ead405f0ac065c4430729549b187e5b32 Author: Michael Neuling Date: Tue Jul 8 18:43:41 2008 +1000 powerpc: fix swapcontext backwards compat. with VSX ucontext changes When the ucontext changed to add the VSX context, this broke backwards compatibly on swapcontext. swapcontext only compares the ucontext size passed in from the user to the new kernel ucontext size. This adds a check against the old ucontext size (with VMX but without VSX). It also adds some sanity check for ucontexts without VSX, but where VSX is used according the MSR. Fixes for both 32 and 64bit processes on 64bit kernels Kudos to Paulus for noticing. Signed-off-by: Michael Neuling Signed-off-by: Benjamin Herrenschmidt commit 1b17adf19b4d66858f366acd82b4e81cba5edc93 Author: Paul Gortmaker Date: Tue Jul 8 08:42:09 2008 +1000 powerpc/ibmebus: more meaningful variable name Choose a more meaningful name for better System.map readability and autopsy value etc. Signed-off-by: Paul Gortmaker Signed-off-by: Benjamin Herrenschmidt commit 05781ccd74c63c6c8567f99101587d5c07c163e0 Author: Grant Erickson Date: Tue Jul 8 08:03:11 2008 +1000 ibm_newemac: Parameterize EMAC Multicast Match Handling Various instances of the EMAC core have varying: 1) number of address match slots, 2) width of the registers for handling address match slots, 3) number of registers for handling address match slots and 4) base offset for those registers. As the driver stands today, it assumes that all EMACs have 4 IAHT and GAHT 32-bit registers, starting at offset 0x30 from the register base, with only 16-bits of each used for a total of 64 match slots. The 405EX(r) and 460EX now use the EMAC4SYNC core rather than the EMAC4 core. This core has 8 IAHT and GAHT registers, starting at offset 0x80 from the register base, with ALL 32-bits of each used for a total of 256 match slots. This adds a new compatible device tree entry "emac4sync" and a new, related feature flag "EMAC_FTR_EMAC4SYNC" along with a series of macros and inlines which supply the appropriate parameterized value based on the presence or absence of the EMAC4SYNC feature. The code has further been reworked where appropriate to use those macros and inlines. In addition, the register size passed to ioremap is now taken from the device tree: c4 for EMAC4SYNC cores 74 for EMAC4 cores 70 for EMAC cores rather than sizeof (emac_regs). Finally, the device trees have been updated with the appropriate compatible entries and resource sizes. This has been tested on an AMCC Haleakala board such that: 1) inbound ICMP requests to 'haleakala.local' via MDNS from both Mac OS X 10.4.11 and Ubuntu 8.04 systems as well as 2) outbound ICMP requests from 'haleakala.local' to those same systems in the '.local' domain via MDNS now work. Signed-off-by: Grant Erickson Acked-by: Jeff Garzik Signed-off-by: Benjamin Herrenschmidt commit 801eb73f45371accc78ca9d6d22d647eeb722c11 Author: Dave Kleikamp Date: Tue Jul 8 00:28:55 2008 +1000 powerpc/mm: Don't clear _PAGE_COHERENT when _PAGE_SAO is set The current low level hash code on LPAR configurations clears _PAGE_COHERENT (M) when either _PAGE_GUARDED (G) or _PAGE_NO_CACHE (I) is set. This conflicts with _PAGE_SAO which has M, I and W bits sets at once (normally invalid combo) to indicate the new SAO attribute. This changes the code to allow that case. Signed-off-by: Dave Kleikamp Signed-off-by: Benjamin Herrenschmidt commit ef3d3246a0d06be622867d21af25f997aeeb105f Author: Dave Kleikamp Date: Tue Jul 8 00:28:54 2008 +1000 powerpc/mm: Add Strong Access Ordering support Allow an application to enable Strong Access Ordering on specific pages of memory on Power 7 hardware. Currently, power has a weaker memory model than x86. Implementing a stronger memory model allows an emulator to more efficiently translate x86 code into power code, resulting in faster code execution. On Power 7 hardware, storing 0b1110 in the WIMG bits of the hpte enables strong access ordering mode for the memory page. This patchset allows a user to specify which pages are thus enabled by passing a new protection bit through mmap() and mprotect(). I have defined PROT_SAO to be 0x10. Signed-off-by: Dave Kleikamp Signed-off-by: Benjamin Herrenschmidt commit 379070491e1e744a59e69e5bcf3765012d15ecb4 Author: Dave Kleikamp Date: Tue Jul 8 00:28:53 2008 +1000 powerpc/mm: Add SAO Feature bit to the cputable Add the CPU feature bit for the new Strong Access Ordering facility of Power7 Signed-off-by: Dave Kleikamp Signed-off-by: Joel Schopp Signed-off-by: Benjamin Herrenschmidt commit aba46c5027cb59d98052231b36efcbbde9c77a1d Author: Dave Kleikamp Date: Tue Jul 8 00:28:52 2008 +1000 powerpc/mm: Define flags for Strong Access Ordering This patch defines: - PROT_SAO, which is passed into mmap() and mprotect() in the prot field - VM_SAO in vma->vm_flags, and - _PAGE_SAO, the combination of WIMG bits in the pte that enables strong access ordering for the page. Signed-off-by: Dave Kleikamp Signed-off-by: Benjamin Herrenschmidt commit b845f313d78e4e259ec449909e3bbadf77b53a6d Author: Dave Kleikamp Date: Tue Jul 8 00:28:51 2008 +1000 mm: Allow architectures to define additional protection bits This patch allows architectures to define functions to deal with additional protections bits for mmap() and mprotect(). arch_calc_vm_prot_bits() maps additonal protection bits to vm_flags arch_vm_get_page_prot() maps additional vm_flags to the vma's vm_page_prot arch_validate_prot() checks for valid values of the protection bits Note: vm_get_page_prot() is now pretty ugly, but the generated code should be identical for architectures that don't define additional protection bits. Signed-off-by: Dave Kleikamp Acked-by: Andrew Morton Acked-by: Hugh Dickins Signed-off-by: Benjamin Herrenschmidt commit e5093ff05d36c64e8f36a9ddb26358256dc133ea Author: Srinivasa Ds Date: Tue Jul 8 00:22:27 2008 +1000 powerpc: Implement task_pt_regs() accessor The task_pt_regs() macro allows access to the pt_regs of a given task. This macro is not currently defined for the powerpc architecture, but we need it for some upcoming utrace additions. Signed-off-by: Srinivasa DS Signed-off-by: Benjamin Herrenschmidt commit 058c78f4ba89df7b2de82ac271452f09e2b8fa05 Author: Benjamin Herrenschmidt Date: Mon Jul 7 13:44:31 2008 +1000 powerpc: Use new printk extension %pS to print symbols on oops This changes the oops and backtrace code to use the new %pS printk extension to print out symbols rather than manually calling print_symbol. Signed-off-by: Benjamin Herrenschmidt commit 3a4c6f0b1540811110a59112b4c83f55c229728c Author: Mark Nelson Date: Sat Jul 5 05:05:45 2008 +1000 powerpc: move device_to_mask() to dma-mapping.h Move device_to_mask() to dma-mapping.h because we need to use it from outside dma_64.c in a later patch. Signed-off-by: Mark Nelson Signed-off-by: Arnd Bergmann Signed-off-by: Benjamin Herrenschmidt commit 7e5f8105030038de94b44a74cd7b64dd000830fc Author: Mark Nelson Date: Sat Jul 5 05:05:44 2008 +1000 powerpc/cell: cell_dma_dev_setup_iommu() return the iommu table Make cell_dma_dev_setup_iommu() return a pointer to the struct iommu_table (or NULL if no table can be found) rather than putting this pointer into dev->archdata.dma_data (let the caller do that), and rename this function to cell_get_iommu_table() to reflect this change. This will allow us to get the iommu table for a device that doesn't have the table in the archdata. Signed-off-by: Mark Nelson Signed-off-by: Arnd Bergmann Signed-off-by: Benjamin Herrenschmidt commit 3affedc4e1ce837033b6c5e9289d2ce2f5a62d31 Author: Mark Nelson Date: Sat Jul 5 05:05:42 2008 +1000 powerpc/dma: implement new dma_*map*_attrs() interfaces Update powerpc to use the new dma_*map*_attrs() interfaces. In doing so update struct dma_mapping_ops to accept a struct dma_attrs and propagate these changes through to all users of the code (generic IOMMU and the 64bit DMA code, and the iseries and ps3 platform code). The old dma_*map_*() interfaces are reimplemented as calls to the corresponding new interfaces. Signed-off-by: Mark Nelson Signed-off-by: Arnd Bergmann Acked-by: Geoff Levand Signed-off-by: Benjamin Herrenschmidt commit c8692362db3db3a6f644e05a477161d967430aac Author: Mark Nelson Date: Sat Jul 5 05:05:41 2008 +1000 powerpc/dma: Add struct iommu_table argument to iommu_map_sg() Make iommu_map_sg take a struct iommu_table. It did so before commit 740c3ce66700640a6e6136ff679b067e92125794 (iommu sg merging: ppc: make iommu respect the segment size limits). This stops the function looking in the archdata.dma_data for the iommu table because in the future it will be called with a device that has no table there. This also has the nice side effect of making iommu_map_sg() match the other map functions. Signed-off-by: Mark Nelson Signed-off-by: Arnd Bergmann Signed-off-by: Benjamin Herrenschmidt commit fabb657005edbbcb0d13ee49a40f1f4b042a1d19 Author: Maxim Shchetynin Date: Sat Jul 5 05:05:39 2008 +1000 powerpc/spufs: add atomic busy_spus counter to struct cbe_spu_info As nr_active counter includes also spus waiting for syscalls to return we need a seperate counter that only counts spus that are currently running on spu side. This counter shall be used by a cpufreq governor that targets a frequency dependent from the number of running spus. Signed-off-by: Christian Krafft Acked-by: Jeremy Kerr Signed-off-by: Benjamin Herrenschmidt commit 88b90c96b787ecb5c72384b6873468f814cce650 Author: Geoff Levand Date: Wed Jul 2 04:17:05 2008 +1000 powerpc/ps3: Quiet system bus match output Reduce the output verbosity of ps3_system_bus_match(). Signed-off-by: Geoff Levand Signed-off-by: Benjamin Herrenschmidt commit 26e9e57b106445bbd8c965985e4e8af5293ae005 Author: Ingo Molnar Date: Wed Jul 9 08:02:54 2008 +0200 x86, uv: build fix #2 for "x86, uv: update x86 mmr list for SGI uv" fix: In file included from arch/x86/kernel/tlb_uv.c:14: include/asm/uv/uv_mmrs.h:986: error: redefinition of ‘union uvh_rh_gam_cfg_overlay_config_mmr_u’ include/asm/uv/uv_mmrs.h:988: error: redefinition of ‘struct uvh_rh_gam_cfg_overlay_config_mmr_s’ include/asm/uv/uv_mmrs.h:1064: error: redefinition of ‘union uvh_rh_gam_mmioh_overlay_config_mmr_u’ include/asm/uv/uv_mmrs.h:1066: error: redefinition of ‘struct uvh_rh_gam_mmioh_overlay_config_mmr_s’ caused by another duplicate section (cut & paste error) in commit 5d061e397db1 "x86, uv: update x86 mmr list for SGI uv". Signed-off-by: Ingo Molnar commit e407dffd17dcb592e1605a2b3dbbb81f9f3cbc21 Author: Ingo Molnar Date: Wed Jul 9 08:00:15 2008 +0200 x86, uv: build fix for "x86, uv: update x86 mmr list for SGI uv" fix: In file included from arch/x86/kernel/genx2apic_uv_x.c:25: include/asm/uv/uv_mmrs.h:986: error: redefinition of ‘union uvh_rh_gam_cfg_overlay_config_mmr_u’ include/asm/uv/uv_mmrs.h:988: error: redefinition of ‘struct uvh_rh_gam_cfg_overlay_config_mmr_s’ include/asm/uv/uv_mmrs.h:1064: error: redefinition of ‘union uvh_rh_gam_mmioh_overlay_config_mmr_u’ include/asm/uv/uv_mmrs.h:1066: error: redefinition of ‘struct uvh_rh_gam_mmioh_overlay_config_mmr_s’ caused by duplicate section (cut & paste error) in commit 5d061e397db1 "x86, uv: update x86 mmr list for SGI uv". Signed-off-by: Ingo Molnar commit 5ed4273af8469ca4723d4bf1bcd3abe2cc792e9f Author: Andrew Morton Date: Fri Jul 4 12:36:21 2008 +0200 arch/x86/mm/pgtable_32.c: remove unused variable `fixmaps' arch/x86/mm/pgtable_32.c:144: warning: 'fixmaps' defined but not used Signed-off-by: Andrew Morton Signed-off-by: Ingo Molnar commit 6f585e01614f38195599c1bc5379d3c9dae6be47 Author: Andrew Morton Date: Fri Jul 4 12:36:21 2008 +0200 arch/x86/kernel/smpboot.c: fix warning arch/x86/kernel/smpboot.c: In function 'do_boot_cpu': arch/x86/kernel/smpboot.c:943: warning: label 'restore_state' defined but not used Signed-off-by: Andrew Morton Signed-off-by: Ingo Molnar commit 7b4fd4bb2e7fad2c41afab4683a44ab77f6f35d0 Author: Alexander van Heukelum Date: Wed Jul 2 01:33:14 2008 +0200 x86: traps_xx: various small changes - order of local variable declarations - minor code changes Signed-off-by: Alexander van Heukelum Acked-by: Cyrill Gorcunov Signed-off-by: Ingo Molnar commit abd348072798aa88d48fe9f182ac3440fcb7ae47 Author: Alexander van Heukelum Date: Wed Jul 2 18:39:01 2008 +0200 x86: traps_xx: modify default_do_nmi - local caching of smp_processor_id() in default_do_nmi() - v2: do not split default_do_nmi over two lines On Wed, Jul 02, 2008 at 08:12:20PM +0400, Cyrill Gorcunov wrote: > | -static notrace __kprobes void default_do_nmi(struct pt_regs *regs) > | +static notrace __kprobes void > | +default_do_nmi(struct pt_regs *regs) > | [ ... ] > | -asmlinkage notrace __kprobes void default_do_nmi(struct pt_regs *regs) > | +asmlinkage notrace __kprobes void > | +default_do_nmi(struct pt_regs *regs) > > Hi Alexander, good done, thanks! But why did you split default_do_nmi > definition by two lines? I think it would be better to keep them as it > was before, ie by a single line > > static notrace __kprobes void default_do_nmi(struct pt_regs *regs) Thanks! Here is the replacement patch with default_do_nmi left on a single line. Signed-off-by: Alexander van Heukelum Acked-by: Cyrill Gorcunov Signed-off-by: Ingo Molnar commit 13485ab55bc77f02024e80bcca0374950b0becb3 Author: Alexander van Heukelum Date: Wed Jul 2 01:32:04 2008 +0200 x86: traps_xx: restructure do_general_protection() - if (cond) block -> if (!cond) goto end_of_block - local caching of current Signed-off-by: Alexander van Heukelum Acked-by: Cyrill Gorcunov Signed-off-by: Ingo Molnar commit a7bbb0ce1d1f956c8491b925c74767adf654f373 Author: Alexander van Heukelum Date: Wed Jul 2 01:31:34 2008 +0200 x86: traps_xx: modify do_trap if (cond) block -> if (!cond) goto end_of_block Signed-off-by: Alexander van Heukelum Acked-by: Cyrill Gorcunov Signed-off-by: Ingo Molnar commit e423f49fc8ccd761618748d7139638d8ddc1d16f Author: Alexander van Heukelum Date: Wed Jul 2 01:31:03 2008 +0200 x86: traps_xx: modify __die if (cond) block -> if (!cond) goto end_of_block Signed-off-by: Alexander van Heukelum Acked-by: Cyrill Gorcunov Signed-off-by: Ingo Molnar commit badc76527f7e29302f0bde3d366c59101fb2ab87 Author: Alexander van Heukelum Date: Wed Jul 2 01:30:30 2008 +0200 x86: traps_xx: shuffle headers and globals Reorder headers and collect globals in traps_32.c and traps_64.c Code size and data size are unaffected by the changes. Code itself is changed due to different ordering of data and bss. The bss segment changed size due to a change in the packing of the variables. Signed-off-by: Alexander van Heukelum Acked-by: Cyrill Gorcunov Signed-off-by: Ingo Molnar commit a8c1be9d2e78d8608892c86791837acf12da4bf6 Author: Alexander van Heukelum Date: Wed Jul 2 01:29:44 2008 +0200 x86: initial changes to unify traps_32.c and traps_64.c This patch does not change the generated object files. Signed-off-by: Alexander van Heukelum Signed-off-by: Ingo Molnar commit e93ef949fd9a3f237aedfb8e64414b28980530b8 Author: Alok Kataria Date: Tue Jul 1 11:43:36 2008 -0700 x86: rename paravirtualized TSC functions Rename the paravirtualized calculate_cpu_khz to calibrate_tsc. In all cases, we actually calibrate_tsc and use that as the cpu_khz value. Signed-off-by: Alok N Kataria Signed-off-by: Dan Hecht Cc: Dan Hecht Signed-off-by: Ingo Molnar commit 8fbbc4b45ce3e4c0eeb15004c79c72b6896a79c2 Author: Alok Kataria Date: Tue Jul 1 11:43:34 2008 -0700 x86: merge tsc_init and clocksource code Unify the clocksource code. Unify the tsc_init code. Signed-off-by: Alok N Kataria Signed-off-by: Dan Hecht Cc: Dan Hecht Signed-off-by: Ingo Molnar commit 2dbe06faf37b39f9ecffc054dd173b2a1dc2adcd Author: Alok Kataria Date: Tue Jul 1 11:43:31 2008 -0700 x86: merge the TSC cpu-freq code Unify the TSC cpufreq code. Signed-off-by: Alok N Kataria Signed-off-by: Dan Hecht Cc: Dan Hecht Signed-off-by: Ingo Molnar commit bfc0f5947afa5e3a13e55867f4478c8a92c11dca Author: Alok Kataria Date: Tue Jul 1 11:43:24 2008 -0700 x86: merge tsc calibration Merge the tsc calibration code for the 32bit and 64bit kernel. The paravirtualized calculate_cpu_khz for 64bit now points to the correct tsc_calibrate code as in 32bit. Original native_calculate_cpu_khz for 64 bit is now called as calibrate_cpu. Also moved the recalibrate_cpu_khz function in the common file. Note that this function is called only from powernow K7 cpu freq driver. Signed-off-by: Alok N Kataria Signed-off-by: Dan Hecht Cc: Dan Hecht Signed-off-by: Ingo Molnar commit 0ef95533326a7b37d16025af9edc0c18e644b346 Author: Alok Kataria Date: Tue Jul 1 11:43:18 2008 -0700 x86: merge sched_clock handling Move the basic global variable definitions and sched_clock handling in the common "tsc.c" file. - Unify notsc kernel command line handling for 32 bit and 64bit. - Functional changes for 64bit. - "tsc_disabled" is updated if "notsc" is passed at boottime. - Fallback to jiffies for sched_clock, incase notsc is passed on commandline. Signed-off-by: Alok N Kataria Signed-off-by: Dan Hecht Cc: Dan Hecht Signed-off-by: Ingo Molnar commit 746f2eb790e75676ddc3b816ba18bac4179cc744 Author: Cyrill Gorcunov Date: Tue Jul 1 21:43:52 2008 +0400 x86: apic_32.c - add lapic resource Add lapic resource into kernel resource map and mark it as busy Signed-off-by: Cyrill Gorcunov Cc: "Maciej W. Rozycki" Signed-off-by: Ingo Molnar CC: Maciej W. Rozycki commit 5d061e397db1ee7a62783a881833f3f9b89f6dc8 Author: Dimitri Sivanich Date: Wed Jul 2 15:39:35 2008 -0500 x86, uv: update x86 mmr list for SGI uv This patch updates the X86 mmr list for SGI uv. Signed-off-by: Dimitri Sivanich Cc: Jack Steiner Cc: Russ Anderson Signed-off-by: Ingo Molnar commit 83f5d894ca5280bfcd904dfeb1347c2da2b19aac Author: Jack Steiner Date: Tue Jul 1 14:45:38 2008 -0500 x86: map UV chipset space - UV support Create page table entries to map the SGI UV chipset GRU. local MMR & global MMR ranges. Signed-off-by: Jack Steiner Cc: linux-mm@kvack.org Signed-off-by: Ingo Molnar commit 3a9e189d69479736a0d0901c87ad08c9e328b389 Author: Jack Steiner Date: Tue Jul 1 14:45:32 2008 -0500 x86: map UV chipset space - pagetable Add boot-time function for creating additional 2MB page table entries for mapping chipset specific cached/uncached ranges. Signed-off-by: Jack Steiner Cc: linux-mm@kvack.org Signed-off-by: Ingo Molnar commit fc9036ea1a4b14229788e6df3936b451a6abac98 Author: Yinghai Lu Date: Thu Jul 3 11:39:00 2008 -0700 x86: let early_reserve_e820 update e820_saved too so when it is called after early_param, e820_saved get updated too. esp for mpc update. Signed-off-by: Yinghai Lu Cc: Bernhard Walle Signed-off-by: Ingo Molnar commit a0a0becd2da0ba0d7f0204a61d1905926cdb163d Author: Yinghai Lu Date: Thu Jul 3 11:37:13 2008 -0700 x86: make e820_saved have update from setup_data seperate reserve_setup_data into e820_reserved_setup_data, and reserve_early_setup_data. So could use e820_reserved_setup_data to backup e820 with setup_data. Signed-off-by: Yinghai Lu Cc: Bernhard Walle Cc: Ying Huang Signed-off-by: Ingo Molnar commit 0be15526beb4c228e0477221c62ec8ab0fc7440f Author: Yinghai Lu Date: Thu Jul 3 11:35:37 2008 -0700 x86: move saving e820_saved to setup_memory_map so other path that will override memory_setup or machine_specific_memory_setup could have e820_saved too. Signed-off-by: Yinghai Lu Cc: Jeremy Fitzhardinge Cc: Bernhard Walle Signed-off-by: Ingo Molnar commit 2c3e47871d18f93b8bc2892fb41432111201356d Author: Jeremy Kerr Date: Thu Jul 3 11:42:20 2008 +1000 powerpc/spufs: only add ".ctx" file with "debug" mount option Currently, the .ctx debug file in spu context directories is always present. We'd prefer to prevent users from relying on this file, so add a "debug" mount option to spufs. The .ctx file will only be added to the context directories when this option is present. Signed-off-by: Jeremy Kerr commit 6f7dde812defe5bc49cf463ac1579ffeda5cbfd4 Author: Jeremy Kerr Date: Mon Jun 30 14:38:37 2008 +1000 powerpc/spufs: add sizes for context files Populate the size member of a few context files. Leave out files that have different semantics with read vs mmap, or contain a variable-length hex string. Signed-off-by: Jeremy Kerr commit 23d893f51cde7013e4c29094da2237cce4f20035 Author: Jeremy Kerr Date: Mon Jun 30 12:17:28 2008 +1000 powerpc/spufs: allow spufs files to specify sizes Currently, spufs never specifies the i_size for the files in context directories, so stat() always reports 0-byte files. This change adds allows the spufs_dir_(nosched_)contents arrays to specify a file size. This allows stat() to report correct file sizes, and makes SEEK_END work. Signed-off-by: Jeremy Kerr commit 87ff6090bfe416c71730654ab53cd4ecffdd675e Author: Jeremy Kerr Date: Tue Jul 1 10:22:50 2008 +1000 powerpc/spufs: avoid magic numbers for mapping sizes Use a set of #defines for the size of context mappings, instead of magic numbers. Signed-off-by: Jeremy Kerr commit 2442a8ba5abe2c27c572bc522da1c33df98c6ec7 Author: Luke Browning Date: Fri Jun 6 11:26:54 2008 +0800 powerpc/spufs: don't extend time time slice if context is not in spu_run An spu context shouldn't get an extra tick if the time slice code couldn't find something else to run. This means contexts that are not within spu_run (ie, SPU_SCHED_SPU_RUN is cleared) will not receive extra ticks while we have no other contexts waiting. Signed-off-by: Luke Browning Signed-off-by: Jeremy Kerr commit 46deed69b34d0aa6065e92ad79685e103d4ccd35 Author: Luke Browning Date: Mon Jun 16 11:36:43 2008 +1000 powerpc/spufs: provide context debug file Add a ctxt file to spufs that shows spu context information that is used in scheduling. This info can be used for debugging spufs scheduler issues, and to isolate between application and spufs problems as it shows a lot of state such as priorities and dispatch counts. This file contains internal spufs state and is subject to change at any time, and therefore no applications should depend on it. The file is intended for the use of spufs kernel developers. Signed-off-by: Luke Browning Signed-off-by: Jeremy Kerr commit f7a1b86095bf7fd1578ef54067545b9cb7084713 Author: David Howells Date: Tue Jul 8 15:00:54 2008 +0100 Fix acpi_pm_device_sleep_wake() by providing a stub for CONFIG_PM_SLEEP=n So that one of the several config option permutations will build again. Tested-by: Alexander Beregalov Signed-off-by: David Howells Signed-off-by: Jesse Barnes commit 5dfcf14d5b28174f94cbe9b4fb35d415db61c64a Author: Bernhard Walle Date: Fri Jun 27 13:12:55 2008 +0200 x86: use FIRMWARE_MEMMAP on x86/E820 This patch uses the /sys/firmware/memmap interface provided in the last patch on the x86 architecture when E820 is used. The patch copies the E820 memory map very early, and registers the E820 map afterwards via firmware_map_add_early(). Signed-off-by: Bernhard Walle Acked-by: Greg KH Acked-by: Vivek Goyal Cc: kexec@lists.infradead.org Cc: yhlu.kernel@gmail.com Signed-off-by: Ingo Molnar commit 69ac9cd629ca96e59f34eb4ccd12d00b2c8276a7 Author: Bernhard Walle Date: Fri Jun 27 13:12:54 2008 +0200 sysfs: add /sys/firmware/memmap This patch adds /sys/firmware/memmap interface that represents the BIOS (or Firmware) provided memory map. The tree looks like: /sys/firmware/memmap/0/start (hex number) end (hex number) type (string) ... /1/start end type With the following shell snippet one can print the memory map in the same form the kernel prints itself when booting on x86 (the E820 map). --------- 8< -------------------------- #!/bin/sh cd /sys/firmware/memmap for dir in * ; do start=$(cat $dir/start) end=$(cat $dir/end) type=$(cat $dir/type) printf "%016x-%016x (%s)\n" $start $[ $end +1] "$type" done --------- >8 -------------------------- That patch only provides the needed interface: 1. The sysfs interface. 2. The structure and enumeration definition. 3. The function firmware_map_add() and firmware_map_add_early() that should be called from architecture code (E820/EFI, for example) to add the contents to the interface. If the kernel is compiled without CONFIG_FIRMWARE_MEMMAP, the interface does nothing without cluttering the architecture-specific code with #ifdef's. The purpose of the new interface is kexec: While /proc/iomem represents the *used* memory map (e.g. modified via kernel parameters like 'memmap' and 'mem'), the /sys/firmware/memmap tree represents the unmodified memory map provided via the firmware. So kexec can: - use the original memory map for rebooting, - use the /proc/iomem for setting up the ELF core headers for kdump case that should only represent the memory of the system. The patch has been tested on i386 and x86_64. Signed-off-by: Bernhard Walle Acked-by: Greg KH Acked-by: Vivek Goyal Cc: kexec@lists.infradead.org Cc: yhlu.kernel@gmail.com Signed-off-by: Ingo Molnar commit 6247943d8ab699b57653afd453a4940cca70ef8a Author: Yinghai Lu Date: Sun Jul 6 11:42:11 2008 -0700 x86: remove acpi_srat config v2 use ACPI_NUMA directly and move srat_32.c to mm/ Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit 698839fe04ae11f228074ad45614343c3921a6c6 Author: Yinghai Lu Date: Sun Jul 6 11:42:11 2008 -0700 x86: remove have_arch_parse_srat -v2 we already have the same srat handling interface for 32bit. Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit a05fe0389b72f43b9e29d6fbfc5885084be2f96f Author: Stephen Rothwell Date: Tue Jul 8 22:15:40 2008 +1000 stacktrace: fix build failure on sparc64 Today's linux-next build (spac64 allmodconfig) failed like this: arch/sparc64/kernel/stacktrace.c:50: warning: type defaults to `int' in declaration of `EXPORT_SYMBOL_GPL' arch/sparc64/kernel/stacktrace.c:50: warning: parameter names (without types) in function declaration arch/sparc64/kernel/stacktrace.c:50: warning: data definition has no type or storage class Signed-off-by: Stephen Rothwell Cc: "David S. Miller" Signed-off-by: Ingo Molnar commit a29d1cfe9e9337aedeed505afddc8465ac709b87 Author: Ingo Molnar Date: Mon Jun 2 13:19:08 2008 +0200 printk: export console_drivers this symbol is needed by drivers/video/xen-fbfront.ko. [ cherry-picked from tip/core/printk ] Signed-off-by: Ingo Molnar commit 5a654ba7a88d90483d0f0586297ea9075d755fc8 Author: Jeremy Fitzhardinge Date: Tue Jul 1 16:46:37 2008 -0700 x86/cpa: use an undefined PTE bit for testing CPA Rather than using _PAGE_GLOBAL - which not all CPUs support - to test CPA, use one of the reserved-for-software-use PTE flags instead. This allows CPA testing to work on CPUs which don't support PGD. Signed-off-by: Jeremy Fitzhardinge Cc: Stephen Tweedie Cc: Eduardo Habkost Cc: Mark McLoughlin Signed-off-by: Ingo Molnar commit ef5e94af16c0c82452e1ea5d387e1203dd2198d6 Author: Jeremy Fitzhardinge Date: Tue Jul 1 16:46:36 2008 -0700 x86_32: remove __PAGE_KERNEL(_EXEC) From: Jeremy Fitzhardinge Older x86-32 processors do not support global mappings (PGD), so must only use it if the processor supports it. The _PAGE_KERNEL* flags always have _PAGE_KERNEL set, since logically we always want it set. This is OK even on processors which do not support PGD, since all _PAGE flags are masked with __supported_pte_mask before being turned into a real in-pagetable pte. On 32-bit systems, __supported_pte_mask is initialized to not contain _PAGE_GLOBAL, and it is then added if the CPU is found to support it. The x86-32 code used to use __PAGE_KERNEL/__PAGE_KERNEL_EXEC for this purpose, but they're now redundant and can be removed. Signed-off-by: Jeremy Fitzhardinge Cc: Stephen Tweedie Cc: Eduardo Habkost Cc: Mark McLoughlin Signed-off-by: Ingo Molnar commit 8490638cf0fb3975f7636c5268f27d5daf4eaaa5 Author: Jeremy Fitzhardinge Date: Tue Jul 1 16:46:35 2008 -0700 x86: always set _PAGE_GLOBAL in _PAGE_KERNEL* flags Consistently set _PAGE_GLOBAL in _PAGE_KERNEL flags. This makes 32- and 64-bit code consistent, and removes some special cases where __PAGE_KERNEL* did not have _PAGE_GLOBAL set, causing confusion as a result of the inconsistencies. This patch only affects x86-64, which generally always supports PGD. The x86-32 patch is next. Signed-off-by: Jeremy Fitzhardinge Cc: Stephen Tweedie Cc: Eduardo Habkost Cc: Mark McLoughlin Signed-off-by: Ingo Molnar commit 574977a2edde0148ea365008dceb0c2594d10b11 Author: Jeremy Fitzhardinge Date: Tue Jul 1 16:46:33 2008 -0700 x86_64/setup: unconditionally populate the pgd When allocating a new pud, unconditionally populate the pgd (why did we bother to create a new pud if we weren't going to populate it?). This will only happen if the pgd slot was empty, since any existing pud will be reused. Signed-off-by: Jeremy Fitzhardinge Cc: Stephen Tweedie Cc: Eduardo Habkost Cc: Mark McLoughlin Signed-off-by: Ingo Molnar commit aea5f9f89bae5d5f9eb3fe3cddedbbfb82e6e44f Author: Ingo Molnar Date: Fri Jul 4 12:16:55 2008 +0200 x86: fix "x86: let setup_arch call init_apic_mappings for 32bit" add back this line lost from trap_init(): set_trap_gate(0, ÷_error); Signed-off-by: Ingo Molnar commit 4a7017370aa0a94a00ae5b5705e9169cdcae5fb8 Author: Ingo Molnar Date: Thu Jul 3 15:57:47 2008 +0200 x86: move prefill_possible_map calling early, fix fix: arch/x86/kernel/built-in.o: In function `setup_arch': : undefined reference to `prefill_possible_map' Signed-off-by: Ingo Molnar commit 329513a35d1a2b6b28d54f5c2c0dde4face8200b Author: Yinghai Lu Date: Wed Jul 2 18:54:40 2008 -0700 x86: move prefill_possible_map calling early call it right after we are done with MADT/mptable handling, instead of doing that in setup_per_cpu_areas() later on... this way for_possible_cpu() can be used early. Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit 5f4765f96eebee6a0adc4009758b597ba48a0a3a Author: Yinghai Lu Date: Wed Jul 2 18:53:44 2008 -0700 x86: move init_cpu_to_node after get_smp_config when acpi=off, cpu_to_apicid is ready after get_smp_config so need to move init_cpu_to_node after it. otherwise, we will get wrong cpu->node mapping, and it will rely on amd_detect_cmp() to correct it - but that is too late as setup_per_cpu_data is already called before that so we will get per_cpu_data on the wrong node. Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit cb95a13a8ace8612ecab042a838e5aab2ec14ef0 Author: Yinghai Lu Date: Wed Jul 2 00:31:02 2008 -0700 x86: merge zones_sizes_init for numa and non numa on 32-bit move out e820_register_active_regions from non numa zones_sizes_init() and remove numa version zones_sizes_init(). and let 32 bit call remove_all_active_ranges() in setup_arch() directly like 64-bit Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit d9a81b4411d53196c4535c3a1258cb03d945c718 Author: Yinghai Lu Date: Tue Jul 1 20:04:10 2008 -0700 x86: do not printout if we do not find setup_data Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit 4fcc545a7479135332f511a54611820c9f4208a0 Author: Yinghai Lu Date: Tue Jul 1 20:03:11 2008 -0700 x86: make early_res_to_bootmem print out less 80 width chars Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit dc8e8120ad291074a5fb93cfb0418466c62f6019 Author: Yinghai Lu Date: Tue Jul 1 20:02:16 2008 -0700 x86: change copy_e820_map to append_e820_map so it has a more meaningful name. also change it to static. Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit 068b453834c4baf4e878481a9bd5103d54f60710 Author: Bernhard Walle Date: Thu Jun 26 21:55:18 2008 +0200 x86: fix documentation bug about relocatability This patch fixes a small bug in documentation: x86_64 also has now the ability to build a relocatable kernel. Signed-off-by: Bernhard Walle Cc: vgoyal@redhat.com Cc: kexec@lists.infradead.org Signed-off-by: Ingo Molnar commit 32105f7fd8faa7bc3d101dcc3eabc0ae1ac375a7 Author: Bernhard Walle Date: Thu Jun 26 21:54:08 2008 +0200 x86: find offset for crashkernel reservation automatically This patch removes the need of the crashkernel=...@offset parameter to define a fixed offset for crashkernel reservation. That feature can be used together with a relocatable kernel where the kexec-tools relocate the kernel and get the actual offset from /proc/iomem. The use case is a kernel where the .text+.data+.bss is after 16M physical memory (debug kernel with lockdep on x86_64 can cause that) which caused a major pain in autoconfiguration in our distribution. Also, that patch unifies crashdump architectures a bit since IA64 has that semantics from the very beginning of the kdump port. Signed-off-by: Bernhard Walle Cc: vgoyal@redhat.com Cc: Bernhard Walle Cc: kexec@lists.infradead.org Signed-off-by: Ingo Molnar commit fd6493e16625b92a506fba13deda31c0be5f1cd4 Author: Alok Kataria Date: Wed Jun 25 11:02:42 2008 -0700 x86: cleanup e820_setup_gap(), v2 e820_search_gap also take a end_addr parameter to limit search from start_addr to end_addr. Signed-off-by: AloK N Kataria Acked-by: Yinghai Lu Cc: "lenb@kernel.org" Signed-off-by: Ingo Molnar commit 6a2f47ca27fad36f99e8478a3807d4b8c7db80e7 Author: Mike Travis Date: Fri Jun 27 10:10:13 2008 -0700 x86: add check for node passed to node_to_cpumask, v3 * When CONFIG_DEBUG_PER_CPU_MAPS is set, the node passed to node_to_cpumask and node_to_cpumask_ptr should be validated. If invalid, then a dump_stack is performed and a zero cpumask is returned. v2: Slightly different version to remove a compiler warning. v3: Redone to reflect moving setup.c -> setup_percpu.c Signed-off-by: Mike Travis Cc: Vegard Nossum Cc: "akpm@linux-foundation.org" Cc: Yinghai Lu Signed-off-by: Ingo Molnar commit cd5dce2fb023a6f0168344b7dd8adec30017458e Author: Jeremy Fitzhardinge Date: Mon Jun 30 16:04:48 2008 -0700 x86: fix CPA self-test for "x86/paravirt: groundwork for 64-bit Xen support" Ingo Molnar wrote: > -tip auto-testing found pagetable corruption (CPA self-test failure): > > [ 32.956015] CPA self-test: > [ 32.958822] 4k 2048 large 508 gb 0 x 2556[ffff880000000000-ffff88003fe00000] miss 0 > [ 32.964000] CPA ffff88001d54e000: bad pte 1d4000e3 > [ 32.968000] CPA ffff88001d54e000: unexpected level 2 > [ 32.972000] CPA ffff880022c5d000: bad pte 22c000e3 > [ 32.976000] CPA ffff880022c5d000: unexpected level 2 > [ 32.980000] CPA ffff8800200ce000: bad pte 200000e3 > [ 32.984000] CPA ffff8800200ce000: unexpected level 2 > [ 32.988000] CPA ffff8800210f0000: bad pte 210000e3 > > config and full log can be found at: > > http://redhat.com/~mingo/misc/config-Mon_Jun_30_11_11_51_CEST_2008.bad > http://redhat.com/~mingo/misc/log-Mon_Jun_30_11_11_51_CEST_2008.bad Phew. OK, I've worked this out. Short version is that's it's a false alarm, and there was no real failure here. Long version: * I changed the code to create the physical mapping pagetables to reuse any existing mapping rather than replace it. Specifically, reusing an pud pointed to by the pgd caused this symptom to appear. * The specific PUD being reused is the one created statically in head_64.S, which creates an initial 1GB mapping. * That mapping doesn't have _PAGE_GLOBAL set on it, due to the inconsistency between __PAGE_* and PAGE_*. * The CPA test attempts to clear _PAGE_GLOBAL, and then checks to see that the resulting range is 1) shattered into 4k pages, and 2) has no _PAGE_GLOBAL. * However, since it didn't have _PAGE_GLOBAL on that range to start with, change_page_attr_clear() had nothing to do, and didn't bother shattering the range, * resulting in the reported messages The simple fix is to set _PAGE_GLOBAL in level2_ident_pgt. An additional fix to make CPA testing more robust by using some other pagetable bit (one of the unused available-to-software ones). This would solve spurious CPA test warnings under Xen which uses _PAGE_GLOBAL for its own purposes (ie, not under guest control). Also, we should revisit the use of _PAGE_GLOBAL in asm-x86/pgtable.h, and use it consistently, and drop MAKE_GLOBAL. The first time I proposed it it caused breakages in the very early CPA code; with luck that's all fixed now. Signed-off-by: Jeremy Fitzhardinge Cc: Nick Piggin Cc: Mark McLoughlin Cc: xen-devel Cc: Eduardo Habkost Cc: Vegard Nossum Cc: Stephen Tweedie Cc: Yinghai Lu Signed-off-by: Ingo Molnar commit 996cf4438f9ed711c98a3cb5ab88f842a4102427 Author: Yinghai Lu Date: Mon Jun 30 18:34:58 2008 -0700 x86: don't reallocate pgt for node0 kva ram already mapped right after away, so don't need to get that for low ram. avoid wasting one copy of pgdat. also add node id in early_res name in case we get it from find_e820_area. Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit 28bb22379513ca3cac9d13766064a219c5fc21a9 Author: Yinghai Lu Date: Mon Jun 30 16:20:54 2008 -0700 x86: move reserve_setup_data to setup.c Ying Huang would like setup_data to be reserved, but not included in the no save range. Here we try to modify the e820 table to reserve that range early. also add that in early_res in case bootloader messes up with the ramdisk. other solution would be 1. add early_res_to_highmem... 2. early_res_to_e820... but they could reserve another type memory wrongly, if early_res has some resource reserved early, and not needed later, but it is not removed from early_res in time. Like the RAMDISK (already handled). Signed-off-by: Yinghai Lu Cc: andi@firstfloor.org Tested-by: Huang, Ying Signed-off-by: Ingo Molnar commit 102d0a4b56d94e9b7eedfdfb488400271235543f Author: Jeremy Fitzhardinge Date: Mon Jun 30 11:10:53 2008 -0700 x86, paravirt, 64-bit: fix compile errors with IA32_EMULATION off Signed-off-by: Jeremy Fitzhardinge Signed-off-by: Ingo Molnar commit 3ae960a598b9dfe87b29eb70738d91a13e692498 Author: Ingo Molnar Date: Mon Jun 30 10:33:47 2008 +0200 - x86: move early_ioremap prototypes to io.h now that the early-ioremap code is unified, move the prototypes too from io_32.h to io.h. this fixes: arch/x86/kernel/setup.c:531: error: implicit declaration of function ‘early_ioremap_init' on 64-bit. Signed-off-by: Ingo Molnar commit 1a98fd14f44cfade4af3e6ed96ba55065fa17ee4 Author: Jeremy Fitzhardinge Date: Sun Jun 29 20:02:44 2008 -0700 x86: setup_arch() && early_ioremap_init() Looks like the setup.c unification missed the early_ioremap init from the early_ioremap unification. Unconditionally call early_ioremap_init(). needed for "x86/paravirt: groundwork for 64-bit Xen support". Signed-off-by: Jeremy Fitzhardinge Cc: Nick Piggin Cc: Mark McLoughlin Cc: xen-devel Cc: Eduardo Habkost Cc: Vegard Nossum Cc: Stephen Tweedie Cc: Yinghai Lu Signed-off-by: Ingo Molnar commit 1bb3a029078d437aa05bda8a8c8f8ecb1265e231 Author: Ingo Molnar Date: Mon Jun 30 08:47:42 2008 +0200 x86: nmi_watchdog - documentation fix - v2 typo fixes from Randy Dunlap and Alan Cox. Signed-off-by: Cyrill Gorcunov Signed-off-by: Ingo Molnar commit afda335dc3872ca122842e26720ac6e6ef287aa2 Author: Cyrill Gorcunov Date: Fri Jun 27 19:43:40 2008 +0400 x86: nmi_watchdog - documentation fix nmi_watchdog is set to NMI_NONE by default (ie disabled) on _any_ mode so lets fix documentation too. Signed-off-by: Cyrill Gorcunov Cc: "Maciej W. Rozycki" Signed-off-by: Ingo Molnar commit 914bebfad42c417b84bda8920a3073d236007fde Author: Yinghai Lu Date: Sun Jun 29 00:06:37 2008 -0700 x86: use disable_apic in 32bit change the enable_local_apic to static force_enable_local_apic for 32bit Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit a04ad82d0bff4bb564f290eb50982e02458592d9 Author: Yinghai Lu Date: Sun Jun 29 00:39:06 2008 -0700 x86: fix init_memory_mapping over boundary, v4 use PMD_SHIFT to calculate boundary also adjust size for pre-allocated table size Signed-off-by: Yinghai Lu Cc: Jeremy Fitzhardinge Signed-off-by: Ingo Molnar commit b4df32f4aeef8794d0135fc8dc250acb44cfee60 Author: Yinghai Lu Date: Sat Jun 28 17:49:59 2008 -0700 x86: fix warning in e820_reserve_resources with 32bit when 64bit resource is not enabled, we get: arch/x86/kernel/e820.c: In function ‘e820_reserve_resources’: arch/x86/kernel/e820.c:1217: warning: comparison is always false due to limited range of data type because res->start/end is resource_t aka u32. it will overflow. fix it with temp end of u64 Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit 7482b0e962e128c5b574aa29761f97164189ef14 Author: Yinghai Lu Date: Sat Jun 28 03:30:39 2008 -0700 x86: fix init_memory_mapping over boundary v3 some ram-end boundary only has page alignment, instead of 2M alignment. v2: make init_memory_mapping more solid: start could be any value other than 0 v3: fix NON PAE by handling left over in kernel_physical_mapping Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit df366e9822beca97115ba9745cbe1ea1f26fb111 Author: Jeremy Fitzhardinge Date: Fri Jun 27 12:04:03 2008 -0700 x86_64: fix non-paravirt compilation Make sure SWAPGS and PARAVIRT_ADJUST_EXCEPTION_FRAME are properly defined when CONFIG_PARAVIRT is off. Fixes Ingo's build failure: arch/x86/kernel/entry_64.S: Assembler messages: arch/x86/kernel/entry_64.S:1201: Error: invalid character '_' in mnemonic arch/x86/kernel/entry_64.S:1205: Error: invalid character '_' in mnemonic arch/x86/kernel/entry_64.S:1209: Error: invalid character '_' in mnemonic arch/x86/kernel/entry_64.S:1213: Error: invalid character '_' in mnemonic Signed-off-by: Jeremy Fitzhardinge Cc: Nick Piggin Cc: Mark McLoughlin Cc: xen-devel Cc: Eduardo Habkost Cc: Vegard Nossum Cc: Stephen Tweedie Signed-off-by: Ingo Molnar commit f3294a33e765d8308c3e17b951a13e0db9cf5f00 Author: Yinghai Lu Date: Fri Jun 27 01:41:56 2008 -0700 x86: let setup_arch call init_apic_mappings for 32bit instead of calling it from trap_init() also move init ioapic mapping out of apic_32.c so 32 bit do same as 64 bit Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit ab67715c7201be2fe729888a09007b6ba5bb2326 Author: Yinghai Lu Date: Fri Jun 27 15:36:54 2008 -0700 x86: early res print out alignment v2 v2: fix print info to cont Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit 22b45144f67dbaf0705992dc1462de2813fb83a1 Author: Jeremy Fitzhardinge Date: Thu Jun 26 12:02:49 2008 -0700 x86/paravirt: groundwork for 64-bit Xen support, fix #2 Ingo Molnar wrote: > that fixed the build but now we've got a boot crash with this config: > > time.c: Detected 2010.304 MHz processor. > spurious 8259A interrupt: IRQ7. > BUG: unable to handle kernel NULL pointer dereference at 0000000000000000 > IP: [<0000000000000000>] > PGD 0 > Thread overran stack, or stack corrupted > Oops: 0010 [1] SMP > CPU 0 > I don't know if this will fix this bug, but it's definitely a bugfix. It was trashing random pages by overwriting them with pagetables... Don't trash a large pmd's data when mapping physical memory. This is a bugfix for "x86_64: adjust mapping of physical pagetables to work with Xen". Signed-off-by: Jeremy Fitzhardinge Cc: xen-devel Cc: Stephen Tweedie Cc: Eduardo Habkost Cc: Mark McLoughlin Cc: Vegard Nossum Cc: Nick Piggin Cc: Yinghai Lu Signed-off-by: Ingo Molnar commit 457da70ec09ca78e8fda5d5ab3659248f844a376 Author: Jeremy Fitzhardinge Date: Thu Jun 26 07:28:51 2008 -0700 x86/paravirt: groundwork for 64-bit Xen support, fix Ingo Molnar wrote: > * Jeremy Fitzhardinge wrote: > > >>> It quickly broke the build in testing: >>> >>> include/asm/pgalloc.h: In function ‘paravirt_pgd_free': >>> include/asm/pgalloc.h:14: error: parameter name omitted >>> arch/x86/kernel/entry_64.S: In file included from >>> arch/x86/kernel/traps_64.c:51:include/asm/pgalloc.h: In function >>> ‘paravirt_pgd_free': >>> include/asm/pgalloc.h:14: error: parameter name omitted >>> >>> >> No, looks like my fault. The non-PARAVIRT version of >> paravirt_pgd_free() is: >> >> static inline void paravirt_pgd_free(struct mm_struct *mm, pgd_t *) {} >> >> but C doesn't like missing parameter names, even if unused. >> >> This should fix it: >> > > that fixed the build but now we've got a boot crash with this config: > > time.c: Detected 2010.304 MHz processor. > spurious 8259A interrupt: IRQ7. > BUG: unable to handle kernel NULL pointer dereference at 0000000000000000 > IP: [<0000000000000000>] > PGD 0 > Thread overran stack, or stack corrupted > Oops: 0010 [1] SMP > CPU 0 > > with: > > http://redhat.com/~mingo/misc/config-Thu_Jun_26_12_46_46_CEST_2008.bad > Use SWAPGS_UNSAFE_STACK in ia32entry.S in the places where the active stack is the usermode stack. Signed-off-by: Jeremy Fitzhardinge Cc: xen-devel Cc: Stephen Tweedie Cc: Eduardo Habkost Cc: Mark McLoughlin Cc: Vegard Nossum Cc: Nick Piggin Cc: Yinghai Lu Signed-off-by: Ingo Molnar commit e7b3789524eecc96213dd69d6686efd429235051 Author: Yinghai Lu Date: Wed Jun 25 21:51:28 2008 -0700 x86: move fix mapping page table range early do that in init_memory_mapping also remove one init_ohci1394_dma_on_all_controllers Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit 042623bbabae168246ad8a37693f0ecb6c450aea Author: Yinghai Lu Date: Wed Jun 25 19:52:15 2008 -0700 x86: clean up ARCH_SETUP asm-x86/paravirt.h already have protection with CONFIG_PARAVIRT inside Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit 611dfd7819e525b45f39ff15e0faf5f23551c113 Author: Bernhard Walle Date: Wed Jun 25 21:39:16 2008 +0200 x86: limit E820 map when a user-defined memory map is specified This patch brings back limiting of the E820 map when a user-defined E820 map is specified. While the behaviour of i386 (32 bit) was to limit the E820 map (and /proc/iomem), the behaviour of x86-64 (64 bit) was not to limit. That patch limits the E820 map again for both x86 architectures. Code was tested for compilation and booting on a 32 bit and 64 bit system. Signed-off-by: Bernhard Walle Acked-by: Yinghai Lu Cc: kexec@lists.infradead.org Cc: vgoyal@redhat.com Cc: Bernhard Walle Signed-off-by: Ingo Molnar commit 8207c2570af6f819b61be9ef3fb298d0a8c0e18c Author: Jeremy Fitzhardinge Date: Tue Jun 24 17:32:48 2008 -0400 x86: fix pte allocation in "x86: introduce init_memory_mapping for 32bit" The patch "x86: introduce init_memory_mapping for 32bit" does not allocate enough space for PTEs if the CPU does not implement PSE. Signed-off-by: Jeremy Fitzhardinge Acked-by: Yinghai Lu Signed-off-by: Ingo Molnar commit 9f9d489a3e78b49d897734eaaf9dea568dbea66e Author: Jeremy Fitzhardinge Date: Wed Jun 25 00:19:32 2008 -0400 x86/paravirt, 64-bit: make load_gs_index() a paravirt operation Signed-off-by: Eduardo Habkost Signed-off-by: Jeremy Fitzhardinge Cc: xen-devel Cc: Stephen Tweedie Cc: Eduardo Habkost Cc: Mark McLoughlin Signed-off-by: Ingo Molnar commit fab58420ac0007a452b540cfb07923225ea4f48d Author: Jeremy Fitzhardinge Date: Wed Jun 25 00:19:31 2008 -0400 x86/paravirt, 64-bit: add adjust_exception_frame 64-bit Xen pushes a couple of extra words onto an exception frame. Add a hook to deal with them. Signed-off-by: Jeremy Fitzhardinge Cc: xen-devel Cc: Stephen Tweedie Cc: Eduardo Habkost Cc: Mark McLoughlin Signed-off-by: Ingo Molnar commit a00394f81f419beb6fb9f7023bd4d15913dc625d Author: Jeremy Fitzhardinge Date: Wed Jun 25 00:19:30 2008 -0400 x86, 64-bit: swapgs pvop with a user-stack can never be called It's never safe to call a swapgs pvop when the user stack is current - it must be inline replaced. Rather than making a call, the SWAPGS_UNSAFE_STACK pvop always just puts "swapgs" as a placeholder, which must either be replaced inline or trap'n'emulated (somehow). Signed-off-by: Jeremy Fitzhardinge Cc: xen-devel Cc: Stephen Tweedie Cc: Eduardo Habkost Cc: Mark McLoughlin Signed-off-by: Ingo Molnar commit 6680415481c7bd38967cf7488787f509f17ba307 Author: Jeremy Fitzhardinge Date: Wed Jun 25 00:19:29 2008 -0400 x86, 64-bit: ia32entry: replace privileged instructions with pvops Replace privileged instructions with the corresponding pvops in ia32entry.S. Signed-off-by: Jeremy Fitzhardinge Cc: xen-devel Cc: Stephen Tweedie Cc: Eduardo Habkost Cc: Mark McLoughlin Signed-off-by: Ingo Molnar commit 2be29982a08009c731307f4a39053b70ac4700da Author: Jeremy Fitzhardinge Date: Wed Jun 25 00:19:28 2008 -0400 x86/paravirt: add sysret/sysexit pvops for returning to 32-bit compatibility userspace In a 64-bit system, we need separate sysret/sysexit operations to return to a 32-bit userspace. Signed-off-by: Jeremy Fitzhardinge Cc: xen-devel Cc: Stephen Tweedie Cc: Eduardo Habkost Cc: Mark McLoughlin Signed-off-by: Ingo Molnar commit c7245da6ae7e5208504ff027c4e0eec69b788651 Author: Jeremy Fitzhardinge Date: Wed Jun 25 00:19:27 2008 -0400 x86/paravirt, 64-bit: don't restore user rsp within sysret There's no need to combine restoring the user rsp within the sysret pvop, so split it out. This makes the pvop's semantics closer to the machine instruction. Signed-off-by: Jeremy Fitzhardinge Cc: xen-devel Cc: Stephen Tweedie Cc: Eduardo Habkost Cc: Mark McLoughlin Signed-off-by: Ingo Molnar commit d75cd22fdd5f7d203fb60014d426942df33dd9a6 Author: Jeremy Fitzhardinge Date: Wed Jun 25 00:19:26 2008 -0400 x86/paravirt: split sysret and sysexit Don't conflate sysret and sysexit; they're different instructions with different semantics, and may be in use at the same time (at least within the same kernel, depending on whether its an Intel or AMD system). sysexit - just return to userspace, does no register restoration of any kind; must explicitly atomically enable interrupts. sysret - reloads flags from r11, so no need to explicitly enable interrupts on 64-bit, responsible for restoring usermode %gs Signed-off-by: Jeremy Fitzhardinge Cc: xen-devel Cc: Stephen Tweedie Cc: Eduardo Habkost Cc: Mark McLoughlin Signed-off-by: Ingo Molnar commit e04e0a630d8b5c621b3a8e70ff20db737d3a5728 Author: Jeremy Fitzhardinge Date: Wed Jun 25 00:19:25 2008 -0400 x86: use __KERNEL_DS as SS when returning to a kernel thread This is needed when the kernel is running on RING3, such as under Xen. x86_64 has a weird feature that makes it #GP on iret when SS is a null descriptor. This need to be tested on bare metal to make sure it doesn't cause any problems. AMD specs say SS is always ignored (except on iret?). Signed-off-by: Eduardo Habkost Signed-off-by: Jeremy Fitzhardinge Cc: xen-devel Cc: Stephen Tweedie Cc: Eduardo Habkost Cc: Mark McLoughlin Signed-off-by: Ingo Molnar commit 478de5a9d691dd0c048ddce62dbec23722515636 Author: Jeremy Fitzhardinge Date: Wed Jun 25 00:19:24 2008 -0400 x86: save %fs and %gs before load_TLS() and arch_leave_lazy_cpu_mode() We must do this because load_TLS() may need to clear %fs and %gs. (e.g. under Xen). Signed-off-by: Eduardo Habkost Signed-off-by: Jeremy Fitzhardinge Cc: xen-devel Cc: Stephen Tweedie Cc: Eduardo Habkost Cc: Mark McLoughlin Signed-off-by: Ingo Molnar commit 3fe0a63efd4437f6438ce5f2708929b1108873b6 Author: Jeremy Fitzhardinge Date: Wed Jun 25 00:19:23 2008 -0400 x86, 64-bit: __switch_to(): move arch_leave_lazy_cpu_mode() to the right place We must leave lazy mode before switching the %fs and %gs selectors. Signed-off-by: Eduardo Habkost Signed-off-by: Jeremy Fitzhardinge Cc: xen-devel Cc: Stephen Tweedie Cc: Eduardo Habkost Cc: Mark McLoughlin Signed-off-by: Ingo Molnar commit 0814e0bace537b7024b09187346b99401e6281be Author: Eduardo Habkost Date: Wed Jun 25 00:19:22 2008 -0400 x86, 64-bit: split set_pte_vaddr() We will need to set a pte on l3_user_pgt. Extract set_pte_vaddr_pud() from set_pte_vaddr(), that will accept the l3 page table as parameter. This change should be a no-op for existing code. Signed-off-by: Eduardo Habkost Signed-off-by: Mark McLoughlin Signed-off-by: Jeremy Fitzhardinge Cc: xen-devel Cc: Stephen Tweedie Cc: Mark McLoughlin Signed-off-by: Ingo Molnar commit 4f30cb0262847392d8d006042f24bd90abd24f9d Author: Jeremy Fitzhardinge Date: Wed Jun 25 00:19:21 2008 -0400 x86, 64-bit: PSE no longer a hard requirement Because Xen doesn't support PSE mappings in guests, all code which assumed the presence of PSE has been changed to fall back to smaller mappings if necessary. As a result, PSE is optional rather than required (though still used whereever possible). Signed-off-by: Jeremy Fitzhardinge Cc: xen-devel Cc: Stephen Tweedie Cc: Eduardo Habkost Cc: Mark McLoughlin Signed-off-by: Ingo Molnar commit 7c934d3990aa4d785feddcef700f4c2c4aba2251 Author: Jeremy Fitzhardinge Date: Wed Jun 25 00:19:20 2008 -0400 x86, 64-bit: create small vmemmap mappings if PSE not available If PSE is not available, then fall back to 4k page mappings for the vmemmap area. Signed-off-by: Jeremy Fitzhardinge Cc: xen-devel Cc: Stephen Tweedie Cc: Eduardo Habkost Cc: Mark McLoughlin Signed-off-by: Ingo Molnar commit 4f9c11dd49fb73e1ec088b27ed6539681a445988 Author: Jeremy Fitzhardinge Date: Wed Jun 25 00:19:19 2008 -0400 x86, 64-bit: adjust mapping of physical pagetables to work with Xen This makes a few of changes to the construction of the initial pagetables to work better with paravirt_ops/Xen. The main areas are: 1. Support non-PSE mapping of memory, since Xen doesn't currently allow 2M pages to be mapped in guests. 2. Make sure that the ioremap alias of all pages are dropped before attaching the new page to the pagetable. This avoids having writable aliases of pagetable pages. 3. Preserve existing pagetable entries, rather than overwriting. Its possible that a fair amount of pagetable has already been constructed, so reuse what's already in place rather than ignoring and overwriting it. The algorithm relies on the invariant that any page which is part of the kernel pagetable is itself mapped in the linear memory area. This way, it can avoid using ioremap on a pagetable page. The invariant holds because it maps memory from low to high addresses, and also allocates memory from low to high. Each allocated page can map at least 2M of address space, so the mapped area will always progress much faster than the allocated area. It relies on the early boot code mapping enough pages to get started. Signed-off-by: Jeremy Fitzhardinge Cc: xen-devel Cc: Stephen Tweedie Cc: Eduardo Habkost Cc: Mark McLoughlin Signed-off-by: Ingo Molnar commit f97013fd8f17120182aa247f360e4d2069a9db9c Author: Jeremy Fitzhardinge Date: Wed Jun 25 00:19:18 2008 -0400 x86, 64-bit: split x86_64_start_kernel Split x86_64_start_kernel() into two pieces: The first essentially cleans up after head_64.S. It clears the bss, zaps low identity mappings, sets up some early exception handlers. The second part preserves the boot data, reserves the kernel's text/data/bss, pagetables and ramdisk, and then starts the kernel proper. This split is so that Xen can call the second part to do the set up it needs done. It doesn't need any of the first part setups, because it doesn't boot via head_64.S, and its redundant or actively damaging. Signed-off-by: Jeremy Fitzhardinge Cc: xen-devel Cc: Stephen Tweedie Cc: Eduardo Habkost Cc: Mark McLoughlin Signed-off-by: Ingo Molnar commit 408011759cc8ff7f89505e8398cec0ccf67b5afa Author: Jeremy Fitzhardinge Date: Wed Jun 25 00:19:17 2008 -0400 x86, 64-bit: add FIX_PARAVIRT_BOOTMAP fixmap slot This matches 32 bit. Signed-off-by: Jeremy Fitzhardinge Cc: xen-devel Cc: Stephen Tweedie Cc: Eduardo Habkost Cc: Mark McLoughlin Signed-off-by: Ingo Molnar commit a6523748bddd38bcec11431f57502090b6014a96 Author: Eduardo Habkost Date: Wed Jun 25 00:19:16 2008 -0400 paravirt/x86, 64-bit: move __PAGE_OFFSET to leave a space for hypervisor Set __PAGE_OFFSET to the most negative possible address + 16*PGDIR_SIZE. The gap is to allow a space for a hypervisor to fit. The gap is more or less arbitrary, but it's what Xen needs. When booting native, kernel/head_64.S has a set of compile-time generated pagetables used at boot time. This patch removes their absolutely hard-coded layout, and makes it parameterised on __PAGE_OFFSET (and __START_KERNEL_map). Signed-off-by: Eduardo Habkost Signed-off-by: Jeremy Fitzhardinge Cc: xen-devel Cc: Stephen Tweedie Cc: Eduardo Habkost Cc: Mark McLoughlin Signed-off-by: Ingo Molnar commit 491eccb721c2ee67250273a96e4515fb5b423337 Author: Jeremy Fitzhardinge Date: Wed Jun 25 00:19:15 2008 -0400 x86/paravirt: define PARA_INDIRECT for indirect asm calls On 32-bit it's best to use a %cs: prefix to access memory where the other segments may not bet set up properly yet. On 64-bit it's best to use a rip-relative addressing mode. Define PARA_INDIRECT() to abstract this and generate the proper addressing mode in each case. Signed-off-by: Jeremy Fitzhardinge Cc: xen-devel Cc: Stephen Tweedie Cc: Eduardo Habkost Cc: Mark McLoughlin Signed-off-by: Ingo Molnar commit 97349135fea7f0ba8464534433df3bfd1dc0e9a6 Author: Jeremy Fitzhardinge Date: Wed Jun 25 00:19:14 2008 -0400 x86/paravirt: add debugging for missing operations Rather than just jumping to 0 when there's a missing operation, raise a BUG. Signed-off-by: Jeremy Fitzhardinge Cc: xen-devel Cc: Stephen Tweedie Cc: Eduardo Habkost Cc: Mark McLoughlin Signed-off-by: Ingo Molnar commit d8d5900ef8afc562088f8470feeaf17c4747790f Author: Jeremy Fitzhardinge Date: Wed Jun 25 00:19:13 2008 -0400 x86: preallocate and prepopulate separately Jan Beulich points out that vmalloc_sync_all() assumes that the kernel's pmd is always expected to be present in the pgd. The current pgd construction code will add the pgd to the pgd_list before its pmds have been pre-populated, thereby making it visible to vmalloc_sync_all(). However, because pgd_prepopulate_pmd also does the allocation, it may block and cannot be done under spinlock. The solution is to preallocate the pmds out of the spinlock, then populate them while holding the pgd_list lock. This patch also pulls the pmd preallocation and mop-up functions out to be common, assuming that the compiler will generate no code for them when PREALLOCTED_PMDS is 0. Also, there's no need for pgd_ctor to clear the pgd again, since it's allocated as a zeroed page. Signed-off-by: Jeremy Fitzhardinge Cc: xen-devel Cc: Stephen Tweedie Cc: Eduardo Habkost Cc: Mark McLoughlin Signed-off-by: Ingo Molnar Cc: Jan Beulich Signed-off-by: Ingo Molnar commit eba0045ff87bab465d3c80c289f3bf709c1800f5 Author: Jeremy Fitzhardinge Date: Wed Jun 25 00:19:12 2008 -0400 x86/paravirt: add a pgd_alloc/free hooks Add hooks which are called at pgd_alloc/free time. The pgd_alloc hook may return an error code, which if non-zero, causes the pgd allocation to be failed. The hooks may be used to allocate/free auxillary per-pgd information. also fix: > * Ingo Molnar wrote: > > include/asm/pgalloc.h: In function ‘paravirt_pgd_free': > include/asm/pgalloc.h:14: error: parameter name omitted > arch/x86/kernel/entry_64.S: In file included from > arch/x86/kernel/traps_64.c:51:include/asm/pgalloc.h: In function ‘paravirt_pgd_free': > include/asm/pgalloc.h:14: error: parameter name omitted Signed-off-by: Jeremy Fitzhardinge Cc: xen-devel Cc: Stephen Tweedie Cc: Eduardo Habkost Cc: Mark McLoughlin Signed-off-by: Ingo Molnar commit 67350a5c4514c280665cdb45439d32a008a264ba Author: Jeremy Fitzhardinge Date: Wed Jun 25 00:19:11 2008 -0400 x86: simplify vmalloc_sync_all vmalloc_sync_all() is only called from register_die_notifier and alloc_vm_area. Neither is on any performance-critical paths, so vmalloc_sync_all() itself is not on any hot paths. Given that the optimisations in vmalloc_sync_all add a fair amount of code and complexity, and are fairly hard to evaluate for correctness, it's better to just remove them to simplify the code rather than worry about its absolute performance. Signed-off-by: Jeremy Fitzhardinge Cc: xen-devel Cc: Stephen Tweedie Cc: Eduardo Habkost Cc: Mark McLoughlin Signed-off-by: Ingo Molnar commit 15878c0b21b7b04a08108e9027ebbbd68a2502e0 Author: Jeremy Fitzhardinge Date: Wed Jun 25 00:19:10 2008 -0400 x86, 64-bit: add sync_cmpxchg Add sync_cmpxchg to match 32-bit's sync_cmpxchg. Signed-off-by: Jeremy Fitzhardinge Cc: xen-devel Cc: Stephen Tweedie Cc: Eduardo Habkost Cc: Mark McLoughlin Signed-off-by: Ingo Molnar commit 102e3b8d3f3d5556c60f9ab6d92108649b68edc8 Author: Jeremy Fitzhardinge Date: Wed Jun 25 00:19:09 2008 -0400 x86, 64-bit: add prototype for x86_64_start_kernel() Signed-off-by: Jeremy Fitzhardinge Cc: xen-devel Cc: Stephen Tweedie Cc: Eduardo Habkost Cc: Mark McLoughlin Signed-off-by: Ingo Molnar commit 330ddd20894f99a2b956ad59cf0cfdba188bde63 Author: Ingo Molnar Date: Thu Jun 26 12:40:35 2008 +0200 x86: build fix fix: In file included from arch/x86/kernel/setup.c:118: include/asm/highmem.h:64: error: expected identifier or ‘(' before ‘do' include/asm/highmem.h:64: error: expected identifier or ‘(' before ‘while' include/asm/highmem.h:67: error: expected identifier or ‘(' before ‘do' include/asm/highmem.h:67: error: expected identifier or ‘(' before ‘while' Signed-off-by: Ingo Molnar commit 3442682a54a9f44047efe526869aa52bd74fe16e Author: Ingo Molnar Date: Thu Jun 26 12:29:29 2008 +0200 x86: remove extra newline from setup.c Signed-off-by: Ingo Molnar commit 5092301c7250d7459b79fe40dae43eca3b518e92 Author: Yinghai Lu Date: Wed Jun 25 18:02:06 2008 -0700 x86: we only have init_pg_tables_end for 32bit Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit 29f784e369a914b5926e01a0b0caae0b47f6452a Author: Yinghai Lu Date: Wed Jun 25 18:00:22 2008 -0700 x86: change some functions in setup.c to static Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit d1b20afec356085a202d7832d47bfb89303ea901 Author: Yinghai Lu Date: Wed Jun 25 17:59:41 2008 -0700 x86: make x86_find_smp_config depends on 64 bit too Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit 0196bcbb150786d54a50e3074013020570a59d31 Author: Yinghai Lu Date: Wed Jun 25 17:58:55 2008 -0700 x86: move parse elfvorehdr back to setup.c Signed-off-by: Yinghai Signed-off-by: Ingo Molnar commit bdba0e700c86fa2f152b1fe37b001c9e9c65d2b7 Author: Yinghai Lu Date: Wed Jun 25 17:58:02 2008 -0700 x86: move reserve_standard_io_resources back to setup.c Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit ccb4defa71744f086822950d8fa64a17c4e6eb04 Author: Yinghai Lu Date: Wed Jun 25 17:57:13 2008 -0700 x86: move back crashkernel back to setup.c Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit 257b0fde99df0160db03e529dbfb3a4e46c07a88 Author: Yinghai Lu Date: Wed Jun 25 17:56:22 2008 -0700 x86: move parse_setup_data back to setup.c Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit 217b8ce89088dd47e7176686ff34573f75a624e9 Author: Yinghai Lu Date: Wed Jun 25 17:55:20 2008 -0700 x86: move boot_params back to setup.c Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit 55f262391a2365d657a00ed68edd1a51bca66af5 Author: Yinghai Lu Date: Wed Jun 25 17:54:23 2008 -0700 x86: rename setup_32.c to setup.c and let 64 bit use that instead of setup_64.c [ mingo@elte.hu ] x86: build fix fix: arch/x86/kernel/setup.c: In function ‘setup_arch': arch/x86/kernel/setup.c:561: error: implicit declaration of function ‘efi_reserve_early' and: arch/x86/kernel/setup.c:766: error: implicit declaration of function 'init_cpu_to_node' and: arch/x86/kernel/setup.c:676: warning: operation on 'max_pfn_mapped' may be undefined Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit f2f865fe6e6e40ddf37f887eb427263d83bb925d Author: Yinghai Lu Date: Wed Jun 25 17:53:22 2008 -0700 x86: space to tab in setup_arch Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit 76934ed4b33b65096296d3e7b3c046fd020019fc Author: Yinghai Lu Date: Wed Jun 25 17:52:35 2008 -0700 x86: merge 64bit setup_arch into setup_32 Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit 46d671b525102ae005dc5e8389ca67c86ae012b1 Author: Yinghai Lu Date: Wed Jun 25 17:51:29 2008 -0700 x86: add extra includes for 64bit support Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit 7dea23ecd17db6e42e19499db70d2fcfa5ca1ee2 Author: Yinghai Lu Date: Wed Jun 25 17:50:06 2008 -0700 x86: put global variable for 32bit all together those variables are not needed by 64 bit. Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit eb1379cb296f5aee348c2e04317d911bb84d9184 Author: Yinghai Lu Date: Wed Jun 25 17:49:26 2008 -0700 x86: update reserve_initrd to support 64bit Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit 08afc7c0dd8ecb04c7a6fe367102e410a74abbe6 Author: Yinghai Lu Date: Wed Jun 25 17:48:23 2008 -0700 x86: we can use full bootmem after have init_memory_mapping So remove outdated comments Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit 378b39a4f91ab0846eb6e13d47ea812bc82b44d9 Author: Yinghai Lu Date: Wed Jun 25 17:48:14 2008 -0700 x86: rename setup.c to setup_percpu.c some functions need to be moved to setup_numa.c after we merge setup32/64.c, some funcs need to be moved back to setup.c Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit b9d19f4a51447930db002409945ad40a7a373cb0 Author: Yinghai Lu Date: Thu Jun 26 00:44:56 2008 -0700 x86: fix memory setup bug interesting... [ 0.000000] mapped low ram: 0 - 20000000 [ 0.000000] low ram: 00000000 - 1fff0000 [ 0.000000] bootmap 00002000 - 00006000 max_pfn_mapped > max_low_pfn? it seems init_memory_mapping reveals an old bug. please check attached test patch. Signed-off-by: Ingo Molnar commit 383bc5cecc2ed0b8f44a25488660b03030425ef7 Author: Bernhard Walle Date: Thu Jun 26 09:23:21 2008 +0200 x86, crashdump, /proc/vmcore: remove CONFIG_EXPERIMENTAL from kdump I would suggest to remove the "experimental" status from Kdump. Kdump is now in the kernel since a long time and used by Enterprise distributions. I don't think that "experimental" is true any more. Signed-off-by: Bernhard Walle Cc: vgoyal@redhat.com Cc: kexec@lists.infradead.org Cc: Bernhard Walle Cc: akpm@linux-foundation.org Signed-off-by: Ingo Molnar commit 200001eb140ea33477965f2050bea0dac801974b Author: Paul Jackson Date: Wed Jun 25 05:44:46 2008 -0700 x86 boot: only pick up additional EFI memmap if add_efi_memmap flag Applies on top of the previous patch: x86 boot: add code to add BIOS provided EFI memory entries to kernel Instead of always adding EFI memory map entries (if present) to the memory map after initially finding either E820 BIOS memory map entries and/or kernel command line memmap entries, -instead- only add such additional EFI memory map entries if the kernel boot option: add_efi_memmap is specified. Requiring this 'add_efi_memmap' option is backward compatible with kernels that didn't load such additional EFI memory map entries in the first place, and it doesn't override a configuration that tries to replace all E820 or EFI BIOS memory map entries with ones given entirely on the kernel command line. Signed-off-by: Paul Jackson Cc: "Yinghai Lu" Cc: "Jack Steiner" Cc: "Mike Travis" Cc: "Huang Cc: Ying" Cc: "Andi Kleen" Cc: "Andrew Morton" Cc: Paul Jackson Signed-off-by: Ingo Molnar commit 5dab8ec139be215fbaba216fb4aea914d0f4dac5 Author: Paul Jackson Date: Wed Jun 25 05:44:40 2008 -0700 mm, generic, x86 boot: more tweaks to hex prints of some pfn addresses Fix some problems with (and applies on top of) a previous patch: x86 boot: show pfn addresses in hex not decimal in some kernel info printks Primarily change "0x%8lx" format, which displays with a right aligned space filled hex number (spaces between the "0x" prefix and the number), into "%0#10lx" format, which zero fills instead of space fills, and which uses the printf flag '#' to request the "0x" prefix instead of hard coding it. Also replace some other "0x%lx" formats with "%#lx", making use of the '#' printf flag again. Signed-off-by: Paul Jackson Cc: "Yinghai Lu" Cc: "Jack Steiner" Cc: "Mike Travis" Cc: "Huang Cc: Ying" Cc: "Andi Kleen" Cc: "Andrew Morton" Cc: Paul Jackson Signed-off-by: Ingo Molnar commit 3381959da5a00ae8289cfbd28b0b6d228f2d1d46 Author: Alok Kataria Date: Tue Jun 24 11:48:30 2008 -0700 x86: cleanup e820_setup_gap(), add e820_search_gap(), v2 This is a preparatory patch for the next patch in series. Moves some code from e820_setup_gap to a new function e820_search_gap. This patch is a part of a bug fix where we walk the ACPI table to calculate a gap for PCI optional devices. v1->v2: Patch on top of tip/master. Fixes a bug introduced in the last patch about the typeof "last". Also the new function e820_search_gap now returns if we found a gap in e820_map. Signed-off-by: Alok N Kataria Cc: lenb@kernel.org Signed-off-by: Ingo Molnar commit c987d12f8455b19b3b057d63bac3de161bd809fc Author: Yinghai Lu Date: Tue Jun 24 22:14:09 2008 -0700 x86: remove end_pfn in 64bit and use max_pfn directly. Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit f47f9d538ecc938bed589e9d39ad7b454f3b506c Author: Yinghai Lu Date: Tue Jun 24 22:13:15 2008 -0700 x86: numa 32 using apicid_2_node to get node for logical_apicid Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit 232b957ae93973a5f8619ef61b916744b747478c Author: Yinghai Lu Date: Tue Jun 24 14:58:38 2008 -0700 x86: change size if e820_update/remove_range in case someone using crazy parameter while calling them. Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit d86623a0d55a14e7295e8ca1bd258e0c7f8dcb31 Author: Yinghai Lu Date: Tue Jun 24 14:57:29 2008 -0700 x86: add table_top check for alloc_low_page in 64 bit that range is from find_e820_area, so don't try to use end_pfn to see if out of boundary...use table_top instead to avoid possible strange result while cross the boundary... also change early_printk to printk, because init_memory_mapping is after early param parsing, and console=uart8250 already working at that time. Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit 1a0db38e5fa50eeb885194b1f4e494d4de55b918 Author: Yinghai Lu Date: Tue Jun 24 14:56:20 2008 -0700 x86: get max_pfn_mapped in init_memory_mapping so don't shift that in the loop Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit 976dd4dc99c3eaf45e3802ed46e3cc06a1ad8689 Author: Yinghai Lu Date: Tue Jun 24 14:55:32 2008 -0700 x86: fix e820_update_range size when overlapping before that we relay on sanitize_e820_map to remove the overlap. but e820_update_range(,,E820_RESERVED, E820_RAM) will not work this patch fix that who is going to use this? Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit 3a58a2a6c879b2e47daafd6e641661c50ac9da5a Author: Yinghai Lu Date: Tue Jun 24 12:19:41 2008 -0700 x86: introduce init_memory_mapping for 32bit #3 move kva related early backto initmem_init for numa32 Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit cfb0e53b05402f1ce65053677409a819c1798d34 Author: Yinghai Lu Date: Tue Jun 24 12:18:58 2008 -0700 x86: introduce init_memory_mapping for 32bit #2 moving relocate_initrd early Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit 4e29684c40f2a332ba4d05f6482d5807725d5624 Author: Yinghai Lu Date: Tue Jun 24 12:18:14 2008 -0700 x86: introduce init_memory_mapping for 32bit #1 ... so can we use mem below max_low_pfn earlier. this allows us to move several functions more early instead of waiting to after paging_init. That includes moving relocate_initrd() earlier in the bootup, and kva related early setup done in initmem_init. (in followup patches) Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit c3c2fee38462fa34b90e0a5427c7fc564bb5c96c Author: Jeremy Fitzhardinge Date: Wed Jun 25 00:19:07 2008 -0400 x86: unify mmu_context.h Some amount of asm-x86/mmu_context.h can be unified, including activate_mm paravirt hook. Signed-off-by: Jeremy Fitzhardinge Cc: xen-devel Cc: Stephen Tweedie Cc: Eduardo Habkost Cc: Mark McLoughlin Signed-off-by: Ingo Molnar commit fb15a9b3047a245a30a51696e4d8e29b1175a598 Author: Jeremy Fitzhardinge Date: Wed Jun 25 00:19:06 2008 -0400 x86: unify pgd_index pgd_index is common for 32 and 64-bit, so move it to a common place. Signed-off-by: Jeremy Fitzhardinge Cc: xen-devel Cc: Stephen Tweedie Cc: Eduardo Habkost Cc: Mark McLoughlin Signed-off-by: Ingo Molnar commit e7a9b0b3c32aa13f4c766eb6a4e7038260718d4c Author: Eduardo Habkost Date: Wed Jun 25 00:19:05 2008 -0400 x86, 64-bit: use __pgd() on mk_kernel_pgd() Use __pgd() on mk_kernel_pgd() Signed-off-by: Eduardo Habkost Cc: xen-devel Cc: Stephen Tweedie Cc: Eduardo Habkost Cc: Mark McLoughlin Signed-off-by: Ingo Molnar commit 43adfc26dea171558f944adbc9adecddf2d4602f Author: Jeremy Fitzhardinge Date: Wed Jun 25 00:19:04 2008 -0400 x86, 64-bit: add gate_offset() and gate_segment() macros For calculating the offset from struct gate_struct fields. [ gate_offset and gate_segment were broken for 32-bit. ] Signed-off-by: Eduardo Habkost Signed-off-by: Jeremy Fitzhardinge Cc: xen-devel Cc: Stephen Tweedie Cc: Eduardo Habkost Cc: Mark McLoughlin Signed-off-by: Ingo Molnar commit 4583ed514ea9ac844a6eb02d33120beaedf6837f Author: Jeremy Fitzhardinge Date: Wed Jun 25 00:19:03 2008 -0400 x86, 64-bit: unify early_ioremap The 32-bit early_ioremap will work equally well for 64-bit, so just use it. Signed-off-by: Jeremy Fitzhardinge Cc: xen-devel Cc: Stephen Tweedie Cc: Eduardo Habkost Cc: Mark McLoughlin Signed-off-by: Ingo Molnar commit bb23e403e5162765dabe3dc78646724753d6359b Author: Jeremy Fitzhardinge Date: Wed Jun 25 00:19:02 2008 -0400 x86, 64-bit: use p??_populate() to attach pages to pagetable Use the _populate() functions to attach new pages to a pagetable, to make sure the right paravirt_ops calls get called. Signed-off-by: Jeremy Fitzhardinge Cc: xen-devel Cc: Stephen Tweedie Cc: Eduardo Habkost Cc: Mark McLoughlin Signed-off-by: Ingo Molnar commit fc8b8a60ffa7c89da58c75109dacf0b2798c7caf Author: Jeremy Fitzhardinge Date: Wed Jun 25 00:19:01 2008 -0400 x86, 64-bit: use write_gdt_entry in vsyscall_set_cpu Use write_gdt_entry to generate the special vgetcpu descriptor in the vsyscall page. Signed-off-by: Jeremy Fitzhardinge Cc: xen-devel Cc: Stephen Tweedie Cc: Eduardo Habkost Cc: Mark McLoughlin Signed-off-by: Ingo Molnar commit ada857082317e6883cfcf7deb4e0c54d3c447cb0 Author: Jeremy Fitzhardinge Date: Wed Jun 25 00:19:00 2008 -0400 x86: remove open-coded save/load segment operations This removes a pile of buggy open-coded implementations of savesegment and loadsegment. (They are buggy because they don't have memory barriers to prevent them from being reordered with respect to memory accesses.) Signed-off-by: Jeremy Fitzhardinge Cc: xen-devel Cc: Stephen Tweedie Cc: Eduardo Habkost Cc: Mark McLoughlin Signed-off-by: Ingo Molnar commit af2b1c609ff52b6469d8e67696db98c93c348b0e Author: Jeremy Fitzhardinge Date: Wed Jun 25 00:18:59 2008 -0400 x86: add memory barriers to wrmsr wrmsr is a special instruction which can have arbitrary system-wide effects. We don't want the compiler to reorder it with respect to memory operations, so make it a memory barrier. Signed-off-by: Jeremy Fitzhardinge Cc: xen-devel Cc: Stephen Tweedie Cc: Eduardo Habkost Cc: Mark McLoughlin Signed-off-by: Ingo Molnar commit d338c73c39a6ed0d07fe3bb07c7f12fff0dd237d Author: Jeremy Fitzhardinge Date: Wed Jun 25 00:18:58 2008 -0400 x86: add memory clobber to save/loadsegment Add "memory" clobbers to savesegment and loadsegment, since they can affect memory accesses and we never want the compiler to reorder them with respect to memory references. Signed-off-by: Jeremy Fitzhardinge Cc: xen-devel Cc: Stephen Tweedie Cc: Eduardo Habkost Cc: Mark McLoughlin Signed-off-by: Ingo Molnar commit bea41808efdd8815435376209f23f406f8bf435f Author: Jeremy Fitzhardinge Date: Wed Jun 25 00:18:57 2008 -0400 x86: asm-x86/pgtable.h: fix compiler warning Signed-off-by: Jeremy Fitzhardinge Cc: xen-devel Cc: Stephen Tweedie Cc: Eduardo Habkost Cc: Mark McLoughlin Signed-off-by: Ingo Molnar commit 4de0043617f949fdac538fd59335e2150cd1b863 Author: Cyrill Gorcunov Date: Tue Jun 24 22:52:06 2008 +0200 x86: nmi_watchdog - introduce nmi_watchdog_active() helper Signed-off-by: Cyrill Gorcunov Cc: macro@linux-mips.org Signed-off-by: Ingo Molnar commit c376d45432d935e6f1e0ff2d6be3734bcd3ba455 Author: Cyrill Gorcunov Date: Tue Jun 24 22:52:05 2008 +0200 x86: nmi_watchdog - use NMI_NONE by default There is no need to keep NMI_DISABLED definition and use it for nmi_watchdog by default. Here is the point why: - IO-APIC and APIC chips are programmed for nmi_watchdog support at very early stage of kernel booting and not having nmi_watchdog specified as boot option lead only to nmi_watchdog becomes to NMI_NONE anyway - enable nmi_watchdog thru /proc/sys/kernel/nmi if it was not specified at boot is not possible too (even having this sysfs entry) Signed-off-by: Cyrill Gorcunov Cc: macro@linux-mips.org Signed-off-by: Ingo Molnar commit 2b6addad2d67a2d75ae10a1c8efd18d81d78ff82 Author: Cyrill Gorcunov Date: Tue Jun 24 22:52:04 2008 +0200 x86: nmi_watchdog - remove useless check Since nmi_watchdog is unsigned variable we may safely remove the check for negative value. Signed-off-by: Cyrill Gorcunov Cc: macro@linux-mips.org Signed-off-by: Ingo Molnar commit 116f570e5d8347bee2614da2361eeadbb639ea50 Author: Cyrill Gorcunov Date: Tue Jun 24 22:52:04 2008 +0200 x86: nmi_watchdog - use nmi_watchdog variable for printing Since it is possible NMI_ definitions could be changed one day we better print out real nmi_watchdog value instead of constant string. Signed-off-by: Cyrill Gorcunov Cc: macro@linux-mips.org Signed-off-by: Ingo Molnar commit 47a486cc110fe77518c79a566b50a5c785c813ae Author: Cyrill Gorcunov Date: Tue Jun 24 22:52:03 2008 +0200 x86: perfctr-watchdog.c - coding style cleanup Just some code beautification. Nothing else. Signed-off-by: Cyrill Gorcunov Cc: macro@linux-mips.org Signed-off-by: Ingo Molnar commit 2bc0d2615a15a93d344abbe8cb1b9056122bce9d Author: Paul Jackson Date: Sun Jun 22 07:22:17 2008 -0700 x86 boot: more consistently use type int for node ids Everywhere I look, node id's are of type 'int', except in this one case, which has 'unsigned long'. Change this one to 'int' as well. There is nothing special about the way this variable 'nid' is used in this routine to justify using an unusual type here. Signed-off-by: Paul Jackson Cc: "Yinghai Lu" Cc: "Jack Steiner" Cc: "Mike Travis" Cc: "Huang Cc: Ying" Cc: "Andi Kleen" Cc: "Andrew Morton" Cc: Paul Jackson Signed-off-by: Ingo Molnar commit e2fc252e0ce695b4c4abe27bb073c35bd0d73252 Author: Paul Jackson Date: Sun Jun 22 07:22:12 2008 -0700 x86 boot: show pfn addresses in hex not decimal in some kernel info printks Page frame numbers (the portion of physical addresses above the low order page offsets) are displayed in several kernel debug and info prints in decimal, not hex. Decimal addresse are unreadable. Use hex. Signed-off-by: Paul Jackson Cc: "Yinghai Lu" Cc: "Jack Steiner" Cc: "Mike Travis" Cc: "Huang Cc: Ying" Cc: "Andi Kleen" Cc: "Andrew Morton" Cc: Paul Jackson Signed-off-by: Ingo Molnar commit c4ba1320b7075e9ce33ad0afaef43ba13260b4c2 Author: Paul Jackson Date: Sun Jun 22 07:22:07 2008 -0700 x86 boot: allow overlapping early reserve memory ranges Add support for overlapping early memory reservations. In general, they still can't overlap, and will panic with "Overlapping early reservations" if they do overlap. But if a memory range is reserved with the new call: reserve_early_overlap_ok() rather than with the usual call: reserve_early() then subsequent early reservations are allowed to overlap. This new reserve_early_overlap_ok() call is only used in one place so far, which is the "BIOS reserved" reservation for the the EBDA region, which out of Paranoia reserves more than what the BIOS might have specified, and which thus might overlap with another legitimate early memory reservation (such as, perhaps, the EFI memmap.) Signed-off-by: Paul Jackson Cc: "Yinghai Lu" Cc: "Jack Steiner" Cc: "Mike Travis" Cc: "Huang Cc: Ying" Cc: "Andi Kleen" Cc: "Andrew Morton" Cc: Paul Jackson Signed-off-by: Ingo Molnar commit 05486fa7e631a3be31a0bbc5a575a389a1609e94 Author: Paul Jackson Date: Sun Jun 22 07:22:02 2008 -0700 x86 boot: x86_64 efi compiler warning fix Fix a compiler warning. Rather than always casting a u32 to a pointer (which generates a warning on x86_64 systems) instead separate the x86_32 and x86_64 assignments entirely with ifdefs. Until other recent changes to this code, it used to have x86_64 separated like this. Signed-off-by: Paul Jackson Cc: "Yinghai Lu" Cc: "Jack Steiner" Cc: "Mike Travis" Cc: "Huang Cc: Ying" Cc: "Andi Kleen" Cc: "Andrew Morton" Cc: Paul Jackson Signed-off-by: Ingo Molnar commit 157fabf09594ab064b7ae92c81942af4b94663cb Author: Paul Jackson Date: Sun Jun 22 07:21:57 2008 -0700 x86 boot: e820 code indentation fix Fix indentation. An earlier code merge got the indentation of four lines of code off by a tab. Signed-off-by: Paul Jackson Cc: "Yinghai Lu" Cc: "Jack Steiner" Cc: "Mike Travis" Cc: "Huang Cc: Ying" Cc: "Andi Kleen" Cc: "Andrew Morton" Cc: Paul Jackson Signed-off-by: Ingo Molnar commit 295deae401fc5b6f215e876d93b40f25cb968c88 Author: Yinghai Lu Date: Mon Jun 23 19:55:05 2008 -0700 x86: setup_arch 32bit move kvm_guest_init later Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit 9a2e59302668b9ac2fb2a2c9bca1fc793c5d0409 Author: Yinghai Lu Date: Mon Jun 23 19:54:23 2008 -0700 x86: setup_arch 32bit move command line copying early Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit 7465252ea0121c9cd28be68dfb86293a7554a111 Author: Yinghai Lu Date: Mon Jun 23 19:53:33 2008 -0700 x86: setup_arch 32bit move efi check later Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit 11cd0bc140b5d66566c9eb49c1058737888cd75c Author: Yinghai Lu Date: Mon Jun 23 19:51:10 2008 -0700 x86: move some func calling from setup_arch to paging_init those function depend on paging setup pgtable, so they could access the ram in bootmem region but just get mapped. Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit c09434571d4b1d8abf530ba4ce28cb868b45f2e5 Author: Yinghai Lu Date: Mon Jun 23 16:41:30 2008 -0700 x86: numa32 pfn print out using hex instead Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit 6a07a0edacba397205ff97308b22c6b6aab9f791 Author: Yinghai Lu Date: Mon Jun 23 14:02:36 2008 -0700 x86: fix compile warning in init_64.c len is long and ret is only for NUMA Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit 3eb11edc1321e14a121deeb8b18c177750226eca Author: Ingo Molnar Date: Mon Jun 23 22:19:22 2008 +0200 x86: build fix fix: arch/x86/kernel/setup_32.c:409: error: 'enable_local_apic' undeclared (first use in this function) arch/x86/kernel/setup_32.c:409: error: (Each undeclared identifier is reported only once arch/x86/kernel/setup_32.c:409: error: for each function it appears in.) Signed-off-by: Ingo Molnar commit 346cafecdeb17e1a0457a9e7eca239ef467b678c Author: Yinghai Lu Date: Mon Jun 23 03:06:14 2008 -0700 x86: clean up min_low_pfn for 32bit we already had early_res support, so don't need to track min_low_pfn. keep it to 0 always. also use init_bootmem_node instead of init_bootmem, so don't touch min_low_pfn. Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit 2ec65f8b89ea003c27ff7723525a2ee335a2b393 Author: Yinghai Lu Date: Mon Jun 23 03:05:30 2008 -0700 x86: clean up using max_low_pfn on 32-bit so that max_low_pfn is not changed after it is set. so we can move that early and out of initmem_init. could call find_low_pfn_range just after max_pfn is set. also could move reserve_initrd out of setup_bootmem_allocator so 32bit is more like 64bit. Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit bef1568d9714f1162086c32583ba7984a7ca8e3e Author: Yinghai Lu Date: Sun Jun 22 17:40:10 2008 -0700 x86: move reservetop and vmalloc parsing to pgtable_32.c also change reserve_top_address to __init attibute Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit 90d967e0ef68f5312ed4b081d5c9312ff53c1c93 Author: Yinghai Lu Date: Mon Jun 23 21:00:45 2008 +0200 x86: move find_max_low_pfn to init_32.c Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit 7f0be02c5ed1deb04c54c6a17f412e04f417df11 Author: Yinghai Lu Date: Sun Jun 22 17:37:54 2008 -0700 x86: move boot_params declaring to setup.c Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit 225c37d71bc8b97eb2063e8eda153b383328b20b Author: Yinghai Lu Date: Sun Jun 22 02:46:58 2008 -0700 x86: introduce reserve_initrd Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit b2ac82a0909aea0d2620ba4c189f37c567c21fe5 Author: Yinghai Lu Date: Sun Jun 22 02:45:39 2008 -0700 x86: introduce initmem_init for 32 bit Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit 1f75d7e32ed47b2ab8570771a2ce8c707a7225a2 Author: Yinghai Lu Date: Sun Jun 22 02:44:49 2008 -0700 x86: introduce initmem_init for 64 bit Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit 17b4cceb1feb2a8865ce47064dd3bd446063a5d5 Author: Yinghai Lu Date: Sat Jun 21 21:02:20 2008 -0700 x86: move elfcorehdr parsing to setup.c Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit ce97c40e28223c148e142bda7af48fd0f27c81f9 Author: Yinghai Lu Date: Sat Jun 21 20:22:09 2008 -0700 x86: move reserve_standard_io_resource to setup.c Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit f81be876eaa9c71b3024c3dc05e4d1bf210cc255 Author: Yinghai Lu Date: Sat Jun 21 19:16:52 2008 -0700 x86: remove two duplicated funcs in setup_32.c early_cpu_init is declared in processor.h memory_setup is defined in e820.c Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit 0f0124fa742da7c51e2e3c5ded7f5e5e06ddc195 Author: Yinghai Lu Date: Sat Jun 21 16:25:37 2008 -0700 x86: merge setup64.c into common_64.c Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit a9c1182fbd349882fe912245d6e03cd30943be2d Author: Yinghai Lu Date: Sat Jun 21 15:39:41 2008 -0700 x86: seperate probe_roms into another file it is only needed for 32bit Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit 7a1fd9866cbb59a00006f1e0fd5726951b167c97 Author: Yinghai Lu Date: Sat Jun 21 14:48:05 2008 -0700 x86: add e820_remove_range ... so could add real hole in e820 agp check is using request_mem_region, and could fail if e820 is reserved... Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit 9a250347591da3e60b5ee53dd1d341732f081117 Author: Yinghai Lu Date: Sat Jun 21 03:24:00 2008 -0700 x86: change identify_cpu to static Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit f580366f77cc4e035a68369105fbeae5bf436b4c Author: Yinghai Lu Date: Sat Jun 21 03:24:19 2008 -0700 x86: seperate funcs from setup_64 to cpu common_64.c Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit 04606618bb50c4ec754585a82732ea4facfe2bc9 Author: Yinghai Lu Date: Sat Jun 21 01:38:41 2008 -0700 x86: remove some acpi ifdefs in setup_32/64 Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit ce38cc79964687d3c7e92663bc040552416fca27 Author: Yinghai Lu Date: Sat Jun 21 01:14:27 2008 -0700 x86: clean up init_amd() 1. move out calling of check_enable_amd_mmconf_dmi out of setup_64.c put it into init_amd(), so don't need to make extra dmi check for system with other cpus. 2. 15 --> 0xf Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit 3c999f142665265afd0fe9190204dd051f17e505 Author: Yinghai Lu Date: Fri Jun 20 16:11:20 2008 -0700 x86: check command line when CONFIG_X86_MPPARSE is not set, v2 if acpi=off, acpi=noirq and pci=noacpi, we need to disable apic. Signed-off-by: Yinghai Lu Cc: Andrew Morton Cc: "Maciej W. Rozycki" Signed-off-by: Ingo Molnar commit 88a6846c70ad6bf33a545d554ace801d69e8a1a5 Author: Jeremy Fitzhardinge Date: Mon Jun 16 14:54:51 2008 -0700 xen: set max_pfn_mapped Signed-off-by: Jeremy Fitzhardinge Cc: Yinghai Lu Cc: the arch/x86 maintainers Signed-off-by: Ingo Molnar Cc: Yinghai Lu Signed-off-by: Ingo Molnar commit b792c755907cffceab393585b626ef2553c38538 Author: Jeremy Fitzhardinge Date: Mon Jun 16 14:54:49 2008 -0700 xen: reserve ISA space in e820 map [ TODO: release the underlying memory back to Xen. ] Signed-off-by: Jeremy Fitzhardinge Cc: Yinghai Lu Cc: the arch/x86 maintainers Signed-off-by: Ingo Molnar Cc: Yinghai Lu Cc: Ian Campbell Signed-off-by: Ingo Molnar commit be5bf9fa1c327fa6fd6e7ba44665437dd558dfe3 Author: Jeremy Fitzhardinge Date: Mon Jun 16 14:54:46 2008 -0700 xen: reserve Xen-specific memory in e820 map Signed-off-by: Jeremy Fitzhardinge Cc: Yinghai Lu Cc: the arch/x86 maintainers Signed-off-by: Ingo Molnar Cc: Yinghai Lu Signed-off-by: Ingo Molnar commit d52d53b8a5b258bfaab9223a5e7284fcfdd48577 Author: Yinghai Lu Date: Mon Jun 16 20:10:55 2008 -0700 RFC x86: try to remove arch_get_ram_range want to remove arch_get_ram_range, and use early_node_map instead. Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit 1ea598c29748a559a0086a84a016886d786e6272 Author: Ingo Molnar Date: Fri Jun 13 20:31:54 2008 +0200 x86: fix sleep.c build error fix: arch/x86/kernel/acpi/sleep.c: In function ‘acpi_save_state_mem': arch/x86/kernel/acpi/sleep.c:75: error: ‘stack_start' undeclared (first use in this function) arch/x86/kernel/acpi/sleep.c:75: error: (Each undeclared identifier is reported only once arch/x86/kernel/acpi/sleep.c:75: error: for each function it appears in.) Signed-off-by: Ingo Molnar commit 7f6cbc905ee22c457e0dcd0bba9d4affbc290a6f Author: Glauber Costa Date: Wed Jun 4 23:05:39 2008 -0700 x86: take load_sp0 out of smpboot.c there's no particular reason to do load_sp0 in different places for i386 and x86_64. They should all be in cpu_init. Right now, cpu_init itself is not integrated, but with this patch, the code becomes closer to each other, making in easier to integrate when the time comes. Furthermore, although doing it in do_boot_cpu for x86_64 is fine, since it's only a copy, load_sp0 should be executed in the cpu it refers to anyway. Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit 1481a3dd42c21ac4a8b9497cb9f5df816d6b064f Author: Glauber Costa Date: Wed Jun 4 15:35:03 2008 -0300 x86: move cpu_exit_clear to process_32.c Take it out of smpboot.c, and move it to process_32.c, closer to its only user. Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit b553a1e0ff48bd66fd18f705370e47c0b4ecea61 Author: Glauber Costa Date: Wed Jun 4 02:05:03 2008 -0300 x86: remove cpu from maps during cpu disable, take cpus out of all maps in i386, instead of just the online map. Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit 78e622705c69da9649ba87071d8de85054b62df8 Author: Glauber Costa Date: Wed Jun 4 02:03:07 2008 -0300 x86: change naming to match x86_64 Change unmap_cpu_to_logical_apicid to numa_remove_cpu. Besides being shorter, it is the same name x86_64 uses. We can save an ifdef in the code this way. Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit b5841765a2e735a38612c4e4a82170c33d701b3c Author: Glauber Costa Date: Wed May 28 13:38:28 2008 -0300 x86: provide connect_bsp_APIC for x86_64 Although it is not really needed, we provide it to get closer to i386. ifdefs around it are removed in smpboot.c Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit 3fde690011a84e19f98f77bfaa349b2119ddd2d2 Author: Glauber Costa Date: Wed May 28 20:34:19 2008 -0700 x86: change __setup_vector_irq with setup_vector_irq We create a version of it for i386, and then take the CONFIG_X86_64 ifdef out of the game. We could create a __setup_vector_irq for i386, but it would incur in an unnecessary lock taking. Moreover, it is better practice to only export setup_vector_irq anyway. Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit 86e430edf462e872ecfab28d6b8619be5ab9c300 Author: Glauber Costa Date: Wed May 28 20:05:46 2008 -0700 x86: remove ifdef from stepping The stepping won't affect x86_64, since there are not x86_64 k7's or pentiums. So, although it adds to the binary size, remove the ifdef for smoother integration Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit 0f385d1ddd0952e01a968bfa5512378ad23de6df Author: Glauber Costa Date: Wed May 28 17:09:53 2008 -0700 x86: clearing io_apic harmless for x86_64 so remove ifdef. Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit 3e9704739daf46a8ba6593d749c67b5f7cd633d2 Author: Glauber Costa Date: Wed May 28 13:01:54 2008 -0300 x86: boot secondary cpus through initial_code remove "initialize_secondary". Boot both architectures via initial_code. Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit e3f77edfc1d0beb7b10f9f31d9e39206f7dbef7b Author: Glauber Costa Date: Wed May 28 12:57:02 2008 -0300 x86: use initial_code for i386 x86_64 jumps to whatever is written in "initial_code" symbol, instead of a fixed address. Do it for i386 too. It will allow us to integrate more of the smp boot code. Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit a939098afcfa5f81d3474782ec15c6d114e57763 Author: Glauber Costa Date: Wed May 28 16:19:53 2008 -0700 x86: move x86_64 gdt closer to i386 i386 and x86_64 used two different schemes for maintaining the gdt. With this patch, x86_64 initial gdt table is defined in a .c file, same way as i386 is now. Also, we call it "gdt_page", and the descriptor, "early_gdt_descr". This way we achieve common naming, which can allow for more code integration. Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit 736f12bff9d9e7b4e895c64f73b190c8383fc2a1 Author: Glauber Costa Date: Tue May 27 20:14:51 2008 -0700 x86: don't use gdt_page openly. There's a macro available for that. Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit 9cf4f298e29abba25c16679fe7be70898223167e Author: Glauber Costa Date: Tue May 27 18:22:54 2008 -0700 x86: use stack_start in x86_64 call x86_64's init_rsp stack_start, just as i386 does. Put a zeroed stack segment for consistency. With this, we can eliminate one ugly ifdef in smpboot.c. Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit a7bf0bd5e6af7fe69342dabf2a3b721f0163469a Author: Jeremy Fitzhardinge Date: Wed May 28 15:02:14 2008 +0100 build: add __page_aligned_data and __page_aligned_bss Making a variable page-aligned by using __attribute__((section(".data.page_aligned"))) is fragile because if sizeof(variable) is not also a multiple of page size, it leaves variables in the remainder of the section unaligned. This patch introduces two new qualifiers, __page_aligned_data and __page_aligned_bss to set the section *and* the alignment of variables. This makes page-aligned variables more robust because the linker will make sure they're aligned properly. Unfortunately it requires *all* page-aligned data to use these macros... Signed-off-by: Ingo Molnar commit 1ecd27657b735128a728ebf0c31fce5e1456718a Author: Bernhard Walle Date: Fri Jun 20 15:38:22 2008 +0200 x86: unify crashkernel reservation for 32 and 64 bit This patch moves the reserve_crashkernel() to setup.c and removes the architecture-specific version. Both versions were more or less the same. I tested it on both x86-64 and i386, with CONFIG_KEXEC on and off (so that it compiles). Signed-off-by: Bernhard Walle Cc: yhlu.kernel@gmail.com Signed-off-by: Ingo Molnar commit 6236af82d8a989e150a02800c210eb61cb1e17be Merge: e3ae0ac... 8b7ef4e... Author: Ingo Molnar Date: Tue Jul 8 12:24:29 2008 +0200 Merge branch 'x86/fixmap' into x86/devel Conflicts: arch/x86/mm/init_64.c Signed-off-by: Ingo Molnar commit e3ae0acf59244ecf5b023ec99cef4b6b29d649bc Merge: 4b62ac9... e7eb872... Author: Ingo Molnar Date: Tue Jul 8 12:24:13 2008 +0200 Merge branch 'x86/uv' into x86/devel commit e7eb8726d0e144f0925972c4ecee945e91a42753 Author: Cliff Wickman Date: Mon Jun 23 08:32:25 2008 -0500 x86, SGI UV: uv_ptc_proc_write fix Someone could write 0 bytes to /proc/sgi_uv/ptc_statistics, causing optstr[count - 1] = '\0'; to write to who-knows-where. (Andi Kleen noticed this need from a patch I sent for similar code in the ia64 world (sn2_ptc_proc_write()).) (count less than zero is not possible here, as count is unsigned) Signed-off-by: Cliff Wickman Signed-off-by: Ingo Molnar commit cef53278682eb2604cbd99de64cdb59a8b35235a Author: Cliff Wickman Date: Thu Jun 19 11:16:24 2008 -0500 x86, SGI UV: TLB shootdown using broadcast assist unit, v6 v6: 6/19 close the security hole in uv_ptc_proc_write()) > Found a potential security hole while doing that: > static ssize_t uv_ptc_proc_write(struct file *file, const char __user *user, > size_t count, loff_t *data) > if (copy_from_user(optstr, user, count)) > return -EFAULT; > > is count guaranteed to never be larger than 64? is fixed below. It adds tlb_uv.o to the Makefile. Signed-off-by: Cliff Wickman Cc: mingo@elte.hu Signed-off-by: Ingo Molnar commit ab9c0bb8a8c1d71dd303abdaa61ec496128e2fbe Author: Jack Steiner Date: Mon Jun 16 12:09:10 2008 -0500 x86: increase MAX_APICS for very large x86-64 configs Increase the maximum number of apics when running very large configurations. This patch has no affect on most systems. The patch has no effect on any 32-bit kernel. It adds ~4k to the size of 64-bit kernels but only if NR_CPUS > 255. Signed-off-by: Jack Steiner Signed-off-by: Ingo Molnar commit b6df1b8bc1250191cfee15627697111c1cbda53f Author: Jack Steiner Date: Thu Jun 19 21:51:05 2008 -0500 x86: fix stack overflow for large values of MAX_APICS physid_mask_of_physid() causes a huge stack (12k) to be created if the number of APICS is large. Replace physid_mask_of_physid() with a new function that does not create large stacks. This is a problem only on large x86_64 systems. this paves the way to increase MAX_APICS. Signed-off-by: Jack Steiner Cc: linux-mm@kvack.org Cc: mingo@elte.hu Cc: tglx@linutronix.de Signed-off-by: Ingo Molnar commit d400524affeb84bdfc2b00cd561fbfb8c09dadd7 Author: Ingo Molnar Date: Wed Jun 18 14:51:57 2008 +0200 SGI UV: TLB shootdown using broadcast assist unit, fix fix: arch/x86/kernel/tlb_uv.c: In function ‘uv_table_bases_init': arch/x86/kernel/tlb_uv.c:612: error: ‘bau_tabsp' undeclared (first use in this function) arch/x86/kernel/tlb_uv.c:612: error: (Each undeclared identifier is reported only once arch/x86/kernel/tlb_uv.c:612: error: for each function it appears in.) Signed-off-by: Ingo Molnar commit b4c286e6af24a116228c8c9f58b9a9eb5b7c000a Author: Ingo Molnar Date: Wed Jun 18 14:28:19 2008 +0200 SGI UV: clean up arch/x86/kernel/tlb_uv.c Signed-off-by: Ingo Molnar commit dc163a41ffba22a6ef70b51e7ddf68aa13b4b414 Author: Ingo Molnar Date: Wed Jun 18 14:15:43 2008 +0200 SGI UV: TLB shootdown using broadcast assist unit TLB shootdown for SGI UV. v5: 6/12 corrections/improvements per Ingo's second review Signed-off-by: Cliff Wickman Signed-off-by: Ingo Molnar commit b194b120507276b4f09e2e14f941884e777fc7c8 Author: Cliff Wickman Date: Thu Jun 12 08:23:48 2008 -0500 SGI UV: TLB shootdown using broadcast assist unit, cleanups TLB shootdown for SGI UV. v1: 6/2 original v2: 6/3 corrections/improvements per Ingo's review v3: 6/4 split atomic operations off to a separate patch (Jeremy's review) v4: 6/12 include rather than (fixes a !SMP build problem that Ingo found) fix the index on uv_table_bases[blade] Signed-off-by: Cliff Wickman Signed-off-by: Ingo Molnar commit 73e991f45fe7644711c0c9dd357a1a2c6e222707 Author: Cliff Wickman Date: Wed Jun 4 15:33:17 2008 -0500 x86 atomic operations: atomic_or_long() atomic_inc_short() Provide atomic operations for increment of a 16-bit integer and logical OR into a 64-bit integer. Signed-off-by: Cliff Wickman Reviewed-by: Jeremy Fitzhardinge Signed-off-by: Ingo Molnar commit 1812924bb1823950c1dc95c478b71b037057356e Author: Cliff Wickman Date: Mon Jun 2 08:56:14 2008 -0500 x86, SGI UV: TLB shootdown using broadcast assist unit TLB shootdown for SGI UV. Depends on patch (in tip/x86/irq): x86-update-macros-used-by-uv-platform.patch Jack Steiner May 29 This patch provides the ability to flush TLB's in cpu's that are not on the local node. The hardware mechanism for distributing the flush messages is the UV's "broadcast assist unit". The hook to intercept TLB shootdown requests is a 2-line change to native_flush_tlb_others() (arch/x86/kernel/tlb_64.c). This code has been tested on a hardware simulator. The real hardware is not yet available. The shootdown statistics are provided through /proc/sgi_uv/ptc_statistics. The use of /sys was considered, but would have required the use of many /sys files. The debugfs was also considered, but these statistics should be available on an ongoing basis, not just for debugging. Issues to be fixed later: - The IRQ for the messaging interrupt is currently hardcoded as 200 (see UV_BAU_MESSAGE). It should be dynamically assigned in the future. - The use of appropriate udelay()'s is untested, as they are a problem in the simulator. Signed-off-by: Cliff Wickman Signed-off-by: Ingo Molnar commit d98b940ab29a245de84a1c138b866dcc29217601 Merge: cbd6712... 1b40a89... Author: Ingo Molnar Date: Tue Jul 8 12:23:00 2008 +0200 Merge branch 'linus' into x86/irq commit 4b62ac9a2b859f932afd5625362c927111b7dd9b Merge: 2b4fa85... 8700600... Author: Ingo Molnar Date: Tue Jul 8 12:17:08 2008 +0200 Merge branch 'x86/nmi' into x86/devel Conflicts: arch/x86/kernel/nmi.c arch/x86/kernel/nmi_32.c Signed-off-by: Ingo Molnar commit 2b4fa851b2f06fdb04cac808b57324f5e51e1578 Merge: 3de352b... 46f68e1... Author: Ingo Molnar Date: Tue Jul 8 11:59:23 2008 +0200 Merge branch 'x86/numa' into x86/devel Conflicts: arch/x86/Kconfig arch/x86/kernel/e820.c arch/x86/kernel/efi_64.c arch/x86/kernel/mpparse.c arch/x86/kernel/setup.c arch/x86/kernel/setup_32.c arch/x86/mm/init_64.c include/asm-x86/proto.h Signed-off-by: Ingo Molnar commit 46f68e1c6b04a04772e828ff3bcd07ed708805c2 Author: Bernhard Walle Date: Sun Jun 8 15:46:31 2008 +0200 x86: use reserve_bootmem_generic() to reserve crashkernel memory on x86_64 This patch uses reserve_bootmem_generic() instead of reserve_bootmem() to reserve the crashkernel memory on x86_64. That's necessary for NUMA machines, see 00212fef814612245ed0261cbac8426d0c9a31a5: [PATCH] Fix kdump Crash Kernel boot memory reservation for NUMA machines This patch will fix a boot memory reservation bug that trashes memory on the ES7000 when loading the kdump crash kernel. The code in arch/x86_64/kernel/setup.c to reserve boot memory for the crash kernel uses the non-numa aware "reserve_bootmem" function instead of the NUMA aware "reserve_bootmem_generic". I checked to make sure that no other function was using "reserve_bootmem" and found none, except the ones that had NUMA ifdef'ed out. I have tested this patch only on an ES7000 with NUMA on and off (numa=off) in a single (non-NUMA) and multi-cell (NUMA) configurations. Signed-off-by: Amul Shah Looks-good-to: Vivek Goyal Cc: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds The switch-back to reserve_bootmem() was accidentally introduced in 5c3391f9f749023a49c64d607da4fb49263690eb when adding the BOOTMEM_EXCLUSIVE parameter. Signed-off-by: Bernhard Walle Signed-off-by: Ingo Molnar commit 3fd052b1b46ac23a2316283a996fe6c32dbcf132 Author: Bernhard Walle Date: Sun Jun 8 15:46:30 2008 +0200 x86: add flags parameter to reserve_bootmem_generic() This patch adds a 'flags' parameter to reserve_bootmem_generic() like it already has been added in reserve_bootmem() with commit 72a7fe3967dbf86cb34e24fbf1d957fe24d2f246. It also changes all users to use BOOTMEM_DEFAULT, which doesn't effectively change the behaviour. Since the change is x86-specific, I don't think it's necessary to add a new API for migration. There are only 4 users of that function. The change is necessary for the next patch, using reserve_bootmem_generic() for crashkernel reservation. Signed-off-by: Bernhard Walle Signed-off-by: Ingo Molnar commit 053713f5745b8b08fb598adb65230bc168cb9d8d Author: Randy Dunlap Date: Thu Jun 5 11:10:59 2008 -0700 x86: fix setup.c printk format warning Fix setup.c printk format warning: linux-next-20080605/arch/x86/kernel/setup.c: In function 'setup_per_cpu_areas': linux-next-20080605/arch/x86/kernel/setup.c:173: warning: format '%lu' expects type 'long unsigned int', but argument 2 has type 'ssize_t' Signed-off-by: Randy Dunlap Signed-off-by: Ingo Molnar commit 03db1f74a7d823e3de3767f36b1e08829f6fb3a1 Author: Vegard Nossum Date: Fri Jun 6 16:33:25 2008 +0200 x86: don't return invalid pointers from node_to_cpumask() Signed-off-by: Vegard Nossum Signed-off-by: Ingo Molnar commit 076ac2af86c3b7f89ac31bc50a7508d3e035b786 Author: Mike Travis Date: Mon May 12 21:21:12 2008 +0200 sched, numa: replace MAX_NUMNODES with nr_node_ids in kernel/sched.c * Replace usages of MAX_NUMNODES with nr_node_ids in kernel/sched.c, where appropriate. This saves some allocated space as well as many wasted cycles going through node entries that are non-existent. Signed-off-by: Mike Travis Signed-off-by: Ingo Molnar commit 886533a3e370a6d5c4e46819d1e14bd2f20dbb3a Author: Thomas Gleixner Date: Mon May 12 15:43:36 2008 +0200 x86: numa_64.c fix shadowed variable sparse mutters: arch/x86/mm/numa_64.c:195:27: warning: symbol 'end_pfn' shadows an earlier one Signed-off-by: Thomas Gleixner Signed-off-by: Ingo Molnar commit 864fc31ea59798905a37cd896a3e093915a3b366 Author: Thomas Gleixner Date: Mon May 12 15:43:36 2008 +0200 x86: numa_64.c make local variables static plat_node_bdata, cmdline, nodemap_addr, nodemap_size are local to numa_64.c. Make them static Signed-off-by: Thomas Gleixner Signed-off-by: Ingo Molnar commit f307d25e638d3408659a2ec98fb3fd1737f7cb31 Author: Jeremy Fitzhardinge Date: Wed May 21 11:21:13 2008 +0100 x86: compile error fix for smpboot.c Without this patch, my link fails with: arch/x86/kernel/built-in.o(.cpuinit.text+0x3c6e): In function `get_local_pda': : undefined reference to `_cpu_pda' arch/x86/kernel/built-in.o(.cpuinit.text+0x3cd1): In function `get_local_pda': : undefined reference to `after_bootmem' arch/x86/kernel/built-in.o(.cpuinit.text+0x3cec): In function `get_local_pda': : undefined reference to `_cpu_pda' make[2]: *** [.tmp_vmlinux1] Error 1 Caused by commit 766da892634694f795b18b9538407816896fc470 x86: remove static boot_cpu_pda array v2 Signed-off-by: Thomas Gleixner commit 5deb0b2a25b7b568ab81f7c38052572ecf4ccc96 Author: Mike Travis Date: Mon May 12 21:21:13 2008 +0200 x86: leave initial __cpu_pda array in place until cpus are booted Ingo Molnar wrote: ... > they crashed after about 3 randconfig iterations with: > > early res: 4 [8000-afff] PGTABLE > early res: 5 [b000-b87f] MEMNODEMAP > PANIC: early exception 0e rip 10:ffffffff8077a150 error 2 cr2 37 > Pid: 0, comm: swapper Not tainted 2.6.25-sched-devel.git-x86-latest.git #14 > > Call Trace: > [] early_idt_handler+0x56/0x6a > [] ? numa_set_node+0x30/0x60 > [] ? numa_set_node+0x9/0x60 > [] numa_init_array+0x93/0xf0 > [] acpi_scan_nodes+0x3b9/0x3f0 > [] numa_initmem_init+0x136/0x150 > [] setup_arch+0x48f/0x700 > [] ? clockevents_register_notifier+0x3a/0x50 > [] start_kernel+0xd7/0x440 > [] x86_64_start_kernel+0x222/0x280 ... Here's the fixup... This one should follow the previous patches. Thanks, Mike Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 3461b0af025251bbc6b3d56c821c6ac2de6f7209 Author: Mike Travis Date: Mon May 12 21:21:13 2008 +0200 x86: remove static boot_cpu_pda array v2 * Remove the boot_cpu_pda array and pointer table from the data section. Allocate the pointer table and array during init. do_boot_cpu() will reallocate the pda in node local memory and if the cpu is being brought up before the bootmem array is released (after_bootmem = 0), then it will free the initial pda. This will happen for all cpus present at system startup. This removes 512k + 32k bytes from the data section. For inclusion into sched-devel/latest tree. Based on: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git + sched-devel/latest .../mingo/linux-2.6-sched-devel.git Signed-off-by: Mike Travis Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 9f248bde9d47cc177011198c9a15fb339b9f3215 Author: Mike Travis Date: Mon May 12 21:21:12 2008 +0200 x86: remove the static 256k node_to_cpumask_map * Consolidate node_to_cpumask operations and remove the 256k byte node_to_cpumask_map. This is done by allocating the node_to_cpumask_map array after the number of possible nodes (nr_node_ids) is known. * Debug printouts when CONFIG_DEBUG_PER_CPU_MAPS is active have been increased. It now shows faults when calling node_to_cpumask() and node_to_cpumask_ptr(). For inclusion into sched-devel/latest tree. Based on: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git + sched-devel/latest .../mingo/linux-2.6-sched-devel.git Signed-off-by: Mike Travis Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 7891a24e1ee50c96896c0cf7da216a8e7b573ca5 Author: Mike Travis Date: Mon May 12 21:21:12 2008 +0200 x86: restore pda nodenumber field * Restore the nodenumber field in the x86_64 pda. This field is slightly different than the x86_cpu_to_node_map mainly because it's a static indication of which node the cpu is on while the cpu to node map is a dyanamic mapping that may get reset if the cpu goes offline. This also simplifies the numa_node_id() macro. For inclusion into sched-devel/latest tree. Based on: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git + sched-devel/latest .../mingo/linux-2.6-sched-devel.git Signed-off-by: Mike Travis Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 23ca4bba3e20c6c3cb11c1bb0ab4770b724d39ac Author: Mike Travis Date: Mon May 12 21:21:12 2008 +0200 x86: cleanup early per cpu variables/accesses v4 * Introduce a new PER_CPU macro called "EARLY_PER_CPU". This is used by some per_cpu variables that are initialized and accessed before there are per_cpu areas allocated. ["Early" in respect to per_cpu variables is "earlier than the per_cpu areas have been setup".] This patchset adds these new macros: DEFINE_EARLY_PER_CPU(_type, _name, _initvalue) EXPORT_EARLY_PER_CPU_SYMBOL(_name) DECLARE_EARLY_PER_CPU(_type, _name) early_per_cpu_ptr(_name) early_per_cpu_map(_name, _idx) early_per_cpu(_name, _cpu) The DEFINE macro defines the per_cpu variable as well as the early map and pointer. It also initializes the per_cpu variable and map elements to "_initvalue". The early_* macros provide access to the initial map (usually setup during system init) and the early pointer. This pointer is initialized to point to the early map but is then NULL'ed when the actual per_cpu areas are setup. After that the per_cpu variable is the correct access to the variable. The early_per_cpu() macro is not very efficient but does show how to access the variable if you have a function that can be called both "early" and "late". It tests the early ptr to be NULL, and if not then it's still valid. Otherwise, the per_cpu variable is used instead: #define early_per_cpu(_name, _cpu) \ (early_per_cpu_ptr(_name) ? \ early_per_cpu_ptr(_name)[_cpu] : \ per_cpu(_name, _cpu)) A better method is to actually check the pointer manually. In the case below, numa_set_node can be called both "early" and "late": void __cpuinit numa_set_node(int cpu, int node) { int *cpu_to_node_map = early_per_cpu_ptr(x86_cpu_to_node_map); if (cpu_to_node_map) cpu_to_node_map[cpu] = node; else per_cpu(x86_cpu_to_node_map, cpu) = node; } * Add a flag "arch_provides_topology_pointers" that indicates pointers to topology cpumask_t maps are available. Otherwise, use the function returning the cpumask_t value. This is useful if cpumask_t set size is very large to avoid copying data on to/off of the stack. * The coverage of CONFIG_DEBUG_PER_CPU_MAPS has been increased while the non-debug case has been optimized a bit. * Remove an unreferenced compiler warning in drivers/base/topology.c * Clean up #ifdef in setup.c For inclusion into sched-devel/latest tree. Based on: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git + sched-devel/latest .../mingo/linux-2.6-sched-devel.git Signed-off-by: Mike Travis Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 1184dc2ffe2c8fb9afb766d870850f2c3165ef25 Author: Mike Travis Date: Mon May 12 21:21:12 2008 +0200 x86: modify Kconfig to allow up to 4096 cpus * Increase the limit of NR_CPUS to 4096 and introduce a boolean called "MAXSMP" which when set (e.g. "allyesconfig"), will set NR_CPUS = 4096 and NODES_SHIFT = 9 (512). * Changed max setting for NODES_SHIFT from 15 to 9 to accurately reflect the real limit. Signed-off-by: Mike Travis Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 7496b60654e759d0b9008b80908e80727904b3c4 Author: Mike Travis Date: Mon May 12 21:21:12 2008 +0200 x86: fix remove cpu_pda table patch Mike Travis wrote: > Ingo Molnar wrote: >> * Mike Travis wrote: >> >>> [Ingo - please replace "PATCH 07/11" with this one.] >>> >>> * Remove 544k bytes from the kernel by removing the boot_cpu_pda >>> array from the data section and allocating it during startup. >>> >>> Fixed panic in setup_per_cpu_areas when HOTPLUG_CPU not set. >>> >>> For inclusion into sched-devel/latest tree. >> sched-devel.git randconfig testing found another crash with your queue: >> >> [ 0.111060] Brought up 1 CPUs >> [ 0.111986] Total of 1 processors activated (4022.73 BogoMIPS). >> [ 0.112987] Testing NMI watchdog ... <1>BUG: unable to handle kernel NULL pointer dereference at 0000000000000040 >> [ 0.114982] IP: [] check_nmi_watchdog+0xb0/0x210 >> [ 0.114982] PGD 0 >> [ 0.114982] Oops: 0000 [1] SMP >> [ 0.114982] CPU 0 >> [............] >> >> http://redhat.com/~mingo/misc/config-Mon_Apr_28_23_25_25_CEST_2008.bad >> http://redhat.com/~mingo/misc/log-Mon_Apr_28_23_25_25_CEST_2008.bad >> >> Ingo > > Hi Ingo, > > I need a bit more information on your hardware configuration. Building a > kernel with the above config file started up fine on both the Intel and AMD > boxes. > > Based on the above output it looks like it might be a UP machine? ... Ok, I think I found it. In check_nmi_watchdog(): for (cpu = 0; cpu < NR_CPUS; cpu++) prev_nmi_count[cpu] = cpu_pda(cpu)->__nmi_count; As I mentioned it works fine on both of my systems so could you try it out? Thanks! Mike -- * Change function check_nmi_watchdog() to use nr_cpu_ids instead of NR_CPUS. Based on: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git + sched-devel/latest .../mingo/linux-2.6-sched-devel.git Signed-off-by: Mike Travis Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit dbb6152e6f72df367f8a955586c5e6282a7255e5 Author: Yinghai Lu Date: Sat Apr 19 01:30:16 2008 -0700 x86: don't call pxm_to_node again also make bus_numa work even if ACPI_NUMA is not defined. don't call pxm_to_node again, and use node directly. Signed-off-by: Yinghai Lu Signed-off-by: Thomas Gleixner Signed-off-by: Ingo Molnar commit b755de8dfdfef97effaa91379ffafcb81f4d62a1 Author: Yinghai Lu Date: Wed Feb 20 12:41:52 2008 -0800 x86: make dev_to_node return online node a numa system (with multi HT chains) may return node without ram. Aka it is not online. Try to get an online node, otherwise return -1. Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 3de352bbd86f890dd0c5e1c09a6a1b0b29e0f8ce Merge: 1b8ba39... 9340e1c... Author: Ingo Molnar Date: Tue Jul 8 11:14:58 2008 +0200 Merge branch 'x86/mpparse' into x86/devel Conflicts: arch/x86/Kconfig arch/x86/kernel/io_apic_32.c arch/x86/kernel/setup_64.c arch/x86/mm/init_32.c Signed-off-by: Ingo Molnar commit 9340e1ccdf7b9b22a2be7f51cd74e8b5e11961bf Author: Matthew Garrett Date: Tue Jul 1 01:12:06 2008 +0100 x86, ioapic, acpi quirk: disable IRQ 0 through I/O APIC for some HP systems Some HP laptops have a problem with their DSDT reporting as HP/SB400/10000, which includes some code which overrides all temperature trip points to 16C if the INTIN2 input of the I/O APIC is enabled. This input is incorrectly designated the ISA IRQ 0 via an interrupt source override even though it is wired to the output of the master 8259A and INTIN0 is not connected at all. So far two models have been identified, namely nx6125 and nx6325. Use a knob provided by the I/O APIC interrupt registration code to abandon any attempts to route IRQ 0 through the I/O APIC for these systems. Signed-off-by: Maciej W. Rozycki Cc: Len Brown Cc: Matthew Garrett Cc: "Rafael J. Wysocki" Signed-off-by: Ingo Molnar commit 471694ea6c6ccdf7131354f1d698d4d83a605293 Author: Maciej W. Rozycki Date: Tue Jul 1 01:11:35 2008 +0100 x86, ioapic, acpi: add a knob to disable IRQ 0 through I/O APIC As discovered recently some systems exhibit problems when the 8254 timer IRQ is routed through the I/O APIC. These problems do not affect the timer IRQ itself and therefore cannot be detected when the correctness of operation of the interrupt is verified in check_timer(). Therefore the I/O APIC path of the timer IRQ has to be disabled entirely. This is a change that lets platforms ask for the timer IRQ not to be registered in the I/O APIC interrupt tables. The local APIC and ExtINTA paths are unaffected. This request is only taken into account for ACPI platforms as MP table systems seem unaffected so far. Signed-off-by: Maciej W. Rozycki Cc: Len Brown Cc: Matthew Garrett Cc: "Rafael J. Wysocki" Signed-off-by: Ingo Molnar commit bad48f4b313a756ccde454c25c14c828e2fd5819 Author: Yinghai Lu Date: Fri Jun 20 07:33:31 2008 -0700 x86: simplify x86_mpparse dependency check "Maciej W. Rozycki" said: > Given X86_64 selects X86_LOCAL_APIC I am not sure the redundancy seen >above does not actually obscure the logic behind... I think: > > depends on X86_LOCAL_APIC && !X86_VISWS > >would be clearer and get the same. Suggested-by: Maciej W. Rozycki Signed-off-by: Yinghai Lu Cc: Andrew Morton Cc: Len Brown Signed-off-by: Ingo Molnar commit c73d8dd8595c4c6c1c016bb1ac4dd8035e67975b Author: Ingo Molnar Date: Tue Jul 8 10:47:39 2008 +0200 Revert parts of "x86: update mptable" Signed-off-by: Ingo Molnar commit a4caa18efe468acb3522e30763de57a67b3e438b Author: Yinghai Lu Date: Thu Jun 19 12:15:01 2008 -0700 x86: fix compiling when CONFIG_X86_MPPARSE is not set Signed-off-by: Yinghai Lu Cc: Andrew Morton Signed-off-by: Ingo Molnar commit 6695c85b2e6f9f2e9ccaa8af38b72f5ab4a5184f Author: Yinghai Lu Date: Thu Jun 19 12:13:09 2008 -0700 x86: let MPS support be selectable, v2 v2: seperate "fix for compiling when MPPARSE is not set" to another patch make X86_MPPARSE to be selectable only when acpi is set and X86_MPPARSE will be set if acpi is not set. Signed-off-by: Yinghai Lu Cc: Andrew Morton Cc: Maciej W. Rozycki Cc: Len Brown Signed-off-by: Ingo Molnar commit fcfa146e412023dd55f8855f240b2c2082dc1baa Author: Yinghai Lu Date: Wed Jun 18 17:29:31 2008 -0700 x86: update mptable fix with no ioapic v2 if the system doesn't have ioapic, we don't need to store entries for mptable update also let mp_config_acpi_gsi not call func in mpparse so later could decouple mpparse with acpi more easily Reported-by: Daniel Exner Signed-off-by: Yinghai Lu Cc: Andrew Morton Cc: Daniel Exner Cc: Len Brown Signed-off-by: Ingo Molnar commit 95a71a45c250177854f7c530810c88a8a19a443b Author: Yinghai Lu Date: Wed Jun 18 17:27:08 2008 -0700 x86: cleanup machine_specific_memory_setup, v2 1. let 64bit support 88 and e801 too 2. introduce default_machine_specific_memory_setup, and reuse it for voyager v2: fix 64 bit compiling Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit 66a6f8d539416c9664f3a04ecb12f55a0097ab8c Author: Yinghai Lu Date: Wed Jun 18 11:54:37 2008 -0700 x86: remove unused file after numaq etc depends on genericarch we don't need those mach_mpspec.h files now. Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit 1c6e55032e24ff79668581a0f296c278ef7edd4e Author: Yinghai Lu Date: Tue Jun 17 15:41:45 2008 -0700 x86: use acpi_numa_init to parse on 32-bit numa seperate SRAT finding and parsing from get_memcfg_from_srat, and let getmemcfg_from_srat only handle array from previous step. Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit 0699eae140a3eeca976df4e3b7699b1fa3f763cd Author: Yinghai Lu Date: Tue Jun 17 15:39:01 2008 -0700 x86: Kconfig cleanup with genericarch we already have summit and etc depends on genericarch, so use genericarch only. Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit 593a0cc39046515a438ca9fcc168115961f9f503 Author: Yinghai Lu Date: Tue Jun 17 10:02:45 2008 -0700 x86: move some function out of setup_bootmem_alloc ... to make it more like 64-bit. Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit 064d25f12014ae1d97c2882f9ab874995321f2b2 Author: Yinghai Lu Date: Mon Jun 16 19:58:28 2008 -0700 x86: merge setup_memory_map with e820 ... and kill e820_32/64.c and e820_32/64.h Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit cc9f7a0ccf000d4db5fbdc7b0ae48eefea102f69 Author: Yinghai Lu Date: Mon Jun 16 16:11:08 2008 -0700 x86: kill bad_ppro so don't punish all other cpus without that problem when init highmem Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit 41c094fd3ca54f1a71233049cf136ff94c91f4ae Author: Yinghai Lu Date: Mon Jun 16 13:03:31 2008 -0700 x86: move e820_resource_resources to e820.c and make 32-bit resource registration more like 64 bit. also move probe_roms back to setup_32.c Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit 8c5beb50d3ec915d15c4d38aa37282309a65f14e Author: Huang, Ying Date: Wed Jun 11 11:33:39 2008 +0800 x86 boot: pass E820 memory map entries more than 128 via linked list of setup data Because of the size limits of struct boot_params (zero page), the maximum number of E820 memory map entries can be passed to kernel is 128. As pointed by Paul Jackson, there is some machine produced by SGI with so many nodes that the number of E820 memory map entries is more than 128. To enabling Linux kernel on these system, a new setup data type named SETUP_E820_EXT is defined to pass additional memory map entries to Linux kernel. This patch is based on x86/auto-latest branch of git-x86 tree and has been tested on x86_64 and i386 platform. Signed-off-by: Huang Ying Signed-off-by: Ingo Molnar commit b5bc6c0e55000dab86b73f838f5ad02908b23755 Author: Yinghai Lu Date: Sat Jun 14 18:32:52 2008 -0700 x86, mm: use add_highpages_with_active_regions() for high pages init v2 use early_node_map to init high pages, so we can remove page_is_ram() and page_is_reserved_early() in the big loop with add_one_highpage also remove page_is_reserved_early(), it is not needed anymore. v2: fix the build of other platforms Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit d0be6bdea103b8d04c8a3495538b7c0011ae4129 Author: Yinghai Lu Date: Sun Jun 15 18:58:51 2008 -0700 x86: rename two e820 related functions rename update_memory_range to e820_update_range rename add_memory_region to e820_add_region to make it more clear that they are about e820 map operations. Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit 6df8809bbd1b48cc6d428df7372ed749c8711641 Author: Yinghai Lu Date: Sun Jun 15 18:19:46 2008 -0700 x86: use dstapic in mp_config_acpi_legacy_irqs so we don't get the same value multiple times. also make mp_config_acpi_legacy_irqs more readable by moving assignments together. Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit d867e5310bd3c560093d39669ef52ff7f1b5711a Author: Yinghai Lu Date: Sat Jun 14 01:26:41 2008 -0700 x86: keep MP_intsrc_info untouched if we do not update mptable Daniel Exner reported IO-APIC enumeration breakage in linux-next. Alexey Starikovskiy found out that it might be related to commit 2944e16b25 "x86: update mptable". use enable_update_mptable to decide if need check before add mp_irqs array. Reported-by: Daniel Exner Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit 9a27f5c51629c3d3b7718dd4be3d2722b472fafe Author: Yinghai Lu Date: Fri Jun 13 20:07:03 2008 -0700 x86: clean up relocate_initrd 1. move that before zone_sizes_init ... 2. add free_early for one old one, otherwise it will be be reserved again when we init highmem. Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit cc1050bafebfb1d7935331282e948b5016318192 Author: Yinghai Lu Date: Fri Jun 13 19:08:52 2008 -0700 x86: replace shrink_active_range() with remove_active_range() in case we have kva before ramdisk on a node, we still need to use those ranges. v2: reserve_early kva ram area, in case there are holes in highmem, to avoid those area could be treat as free high pages. Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit d2dbf343329dc777d77488743465f7be4245971d Author: Yinghai Lu Date: Fri Jun 13 02:00:56 2008 -0700 x86: clean up reserve_bootmem_generic() and port it to 32-bit 1. add reserve_bootmem_generic for 32bit 2. change len to unsigned long 3. make early_res_to_bootmem to use it Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit b1f006b65c12b85df81f12c1073ad18fd26f4a16 Author: Yinghai Lu Date: Mon Jun 9 18:11:36 2008 -0700 x86: make generic arch support NUMAQ, fix #2 we are checking mptable early for numaq, so don't need to reserve_bootmem for it. bootmem is not there yet. do the same thing as 64-bit. found it on 64g above system from 64-bit kernel kexec to 32 bit kernel with numaq support. Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit b20d70b70e9aa854c47d2af10659f1033b6d69bb Author: Yinghai Lu Date: Mon Jun 9 17:00:15 2008 -0700 x86: make generic arch support NUMAQ, fix fix typo in bigsmp switching. Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit ab4a465e96adf2f3a8aaa95384bacfa9ab661e35 Author: Yinghai Lu Date: Tue Jun 10 12:55:54 2008 -0700 x86: e820 merge parsing of the mem=/memmap= boot parameters since we now have 32-bit support for e820_register_active_regions(), we can merge the parsing of the mem=/memmap= boot parameters. Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit df5f6c212cc049d1989b5ce71bb863a367c261e9 Author: Ingo Molnar Date: Tue Jun 10 16:38:41 2008 +0200 x86: unify the reserve_bootmem() behavior of early_res_to_bootmem() Signed-off-by: Ingo Molnar commit 12448e3ef3ae7fca7a7ad205084f45a67dcc4356 Author: Bernhard Walle Date: Sun Jun 8 15:46:31 2008 +0200 x86: use reserve_bootmem_generic() to reserve crashkernel memory on x86_64 This patch uses reserve_bootmem_generic() instead of reserve_bootmem() to reserve the crashkernel memory on x86_64. That's necessary for NUMA machines, see 00212fef814612245ed0261cbac8426d0c9a31a5: [PATCH] Fix kdump Crash Kernel boot memory reservation for NUMA machines This patch will fix a boot memory reservation bug that trashes memory on the ES7000 when loading the kdump crash kernel. The code in arch/x86_64/kernel/setup.c to reserve boot memory for the crash kernel uses the non-numa aware "reserve_bootmem" function instead of the NUMA aware "reserve_bootmem_generic". I checked to make sure that no other function was using "reserve_bootmem" and found none, except the ones that had NUMA ifdef'ed out. I have tested this patch only on an ES7000 with NUMA on and off (numa=off) in a single (non-NUMA) and multi-cell (NUMA) configurations. Signed-off-by: Amul Shah Looks-good-to: Vivek Goyal Cc: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds The switch-back to reserve_bootmem() was accidentally introduced in 5c3391f9f749023a49c64d607da4fb49263690eb when adding the BOOTMEM_EXCLUSIVE parameter. Signed-off-by: Bernhard Walle Signed-off-by: Ingo Molnar commit 8b2ef1d7285740953a2c4ef7faf15fdfc5e2f358 Author: Bernhard Walle Date: Sun Jun 8 15:46:30 2008 +0200 x86: add flags parameter to reserve_bootmem_generic() This patch adds a 'flags' parameter to reserve_bootmem_generic() like it already has been added in reserve_bootmem() with commit 72a7fe3967dbf86cb34e24fbf1d957fe24d2f246. It also changes all users to use BOOTMEM_DEFAULT, which doesn't effectively change the behaviour. Since the change is x86-specific, I don't think it's necessary to add a new API for migration. There are only 4 users of that function. The change is necessary for the next patch, using reserve_bootmem_generic() for crashkernel reservation. Signed-off-by: Bernhard Walle Signed-off-by: Ingo Molnar commit 896395c290f902576270d84291c1f7f8bfbe339d Merge: af1cf20... 1b40a89... Author: Ingo Molnar Date: Tue Jul 8 10:32:56 2008 +0200 Merge branch 'linus' into tmp.x86.mpparse.new commit 1b8ba39a3fad9c58532f6dad12c94d6e675be656 Merge: 58cf352... cbd6712... Author: Ingo Molnar Date: Tue Jul 8 09:53:57 2008 +0200 Merge branch 'x86/irq' into x86/devel Conflicts: arch/x86/kernel/i8259.c arch/x86/kernel/irqinit_64.c Signed-off-by: Ingo Molnar commit 58cf35228fec541418cc3bd781d6c069d904815e Merge: 3c1ca43... c1f64a5... 28f73e5... b664d6b... f294a8c... 45fdc3a... 8b7fd21... Author: Ingo Molnar Date: Tue Jul 8 09:46:15 2008 +0200 Merge branches 'x86/mmio', 'x86/delay', 'x86/idle', 'x86/oprofile', 'x86/debug', 'x86/ptrace' and 'x86/amd-iommu' into x86/devel commit 3c1ca43fafea41e38cb2d0c1684119af4c1de547 Merge: 6924d1a... 6bcb13b... Author: Ingo Molnar Date: Tue Jul 8 09:43:01 2008 +0200 Merge branch 'x86/setup' into x86/devel commit 6924d1ab8b7bbe5ab416713f5701b3316b2df85b Merge: 4e78c91... 25556c1... b764a15... 437a0a5... 41b3eae... 84e65b0... 684eb01... 9302213... 5cb04df... 44974c8... 48cf937... 205f932... c54f9da... 0ed368c... b478458... 2d144e6... 607baf1... 33af903... 3557b18... 63687a5... 009b9fc... f6477cc... e6b0ede... 400d349... Author: Ingo Molnar Date: Tue Jul 8 09:16:56 2008 +0200 Merge branches 'x86/numa-fixes', 'x86/apic', 'x86/apm', 'x86/bitops', 'x86/build', 'x86/cleanups', 'x86/cpa', 'x86/cpu', 'x86/defconfig', 'x86/gart', 'x86/i8259', 'x86/intel', 'x86/irqstats', 'x86/kconfig', 'x86/ldt', 'x86/mce', 'x86/memtest', 'x86/pat', 'x86/ptemask', 'x86/resumetrace', 'x86/threadinfo', 'x86/timers', 'x86/vdso' and 'x86/xen' into x86/devel commit 25556c1699ad84dd6077adf67c92eba362aa7dc2 Author: Christophe Jaillet Date: Sun Jun 22 22:13:48 2008 +0200 x86, arch/x86/kernel/io_apic_32.c: use kzalloc instead of kmalloc/memset 1) replace kmalloc/memset with equivalent kzalloc. Signed-off-by: Christophe Jaillet Cc: cj Cc: petero2@telia.com Signed-off-by: Ingo Molnar commit 7f0dbbc08d80df7ea15d8da4f0d78255891c8812 Author: Maciej W. Rozycki Date: Fri Jun 20 01:35:07 2008 +0100 x86: fix IO APIC breakage on HP nx6325, v2 > That helped a lot, the system seems to work normally now. > > Here's the relevant snippet from dmesg: > > [ 0.108006] ..TIMER: vector=0x30 apic1=0 pin1=2 apic2=-1 pin2=-1 > [ 0.108006] ..MP-BIOS bug: 8254 timer not connected to IO-APIC > [ 0.108006] ...trying to set up timer (IRQ0) through the 8259A ... <3> > [ 0.108006] ..... (found apic 0 pin 2) ...<3> failed. > [ 0.108006] ...trying to set up timer as Virtual Wire IRQ...<3> works. > > and the whole thing is at: http://www.sisk.pl/kernel/debug/20080618/dmesg-2.log Hmm, that only proved the 8259A is indeed wired to the pin #2 of the I/O APIC. > I, personally, don't have any and AMD only has SB600 documentation on its > web page (it's still marked as "AMD confidential" ;-)). Well, the IC block is most likely the same as that's not rocket science and once done there is no need to fiddle with that. That written, I am afraid there is nothing useful about the IC in the document, except that it's there and consists of an I/O APIC providing 24 inputs and the usual pair of 8259A cores. Thanks for the reference anyway. > There is an interrupt controller in there, but I'm not sure if there's any > 8259A. The northbridge is on the CPU, actually. I will praise the day someone ships an x86 machine without an 8259A core! As expressed in another mail I suspect there may actually be a direct route from the 8254 to INTIN0 in the southbridge -- this is what other bootstrap logs seen in the Internet suggest. This would mean this particular BIOS is buggy (is it the latest version?) and provides an incorrect IRQ override in its ACPI tables, for example because the responsible block has been blindly copied from a machine using a commoner wiring. This could be moderately easily fixed up with a quirk based on the PCI ID (after checking it again, we actually used to have a quirk for ATI in this area, but the way it was done suggests the issue was not understood well enough). Could you please remove the hack sent yesterday and test the patch provided below? I do hope it builds, but I have no immediate means to check it. Please report the output. The intent is to test INTIN0 directly before testing INTIN2 through the 8259A. Thanks. Aside of that, what I have gathered from your reports (please correct me if I have got it wrong) is that when the through-8259A mode is used, then after a while 8254 timer interrupts stop arriving. What's interesting, the "Virtual Wire IRQ" seems to work for you correctly (that's quite an odd setup where a local APIC input is used in the native mode -- please post /proc/interrupts for confirmation), which in turn implies the master 8259A drives its INT output as we expect. Why would the I/O APIC input have problems then? Hmm... [ mingo@elte.hu: revert the "x86: fix IO APIC breakage on HP nx6325" version. ] Signed-off-by: Ingo Molnar commit cd08d0754ecb0cb9293c8476cb33ded1d23d0d8f Author: Maciej W. Rozycki Date: Thu Jun 19 00:39:33 2008 +0100 x86: fix IO APIC breakage on HP nx6325 On Thu, 19 Jun 2008, Rafael J. Wysocki wrote: > > With such a configuration the "x86: I/O APIC: timer through 8259A > > second-chance" patch should not matter, because the only change it > > introduces is an attempt to try the same I/O APIC pin again, but with the > > IRQ0 line of the master 8259A enabled. That's not a terribly unusual > > configuration and nothing should get confused in the system. > > But it _does_ get confused, really. Something certainly gets confused, but so far I am not sure which bit exactly it is, are you? > > Barring the unlikely possibility of the 8259A actually being wired to > > INTIN2 of the I/O APIC I can see two possible explanations: > > > > 1. The 8259A interrupt actually escapes to the CPU somehow and is handled > > as an ExtINTA interrupt. This would make the code in check_timer() > > decide it has found a working configuration, while actually it has been > > fooled. [...] > Here you go: > > [ 0.108006] ..TIMER: vector=0x30 apic1=0 pin1=2 apic2=-1 pin2=-1 > [ 0.108006] ..MP-BIOS bug: 8254 timer not connected to IO-APIC > [ 0.108006] ...trying to set up timer (IRQ0) through the 8259A ... <3> > [ 0.108006] ..... (found apic 0 pin 2) ...<3> works. > > The full dmesg is at: http://www.sisk.pl/kernel/debug/20080618/dmesg-1.log Thanks. In this case I suspect the case #1 quoted above happens, that is the 8259A manages to deliver its interrupt somehow. Note at this stage it is meant to be in the AEOI mode, so it can happily resubmit the interrupt indefinitely with no additional handling as long as it receives INTA cycles. Can you please try the patch below on top of "x86: I/O APIC: timer through 8259A second-chance" to see whether my hypothesis is true? It modifies the through-8259A setup path so that the APIC input gets masked, but the 8259A has the timer interrupt still enabled. Let me know how the timer interrupt is routed in this case. Bisected-by: "Rafael J. Wysocki" Tested-by: "Rafael J. Wysocki" Signed-off-by: Ingo Molnar commit 360624484c81d55f88b1e5f48ce24c9243ce38e5 Author: Paolo Ciarrocchi Date: Sun Jun 8 13:07:18 2008 +0200 x86: coding style fixes to arch/x86/kernel/io_apic_32.c Before: total: 91 errors, 73 warnings, 2850 lines checked After: total: 1 errors, 47 warnings, 2848 lines checked Compile tested: paolo@paolo-desktop:/tmp$ size io* text data bss dec hex filename 13836 1756 11104 26696 6848 io_apic_32.o.after 13836 1756 11104 26696 6848 io_apic_32.o.before Signed-off-by: Paolo Ciarrocchi Signed-off-by: Ingo Molnar commit 46b3b4ef1ea2a0892b9b38b6a0c65a3f33b504aa Author: Cyrill Gorcunov Date: Sat Jun 7 19:53:57 2008 +0400 x86, io-apic: use predefined names instead of numeric constants This patch replaces some hard-coded numbers with predefined names. Signed-off-by: Cyrill Gorcunov Signed-off-by: Ingo Molnar commit d3f020d2f9bb9a61ca64d4eb058c9f68f827a2b4 Author: Cyrill Gorcunov Date: Sat Jun 7 19:53:56 2008 +0400 x86, io-apic: define names for redirection table entry fields Each I/O APIC redirection table entry has a number of fields. Define names for them to eliminate reference by hard coded numbers. Signed-off-by: Cyrill Gorcunov Signed-off-by: Ingo Molnar commit d788bada2f6c49673f85338ac4c0c642e5e52cff Author: Maciej W. Rozycki Date: Fri Jun 6 03:28:13 2008 +0100 x86: APIC/SMP: Downgrade the NMI watchdog for "noapic" If configured to use the I/O APIC, the NMI watchdog is deemed to fail if the chip has been deactivated as a result of "noapic". Downgrade to the local APIC watchdog similarly to what is done for the UP case. Signed-off-by: Maciej W. Rozycki Signed-off-by: Ingo Molnar commit d54db1ac9ecde9bcb8a561595b02c1d970d3a4d6 Author: Maciej W. Rozycki Date: Fri Jun 6 03:28:02 2008 +0100 x86: APIC/SMP: Downgrade the NMI watchdog for "nosmp" If configured to use the I/O APIC, the NMI watchdog is deemed to fail if the chip has been deactivated as a result of "nosmp". Downgrade to the local APIC watchdog similarly to what is done for the UP case. Signed-off-by: Maciej W. Rozycki Signed-off-by: Ingo Molnar commit 19662027488946e34dd54d3bb408fa3307681d7d Author: Maciej W. Rozycki Date: Fri Jun 6 03:27:56 2008 +0100 x86: APIC/UP: Remove redundant NMI watchdog downgrade For the UP case the NMI watchdog downgrade is done consistently in APIC_init_uniprocessor() now. Remove redundant code used only when BIOS-disabled local APIC is activated. Signed-off-by: Maciej W. Rozycki Signed-off-by: Ingo Molnar commit acae7d906f2f81d814e9c3730eeb19dfd3bf3bb4 Author: Maciej W. Rozycki Date: Fri Jun 6 03:27:49 2008 +0100 x86: APIC/UP: Downgrade the NMI watchdog for no I/O APIC If configured to use the I/O APIC, the NMI watchdog is deemed to fail if the chip will not be used in the UP configuration, because "noapic" has been specified or the chip is simply not there. Downgrade to the local APIC watchdog to rectify. The new #ifdef is ugly, I know. A proper solution is to provide suitable definitions of smp_found_config, etc. for !CONFIG_X86_IO_APIC in a header. Likewise the whole if () condition should be moved to a static inline function. Such clean-ups are beyond the scope of this change and can be done once the whole issue of the timer has been sorted out. Signed-off-by: Maciej W. Rozycki Signed-off-by: Ingo Molnar commit 148b50830993acc67129f09c544d9167291e5458 Author: Maciej W. Rozycki Date: Fri Jun 6 03:27:41 2008 +0100 x86: NMI watchdog: Downgrade helper A downgrade helper for the NMI watchdog to be used in all places where the I/O APIC watchdog may have been requested, but the I/O APIC is found not to be there or meant to be left disabled. This is so that the reconfiguration is cosistent and defined in a single place only. Signed-off-by: Maciej W. Rozycki Signed-off-by: Ingo Molnar commit 6fe9fe875691e15eda61b992e03257e68aa5ba4f Author: Ingo Molnar Date: Sun Jun 8 10:14:40 2008 +0200 Revert "x86: APIC/SMP: downgrade the NMI watchdog for "nosmp"" This reverts commit 791b93d3dfaf16c23e978bec0cc0a3dd9d855d63. A better fix from Maciej will be merged. commit ab5a5be099cb20a1c006bf0e211c48502d7ebc44 Author: Ingo Molnar Date: Sun Jun 8 10:13:33 2008 +0200 Revert "x86, io-apic: fix nmi_watchdog=1 bootup hang" This reverts commit 2229ff84f01746d02fb6b79e156fb5cce48c908f. A better fix from Maciej will be merged. commit ff11571b25152edfb1eb0e6feb7e0009670fe4a5 Author: Ingo Molnar Date: Thu Jun 5 11:17:16 2008 +0200 x86, io-apic: fix nmi_watchdog=1 bootup hang nmi_watchdog=1 hangs on 64-bit: [ 0.250000] Detected 12.564 MHz APIC timer. [ 0.254178] APIC timer registered as dummy, due to nmi_watchdog=1! [ 0.260366] Testing NMI watchdog ... <4>WARNING: CPU#0: NMI appears to be stuck (0->0)! [ ... ] [ 0.470003] calling genl_init+0x0/0xd0 [ hard hang ] bisected it down to: git-bisect start git-bisect good 1beee8dc8cf58e3f605bd7b34d7a39939be7d8d2 git-bisect bad 11582ece0aaa2d0f94f345c08a4ab9997078a083 git-bisect bad 5479c623bb44089844022c03d4c0eb16d5b7a15f git-bisect bad cfb4c7fabeb499e1c29f9d1878968e37a938e28a git-bisect good 246dd412d31e4f5de1d43aa6422a325b785f36e4 git-bisect bad 3f8237eaff7dc1e35fa791dae095574fd974e671 git-bisect good 90e23b13ab849e2a11f00c655eb3a2011b4623be git-bisect bad 833526a34eeefc117df3191a594c3c3a4f15a9ac git-bisect good 791b93d3dfaf16c23e978bec0cc0a3dd9d855d63 git-bisect bad 65767c64068f2c93e56a1accfed5c78230ac12d7 git-bisect bad 2abc5c05dd82c188e3bdf6641a274f013348d14b git-bisect bad 317e1f2597ffb4d4db940577bbe56dc6e881ef07 | 317e1f2597ffb4d4db940577bbe56dc6e881ef07 is first bad commit | commit 317e1f2597ffb4d4db940577bbe56dc6e881ef07 | Author: Maciej W. Rozycki | Date: Wed May 21 22:10:22 2008 +0100 | x86: I/O APIC: clean up the 8259A on a NMI watchdog failure the problem is that in the dummy-lapic branch we rely on the i8259A but if the NMI watchdog fails we turn off IRQ 0 - which doesnt work too well ;-) Signed-off-by: Ingo Molnar commit 067fa0ff0c89d25c2136ed095c72213089d4bb4e Author: Cyrill Gorcunov Date: Thu May 29 22:32:30 2008 +0400 x86: IO-APIC - use NMI_NONE instead of numeric constant Not sure but maybe it is better to use NMI_DISABLED, will take a look. But for now this patch is not change anything in logic so it will not hurt/broke the kernel. For most cases nmi_watchdog assignment is by one of NMI_* macro so I think there it make sense too. Signed-off-by: Cyrill Gorcunov Signed-off-by: Ingo Molnar commit b1b57ee135ac7614184faa7d7345b5e7098cb81d Author: Ingo Molnar Date: Sat May 31 12:20:10 2008 +0200 x86 build fix: arch/x86/kernel/io_apic_64.c: In function 'check_timer': arch/x86/kernel/io_apic_64.c:1688: error: 'vector' undeclared (first use in this function) arch/x86/kernel/io_apic_64.c:1688: error: (Each undeclared identifier is reported only once arch/x86/kernel/io_apic_64.c:1688: error: for each function it appears in.) commit 431ee79db0a9552314d787446044973a8176b57d Author: Thomas Gleixner Date: Mon May 12 15:43:35 2008 +0200 x86: apic_64.c fix sparse warnings about shadowed variables Signed-off-by: Thomas Gleixner Signed-off-by: Ingo Molnar commit 7223daf5e1a6298e459db84442adc04d68a6a42d Author: Thomas Gleixner Date: Mon May 12 15:43:36 2008 +0200 x86: make irq_cfg static Signed-off-by: Thomas Gleixner Signed-off-by: Ingo Molnar commit 071565095897dff9668cd4a2343160ae31538c27 Author: Thomas Gleixner Date: Mon May 12 15:43:37 2008 +0200 x86: move pci_routirq declaration to pci.h Signed-off-by: Thomas Gleixner Signed-off-by: Ingo Molnar commit 691874fa96d6349a8b60f8ea9c2bae52ece79941 Author: Maciej W. Rozycki Date: Tue May 27 21:19:51 2008 +0100 x86: I/O APIC: timer through 8259A second-chance Some systems incorrectly report the ExtINTA pin of the I/O APIC as the genuine target of the timer interrupt. Here is a change that copies timer pin information found to the other pin if one has been found only. This way both a direct and a through-8259A route is tested with the pin letting these problematic systems work well enough. If no timer pin information has been found for the I/O APIC, then local APIC variations are tried only, similarly to what is done without the change (except without the misleading messages). Obviously if we try the first-chance path without being told by the BIOS to do so, we should not complain either, so do not print the message in this case. The 64-bit variation should be updated with a call to replace_pin_at_irq() which can be done with the upcoming merge. Since add_pin_to_irq() is now always called in the first-chance path, the condition to require it in the second-chance path no longer happens. Signed-off-by: Maciej W. Rozycki Signed-off-by: Ingo Molnar commit 03be750559b2fe20d85dd968e08d5fe1c3accf83 Author: Maciej W. Rozycki Date: Tue May 27 21:19:45 2008 +0100 x86: I/O APIC: keep the timer IRQ masked during set-up Keep the timer interrupt line masked when reconfiguring its interrupt redirection entry in the I/O APIC. Signed-off-by: Maciej W. Rozycki Signed-off-by: Ingo Molnar commit 24742ece8eb01b5855059020ba1c09173fd9b732 Author: Maciej W. Rozycki Date: Tue May 27 21:19:40 2008 +0100 x86: I/O APIC: unmask the second-chance timer interrupt Unmask the timer interrupt line set up in the through-8259A mode explicitly after setup_timer_IRQ0_pin() has set up the I/O APIC interrupt redirection entry to let the two operations be unbound from each other. Signed-off-by: Maciej W. Rozycki Signed-off-by: Ingo Molnar commit f7633ce55b2ea2926a39d7ca9d0bb06c43edd2c2 Author: Maciej W. Rozycki Date: Tue May 27 21:19:34 2008 +0100 x86: I/O APIC: rename setup_ExtINT_IRQ0_pin() Rename setup_ExtINT_IRQ0_pin() to setup_timer_IRQ0_pin() to better reflect the upcoming role of a function setting up a (semi-)arbitrary I/O APIC pin appropriately for the 8254 timer. By "appropriate" the following settings are meant: edge-triggered, active-high, all the other settings per-architecture. Adjust comments to reflect code appropriately. No functional changes. Signed-off-by: Maciej W. Rozycki Signed-off-by: Ingo Molnar commit 6b4722a7779ebadcf016fd96ce3156b6acda8a31 Author: Maciej W. Rozycki Date: Tue May 27 21:19:28 2008 +0100 x86: I/O APIC: remove redundant LVT0 masking The LINT0 line of the local APIC is masked in the LVT0 entry in check_timer() before this function is ever called. Removed the redundant unmasking for better control. Signed-off-by: Maciej W. Rozycki Signed-off-by: Ingo Molnar commit 80d16bace63e057d30337e48d70aef0881656457 Author: Maciej W. Rozycki Date: Tue May 27 21:19:22 2008 +0100 x86: I/O APIC: remove redundant 8259A {,un}masking For a better control the masking and unmasking of the timer interrupt line in the 8259A operating in the 'Virtual Wire' mode has been moved out of setup_ExtINT_IRQ0_pin() now, so remove the redundant calls from the function. Signed-off-by: Maciej W. Rozycki Signed-off-by: Ingo Molnar commit f08252623c7981f5cea70e4fab4983a94fc52212 Author: Maciej W. Rozycki Date: Tue May 27 21:19:16 2008 +0100 x86: I/O APIC: fix the name of the through-8259A handler When the through-8259A mode is used for the timer, the call to set_irq_handler() will register a NULL handler name, resulting in "IO-APIC-" reported. Fix by calling ioapic_register_intr() as done for all the other I/O APIC interrupts. The 64-bit variation calls set_irq_chip_and_handler_name() here needlessly and should get fixed with the upcoming merge. Signed-off-by: Maciej W. Rozycki Signed-off-by: Ingo Molnar commit 9a1c61929121cbd597a5575f82711c0db8ee1778 Author: Maciej W. Rozycki Date: Tue May 27 21:19:09 2008 +0100 x86: I/O APIC: fix the name of the L-APIC IRQ handler The local APIC interrupt handler gets registered with set_irq_chip_and_handler_name(), which results in "local-APIC-edge-fasteoi" reported as the name of the handler. Fix by removing the type of the handler left over from before the generic handlers were introduced. The 64-bit variation should get fixed with the upcoming merge. NB It should really use the "edge" handler and not the "fasteoi" one, but that's a separate issue. Signed-off-by: Maciej W. Rozycki Signed-off-by: Ingo Molnar commit 35542c5ebced864776d90d83d1e255016fd4c084 Author: Maciej W. Rozycki Date: Wed May 21 22:10:22 2008 +0100 x86: I/O APIC: clean up the 8259A on a NMI watchdog failure There is no point in keeping the 8259A enabled if the I/O APIC NMI watchdog has failed and the 8259A is not used to pass through regular timer interrupts. This fixes problems with some systems where some logic gets confused. Signed-off-by: Maciej W. Rozycki Signed-off-by: Ingo Molnar commit a1133d8e4ffc2db751eb987a2f3cf8ead67927c3 Author: Maciej W. Rozycki Date: Wed May 21 22:10:16 2008 +0100 x86: APIC/SMP: downgrade the NMI watchdog for "nosmp" If configured to use the I/O APIC, the NMI watchdog is deemed to fail if the chip has been deactivated as a result of "nosmp". Downgrade to the local APIC watchdog similarly to what is done for the UP case. Signed-off-by: Maciej W. Rozycki Signed-off-by: Ingo Molnar commit 73d08e636026bbcb413d4864ca5e917502f8a0f9 Author: Maciej W. Rozycki Date: Wed May 21 22:09:43 2008 +0100 x86: APIC/SMP: correct the message for "nosmp" The local APIC is no longer forced off when "nosmp" has been specified. Correct the message printed. Signed-off-by: Maciej W. Rozycki Signed-off-by: Ingo Molnar commit 60134ebe795b728dbb960485a8e873c3250ada36 Author: Maciej W. Rozycki Date: Wed May 21 22:09:34 2008 +0100 x86: I/O APIC: keep IRQ off when changing LVT registers Disable the 8259A acting in the "virtual wire" mode to keep the interrupt line inactive while fiddling with local APIC interrupt vector registers associated with its destination inputs. To be on the safe side, especially concerning flipping the trigger mode. Signed-off-by: Maciej W. Rozycki Signed-off-by: Ingo Molnar commit e67465f1298671266a8e824c1751afdb7c08c860 Author: Maciej W. Rozycki Date: Wed May 21 22:09:26 2008 +0100 x86: I/O APIC: clean up after a fasteoi failure Disable the 8259A when routing of the timer interrupt through the chip to the local APIC of the primary processor has failed. Signed-off-by: Maciej W. Rozycki Signed-off-by: Ingo Molnar commit ecd29476ae0143b1c3641edfa76c0fc3e9ad3021 Author: Maciej W. Rozycki Date: Wed May 21 22:09:19 2008 +0100 x86: I/O APIC: remove parameters to fiddle with the 8259A Remove the "disable_8254_timer" and "enable_8254_timer" kernel parameters. Now that AEOI acknowledgements are no longer needed for correct timer operation, the 8259A can be kept disabled unconditionally unless interrupts, either timer or watchdog ones, are actually passed through it. Signed-off-by: Maciej W. Rozycki Signed-off-by: Ingo Molnar commit d11d5794e0c21a1054e6cd57381050a999ad7232 Author: Maciej W. Rozycki Date: Wed May 21 22:09:11 2008 +0100 x86: I/O APIC: AEOI timer acknowledgement clean-ups The code that used to be in do_slow_gettimeoffset() that relied on the IRR bit of the master 8259A PIC for IRQ0 to check the state of the output timer 0 of the PIT is no longer there. As a result, there is no need to use the POLL command to acknowledge the timer interrupt in the "8259A Virtual Wire", except for the NMI watchdog when the i82489DX APIC is used (this is because this particular APIC treats NMIs as level-triggered and keeping the input asserted would keep motherboard NMI sources held off for too long). Remove the unneeded bits and adjust comments accordingly. Signed-off-by: Maciej W. Rozycki Signed-off-by: Ingo Molnar commit a0176e2485ce6468f9b74264a2fd6c19811f027a Author: Ingo Molnar Date: Mon Jun 16 12:44:17 2008 +0200 Revert "Revert "x86: fix ioapic bug again"" This reverts commit 0b6a39f7ebcb1c82587ce35b401c513eed41ac5c. The changes in tip/x86/apic solve this better. Signed-off-by: Ingo Molnar commit 684eb0163a98bc329193b4aa4535cdd705a5dd58 Author: Jiri Slaby Date: Mon May 12 15:43:37 2008 +0200 x86_64: use PAGE_OFFSET in dump_pagetables Use PAGE_OFFSET macro instead of using 0xffff810000000000UL directly. Signed-off-by: Jiri Slaby Cc: Arjan van de Ven Cc: Andi Kleen Cc: hpa@zytor.com Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 6e92a5a6151f4a467b8c1bde9123c0a9d1a63339 Author: Thomas Gleixner Date: Mon May 12 15:43:35 2008 +0200 x86: add sparse annotations to ioremap arch/x86/mm/ioremap.c:308:11: error: incompatible types in comparison expression (different address spaces) Signed-off-by: Thomas Gleixner Signed-off-by: Ingo Molnar commit 65280e613fada41704f35709b6c8952ca4b8750c Author: Thomas Gleixner Date: Mon May 5 16:35:21 2008 +0200 x86: janitor CPA statistics patch 1) Remove __meminit from update_pages_count. It is used inside split_pages() 2) Make the code depend on PROC_FS. Doing statistics for nothing is useless and not adding useless code is nice to the Linux tiny folks. Signed-off-by: Thomas Gleixner Signed-off-by: Ingo Molnar commit ce0c0e50f94e8c55b00a722e8c6e8d6c802be211 Author: Andi Kleen Date: Fri May 2 11:46:49 2008 +0200 x86, generic: CPA add statistics about state of direct mapping v4 Add information about the mapping state of the direct mapping to /proc/meminfo. I chose /proc/meminfo because that is where all the other memory statistics are too and it is a generally useful metric even outside debugging situations. A lot of split kernel pages means the kernel will run slower. This way we can see how many large pages are really used for it and how many are split. Useful for general insight into the kernel. v2: Add hotplug locking to 64bit to plug a very obscure theoretical race. 32bit doesn't need it because it doesn't support hotadd for lowmem. Fix some typos v3: Rename dpages_cnt Add CONFIG ifdef for count update as requested by tglx Expand description v4: Fix stupid bugs added in v3 Move update_page_count to pageattr.c Signed-off-by: Andi Kleen Signed-off-by: Thomas Gleixner Signed-off-by: Ingo Molnar commit 93022136fff9e6130aa128a5ed8a599e93ac813c Merge: c49c412... b727946... Author: Ingo Molnar Date: Tue Jul 8 07:47:47 2008 +0200 Merge commit 'v2.6.26-rc9' into x86/cpu commit c49c412a47b5102516d3313d4eba38cb1e968721 Author: Yinghai Lu Date: Thu Jun 19 15:30:31 2008 -0700 x86: make 64bit identify_cpu use cpu_dev v2 v2: fix early_panic on this config: http://redhat.com/~mingo/misc/config-Thu_Jun_19_14_22_37_CEST_2008.bad reason : struct cpu_vendor_dev size is 16, need to make table to be 16 byte alignment also print out the cpu supported... Signed-off-by: Yinghai Lu Cc: Dave Jones Signed-off-by: Ingo Molnar commit dcd32b6a1ffe6c040f8346f7fbaf4318bb8ae41c Author: Yinghai Lu Date: Fri Jun 20 08:18:09 2008 +0200 x86: make 64-bit identify_cpu use cpu_dev we may need to move some functions to common.c later Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit 3a27dd1ce5de08e21e0266ddf00e6f1f843bfe8b Author: Robert Richter Date: Thu Jun 12 20:19:23 2008 +0200 x86: Move PCI IO ECS code to x86/pci "Form follows function". Code is now where it belongs to. Signed-off-by: Robert Richter Signed-off-by: Ingo Molnar commit 24bfdca7b7da971ef9a483303a096ac6d4b3a02c Author: Robert Richter Date: Thu Jun 12 20:19:22 2008 +0200 x86/pci: Renaming k8-bus_64.c to amd_bus.c The name fits better since this is code not only for K8. Signed-off-by: Robert Richter Signed-off-by: Ingo Molnar commit 0beefa208bb3a9e581a60125703409ebe6f7fa53 Author: Thomas Gleixner Date: Tue Jun 17 09:12:03 2008 +0200 x86: add C1E aware idle function, fix On Tue, 17 Jun 2008, Rafael J. Wysocki wrote: > > BTW, with the C1E patches reverted I don't get the > WARNING: at /home/rafael/src/linux-next/kernel/smp.c:215 smp_call_function_single+0x3d/0xa2 > in the log. Thomas? The BROADCAST_FORCE notification uses smp_function_call and therefor must be run with interrupts enabled. While at it, add a comment for the BROADCAST_EXIT notifier as well. Reported-and-bisected-by: Rafael J. Wysocki Signed-off-by: Thomas Gleixner Signed-off-by: Ingo Molnar commit aa276e1cafb3ce9d01d1e837bcd67e92616013ac Author: Thomas Gleixner Date: Mon Jun 9 19:15:00 2008 +0200 x86, clockevents: add C1E aware idle function C1E on AMD machines is like C3 but without control from the OS. Up to now we disabled the local apic timer for those machines as it stops when the CPU goes into C1E. This excludes those machines from high resolution timers / dynamic ticks, which hurts especially X2 based laptops. The current boot time C1E detection has another, more serious flaw as well: some BIOSes do not enable C1E until the ACPI processor module is loaded. This causes systems to stop working after that point. To work nicely with C1E enabled machines we use a separate idle function, which checks on idle entry whether C1E was enabled in the Interrupt Pending Message MSR. This allows us to do timer broadcasting for C1E and covers the late enablement of C1E as well. Signed-off-by: Thomas Gleixner Signed-off-by: Ingo Molnar commit 337001b6c42938f49a880b1b8306c3ed771a7e61 Author: Rafael J. Wysocki Date: Mon Jul 7 03:36:24 2008 +0200 PCI: Simplify PCI device PM code If the offset of PCI device's PM capability in its configuration space, the mask of states that the device supports PME# from and the D1 and D2 support bits are cached in the corresponding struct pci_dev, the PCI device PM code can be simplified quite a bit. Signed-off-by: Rafael J. Wysocki Signed-off-by: Jesse Barnes commit 404cc2d8ce41ed4031958fba8e633767e8a2e028 Author: Rafael J. Wysocki Date: Mon Jul 7 03:35:26 2008 +0200 PCI PM: Introduce pci_prepare_to_sleep and pci_back_from_sleep Introduce functions pci_prepare_to_sleep() and pci_back_from_sleep(), to be used by the PCI drivers that want to place their devices into the lowest power state appropiate for them (PCI_D3hot, if the device is not supposed to wake up the system, or the deepest state from which the wake-up is possible, otherwise) while the system is being prepared to go into a sleeping state and to put them back into D0 during the subsequent transition to the working state. Signed-off-by: Rafael J. Wysocki Signed-off-by: Jesse Barnes commit eb9d0fe40e313c0a74115ef456a2e43a6c8da72f Author: Rafael J. Wysocki Date: Mon Jul 7 03:34:48 2008 +0200 PCI ACPI: Rework PCI handling of wake-up * Introduce function acpi_pm_device_sleep_wake() for enabling and disabling the system wake-up capability of devices that are power manageable by ACPI. * Introduce function acpi_bus_can_wakeup() allowing other (dependent) subsystems to check if ACPI is able to enable the system wake-up capability of given device. * Introduce callback .sleep_wake() in struct pci_platform_pm_ops and for the ACPI PCI 'driver' make it use acpi_pm_device_sleep_wake(). * Introduce callback .can_wakeup() in struct pci_platform_pm_ops and for the ACPI 'driver' make it use acpi_bus_can_wakeup(). * Move the PME# handlig code out of pci_enable_wake() and split it into two functions, pci_pme_capable() and pci_pme_active(), allowing the caller to check if given device is capable of generating PME# from given power state and to enable/disable the device's PME# functionality, respectively. * Modify pci_enable_wake() to use the new ACPI callbacks and the new PME#-related functions. * Drop the generic .platform_enable_wakeup() callback that is not used any more. * Introduce device_set_wakeup_capable() that will set the power.can_wakeup flag of given device. * Rework PCI device PM initialization so that, if given device is capable of generating wake-up events, either natively through the PME# mechanism, or with the help of the platform, its power.can_wakeup flag is set and its power.should_wakeup flag is unset as appropriate. * Make ACPI set the power.can_wakeup flag for devices found to be wake-up capable by it. * Make the ACPI wake-up code enable/disable GPEs for devices that have the wakeup.flags.prepared flag set (which means that their wake-up power has been enabled). Signed-off-by: Rafael J. Wysocki Signed-off-by: Jesse Barnes commit 0af4b8c4fb31193dc666f4893107a18fef82baab Author: Rafael J. Wysocki Date: Mon Jul 7 03:34:11 2008 +0200 ACPI: Introduce new device wakeup flag 'prepared' Introduce additional flag 'prepared' in struct acpi_device_wakeup_flags and use it to prevent devices from being enable/disabled do wake up the system multiple times in a row (this does not happen currently, but will be possible after some of the following patches). Signed-off-by: Rafael J. Wysocki Signed-off-by: Jesse Barnes commit 77e766099efc29d8b01db4b8244ff64fa3d3d0ca Author: Rafael J. Wysocki Date: Mon Jul 7 03:33:34 2008 +0200 ACPI: Introduce acpi_device_sleep_wake function The currect ACPI code attempts to execute _PSW at three different places and in one of them only it tries to execute _DSW before _PSW, which is inconsistent with the other two cases. Move the execution of _DSW and _PSW into a separate function called acpi_device_sleep_wake() and call it wherever appropriate instead of executing _DSW and/or _PSW directly. Signed-off-by: Rafael J. Wysocki Acked-by: Pavel Machek Signed-off-by: Jesse Barnes commit 44e4e66eeae5338b3ca0b28f8352e60bf18d5ba8 Author: Rafael J. Wysocki Date: Mon Jul 7 03:32:52 2008 +0200 PCI: rework pci_set_power_state function to call platform first Rework pci_set_power_state() so that the platform callback is invoked before the native mechanism, if necessary. Also, make the function check if the device is power manageable by the platform before invoking the platform callback. This may matter if the device dependent on additional power resources controlled by the platform is being put into D0, in which case those power resources must be turned on before we attempt to handle the device itself. Signed-off-by: Rafael J. Wysocki Acked-by: Pavel Machek Signed-off-by: Jesse Barnes commit 961d9120fa6f078492a1c762dd91f2c097e56c83 Author: Rafael J. Wysocki Date: Mon Jul 7 03:32:02 2008 +0200 PCI: Introduce platform_pci_power_manageable function Introduce function pointer platform_pci_power_manageable to be used by the platform-related code to point to a function allowing us to check if given device is power manageable by the platform. Introduce acpi_pci_power_manageable() playing that role for ACPI. Signed-off-by: Rafael J. Wysocki Signed-off-by: Jesse Barnes commit 3737b2b1046900660b42e25c904b85e78139d25b Author: Rafael J. Wysocki Date: Mon Jul 7 03:30:55 2008 +0200 ACPI: Introduce acpi_bus_power_manageable function Introduce function acpi_bus_power_manageable() allowing other (dependent) subsystems to check if ACPI is able to power manage given device. This may be useful, for example, for PCI device power management. Signed-off-by: Rafael J. Wysocki Acked-by: Pavel Machek Signed-off-by: Jesse Barnes commit c6c4f070a61b2b6e5cd317a5fbf25255878688a2 Author: Greg KH Date: Thu Jul 3 09:49:39 2008 -0700 PCI: make pci_name use dev_name Also fixes up the sparc code that was assuming this is not a constant. Acked-by: David S. Miller Signed-off-by: Kay Sievers Signed-off-by: Greg Kroah-Hartman Signed-off-by: Jesse Barnes commit 188237e28d7fece0471640ba86f6d8cd164ed085 Author: Saeed Bishara Date: Wed Jul 2 06:06:32 2008 -1100 [ARM] Feroceon: don't disable BPU on boot On Feroceon platforms that have a branch prediction unit, bit 11 of the cp15 control register controls the BPU. This patch keeps the old value of this bit instead of always clearing it. Signed-off-by: Saeed Bishara Signed-off-by: Lennert Buytenhek Signed-off-by: Nicolas Pitre commit 2e1117d307dba8185a72bac94e57f057e70590ca Author: Martin Michlmayr Date: Mon Jul 7 21:23:09 2008 +0300 [ARM] Orion: LED support for HP mv2120 The HP mv2120 has several LEDs that are controlled through gpio. Export the health LED, the red SATA LEDs as well as two gpios that control the brightness of _all_ LEDs to userland. The Ethernet and power LEDs can't be controlled through gpio and the blue SATA LEDs are handled via the SATA driver. Signed-off-by: Martin Michlmayr Signed-off-by: Nicolas Pitre commit 6b5cdf0f6d4dc3d98de20d6b0abe8500046f1cb1 Author: Nicolas Pitre Date: Fri Jun 27 18:56:22 2008 -0400 [ARM] Orion: add RD88F5181L-FXO support This patch adds support for the Marvell Orion-VoIP RD-88F5181L-FXO Reference Design, and enables use of the ethernet, USB, Cardbus and mini-PCIe ports. Signed-off-by: Nicolas Pitre commit 70129132322cdbb6683ab9e90419cd5a6f8294d3 Author: Lennert Buytenhek Date: Mon Jun 30 14:25:24 2008 -0400 [ARM] Orion: add RD88F5181L-GE support This patch adds support for the Marvell Orion-VoIP RD2-88F5181L-GE Reference Design, and enables use of the ethernet, USB, Cardbus and mini-PCIe ports. Signed-off-by: Lennert Buytenhek commit 2f8209788d774c66efb5e2991affc06b1d1c7314 Author: Imre Kaloz Date: Thu Jun 26 01:30:41 2008 +0200 [ARM] Orion: add Netgear WNR854T support Signed-off-by: Imre Kaloz Signed-off-by: Lennert Buytenhek commit fa6868508a0102b150ca03d976e3a1c234e4e387 Merge: 5b23538... 4ed4789... Author: Russell King Date: Mon Jul 7 22:21:34 2008 +0100 Merge branch 'machtypes' into orion commit 7ba06b17a1931b2c9e1bee525a8c36920f5be0e0 Author: Ben Dooks Date: Mon Jul 7 18:12:49 2008 +0100 [ARM] s3c2410_defconfig: update for current build Update the s3c2410_defconfig for the current set of added patches. Signed-off-by: Ben Dooks commit a67557801aeda1f9f19e4606a00c948f6054417c Author: Ben Dooks Date: Mon Jul 7 18:12:48 2008 +0100 [ARM] Acer n30: Minor style and indentation fixes. Minor style fixes. Signed-off-by: Ben Dooks commit 9a2ddb7866c2887352e85c6443dfb5e679140aff Author: Christer Weinigel Date: Mon Jul 7 18:12:47 2008 +0100 [ARM] Acer n30: Hardware initialisation. Initialise the hardware register settings on boot, to allow the device to function correctly. Signed-off-by: Christer Weinigel Signed-off-by: Ben Dooks commit e43f238390168a13416d4f21803f76b1ff45fb95 Author: Christer Weinigel Date: Mon Jul 7 18:12:46 2008 +0100 [ARM] Acer n30: LCD support. This patch adds the configuration needed for the LCD display on the n30. Signed-off-by: Christer Weinigel Signed-off-by: Ben Dooks commit 9579087331ee0cd220d29aa5bda79ff55b33c228 Author: Christer Weinigel Date: Mon Jul 7 18:12:45 2008 +0100 [ARM] Acer n30: Add support for n35 and related devices. Add support for the Acer N35 and related devices. Signed-off-by: Christer Weinigel Signed-off-by: Ben Dooks commit 865cc639a636b58612becfb6a337945c022596ac Author: Christer Weinigel Date: Mon Jul 7 18:12:44 2008 +0100 [ARM] Acer n30: LED support. Add support for the LEDs on the Acer N30. Signed-off-by: Christer Weinigel Signed-off-by: Ben Dooks commit 620657500263cca4a4d9845eeaeba47e03447075 Author: Christer Weinigel Date: Mon Jul 7 18:12:43 2008 +0100 [ARM] Acer n30: GPIO buttons support Add support for the GPIO buttons on the Acer N30. Signed-off-by: Christer Weinigel Signed-off-by: Ben Dooks commit d088e5fe586287da003341e7bbfdad15e0f432f7 Author: Christer Weinigel Date: Mon Jul 7 18:12:42 2008 +0100 [ARM] Acer n30: USB bus pull-up support. Add support for the USB D+ pull up on the Acer N30. This is needed for the USB gadget to work properly. Signed-off-by: Christer Weinigel Signed-off-by: Ben Dooks commit 196a047574e1465b89bc41fda573efc9b9be70e5 Author: Christer Weinigel Date: Mon Jul 7 18:12:41 2008 +0100 [ARM] Acer n30: Source file cleanups. Clean up some junk from the official kernel. The compile-command is something that's only useful for me personally and doesn't belong in the mainstream kernel. Signed-off-by: Christer Weinigel Signed-off-by: Ben Dooks commit 2e16c27aa379793c354012e5fae0aae89103b19b Author: Ben Dooks Date: Mon Jul 7 18:12:40 2008 +0100 [ARM] S3C2443: Add prediv clk and fix setting of h and p clocks Update the S3C2443 clock support to add the prediv clock that is sourced via a divider from msysclk. Also fix the setting of p and h clocks from this prediv clock. Signed-off-by: Ben Dooks commit ba7622a19fabb853b8bbb918a5d76557f88e4274 Author: Ben Dooks Date: Mon Jul 7 18:12:39 2008 +0100 [ARM] S3C2443: Add armdiv and arm clocks Add the armdiv and arm clocks to the S3C2443 clock framework and ensure they are correctly setup. Signed-off-by: Ben Dooks commit 29a7bcfd144a577b5cdb3b735c58e20d0489b30e Author: Ben Dooks Date: Mon Jul 7 18:12:38 2008 +0100 [ARM] S3C2443: Fix s3c2443_clkcon_enable_p() using wrong register. s3c2443_clkcon_enable_p() was reading from the correct register S3C2443_PCLKCON, but then writing the value back to the wrong register S3C2443_HCLKCON. Signed-off-by: Ben Dooks commit 66493c2d88d5086399c5a485d6e41cb76b241a1f Author: Ramax Lo Date: Mon Jul 7 18:12:37 2008 +0100 [ARM] AT2440EVB: Add DM9000A network controller support. Add DM9000AEP network controller support for AT2440EVB. Signed-off-by: Ramax Lo Signed-off-by: Ben Dooks commit 4ab9897172b7ff3a1a37b65b53f71c5795a577b0 Author: Ramax Lo Date: Mon Jul 7 18:12:36 2008 +0100 [ARM] S3C2440: Add AT2440EVB board support Add basic support for AT2440EVB board based on Samsung S3C2440 SoC. Signed-off-by: Ben Dooks Signed-off-by: Ramax Lo commit 66ee156078697cdc013d46aed3b2fee445c325a1 Merge: 946e2ad... e22af66... 4ed4789... Author: Russell King Date: Mon Jul 7 16:26:41 2008 +0100 Merge branches 'ns9x' and 'machtypes' into devel commit 4ed47896935573c8423d05bddda3f269d6e6c613 Author: Russell King Date: Thu Jul 3 16:11:06 2008 +0100 [ARM] mach-types update Update mach-types. Remove invalid or incorrect entries. Signed-off-by: Russell King commit 5e329d1c7f5fe6adfee99c783fa98bda7dae8ac5 Author: Stefan Schmidt Date: Fri Jun 6 10:12:37 2008 +0100 [ARM] 5079/1: Warn people when using pxa2xx-gpio.h Warn people when using pxa2xx-gpio.h as it is only here for backwards compatibility. The new mfp-pxa2[57]x.h and the relevant API should be used instead. Signed-off-by: Stefan Schmidt Signed-off-by: Russell King commit f1b23586c1f50d4c5684e56395140ec1cd8b688d Author: Philipp Zabel Date: Mon Jun 30 18:08:11 2008 +0100 [ARM] 5135/1: pxa: drop superfluous asm/arch/pxa2xx-gpio.h includes Both i2c-pxa.c and irq.c still include pxa2xx-gpio.h although is is not needed anymore. Signed-off-by: Philipp Zabel Acked-by: Eric Miao Signed-off-by: Russell King commit 9f17f2874834f4cdbe48cc05676d8f7558793204 Author: Jaya Kumar Date: Sun Jun 22 04:27:28 2008 +0100 [ARM] 5118/1: pxafb: add exit and remove handlers This patch adds exit and remove handlers to pxafb so that it can be loaded and unloaded as a module. Signed-off-by: Jaya Kumar Acked-by: Krzysztof Helt Acked-by: Eric Miao Signed-off-by: Russell King commit 5a2cc50f166babc26103279c4fbc9f2bf73b79de Author: eric miao Date: Mon May 26 03:28:09 2008 +0100 [ARM] 5063/1: pxa: add clk support for pxa2xx I2S Signed-off-by: Eric Miao Acked-by: Mark Brown Signed-off-by: Russell King commit 209806aba9d540dde3db0a5ce72307f85f33468f Author: Steven Whitehouse Date: Mon Jul 7 10:07:28 2008 +0100 [GFS2] Allow local DF locks when holding a cached EX glock We already allow local SH locks while we hold a cached EX glock, so here we allow DF locks as well. This works only because we rely on the VFS's invalidation for locally cached data, and because if we hold an EX lock, then we know that no other node can be caching data relating to this file. It dramatically speeds up initial writes to O_DIRECT files since we fall back to buffered I/O for this and would otherwise bounce between DF and EX modes on each and every write call. The lessons to be learned from that are to ensure that (for the time being anyway) O_DIRECT files are preallocated and that they are written to using reasonably large I/O sizes. Even so this change fixes that corner case nicely Signed-off-by: Steven Whitehouse commit 265d529cef6fd57698d79b3c0edd3a8178059ea6 Author: Steven Whitehouse Date: Mon Jul 7 10:02:36 2008 +0100 [GFS2] Fix delayed demote race There is a race in the delayed demote code where it does the wrong thing if a demotion to UN has occurred for other reasons before the delay has expired. This patch adds an assert to catch that condition as well as fixing the root cause by adding an additional check for the UN state. Signed-off-by: Steven Whitehouse Cc: Bob Peterson commit 8b7fd21511f9b5016665814e03f7fc948bb64a98 Author: FUJITA Tomonori Date: Mon Jul 7 16:40:26 2008 +0900 x86: clean up amd_iommu documentation amd_iommu=off was replaced with a common parameter, iommu=off. Signed-off-by: FUJITA Tomonori Cc: joerg.roedel@amd.com Cc: iommu@lists.linux-foundation.org Cc: bhavna.sarathy@amd.com Cc: robert.richter@amd.com Cc: rjw@sisk.pl Signed-off-by: Ingo Molnar commit 4d51c7587bb13dbb2fafcad6c0b5231bd864b55f Merge: d763d5e... f4628e6... Author: Ingo Molnar Date: Mon Jul 7 08:08:19 2008 +0200 Merge branch 'tracing/mmiotrace-mergefixups' into tracing/mmiotrace commit d763d5edf945eec47bd443b699f174976f0afc13 Merge: 790e2a2... 1b40a89... Author: Ingo Molnar Date: Mon Jul 7 08:07:35 2008 +0200 Merge branch 'linus' into tracing/mmiotrace commit 032f82786f9be4635acaa5f77feca175a4ac5fe1 Merge: 46ac22b... b727946... Author: Ingo Molnar Date: Mon Jul 7 08:01:26 2008 +0200 Merge commit 'v2.6.26-rc9' into sched/devel commit 5e374fb62621aca9522f76c2317c9acda75a8e88 Author: Jens Axboe Date: Tue Jul 1 13:12:04 2008 +0200 generic-ipi: fixlet create proper stackframe. Signed-off-by: Ingo Molnar commit 1bd55a436f1f90de0e7f476e514e01bd67497b88 Author: Juergen Beisert Date: Sat Jul 5 10:03:02 2008 +0200 i.MX2 family: Add basic mach support This patch adds basic mach support for the mx2 processor family, based on the original freescale code and adapted to mainline kernel coding style. This part adds the global build only. Signed-off-by: Juergen Beisert commit ff6552e4f3505da9c2886098773146be71c872e3 Author: Juergen Beisert Date: Sat Jul 5 10:03:01 2008 +0200 i.MX27 family: Add the Phytec PCM970 evaluation board The Phytec phyCORE-i.MX27 CPU module is delivered with the PCM970 baseboard by default. This patch adds support for the hardware. This code is only an empty stub; it is filled up with functionality in a later patch series. Signed-off-by: Juergen Beisert commit 7e5e9f5457f5cd019fd7e2f3da94e9fc72cc9ff6 Author: Juergen Beisert Date: Sat Jul 5 10:03:00 2008 +0200 i.MX27: Adding PCM038 platform support This patch adds support for the phyCORE-i.MX27 cpu module (aka pcm038). It is as generic as possible in order to support any kind of baseboard. Note: This CPU module implementation can't work without a baseboard support. Baseboard support can be added by the PCM-970 (included in this patch stack) or any custom variant. Signed-off-by: Juergen Beisert commit 80eedae6f0322dafc749140b67986b2472473745 Author: Juergen Beisert Date: Sat Jul 5 10:03:00 2008 +0200 i.MX27: Add ADS platform support This patch adds basic support for the Freescale MX27ADS reference board. Currently only a serial console can be used. Signed-off-by: Juergen Beisert commit c46f5856517c2d4f438df87dac81f2295931ee93 Author: Juergen Beisert Date: Sat Jul 5 10:02:59 2008 +0200 i.MX2 family: Add clock handling for i.MX27 CPU Internal clock path handling for the i.MX27 CPU. Changed against the original Freescale code (and against clocklib for example): - clock rate is always calculated whenever one ask for the current rate. (means no "rate" member in the clock structure). So switching the PLL base frequency will propagate immediately to all other clocks that are depending on this frequency. TODO: - Check if the i.MX21 CPU can share the same code. Signed-off-by: Juergen Beisert commit f31405cc4cc568baad28273c7f45b0563b57a17d Author: Juergen Beisert Date: Sat Jul 5 10:02:59 2008 +0200 i.MX27 CPU: Add basic i.MX27 CPU support Add basic i.MX27 CPU support Signed-off-by: Juergen Beisert commit 604cbadce2292d979749e2f5c6c3f75ee10f4c9e Author: Sascha Hauer Date: Sat Jul 5 10:02:58 2008 +0200 MX2 add support for mx2 in i.MX serial driver add support for mx2 in i.MX serial driver Signed-off-by: Sascha Hauer commit fc80a5e3d0480d416e4f53b0680aaf525b5076d8 Author: Juergen Beisert Date: Sat Jul 5 10:02:57 2008 +0200 i.MX2 family: Add basic device support This patch adds a few on-chip devices for i.MX21/i.MX27 procesors. Signed-off-by: Juergen Beisert commit 32dc80c9cb13a7ce686bcc26efcf39e35719b466 Author: Juergen Beisert Date: Sat Jul 5 10:02:56 2008 +0200 i.MX2 family: Add basic mach support (headers) This patch adds basic mach support for the mx2 processor family, based on the original freescale code and adapted to mainline kernel coding style. Signed-off-by: Juergen Beisert commit eea643f7ff04fe17c3ff71d41a9487c0753bd821 Author: Juergen Beisert Date: Sat Jul 5 10:02:56 2008 +0200 i.MX2 family: Add basic mach support (sources) This patch adds basic mach support for the mx2 processor family, based on the original freescale code and adapted to mainline kernel coding style. Signed-off-by: Juergen Beisert commit aa10abd381b9493a88f6b9e111adc79e33d548fa Author: Juergen Beisert Date: Sat Jul 5 10:02:55 2008 +0200 i.MX2 family: Add GPIO multiplexing support This patch adds GPIO multiplexing support for the imx1/mxc2 family of procesors. Signed-off-by: Juergen Beisert commit 259bcaae9a2f28d7e3303b202b64a1fb0a9ab9e4 Author: Juergen Beisert Date: Sat Jul 5 10:02:54 2008 +0200 MXC arch: Simplify architecture's irq sources Simplify architecture's irq headers and sources, to share these files between MXC3 and MXC2. Signed-off-by: Juergen Beisert commit 9e8a30dce1bd38cf7b941c707da504d28a907f5c Author: Juergen Beisert Date: Sat Jul 5 10:02:53 2008 +0200 MX3: Adapt mx31lite to new timer init style This patch converts the external "add_mx31lite-basic_defconfig.diff" to our MXC implementation. Note: This patch fixes a board reference only. Signed-off-by: Juergen Beisert commit 9a4cd7a5c836e189a1712c9ffd2d76b2302ce212 Author: Daniel Mack Date: Sat Jul 5 10:02:53 2008 +0200 MX3: Add basic support for LogicPD i.MX31 LiteKit This patch adds basic support for i.MX31 LiteKit by LogicPD. With printascii() in kernel/printk.c, it boots right into the rootfs-panic. Note: This is a modified version of Daniel's patch to fit into this patch stack. > On 09.06.2008, at 17:26, Russell King - ARM Linux wrote: > > > I would much prefer it if board specific includes were included by the > > code which needs them rather than in asm/arch/hardware.h.  With the > > device model, drivers shouldn't need to include any board specific > > includes - only the board specific C file should need it. > > The new version of this patch (#5102) has been uploaded to the patch > tracker this morning. Signed-off-by: Daniel Mack -- arch/arm/configs/mx31litekit_defconfig | 1100 ++++++++++++++++++++++++++++++ arch/arm/mach-mx3/Kconfig | 7 arch/arm/mach-mx3/Makefile | 1 arch/arm/mach-mx3/mx31lite.c | 96 ++ include/asm-arm/arch-mxc/board-mx31lite.h | 38 + include/asm-arm/arch-mxc/debug-macro.S | 3 6 files changed, 1245 insertions(+) commit ce8ffef0bfd6e55d5da3923d8e9af27c3b5c4eff Author: Sascha Hauer Date: Sat Jul 5 10:02:52 2008 +0200 MX31: add basic pcm037 board support This patch adds basic board support for phytecs pmc037 board. Signed-off-by: Sascha Hauer commit 1b53218bfa4c0e17fc16ff7fadb85b82bbd3c77c Author: Juergen Beisert Date: Sat Jul 5 10:02:51 2008 +0200 i.MX3: Add a basic default config for the imx31ads (reference only) Currently there is a mx31ads BSP file in the kernel, but no default config file. This patch adds a basic default config for the imx31ads but it is for test purposes only to ensure the i.MX2 patch stack doesn't break the i.MX3. Note: For reference only. This configuration is untested as I have no access to an mx31ads. Signed-off-by: Juergen Beisert commit 4bc256501a159abc7e9fee43f63c68894f6a11d8 Author: Sascha Hauer Date: Sat Jul 5 10:02:51 2008 +0200 MXC: add debug-macro.S for mxc This patch adds debug-macro.S for arch-mxc Disadvantage: Due to the board specific UART definition, these macros (and compile time) will fail for multi board kernels. Signed-off-by: Sascha Hauer commit d0f349fbce2905607e0473d2358f97f48866e52c Author: Juergen Beisert Date: Sat Jul 5 10:02:50 2008 +0200 i.MXC family: Adding timer support This patch adds timer support for the i.MX machine family. This code can be used on the following machs: - i.MX1 (tested) - i.MX2 (i.MX21 (to be tested), i.MX27 (tested)) - i.MX3 (i.MX31 (tested)) TODO: It seems impossible to build a kernel for more than one CPU because the timer do not follow the platform device rules. So it does only work if timer 1 can be accessed on all CPUs at the same address. Signed-off-by: Juergen Beisert Signed-off-by: Sascha Hauer commit 90292ea60f1c730efb9fea02b2e12676da89ebef Author: Sascha Hauer Date: Sat Jul 5 10:02:50 2008 +0200 MXC: add io multiplexing functions for mx3 This patch adds functions to use the io multiplexer on mx3 platforms. Signed-off-by: Sascha Hauer commit 07bd1a6cc7cbb3f373fbe49b204c6cde5e9155fc Author: Juergen Beisert Date: Sat Jul 5 10:02:49 2008 +0200 MXC arch: Add gpio support for the whole platform This patch bases on the one from Daniel Mack. The most important change to Daniel's patch is to be more generic. This gpio routine supports at least the i.MX27 and i.MX31 processors. Signed-off-by: Juergen Beisert Acked-by: Daniel Mack commit e3d13ff4b9d3b05d7a969153e2c049548e25deea Author: Sascha Hauer Date: Sat Jul 5 10:02:48 2008 +0200 mxc: add MX3 support for i.MX internal UART driver This patch adds MX3 support for the i.MX internal uart driver. Signed-off-by: Sascha Hauer commit df1bf4bdb2a3a26d4bde8ae1aefc16385dd4898f Author: Sascha Hauer Date: Sat Jul 5 10:02:48 2008 +0200 i.MX3: introduce clock API This patch introduces the clock API for for arch-mxc Signed-off-by: Sascha Hauer commit c0db2ea4e366c94dd3f880928c02534156e3d1b9 Author: Juergen Beisert Date: Sat Jul 5 10:02:47 2008 +0200 MXC family: Add clock handling Internal clock path handling for the mxc CPUs. Changed against the original Freescale code (and against clocklib for example): - clock rate is always calculated whenever one ask for the current rate (means struct clk has no more a member called "rate"). So switching the PLL base frequency will propagate immediately to all other clocks that are depending on this frequency. Signed-off-by: Juergen Beisert commit 38a41fdf94c449c165213e4665c3f8a0d30f8aba Author: Sascha Hauer Date: Sat Jul 5 10:02:46 2008 +0200 IMX: introduce clock API This patch introduces the clock API for i.MX and converts all in-Kernel drivers to use it. Signed-off-by: Sascha Hauer commit dbff4e9ea2e83fda89143389bfb229cb29425a32 Author: Sascha Hauer Date: Sat Jul 5 10:02:45 2008 +0200 IMX UART: remove statically initialized tables This patch removes the statically initialized tables from the i.MX serial driver and makes the driver fully dependent on the information provided by the platform_device. Signed-off-by: Sascha Hauer commit 2582d8c1655f2eda42d5358a242b256fd6e88571 Author: Sascha Hauer Date: Sat Jul 5 10:02:45 2008 +0200 IMX UART: Add board specific init/exit functions Add platform specific init functions. Also rename the struct platform_device dev into pdev. Signed-off-by: Sascha Hauer commit 036bb15ec94216e28cb1550af0fdcdfb90c549df Author: Sascha Hauer Date: Sat Jul 5 10:02:44 2008 +0200 IMX UART: do not assume 16MHz reference frequency We assumed a 16MHz reference frequency for the UART. While this is true for i.MX1 most of the time it is not true for MX27/MX31. Also, add handling for the ONEMS register which is present on newer versions of the chip and pass a sane minimum baudrate to uart_get_baud_rate(). Signed-off-by: Sascha Hauer commit 63dd10846d4917534e9ec7bddf43be786effe8b8 Author: Sascha Hauer Date: Sat Jul 5 10:02:43 2008 +0200 MXC: do not include board specific header from architecture include do not include board-mx31ads.h from hardware.h, instead include it directly only where needed. Signed-off-by: Sascha Hauer commit 5b2d281acb04a29fcdc76ced5ca6099565a0747f Author: Roland Dreier Date: Fri Jun 27 14:43:20 2008 -0700 IB/uverbs: BKL is not needed for ib_uverbs_open() Remove explicit lock_kernel() calls and document why the code is safe. Signed-off-by: Roland Dreier Signed-off-by: Jonathan Corbet commit 84e65b0a84a2c856bef36f13d122047678408b0a Author: Richard Kennedy Date: Fri Jul 4 13:56:16 2008 +0100 x86: cacheline_align tss_struct The manual padding to align on cacheline size only worked in 32 bit In 64 bit the structure was not aligned and contained wasted space. use the compiler ____cachline_aligned to save space & properly align this structure. x86_64_default size goes from 9136 -> 8960 x86_64_AMD size goes from 9136 -> 8896 built & running on 2.6.26-rc8. Signed-off-by: Richard Kennedy Signed-off-by: Ingo Molnar commit 46ac22bab42cc868b9c1d0e915ddbc8e8065a44d Author: Ankita Garg Date: Tue Jul 1 14:30:06 2008 +0530 sched: fix accounting in task delay accounting & migration On Thu, Jun 19, 2008 at 12:27:14PM +0200, Peter Zijlstra wrote: > On Thu, 2008-06-05 at 10:50 +0530, Ankita Garg wrote: > > > Thanks Peter for the explanation... > > > > I agree with the above and that is the reason why I did not see weird > > values with cpu_time. But, run_delay still would suffer skews as the end > > points for delta could be taken on different cpus due to migration (more > > so on RT kernel due to the push-pull operations). With the below patch, > > I could not reproduce the issue I had seen earlier. After every dequeue, > > we take the delta and start wait measurements from zero when moved to a > > different rq. > > OK, so task delay delay accounting is broken because it doesn't take > migration into account. > > What you've done is make it symmetric wrt enqueue, and account it like > > cpu0 cpu1 > > enqueue > > dequeue > enqueue > > run > > Where you add both d1 and d2 to the run_delay,.. right? > Thanks for reviewing the patch. The above is exactly what I have done. > This seems like a good fix, however it looks like the patch will break > compilation in !CONFIG_SCHEDSTATS && !CONFIG_TASK_DELAY_ACCT, of it > failing to provide a stub for sched_info_dequeue() in that case. Fixed. Pl. find the new patch below. Signed-off-by: Ankita Garg Acked-by: Peter Zijlstra Cc: Gregory Haskins Cc: rostedt@goodmis.org Cc: suresh.b.siddha@intel.com Cc: aneesh.kumar@linux.vnet.ibm.com Cc: dhaval@linux.vnet.ibm.com Cc: vatsa@linux.vnet.ibm.com Cc: David Bahi Signed-off-by: Ingo Molnar commit 2087a1ad822cd3a68b73338457047fcc54da726b Author: Gregory Haskins Date: Fri Jun 27 14:30:00 2008 -0600 sched: add avg-overlap support to RT tasks We have the notion of tracking process-coupling (a.k.a. buddy-wake) via the p->se.last_wake / p->se.avg_overlap facilities, but it is only used for cfs to cfs interactions. There is no reason why an rt to cfs interaction cannot share in establishing a relationhip in a similar manner. Because PREEMPT_RT runs many kernel threads as FIFO priority, we often times have heavy interaction between RT threads waking CFS applications. This patch offers a substantial boost (50-60%+) in perfomance under those circumstances. Signed-off-by: Gregory Haskins Cc: npiggin@suse.de Cc: rostedt@goodmis.org Acked-by: Peter Zijlstra Signed-off-by: Ingo Molnar commit c4acb2c0669c5c5c9b28e9d02a34b5c67edf7092 Author: Gregory Haskins Date: Fri Jun 27 14:29:55 2008 -0600 sched: terminate newidle balancing once at least one task has moved over Inspired by Peter Zijlstra. Signed-off-by: Gregory Haskins Cc: npiggin@suse.de Cc: rostedt@goodmis.org Acked-by: Peter Zijlstra Signed-off-by: Ingo Molnar commit fb339690a0506d2aca447b5e888fd6ac39ea4fa2 Author: Joerg Roedel Date: Thu Jul 3 19:35:11 2008 +0200 x86, AMD IOMMU: remove unnecessary code from the iommu_enable function This code removes a leftover from the iommu_enable function. The ctrl variable is assigned but never used. Signed-off-by: Joerg Roedel Cc: iommu@lists.linux-foundation.org Cc: bhavna.sarathy@amd.com Cc: robert.richter@amd.com Cc: Joerg Roedel Signed-off-by: Ingo Molnar commit c1cbebeec4a6be1c1fb54fbf2395ade2534b03c4 Author: Joerg Roedel Date: Thu Jul 3 19:35:10 2008 +0200 x86, AMD IOMMU: don't try to init IOMMU if early detect code did not detect one This patch adds a check if the early detect code has found AMD IOMMU hardware descriptions and does not try to initialize hardware if the check failed. Signed-off-by: Joerg Roedel Cc: iommu@lists.linux-foundation.org Cc: bhavna.sarathy@amd.com Cc: robert.richter@amd.com Cc: Joerg Roedel Signed-off-by: Ingo Molnar commit 8b14518fadd9d5915827d86d5c10e602fedf042e Author: Joerg Roedel Date: Thu Jul 3 19:35:09 2008 +0200 x86, AMD IOMMU: honor iommu=off instead of amd_iommu=off This patch removes the amd_iommu=off kernel parameter and honors the generic iommu=off parameter for the same purpose. Signed-off-by: Joerg Roedel Cc: iommu@lists.linux-foundation.org Cc: bhavna.sarathy@amd.com Cc: robert.richter@amd.com Cc: Joerg Roedel Signed-off-by: Ingo Molnar commit 999ba417cc1a43881126d08876d5d7e653113ae3 Author: Joerg Roedel Date: Thu Jul 3 19:35:08 2008 +0200 x86, AMD IOMMU: flush domain TLB when there is more than one page to flush This patch changes the domain TLB flushing behavior of the driver. When there is more than one page to flush it flushes the whole domain TLB instead of every single page. So we send only a single command to the IOMMU in every case which is faster to execute. Signed-off-by: Joerg Roedel Cc: iommu@lists.linux-foundation.org Cc: bhavna.sarathy@amd.com Cc: robert.richter@amd.com Cc: Joerg Roedel Signed-off-by: Ingo Molnar commit 5f6a59d8ad55781d4d2ff0d327f84aaeed2c4127 Author: Joerg Roedel Date: Thu Jul 3 19:35:07 2008 +0200 x86, AMD IOMMU: remove unnecessary set_bit_string The set_bit_string call in the address allocator is not necessary because its already called in iommu_area_alloc(). Signed-off-by: Joerg Roedel Cc: iommu@lists.linux-foundation.org Cc: bhavna.sarathy@amd.com Cc: robert.richter@amd.com Cc: Joerg Roedel Signed-off-by: Ingo Molnar commit 18d22200740b83a5d968d3236c27c310b3e8fda6 Author: Joerg Roedel Date: Thu Jul 3 19:35:06 2008 +0200 x86, AMD IOMMU: more verbose Kconfig description text This patch replaces the short description text for AMD IOMMU in Kconfig with a more verbose one. Signed-off-by: Joerg Roedel Cc: iommu@lists.linux-foundation.org Cc: bhavna.sarathy@amd.com Cc: robert.richter@amd.com Cc: Joerg Roedel Signed-off-by: Ingo Molnar commit ba8dd03ac09f51a69c154b8cb508b701d713a2cd Author: Heiko Carstens Date: Fri Jul 4 11:26:40 2008 +0200 generic-ipi: fix s390 build bug forgot to remove #include from linux/smp.h while fixing the original s390 build bug. Patch below fixes this build bug caused by header inclusion dependencies: CC kernel/timer.o In file included from include/linux/spinlock.h:87, from include/linux/smp.h:11, from include/linux/kernel_stat.h:4, from kernel/timer.c:22: include/asm/spinlock.h: In function '__raw_spin_lock': include/asm/spinlock.h:69: error: implicit declaration of function 'smp_processor_id' Signed-off-by: Heiko Carstens Signed-off-by: Ingo Molnar commit 32502b8413a77b54b9e19809404109590c32dfb7 Author: Miklos Szeredi Date: Fri Jul 4 09:35:17 2008 +0200 splice: fix generic_file_splice_read() race with page invalidation If a page was invalidated during splicing from file to a pipe, then generic_file_splice_read() could return a short or zero count. This manifested itself in rare I/O errors seen on nfs exported fuse filesystems. This is because nfsd uses splice_direct_to_actor() to read files, and fuse uses invalidate_inode_pages2() to invalidate stale data on open. Fix by redoing the page find/create if it was found to be truncated (invalidated). Signed-off-by: Miklos Szeredi Signed-off-by: Andrew Morton Signed-off-by: Jens Axboe commit 8b3d3567f72aa61d5d6f4ce89d289b154e1ea866 Author: Octavian Purdila Date: Fri Jul 4 09:33:33 2008 +0200 ramfs: enable splice write Signed-off-by: Octavian Purdila Signed-off-by: Andrew Morton Signed-off-by: Jens Axboe commit 7c0c0b5b19611ac15eec69043cb5588f6cbfbd7b Author: Christophe Jaillet Date: Fri Jul 4 09:33:17 2008 +0200 drivers/block/pktcdvd.c: avoid useless memset Avoid the 'memset(...,0, ...)' before calling 'init_cdrom_command' because this function already does it. Signed-off-by: Christophe Jaillet Acked-by: Peter Osterlund Signed-off-by: Andrew Morton Signed-off-by: Jens Axboe commit fce5384755e8e0e56c5609d2972db4702990d592 Author: FUJITA Tomonori Date: Fri Jul 4 09:33:01 2008 +0200 cdrom: revert commit 22a9189 (cdrom: use kmalloced buffers instead of buffers on stack) The commit 22a9189fd073db3d03a4cf8b8c098aa207602de1 (cdrom: use kmalloced buffers instead of buffers on stack) is introduced to use kmalloced buffers for packet commands to avoid stack corruption on non coherent platforms. SCSI cdrom uses blk_rq_map_kern, which properly avoids DMA on the stack by using the bounce buffers. IDE cdrom also has the mechnism to avoids DMA on the stack. So we don't need this extra complexitiy in cdrom.c, such as allocating just 8 bytes. The lower layers can handle it. Signed-off-by: FUJITA Tomonori Cc: Thomas Bogendoerfer Cc: Bartlomiej Zolnierkiewicz Cc: Thomas Bogendoerfer Cc: Tejun Heo Cc: James Bottomley Signed-off-by: Andrew Morton Signed-off-by: Jens Axboe commit 62858dacc8dea55c5bdb474ccd8acb0657e23dd0 Author: FUJITA Tomonori Date: Fri Jul 4 09:31:50 2008 +0200 scsi: sr avoids useless buffer allocation blk_rq_map_kern can handle the stack buffers correctly (avoid DMA from/to the stack buffers by using the bounce buffer) so we don't need to complicate the code by allocating just 8 bytes. Signed-off-by: FUJITA Tomonori Cc: James Bottomley Cc: Bartlomiej Zolnierkiewicz Cc: Thomas Bogendoerfer Cc: Tejun Heo Signed-off-by: Andrew Morton Signed-off-by: Jens Axboe commit 30c00eda73d5db5bd64dd0c370161abd8df5ba4a Author: FUJITA Tomonori Date: Fri Jul 4 09:31:11 2008 +0200 block: blk_rq_map_kern uses the bounce buffers for stack buffers blk_rq_map_kern is used for kernel internal I/Os. Some callers use this function with stack buffers but DMA to/from the stack buffers leads to memory corruption on a non-coherent platform. This patch make blk_rq_map_kern uses the bounce buffers if a caller passes a stack buffer (on the all platforms for simplicity). Signed-off-by: FUJITA Tomonori Cc: Bartlomiej Zolnierkiewicz Cc: Thomas Bogendoerfer Cc: Tejun Heo Cc: James Bottomley Signed-off-by: Andrew Morton Signed-off-by: Jens Axboe commit 27f8221af406e43b529a5425bc99c9b1e9bdf521 Author: FUJITA Tomonori Date: Fri Jul 4 09:30:03 2008 +0200 block: add blk_queue_update_dma_pad This adds blk_queue_update_dma_pad to prevent LLDs from overwriting the dma pad mask wrongly (we added blk_queue_update_dma_alignment due to the same reason). This also converts libata to use blk_queue_update_dma_pad instead of blk_queue_dma_pad. Signed-off-by: FUJITA Tomonori Cc: Tejun Heo Cc: Bartlomiej Zolnierkiewicz Cc: Thomas Bogendoerfer Cc: James Bottomley Signed-off-by: Andrew Morton Signed-off-by: Jens Axboe commit 2610324fcacf38a24b630090ebcb802538763187 Author: Alan Cox Date: Fri Jul 4 09:29:31 2008 +0200 DAC960: push down BKL Signed-off-by: Alan Cox Cc: Richard Knutsson Signed-off-by: Andrew Morton Signed-off-by: Jens Axboe commit 5b6155ee70e9c4d2ad7e6f514c8eee06e2711c3a Author: Alan Cox Date: Fri Jul 4 09:29:16 2008 +0200 pktcdvd: push BKL down into driver Push the lock_kernel down into the driver and switch to unlocked_ioctl [akpm@linux-foundation.org: build fix] Signed-off-by: Alan Cox Acked-by: Peter Osterlund Signed-off-by: Andrew Morton Signed-off-by: Jens Axboe commit be1fd70fea1100c57f3aa1934ebb93abc474e50c Author: Alan Cox Date: Fri Jul 4 09:51:21 2008 +0200 paride: push ioctl down into driver Leaves us with lock_kernel for two methods. Also remove a bogus printk with no printk level and return -ENOTTY not -EINVAL for correctness. Signed-off-by: Alan Cox Signed-off-by: Andrew Morton (Jens: added smp_lock.h include to pt.c, otherwise it wont compile because of missing {un}lock_kernel() definition) Signed-off-by: Jens Axboe commit 72f6befeea7dc634a83219287d5b874734b85637 Author: Hans-Christian Egtvedt Date: Fri Jul 4 09:33:03 2008 +0200 avr32: Fix typo of IFSR in a comment in the PIO header file Signed-off-by: Hans-Christian Egtvedt Signed-off-by: Haavard Skinnemoen commit 823ed72e8fe566983b121e8cc3147dd50ce63a8a Author: Harvey Harrison Date: Fri Jul 4 09:28:32 2008 +0200 block: use get_unaligned_* helpers Signed-off-by: Harvey Harrison Signed-off-by: Andrew Morton Signed-off-by: Jens Axboe commit 1d46e379aae7349069f459618f53fd5193c2fd29 Author: Grant Likely Date: Fri Jul 4 00:59:37 2008 -0600 powerpc/bootwrapper: add missing bit of simpleImage target The wrapper script is missing the bits needed for building generic simpleImage targets (targets which don't depend on any particular firmware interface and retrieve all their data from the device tree). Signed-off-by: Grant Likely commit 70bf0333d72cd66daf7664c44708f65518b267cc Author: Grant Likely Date: Wed Jun 25 13:14:36 2008 -0700 powerpc/bootwrapper: Add documentation of boot wrapper targets There have been many questions on and off the mailing list about how exactly the bootwrapper is used for embedded targets. Add some documentation and help text to try and clarify the system. Signed-off-by: Grant Likely commit 94ec359e45f2d6ec27027055f64bece03ea2bf07 Author: John Linn Date: Wed Jul 2 15:48:34 2008 -0700 powerpc/virtex: add defconfig for virtex 5 platforms This defconfig file is specific to Xilinx Virtex 5 FXT platform. Signed-off-by: John Linn Signed-off-by: Grant Likely commit 23e7237e096aa69e1061294c8af2b592f7802808 Author: John Linn Date: Tue Jul 1 09:42:07 2008 -0700 powerpc/virtex: add Xilinx 440 cpu to the cputable Updates the cputable to include the 440 processor found in the Xilinx Virtex5 FXT FPGA. Signed-off-by: John Linn Signed-off-by: Grant Likely commit 39fd0e92b3dc864f36c1253006b8b831844d36f1 Author: John Linn Date: Thu Jul 3 07:05:04 2008 -0700 powerpc/virtex: add Xilinx Virtex 5 ppc440 platform support Support for the Xilinx Virtex5 FXT 440 is being added. Signed-off-by: John Linn Signed-off-by: Grant Likely commit d58577d8f36f66dbb5dec30fc01dfddda0cfd1fa Author: John Linn Date: Wed Jul 2 15:11:28 2008 -0700 powerpc/virtex: Fix booting of Xilinx FPGAs with 16550 for 405 and 440 The following changes add processing to initialize the Xilinx 16550 UART in the boot wrapper for Virtex targets without firmware. Normally the boot wrapper assumes that the serial port has already been initialized by firmware. The wrapper was also modified to add the 440 build. Signed-off-by: John Linn Signed-off-by: Grant Likely commit dc568ec4906ac2478e2d692adc6b12fbb6e4657e Author: John Linn Date: Tue Jul 1 16:02:54 2008 -0700 powerpc/virtex: add dts file for ML507 reference design This new file adds support for the ML507 reference design. The ML507 uses the Virtex 5 FXT FPGA which embeds a ppc440 core. Signed-off-by: John Linn Signed-off-by: Grant Likely commit eebfcfb52ce753eaaa8525078bda6b539586066c Author: Greg Kroah-Hartman Date: Wed Jul 2 13:24:49 2008 -0700 PCI: handle pci_name() being const This changes pci_setup_device to handle pci_name() now returning a constant string. Signed-off-by: Greg Kroah-Hartman Signed-off-by: Jesse Barnes commit b497549a035c2a81b71c7a27f2b00c8a16c09423 Author: Ben Dooks Date: Thu Jul 3 12:32:51 2008 +0100 [ARM] S3C24XX: Split serial driver into core and per-cpu drivers The S3C2410 serial driver in drivers/serial/s3c2410.c has been growing bigger with the addition of more variants of this hardware with the growing Samsung SoCs range. As such, it would be easier to split this code up into a core and per-cpu drivers to make driver addition easier, and the core smaller. Signed-off-by: Ben Dooks commit 6fc601e37bbb4045ee0afefc76b64284ea800c89 Author: Ben Dooks Date: Tue Jul 1 13:17:24 2008 +0100 [ARM] S3C24XX: PWM API support. Add support for PWM in the S3C24XX series of SoC via the PWM API. Signed-off-by: Ben Dooks commit d5c52922b618aa6ddd6b5ebebc8d0a5ec9a20f10 Author: Matthieu Castet Date: Thu Jul 3 11:24:45 2008 +0100 [ARM] S3C2412: Correct parents for EREFCLK and UREFCLK For s3c2412, set parent for clk_erefclk and clk_urefclk. This allow for example to use xtal or extclk for i2s clock. Signed-off-by: Ben Dooks Signed-off-by: Matthieu Castet commit 9c3871ca59884563e3f41669a330c9231952643b Author: Ben Dooks Date: Thu Jul 3 11:24:44 2008 +0100 [ARM] VR1000: Add tmp101 to list of I2C devices on the board Add tmp101 support via the new style I2C driver registration on the VR1000. Signed-off-by: Ben Dooks commit 7a28db61463d90043f7298a2e130af5630ff06ac Author: Ben Dooks Date: Thu Jul 3 11:24:43 2008 +0100 [ARM] ANUBIS: Add i2c device list to Simtec Anubis Add i2c board info initialiser to setup the list of I2C devices present on an Simtec Anubis. Signed-off-by: Ben Dooks commit 60d6698bb39a16f11006735cde9d55a4654c34ca Author: Ben Dooks Date: Thu Jul 3 11:24:42 2008 +0100 [ARM] VR1000: Add i2c device list to Thorcom VR1000 Add i2c board intialisers to specify the I2C devices attached on the Thorcom VR1000. Signed-off-by: Ben Dooks commit 042cf0f21feebc07b70bab9176c6be59f5fcdbc5 Author: Ben Dooks Date: Thu Jul 3 11:24:41 2008 +0100 [ARM] BAST: Add i2c device list on Simtec Bast Add i2c boardinfo for the connected i2c devices on the Simtec Bast. Signed-off-by: Ben Dooks commit f337422147ca28fad0ff18d67a82c8b475872109 Author: Ben Dooks Date: Thu Jul 3 11:24:40 2008 +0100 [ARM] OSIRIS: Add i2c device list to Simtec Osiris Add an i2c board information initialisers to the board to define which devices are present. Signed-off-by: Ben Dooks commit 9d529c6e7b73088551057445763b2be755a3b82f Author: Ben Dooks Date: Thu Jul 3 11:24:39 2008 +0100 [ARM] S3C24XX: Add physmap device for all Simtec NOR equiped boards. Move to using the physmap platform device code to attached NOR flash on Simtec boards so that the old bast-flash driver can be safely removed. Signed-off-by: Ben Dooks commit b9db83af69e4c61107803c85872d01a45949e052 Author: Ben Dooks Date: Thu Jul 3 11:24:38 2008 +0100 [ARM] ANUBIS: Move to using ata_platform driver (libata) Change the (as yet unused) IDE bus on the Simtec Anubis board to use pata_platform and thus libata to provide IDE support. Signed-off-by: Ben Dooks commit b7a12d1923f12aa00a68347a3ad97c43ecf55667 Author: Ben Dooks Date: Thu Jul 3 11:24:37 2008 +0100 [ARM] BAST/VR1000: Move to using ata_platform (libata) Use the pata_platform driver to provide the IDE port drivers on the Simntec BAST and Thorcom VR1000 machines as a precursor to removing drivers/ide/arm/bast-ide.c This will mean that the system will need SCSI and SCSI disc support as a minimum, and any references to hdX will be changed to sdX. Signed-off-by: Ben Dooks commit dd1086f43dc7205b451ae95e37d4813a9c28611d Author: Ben Dooks Date: Thu Jul 3 11:24:36 2008 +0100 [ARM] JIVE: Add power off on shutdown support Add pm_power_off hook to allow the Logitech Jive to shutdown when asked to halt. Signed-off-by: Ben Dooks commit d10d8a5f79e3e33db1a9f177c54187e2312598f2 Author: Ben Dooks Date: Thu Jul 3 11:24:35 2008 +0100 [ARM] JIVE: Add i2c device info for LIS302DL sensor Add i2c bus definition for the LIS302DL sensor driver which is connected on the i2c bus. Signed-off-by: Ben Dooks commit fd2de272b23bbb866294ff72f55d3731fe6a4c92 Author: Ben Dooks Date: Thu Jul 3 11:24:34 2008 +0100 [ARM] JIVE: Add board definitions for audio Add board definitions for the audio device connected on the Logitech Jive. Signed-off-by: Ben Dooks commit c2c1708f9d2d0435ff136acbb98f8cfbeded09e4 Author: Ben Dooks Date: Thu Jul 3 11:24:33 2008 +0100 [ARM] JIVE: Add LCD display setup information Add the setup information for the LCD display connected to the device. Signed-off-by: Ben Dooks commit a2ed4065159d87d88f2bdc5a3a53e96b76f5a198 Author: Ben Dooks Date: Thu Jul 3 11:24:32 2008 +0100 [ARM] JIVE: Add SPI bus definitions for LCD controller Add the definitions for the VGG2432A4 intelligent LCD display conneected via an GPIO-based SPI bus on the Logitech Jive. Signed-of-by: Ben Dooks commit 0f99263cda230415a48163fe9c30447173f73ff1 Author: Ben Dooks Date: Thu Jul 3 11:24:31 2008 +0100 [ARM] JIVE: Add setup information for the S3C2412 LCD controller Setup the video controller information for the Jive. Signed-off-by: Ben Dooks commit 54c272acd16dbfb7b83948b04bf19ba451885284 Author: Ben Dooks Date: Thu Jul 3 11:24:30 2008 +0100 [ARM] JIVE: Initialise the sleep configuration registers Ensure that the S3C2412 sleep configuration registers are approriately setup so that the device can safely go to sleep. Signed-off-by: Ben Dooks commit 9db829f485c553a0e677a165b37f877bf74f36ff Author: Ben Dooks Date: Thu Jul 3 11:24:29 2008 +0100 [ARM] JIVE: Initial machine support for Logitech Jive This is the base machine support for the Logitech Jive machine. Signed-off-by: Ben Dooks commit b999f0db941f56bb0f68ebf455f6e2960cfd5804 Author: Ben Dooks Date: Thu Jul 3 11:24:27 2008 +0100 [ARM] S3C24XX: Support for PWM timer clocks via clk_* API Add support for the PWM timer clock routing via the standard clk_ API. Signed-off-by: Ben Dooks commit b4b68f8cfaf583945019e41674cfa858c83316c3 Author: Ben Dooks Date: Thu Jul 3 11:24:26 2008 +0100 [ARM] S3C24XX: Add PWM timer MUX defines Add timer defines for the MUX settings for each of the PWM timers to add to the per-timer defines already in the file. Signed-off-by: Ben Dooks commit f348a2a2817e9d24b1edd4befc9659ec83501ca5 Author: Ben Dooks Date: Thu Jul 3 11:24:25 2008 +0100 [ARM] S3C24XX: Add gpiolib support Add support for gpilib on all S3C24XX platforms. Signed-off-by: Ben Dooks commit ed9137f10377a59487cf43c76dd0d3bbf489d799 Author: Ben Dooks Date: Thu Jul 3 11:32:28 2008 +0100 [ARM] S3C24XX: s3c2410_defconfig: enable USB subset of drivers Enable a subset of USB drivers which are useful for using on these devices. Signed-off-by: Ben Dooks commit 328dce1fa0407aae96f58ca114d0d80b587b86f5 Author: Ben Dooks Date: Thu Jul 3 11:32:27 2008 +0100 [ARM] S3C24XX: s3c2410_defconfig: add SCSI support Enable SCSI support, mainly to help with adding USB storage support later and for the imminent changes for libata. Signed-off-by: Ben Dooks commit 186eb08b8b8c637eac658e58b7dccc1f381a4551 Author: Ben Dooks Date: Thu Jul 3 11:32:26 2008 +0100 [ARM] S3C24XX: s3c2410_defconfig: update networking options Add the following to the networking confgiuration: 1) Packet socket support (useful for userland dhcp) 2) Add bluetooth and USB bluetooth drivers as modules 3) Add basic IPv6 support as modules. 4) Add the wireless core as modules. Signed-off-by: Ben Dooks commit d947ae572149b30207ce2e0bde5ab0a658059df6 Author: Ben Dooks Date: Thu Jul 3 11:32:25 2008 +0100 [ARM] S3C24XX: s3c2410_defconfig: update miscellaneous options Add some basic config filesystem, ensure errors are verbose by default. Signed-off-by: Ben Dooks commit fa941dc98668e80c11c7d4faa1c5f5163556bdfe Author: Ben Dooks Date: Thu Jul 3 11:32:24 2008 +0100 [ARM] S3C24XX: s3c2410_defconfig: update filesystem options Enable new filesystem options, such as: - JFFS2 summary nodes - Ext2/3 externed options - Standard CDROM filesystems Also add NTFS as a module. Signed-off-by: Ben Dooks commit a373473a90122cf5ea5779d62d603fcb3201ab5b Author: Ben Dooks Date: Thu Jul 3 11:32:23 2008 +0100 [ARM] S3C24XX: s3c2410_defconfig: enable useful NLS options Enable some useful NLS codepages to be built into the kernel, and build the rest as modules. Signed-off-by: Ben Dooks commit d951f55d6aface8dbeaed2e8d8d35d29afa37921 Author: Ben Dooks Date: Thu Jul 3 11:32:22 2008 +0100 [ARM] S3C24XX: s3c2410_defconfig: update list of used drivers Update the drivers built, such as the SM501 and parallel port. Signed-off-by: Ben Dooks commit 0acaff300fbdc7752b80b9cd8181bfdcedef012f Author: Ben Dooks Date: Thu Jul 3 11:32:21 2008 +0100 [ARM] S3C24XX: s3c2410_defconfig: update to rc8 Update the s3c2410_defconfig to rc8 Signed-off-by: Ben Dooks commit ea304e394f78af6bafee07e0ed916af9c38abf48 Author: Ben Dooks Date: Thu Jul 3 11:24:23 2008 +0100 [ARM] S3C2410: Add sysfs attribute for serial driver clock source Add attribute to show the current clock source for the serial driver and remove old and annoying debug output. Note, this only currently shows the current source with a "* " prefix to indicate that it is the current source. Future code will list all the clock sources, with the non-selected one with " " prefix. Signed-off-by: Ben Dooks PATCH FOLLOWS KernelVersion: 2.6.26-rc3 commit 9cf345e3991623d4b7e4df2624b898d7f20ec37f Author: Ben Dooks Date: Thu Jul 3 11:24:22 2008 +0100 [ARM] S3C2410: Fix flags on DM9000 resources on BAST and VR1000 Fix the flags entries for the DM9000 IRQ entries on both the Simtec BAST and Thorcom VR1000 board. The current entries use the IRQF_ flags, but we should be using the IORESOURCE_IRQ_ definitions. Signed-off-by: Ben Dooks PATCH FOLLOWS KernelVersion: 2.6.26-rc5 commit f7def13ed0775ee506c62a8612a124dce1776ac2 Author: Paulius Zaleckas Date: Wed Jun 25 13:25:13 2008 +0100 [ARM] 5122/1: imx_dma_request_by_prio simpilfication imx_dma_request_by_prio can return channel number by itself. No need to supply variable address through parameters. Also converted all drivers using this function. Signed-off-by: Paulius Zaleckas Acked-by: Sascha Hauer Signed-off-by: Russell King commit 60a752ef34e23be5e6c91c0734d30447ce15b63b Author: Paulius Zaleckas Date: Wed Jun 25 13:33:14 2008 +0100 [ARM] 5123/1: Select GENERIC_HARDIRQS_NO__DO_IRQ for ARM arch ARM architecture is not using __do_IRQ Acked-By: Uwe Kleine-König Signed-off-by: Paulius Zaleckas Signed-off-by: Russell King commit 826cbdaff29764bb6928c715c6a025e49469dda9 Author: Catalin Marinas Date: Fri Jun 13 10:28:36 2008 +0100 [ARM] 5092/1: Fix the I-cache invalidation on ARMv6 and later CPUs This patch adds the I-cache invalidation in update_mmu_cache if the corresponding vma is marked as executable. It also invalidates the I-cache if a thread migrates to a CPU it never ran on. Signed-off-by: Catalin Marinas Signed-off-by: Russell King commit 43df5220e455d426ec7462d0bf906e686c65ebb5 Author: Catalin Marinas Date: Mon Jun 23 16:32:14 2008 +0100 [ARM] 5121/1: Annotate platform_secondary_init with trace_hardirqs_off This patch annotates the platform_secondary_init function in arch/arm/mach-realview/platsmp.c with trace_hardirqs_off to avoid a warning when LOCKDEP and TRACE_IRQFLAGS are enabled. Signed-off-by: Catalin Marinas Signed-off-by: Russell King commit d41d219e8154885105d631661e5a86ba6461fb81 Author: Matthias Kaehlcke Date: Mon Jun 9 16:24:08 2008 -0700 [ARM] OMAP1: N770: Convert audio_pwr_sem in a mutex ARM: OMAP1: N770: The semaphore audio_pwr_sem is used as a mutex. Convert it to the mutex API [akpm@linux-foundation.org: include mutex.h] Signed-off-by: Matthias Kaehlcke Cc: Tony Lindgren Signed-off-by: Andrew Morton Signed-off-by: Russell King commit 3c093f9f182eef6a8dc535f2c62b36a0320d0db1 Author: Vegard Nossum Date: Mon Jun 9 16:24:10 2008 -0700 [ARM] fix header guards Acked-by: Dan Williams Signed-off-by: Vegard Nossum Signed-off-by: Andrew Morton Signed-off-by: Russell King commit 6ccc3fc56e4cca6aceb81376fdb5d4c3340e72d8 Author: Adrian Bunk Date: Mon Jun 9 16:24:09 2008 -0700 [ARM] remove drivers/acorn/char/defkeymap-l7200.c The config option for building drivers/acorn/char/defkeymap-l7200.c is not present since at least kernel 2.6.0. Signed-off-by: Adrian Bunk Signed-off-by: Andrew Morton Signed-off-by: Russell King commit 8fe059df33f82fb785dd795391498ad8bc6fac09 Author: Ben Dooks Date: Fri May 23 11:48:00 2008 +0100 [ARM] 5054/1: S3C2410: Add GPLv2 license to the s3c2410 serial driver The original driver had an MODULE_LICENSE statement for GPL, but no explict license in the header of the file. To make this more explicit, and since I am the original authour, we will add a GPLv2 header. Signed-off-by: Ben Dooks Signed-off-by: Russell King commit 05a78966395c5a115be3d38f6eb82efc94ee45b0 Author: Ben Dooks Date: Thu May 22 16:36:45 2008 +0100 [ARM] 5050/1: S3C2410: Cleanup header on S3C2410 serial driver Remove the changelog which should really be found in the version control system. Signed-off-by: Ben Dooks Signed-off-by: Russell King commit 946e2ad040000a14b7316fae722e7e65fa09ffe5 Merge: 543cf4c... e055d5b... Author: Russell King Date: Thu Jul 3 16:13:28 2008 +0100 Merge branch 'fb' into devel Conflicts: arch/arm/Kconfig commit 341eb781019afbf279b42722b00f63c6db00bf09 Author: Ben Dooks Date: Tue Jul 1 14:16:49 2008 +0100 [ARM] 5140/1: RPC: Use HAVE_PATA_PLATFORM to select pata platform driver Use HAVE_PATA_PLATFORM for ARCH_RPC Cc: Linux ARM Kernel Cc: Russell King Signed-off-by: Ben Dooks Signed-off-by: Russell King commit 9ecba1f288d2cf87d1b6a9401d5ce17464eb776d Author: Russell King Date: Sat Apr 19 16:01:38 2008 +0100 [ARM] rpc: ecard: remove deprecated ecard_address() and relatives ecard_address() is obsolete, and has been marked deprecated since at least 2.6.12-rc2. All in-tree users have been updated to use the new approach, so it's time to remove this. Signed-off-by: Russell King commit 50bbb05d60e1897abad92d42bf185314be36bd74 Author: Russell King Date: Sat Apr 19 15:56:08 2008 +0100 [ARM] rpc: deprecate __ioaddr() and __ioaddrc() helpers Now everything is converted to use MMIO accessors, these helpers are no longer required. Signed-off-by: Russell King commit e95a1b656a9809acd8ba8eb867ac6a7759d6180e Author: Russell King Date: Sat Apr 19 15:42:57 2008 +0100 [ARM] rpc: acornscsi: update to new style ecard driver Update acornscsi as per all the other ecard drivers to use MMIO accessors rather than the obsolete 'pc io' style inb/outb accessors. Use ecard_request_resources()/ecard_release_resources() for easier resource handling, rather than requesting 5 separate regions individually. Acked-by: James Bottomley Signed-off-by: Russell King commit a796ef7035c6c5cc5726c3e4e8d71175c13828df Author: Russell King Date: Sat Apr 19 15:37:44 2008 +0100 [ARM] rpc: acornscsi: stop using private __stringify() The kernel has its own, so let's use that instead. Acked-by: James Bottomley Signed-off-by: Russell King commit ffd7858dd8ebb93fad700b830b3b9f6d024c9eac Author: Russell King Date: Sat Apr 19 14:26:18 2008 +0100 [ARM] rpc: acornscsi: convert hardware accessors to take 'AS_Host *' Acked-by: James Bottomley Signed-off-by: Russell King commit 324b9337f246e5f00aad10220d8d4bc13f1922ed Author: Russell King Date: Sat Apr 19 15:13:45 2008 +0100 [ARM] rpc: acornscsi: fixup abort/reset methods, fix build errors Revive the AcornSCSI driver, update it for the replacement command abort and host reset methods, and fix the build errors in acornscsi-io.S. Acked-by: James Bottomley Signed-off-by: Russell King commit d8f8eb43e9d6d5789f37c8a80db99af894944d41 Author: Russell King Date: Sat Apr 19 15:20:23 2008 +0100 [ARM] rpc: acornscsi: remove unused 'ADDR' macro Acked-by: James Bottomley Signed-off-by: Russell King commit 36149f02cb830570ca57228c8ad3d82742485eb7 Author: Russell King Date: Sat Apr 19 15:12:23 2008 +0100 [ARM] rpc: etherh: fix unused variable warning Fix: drivers/net/arm/etherh.c:650: warning: unused variable `i' Signed-off-by: Russell King commit 95c60b08c6af6db2165837139da10f593462d51c Author: Gustavo Fernando Padovan Date: Wed Jun 25 04:03:19 2008 -0300 x86: remove unnecessary #ifdef CONFIG_X86_32...#else Remove the #ifdef conditional because this comparison is already done in user_mode_vm(). Signed-off-by: Gustavo F. Padovan Cc: akpm@osdl.org Signed-off-by: Ingo Molnar commit 2d144e63098be47c21ad59d68a4fd17bd73a3aaf Author: Venki Pallipadi Date: Tue Jun 24 17:12:56 2008 -0700 x86, mce_64.c: mce_cpu_quirks being ignored Quirks getting ignored was a bug. Below patch fixes the bug, until we have the dynamic banks support. Sysfs choice configuration should not have any issues with the earlier patch as we look for NR_SYSFS_BANKS in do_machine_check(). Signed-off-by: Venkatesh Pallipadi Cc: Andi Kleen Cc: Max Asbock Signed-off-by: Ingo Molnar commit a8cac817764a494705aebd99fd51bdf6cdc28ec9 Merge: b4b3bd9... 543cf4c... Author: Ingo Molnar Date: Thu Jul 3 15:03:02 2008 +0200 Merge commit 'v2.6.26-rc8' into x86/mce commit 98a05ed4bd7774f533ab185fe0bf2fdc58292d7c Author: Abhishek Sagar Date: Thu Jun 26 22:51:51 2008 +0530 ftrace: prevent ftrace modifications while being kprobe'd, v2 add two missing chunks for ftrace+kprobe. Signed-off-by: Abhishek Sagar Cc: Steven Rostedt Signed-off-by: Ingo Molnar commit 6bcb13b35a2ea39be6c7cc0292b8ad1191b1a748 Author: Ben Collins Date: Wed Jun 18 14:04:35 2008 -0400 x86: config option to disable info from decompression of the kernel This patch allows the disabling of decompression messages during x86 bootup. Signed-off-by: Ben Collins Signed-off-by: Ingo Molnar commit c0f7edb3099d538017c52556aab596b857dc92ee Author: Guennadi Liakhovetski Date: Fri Jun 13 11:50:44 2008 +0100 [ARM] 5094/1: pcm990: Add framebuffer and backlight support PCM990 boards can be assembled with either a Sharp STN or a NEC TFT LCD. This patch adds support for these displays and for the backlight, using the pwm_bl driver. Signed-off-by: Guennadi Liakhovetski Signed-off-by: Russell King commit 85847a360ff5012ed7932bb5bb63566ad584e02f Author: Philipp Zabel Date: Thu May 22 14:20:01 2008 +0100 [ARM] 5045/1: magician: use the pwm_bl driver for the LCD backlight magician has a GPIO that modifies the brightness level additionally to the PWM duty value. This patch makes use of the pwm_bl notify callback to present userspace with a single brightness scale. This gets rid of the pxa_set_cken calls and direct PWM register access. Signed-off-by: Philipp Zabel Signed-off-by: Russell King commit 43bda1a6d218744382547a2f8be3240d1c3a151b Author: Ben Dooks Date: Tue Jul 1 14:18:27 2008 +0100 [ARM] 5141/1: PWM: pwm_request() should return an PTR_ERR() instead of NULL. Make the return of pwm_request() be more informative than just being NULL on error by using PTR_ERR() to respond with an approriate error. Signed-off-by: Ben Dooks Signed-off-by: Russell King commit 3b73125af69f93972625f4b655675f42ca4274eb Author: Philipp Zabel Date: Thu May 22 14:18:40 2008 +0100 [ARM] 5044/1: pwm_bl: add init/notify/exit callbacks This allows platform code to manipulate GPIOs and brightness level as needed. Signed-off-by: Philipp Zabel Signed-off-by: Russell King commit 4a73071947d21f3aa39fa3a4bac104aaab94cfca Author: Russell King Date: Sun May 18 13:11:02 2008 +0100 [ARM] pxa: make LogicPD 270 use the generic PWM backlight driver Acked-by: Lennert Buytenhek Signed-off-by: Russell King commit 402e490997ddaae310a080534a61d7ec24df8124 Author: Russell King Date: Sun Apr 13 21:47:01 2008 +0100 [ARM] pxa: make mainstone use the generic PWM backlight driver Signed-off-by: Russell King commit 5cca91479b8ac6a60b61bc56e72389c681387211 Author: eric miao Date: Sun Apr 13 21:46:34 2008 +0100 [ARM] pxa: make zylonite use the generic PWM backlight driver Patch mostly by Eric Miao, minor edits by rmk. Signed-off-by: eric miao Signed-off-by: Russell King commit 42796d37da6ef4fd851dc6d5d0387baf7e2b0c3c Author: eric miao Date: Mon Apr 14 09:35:08 2008 +0100 [ARM] pxa: add generic PWM backlight driver Patch mostly from Eric Miao, with minor edits by rmk to convert Eric's driver to a generic PWM-based backlight driver. Signed-off-by: eric miao Signed-off-by: Russell King commit c860d701cc5f77b74c481dcbd25b2d8b31c622fc Author: Robert Jarzmik Date: Tue Jun 10 23:02:31 2008 +0100 [ARM] 5087/1: Get the PWM layer to handle clock enable/disable properly. Allow pwm_enable()/pwm_disable() to be called as many times as the driver wants (and not even count them). The PWM model is different from things like the clock API where we need enable counting, because PWMs have one exclusive user per PWM whereas the clock API can have multiple users of the same clock. Acked-by: eric miao Signed-off-by: Robert Jarzmik Signed-off-by: Russell King commit b5f0228afa7810f3cad1f2f741cc747a2378b890 Author: Guennadi Liakhovetski Date: Thu Jun 5 10:45:02 2008 +0100 [ARM] 5078/1: pxa-pwm: Add missing MODULE_LICENSE to be able to build the driver as a module Without a GPL-compatible license this driver cannot be built as a module, because the platform_driver_* API is only exported to GPL modules. Signed-off-by: Guennadi Liakhovetski Acked-by: Eric Miao Signed-off-by: Russell King commit 0b1c25d2c0f35b4cdd3f04f365cff31fc5a21813 Author: Philipp Zabel Date: Mon Jun 30 18:09:03 2008 +0100 [ARM] 5136/1: pxa: fix PWM device order for pxa27x Currently PWM0/2 (pxa27x_device_pwm0 at 0x40b00000 and 0x40b00010 are registered as as pwm_id 0 and 1, PWM1/3 (pxa27x_device_pwm1 at 0x40c00000 and 0x40c00010) are registered as pwm_id 2 and 3. This patch corrects the pwm_ids to match the documented register names. Signed-off-by: Philipp Zabel Acked-by: Eric Miao Signed-off-by: Russell King commit e48ec69005f02b70b7ecfde1bc39a599086d16ef Author: Jens Axboe Date: Thu Jul 3 13:18:54 2008 +0200 block: extend queue_flag bitops Add test_and_clear and test_and_set. Signed-off-by: Jens Axboe commit e180f5949327e897bc35a816f4f4010186632df9 Author: maximilian attems Date: Tue Jul 1 09:42:47 2008 +0200 block: request_module(): use format string Avoid bad things happening if the module has a printk control string in its name. Signed-off-by: maximilian attems Signed-off-by: Jens Axboe commit cc371e66e340f35eed8dc4651c7c18e754c7fb26 Author: Alasdair G Kergon Date: Thu Jul 3 09:53:43 2008 +0200 Add bvec_merge_data to handle stacked devices and ->merge_bvec() When devices are stacked, one device's merge_bvec_fn may need to perform the mapping and then call one or more functions for its underlying devices. The following bio fields are used: bio->bi_sector bio->bi_bdev bio->bi_size bio->bi_rw using bio_data_dir() This patch creates a new struct bvec_merge_data holding a copy of those fields to avoid having to change them directly in the struct bio when going down the stack only to have to change them back again on the way back up. (And then when the bio gets mapped for real, the whole exercise gets repeated, but that's a problem for another day...) Signed-off-by: Alasdair G Kergon Cc: Neil Brown Cc: Milan Broz Signed-off-by: Jens Axboe commit b24498d477a14680fc3bb3ad884fa9fa76a2d237 Author: Jens Axboe Date: Fri Jun 27 09:12:09 2008 +0200 block: integrity flags can't use bit ops on unsigned short Just use normal open coded bit operations instead, they need not be atomic. Signed-off-by: Jens Axboe commit 06a452e5b95eb669b7ad414ccf587dfc2d91b217 Author: Adel Gadllah Date: Fri Jun 27 09:16:17 2008 +0200 cmdfilter: extend default read filter This patch adds the commands that the former sg filter allowed for read access to the cmdfilter to keep userspace apps that rely on them working. Signed-off-by: Adel Gadllah Signed-off-by: Jens Axboe commit 2b272d4f7953a73ea1c1f7ba33d5a2d7439ce71b Author: Jens Axboe Date: Thu Jun 26 19:45:54 2008 +0200 sg: fix odd style (extra parenthesis) introduced by cmd filter patch Signed-off-by: Jens Axboe commit 07359fc61bb8ed786f96a1c24cca6f94dd17e329 Author: FUJITA Tomonori Date: Thu Jun 26 19:39:23 2008 +0200 block: add bounce support to blk_rq_map_user_iov blk_rq_map_user_iov can't handle the bounce buffer (it means that the bio_map_user_iov path doesn't work with a LLD that needs GFP_DMA). This patch fixes blk_rq_map_user_iov to support the bounce buffer. Signed-off-by: FUJITA Tomonori Cc: Mike Christie Signed-off-by: Jens Axboe commit c265a7f41706cee20508de5b4a919214cfd7a11b Author: Jens Axboe Date: Thu Jun 26 13:49:33 2008 +0200 cfq-iosched: get rid of enable_idle being unused warning Signed-off-by: Jens Axboe commit 0b07de85a76e1346e675f0e98437378932473df7 Author: Adel Gadllah Date: Thu Jun 26 13:48:27 2008 +0200 allow userspace to modify scsi command filter on per device basis This patch exports the per-gendisk command filter to user space through sysfs, so it can be changed by the system administrator. All users of the old cmd filter have been converted to use the new one. Original patch from Peter Jones. Signed-off-by: Adel Gadllah Signed-off-by: Peter Jones Signed-off-by: Jens Axboe commit 6e2401ad6f33de15ff00f78b88159f00a14f3b35 Author: Jens Axboe Date: Wed Jun 18 10:15:02 2008 +0200 block: integrity cleanups - No need to check for NULL bio, we'll get an immediate oops anyway. - Make bio_integrity() a proper function. Signed-off-by: Jens Axboe commit da9cbc87395308a21465bd25441297bbba0477e1 Author: Jens Axboe Date: Mon Jun 30 20:42:08 2008 +0200 block: blkdev.h cleanup, move iocontext stuff to iocontext.h Signed-off-by: Jens Axboe commit b984679efe1a616ec4ac919dba08286d71593900 Author: Jens Axboe Date: Tue Jun 17 19:05:48 2008 +0200 block: integrity checkpatch cleanups > 80 char lines and that sort of thing. Signed-off-by: Jens Axboe commit c1c72b59941e2f5aad4b02609d7ee7b121734b8d Author: Martin K. Petersen Date: Tue Jun 17 18:59:57 2008 +0200 block: Data integrity infrastructure documentation Signed-off-by: Martin K. Petersen Signed-off-by: Jens Axboe commit 7ba1ba12eeef0aa7113beb16410ef8b7c748e18b Author: Martin K. Petersen Date: Mon Jun 30 20:04:41 2008 +0200 block: Block layer data integrity support Some block devices support verifying the integrity of requests by way of checksums or other protection information that is submitted along with the I/O. This patch implements support for generating and verifying integrity metadata, as well as correctly merging, splitting and cloning bios and requests that have this extra information attached. See Documentation/block/data-integrity.txt for more information. Signed-off-by: Martin K. Petersen Signed-off-by: Jens Axboe commit 51d654e1d885607a6edd02b337105fa5c28b6d33 Author: Martin K. Petersen Date: Tue Jun 17 18:59:56 2008 +0200 block: Globalize bio_set and bio_vec_slab Move struct bio_set and biovec_slab definitions to bio.h so they can be used outside of bio.c. Signed-off-by: Martin K. Petersen Reviewed-by: Jeff Moyer Signed-off-by: Jens Axboe commit a144ff09bc52ef3f3684ed23eadc9c7c0e57b3aa Author: Ian Campbell Date: Tue Jun 17 10:47:08 2008 +0200 xen: Avoid allocations causing swap activity on the resume path Avoid allocations causing swap activity on the resume path by preventing the allocations from doing IO and allowing them to access the emergency pools. These paths are used when a frontend device is trying to connect to its backend driver over Xenbus. These reconnections are triggered on demand by IO, so by definition there is already IO underway, and further IO would naturally deadlock. On resume, this path is triggered when the running system tries to continue using its devices. If it cannot then the resume will fail; to try to avoid this we let it dip into the emergency pools. [ linux-2.6.18-xen changesets e8b49cfbdac, fdb998e79aba ] Signed-off-by: Ian Campbell Signed-off-by: Jeremy Fitzhardinge Signed-off-by: Jens Axboe commit 5a60d0cd4ff227c4c5212898ecbeeaf5662eb5fa Author: Jan Beulich Date: Tue Jun 17 10:47:08 2008 +0200 xen/blkfront: add __exit to module_exit() handlers Signed-off-by: Jan Beulich Signed-off-by: Jeremy Fitzhardinge Signed-off-by: Jens Axboe commit 04c0635058256e2f4618139c237e56b5a4bdbb8f Author: Wim Colgate Date: Tue Jun 17 10:47:08 2008 +0200 xen/blkfront: Make sure that the device is fully ready before allowing release. [ linux-2.6.18-xen changeset c1c57fea77e9 ] Signed-off-by: Wim Colgate Signed-off-by: Jeremy Fitzhardinge Signed-off-by: Jens Axboe commit 440a01a7f46742400c74d9d346118523e81d188b Author: Christian Limpach Date: Tue Jun 17 10:47:08 2008 +0200 xen/blkfront: Add the CDROM_GET_CAPABILITY ioctl to blkfront. Return 0 instead of -EINVAL if the blkfront device is a cdrom, i.e. had the VDISK_CDROM attribute. This allows udev's cdrom_id to correctly detect the device as a cdrom device. [ Add blkif_ioctl, and CDROMMULTISESSION ] [ linux-2.6.18-xen changeset d2bd9af846b5 ] Signed-off-by: Christian Limpach Signed-off-by: Jeremy Fitzhardinge Signed-off-by: Jens Axboe commit 1c91fe1a0d577f2e53475e789c9d63a0feb7d93c Author: Ian Campbell Date: Tue Jun 17 10:47:08 2008 +0200 xen/blkfront: Make sure we don't use bounce buffers, we don't need them. [ linux-2.6.18-xen changeset 667228bf8fc5 ] Signed-off-by: Ian Campbell Signed-off-by: Jeremy Fitzhardinge Signed-off-by: Jens Axboe commit 244b4d56f85bcd11b21ab0b94845a3dabeed5c10 Author: Jens Axboe Date: Thu Jun 12 20:12:36 2008 +0200 block: kill request_queue_t Everything was moved to struct request_queue a few kernel revisions ago, maintaining the deprecated typedef to avoid breaking things. Now the time has come to get rid of that typedef. Signed-off-by: Jens Axboe commit 1c9ce5276324ae566ca409491b99a2cc8d5986fa Author: Kay Sievers Date: Fri Jun 13 09:41:00 2008 +0200 block: export "ro" attribute Signed-off-by: Kay Sievers Signed-off-by: Jens Axboe commit 02c62304e6af60f1963695c6bc1bbffe619aa585 Author: Alan D. Brunelle Date: Wed Jun 11 09:12:52 2008 +0200 Added in user-injected messages into blk traces This allows a user to annotate the blk trace stream: writing a suitable message to {/sys/kernel/debug}/block//msg will have it propagated into the trace stream. Signed-off-by: Alan D. Brunelle Signed-off-by: Jens Axboe commit 7b679138b3237a9a3d45a4fda23a58ac79cd279c Author: Jens Axboe Date: Fri May 30 12:23:07 2008 +0200 cfq-iosched: add message logging through blktrace Now that blktrace has the ability to carry arbitrary messages in its stream, use that for some CFQ logging. Signed-off-by: Jens Axboe commit 863fddcb4b0caee4c2d5bd6e3b28779920516db3 Author: Jens Axboe Date: Thu May 29 09:35:22 2008 +0200 as-iosched: properly protect ioc_gone and ioc count If we have multiple tasks freeing io contexts when as-iosched is being unloaded, we could complete() ioc_gone twice. Fix that by protecting ioc_gone complete() and clearing with a spinlock for just that purpose. Doesn't matter from a performance perspective, since it'll only enter that path when ioc_gone != NULL (when as-iosched is being rmmod'ed). Signed-off-by: Jens Axboe commit 9a11b4ed0e7c44bca7c939aa544c3c47aae40c12 Author: Jens Axboe Date: Thu May 29 09:32:08 2008 +0200 cfq-iosched: properly protect ioc_gone and ioc count If we have multiple tasks freeing cfq_io_contexts when cfq-iosched is being unloaded, we could complete() ioc_gone twice. Fix that by protecting ioc_gone complete() and clearing with a spinlock for just that purpose. Doesn't matter from a performance perspective, since it'll only enter that path when ioc_gone != NULL (when cfq-iosched is being rmmod'ed). Signed-off-by: Jens Axboe commit bc4e0f9ae2b1b133d36c1392d0145d2997cff272 Author: Ben Castricum Date: Tue Jun 10 13:15:12 2008 +0200 x86: microcode: cosmetic changes First announce ourself, then start working. Currently this module reports itself when all is completed which is not most modules do. Plus some cosmetic/whitespace cleanups. Signed-off-by: Ben Castricum Cc: trivial@kernel.org Signed-off-by: Ingo Molnar commit 88b8ba90570067178d32c654ad95786041e86e86 Author: Paul Walmsley Date: Thu Jul 3 12:24:46 2008 +0300 ARM: OMAP2: Clock: New OMAP2/3 DPLL rate rounding algorithm This patch adds a new rate rounding algorithm for DPLL clocks on the OMAP2/3 architecture. For a desired DPLL target rate, there may be several multiplier/divider (M, N) values which will generate a sufficiently close rate. Lower N values result in greater power economy. However, lower N values can cause the difference between the rounded rate and the target rate ("rate error") to be larger than it would be with a higher N. This can cause downstream devices to run more slowly than they otherwise would. This DPLL rate rounding algorithm: - attempts to find the lowest possible N (DPLL divider) to reach the target_rate (since, according to Richard Woodruff , lower N values save more power than higher N values). - allows developers to set an upper bound on the error between the rounded rate and the desired target rate ("rate tolerance"), so an appropriate balance between rate fidelity and power savings can be set. This maximum rate error tolerance is set via omap2_set_dpll_rate_tolerance(). - never returns a rounded rate higher than the target rate. The rate rounding algorithm caches the last rounded M, N, and rate computation to avoid rounding the rate twice for each clk_set_rate() call. (This patch does not yet implement set_rate for DPLLs; that follows in a future patch.) The algorithm trades execution speed for rate accuracy. It will find the (M, N) set that results in the least rate error, within a specified rate tolerance. It does this by evaluating each divider setting - on OMAP3, this involves 128 steps. Another approach to DPLL rate rounding would be to bail out as soon as a valid rate is found within the rate tolerance, which would trade rate accuracy for execution speed. Alternate implementations welcome. This code is not yet used by the OMAP24XX DPLL clock, since it is currently defined as a composite clock, fusing the DPLL M,N and the M2 output divider. This patch also renames the existing OMAP24xx DPLL programming functions to highlight that they program both the DPLL and the DPLL's output multiplier. Signed-off-by: Paul Walmsley Signed-off-by: Tony Lindgren commit 542313cc98e72d026d2df86f515699dfaface460 Author: Paul Walmsley Date: Thu Jul 3 12:24:45 2008 +0300 ARM: OMAP2: Clock: Add OMAP3 DPLL autoidle functions This patch adds support for DPLL autoidle control to the OMAP3 clock framework. These functions will be used by the noncore DPLL enable and disable code - this is because, according to the CDP code, the DPLL autoidle status must be saved and restored across DPLL lock/bypass/off transitions. N.B.: the CORE DPLL (DPLL3) has three autoidle mode options, rather than just two. This code currently does not support the third option, low-power bypass autoidle. Signed-off-by: Paul Walmsley Signed-off-by: Tony Lindgren commit 097c584cd48844d9ef8402bdc6ab49e7e2135f31 Author: Paul Walmsley Date: Thu Jul 3 12:24:45 2008 +0300 ARM: OMAP: Add OMAP chip type structure; clean up mach-omap2/id.c Add a new OMAP chip identification interface, omap_chip_id. omap_chip_id is a structure which contains one bit for each OMAP2/3 CPU type, and on 3430, ES level. For example, the CHIP_IS_OMAP2420 bit is set in omap_chip at boot on an OMAP2420. On OMAP3430ES2, both CHIP_IS_OMAP3430 and CHIP_IS_OMAP3430ES2 bits are set. omap_chip is set in mach-omap2/id.c by _set_omap_chip(). Other code should use the omap_chip_is() function to test against omap_chip. Also, clean up id.c by splitting some code out of omap_check_revision() into its own function, _set_system_rev(); and converting some debug printk()s into pr_debug(). Second revision. Signed-off-by: Paul Walmsley Signed-off-by: Tony Lindgren commit ff00fcc9ca8f18facbc3fcd779e85887e5a0d247 Author: Tony Lindgren Date: Thu Jul 3 12:24:44 2008 +0300 ARM: OMAP: Turn CM and PRM access into functions Otherwise compiling in omap2 and omap3 will not work. Signed-off-by: Tony Lindgren commit a58caad11301a5bdc2d7b76596ab5477221f7a9b Author: Tony Lindgren Date: Thu Jul 3 12:24:44 2008 +0300 ARM: OMAP: Introduce omap_globals and prcm access functions for multi-omap New struct omap_globals contains the omap processor specific module bases. Use omap_globals to set the various base addresses to make detecting omap chip type simpler. Also introduce OMAP1_IO_ADDRESS and OMAP2_IO_ADDRESS for future multi-omap patches. Signed-off-by: Tony Lindgren commit e1f80bfca86ab48b7bed731b32262fb1a2835de5 Author: Tony Lindgren Date: Thu Jul 3 12:24:43 2008 +0300 ARM: OMAP: Remove __REG access for multi-omap This does not play nicely with multi-omap as it cannot be replaced by a function in io.c for omaps with different IO bases. Signed-off-by: Tony Lindgren commit f35ae6346850f6c192269b09088b20261760f0e0 Author: Tony Lindgren Date: Thu Jul 3 12:24:43 2008 +0300 ARM: OMAP: USB: Change omap USB code to use omap_read/write instead of __REG Change omap USB code to use omap_read/write instead of __REG for multi-omap Cc: David Brownell Cc: linux-usb@vger.kernel.org Cc: i2c@lm-sensors.org Signed-off-by: Tony Lindgren commit 030b15457d8069a6255579a28db196e002cb9c86 Author: Tony Lindgren Date: Thu Jul 3 12:24:41 2008 +0300 ARM: OMAP: Change omap_cf.c and omap_nor.c to use omap_readw/writew instead of __REG Change omap_cf.c and omap_nor.c to use omap_readw/writew instead of __REG. This is needed for multi-omap in the future. Cc: David Brownell Cc: linux-pcmcia@lists.infradead.org Cc: linux-mtd@lists.infradead.org Signed-off-by: Tony Lindren commit 137b3ee27ab1b27dba081542476054836978ca45 Author: Hiroshi DOYU Date: Thu Jul 3 12:24:41 2008 +0300 ARM: OMAP: CLKFW: Initial debugfs support for omap clock framework debugfs can provide the infrastructure to trace the dependencies of clock tree hierarchy quite visibly. This patch enables to keep track of clock tree hierarchy and expose their attributes under each clock directry as below: omap:~# tree -d -L 2 /debug/clock/omap_32k_fck/ /debug/clock/omap_32k_fck/ |-- gpt10_fck |-- gpt11_fck |-- gpt1_fck |-- per_32k_alwon_fck | |-- gpio2_fck | |-- gpio3_fck | |-- gpio4_fck | |-- gpio5_fck | |-- gpio6_fck | `-- wdt3_fck |-- ts_fck `-- wkup_32k_fck |-- gpio1_fck `-- wdt2_fck 14 directories omap:~# tree /debug/clock/omap_32k_fck/gpt10_fck/ /debug/clock/omap_32k_fck/gpt10_fck/ |-- flags |-- rate `-- usecount 0 directories, 3 files Although, compared with David Brownell's small patch, this may look bit overkilling, I expect that this debugfs can deal with other PRCM complexities at the same time. For example, powerdomain dependencies can be expressed by using symbolic links of these clocks if powerdomain supports dubgfs as well. Signed-off-by: Hiroshi DOYU Signed-off-by: Tony Lindgren commit 44f78f43b349d19d378a996c4a2d9fcdff771b1e Author: Tony Lindgren Date: Thu Jul 3 12:24:41 2008 +0300 ARM: OMAP: Clean up interrupt lines to fix warnings for multi-omap If boards with different NR_IRQS are compiled together, tons of compiler warnings are emitted about redefining NR_IRQS. This patch fixes the problem by adding up NR_IRQS in a common place. Patch also removes quite a bit of now unnecessary code. Signed-off-by: Tony Lindgren commit 78673bc898c2db7f4fac4871ec702c3443642308 Author: Eduardo Valentin Date: Thu Jul 3 12:24:40 2008 +0300 ARM: OMAP: McBSP: Add support for mcbsp on mach-omap2 This patch adds support for mach-omap2 based on current mcbsp platform driver. Signed-off-by: Eduardo Valentin Signed-off-by: Tony Lindgren commit 44ec9a3371d5cab323b81c95a4c01d7b5a89cdda Author: Eduardo Valentin Date: Thu Jul 3 12:24:40 2008 +0300 ARM: OMAP: McBSP: Add support for mcbsp on mach-omap1 This patch adds support for mach-omap1 based on current mcbsp platform driver. Signed-off-by: Eduardo Valentin Signed-off-by: Tony Lindgren commit bc5d0c89c88df67f92d5d5882c27437379e9e8af Author: Eduardo Valentin Date: Thu Jul 3 12:24:39 2008 +0300 ARM: OMAP: McBSP: Prepare for splitting into omap1 and omap2 code This patch transform mcbsp code to use platform data from arch/arm/plat-omap/devices.c It also gets ride of ifdefs on mcbsp.c code. To do it, a platform data structure was defined. Signed-off-by: Eduardo Valentin Signed-off-by: Tony Lindgren commit fb78d80808a75213f399b7b10048d72a0b39b494 Author: Eduardo Valentin Date: Thu Jul 3 12:24:39 2008 +0300 ARM: OMAP: McBSP: Coding style cleanup on arch/arm/plat-omap/mcbsp.c This patch fix lots of warnings and errors reported by scripts/checkpatch.pl on arch/arm/plat-omap/mcbsp.c. Signed-off-by: Eduardo Valentin Acked-by: Felipe Balbi Signed-off-by: Tony Lindgren commit c2d43e39c7c303db53facd0bea44b66f263e3f35 Author: Tony Lindgren Date: Thu Jul 3 12:24:38 2008 +0300 ARM: OMAP: SRAM: Split sram24xx.S into sram242x.S and sram243x.S Split sram24xx.S into sram242x.S and sram243x.S Signed-off-by: Tony Lindgren commit 373a67021d00a8b8c86bfa19f8914377de05b4bd Author: Tony Lindgren Date: Thu Jul 3 12:24:38 2008 +0300 ARM: OMAP: SRAM: Move omap2 sram-fn.S to sram242x.S This file will get split between sram242x.S and sram243x.S in following patch. Signed-off-by: Tony Lindgren commit 99f143b316b056a86c8226c15882cc0718f0b3b0 Author: Tony Lindgren Date: Thu Jul 3 12:24:38 2008 +0300 ARM: OMAP: SRAM: Move sram-fn.S from plat-omap to mach-omap1 This file is omap1 specific. Signed-off-by: Tony Lindgren commit 97b7f715589fb997e430c6aa824abbd9fd5ed42d Author: Tony Lindgren Date: Thu Jul 3 12:24:37 2008 +0300 ARM: OMAP: DMA: Clean-up code DMA clean-up, mostly checkpatch.pl fixes. Signed-off-by: Tony Lindgren commit 0499bdeb1dec30325aa282a83f9374fa849aa01c Author: Tony Lindgren Date: Thu Jul 3 12:24:36 2008 +0300 ARM: OMAP: DMA: Remove __REG access Remove __REG access in DMA code, use dma_read/write instead: - dynamically set the omap_dma_base based on the omap type - omap_read/write becomes dma_read/write - dma channel registers are read with dma_ch_read/write Cc: David Brownell Cc: linux-usb@vger.kernel.org Signed-off-by: Tony Lindgren commit 4d96372e6daae89166fed7883ee092dc8db80b21 Author: Tony Lindgren Date: Thu Jul 3 12:24:31 2008 +0300 ARM: OMAP: DMA: Make channels dynamic for multi-boot Make DMA channels dynamic for multi-boot Signed-off-by: Tony Lindgren commit 4a79acdc784c315d9c436ba2315d08f8f53b8adf Author: Paul Walmsley Date: Thu Jul 3 12:24:31 2008 +0300 ARM: OMAP: Add OMAP3430 base defines Add symbolic constants for OMAP3430 base addresses; include that file in hardware.h. Signed-off-by: Paul Walmsley Signed-off-by: Tony Lindgren commit 3fddd09e59cf49dc339e2de74d31a76c1f7f172f Author: Richard Woodruff Date: Thu Jul 3 12:24:30 2008 +0300 ARM: OMAP: DMTimer: Optimize by adding load and start This patch optimizes the timer load and start sequence. By combining the load and start a needless posted wait can be removed from the system timer execution path. * Before patch register writes are taking up .078% @ 500MHz during idle. Address |total |min |max |avr |count|ratio% old\process\default_idle|7.369s |0.0us|999.902ms|14.477ms|509. |62.661% ld\Global\cpu_v7_do_idle|4.265s |0.0us|375.786ms|24.374ms|175. |36.270% (UNKNOWN)|17.503ms|0.us|531.080us|5.119us|3419. |0.148% r\omap_dm_timer_set_load|8.135ms|0.0us|79.887us|15.065us|540. |0.069% <-- \vmlinux-old\Global\_end|2.023ms|0.0us|4.000us|0.560us|3613. |0.017% -old\Global\__raw_readsw|1.962ms|0.0us|108.610us|9.167us|214. |0.016% old\smc91x\smc_interrupt|1.353ms|0.0us|10.212us|2.348us|576. |0.011% s/namei\__link_path_walk|1.161ms|0.0us|4.310us|0.762us| 1524. |0.009% \omap_dm_timer_write_reg|1.085ms|0.0us|126.150us|2.153us|504. |0.009% <-- * After patch timer functions do not show up in top listings for long captures. Signed-off-by: Richard Woodruff Signed-off-by: Tony Lindgren commit 0f0d0807093d2d72ee772a1b4ba1d0b088a79a2b Author: Richard Woodruff Date: Thu Jul 3 12:24:30 2008 +0300 ARM: OMAP: DMTimer: Use posted mode This patch adds the use of write posting for the timer. Previously, every write could lock the requestor for almost 3x32KHz cycles. This patch only synchronizes before writes and reads instead of after them and it does it on per register basis. Doing it this way there is some chance to hide some of the sync latency. It also removes some needless reads when non-posted mode is there. With out this fix the read/writes take almost 2% CPU load @500MHz just waiting on tick timer registers. Also define new 34xx only registers. Signed-off-by: Richard Woodruff Signed-off-by: Tony Lindgren commit 4621d588e0e8b5b11cd913fe706e35915c1b83a3 Author: Thara Gopinath Date: Thu Jul 3 12:24:30 2008 +0300 ARM: OMAP: Correcting the gpmc prefetch control register address Correcting the GPMC_PREFETCH_CONTROL register address Signed-off-by: Thara Gopinath Signed-off-by: Tony Lindgren commit 3f662c6eaa941414636336f1b9147a73a60c792f Author: Jarkko Nikula Date: Thu Jul 3 12:24:29 2008 +0300 ARM: OMAP: DMA: Don't mark channel active in omap_enable_channel_irq Channel should be marked active only when DMA is really started. Otherwise just omap_request_dma, omap_dma_link_lch and omap_dma_unlink_lch will cause incorrect dump_stack(). Signed-off-by: Jarkko Nikula Signed-off-by: Tony Lindgren commit f58ba889106af60f52af792efbe1973e458a2138 Author: Miklos Szeredi Date: Wed Jul 2 21:12:01 2008 +0200 [GFS2] don't call permission() GFS2 calls permission() to verify permissions after locks on the files have been taken. For this it's sufficient to call gfs2_permission() instead. This results in the following changes: - IS_RDONLY() check is not performed - IS_IMMUTABLE() check is not performed - devcgroup_inode_permission() is not called - security_inode_permission() is not called IS_RDONLY() should be unnecessary anyway, as the per-mount read-only flag should provide protection against read-only remounts during operations. do_gfs2_set_flags() has been fixed to perform mnt_want_write()/mnt_drop_write() to protect against remounting read-only. IS_IMMUTABLE has been added to gfs2_permission() Repeating the security checks seems to be pointless, as they don't normally change, and if they do, it's independent of the filesystem state. Signed-off-by: Miklos Szeredi Signed-off-by: Steven Whitehouse commit 392096e98fd55e54035978fe03796fca8d26a574 Author: Stephen Rothwell Date: Thu Jul 3 17:10:07 2008 +1000 generic-ipi: fix linux-next tree build failure Today's linux-next build (powerpc ppc64_defconfig) failed like this: arch/powerpc/mm/tlb_64.c: In function 'pgtable_free_now': arch/powerpc/mm/tlb_64.c:66: error: too many arguments to function 'smp_call_function' arch/powerpc/kernel/machine_kexec_64.c: In function 'kexec_prepare_cpus': arch/powerpc/kernel/machine_kexec_64.c:175: error: too many arguments to function 'smp_call_function' Signed-off-by: Stephen Rothwell Acked-by: Jens Axboe Cc: Paul Mackerras Cc: Signed-off-by: Ingo Molnar commit 7b4c9505f2fd82b117dd015b561f723b9a5dab79 Author: Ingo Molnar Date: Thu Jul 3 09:17:55 2008 +0200 stacktrace: export save_stack_trace[_tsk] Andrew Morton reported this against linux-next: ERROR: ".save_stack_trace" [tests/backtracetest.ko] undefined! Reported-by: Andrew Morton Signed-off-by: Ingo Molnar commit 0db9360aaa9b95b0cf67f82874809f16e68068eb Author: Nathan Fontenot Date: Thu Jul 3 13:25:08 2008 +1000 powerpc/pseries: Update numa association of hotplug memory add for drconf memory Update the association of a memory section with a numa node that occurs during hotplug add of a memory section. This adds a check in the hot_add_scn_to_nid() routine for the ibm,dynamic-reconfiguration-memory node in the device tree. If present the new hot_add_drconf_scn_to_nid() routine is invoked, which can properly parse the ibm,dynamic-reconfiguration-memory node of the device tree and make the proper numa node associations. This also introduces the valid_hot_add_scn() routine as a helper function for code that is common to the hot_add_scn_to_nid() and hot_add_drconf_scn_to_nid() routines. Signed-off-by: Nathan Fontenot Signed-off-by: Paul Mackerras commit 8342681d3e1f5fbd404c21b5e10f87277411f3eb Author: Nathan Fontenot Date: Thu Jul 3 13:35:54 2008 +1000 powerpc/pseries: Split code into helper routines for drconf memory This splits off several pieces of code that parse the ibm,dynamic-reconfiguration-memory node of the device tree into separate helper routines. This is in preparation for the next commit that will use these helper routines. There are no functional changes in this patch. Signed-off-by: Nathan Fontenot Signed-off-by: Paul Mackerras commit 3c3f67eafad12d4ccabe491c6c8a50bf6e75b89a Author: Nathan Fontenot Date: Thu Jul 3 13:22:39 2008 +1000 powerpc/pseries: Update the device tree correctly for drconf memory add/remove This updates the device tree manipulation routines so that memory add/remove of lmbs represented under the ibm,dynamic-reconfiguration-memory node of the device tree invokes the hotplug notifier chain. This change is needed because of the change in the way memory is represented under the ibm,dynamic-reconfiguration-memory node. All lmbs are described in the ibm,dynamic-memory property instead of having a separate node for each lmb as in previous device tree layouts. This requires the update_node() routine to check for updates to the ibm,dynamic-memory property and invoke the hotplug notifier chain. This also updates the pseries hotplug notifier to be able to gather information for lmbs represented under the ibm,dynamic-reconfiguration-memory node and have the lmbs added/removed. Signed-off-by: Nathan Fontenot Signed-off-by: Paul Mackerras commit 92ecd1790b10e12015070e33a0f70493d51aca50 Author: Nathan Fontenot Date: Thu Jul 3 13:20:58 2008 +1000 powerpc/pseries: Use base address to derive starting page frame number Use the base address of the lmb to derive the starting page frame number instead of trying to extract it from the drc index of the lmb. The drc index should not be used for this as it will, and did, break. Until this point, systems that have had memory represented in the device tree with a node for each lmb the drc index would (luckily) closely track the base address of the lmb. For example a lmb with a drc index of 8000000a would have a base address of a0000000. This correlation allowed the current code to derive the starting page frame number from the drc inddex Device tree layouts where lmbs are represented under the ibm,dynamic-reconfiguration-memory node in the ibm,dynamic-memory property do not have this correlation between the drc index and base address of the lmb. Signed-off-by: Nathan Fontenot Signed-off-by: Paul Mackerras commit 4b6e805e4a327c7231ab6a7739d6344d68d231d0 Author: Nathan Fontenot Date: Thu Jul 3 13:19:24 2008 +1000 powerpc/pseries: Allow phandle to be specified in formats other than decimal Allow the phandle passed to the /proc/ppc64/ofdt file to be specified in formats other than decimal. This allows us to easily specify phandle values in hex that would otherwise appear as negative integers. This is an issue on systems where the value of /proc/device-tree/ibm,dynamic-reconfiguration-memory.ibm,phandle is fffffff9. Having to pass this to the ofdt file as a string results in a large negative number, and simple_strtoul() does not handle negative numbers. Signed-off-by: Nathan Fontenot Signed-off-by: Paul Mackerras commit 138fc1ee06e58f12fc2b755e435ce15bb36a0471 Author: Michael Neuling Date: Wed Jul 2 22:51:37 2008 +1000 powerpc: Remove old dump_task_* functions Since Roland's ptrace cleanup starting with commit f65255e8d51ecbc6c9eef20d39e0377d19b658ca ("[POWERPC] Use user_regset accessors for FP regs"), the dump_task_* functions are no longer being used. Signed-off-by: Michael Neuling Signed-off-by: Paul Mackerras commit 6a274c08f2f4dfac7167bbd849621f3a2b55d424 Author: Michael Neuling Date: Wed Jul 2 14:06:37 2008 +1000 powerpc: Clean up copy_to/from_user for vsx and fpr This merges and cleans up some of the ugly copy/to from user code which is required for the new fpr and vsx layout in the thread_struct. Also fixes some hard coded buffer sizes and removes a redundant fpr_flush_to_thread. Signed-off-by: Michael Neuling Signed-off-by: Paul Mackerras commit 2d1b2027626d5151fff8ef7c06ca8e7876a1a510 Author: Kumar Gala Date: Wed Jul 2 01:16:40 2008 +1000 powerpc: Fixup lwsync at runtime To allow for a single kernel image on e500 v1/v2/mc we need to fixup lwsync at runtime. On e500v1/v2 lwsync causes an illop so we need to patch up the code. We default to 'sync' since that is always safe and if the cpu is capable we will replace 'sync' with 'lwsync'. We introduce CPU_FTR_LWSYNC as a way to determine at runtime if this is needed. This flag could be moved elsewhere since we dont really use it for the normal CPU_FTR purpose. Finally we only store the relative offset in the fixup section to keep it as small as possible rather than using a full fixup_entry. Signed-off-by: Kumar Gala Signed-off-by: Paul Mackerras commit 5888da18765ca9af7f10015263d8bc8e3057f128 Author: Kumar Gala Date: Wed Jul 2 01:16:16 2008 +1000 powerpc: Fix building of feature-fixup tests on ppc32 We need to use PPC_LCMPI otherwise we get compile errors like: arch/powerpc/lib/feature-fixups-test.S: Assembler messages: arch/powerpc/lib/feature-fixups-test.S:142: Error: Unrecognized opcode: `cmpdi' arch/powerpc/lib/feature-fixups-test.S:149: Error: Unrecognized opcode: `cmpdi' arch/powerpc/lib/feature-fixups-test.S:164: Error: Unrecognized opcode: `cmpdi' Signed-off-by: Kumar Gala Signed-off-by: Paul Mackerras commit e17a2565bf61204cb925c3f77c3c7f6a09eb2fbe Author: Michael Neuling Date: Tue Jul 1 17:00:39 2008 +1000 powerpc: Fix compile warning in init_thread Currently we get this warning: arch/powerpc/kernel/init_task.c:33: warning: missing braces around initializer arch/powerpc/kernel/init_task.c:33: warning: (near initialization for 'init_task.thread.fpr[0]') This fixes it. Noticed by Stephen Rothwell. Signed-off-by: Michael Neuling Signed-off-by: Paul Mackerras commit db7f37de2c8346c33cf9279fa9d8e8316e8d821c Author: Tony Breeds Date: Tue Jul 1 11:30:06 2008 +1000 powerpc: Fix building of arch/powerpc/mm/mem.o when MEMORY_HOTPLUG=y and SPARSEMEM=n Currently the kernel fails to build with the above config options with: CC arch/powerpc/mm/mem.o arch/powerpc/mm/mem.c: In function 'arch_add_memory': arch/powerpc/mm/mem.c:130: error: implicit declaration of function 'create_section_mapping' This explicitly includes asm/sparsemem.h in arch/powerpc/mm/mem.c and moves the guards in include/asm-powerpc/sparsemem.h to protect the SPARSEMEM specific portions only. Signed-off-by: Tony Breeds Signed-off-by: Paul Mackerras commit 57debddaa1d247ed147209b22b5d40bd97526c33 Author: Jonathan Corbet Date: Mon Jun 30 16:45:15 2008 -0600 bf561-coreb: BKL unneeded for open() According to Mike Frysinger: http://permalink.gmane.org/gmane.linux.kernel/699279 open() does not need the BKL, so take it back out. commit a238b790d5f99c7832f9b73ac8847025815b85f7 Author: Jonathan Corbet Date: Fri Jun 20 09:12:01 2008 -0600 Call fasync() functions without the BKL lock_kernel() calls have been pushed down into code which needs it, so there is no need to take the BKL at this level anymore. This work inspired and aided by Andi Kleen's unlocked_fasync() patches. Acked-by: Andi Kleen Signed-off-by: Jonathan Corbet commit 2db9f0a35a4e4ad7cee756a4e0dabb7c1c8b6c72 Author: Jonathan Corbet Date: Mon Jun 23 17:40:43 2008 -0600 snd/PCM: fasync BKL pushdown Chances are this is unneeded, but the code is twisty enough that it is hard to tell. Signed-off-by: Jonathan Corbet commit 70b028b7ea94f1b36c61f3ee1c921cc3a87812e6 Author: Jonathan Corbet Date: Mon Jun 23 17:00:14 2008 -0600 ipmi: fasync BKL pushdown This driver really needs it to avoid races against open() Signed-off-by: Jonathan Corbet commit dda6445e219b5d1fd67e9426ce8d23f8fbfaaf66 Author: Jonathan Corbet Date: Thu Jun 19 16:18:25 2008 -0600 ecryptfs: fasync BKL pushdown Signed-off-by: Jonathan Corbet commit dbfb2df7e9fbd6e5ab8cd9b94b27767fe311fa0d Author: Jonathan Corbet Date: Thu Jun 19 16:07:51 2008 -0600 Bluetooth VHCI: fasync BKL pushdown Signed-off-by: Jonathan Corbet commit 5d1e3230f4b4a93c6561b0fb5a99bb1eb02227ed Author: Jonathan Corbet Date: Thu Jun 19 16:04:53 2008 -0600 tty_io: fasync BKL pushdown Signed-off-by: Jonathan Corbet commit 9d319522576ce0b2fd023a965445f9c3739ee6f1 Author: Jonathan Corbet Date: Thu Jun 19 15:50:37 2008 -0600 tun: fasync BKL pushdown Signed-off-by: Jonathan Corbet commit 743115ee05f09f356d86763316acf627a7f5a6b3 Author: Jonathan Corbet Date: Thu Jun 19 15:44:57 2008 -0600 i2o: fasync BKL pushdown This driver appears to really need the BKL to protect open_files. Signed-off-by: Jonathan Corbet commit b7e3e1fbf69d1b6abfd337460ea17d7230e3a6e5 Author: Jonathan Corbet Date: Thu Jun 19 15:41:11 2008 -0600 mpt: fasync BKL pushdown It looks like this driver really needs the BKL here. Signed-off-by: Jonathan Corbet commit 9465efc9e96135a2cec8154c0c766fa59984a298 Author: Andi Kleen Date: Fri Jun 27 11:05:24 2008 +0200 Remove BKL from remote_llseek v2 - Replace remote_llseek with generic_file_llseek_unlocked (to force compilation failures in all users) - Change all users to either use generic_file_llseek_unlocked directly or take the BKL around. I changed the file systems who don't use the BKL for anything (CIFS, GFS) to call it directly. NCPFS and SMBFS and NFS take the BKL, but explicitely in their own source now. I moved them all over in a single patch to avoid unbisectable sections. Open problem: 32bit kernels can corrupt fpos because its modification is not atomic, but they can do that anyways because there's other paths who modify it without BKL. Do we need a special lock for the pos/f_version = 0 checks? Trond says the NFS BKL is likely not needed, but keep it for now until his full audit. v2: Use generic_file_llseek_unlocked instead of remote_llseek_unlocked and factor duplicated code (suggested by hch) Cc: Trond.Myklebust@netapp.com Cc: swhiteho@redhat.com Cc: sfrench@samba.org Cc: vandrove@vc.cvut.cz Signed-off-by: Andi Kleen Signed-off-by: Andi Kleen Signed-off-by: Jonathan Corbet commit 9c20616c385ebeaa30257ef5d35e8f346db4ee32 Author: Jonathan Corbet Date: Thu May 29 17:14:05 2008 -0600 Make FAT users happier by not deadlocking The FAT BKL removal patch can cause deadlocks. It turns out that the new lock_super() calls are unneeded, remove them (as directed by Linus). Reported-by: "Tony Luck" Signed-off-by: Jonathan Corbet commit 38c4c97c62a30aef276663c1128a2051a25ead7d Author: Arnd Bergmann Date: Tue May 20 19:17:02 2008 +0200 x86-mce: BKL pushdown Signed-off-by: Arnd Bergmann commit 3e0420f066c632e135939ccf218ae793e02dccd7 Author: Arnd Bergmann Date: Tue May 20 19:17:01 2008 +0200 vmwatchdog: BKL pushdown Signed-off-by: Arnd Bergmann commit 6c111d886317513605c459cbe8d1970fab732c90 Author: Arnd Bergmann Date: Tue May 20 19:16:59 2008 +0200 vmcp: BKL pushdown Signed-off-by: Arnd Bergmann commit ffe83733b88655b643e9d4ad0dda5ef9584d5926 Author: Arnd Bergmann Date: Tue May 20 19:16:58 2008 +0200 via-pmu: BKL pushdown Signed-off-by: Arnd Bergmann commit 7eb500d1a0408c37d0c0360f066f8b7701835d68 Author: Arnd Bergmann Date: Tue May 20 19:16:57 2008 +0200 uml-random: BKL pushdown Signed-off-by: Arnd Bergmann commit bd6859fe836491d20ea6e57fee93e0e08ee69443 Author: Arnd Bergmann Date: Tue May 20 19:16:56 2008 +0200 uml-mmapper: BKL pushdown Signed-off-by: Arnd Bergmann commit 78dccb46ddc2ff460c8b4d5ec0886964bd4b59e5 Author: Arnd Bergmann Date: Tue May 20 19:16:54 2008 +0200 uml-harddog: BKL pushdown Signed-off-by: Arnd Bergmann commit 8702965848ed4bee27486a3e3d2ae34ebba6dd83 Author: Arnd Bergmann Date: Tue May 20 19:16:53 2008 +0200 uinput: BKL pushdown Signed-off-by: Arnd Bergmann commit f138e4814a9c28bc44d967a8effdd977ac00fc6e Author: Arnd Bergmann Date: Tue May 20 19:16:52 2008 +0200 uctrl: BKL pushdown Signed-off-by: Arnd Bergmann commit 25368ca579905efe7f7dda43c252eb7b371de98c Author: Arnd Bergmann Date: Tue May 20 19:16:51 2008 +0200 tpm-tpm: BKL pushdown Signed-off-by: Arnd Bergmann commit 09de36137c3794786bc75682c0e1ce45182c1772 Author: Arnd Bergmann Date: Tue May 20 19:16:50 2008 +0200 sparc64-rtc: BKL pushdown Signed-off-by: Arnd Bergmann commit ee30d64e42ee1384a81d241b3962d3c1e6174992 Author: Arnd Bergmann Date: Tue May 20 19:16:48 2008 +0200 sparc-apc: BKL pushdown Signed-off-by: Arnd Bergmann commit f8f2c79d594463427f7114cedb1555110d547d89 Author: Arnd Bergmann Date: Tue May 20 19:16:46 2008 +0200 sonypi: BKL pushdown Signed-off-by: Arnd Bergmann commit 0410e689b19b6ca010a6a44abfa820968ae15733 Author: Arnd Bergmann Date: Tue May 20 19:16:45 2008 +0200 sony-laptop: BKL pushdown Signed-off-by: Arnd Bergmann commit 9edca64b724db74373f0c9ef7cb044a5f221a4a3 Author: Arnd Bergmann Date: Tue May 20 19:16:43 2008 +0200 serio: BKL pushdown Signed-off-by: Arnd Bergmann commit 556e4b0b69d6e45e6b4e61390ef5aebce3ea432d Author: Arnd Bergmann Date: Tue May 20 19:16:42 2008 +0200 scsi-tgt: BKL pushdown Signed-off-by: Arnd Bergmann commit 5ab0854dd77a520abe7c3b9c7770972fd3e61e90 Author: Arnd Bergmann Date: Tue May 20 19:16:40 2008 +0200 sbus-rtc: BKL pushdown Signed-off-by: Arnd Bergmann commit 41012735352e72b8a3f95521817dcad1b2986636 Author: Arnd Bergmann Date: Tue May 20 19:16:39 2008 +0200 rtc-rtc-m41t80: BKL pushdown Signed-off-by: Arnd Bergmann commit 4333deee6b7a5a82afb9e700e76cb46e68fde68d Author: Arnd Bergmann Date: Tue May 20 19:16:37 2008 +0200 rtc: BKL pushdown Signed-off-by: Arnd Bergmann commit f29b889edef0c3ab98732c84247c790a1583cb94 Author: Arnd Bergmann Date: Tue May 20 19:16:35 2008 +0200 riowatchdog: BKL pushdown Signed-off-by: Arnd Bergmann commit db26e64dc3f0d51c4db1a625c248a81f7850eee9 Author: Arnd Bergmann Date: Tue May 20 19:16:33 2008 +0200 pm_qos_params: BKL pushdown [jmc: added ] Signed-off-by: Arnd Bergmann Signed-off-by: Jonathan Corbet commit b691750098f830b748540cd955f5ac56545bab25 Author: Arnd Bergmann Date: Tue May 20 19:16:31 2008 +0200 parisc-kernel-perf: BKL pushdown Signed-off-by: Arnd Bergmann commit 6044c319d11051f3462dafd0e7a900ef121d7bc7 Author: Arnd Bergmann Date: Tue May 20 19:16:30 2008 +0200 parisc-eisa_eeprom: BKL pushdown Signed-off-by: Arnd Bergmann commit 7bcc3209be82d69361a944c57caeb548b35c7f04 Author: Arnd Bergmann Date: Tue May 20 19:16:29 2008 +0200 openprom: BKL pushdown Signed-off-by: Arnd Bergmann commit b7fdf9fdd6457c9ed02099fe82bab92b0b3e291b Author: Arnd Bergmann Date: Tue May 20 19:16:28 2008 +0200 ocfs2-stack_user: BKL pushdown Signed-off-by: Arnd Bergmann commit 930ab4e532623795f934467c452a8c71be2c30fe Author: Arnd Bergmann Date: Tue May 20 19:16:26 2008 +0200 nvram: BKL pushdown Signed-off-by: Arnd Bergmann commit fd3e05b6c82ebee06f888482975172028e89382d Author: Arnd Bergmann Date: Tue May 20 19:16:24 2008 +0200 net-tun: BKL pushdown Signed-off-by: Arnd Bergmann commit db41bc9c4dfeed656dfd63d26883f81abc4005df Author: Arnd Bergmann Date: Tue May 20 19:16:23 2008 +0200 mwave-mwavedd: BKL pushdown Signed-off-by: Arnd Bergmann commit e3e8e59dcd63621e3ade03083c17b6363a8e2dc8 Author: Arnd Bergmann Date: Tue May 20 19:16:22 2008 +0200 mvme16x-rtc: BKL pushdown Signed-off-by: Arnd Bergmann commit f9c8154f367d471f1af56742fe8534f8458adb98 Author: Arnd Bergmann Date: Tue May 20 19:16:20 2008 +0200 mousedev: BKL pushdown Signed-off-by: Arnd Bergmann commit dca67e9d3db27b090259b696e1166615f40099e2 Author: Arnd Bergmann Date: Tue May 20 19:16:18 2008 +0200 monwriter: BKL pushdown Signed-off-by: Arnd Bergmann commit 6ce46a435a3ac9e706d09a3075cbc60ed72d37db Author: Arnd Bergmann Date: Tue May 20 19:16:17 2008 +0200 monreader: BKL pushdown [jmc: added ] Signed-off-by: Arnd Bergmann Signed-off-by: Jonathan Corbet commit 02a00cf672a37292c31bbdde191712bfa40a4f1d Author: Haavard Skinnemoen Date: Sun Feb 24 13:51:38 2008 +0100 avr32: Power Management support ("standby" and "mem" modes) Implement Standby support. In this mode, we'll suspend all drivers, put the SDRAM in self-refresh mode and switch off the HSB bus ("frozen" mode.) Implement Suspend-to-mem support. In this mode, we suspend all drivers, put the SDRAM into self-refresh mode and switch off all internal clocks except the 32 kHz oscillator ("stop" mode.) The lowest-level suspend code runs from a small portion of SRAM allocated at startup time. This gets rid of a small potential race with the SDRAM where we might try to enter self-refresh mode in the middle of an icache burst. We also relocate all interrupt and exception handlers to SRAM during the small window when we enter and exit the low-power modes. We don't need to do any special tricks to start and stop the PLL. The main clock is automatically gated by hardware until the PLL is stable. Signed-off-by: Haavard Skinnemoen commit aa8e87ca619a3d1944874e85d74fda90607c73b9 Author: Haavard Skinnemoen Date: Sun Feb 24 14:26:03 2008 +0100 avr32: Add system device for the internal interrupt controller (intc) This makes the intc show up in sysfs (probably not very useful), and allows us to easily add suspend/resume support later. Signed-off-by: Haavard Skinnemoen commit b83d6ee17588f1a4fbfc8ef0451b0900a5ef5950 Author: Haavard Skinnemoen Date: Wed Mar 5 10:00:28 2008 +0100 avr32: Add simple SRAM allocator Add SRAM allocator for avr32, which is just a thin wrapper around genalloc. Signed-off-by: Haavard Skinnemoen commit 7951f188a0b7f9b2f181c692efb0d31082bec346 Author: Haavard Skinnemoen Date: Wed Mar 5 15:08:27 2008 +0100 avr32: Enable SDRAMC clock at startup The SDRAM controller needs a clock in order to respond to our commands, and suspend doesn't work very well without the SDRAM in self-refresh mode. Signed-off-by: Haavard Skinnemoen commit f3a24e1e272f844a4d14a39731b4fa946ba36adc Author: Haavard Skinnemoen Date: Mon Jun 30 10:54:31 2008 +0200 rtc-at32ap700x: Enable wakeup Call device_init_wakeup() to signal that the RTC is capable of waking the system. This is needed for rtcwake to work. Signed-off-by: Haavard Skinnemoen Cc: Hans-Christian Egtvedt Cc: Alessandro Zummo commit c1f598fd71db6a971ee88311167c8003243ebff2 Author: Haavard Skinnemoen Date: Tue Mar 4 13:39:29 2008 +0100 macb: Basic suspend/resume support This implements suspend and resume callbacks for the macb driver. We may have to do some more to gracefully shut the MAC down, but this at least prevents the macb from waking the system when hooked up to a busy network. Signed-off-by: Haavard Skinnemoen Cc: Jeff Garzik Cc: Patrice Vilchez Cc: Nicolas FERRE commit e1c609efbc0333840f2af2d875ca52ed8ee18587 Author: Haavard Skinnemoen Date: Fri Mar 14 14:54:13 2008 +0100 atmel_serial: Drain console TX shifter before suspending Funny things may happen if we stop the USART clock before the shifter is empty. Prevent this from happening by waiting until the shifter is completely drained before allowing suspend to continue. Signed-off-by: Haavard Skinnemoen Cc: Andrew Victor commit f826caa44902ddbe93174f0b642d8abf9698c08e Author: Haavard Skinnemoen Date: Sun Feb 24 14:34:45 2008 +0100 atmel_serial: Fix build on avr32 with CONFIG_PM enabled AVR32 doesn't have at91_suspend_entering_slow_clock(). Just assume the clock will keep running for now. David has a better solution for this, but this works for now. Leaving the USART clock running won't prevent the PM code from entering deep power-down modes anyway. Signed-off-by: Haavard Skinnemoen Cc: David Brownell Cc: Andrew Victor commit 38510754a50192a072210e24fdc4ae65592182f0 Author: Haavard Skinnemoen Date: Mon Jan 14 23:35:32 2008 +0100 avr32: Use a quicklist for PTE allocation as well Using a quicklist to allocate PTEs might be slightly faster than using the page allocator directly since we might avoid zeroing the page after each allocation. Signed-off-by: Haavard Skinnemoen commit 5a4d5292779b6163aa41e594a56307e442fbe73c Author: Haavard Skinnemoen Date: Mon Jan 14 23:33:44 2008 +0100 avr32: Use a quicklist for PGD allocation Use a quicklist to allocate process PGDs. This is expected to be slightly faster since we need to copy entries from swapper_pg_dir, which can stay around for pages on the PGD quick list. Signed-off-by: Haavard Skinnemoen commit a9a934f278613885816aa9f177968c1dac557240 Author: Haavard Skinnemoen Date: Mon Jan 14 23:11:26 2008 +0100 avr32: Cover the kernel page tables in the user PGDs Expand the per-process PGDs so that they cover the kernel virtual memory area as well. This simplifies the TLB miss handler fastpath since it doesn't have to check for kernel addresses anymore. If a TLB miss happens on a kernel address and a second-level page table can't be found, we check swapper_pg_dir and copy the PGD entry into the user PGD if it can be found there. Signed-off-by: Haavard Skinnemoen commit cfd23e93a0289cf6711fd3877c5226658d87240a Author: Haavard Skinnemoen Date: Mon Jan 14 22:15:05 2008 +0100 avr32: Store virtual addresses in the PGD Instead of storing physical addresses along with page flags in the PGD, store virtual addresses and use NULL to indicate a not present second-level page table. A non-page-aligned page table indicates a bad PMD. This simplifies the TLB miss handler since it no longer has to check the Present bit and no longer has to convert the PGD entry from physical to virtual address. Instead, it has to check for a NULL entry, which is slightly cheaper than either. Signed-off-by: Haavard Skinnemoen commit ebe74597a55fef00edc80a414ef5c6477d035e0a Author: Haavard Skinnemoen Date: Mon Jan 14 22:16:50 2008 +0100 avr32: Remove useless zeroing of swapper_pg_dir at startup swapper_pg_dir is stored in .bss, so it must already be zeroed out when we get there. Signed-off-by: Haavard Skinnemoen commit b13d618b44fefea7529bd467e55423d353a599fc Author: Haavard Skinnemoen Date: Tue May 15 15:06:41 2007 +0200 avr32: Clean up and optimize the TLB operations This and the following patches aim to optimize the code dealing with page tables and TLB operations. Each patch reduces the time it takes to gzip a 16 MB file slightly, but I expect things like fork() and mmap() will improve somewhat more. This patch deals with the low-level TLB operations: * Remove unused _TLBEHI_I define * Use gcc builtins instead of inline assembly * Remove a few unnecessary pipeline flushes and nops * Introduce NR_TLB_ENTRIES define and use it instead of hardcoding it to 32 a few places throughout the code. * Use sysreg bitops instead of hardcoded shifts and masks * Make a few needlessly global functions static Signed-off-by: Haavard Skinnemoen commit 760378e1497841246ea7e42abad617d8a8ac0bcc Author: Ingo Molnar Date: Tue Jul 1 17:35:06 2008 +0200 fix "ftrace: store mcount address in rec->ip" Alexander Beregalov reported this build failure: $ make CROSS_COMPILE=sparc64-unknown-linux-gnu- image modules && sudo make modules_install CHK include/linux/version.h CHK include/linux/utsrelease.h CALL scripts/checksyscalls.sh CHK include/linux/compile.h dnsdomainname: Unknown host CC arch/sparc64/kernel/sparc64_ksyms.o arch/sparc64/kernel/sparc64_ksyms.c:116: error: '_mcount' undeclared here (not in a function) cc1: warnings being treated as errors arch/sparc64/kernel/sparc64_ksyms.c:116: error: type defaults to 'int' in declaration of '_mcount' And bisected it back to: | commit 395a59d0f8e86bb39cd700c3d185d30c670bb958 | Author: Abhishek Sagar | Date: Sat Jun 21 23:47:27 2008 +0530 | | ftrace: store mcount address in rec->ip the mcount prototype is only available under CONFIG_FTRACE, extend it to CONFIG_MCOUNT as well. Reported-and-bisected-by: Alexander Beregalov Signed-off-by: Ingo Molnar commit f294a8ce211bed7bfaca19bef21376a86200c421 Author: Vegard Nossum Date: Tue Jul 1 15:38:13 2008 +0200 x86: small unifications of address printing 'man 3 printf' tells me that %p should be printed as if by %#x, but this is not true for the kernel, which does not use the '0x' prefix for the %p conversion specifier. A small cast to (void *) is also prettier than #ifdef/#else/#endif. Signed-off-by: Vegard Nossum Signed-off-by: Ingo Molnar commit 45fdc3a7624a4a48185a04ae0abab5f9793d8952 Author: Roland McGrath Date: Mon Jun 30 14:02:41 2008 -0700 x86 ptrace: fix PTRACE_GETFPXREGS error ptrace has always returned only -EIO for all failures to access registers. The user_regset calls are allowed to return a more meaningful variety of errors. The REGSET_XFP calls use -ENODEV for !cpu_has_fxsr hardware. Make ptrace return the traditional -EIO instead of the error code from the user_regset call. Signed-off-by: Roland McGrath Cc: stable@kernel.org Signed-off-by: Ingo Molnar commit 2ee2394b682c0ee99b0f083abe6c57727e6edb69 Author: H. Peter Anvin Date: Mon Jun 30 15:42:47 2008 -0700 x86: fix regression: boot failure on AMD Elan TS-5500 Jeremy Fitzhardinge wrote: > > Maybe it really does require the far jump immediately after setting PE > in cr0... > > Hm, I don't remember this paragraph being in vol 3a, section 8.9.1 > before. Is it a recent addition? > > Random failures can occur if other instructions exist between steps > 3 and 4 above. Failures will be readily seen in some situations, > such as when instructions that reference memory are inserted between > steps 3 and 4 while in system management mode. > I don't remember that, either. Signed-off-by: Ingo Molnar commit 3e61e0c976532a542b23bbb74c8f631815171078 Author: Pekka Paalanen Date: Mon Jun 30 23:48:37 2008 +0300 mmiotrace broken in linux-next (8-bit writes only) The moment mmiotrace is enabled, I hit a NULL deref in: IP: [] __trace_special+0x17c/0x23a Call Trace: [] ftrace_special+0x6f/0x9a [] down+0x19/0x4a [] acquire_console_sem+0x42/0x58 [] con_flush_chars+0x28/0x43 [] write_chan+0x22e/0x334 [] ? default_wake_function+0x0/0xf [] tty_write+0x195/0x228 [] ? write_chan+0x0/0x334 [] vfs_write+0xae/0x137 [] sys_write+0x47/0x70 [] system_call_after_swapgs+0x7b/0x80 which means 'entry' in __trace_special() is NULL. [ mingo@elte.hu: that ftrace_special() was a leftover. ] Signed-off-by: Pekka Paalanen Cc: Steven Rostedt Cc: proski@gnu.org Cc: "Vegard Nossum" Signed-off-by: Ingo Molnar commit f3e909c2750eb20536bacacc867dc9047b70546a Author: Michael Neuling Date: Tue Jul 1 14:01:39 2008 +1000 powerpc: Update for VSX core file and ptrace This correctly hooks the VSX dump into Roland McGrath core file infrastructure. It adds the VSX dump information as an additional elf note in the core file (after talking more to the tool chain/gdb guys). This also ensures the formats are consistent between signals, ptrace and core files. Signed-off-by: Michael Neuling Signed-off-by: Paul Mackerras commit 436db693c4f4d02d375780a1f0b2ebdca2451cd6 Author: Michael Neuling Date: Tue Jul 1 14:01:39 2008 +1000 powerpc: Fix compile error for CONFIG_VSX Fix compile error when CONFIG_VSX is enabled. arch/powerpc/kernel/signal_64.c: In function 'restore_sigcontext': arch/powerpc/kernel/signal_64.c:241: error: 'i' undeclared (first use in this function) Signed-off-by: Michael Neuling Signed-off-by: Paul Mackerras commit a91a03ee31a5c29a934708b7cf37bb8da516d016 Author: Eric B Munson Date: Tue Jul 1 02:12:13 2008 +1000 powerpc: Keep 3 high personality bytes across exec Currently when a 32 bit process is exec'd on a powerpc 64 bit host the value in the top three bytes of the personality is clobbered. patch adds a check in the SET_PERSONALITY macro that will carry all the values in the top three bytes across the exec. These three bytes currently carry flags to disable address randomisation, limit the address space, force zeroing of an mmapped page, etc. Should an application set any of these bits they will be maintained and honoured on homogeneous environment but discarded and ignored on a heterogeneous environment. So if an application requires all mmapped pages to be initialised to zero and a wrapper is used to setup the personality and exec the target, these flags will remain set on an all 32 or all 64 bit envrionment, but they will be lost in the exec on a mixed 32/64 bit environment. Losing these bits means that the same application would behave differently in different environments. Tested on a POWER5+ machine with 64bit kernel and a mixed 64/32 bit user space. Signed-off-by: Eric B Munson Signed-off-by: Paul Mackerras commit 908ec7afacfdc83dc10938ed1d3c38b3526034ec Author: H. Peter Anvin Date: Mon Jun 30 14:42:18 2008 -0700 x86: remove arbitrary ELF section limit in i386 relocatable kernel Impact: build failure in maximal configurations The 32-bit x86 relocatable kernel requires an auxilliary host program to process the relocations. This program had a hard-coded arbitrary limit of a 100 ELF sections. Instead of a hard-coded limit, allocate the structures dynamically. Signed-off-by: H. Peter Anvin Acked-by: Vivek Goyal commit 89b5810f6ed4b2d42415e5ec656ab6b148cd2bde Author: Bart Van Assche Date: Sat Jun 28 16:51:35 2008 +1000 powerpc: Make sure that include/asm-powerpc/spinlock.h does not trigger compilation warnings When compiling kernel modules for ppc that include , gcc prints a warning message every time it encounters a function declaration where the inline keyword appears after the return type. This makes sure that the order of the inline keyword and the return type is as gcc expects it. Additionally, the __inline__ keyword is replaced by inline, as checkpatch expects. Signed-off-by: Bart Van Assche Signed-off-by: Paul Mackerras commit fcbc5a976b1cafe2e866871c86d239d57503bfd5 Author: Stephen Rothwell Date: Fri Jun 27 16:18:27 2008 +1000 powerpc: Explicitly copy elements of pt_regs Gcc 4.3 produced this warning: arch/powerpc/kernel/signal_64.c: In function 'restore_sigcontext': arch/powerpc/kernel/signal_64.c:161: warning: array subscript is above array bounds This is caused by us copying to aliases of elements of the pt_regs structure. Make those explicit. This adds one extra __get_user and unrolls a loop. Signed-off-by: Stephen Rothwell Signed-off-by: Paul Mackerras commit 3420b5daffbf5892634fd89a04c010e71e8aeebf Author: Bernhard Walle Date: Fri Jun 27 03:02:15 2008 +1000 powerpc: Remove experimental status of kdump on 64-bit powerpc This removes the experimental status of kdump on PPC64. kdump is on PPC64 now since more than one year and it has proven to be stable. Signed-off-by: Bernhard Walle Signed-off-by: Paul Mackerras commit 016b33c4958681c24056abed8ec95844a0da80a3 Author: Andy Whitcroft Date: Thu Jun 26 19:55:58 2008 +1000 powerpc: Add 64 bit version of huge_ptep_set_wrprotect The implementation of huge_ptep_set_wrprotect() directly calls ptep_set_wrprotect() to mark a hugepte write protected. However this call is not appropriate on ppc64 kernels as this is a small page only implementation. This can lead to the hash not being flushed correctly when a mapping is being converted to COW, allowing processes to continue using the original copy. Currently huge_ptep_set_wrprotect() unconditionally calls ptep_set_wrprotect(). This is fine on ppc32 kernels as this call is generic. On 64 bit this is implemented as: pte_update(mm, addr, ptep, _PAGE_RW, 0); On ppc64 this last parameter is the page size and is passed directly on to hpte_need_flush(): hpte_need_flush(mm, addr, ptep, old, huge); And this directly affects the page size we pass to flush_hash_page(): flush_hash_page(vaddr, rpte, psize, ssize, 0); As this changes the way the hash is calculated we will flush the wrong pages, potentially leaving live hashes to the original page. Move the definition of huge_ptep_set_wrprotect() to the 32/64 bit specific headers. Signed-off-by: Andy Whitcroft Acked-by: Benjamin Herrenschmidt Signed-off-by: Paul Mackerras commit 03d70617b8a789c3721afaafde06fcbba7c7ebf1 Author: Andrew Lewis Date: Thu Jun 26 19:29:05 2008 +1000 powerpc: Prevent memory corruption due to cache invalidation of unaligned DMA buffer On PowerPC processors with non-coherent cache architectures the DMA subsystem calls invalidate_dcache_range() before performing a DMA read operation. If the address and length of the DMA buffer are not aligned to a cache-line boundary this can result in memory outside of the DMA buffer being invalidated in the cache. If this memory has an uncommitted store then the data will be lost and a subsequent read of that address will result in an old value being returned from main memory. Only when the DMA buffer starts on a cache-line boundary and is an exact mutiple of the cache-line size can invalidate_dcache_range() be called, otherwise flush_dcache_range() must be called. flush_dcache_range() will first flush uncommitted writes, and then invalidate the cache. Signed-off-by: Andrew Lewis Signed-off-by: Paul Mackerras commit 9d4ae9fc92f347b93b42c9c0ccde7138c1202e36 Author: Kumar Gala Date: Thu Jun 26 18:58:11 2008 +1000 powerpc/bootwrapper: Pad .dtb by default Since most bootloaders or wrappers tend to update or add some information to the .dtb they a handled they need some working space to do that in. By default add 1K of padding via a default setting of DTS_FLAGS. Signed-off-by: Kumar Gala Signed-off-by: Paul Mackerras commit 96d5b52c8473ae6ee63d592474bcc1255df06102 Author: Michael Neuling Date: Wed Jun 25 14:07:18 2008 +1000 powerpc: Add CONFIG_VSX config option Add CONFIG_VSX config build option. Must compile with POWER4, FPU and ALTIVEC. Signed-off-by: Michael Neuling Signed-off-by: Paul Mackerras commit ce48b2100785e5ca629fb3aa8e3b50aca808f692 Author: Michael Neuling Date: Wed Jun 25 14:07:18 2008 +1000 powerpc: Add VSX context save/restore, ptrace and signal support This patch extends the floating point save and restore code to use the VSX load/stores when VSX is available. This will make FP context save/restore marginally slower on FP only code, when VSX is available, as it has to load/store 128bits rather than just 64bits. Mixing FP, VMX and VSX code will get constant architected state. The signals interface is extended to enable access to VSR 0-31 doubleword 1 after discussions with tool chain maintainers. Backward compatibility is maintained. The ptrace interface is also extended to allow access to VSR 0-31 full registers. Signed-off-by: Michael Neuling Signed-off-by: Paul Mackerras commit 72ffff5b1792b0fa4d40a8e2f3276fff999820ec Author: Michael Neuling Date: Wed Jun 25 14:07:18 2008 +1000 powerpc: Add VSX assembler code macros This adds the macros for the VSX load/store instruction as most binutils are not going to support this for a while. Also add VSX register save/restore macros and vsr[0-63] register definitions. Signed-off-by: Michael Neuling Signed-off-by: Paul Mackerras commit b962ce9d26fd6677e6720949642420ceb029a102 Author: Michael Neuling Date: Wed Jun 25 14:07:18 2008 +1000 powerpc: Add VSX CPU feature Add a VSX CPU feature. Also add code to detect if VSX is available from the device tree. Signed-off-by: Michael Neuling Signed-off-by: Joel Schopp Signed-off-by: Paul Mackerras commit c6e6771b87d4e339d27f1383c8a808ae9b4ee5b8 Author: Michael Neuling Date: Wed Jun 25 14:07:18 2008 +1000 powerpc: Introduce VSX thread_struct and CONFIG_VSX The layout of the new VSR registers and how they overlap on top of the legacy FPR and VR registers is: VSR doubleword 0 VSR doubleword 1 ---------------------------------------------------------------- VSR[0] | FPR[0] | | ---------------------------------------------------------------- VSR[1] | FPR[1] | | ---------------------------------------------------------------- | ... | | | ... | | ---------------------------------------------------------------- VSR[30] | FPR[30] | | ---------------------------------------------------------------- VSR[31] | FPR[31] | | ---------------------------------------------------------------- VSR[32] | VR[0] | ---------------------------------------------------------------- VSR[33] | VR[1] | ---------------------------------------------------------------- | ... | | ... | ---------------------------------------------------------------- VSR[62] | VR[30] | ---------------------------------------------------------------- VSR[63] | VR[31] | ---------------------------------------------------------------- VSX has 64 128bit registers. The first 32 regs overlap with the FP registers and hence extend them with and additional 64 bits. The second 32 regs overlap with the VMX registers. This commit introduces the thread_struct changes required to reflect this register layout. Ptrace and signals code is updated so that the floating point registers are correctly accessed from the thread_struct when CONFIG_VSX is enabled. Signed-off-by: Michael Neuling Signed-off-by: Paul Mackerras commit 6f3d8e6947ec98e358514fc0f7b2e37fe88a21bb Author: Michael Neuling Date: Wed Jun 25 14:07:18 2008 +1000 powerpc: Make load_up_fpu and load_up_altivec callable Make load_up_fpu and load_up_altivec callable so they can be reused by the VSX code. Signed-off-by: Michael Neuling Signed-off-by: Paul Mackerras commit 10e343925ab5d9f6c651ad808f2e413e3cc053b3 Author: Michael Neuling Date: Wed Jun 25 14:07:18 2008 +1000 powerpc: Move altivec_unavailable Move the altivec_unavailable code, to make room at 0xf40 where the vsx_unavailable exception will be. Signed-off-by: Michael Neuling Signed-off-by: Paul Mackerras commit 9c75a31c3525a127f70b919856e32be3d8b03755 Author: Michael Neuling Date: Thu Jun 26 17:07:48 2008 +1000 powerpc: Add macros to access floating point registers in thread_struct. We are going to change where the floating point registers are stored in the thread_struct, so in preparation add some macros to access the floating point registers. Update all code to use these new macros. Signed-off-by: Michael Neuling Signed-off-by: Paul Mackerras commit 9e7511861c4f8d35852a3721c5bcd92661cb4c9f Author: Michael Neuling Date: Wed Jun 25 14:07:17 2008 +1000 powerpc: Fix MSR setting in 32 bit signal code If we set the SPE MSR bit in save_user_regs we can blow away the VEC bit. This doesn't matter in reality as they are in fact the same bit but looks bad. Also, when we add VSX in a later patch, we need to be able to set two separate MSR bits here. Signed-off-by: Michael Neuling Signed-off-by: Paul Mackerras commit 9b09c6d909dfd8de96b99b9b9c808b94b0a71614 Author: Tony Breeds Date: Tue Jun 24 14:20:29 2008 +1000 powerpc: Change the default link address for pSeries zImage kernels Currently we set the start of the .text section to be 4Mb for pSeries. In situations where the zImage is > 8Mb we'll fail to boot (due to overlapping with OF). Move .text in a zImage from 4MB to 64MB (well past OF). We still will not be able to load large zImage unless we also move OF, to that end, add a note to the zImage ELF to move OF to 32Mb. If this is the very first kernel booted then we'll need to move OF manually by setting real-base. Signed-off-by: Tony Breeds Signed-off-by: Paul Mackerras commit c230328def963373ec474056f372e1918692c3c8 Author: Michael Ellerman Date: Tue Jun 24 11:33:05 2008 +1000 powerpc: Use an alternative feature section in entry_64.S Use an alternative feature section in _switch. There are three cases handled here, either we don't have an SLB, in which case we jump over the entire code section, or if we do we either do or don't have 1TB segments. Boot tested on Power3, Power5 and Power5+. Signed-off-by: Michael Ellerman Signed-off-by: Paul Mackerras commit 362e7701fd183d990e0863883461edef61392710 Author: Michael Ellerman Date: Tue Jun 24 11:33:03 2008 +1000 powerpc: Add self-tests of the feature fixup code This commit adds tests of the feature fixup code, they are run during boot if CONFIG_FTR_FIXUP_SELFTEST=y. Some of the tests manually invoke the patching routines to check their behaviour, and others use the macros and so are patched during the normal patching done during boot. Because we have two sets of macros with different names, we use a macro to generate the test of the macros, very niiiice. Signed-off-by: Michael Ellerman Signed-off-by: Paul Mackerras commit 9b1a735de64cc975c31a1642ec55e082ddbdfeaf Author: Michael Ellerman Date: Tue Jun 24 11:33:02 2008 +1000 powerpc: Add logic to patch alternative feature sections This commit adds the logic to patch alternative sections. This is fairly straightforward, except for branches. Relative branches that jump from inside the else section to outside of it need to be translated as they're moved, otherwise they will jump to the wrong location. Signed-off-by: Michael Ellerman Signed-off-by: Paul Mackerras commit fac23fe4be23259a8eaa9bad822f5b14dd07d15c Author: Michael Ellerman Date: Tue Jun 24 11:32:54 2008 +1000 powerpc: Introduce infrastructure for feature sections with alternatives The current feature section logic only supports nop'ing out code, this means if you want to choose at runtime between instruction sequences, one or both cases will have to execute the nop'ed out contents of the other section, eg: BEGIN_FTR_SECTION or 1,1,1 END_FTR_SECTION_IFSET(FOO) BEGIN_FTR_SECTION or 2,2,2 END_FTR_SECTION_IFCLR(FOO) and the resulting code will be either, or 1,1,1 nop or, nop or 2,2,2 For small code segments this is fine, but for larger code blocks and in performance criticial code segments, it would be nice to avoid the nops. This commit starts to implement logic to allow the following: BEGIN_FTR_SECTION or 1,1,1 FTR_SECTION_ELSE or 2,2,2 ALT_FTR_SECTION_END_IFSET(FOO) and the resulting code will be: or 1,1,1 or, or 2,2,2 We achieve this by extending the existing FTR macros. The current feature section semantic just becomes a special case, ie. if the else case is empty we nop out the default case. The key limitation is that the size of the else case must be less than or equal to the size of the default case. If the else case is smaller the remainder of the section is nop'ed. We let the linker put the else case code in with the rest of the text, so that relative branches from the else case are more likley to link, this has the disadvantage that we can't free the unused else cases. This commit introduces the required macro and linker script changes, but does not enable the patching of the alternative sections. We also need to update two hand-made section entries in reg.h and timex.h Signed-off-by: Michael Ellerman Signed-off-by: Paul Mackerras commit c1137c37a9370f510dc022e6e95fff036ccb90be Author: Michael Ellerman Date: Tue Jun 24 11:32:48 2008 +1000 powerpc: Consolidate feature fixup macros for 64/32 bit Currently we have three versions of MAKE_FTR_SECTION_ENTRY(), the macro that generates a feature section entry. There is 64bit version, a 32bit version and version for 32bit code built with a 64bit kernel. Rather than triplicating (?) the MAKE_FTR_SECTION_ENTRY() logic, we can move the 64bit/32bit differences into separate macros, and then only have one version of MAKE_FTR_SECTION_ENTRY(). Signed-off-by: Michael Ellerman Acked-by: Kumar Gala Signed-off-by: Paul Mackerras commit c5157e587b33b1185cf73207fc53760cf1351430 Author: Michael Ellerman Date: Tue Jun 24 11:32:39 2008 +1000 powerpc: Consolidate CPU and firmware feature fixup macros The CPU and firmware feature fixup macros are currently spread across three files, firmware.h, cputable.h and asm-compat.h. Consolidate them into their own file, feature-fixups.h Signed-off-by: Michael Ellerman Acked-by: Kumar Gala Signed-off-by: Paul Mackerras commit 51c52e86694f19e84600a40f6156889feafd8ae9 Author: Michael Ellerman Date: Tue Jun 24 11:32:36 2008 +1000 powerpc: Split out do_feature_fixups() from cputable.c The logic to patch CPU feature sections lives in cputable.c, but these days it's used for CPU features as well as firmware features. Move it into it's own file for neatness and as preparation for some additions. While we're moving the code, we pull the loop body logic into a separate routine, and remove a comment which doesn't apply anymore. Signed-off-by: Michael Ellerman Acked-by: Kumar Gala Signed-off-by: Paul Mackerras commit b7bcda631e87eb3466d0baa9885650ba7d7ed89d Author: Michael Ellerman Date: Tue Jun 24 11:32:35 2008 +1000 powerpc: Add PPC_NOP_INSTR, a hash define for the preferred nop instruction A bunch of code has hard-coded the value for a "nop" instruction, it would be nice to have a #define for it. Signed-off-by: Michael Ellerman Acked-by: Kumar Gala Signed-off-by: Paul Mackerras commit ae0dc73625f9b0e636ccd130e394c9b654a062fb Author: Michael Ellerman Date: Tue Jun 24 11:32:32 2008 +1000 powerpc: Add tests of the code patching routines Add tests of the existing code patching routines, as well as the new routines added in the last commit. The self-tests are run late in boot when CONFIG_CODE_PATCHING_SELFTEST=y, which depends on DEBUG_KERNEL=y. Signed-off-by: Michael Ellerman Acked-by: Kumar Gala Signed-off-by: Paul Mackerras commit 411781a290b0d0a31fd73826b3ee110f1e3cc3b6 Author: Michael Ellerman Date: Tue Jun 24 11:32:29 2008 +1000 powerpc: Add new code patching routines This commit adds some new routines for patching code, which will be used in a following commit. Signed-off-by: Michael Ellerman Signed-off-by: Paul Mackerras commit 07630a37beefe8e4401c602f04e3e5bcbba50b31 Author: Michael Ellerman Date: Tue Jun 24 11:32:28 2008 +1000 powerpc: Add ppc_function_entry() which gets the entry point for a function Because function pointers point to different things on 32-bit vs 64-bit, add a macro that deals with dereferencing the OPD on 64-bit. The soon to be merged ftrace wants this, as well as other code I am working on. Signed-off-by: Michael Ellerman Acked-by: Kumar Gala Signed-off-by: Paul Mackerras commit 053a858efa46c9ab86363b271374ec02ad2af753 Author: Michael Ellerman Date: Tue Jun 24 11:32:24 2008 +1000 powerpc: Make create_branch() return errors if the branch target is too large If you pass a target value to create_branch() which is more than 32MB - 4, or - 32MB away from the branch site, then it's impossible to create an immediate branch. The current code doesn't check, which will lead to us creating a branch to somewhere else - which is bad. For code that cares to check we return 0, which is easy to check for, and for code that doesn't at least we'll be creating an illegal instruction, rather than a branch to some random address. Signed-off-by: Michael Ellerman Acked-by: Kumar Gala Signed-off-by: Paul Mackerras commit e7a57273c6407bb6903fbaddec8c2119bf318617 Author: Michael Ellerman Date: Tue Jun 24 11:32:22 2008 +1000 powerpc: Allow create_branch() to return errors Currently create_branch() creates a branch instruction for you, and patches it into the call site. In some circumstances it would be nice to be able to create the instruction and patch it later, and also some code might want to check for errors in the branch creation before doing the patching. A future commit will change create_branch() to check for errors. For callers that don't care, replace create_branch() with patch_branch(), which just creates the branch and patches it directly. While we're touching all the callers, change to using unsigned int *, as this seems to match usage better. That allows (and requires) us to remove the volatile in the definition of vector in powermac/smp.c and mpc86xx_smp.c, that's correct because now that we're passing vector as an unsigned int * the compiler knows that it's value might change across the patch_branch() call. Signed-off-by: Michael Ellerman Acked-by: Kumar Gala Acked-by: Jon Loeliger Signed-off-by: Paul Mackerras commit aaddd3eacaeaef3503035750b3f21ac2bfe97cbf Author: Michael Ellerman Date: Tue Jun 24 11:32:21 2008 +1000 powerpc: Move code patching code into arch/powerpc/lib/code-patching.c We currently have a few routines for patching code in asm/system.h, because they didn't fit anywhere else. I'd like to clean them up a little and add some more, so first move them into a dedicated C file - they don't need to be inlined. While we're moving the code, drop create_function_call(), it's intended caller never got merged and will be replaced in future with something different. Signed-off-by: Michael Ellerman Acked-by: Kumar Gala Signed-off-by: Paul Mackerras commit 73f38fe1b563a9d23ffacbda7b51decf41b0c49c Author: Julia Lawall Date: Tue Jun 24 04:14:52 2008 +1000 drivers/macintosh/smu.c: Improve error handling This makes two changes: * As noted by Akinobu Mita in patch b1fceac2b9e04d278316b2faddf276015fc06e3b, alloc_bootmem never returns NULL and always returns a zeroed region of memory. Thus the error checking code and memset after the call to alloc_bootmem are not necessary. * The old error handling code consisted of setting a global variable to NULL and returning an error code, which could cause previously allocated resources never to be freed. The patch adds calls to appropriate resource deallocation functions. Signed-off-by: Julia Lawall Signed-off-by: Paul Mackerras commit 178f8d78fdeaace8b22a759a059b74f39caf23a4 Author: Adrian Bunk Date: Tue Jun 24 03:48:28 2008 +1000 powerpc: asm/elf.h: Reduce userspace header This makes asm/elf.h export less non-userspace stuff to userspace. Signed-off-by: Adrian Bunk Signed-off-by: Paul Mackerras commit d1cdcf2241723d6596d56abb8777b5ef79b4a878 Author: Adrian Bunk Date: Tue Jun 24 03:48:21 2008 +1000 powerpc: Don't export asm/asm-compat.h to userspace asm/asm-compat.h doesn't seem to be intended for userspace usage. Signed-off-by: Adrian Bunk Signed-off-by: Paul Mackerras commit 9b4a8dd2e9f8af206eb39e3d99c442b0d6158953 Author: Adrian Bunk Date: Tue Jun 24 03:46:57 2008 +1000 drivers/macintosh: Various cleanups This contains the following cleanups: - make the following needlessly global code static: - adb.c: adb_controller - adb.c: adb_init() - adbhid.c: adb_to_linux_keycodes[] (also make it const) - via-pmu68k.c: backlight_level - via-pmu68k.c: backlight_enabled - remove the following unused code: - via-pmu68k.c: sleep_notifier_list Signed-off-by: Adrian Bunk Acked-by: Geert Uytterhoeven Acked-by: Stephen Rothwell Signed-off-by: Paul Mackerras commit f0c426bc3557a93e9d2f2863fda1e2042f942a60 Author: Kumar Gala Date: Sat Jun 21 02:31:01 2008 +1000 powerpc: Move common module code into its own file Refactor common code between ppc32 and ppc64 module handling into a shared filed. Signed-off-by: Kumar Gala Signed-off-by: Paul Mackerras commit 87e9ab13c36b838f7d557a6111dfdd29fcde85ad Author: Dave Kleikamp Date: Thu Jun 19 08:32:56 2008 +1000 powerpc: hash_huge_page() should get the WIMG bits from the lpte Signed-off-by: Dave Kleikamp Cc: Jon Tollefson Cc: Adam Litke Cc: Benjamin Herrenschmidt Signed-off-by: Paul Mackerras commit 0cb99013775f75a7b2cc72a26f48827601cf7cee Author: Joel Schopp Date: Thu Jun 19 06:23:23 2008 +1000 powerpc: Tell firmware we support architecture V2.06 Add the bits to the architecture-vec so that ibm,client-architecture lets the firmware know we support the 2.06 architecture. Signed-off-by: Joel Schopp Signed-off-by: Paul Mackerras commit 635f5a6354eaf2cf7d72116086175b82b12ac80a Author: Joel Schopp Date: Thu Jun 19 06:18:21 2008 +1000 powerpc: Add cputable entry for Power7 architected mode Add an entry for Power7 architected mode and add "(raw)" to Power7 raw mode to distinguish it more clearly. Signed-off-by: Joel Schopp Signed-off-by: Paul Mackerras commit 3a8247cc2c856930f34eafce33f6a039227ee175 Author: Paul Mackerras Date: Wed Jun 18 15:29:12 2008 +1000 powerpc: Only demote individual slices rather than whole process At present, if we have a kernel with a 64kB page size, and some process maps something that has to be mapped with 4kB pages (such as a cache-inhibited mapping on POWER5+, or the eHCA infiniband queue-pair pages), we change the process to use 4kB pages everywhere. This hurts the performance of HPC programs that access eHCA from userspace. With this patch, the kernel will only demote the slice(s) containing the eHCA or cache-inhibited mappings, leaving the remaining slices able to use 64kB hardware pages. This also changes the slice_get_unmapped_area code so that it is willing to place a 64k-page mapping into (or across) a 4k-page slice if there is no better alternative, i.e. if the program specified MAP_FIXED or if there is not sufficient space available in slices that are either empty or already have 64k-page mappings in them. Signed-off-by: Paul Mackerras Acked-by: Benjamin Herrenschmidt commit 5b2353859f87748f0707cec57c3953022a3321f3 Author: Saeed Bishara Date: Thu Jun 5 13:19:30 2008 +0200 [ARM] Kirkwood: use chip_delay Signed-off-by: Saeed Bishara Signed-off-by: Lennert Buytenhek commit f4db56ffd43a810424866fac6de9a32486415316 Author: Saeed Bishara Date: Sun May 4 19:25:52 2008 -1100 [MTD] orion_nand: add chip_delay parameter Some SoCs need a different chip_delay value. Signed-off-by: Saeed Bishara Acked-by: Jörn Engel Signed-off-by: Lennert Buytenhek Signed-off-by: Nicolas Pitre commit 395aed6de6d063bc234a179d65d3b6d720ce589a Author: Imre Kaloz Date: Thu Jun 26 01:39:19 2008 +0200 [ARM] Orion: enable all currently supported boards in defconfig Signed-off-by: Imre Kaloz Signed-off-by: Lennert Buytenhek commit da01bba3cb8814b17d809e09c301e1dad86fec87 Author: Lennert Buytenhek Date: Thu Jun 26 17:12:50 2008 +0200 [ARM] Orion: make PCI handling code deal with Cardbus slots The Cardbus connector does not have an IDSEL signal, and Cardbus cards are always the intended target of configuration transactions on their local PCI bus. This means that if the Orion's PCI bus signals are hooked up to a Cardbus slot, the same set of PCI functions will will appear 31 times, for each of the PCI device IDs 1-31 (ID 0 is the host bridge). This patch adds a function to the Orion PCI handling code that board support code can call to enable Cardbus mode. When Cardbus mode is enabled, configuration transactions on the PCI local bus are only allowed to PCI IDs 0 (host bridge) and 1 (cardbus device). Signed-off-by: Lennert Buytenhek commit 80be038593dba7aa46fb24a14f0ba83e5ade0edb Author: Randy Dunlap Date: Mon Jun 30 11:35:53 2008 -0700 PCI: add stub for pci_set_consistent_dma_mask() When CONFIG_PCI=n, there is no stub for pci_set_consistent_dma_mask(), so add one like other similar stubs. Otherwise there can be build errors, as here: linux-next-20080630/drivers/ssb/main.c:1175: error: implicit declaration of function 'pci_set_consistent_dma_mask' Signed-off-by: Randy Dunlap Signed-off-by: Jesse Barnes commit 7441e9cb18a1a1e5b87f516fa97b6d4abb0838e3 Author: Joerg Roedel Date: Mon Jun 30 20:18:02 2008 +0200 x86, AMD IOMMU: disable suspend/resume with IOMMU enabled (for now) This patch disables suspend/resume on machines with AMD IOMMU enabled. Real suspend/resume support for AMD IOMMU is currently being worked on. Until this is ready it will be disabled to avoid data corruption when the IOMMU is not properly re-enabled at resume. The patch is based on a similar patch for the GART driver written by Pavel Machek. The overall driver merged into tip/master is tested with parallel disk and network loads and showed no problems in a test running for 3 days. Signed-off-by: Joerg Roedel Cc: iommu@lists.linux-foundation.org Cc: bhavna.sarathy@amd.com Signed-off-by: Ingo Molnar commit 1338760329c586e0141831099e15f5c336dd9c1d Author: Saeed Bishara Date: Mon Jun 23 01:05:08 2008 -1100 [ARM] Kirkwood: support L2 writeback mode This patch allows booting Kirkwood with the L2 in writeback mode, by reading the WT override bit from the L2 config register and passing that into the Feroceon L2 init routine, instead of assuming that the WT override bit will always be set Signed-off-by: Saeed Bishara Signed-off-by: Lennert Buytenhek commit a10b188f195d00116f56f0049d8b17c711641fb7 Author: Sylver Bruneau Date: Wed Jun 25 23:41:09 2008 +0200 [ARM] Orion: fix for tsx09-common.c compilation problem In some cases, compilation of the tsx09 common file was failing due to an incomplete list of includes. Signed-off-by: Sylver Bruneau Signed-off-by: Lennert Buytenhek commit cdd3c5ec1e79f99a56a9c94f77e082e4846c7d71 Author: Martin Michlmayr Date: Sat Jun 28 12:56:49 2008 +0200 [ARM] Orion: correctly load mv2120 RTC driver After Jean Delvare's change "i2c: Convert most new-style drivers to use module aliasing" (3760f736716f74bdc62a4ba5406934338da93eb2), loading rtc-xxx from platform code fails. Update mv2120-setup.c so that the driver is loaded correctly. Signed-off-by: Martin Michlmayr Signed-off-by: Lennert Buytenhek commit 9e95685084533d0cee1e869ecfd28de1e431f12f Author: Sylver Bruneau Date: Mon Jun 23 01:20:05 2008 +0200 [ARM] Orion: initialize UART1 on Kurobox Pro/Linkstation Pro Kurobox Pro/Linkstation Pro devices use a microcontroller connected to UART1. As most of the communication with this microcontroller is done from userland (power button detection, fan speed ...), the setup file has to make UART1 available from userland. Signed-off-by: Sylver Bruneau Signed-off-by: Lennert Buytenhek commit e952e6c4d6635b36c212c056a9427bd93460178c Author: Michael Neuling Date: Wed Jun 18 10:47:26 2008 +1000 powerpc: Add cputable entry for POWER7 Add a cputable entry for the POWER7 processor. Also tell firmware that we know about POWER7. Signed-off-by: Michael Neuling Signed-off-by: Joel Schopp Signed-off-by: Paul Mackerras commit e2d755051129c61a9f67bf752d0b7cc82b115338 Author: Scott Wood Date: Wed Jun 18 02:59:59 2008 +1000 powerpc: Fix copy-and-paste error in clrsetbits_le16 This was pointed out by Detlev Zundel when this code was being added to U-boot. Signed-off-by: Scott Wood Signed-off-by: Paul Mackerras commit 316a405841cc03723d401b098d188aa4e3daa69b Author: Becky Bruce Date: Sat Jun 14 09:41:43 2008 +1000 powerpc: Get rid of bitfields in ppc_bat struct While working on the 36-bit physical support, I noticed that there was exactly one line of code that actually referenced the bitfields. So I got rid of them and redefined ppc_bat as a struct of 2 u32's: batu and batl. I also got rid of the previous union that held the bitfield structs and a word representation of the batu/l values. This seems like a nicer solution than adding in a bunch of new bitfields to support extended bat addressing that would never get used, and just leaving the struct as-is would have been incomplete in the face of large physical addressing. Signed-off-by: Becky Bruce Signed-off-by: Paul Mackerras commit 7c5c4325d2d911fe54db3bc14149bfa558ae0acb Author: Becky Bruce Date: Sat Jun 14 09:41:42 2008 +1000 powerpc: Change BAT code to use phys_addr_t Currently, the physical address is an unsigned long, but it should be phys_addr_t in set_bat, [v/p]_mapped_by_bat. Also, create a macro that can convert a large physical address into the correct format for programming the BAT registers. Signed-off-by: Becky Bruce Signed-off-by: Paul Mackerras commit bf2737f74ffd36f43c6ed11cd2c0826e1d59ad48 Author: Becky Bruce Date: Sat Jun 14 09:12:44 2008 +1000 powerpc: Silly spelling fix in pgtable-ppc32 Signed-off-by: Becky Bruce Signed-off-by: Paul Mackerras commit 36c35be332faa8ba1aaa8a237e72b9460117129d Author: Arnd Bergmann Date: Thu Jun 12 19:34:39 2008 +1000 powerpc: Increase CRASH_HANDLER_MAX There are now two potential callers of machine_crash_shutdown, so increase the limit accordingly. Signed-off-by: Arnd Bergmann Signed-off-by: Paul Mackerras commit 5acb08070dcbabf7347ad73cb8a79a145a2a5152 Author: Arnd Bergmann Date: Thu Jun 12 19:14:36 2008 +1000 powerpc/cell: Disable ptcal in case of crash kdump We need to disable ptcal before starting a new kernel after a crash, in order to avoid overwriting data in the kdump kernel. Signed-off-by: Arnd Bergmann Acked-by: Jeremy Kerr Signed-off-by: Paul Mackerras commit cf2076012f3efbd945ceea67704fe515f8d6171f Author: Arnd Bergmann Date: Thu Jun 12 19:14:35 2008 +1000 powerpc/pseries: Call pseries_kexec_setup only on pseries The pseries_kexec_setup function overwrites some ppc_md pointers, so make sure it only gets called when running on the right architecture. Signed-off-by: Arnd Bergmann Signed-off-by: Paul Mackerras commit aee10c6145199f872bc51f811b115a4b686b2426 Author: Arnd Bergmann Date: Thu Jun 12 19:14:34 2008 +1000 powerpc: Provide dummy crash_shutdown_register When kexec is disabled, the crash_shutdown_{un,}register functions are not available in the kernel. This provides dummy inline functions for those so that the callers don't have to worry about it. Signed-off-by: Arnd Bergmann Signed-off-by: Paul Mackerras commit 41743a4e34f0777f51c1cf0675b91508ba143050 Author: Benjamin Herrenschmidt Date: Wed Jun 11 15:37:10 2008 +1000 powerpc: Free a PTE bit on ppc64 with 64K pages This frees a PTE bit when using 64K pages on ppc64. This is done by getting rid of the separate _PAGE_HASHPTE bit. Instead, we just test if any of the 16 sub-page bits is set. For non-combo pages (ie. real 64K pages), we set SUB0 and the location encoding in that field. Signed-off-by: Benjamin Herrenschmidt Signed-off-by: Paul Mackerras commit ff1f4ee94c3c4480b9cee95da2d19668262636c6 Author: Anton Vorontsov Date: Wed Jun 11 08:31:00 2008 +1000 powerpc: Implement OF PCI address accessors stubs for CONFIG_PCI=n To avoid "#ifdef CONFIG_PCI" in the drivers we should provide stubs in place of OF PCI address accessors. Without these stubs build breaks for drivers not strictly requiring PCI, for example CONFIG_FB_OF=y without CONFIG_PCI: LD .tmp_vmlinux1 drivers/built-in.o: In function `offb_map_reg': offb.c:(.text+0x6e7c): undefined reference to `of_get_pci_address' OF PCI IRQ accessors require pci_dev argument, so drivers using PCI IRQs should depend on CONFIG_PCI anyway. Signed-off-by: Anton Vorontsov Signed-off-by: Paul Mackerras commit 9a24729d8aeef967eac7af71c6a69edc83d06558 Author: Daniel Walker Date: Tue Jun 10 09:26:09 2008 +1000 macintosh/media bay: Convert semaphore to mutex Signed-off-by: Daniel Walker Signed-off-by: Andrew Morton Acked-by: Benjamin Herrenschmidt Signed-off-by: Paul Mackerras commit 1baaeea00594776978d875a0f618591056a3705a Author: Daniel Walker Date: Tue Jun 10 09:26:08 2008 +1000 macintosh/therm_windtunnel: Convert semaphore to mutex Signed-off-by: Daniel Walker Signed-off-by: Andrew Morton Acked-by: Benjamin Herrenschmidt Signed-off-by: Paul Mackerras commit b1e2270ffefb636afd71bbb8bf19aedff0e5ac3d Author: Nick Piggin Date: Tue Jun 10 09:26:08 2008 +1000 spufs: Convert nopfn to fault Signed-off-by: Nick Piggin Acked-by: Jeremy Kerr Signed-off-by: Andrew Morton Acked-by: Benjamin Herrenschmidt Signed-off-by: Paul Mackerras commit 1976aef97020563d337b4875be0edb9f0fee98aa Author: Segher Boessenkool Date: Sun Jun 8 09:42:52 2008 +1000 powerpc: Get rid of CROSS32{AS,LD,OBJCOPY} CROSS32AS and CROSS32LD are never used (instead, CROSS32CC is used with proper command line options). CROSS32OBJCOPY isn't used anymore either, since the "wrapper" stuff was added. Remove these unused variables. Signed-off-by: Segher Boessenkool Signed-off-by: Paul Mackerras commit ad19dbdb4b224deabbf6080e238256ffbc9be485 Author: Stephen Rothwell Date: Fri May 23 16:31:08 2008 +1000 pcmcia: Use linux/of_{device,platform}.h instead of asm Signed-off-by: Stephen Rothwell Acked-by: Vitaly Bordug Acked-by: Olof Johansson Acked-by: Dominik Brodowski Signed-off-by: Paul Mackerras commit 55b6c8e99d582cc66947b465d0ff3147a0219808 Author: Stephen Rothwell Date: Fri May 23 16:28:54 2008 +1000 drivers/net: Use linux/of_{device,platform}.h instead of asm Signed-off-by: Stephen Rothwell Acked-by: Kumar Gala Signed-off-by: Paul Mackerras commit ad9e05aef7c861280b404d38fb50a8ff11d01e11 Author: Stephen Rothwell Date: Fri May 23 16:27:02 2008 +1000 macintosh: Use linux/of_{device,platform}.h instead of asm Signed-off-by: Stephen Rothwell Acked-by: Benjamin Herrenschmidt Signed-off-by: Paul Mackerras commit 7587cb2f12d47f8160bcdb1328b90f3055291bfc Author: Stephen Rothwell Date: Fri May 23 16:25:50 2008 +1000 hwmon: Use linux/of_platform.h instead of asm Signed-off-by: Stephen Rothwell Acked-by: Stelian Pop Signed-off-by: Paul Mackerras commit 98cad10187c0bf5b638bad0912076d8ac9d861bd Author: Stephen Rothwell Date: Fri May 23 16:20:05 2008 +1000 pasemi-rng: Use linux/of_platform.h instead of asm Signed-off-by: Stephen Rothwell Acked-by: Olof Johansson Signed-off-by: Paul Mackerras commit 10c0ad4dd9ecc3d4141fecbe74c9f18d7f904fb7 Author: Stephen Rothwell Date: Fri May 23 15:12:23 2008 +1000 viotape: Use unlocked_ioctl This pushes the BKL down into the driver. Based on a patch by Alan Cox. We need to do it this way for now as the inode parameter of viotap_ioctl is used internally as a flag. We should do a further cleanup patch. Cc: Alan Cox Signed-off-by: Stephen Rothwell Signed-off-by: Paul Mackerras commit 74f0609526afddd88bef40b651da24f3167b10b2 Author: Nick Piggin Date: Thu May 22 00:12:31 2008 +1000 powerpc: Optimise smp_wmb on 64-bit processors For 64-bit processors, lwsync is the recommended method of store/store ordering on caching enabled memory. For those subarchs which have lwsync, use it rather than eieio for smp_wmb. Signed-off-by: Nick Piggin Signed-off-by: Paul Mackerras commit ac2564c44509aba1e21d878ffd4f34ac96811762 Author: Matti Linnanvuori Date: Sun Jun 29 09:22:43 2008 +0300 x86: add compilation checks to pci_unmap_*() macros Add compilation checks to pci_unmap_ macros. Signed-off-by: Matti Linnanvuori Signed-off-by: Ingo Molnar commit 44974c8fc1d7047abe414562e0782320f4c1f511 Author: FUJITA Tomonori Date: Mon Jun 30 08:11:22 2008 +0900 x86 gart: remove unnecessary set_bit_string iommu_area_alloc internally calls set_bit_string and set bits properly. This set_bit_string is unnecessary. Signed-off-by: FUJITA Tomonori Cc: joerg.roedel@amd.com Signed-off-by: Ingo Molnar commit 8594698ebddeef5443b7da8258ae33b3eaca61d5 Author: Ingo Molnar Date: Fri Jun 27 21:20:17 2008 +0200 stacktrace: fix modular build, export print_stack_trace and save_stack_trace fix: ERROR: "print_stack_trace" [kernel/backtracetest.ko] undefined! ERROR: "save_stack_trace" [kernel/backtracetest.ko] undefined! Signed-off-by: Ingo Molnar and fix: Building modules, stage 2. MODPOST 376 modules ERROR: "print_stack_trace" [kernel/backtracetest.ko] undefined! make[1]: *** [__modpost] Error 1 Signed-off-by: Ingo Molnar commit 30432094a7f506ad24997a3ba6aed913ab61c01d Author: Vegard Nossum Date: Fri Jun 27 21:35:50 2008 +0200 sched: fix warning This patch fixes the following warning: kernel/sched.c:1667: warning: 'cfs_rq_set_shares' defined but not used This seems the correct way to fix this; cfs_rq_set_shares() is only used in a single place, which is also inside #ifdef CONFIG_FAIR_GROUP_SCHED. Signed-off-by: Vegard Nossum Cc: Peter Zijlstra Signed-off-by: Ingo Molnar commit 34e83e850f5e5ee2a18cd77a5d70d31972a632e6 Author: Ingo Molnar Date: Fri Jun 27 15:42:36 2008 +0200 sched: build fix fix: kernel/sched.c: In function ‘sched_group_set_shares': kernel/sched.c:8635: error: implicit declaration of function ‘cfs_rq_set_shares' Signed-off-by: Ingo Molnar commit e9a4b6a3f6592862a67837e80aad3f50468857a6 Merge: 441dbb5... 1702b52... Author: Paul Mackerras Date: Mon Jun 30 10:16:50 2008 +1000 Merge branch 'linux-2.6' commit 441dbb500b4344a8e3125e5aabab4f9dbf72514f Merge: dee8055... 5ce4b59... Author: Paul Mackerras Date: Mon Jun 30 09:57:05 2008 +1000 Merge branch 'next' of master.kernel.org:/pub/scm/linux/kernel/git/jwboyer/powerpc-4xx commit 2d452c9b10caeec455eb5e56a0ef4ed485178213 Author: Ingo Molnar Date: Sun Jun 29 15:01:59 2008 +0200 sched: sched_clock_cpu() based cpu_clock(), lockdep fix Vegard Nossum reported: > WARNING: at kernel/lockdep.c:2738 check_flags+0x142/0x160() which happens due to: unsigned long long cpu_clock(int cpu) { unsigned long long clock; unsigned long flags; raw_local_irq_save(flags); as lower level functions can take locks, we must not do that, use proper lockdep-annotated irq save/restore. Reported-by: Vegard Nossum Signed-off-by: Ingo Molnar commit d7ff2a4a28ceadc03df2f5a20897165fda306382 Author: Haavard Skinnemoen Date: Tue Mar 4 15:16:57 2008 +0100 avr32: Rename at32ap.c -> pdc.c The only thing left in at32ap.c is some PDC stuff. Rename the file to reflect what it actually does. Signed-off-by: Haavard Skinnemoen commit 65033ed740ef06eddf9fde7a992eab336cbddd56 Author: Haavard Skinnemoen Date: Tue Mar 4 15:15:00 2008 +0100 avr32: Move setup_platform() into chip-specific file Combine at32_clock_init() and at32_portmux_init() into setup_platform() and remove setup_platform() from at32ap.c. No functional change since all setup_platform() ever did was call those two functions. Signed-off-by: Haavard Skinnemoen commit dee805532a30183c4462305b4614e58bd83a7bc1 Author: Kumar Gala Date: Fri Jun 27 13:45:19 2008 -0500 powerpc: Add dma nodes to 83xx, 85xx and 86xx boards Added DMA nodes for the elo/elo-plus DMA engines. Renamed the interrupt controller alias in mpc832x_rdb.dts to ipic so that its the same as all the other boards. Signed-off-by: Kumar Gala commit aa60d13fb04f6d5ce72e4da508a4048b934ebd24 Author: H. Peter Anvin Date: Fri Jun 27 13:23:00 2008 -0700 x86: setup: issue a null command after enabling A20 via KBC Apparently, DOS and possibly other legacy operating systems issued a null command to the keyboard controller after toggling A20, specifically "pulse output pins" with no output pins specified. This was presumably done for synchronization reasons. This has made it into at least the UHCI spec, and it has been found to cause compatibility problems when "legacy USB" is enabled (which it almost always is) to not have this byte sent. It is *NOT* clear if any of these compatibility problems has any effect on Linux. However, for maximum compatibility, issue this null command after togging A20 through the KBC. Signed-off-by: H. Peter Anvin commit 0aea531326d1a17ccef7d9a538429c5b32cf4f12 Author: Adrian Bunk Date: Wed Jun 18 01:33:32 2008 +0300 PCI: remove unused arch pcibios_update_resource() functions Russell King did the following back in 2003: <-- snip --> [PCI] pci-9: Kill per-architecture pcibios_update_resource() Kill pcibios_update_resource(), replacing it with pci_update_resource(). pci_update_resource() uses pcibios_resource_to_bus() to convert a resource to a device BAR - the transformation should be exactly the same as the transformation used for the PCI bridges. pci_update_resource "knows" about 64-bit BARs, but doesn't attempt to set the high 32-bits to anything non-zero - currently no architecture attempts to do something different. If anyone cares, please fix; I'm going to reflect current behaviour for the time being. Ivan pointed out the following architectures need to examine their pcibios_update_resource() implementation - they should make sure that this new implementation does the right thing. #warning's have been added where appropriate. ia64 mips mips64 This cset also includes a fix for the problem reported by AKPM where 64-bit arch compilers complain about the resource mask being placed in a u32. <-- snip --> This patch removes the unused pcibios_update_resource() functions the kernel gained since, from FRV, m68k, mips & sh architectures. Signed-off-by: Adrian Bunk Acked-by: David Howells Acked-by: Greg Ungerer Acked-by: Paul Mundt Acked-by: Ralf Baechle Signed-off-by: Jesse Barnes commit 8b285ce84bbc719e363a796f466404576b840d36 Author: David Howells Date: Fri Jun 27 13:23:20 2008 +0100 PCI: fix pci_setup_device()'s sprinting into a const buffer Make pci_setup_device() write the bus ID directly into the allotted storage, rather than using pci_name() as the address as that now returns a const pointer. Signed-off-by: David Howells Signed-off-by: Jesse Barnes commit 9433f6dd3a4677e9b92c6e1cd7f98b11598b7c2c Author: Wang Chen Date: Thu Jun 26 10:50:04 2008 +0800 PCI: Fix comment of pci_dynids struct pci_driver has no field of driver_data. It's in pci_device_id. Signed-off-by: Wang Chen Signed-off-by: Jesse Barnes commit b97089400d44b9e90ce5029a2e458cd087473c74 Author: Kenji Kaneshige Date: Thu Jun 26 20:06:24 2008 +0900 pciehp: use get_service_data Current pciehp driver saves its private data pointer into pci_dev structure using pci_set_drvdata()/pci_get_drvdata(). But because pciehp is not a pci device driver but a PCI Express service driver, it should save its private data pointer into pcie_device structure using set_service_data()/get_service_data(). Signed-off-by: Kenji Kaneshige Signed-off-by: Jesse Barnes commit 3aa50c44628629a6d58f93e0a1244e95a874884e Author: Kenji Kaneshige Date: Thu Jun 26 20:07:33 2008 +0900 pciehp: remove needless command completed interrupt setting Currently, pciehp driver enables command completed interrupt as follows. (1) Don't enable at initialization. (2) Enable command completed interrupt whenever pciehp issues a command, if the command doesn't attempt to disable the interrupt. (3) Disable command completed interrupt at driver unloading. Once we enable command completed interrupt, we don't need to re-enable it for every command. So we can simplify above steps as follows: (1) Enable command completed interrupt at initialization. (2) No special sequence for command completed interrupt. (3) Disable command completed interrupt at driver unloading. Signed-off-by: Kenji Kaneshige Signed-off-by: Jesse Barnes commit c4635eb06af700820d658a163f06aff12e17cfb2 Author: Kenji Kaneshige Date: Fri Jun 20 12:07:08 2008 +0900 pciehp: fix interrupt initialization Current pciehp driver's intialization sequence is as follows: (1) initialize controller data structure (2) install interrupt handler (3) enable software notification (4) initialize controller specific slot data structure (5) initialize generic slot data structure and register it to pci hotplug core The interrupt handler of pciehp assumes that controller specific slot data structure is already initialized. However, it is installed at (2) before initializing controller specific slot data structure at (4). Because of this, pciehp driver cannot handle the following cases properly. - If devices that shares IRQ with pciehp raise interrupts between (2) and (4). - If hotplug events (e.g. MRL open) happen between (3) and (4). We already have a workaround for this problem ("pciehp: fix NULL dereference in interrupt handler: dbd79aed1aea2bece0bf43cc2ff3b2f9baf48a08). But we still need fundamental fix. This patch fix the problem by changing the initilization sequence as follows: (1) initialize controller data structure (2) initialize controller specific slot data structure (3) install interrupt handler (4) enable software notification (5) initialize generic slot data structure and register it to pci hotplug core Signed-off-by: Kenji Kaneshige Acked-by: Alex Chiang Signed-off-by: Jesse Barnes commit 4e6a0535dd036377961027262aecb138099f925d Author: Vegard Nossum Date: Fri Jun 27 18:06:54 2008 +0200 backtrace: replace timer with tasklet + completions On qemu, the backtrace would show up _after_ the "end of backtrace testing" message. This patch changes it to use completions instead, which will guarantee that no such race exists. Cc: Arjan van de Ven Signed-off-by: Vegard Nossum Cc: Arjan van de Ven Cc: Andrew Morton Signed-off-by: Ingo Molnar commit ad118c54a3587b2c69a769d0ba37d4d8dce4559d Author: Vegard Nossum Date: Fri Jun 27 18:04:48 2008 +0200 stacktrace: add saved stack traces to backtrace self-test This patch adds saved stack-traces to the backtrace suite of self-tests. Note that we don't depend on or unconditionally enable CONFIG_STACKTRACE because not all architectures may have it (and we still want to enable the other tests for those architectures). Cc: Arjan van de Ven Signed-off-by: Vegard Nossum Cc: Arjan van de Ven Cc: Andrew Morton Signed-off-by: Ingo Molnar commit d704fb0cc0cce474ac959adca6c3d1f606fcfa2a Author: Haavard Skinnemoen Date: Mon Jan 14 21:42:56 2008 +0100 avr32: Kill special exception handler sections Kill the special exception handler sections .tlbx.ex.text, .tlbr.ex.text, tlbw.ex.text and .scall.text. Use .org instead to place the handlers at the required offsets from EVBA. Signed-off-by: Haavard Skinnemoen commit 5b72b52cab872396c93d808d7fa14017e9061430 Author: Haavard Skinnemoen Date: Mon Jan 14 23:27:30 2008 +0100 avr32: Kill unneeded #include from asm/mmu_context.h Signed-off-by: Haavard Skinnemoen commit 9dbef285a359c9bf6f04f907bdfb9f35f37a8513 Author: Haavard Skinnemoen Date: Wed May 28 13:07:40 2008 +0200 avr32: Clean up time.c #includes Remove lots of unneeded #includes, add #include and sort alphabetically. Signed-off-by: Haavard Skinnemoen commit 9d8ad5d6c7fce31fd2c0fd4fe9977bda3e92e340 Author: Vegard Nossum Date: Fri Jun 27 17:22:17 2008 +0200 x86: don't destroy %rbp on kernel-mode faults From the code: "B stepping K8s sometimes report an truncated RIP for IRET exceptions returning to compat mode. Check for these here too." The code then proceeds to truncate the upper 32 bits of %rbp. This means that when do_page_fault() is finally called, its prologue, do_page_fault: push %rbp movl %rsp, %rbp will put the truncated base pointer on the stack. This means that the stack tracer will not be able to follow the base-pointer changes and will see all subsequent stack frames as unreliable. This patch changes the code to use a different register (%rcx) for the checking and leaves %rbp untouched. Signed-off-by: Vegard Nossum Signed-off-by: Pekka Enberg Acked-by: Arjan van de Ven Cc: Andi Kleen Cc: Pekka Enberg Signed-off-by: Ingo Molnar commit 8405996ff6d89bbf275a206eb69d10b98a8d5257 Author: Sedji Gaouaou Date: Wed Jun 25 10:32:50 2008 +0200 atmel_pwm: Rename the "mck" clock to "pwm_clk" The name "mck" causes a conflict on AT91. Call it "pwm_clk" instead. Signed-off-by: Sedji Gaouaou Signed-off-by: Haavard Skinnemoen commit 9c2baf785e90419d6f9af6bd07aa0694020cba8d Author: David Brownell Date: Wed Jun 18 02:31:43 2008 -0700 at32ap700x spi: enable pullups on MISO This is a minor tweak to the at32ap700x pin configuration for the SPI input pin (MISO), enabling the on-chip weak pullup (typical 190K) to (a) ensure a fixed data value for missing or input-only slaves; (b) prevent power waste associated with inputs floating near VDDIO/2. Atmel's boards have no external pullup or pulldown on these pins, so it's unlikely other boards would address these issues with external pulldowns. Were there trouble, board-specific code could turn off the relevant pullup(s). Signed-off-by: David Brownell Signed-off-by: Haavard Skinnemoen commit 7ef31e9c4e711bfb817a15b54e428e5c4a7c0032 Author: David Brownell Date: Thu Jun 12 12:18:05 2008 -0700 avr32: improve NGW100 I2C/PMBus setup Basic I2C initialization for the NGW100 board: - Provide empty i2c device table. Daughtercards may add devices, and the ATtiny24 could do stuff too. - Set up EXTINT(3) so the ATtiny24 can interrupt the AP7000. Signed-off-by: David Brownell Signed-off-by: Haavard Skinnemoen commit d86d314f67191011e6f494f6517b8cbd7dd3dc39 Author: Hans-Christian Egtvedt Date: Mon Feb 25 11:24:30 2008 +0100 avr32: Add PSIF platform devices This patch adds the PS/2 interface (PSIF) to the device code, split into two platform devices, one for each port. The function for adding the PSIF platform device is also added to the board header file. Signed-off-by: Hans-Christian Egtvedt Signed-off-by: Haavard Skinnemoen commit 47882cf620bcd7b014f6f7fc11be8c045787adac Author: Hans-Christian Egtvedt Date: Tue Feb 5 15:27:16 2008 +0100 avr32: Add pin configuration choice to LCDC peripheral This patch lets the board code choose which pin out to use for the LCD interface. On AT32AP7000 the LCDC is wired to two sets of pins, which lets the user choose between dual ethernet and 32-bit EBI. For the ATNGW100 board it is vital to have the choice to select the alternative pinout since this pinout is routed to the external headers. Update ATSTK1002 and ATSTK1004 to use the new interface. Signed-off-by: Hans-Christian Egtvedt Signed-off-by: Haavard Skinnemoen commit aafafddb01e259cff61b3d3f5b3466f0a6a65b84 Author: David Brownell Date: Tue Jun 10 13:55:52 2008 +0200 avr32: minor GPIO handling updates On the odd chance some code uses a pin as a GPIO IRQ without calling gpio_request() or gpio_direction_input(), the debug dump should still show its pin status. Signed-off-by: David Brownell Signed-off-by: Haavard Skinnemoen commit c1f24ac99f3711a6caa0e1d1c01a071ed72a7e0b Author: Haavard Skinnemoen Date: Mon Jun 9 14:16:06 2008 +0200 avr32: Fix wrong I/O access size in __raw_readsb __raw_readsb() should always use byte accesses, never halfword accesses, to I/O memory. Signed-off-by: Haavard Skinnemoen commit 7c1b90a1e964f72bde88511e5cfe1c04318ff3d1 Author: Martin Koegler Date: Wed May 28 20:50:07 2008 +0200 avr32: Fix sigaltstack behaviour A signal handler should be able to change the signal stack used for the next signal by altering the ucontext_t passed as a parameter to the handler. This does not currently work on avr32 since it doesn't update the in-kernel signal context from the ucontext_t upon signal handler return. Fix it by adding a call to do_sigaltstack() from sys_rt_sigreturn(), bringing it in line with most other architectures. Signed-off-by: Martin Koegler [haavard.skinnemoen@atmel.com: changed patch description] Signed-off-by: Haavard Skinnemoen commit 60ed7951d0c9bf8de8588384134f16474367b410 Author: Alex Date: Mon Mar 17 14:55:06 2008 +0100 avr32: Allow board to define oscillator rates On our custom board we have other oscillator rates than on atngw100 and atstk100x. Currently these rates are hardcoded in arch/avr32/mach-at32ap/at32ap700x.c. This patch moves them into board specific code. Signed-off-by: Alex Raimondi Signed-off-by: Haavard Skinnemoen commit 8bd8974fcddc468d66bd67f33c578f37987b302e Author: Haavard Skinnemoen Date: Sun Jun 8 23:28:45 2008 +0200 avr32: export empty_zero_page Fixes one of two ext4 build problems: ERROR: "empty_zero_page" [fs/ext4/ext4dev.ko] undefined! Signed-off-by: Haavard Skinnemoen commit b788ed5c97c2bae978cb84a95ea37a1aa6458ea8 Author: Haavard Skinnemoen Date: Sun Jun 8 23:16:24 2008 +0200 avr32: Provide PCI DMA mapping API Some non-PCI drivers need the PCI variant of the DMA mapping API. Include to provide this through the non-PCI DMA mapping API. Signed-off-by: Haavard Skinnemoen commit 4c9fe8ad813b257a2b9ddf0f752105a75a7dae63 Author: Ingo Molnar Date: Fri Jun 27 14:49:35 2008 +0200 sched: export cpu_clock the rcutorture module relies on cpu_clock. Signed-off-by: Ingo Molnar commit 55e12e5e7b1d7e7c05a4be10cb5fd092c039aa78 Author: Dhaval Giani Date: Tue Jun 24 23:39:43 2008 +0530 sched: make sched_{rt,fair}.c ifdefs more readable Signed-off-by: Dhaval Giani Cc: Srivatsa Vaddagiri Cc: Peter Zijlstra Signed-off-by: Ingo Molnar commit f5bfb7d9ff73d72ee4f2f4830a6f0c9088d00f92 Author: Peter Zijlstra Date: Fri Jun 27 13:41:39 2008 +0200 sched: bias effective_load() error towards failing wake_affine(). Measurement shows that the difference between cgroup:/ and cgroup:/foo wake_affine() results is that the latter succeeds significantly more. Therefore bias the calculations towards failing the test. Signed-off-by: Peter Zijlstra Cc: Srivatsa Vaddagiri Cc: Mike Galbraith Signed-off-by: Ingo Molnar commit f1d239f73200a5803a89e5929fb3abc1596b7589 Author: Peter Zijlstra Date: Fri Jun 27 13:41:38 2008 +0200 sched: incremental effective_load() Increase the accuracy of the effective_load values. Not only consider the current increment (as per the attempted wakeup), but also consider the delta between when we last adjusted the shares and the current situation. Signed-off-by: Peter Zijlstra Cc: Srivatsa Vaddagiri Cc: Mike Galbraith Signed-off-by: Ingo Molnar commit 83378269a5fad98f562ebc0f09c349575e6cbfe1 Author: Peter Zijlstra Date: Fri Jun 27 13:41:37 2008 +0200 sched: correct wakeup weight calculations rw_i = {2, 4, 1, 0} s_i = {2/7, 4/7, 1/7, 0} wakeup on cpu0, weight=1 rw'_i = {3, 4, 1, 0} s'_i = {3/8, 4/8, 1/8, 0} s_0 = S * rw_0 / \Sum rw_j -> \Sum rw_j = S*rw_0/s_0 = 1*2*7/2 = 7 (correct) s'_0 = S * (rw_0 + 1) / (\Sum rw_j + 1) = 1 * (2+1) / (7+1) = 3/8 (correct so we find that adding 1 to cpu0 gains 5/56 in weight if say the other cpu were, cpu1, we'd also have to calculate its 4/56 loss Signed-off-by: Peter Zijlstra Cc: Srivatsa Vaddagiri Cc: Mike Galbraith Signed-off-by: Ingo Molnar commit 243e0e7b7d3b54749ece2e879ecd7e2a11874443 Author: Srivatsa Vaddagiri Date: Fri Jun 27 13:41:36 2008 +0200 sched: fix mult overflow It was observed these mults can overflow. Signed-off-by: Srivatsa Vaddagiri Signed-off-by: Peter Zijlstra Cc: Srivatsa Vaddagiri Cc: Mike Galbraith Signed-off-by: Ingo Molnar commit 2398f2c6d34b43025f274fc42eaca34d23ec2320 Author: Peter Zijlstra Date: Fri Jun 27 13:41:35 2008 +0200 sched: update shares on wakeup We found that the affine wakeup code needs rather accurate load figures to be effective. The trouble is that updating the load figures is fairly expensive with group scheduling. Therefore ratelimit the updating. Signed-off-by: Peter Zijlstra Cc: Srivatsa Vaddagiri Cc: Mike Galbraith Signed-off-by: Ingo Molnar commit cd80917e4ff465ea77106f8e4fb631eedc4cf426 Author: Peter Zijlstra Date: Fri Jun 27 13:41:34 2008 +0200 sched: fix shares boost logic In case the domain is empty, pretend there is a single task on each cpu, so that together with the boost logic we end up giving 1/n shares to each cpu. Signed-off-by: Peter Zijlstra Cc: Srivatsa Vaddagiri Cc: Mike Galbraith Signed-off-by: Ingo Molnar commit 93b75217df39e6d75889cc6f8050343286aff4a5 Author: Peter Zijlstra Date: Fri Jun 27 13:41:33 2008 +0200 sched: disable source/target_load bias The bias given by source/target_load functions can be very large, disable it by default to get faster convergence. Signed-off-by: Peter Zijlstra Cc: Srivatsa Vaddagiri Cc: Mike Galbraith Signed-off-by: Ingo Molnar commit cb5ef42a03a13f95a9ea94e6cda4f7a47497871f Author: Peter Zijlstra Date: Fri Jun 27 13:41:32 2008 +0200 sched: optimize effective_load() s_i = S * rw_i / \Sum_j rw_j -> \Sum_j rw_j = S * rw_i / s_i -> s'_i = S * (rw_i + w) / (\Sum_j rw_j + w) delta s = s' - s = S * (rw + w) / ((S * rw / s) + w) = s * (S * (rw + w) / (S * rw + s * w) - 1) a = S*(rw+w), b = S*rw + s*w delta s = s * (a-b) / b IOW, trade one divide for two multiplies Signed-off-by: Peter Zijlstra Cc: Srivatsa Vaddagiri Cc: Mike Galbraith Signed-off-by: Ingo Molnar commit 051c67640e771fd6ad1b676fc0c16c379b3c6f80 Author: Peter Zijlstra Date: Fri Jun 27 13:41:31 2008 +0200 sched: remove prio preference from balance decisions Priority looses much of its meaning in a hierarchical context. So don't use it in balance decisions. Signed-off-by: Peter Zijlstra Cc: Srivatsa Vaddagiri Cc: Mike Galbraith Signed-off-by: Ingo Molnar commit 4be9daaa1b33701f011f4117f22dc1e45a3e6e34 Author: Peter Zijlstra Date: Fri Jun 27 13:41:30 2008 +0200 sched: fix task_h_load() Currently task_h_load() computes the load of a task and uses that to either subtract it from the total, or add to it. However, removing or adding a task need not have any effect on the total load at all. Imagine adding a task to a group that is local to one cpu - in that case the total load of that cpu is unaffected. So properly compute addition/removal: s_i = S * rw_i / \Sum_j rw_j s'_i = S * (rw_i + wl) / (\Sum_j rw_j + wg) then s'_i - s_i gives the change in load. Where s_i is the shares for cpu i, S the group weight, rw_i the runqueue weight for that cpu, wl the weight we add (subtract) and wg the weight contribution to the runqueue. Signed-off-by: Peter Zijlstra Cc: Srivatsa Vaddagiri Cc: Mike Galbraith Signed-off-by: Ingo Molnar commit 42a3ac7d5cee89849448b41b86faeb86f98e92f6 Author: Peter Zijlstra Date: Fri Jun 27 13:41:29 2008 +0200 sched: fix load scaling in group balancing doing the load balance will change cfs_rq->load.weight (that's the whole point) but since that's part of the scale factor, we'll scale back with a different amount. Weight getting smaller would result in an inflated moved_load which causes it to stop balancing too soon. Signed-off-by: Peter Zijlstra Cc: Srivatsa Vaddagiri Cc: Mike Galbraith Signed-off-by: Ingo Molnar commit 408ed066b11cf9ee4536573b4269ee3613bd735e Author: Peter Zijlstra Date: Fri Jun 27 13:41:28 2008 +0200 sched: hierarchical load vs find_busiest_group find_busiest_group() has some assumptions about task weight being in the NICE_0_LOAD range. Hierarchical task groups break this assumption - fix this by replacing it with the average task weight, which will adapt the situation. Signed-off-by: Peter Zijlstra Cc: Srivatsa Vaddagiri Cc: Mike Galbraith Signed-off-by: Ingo Molnar commit bb3469ac9b50f14ad6eba129ca0ad4fd033097a0 Author: Peter Zijlstra Date: Fri Jun 27 13:41:27 2008 +0200 sched: hierarchical load vs affine wakeups With hierarchical grouping we can't just compare task weight to rq weight - we need to scale the weight appropriately. Signed-off-by: Peter Zijlstra Cc: Srivatsa Vaddagiri Cc: Mike Galbraith Signed-off-by: Ingo Molnar commit a8a51d5e59561aa5b4d66e19eca819b537783e8f Author: Peter Zijlstra Date: Fri Jun 27 13:41:26 2008 +0200 sched: persistent average load per task Remove the fall-back to SCHED_LOAD_SCALE by remembering the previous value of cpu_avg_load_per_task() - this is useful because of the hierarchical group model in which task weight can be much smaller. Signed-off-by: Peter Zijlstra Cc: Srivatsa Vaddagiri Cc: Mike Galbraith Signed-off-by: Ingo Molnar commit 039a1c41b3a489e34593ea1e1687f6fdad6b13ab Author: Peter Zijlstra Date: Fri Jun 27 13:41:25 2008 +0200 sched: fix sched_balance_self() smp group balancing Finding the least idle cpu is more accurate when done with updated shares. Signed-off-by: Peter Zijlstra Cc: Srivatsa Vaddagiri Cc: Mike Galbraith Signed-off-by: Ingo Molnar commit 3e5459b4bea3ca2618cc02d56d12639f2cba531d Author: Peter Zijlstra Date: Fri Jun 27 13:41:24 2008 +0200 sched: fix newidle smp group balancing Re-compute the shares on newidle - so we can make a decision based on recent data. Signed-off-by: Peter Zijlstra Cc: Srivatsa Vaddagiri Cc: Mike Galbraith Signed-off-by: Ingo Molnar commit c8cba857b4997d5b00451d01474638f6a153f713 Author: Peter Zijlstra Date: Fri Jun 27 13:41:23 2008 +0200 sched: simplify the group load balancer While thinking about the previous patch - I realized that using per domain aggregate load values in load_balance_fair() is wrong. We should use the load value for that CPU. By not needing per domain hierarchical load values we don't need to store per domain aggregate shares, which greatly simplifies all the math. It basically falls apart in two separate computations: - per domain update of the shares - per CPU update of the hierarchical load Also get rid of the move_group_shares() stuff - just re-compute the shares again after a successful load balance. Signed-off-by: Peter Zijlstra Cc: Srivatsa Vaddagiri Cc: Mike Galbraith Signed-off-by: Ingo Molnar commit a25b5aca8740ea99d5e18dfc71235a52b685dcf7 Author: Peter Zijlstra Date: Fri Jun 27 13:41:22 2008 +0200 sched: no need to aggregate task_weight We only need to know the task_weight of the busiest rq - nothing to do if there are no tasks there. Signed-off-by: Peter Zijlstra Cc: Srivatsa Vaddagiri Cc: Mike Galbraith Signed-off-by: Ingo Molnar commit d3f40dbab954d83383b6a516582d5c09cc216dcc Author: Peter Zijlstra Date: Fri Jun 27 13:41:21 2008 +0200 sched: dont micro manage share losses We used to try and contain the loss of 'shares' by playing arithmetic games. Replace that by noticing that at the top sched_domain we'll always have the full weight in shares to distribute. Signed-off-by: Peter Zijlstra Cc: Srivatsa Vaddagiri Cc: Mike Galbraith Signed-off-by: Ingo Molnar commit 53fecd8ae1900fb571086f54f664051004665b55 Author: Srivatsa Vaddagiri Date: Fri Jun 27 13:41:20 2008 +0200 sched: kill task_group balancing The idea was to balance groups until we've reached the global goal, however Vatsa rightly pointed out that we might never reach that goal this way - hence take out this logic. [ the initial rationale for this 'feature' was to promote max concurrency within a group - it does not however affect fairness ] Reported-by: Srivatsa Vaddagiri Signed-off-by: Peter Zijlstra Cc: Srivatsa Vaddagiri Cc: Mike Galbraith Signed-off-by: Ingo Molnar commit 4d8d595dfa69e1c807bf928f364668a7f30da5dc Author: Peter Zijlstra Date: Fri Jun 27 13:41:19 2008 +0200 sched: update aggregate when holding the RQs It was observed that in __update_group_shares_cpu() rq_weight > aggregate()->rq_weight This is caused by forks/wakeups in between the initial aggregate pass and locking of the RQs for load balance. To avoid this situation partially re-do the aggregation once we have the RQs locked (which avoids new tasks from appearing). Signed-off-by: Peter Zijlstra Cc: Srivatsa Vaddagiri Cc: Mike Galbraith Signed-off-by: Ingo Molnar commit b6a86c746f5b708012809958462234d19e9c8177 Author: Peter Zijlstra Date: Fri Jun 27 13:41:18 2008 +0200 sched: fix sched_domain aggregation Keeping the aggregate on the first cpu of the sched domain has two problems: - it could collide between different sched domains on different cpus - it could slow things down because of the remote accesses Signed-off-by: Peter Zijlstra Cc: Srivatsa Vaddagiri Cc: Mike Galbraith Signed-off-by: Ingo Molnar commit 32df2ee86a580f70f2dbb90cf81f413aa655f838 Author: Peter Zijlstra Date: Fri Jun 27 13:41:17 2008 +0200 sched: add full schedstats to /proc/sched_debug show all the schedstats in /debug/sched_debug as well. Signed-off-by: Peter Zijlstra Cc: Srivatsa Vaddagiri Cc: Mike Galbraith Signed-off-by: Ingo Molnar commit 103638d95ba5b0c53c8d9c0cb581156ccc8513ee Author: Peter Zijlstra Date: Fri Jun 27 13:41:16 2008 +0200 sched: fix wakeup granularity and buddy granularity Uncouple buddy selection from wakeup granularity. The initial idea was that buddies could run ahead as far as a normal task can - do this by measuring a pair 'slice' just as we do for a normal task. This means we can drop the wakeup_granularity back to 5ms. Signed-off-by: Peter Zijlstra Cc: Srivatsa Vaddagiri Cc: Mike Galbraith Signed-off-by: Ingo Molnar commit 76a2a6ee8a0660a29127f05989ac59ae1ce865fa Author: Peter Zijlstra Date: Fri Jun 27 13:41:15 2008 +0200 sched: sched_clock_cpu() based cpu_clock() with sched_clock_cpu() being reasonably in sync between cpus (max 1 jiffy difference) use this to provide cpu_clock(). Signed-off-by: Peter Zijlstra Cc: Srivatsa Vaddagiri Cc: Mike Galbraith Signed-off-by: Ingo Molnar commit c09595f63bb1909c5dc4dca288f4fe818561b5f3 Author: Peter Zijlstra Date: Fri Jun 27 13:41:14 2008 +0200 sched: revert revert of: fair-group: SMP-nice for group scheduling Try again.. Initial commit: 18d95a2832c1392a2d63227a7a6d433cb9f2037e Revert: 6363ca57c76b7b83639ca8c83fc285fa26a7880e Signed-off-by: Peter Zijlstra Cc: Srivatsa Vaddagiri Cc: Mike Galbraith Signed-off-by: Ingo Molnar commit ced8aa16e1db55c33c507174c1b1f9e107445865 Author: Peter Zijlstra Date: Fri Jun 27 13:41:13 2008 +0200 sched: fix calc_delta_asym, #2 Ok, so why are we in this mess, it was: 1/w but now we mixed that rw in the mix like: rw/w rw being \Sum w suggests: fiddling w, we should also fiddle rw, humm? Signed-off-by: Peter Zijlstra Cc: Srivatsa Vaddagiri Cc: Mike Galbraith Signed-off-by: Ingo Molnar commit c9c294a630e28eec5f2865f028ecfc58d45c0a5a Author: Peter Zijlstra Date: Fri Jun 27 13:41:12 2008 +0200 sched: fix calc_delta_asym() calc_delta_asym() is supposed to do the same as calc_delta_fair() except linearly shrink the result for negative nice processes - this causes them to have a smaller preemption threshold so that they are more easily preempted. The problem is that for task groups se->load.weight is the per cpu share of the actual task group weight; take that into account. Also provide a debug switch to disable the asymmetry (which I still don't like - but it does greatly benefit some workloads) This would explain the interactivity issues reported against group scheduling. Signed-off-by: Peter Zijlstra Cc: Srivatsa Vaddagiri Cc: Mike Galbraith Signed-off-by: Ingo Molnar commit a7be37ac8e1565e00880531f4e2aff421a21c803 Author: Peter Zijlstra Date: Fri Jun 27 13:41:11 2008 +0200 sched: revert the revert of: weight calculations Try again.. initial commit: 8f1bc385cfbab474db6c27b5af1e439614f3025c revert: f9305d4a0968201b2818dbed0dc8cb0d4ee7aeb3 Signed-off-by: Peter Zijlstra Cc: Srivatsa Vaddagiri Cc: Mike Galbraith Signed-off-by: Ingo Molnar commit bf647b62fdb948e757a7b4d18d4f16e3c763b1d1 Author: Peter Zijlstra Date: Fri Jun 27 13:41:10 2008 +0200 sched: clean up some unused variables In file included from /mnt/build/linux-2.6/kernel/sched.c:1496: /mnt/build/linux-2.6/kernel/sched_rt.c: In function '__enable_runtime': /mnt/build/linux-2.6/kernel/sched_rt.c:339: warning: unused variable 'rd' /mnt/build/linux-2.6/kernel/sched_rt.c: In function 'requeue_rt_entity': /mnt/build/linux-2.6/kernel/sched_rt.c:692: warning: unused variable 'queue' Signed-off-by: Peter Zijlstra Cc: Srivatsa Vaddagiri Cc: Mike Galbraith Signed-off-by: Ingo Molnar commit 8b604d520799a995946437d041f46bae7d5bcc8c Author: Ingo Molnar Date: Fri Jun 27 11:52:45 2008 +0200 fix: "smp_call_function: get rid of the unused nonatomic/retry argument" drivers/char/sysrq.c: In function 'sysrq_showregs_othercpus': drivers/char/sysrq.c:218: error: too many arguments to function 'smp_call_function' Signed-off-by: Ingo Molnar commit ce0d1b6f73870878aae622b72e85fe8f7a16b51c Author: Ingo Molnar Date: Fri Jun 27 11:50:32 2008 +0200 fix: "smp_call_function: get rid of the unused nonatomic/retry argument" fix: kernel/smp.c: In function 'smp_call_function_mask': kernel/smp.c:303: error: too many arguments to function 'smp_call_function_single' Signed-off-by: Ingo Molnar commit 127a237a1ff49fa5b8e00af91e841598aeea3513 Author: Ingo Molnar Date: Fri Jun 27 11:48:22 2008 +0200 fix "smp_call_function: get rid of the unused nonatomic/retry argument" fix: arch/x86/kernel/process.c: In function 'cpu_idle_wait': arch/x86/kernel/process.c:64: error: too many arguments to function 'smp_call_function' Signed-off-by: Ingo Molnar commit 07c40e8a1acdb56fca485a6deeb252ebf19509a1 Author: Ingo Molnar Date: Fri Jun 27 11:31:28 2008 +0200 x86, AMD IOMMU: build fix #3 fix typo causing: arch/x86/kernel/built-in.o: In function `__unmap_single': amd_iommu.c:(.text+0x17771): undefined reference to `iommu_area_free' arch/x86/kernel/built-in.o: In function `__map_single': amd_iommu.c:(.text+0x1797a): undefined reference to `iommu_area_alloc' amd_iommu.c:(.text+0x179a2): undefined reference to `iommu_area_alloc' Signed-off-by: Ingo Molnar commit 92af4e29020ff096178a00605b3662b3b39d4aa9 Author: Ingo Molnar Date: Fri Jun 27 10:48:16 2008 +0200 x86, AMD IOMMU, build fix #2 fix: arch/x86/kernel/amd_iommu.c: In function ‘amd_iommu_init_dma_ops': arch/x86/kernel/amd_iommu.c:940: error: lvalue required as left operand of assignment arch/x86/kernel/amd_iommu.c:941: error: lvalue required as left operand of assignment due to !CONFIG_GART_IOMMU. Signed-off-by: Ingo Molnar commit 24d2ba0a8a5816eb8322836271fbcb045d915dfd Author: Ingo Molnar Date: Fri Jun 27 10:37:03 2008 +0200 x86, AMD IOMMU: build fix fix: arch/x86/kernel/amd_iommu_init.c:247: warning: 'struct acpi_table_header' declared inside parameter list arch/x86/kernel/amd_iommu_init.c:247: warning: its scope is only this definition or declaration, which is probably not what you want arch/x86/kernel/amd_iommu_init.c: In function 'find_last_devid_acpi': arch/x86/kernel/amd_iommu_init.c:257: error: dereferencing pointer to incomplete type arch/x86/kernel/amd_iommu_init.c:265: error: dereferencing pointer to incomplete type the AMD IOMMU code depends on ACPI facilities. Signed-off-by: Ingo Molnar commit f17172e00167238cc5e4f61ac4e78c68e5c558ec Author: Steven Whitehouse Date: Fri Jun 27 09:40:57 2008 +0100 [GFS2] Fix module building Two lines missed from the previous patch. Signed-off-by: Steven Whitehouse commit 9f1585cb03866452e0df61a83c88302181e50054 Author: Steven Whitehouse Date: Thu Jun 26 08:25:57 2008 +0100 [GFS2] Glock documentation This patch adds a file describing the internals of GFS2's glock abstraction. Signed-off-by: Steven Whitehouse commit 31fcba00fe7145527b159f8893ec6c9cc61309fd Author: Steven Whitehouse Date: Wed Jun 4 15:06:21 2008 +0100 [GFS2] Remove all_list from lock_dlm I discovered that we had a list onto which every lock_dlm lock was being put. Its only function was to discover whether we'd got any locks left after umount. Since there was already a counter for that purpose as well, I removed the list. The saving is sizeof(struct list_head) per glock - well worth having. Signed-off-by: Steven Whitehouse commit b2cad26cfc2091050574a460b304ed103a35dbda Author: Steven Whitehouse Date: Tue Jun 3 14:34:14 2008 +0100 [GFS2] Remove obsolete conversion deadlock avoidance code This is only used by GFS1 so can be removed. Signed-off-by: Steven Whitehouse commit 1bdad606338debc6384b2844f1b53cc436b3ac90 Author: Steven Whitehouse Date: Tue Jun 3 14:09:53 2008 +0100 [GFS2] Remove remote lock dropping code There are several reasons why this is undesirable: 1. It never happens during normal operation anyway 2. If it does happen it causes performance to be very, very poor 3. It isn't likely to solve the original problem (memory shortage on remote DLM node) it was supposed to solve 4. It uses a bunch of arbitrary constants which are unlikely to be correct for any particular situation and for which the tuning seems to be a black art. 5. In an N node cluster, only 1/N of the dropped locked will actually contribute to solving the problem on average. So all in all we are better off without it. This also makes merging the lock_dlm module into GFS2 a bit easier. Signed-off-by: Steven Whitehouse commit 9171f5a991e7613cbee816874ad8c9515dcab50f Author: Bob Peterson Date: Mon Jun 9 12:08:23 2008 -0500 [GFS2] kernel panic mounting volume This patch fixes Red Hat bugzilla bug 450156. This started with a not-too-improbable mount failure because the locking protocol was never set back to its proper "lock_dlm" after the system was rebooted in the middle of a gfs2_fsck. That left a (purposely) invalid locking protocol in the superblock, which caused an error when the file system was mounted the next time. When there's an error mounting, vfs calls DQUOT_OFF, which calls vfs_quota_off which calls gfs2_sync_fs. Next, gfs2_sync_fs calls gfs2_log_flush passing s_fs_info. But due to the error, s_fs_info had been previously set to NULL, and so we have the kernel oops. My solution in this patch is to test for the NULL value before passing it. I tested this patch and it fixes the problem. Signed-off-by: Bob Peterson Signed-off-by: Steven Whitehouse commit 01b7c7ae88a6376c508b35a22bb61e04cb1b37f0 Author: Steven Whitehouse Date: Mon Jun 2 09:14:54 2008 +0100 [GFS2] Revise readpage locking The previous attempt to fix the locking in readpage failed due to the use of a "try lock" which resulted in occasional high cpu usage during testing (due to repeated tries) and also it did not resolve all the ordering problems wrt the transaction lock (although it did solve all the inode lock ordering problems). This patch avoids the problem by unlocking the page and getting the locks in the correct order. This means that we have to retest the page to ensure that it hasn't changed when we relock the page. This now passes the tests which were previously failing. Signed-off-by: Steven Whitehouse commit 80274737220f8c5ea75696dde4c5c7feba39456f Author: Steven Whitehouse Date: Mon Jun 2 09:08:47 2008 +0100 [GFS2] Fix ordering of args for list_add The patch to remove lock_nolock managed to get the arguments of this list_add backwards. This fixes it. Signed-off-by: Steven Whitehouse commit 2d81afb87972013b43b055b4711dc75fdeeb9ba8 Author: Harvey Harrison Date: Thu May 29 18:27:51 2008 -0700 [GFS2] trivial sparse lock annotations Annotate the &sdp->sd_log_lock. Signed-off-by: Harvey Harrison Signed-off-by: Steven Whitehouse commit 048bca223739368aa5b9ce7cfb1d576c32d66cc7 Author: Steven Whitehouse Date: Fri May 23 14:46:04 2008 +0100 [GFS2] No lock_nolock This patch merges the lock_nolock module into GFS2 itself. As well as removing some of the overhead of the module, it also means that its now impossible to build GFS2 without a lock module (which would be a pointless thing to do anyway). We also plan to merge lock_dlm into GFS2 in the future, but that is a more tricky task, and will therefore be a separate patch. Signed-off-by: Steven Whitehouse Cc: David Teigland commit f3c9d38a26be32abf9b8897e9e0afc7166c712dd Author: Steven Whitehouse Date: Wed May 21 17:21:42 2008 +0100 [GFS2] Fix ordering bug in lock_dlm This looks like a lot of change, but in fact its not. Mostly its things moving from one file to another. The change is just that instead of queuing lock completions and callbacks from the DLM we now pass them directly to GFS2. This gives us a net loss of two list heads per glock (a fair saving in memory) plus a reduction in the latency of delivering the messages to GFS2, plus we now have one thread fewer as well. There was a bug where callbacks and completions could be delivered in the wrong order due to this unnecessary queuing which is fixed by this patch. Signed-off-by: Steven Whitehouse Cc: Bob Peterson commit 6802e3400ff4549525930ee744030c36fce9cc73 Author: Steven Whitehouse Date: Wed May 21 17:03:22 2008 +0100 [GFS2] Clean up the glock core This patch implements a number of cleanups to the core of the GFS2 glock code. As a result a lot of code is removed. It looks like a really big change, but actually a large part of this patch is either removing or moving existing code. There are some new bits too though, such as the new run_queue() function which is considerably streamlined. Highlights of this patch include: o Fixes a cluster coherency bug during SH -> EX lock conversions o Removes the "glmutex" code in favour of a single bit lock o Removes the ->go_xmote_bh() for inodes since it was duplicating ->go_lock() o We now only use the ->lm_lock() function for both locks and unlocks (i.e. unlock is a lock with target mode LM_ST_UNLOCKED) o The fast path is considerably shortly, giving performance gains especially with lock_nolock o The glock_workqueue is now used for all the callbacks from the DLM which allows us to simplify the lock_dlm module (see following patch) o The way is now open to make further changes such as eliminating the two threads (gfs2_glockd and gfs2_scand) in favour of a more efficient scheme. This patch has undergone extensive testing with various test suites so it should be pretty stable by now. Signed-off-by: Steven Whitehouse Cc: Bob Peterson commit 54b4cbd26987f84791d6e05863a715ded9f7b3a5 Author: Joerg Roedel Date: Thu Jun 26 21:28:10 2008 +0200 x86, AMD IOMMU: add documentation for kernel parameters Add documentation for the kernel parameters introduced with this driver. Signed-off-by: Joerg Roedel Cc: iommu@lists.linux-foundation.org Cc: bhavna.sarathy@amd.com Cc: Sebastian.Biemueller@amd.com Cc: robert.richter@amd.com Cc: joro@8bytes.org Signed-off-by: Ingo Molnar commit 919ee7dd9a66c71e116591c07b88de0db2a387a4 Author: Joerg Roedel Date: Thu Jun 26 21:28:09 2008 +0200 x86, AMD IOMMU: add MAINTAINERS entry Add an entry to the MAINTAINERS file for AMD IOMMU. Signed-off-by: Joerg Roedel Cc: iommu@lists.linux-foundation.org Cc: bhavna.sarathy@amd.com Cc: Sebastian.Biemueller@amd.com Cc: robert.richter@amd.com Cc: joro@8bytes.org Signed-off-by: Ingo Molnar commit a69ca3401821b7312cb7ec939a8814240fd7b9b3 Author: Joerg Roedel Date: Thu Jun 26 21:28:08 2008 +0200 AMD_IOMMU: call detect and initialization functions from dma code This patch adds the function calls to initialize the AMD IOMMU hardware and dma_ops to the generic DMA code for the x86 architecture. Signed-off-by: Joerg Roedel Cc: iommu@lists.linux-foundation.org Cc: bhavna.sarathy@amd.com Cc: Sebastian.Biemueller@amd.com Cc: robert.richter@amd.com Cc: joro@8bytes.org Signed-off-by: Ingo Molnar commit 8736197ba8e40d030eec0ab7a9e9f2be41810c4e Author: Joerg Roedel Date: Thu Jun 26 21:28:07 2008 +0200 x86, AMD IOMMU: initialize dma_ops from IOMMU initialization and enable IOMMUs This patch adds a call to the driver specific dma_ops initialization routine from the AMD IOMMU hardware initialization. Further it adds the necessary code to finally enable AMD IOMMU hardware. Signed-off-by: Joerg Roedel Cc: iommu@lists.linux-foundation.org Cc: bhavna.sarathy@amd.com Cc: Sebastian.Biemueller@amd.com Cc: robert.richter@amd.com Cc: joro@8bytes.org Signed-off-by: Ingo Molnar commit c6da992e16a9d261eb9dfeff14e9777c3e0468c5 Author: Joerg Roedel Date: Thu Jun 26 21:28:06 2008 +0200 x86, AMD IOMMU: add amd_iommu.h to export functions to the generic x86 dma code This patch adds the amd_iommu.h file which will be included in the generic code. Signed-off-by: Joerg Roedel Cc: iommu@lists.linux-foundation.org Cc: bhavna.sarathy@amd.com Cc: Sebastian.Biemueller@amd.com Cc: robert.richter@amd.com Cc: joro@8bytes.org Signed-off-by: Ingo Molnar commit 6631ee9d00996e7663a086b5abceba65c89ff8f6 Author: Joerg Roedel Date: Thu Jun 26 21:28:05 2008 +0200 x86, AMD IOMMU: add dma_ops initialization function This patch adds the function to initialize the dma_ops for the AMD IOMMU. Signed-off-by: Joerg Roedel Cc: iommu@lists.linux-foundation.org Cc: bhavna.sarathy@amd.com Cc: Sebastian.Biemueller@amd.com Cc: robert.richter@amd.com Cc: joro@8bytes.org Signed-off-by: Ingo Molnar commit c432f3df8ea740e2ecb27da88bd6b5a254714959 Author: Joerg Roedel Date: Thu Jun 26 21:28:04 2008 +0200 x86, AMD IOMMU: add pre-allocation of protection domains This patch adds a function to pre-allocate protection domains. So we don't have to allocate it on the first request for a device (which can happen in atomic mode). Signed-off-by: Joerg Roedel Cc: iommu@lists.linux-foundation.org Cc: bhavna.sarathy@amd.com Cc: Sebastian.Biemueller@amd.com Cc: robert.richter@amd.com Cc: joro@8bytes.org Signed-off-by: Ingo Molnar commit 5d8b53cf3f8762b2230fb3d5b4e2ff78c5e701d8 Author: Joerg Roedel Date: Thu Jun 26 21:28:03 2008 +0200 x86, AMD IOMMU: add mapping functions for coherent mappings This patch adds the dma_ops functions for coherent mappings. Signed-off-by: Joerg Roedel Cc: iommu@lists.linux-foundation.org Cc: bhavna.sarathy@amd.com Cc: Sebastian.Biemueller@amd.com Cc: robert.richter@amd.com Cc: joro@8bytes.org Signed-off-by: Ingo Molnar commit 65b050adbfd9481ec20514cfc06fa596a92cb3b5 Author: Joerg Roedel Date: Thu Jun 26 21:28:02 2008 +0200 x86, AMD IOMMU: add mapping functions for scatter gather lists This patch adds the dma_ops functions for mapping and unmapping scatter gather lists. Signed-off-by: Joerg Roedel Cc: iommu@lists.linux-foundation.org Cc: bhavna.sarathy@amd.com Cc: Sebastian.Biemueller@amd.com Cc: robert.richter@amd.com Cc: joro@8bytes.org Signed-off-by: Ingo Molnar commit 4da70b9e4f8576ec906dba9240c5b6bc6584f91d Author: Joerg Roedel Date: Thu Jun 26 21:28:01 2008 +0200 x86, AMD IOMMU: add dma_ops mapping functions for single mappings This patch adds the dma_ops specific mapping functions for single mappings. Signed-off-by: Joerg Roedel Cc: iommu@lists.linux-foundation.org Cc: bhavna.sarathy@amd.com Cc: Sebastian.Biemueller@amd.com Cc: robert.richter@amd.com Cc: joro@8bytes.org Signed-off-by: Ingo Molnar commit cb76c3229725c6dcae31da65e9ca57f434628c05 Author: Joerg Roedel Date: Thu Jun 26 21:28:00 2008 +0200 x86, AMD IOMMU: add generic dma_ops mapping functions This patch adds the generic functions to map and unmap pages to a protection domain for dma_ops usage. Signed-off-by: Joerg Roedel Cc: iommu@lists.linux-foundation.org Cc: bhavna.sarathy@amd.com Cc: Sebastian.Biemueller@amd.com Cc: robert.richter@amd.com Cc: joro@8bytes.org Signed-off-by: Ingo Molnar commit b20ac0d4d6cff969d7074bbf02a1b86058df0804 Author: Joerg Roedel Date: Thu Jun 26 21:27:59 2008 +0200 x86, AMD IOMMU: add functions to find IOMMU device resources This patch adds functions necessary to find the IOMMU resources for a specific device. Signed-off-by: Joerg Roedel Cc: iommu@lists.linux-foundation.org Cc: bhavna.sarathy@amd.com Cc: Sebastian.Biemueller@amd.com Cc: robert.richter@amd.com Cc: joro@8bytes.org Signed-off-by: Ingo Molnar commit ec487d1a110abfffebdf116560db5c1d71b94cab Author: Joerg Roedel Date: Thu Jun 26 21:27:58 2008 +0200 x86, AMD IOMMU: add domain allocation and deallocation functions This patch adds the functions to allocate and free protection domains for the IOMMU. Signed-off-by: Joerg Roedel Cc: iommu@lists.linux-foundation.org Cc: bhavna.sarathy@amd.com Cc: Sebastian.Biemueller@amd.com Cc: robert.richter@amd.com Cc: joro@8bytes.org Signed-off-by: Ingo Molnar commit d3086444b2988659a50af09462261c78d3012cb4 Author: Joerg Roedel Date: Thu Jun 26 21:27:57 2008 +0200 x86, AMD IOMMU: add address allocation and deallocation functions This patch adds the address allocator to the AMD IOMMU code. Signed-off-by: Joerg Roedel Cc: iommu@lists.linux-foundation.org Cc: bhavna.sarathy@amd.com Cc: Sebastian.Biemueller@amd.com Cc: robert.richter@amd.com Cc: joro@8bytes.org Signed-off-by: Ingo Molnar commit bd0e521158af407ec816aea070831d4ca7ae65e9 Author: Joerg Roedel Date: Thu Jun 26 21:27:56 2008 +0200 x86, AMD IOMMU: add functions to initialize unity mappings This patch adds the functions which will initialize the unity mappings in the device page tables. Signed-off-by: Joerg Roedel Cc: iommu@lists.linux-foundation.org Cc: bhavna.sarathy@amd.com Cc: Sebastian.Biemueller@amd.com Cc: robert.richter@amd.com Cc: joro@8bytes.org Signed-off-by: Ingo Molnar commit a19ae1eccfb2d97f4704b1a2b3d1d9905845dcac Author: Joerg Roedel Date: Thu Jun 26 21:27:55 2008 +0200 x86, AMD IOMMU: add functions to send IOMMU commands This patch adds generic handling function as well as all functions to send specific commands to the IOMMU hardware as required by this driver. Signed-off-by: Joerg Roedel Cc: iommu@lists.linux-foundation.org Cc: bhavna.sarathy@amd.com Cc: Sebastian.Biemueller@amd.com Cc: robert.richter@amd.com Cc: joro@8bytes.org Signed-off-by: Ingo Molnar commit 000fca2dfcfbd2859fed1208c38c899ab4873049 Author: Joerg Roedel Date: Thu Jun 26 21:27:54 2008 +0200 x86, AMD IOMMU: add amd_iommu.c to Makefile This patch adds the new amd_iommu.c file to the architecture kernel Makefile for x86. Signed-off-by: Joerg Roedel Cc: iommu@lists.linux-foundation.org Cc: bhavna.sarathy@amd.com Cc: Sebastian.Biemueller@amd.com Cc: robert.richter@amd.com Cc: joro@8bytes.org Signed-off-by: Ingo Molnar commit b6c02715cff8c96174022166bfa3e1a25436fb34 Author: Joerg Roedel Date: Thu Jun 26 21:27:53 2008 +0200 x86, AMD IOMMU: add generic defines and structures for mapping code This patch adds generic stuff used by the mapping and unmapping code for the AMD IOMMU. Signed-off-by: Joerg Roedel Cc: iommu@lists.linux-foundation.org Cc: bhavna.sarathy@amd.com Cc: Sebastian.Biemueller@amd.com Cc: robert.richter@amd.com Cc: joro@8bytes.org Signed-off-by: Ingo Molnar commit 918ad6c54d107ccfc4ccaa3a54b97437467fb58a Author: Joerg Roedel Date: Thu Jun 26 21:27:52 2008 +0200 x86, AMD IOMMU: add kernel command line parameters for AMD IOMMU This patch adds two parameters to the kernel command line to control behavior of the AMD IOMMU. Signed-off-by: Joerg Roedel Cc: iommu@lists.linux-foundation.org Cc: bhavna.sarathy@amd.com Cc: Sebastian.Biemueller@amd.com Cc: robert.richter@amd.com Cc: joro@8bytes.org Signed-off-by: Ingo Molnar commit ae7877de9cd8da075a46d5f615cb9fc9858e4b2f Author: Joerg Roedel Date: Thu Jun 26 21:27:51 2008 +0200 x86, AMD IOMMU: add early detection code This patch adds code to detect an AMD IOMMU early during boot before the early detection code of other IOMMUs run. Signed-off-by: Joerg Roedel Cc: iommu@lists.linux-foundation.org Cc: bhavna.sarathy@amd.com Cc: Sebastian.Biemueller@amd.com Cc: robert.richter@amd.com Cc: joro@8bytes.org Signed-off-by: Ingo Molnar commit fe74c9cf3985e307e9734296d08a270d510e3fb7 Author: Joerg Roedel Date: Thu Jun 26 21:27:50 2008 +0200 x86, AMD IOMMU: clue initialization code together This patch puts the AMD IOMMU ACPI table parsing and hardware initialization functions together to the main intialization routine. Signed-off-by: Joerg Roedel Cc: iommu@lists.linux-foundation.org Cc: bhavna.sarathy@amd.com Cc: Sebastian.Biemueller@amd.com Cc: robert.richter@amd.com Cc: joro@8bytes.org Signed-off-by: Ingo Molnar commit be2a022c0dd0f630b06f83de284df53cb60a308f Author: Joerg Roedel Date: Thu Jun 26 21:27:49 2008 +0200 x86, AMD IOMMU: add functions to parse IOMMU memory mapping requirements for devices This patch adds the functions to parse the information about IOMMU exclusion ranges and required unity mappings for the devices handled by the IOMMU. Signed-off-by: Joerg Roedel Cc: iommu@lists.linux-foundation.org Cc: bhavna.sarathy@amd.com Cc: Sebastian.Biemueller@amd.com Cc: robert.richter@amd.com Cc: joro@8bytes.org Signed-off-by: Ingo Molnar commit e47d402d2df89bb1aa77b7573597a9dd2241aafe Author: Joerg Roedel Date: Thu Jun 26 21:27:48 2008 +0200 x86, AMD IOMMU: add detect code for AMD IOMMU hardware This patch adds the detection of AMD IOMMU hardware provided on information from ACPI provided by the BIOS. Signed-off-by: Joerg Roedel Cc: iommu@lists.linux-foundation.org Cc: bhavna.sarathy@amd.com Cc: Sebastian.Biemueller@amd.com Cc: robert.richter@amd.com Cc: joro@8bytes.org Signed-off-by: Ingo Molnar commit 5d0c8e49f88b908a8fcc913c4b9843108ae8897b Author: Joerg Roedel Date: Thu Jun 26 21:27:47 2008 +0200 x86, AMD IOMMU: add functions for IOMMU hardware initialization from ACPI This patch adds functions to initialize the IOMMU hardware with information from ACPI and PCI. Signed-off-by: Joerg Roedel Cc: iommu@lists.linux-foundation.org Cc: bhavna.sarathy@amd.com Cc: Sebastian.Biemueller@amd.com Cc: robert.richter@amd.com Cc: joro@8bytes.org Signed-off-by: Ingo Molnar commit 3566b7786afd7c14c62726f359df3c827054670b Author: Joerg Roedel Date: Thu Jun 26 21:27:46 2008 +0200 x86, AMD IOMMU: add device table initialization functions This patch adds functions necessary to initialize the device table from the ACPI definitions. Signed-off-by: Joerg Roedel Cc: iommu@lists.linux-foundation.org Cc: bhavna.sarathy@amd.com Cc: Sebastian.Biemueller@amd.com Cc: robert.richter@amd.com Cc: joro@8bytes.org Signed-off-by: Ingo Molnar commit b36ca91e1d2d7e846844820784d57d20ad73dbd8 Author: Joerg Roedel Date: Thu Jun 26 21:27:45 2008 +0200 x86, AMD IOMMU: add command buffer (de-)allocation This patch adds the functions to allocate and deallocate the command buffer for one IOMMU in the system. Signed-off-by: Joerg Roedel Cc: iommu@lists.linux-foundation.org Cc: bhavna.sarathy@amd.com Cc: Sebastian.Biemueller@amd.com Cc: robert.richter@amd.com Cc: joro@8bytes.org Signed-off-by: Ingo Molnar commit b2026aa2dce4454950ccd9c410790f310d65696a Author: Joerg Roedel Date: Thu Jun 26 21:27:44 2008 +0200 x86, AMD IOMMU: add functions for programming IOMMU MMIO space This patch adds the functions required to programm the IOMMU with the MMIO space. Signed-off-by: Joerg Roedel Cc: iommu@lists.linux-foundation.org Cc: bhavna.sarathy@amd.com Cc: Sebastian.Biemueller@amd.com Cc: robert.richter@amd.com Cc: joro@8bytes.org Signed-off-by: Ingo Molnar commit 6c56747b46717b4c6a890b35e8518f4be961dc7e Author: Joerg Roedel Date: Thu Jun 26 21:27:43 2008 +0200 x86, AMD IOMMU: add functions for mapping/unmapping the MMIO space This patch contains two functions to map and unmap the MMIO region of an IOMMU. Signed-off-by: Joerg Roedel Cc: iommu@lists.linux-foundation.org Cc: bhavna.sarathy@amd.com Cc: Sebastian.Biemueller@amd.com Cc: robert.richter@amd.com Cc: joro@8bytes.org Signed-off-by: Ingo Molnar commit ca7ed057ae25e5e60814f950995f22f051d2e449 Author: Joerg Roedel Date: Thu Jun 26 21:27:42 2008 +0200 x86, AMD IOMMU: add amd_iommu_init.c to Makefile This patch adds the source file amd_iommu_init.c to the kernel Makefile for the x86 architecture. Signed-off-by: Joerg Roedel Cc: iommu@lists.linux-foundation.org Cc: bhavna.sarathy@amd.com Cc: Sebastian.Biemueller@amd.com Cc: robert.richter@amd.com Cc: joro@8bytes.org Signed-off-by: Ingo Molnar commit 3e8064ba59128bcb1405079a0789b27b356832b9 Author: Joerg Roedel Date: Thu Jun 26 21:27:41 2008 +0200 x86, AMD IOMMU: add functions to find last possible PCI device for IOMMU This patch adds functions to find the last PCI bus/device/function the IOMMU driver has to handle. This information is used later to allocate the memory for the data structures. Signed-off-by: Joerg Roedel Cc: iommu@lists.linux-foundation.org Cc: bhavna.sarathy@amd.com Cc: Sebastian.Biemueller@amd.com Cc: robert.richter@amd.com Cc: joro@8bytes.org Signed-off-by: Ingo Molnar commit 928abd2545fe367ea3ff3cb8a5076e1d6d2a9574 Author: Joerg Roedel Date: Thu Jun 26 21:27:40 2008 +0200 x86, AMD IOMMU: add data structures to manage the IOMMUs in the system This patch adds the data structures which will contain the information read from the ACPI table. Signed-off-by: Joerg Roedel Cc: iommu@lists.linux-foundation.org Cc: bhavna.sarathy@amd.com Cc: Sebastian.Biemueller@amd.com Cc: robert.richter@amd.com Cc: joro@8bytes.org Signed-off-by: Ingo Molnar commit f6e2e6b6fc465bc3cc4eae8d53fcf573ca1cfa14 Author: Joerg Roedel Date: Thu Jun 26 21:27:39 2008 +0200 x86, AMD IOMMU: add defines and structures for ACPI scanning code This patch adds the required data structures and constants required to parse the ACPI table for the AMD IOMMU. Signed-off-by: Joerg Roedel Cc: iommu@lists.linux-foundation.org Cc: bhavna.sarathy@amd.com Cc: Sebastian.Biemueller@amd.com Cc: robert.richter@amd.com Cc: joro@8bytes.org Signed-off-by: Ingo Molnar commit 8d283c35a293e6091fdf7ef86842c1174c48a941 Author: Joerg Roedel Date: Thu Jun 26 21:27:38 2008 +0200 x86, AMD IOMMU: add header file for driver data structures and defines This patch adds a header file local to the AMD IOMMU driver with constants and data structures needed in the code. Signed-off-by: Joerg Roedel Cc: iommu@lists.linux-foundation.org Cc: bhavna.sarathy@amd.com Cc: Sebastian.Biemueller@amd.com Cc: robert.richter@amd.com Cc: joro@8bytes.org Signed-off-by: Ingo Molnar commit 2b188723ee1707ca902ddb98ce1decdeafb5190a Author: Joerg Roedel Date: Thu Jun 26 21:27:37 2008 +0200 x86, AMD IOMMU: add Kconfig entry This patch adds the Kconfig entry for the AMD IOMMU driver. Signed-off-by: Joerg Roedel Cc: iommu@lists.linux-foundation.org Cc: bhavna.sarathy@amd.com Cc: Sebastian.Biemueller@amd.com Cc: robert.richter@amd.com Cc: joro@8bytes.org Signed-off-by: Ingo Molnar commit 69776bf3a7263a4e47751f475d540b0f73bf8337 Author: Jaroslav Kysela Date: Fri Jun 27 10:11:58 2008 +0200 ALSA: Release v1.0.17rc3 Signed-off-by: Jaroslav Kysela commit 031005f78c8d0aebc17ddf7a34af9ffd48034d7d Author: Takashi Iwai Date: Thu Jun 26 14:49:58 2008 +0200 ALSA: hda - disable amp override on non-HP machines Some machines with Cx5045 seem to have no problem with the volume over 0dB on NID 0x17. Disable amp overrides for other devices but HP. Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit 4a3b6983232cd296ea260e06461d031f10065d63 Author: Takashi Iwai Date: Wed Jun 25 17:17:00 2008 +0200 ALSA: ymfpci - fix initial volume for 44.1kHz output YDSXGR_BUF441OUTVOL register isn't initialized properly. This may lead to a silent output at full volume of unchanged "Wave Playback Volume". http://bugzilla.kernel.org/show_bug.cgi?id=10963 Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit c7e0757a461db87157bbf92c4f5afda87cbe05f6 Author: Takashi Iwai Date: Thu Jun 26 14:42:51 2008 +0200 ALSA: hda - Add MacBook 3.1 support MacBook 3.1 is compatible with model=mbp3. Added the codec SSID 10b6:3600. Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit fa3d319ac6f648dc51cb672a31f482c80a8c2457 Author: Pavel Machek Date: Thu Jun 26 00:25:43 2008 +0200 pci-gart_64.c: could we get better explanation? Add better explanation to pci-gart. Signed-off-by: Pavel Machek Cc: Dave Jones Cc: Andi Kleen Cc: Trivial patch monkey Cc: Benjamin Herrenschmidt Signed-off-by: Ingo Molnar commit 15c8b6c1aaaf1c4edd67e2f02e4d8e1bd1a51c0d Author: Jens Axboe Date: Fri May 9 09:39:44 2008 +0200 on_each_cpu(): kill unused 'retry' parameter It's not even passed on to smp_call_function() anymore, since that was removed. So kill it. Acked-by: Jeremy Fitzhardinge Reviewed-by: Paul E. McKenney Signed-off-by: Jens Axboe commit 8691e5a8f691cc2a4fda0651e8d307aaba0e7d68 Author: Jens Axboe Date: Fri Jun 6 11:18:06 2008 +0200 smp_call_function: get rid of the unused nonatomic/retry argument It's never used and the comments refer to nonatomic and retry interchangably. So get rid of it. Acked-by: Jeremy Fitzhardinge Signed-off-by: Jens Axboe commit 490f5de52a87063fcb40e3b22f61b0779603ff6d Author: Jens Axboe Date: Tue Jun 10 20:52:59 2008 +0200 sh: convert to generic helpers for IPI function calls This converts sh to use the new helpers for smp_call_function() and friends, and adds support for smp_call_function_single(). Not tested, but it compiles. Acked-by: Paul Mundt Signed-off-by: Jens Axboe commit dbcf4787d816a4694ec83b5fde1a947c3ce74d57 Author: Jens Axboe Date: Tue Jun 10 20:50:56 2008 +0200 parisc: convert to generic helpers for IPI function calls This converts parisc to use the new helpers for smp_call_function() and friends, and adds support for smp_call_function_single(). Tested by Kyle, seems to work. Cc: Matthew Wilcox Cc: Grant Grundler Signed-off-by: Kyle McMartin Signed-off-by: Jens Axboe commit 2f304c0a0a55072b80957580f1b66256a615d8da Author: Jens Axboe Date: Tue Jun 17 10:45:23 2008 +0200 mips: convert to generic helpers for IPI function calls This converts mips to use the new helpers for smp_call_function() and friends, and adds support for smp_call_function_single(). Not tested, but it compiles. mips shares the same IPI for smp_call_function() and smp_call_function_single(), since not all mips platforms have enough available IPIs to support seperate setups. Cc: Ralf Baechle Signed-off-by: Jens Axboe commit 7b7426c8a615cf61df9a77b9df7d5b75d91e3fa0 Author: Jens Axboe Date: Tue Jun 10 20:49:30 2008 +0200 m32r: convert to generic helpers for IPI function calls This converts m32r to use the new helpers for smp_call_function() and friends, and adds support for smp_call_function_single(). Not tested, not even compiled. Cc: Hirokazu Takata Signed-off-by: Jens Axboe commit f6dd9fa5a75a3dae16c6843e74e56bf75be51c7c Author: Jens Axboe Date: Tue Jun 10 20:48:30 2008 +0200 arm: convert to generic helpers for IPI function calls This converts arm to use the new helpers for smp_call_function() and friends, and adds support for smp_call_function_single(). Fixups and testing done by Catalin Marinas Cc: Russell King Signed-off-by: Jens Axboe commit c524a1d8914408fd57241d9542fa2d402f004a33 Author: Jens Axboe Date: Tue Jun 10 20:47:29 2008 +0200 alpha: convert to generic helpers for IPI function calls This converts alpha to use the new helpers for smp_call_function() and friends, and adds support for smp_call_function_single(). Signed-off-by: Jens Axboe commit f27b433ef32a77c8cb76f018507453df7c03e552 Author: Jens Axboe Date: Thu Jun 26 11:22:30 2008 +0200 ia64: convert to generic helpers for IPI function calls This converts ia64 to use the new helpers for smp_call_function() and friends, and adds support for smp_call_function_single(). Cc: Tony Luck Signed-off-by: Jens Axboe commit b7d7a2404f80386307ccc0cde63d8d2a5e3bc85c Author: Jens Axboe Date: Thu Jun 26 11:22:13 2008 +0200 powerpc: convert to generic helpers for IPI function calls This converts ppc to use the new helpers for smp_call_function() and friends, and adds support for smp_call_function_single(). ppc loses the timeout functionality of smp_call_function_mask() with this change, as the generic code does not provide that. Acked-by: Paul Mackerras Signed-off-by: Jens Axboe commit 3b16cf874861436725c43ba0b68bdd799297be7c Author: Jens Axboe Date: Thu Jun 26 11:21:54 2008 +0200 x86: convert to generic helpers for IPI function calls This converts x86, x86-64, and xen to use the new helpers for smp_call_function() and friends, and adds support for smp_call_function_single(). Acked-by: Ingo Molnar Acked-by: Jeremy Fitzhardinge Signed-off-by: Jens Axboe commit 3d4422332711ef48ef0f132f1fcbfcbd56c7f3d1 Author: Jens Axboe Date: Thu Jun 26 11:21:34 2008 +0200 Add generic helpers for arch IPI function calls This adds kernel/smp.c which contains helpers for IPI function calls. In addition to supporting the existing smp_call_function() in a more efficient manner, it also adds a more scalable variant called smp_call_function_single() for calling a given function on a single CPU only. The core of this is based on the x86-64 patch from Nick Piggin, lots of changes since then. "Alan D. Brunelle" has contributed lots of fixes and suggestions as well. Also thanks to Paul E. McKenney for reviewing RCU usage and getting rid of the data allocation fallback deadlock. Acked-by: Ingo Molnar Reviewed-by: Paul E. McKenney Signed-off-by: Jens Axboe commit f82796214a95b1ec00c2f121c1080d10f2b099a1 Author: Kumar Gala Date: Thu Jun 26 02:01:37 2008 -0500 powerpc/booke: Add kprobes support for booke style processors This patch is based on work done by Madhvesh. R. Sulibhavi back in March 2007. We refactor some of the single step handling since it differs between "classic" and "booke" powerpc cores. Signed-off-by: Kumar Gala commit b76e59d1fb086c2fdac5d243e09786d6581f2026 Author: Kumar Gala Date: Thu Jun 26 01:57:58 2008 -0500 powerpc/kprobes: Some minor fixes * Mark __flush_icache_range as a function that can't be probed since its used by the kprobe code. * Fix an issue with single stepping and async exceptions. We need to ensure that we dont get an async exception (external, decrementer, etc) while we are attempting to single step the probe point. Added a check to ensure we only handle a single step if its really intended for the instruction in question. Signed-off-by: Kumar Gala commit 0729fbf3bc70870370b4f43d652f05a468dc68b8 Author: Paul E. McKenney Date: Wed Jun 25 12:24:52 2008 -0700 rcu: make rcutorture even more vicious: invoke RCU readers from irq handlers (timers) This patch allows torturing RCU from irq handlers (timers, in this case). A new module parameter irqreader enables such additional torturing, and is enabled by default. Variants of RCU that do not tolerate readers being called from irq handlers (e.g., SRCU) ignore irqreader. Signed-off-by: Paul E. McKenney Cc: josh@freedesktop.org Cc: dvhltc@us.ibm.com Cc: niv@us.ibm.com Cc: dino@in.ibm.com Cc: akpm@linux-foundation.org Cc: torvalds@linux-foundation.org Cc: vegard.nossum@gmail.com Cc: adobriyan@gmail.com Cc: oleg@tv-sign.ru Cc: bunk@kernel.org Cc: rjw@sisk.pl Signed-off-by: Ingo Molnar commit 9a13150109fb418c50fa400c012f90d0ce6f67c3 Merge: 3ccf79f... 543cf4c... Author: Ingo Molnar Date: Thu Jun 26 09:24:23 2008 +0200 Merge commit 'v2.6.26-rc8' into core/rcu commit 90b9e47671d561fdf2802aac4ac749b6c86405e0 Author: Jarkko Nikula Date: Wed Jun 25 14:58:47 2008 +0300 ALSA: ASoC: Add digital mic configuration to N810 machine driver Signed-off-by: Jarkko Nikula Signed-off-by: Liam Girdwood Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit ee15ffdb140b1a4fda5f6a3a8b9994031de5edb4 Author: Jarkko Nikula Date: Wed Jun 25 14:58:46 2008 +0300 ALSA: ASoC: TLV320AIC3X: Add support for digital microphone input AIC33 and AIC34 codecs in TLV320AIC3x family support digital microphone input. When enabled, the codec ADC takes bitstream input to low-pass filter from GPIO2 instead of its own delta-sigma modulator while providing oversampling clock through GPIO1. Signed-off-by: Jarkko Nikula Signed-off-by: Liam Girdwood Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit 81971a14947b344ee7f6e3781f7ef36d8996f57a Author: Jarkko Nikula Date: Wed Jun 25 14:58:45 2008 +0300 ALSA: ASoC: TLV320AIC3X: Modify only interface related bits in aic3x_set_dai_fmt Those two serial data interface control register bits have also other functions and they can be set before aic3x_set_dai_fmt is called. Signed-off-by: Jarkko Nikula Signed-off-by: Liam Girdwood Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit 0bd72a3d49fc9fcac0202e4a2f394c7ee82af914 Author: Jarkko Nikula Date: Wed Jun 25 14:42:08 2008 +0300 ALSA: ASoC: TLV320AIC3X: Use register modifier widget for mic bias Signed-off-by: Jarkko Nikula Signed-off-by: Liam Girdwood Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit e2be2ccf9416bb4e0eb5f851967e79261f41d7e5 Author: Jarkko Nikula Date: Wed Jun 25 14:42:07 2008 +0300 ALSA: ASoC: Add support for generic DAPM register modifier widget This generic register modifier widget is for updating multiple codec register bits at once when the widget changes its power state. Signed-off-by: Jarkko Nikula Signed-off-by: Liam Girdwood Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit a5c95e90c1baa9c1114875264bbd283526eb8377 Author: Mark Brown Date: Mon Jun 23 14:51:29 2008 +0100 ALSA: ASoC: Replace custom debug macros with pr_ equivalents Several ASoC codec drivers use custom macros equivalent to the standard pr_ macros, most of which are not actually used. Replace these custom macros with the standard ones. Signed-off-by: Mark Brown Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit 796d2ca84859d1fdb11ff06cd9707ffab5642fca Author: Richard Purdie Date: Mon Jun 23 14:51:28 2008 +0100 ALSA: ASoC: Add AK4535 driver The AK4535 codec is included in some HP iPAQ systems. This driver was originally written by Richard Purdie and with some bug fixes from Milan Plzik. While out of tree it has also had some mechanical updates for new APIs and current best practices from Liam Girdwood, Graeme Gregory and Mark Brown. Signed-off-by: Richard Purdie Signed-off-by: Milan Plzik Signed-off-by: Liam Girdwood Signed-off-by: Graeme Gregory Signed-off-by: Mark Brown Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit 627d3e7abca30d6e86787c98dd7cbac0233bc5a9 Author: Andreas Mohr Date: Mon Jun 23 11:50:47 2008 +0200 ALSA: PCI168 snd-azt3328: some more fixups - fix problem with codec register 0x6a being write-only by adding a software shadow register (caused annoying noise after module loading due to _toggling_ between gameport and audio bits instead of configuring them properly) - rename several "Wave" mixer controls to "PCM", since this is what Wine and several other apps are looking for (IOW, _requiring_) and this is what AC97 specs use as naming, too, thus I'd guess it's what these controls are - cleanup, small optimizations Signed-off-by: Andreas Mohr Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit 981bcead3f2279a1ec6fb5f2c57aff79ed61a700 Author: Pierre Ossman Date: Mon Jun 23 11:45:47 2008 +0200 ALSA: trident - pause s/pdif output Stop the S/PDIF DMA engine and output when the device is told to pause. It will keep on looping the current buffer contents if this isn't done. Signed-off-by: Pierre Ossman Tested-by: Rene Herman Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit 1d11604eebfc91204e3182b48d3d920f51b09d40 Author: Travis Place Date: Mon Jun 23 11:42:30 2008 +0200 ALSA: hda - Added SSID for 'Fujitsu Siemens Amilo M1451G' laptop Add the SSID for the "Fujitsu Siemens Amilo M1451G" laptop to patch_realtek.c , so that it uses ALC880_FUJITSU by default. Signed-off-by: Travis Place Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit 3e0e469fa216ec70c93b1593821b759d19ee2e6b Author: Travis Place Date: Fri Jun 20 16:51:45 2008 +0200 ALSA: hda - Added model selection for iMac 24" Added the SSID of a known iMac 24" to automatically use ALC885_IMAC24 quirk. Signed-off-by: Travis Place Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit eabe3228a80728a21f871ccc86c72c170ca1a2dc Author: Jaroslav Kysela Date: Thu Jun 26 08:51:31 2008 +0200 [ALSA] Revert "alsa: add annotations to bitwise type snd_pcm_hw_param_t" This reverts commit 36b34d2437104f323e09d7c6af6451d3c0b9c0cd. From: Al Viro WIW, *all* this stuff is not bitwise at all. For crying out loud, half of these types are routinely used as array indices and loop variables... If anything, we want a different set of allowed operations - subtraction between elements of type (yielding integer), addition/subtraction of integer types not bigger than ours (yielding our type), comparisons, assignments (=, +=, -=, passing to function as argument, return from function, initializers) and second/third arguments in ?:. With 0 *not* being allowed as a constant of such type. It's not bitwise; we may use the same infrastructure in sparse, but it should be a separate class of types (__attribute__((affine))). dma_addr_t is another candidate for the same treatment, but there we'll need helpers for conversions to hw-acceptable form (dma_to_le32(), etc.) and gradual conversion of drivers. ALSA ones and pm mess are absolutely straightforward cases, though. Signed-off-by: Jaroslav Kysela commit d14b3dd6190af7ce4f88be68f8df828af6d44584 Author: Anton Vorontsov Date: Thu Jun 12 03:42:14 2008 +0400 powerpc/QE: use arch_initcall to probe QUICC Engine GPIOs It was discussed that global arch_initcall() is preferred way to probe QE GPIOs, so let's use it. Signed-off-by: Anton Vorontsov Signed-off-by: Kumar Gala commit 2308c954f55eae9f165a5a59bbdb0a0c586afe5a Author: Vitaly Bordug Date: Thu Jun 12 04:30:13 2008 +0400 powerpc/85xx: Update pin setup for 8560ads Ports B and C pins programming is changed to get SCC2 UART and FCC3 ethernet work. Signed-off-by: Vitaly Bordug Signed-off-by: Kumar Gala commit d3c511ac1d72661fcf5f9c6f0ab60b889199a542 Author: Kumar Gala Date: Thu Jun 12 08:12:49 2008 -0500 powerpc/cpm: Remove !CONFIG_PPC_CPM_NEW_BINDING code Now that arch/ppc is gone we always define CONFIG_PPC_CPM_NEW_BINDING so we can remove all the code associated with !CONFIG_PPC_CPM_NEW_BINDING. Signed-off-by: Kumar Gala commit 0b2a2e5b7747f1f63bd86ca22b5c6097da5b2137 Author: Kumar Gala Date: Thu Jun 12 08:05:09 2008 -0500 cpm_uart: Remove !CONFIG_PPC_CPM_NEW_BINDING code Now that arch/ppc is gone we always define CONFIG_PPC_CPM_NEW_BINDING so we can remove all the code associated with !CONFIG_PPC_CPM_NEW_BINDING. Signed-off-by: Kumar Gala commit 0d8440657ef184907ac5add0b59c771ee8e8a77f Author: Kumar Gala Date: Thu Jun 12 07:53:48 2008 -0500 cpm_uart: fix whitespace issues Signed-off-by: Kumar Gala commit aba11fc50c925bbd6fb25d54eae2f86277a3b107 Author: Kumar Gala Date: Thu Jun 19 09:40:31 2008 -0500 powerpc/e500mc: flush L2 on NAP for e500mc If we have an L2CSR register (e500mc) we need to flush the L2 before going to nap. We use the HW flush mechanism provided in that register. The code reuses the CPU_FTR_604_PERF_MON bit as it is no longer used by any code in the kernel. Additionally we didn't reuse the exist L2CR feature bit as this is intended for the 7xxx L2CR register and L2CSR is part of the new Freescale "Book-E" registers. Signed-off-by: Kumar Gala commit fc4033b2f8b1482022bff3d05505a1b1631bb6de Author: Kumar Gala Date: Wed Jun 18 16:26:52 2008 -0500 powerpc/85xx: add DOZE/NAP support for e500 core The e500 core enter DOZE/NAP power-saving modes when the core go to cpu_idle routine. The power management default running mode is DOZE, If the user echo 1 > /proc/sys/kernel/powersave-nap the system will change to NAP running mode. Signed-off-by: Dave Liu Signed-off-by: Kumar Gala commit e4ec7a00ed30429030112e5591cf3138645727c2 Author: Jesse Barnes Date: Wed Jun 25 16:12:25 2008 -0700 PCI: correct resource number in debug output If pci_request_region fails, make the warning include the resource number, not the resource number + 1. commit 34438ba602f9b8904aafe7559046ea68e99e88a0 Author: Bjorn Helgaas Date: Fri Jun 13 10:52:13 2008 -0600 PCIE: port driver: use dev_printk when possible Convert printks to use dev_printk(). Signed-off-by: Bjorn Helgaas Signed-off-by: Jesse Barnes commit 531f254e5cdadb894f04ed27107cdb34c15817ea Author: Bjorn Helgaas Date: Fri Jun 13 10:52:12 2008 -0600 PCIE: aer: use dev_printk when possible Convert printks to use dev_printk(). Signed-off-by: Bjorn Helgaas Signed-off-by: Jesse Barnes commit 80ccba1186d48fa728dc4b1456cc07ffb07da501 Author: Bjorn Helgaas Date: Fri Jun 13 10:52:11 2008 -0600 PCI: use dev_printk when possible Convert printks to use dev_printk(). I converted pr_debug() to dev_dbg(). Both use KERN_DEBUG and are enabled only when DEBUG is defined. I converted printk(KERN_DEBUG) to dev_printk(KERN_DEBUG), not to dev_dbg(), because dev_dbg() is only enabled when DEBUG is defined. I converted DBG(KERN_INFO) (only in setup-bus.c) to dev_info(). The DBG() name makes it sound like debug, but it's been enabled forever, so dev_info() preserves the previous behavior. I tried to make the resource assignment formats more consistent, e.g., "BAR %d: got res [%#llx-%#llx] bus [%#llx-%#llx] flags %#lx\n" instead of sometimes using "start-end" and sometimes using "size@start". I'm not attached to one or the other; I'd just like them consistent. Signed-off-by: Bjorn Helgaas Signed-off-by: Jesse Barnes commit b86ec7ed2877f560ff069e8ed1b433a9005619c6 Author: Kenji Kaneshige Date: Fri Jun 20 11:54:06 2008 +0900 Remove unnecessary 'tmp' variable from pci_hp_register(). Signed-off-by: Kenji Kaneshige Signed-off-by: Jesse Barnes commit 563f119080b505076429b47722fbf6374b546fa7 Author: Kenji Kaneshige Date: Fri Jun 20 12:05:52 2008 +0900 pciehp: remove inline from command related functions The pcie_poll_cmd() and pcie_wait_cmd() are too large to be inlined. Signed-off-by: Kenji Kaneshige Signed-off-by: Jesse Barnes commit 66618bad123494beb30c0d590460e972e5b0977e Author: Kenji Kaneshige Date: Fri Jun 20 12:05:12 2008 +0900 pciehp: change command polling frequency Change command polling frequency to 100Hz from 10Hz in order to reduce the delay in the common case of a command completing quickly. Signed-off-by: Kenji Kaneshige Signed-off-by: Jesse Barnes commit 820943b6fc4781621dee52ba026106758a727dd3 Author: Kenji Kaneshige Date: Fri Jun 20 12:04:33 2008 +0900 pciehp: cleanup pcie_poll_cmd Cleanup pcie_poll_cmd(): check the slot status once before entering our completion test loop and convert the loop to a simpler while() block. Signed-off-by: Kenji Kaneshige Signed-off-by: Jesse Barnes commit b30dd56d1c3786fb0c4e442a58d9a2ea78eeabb9 Author: Kenji Kaneshige Date: Fri Jun 20 12:06:24 2008 +0900 pciehp: fix typo in hpc_release_ctlr Fix the typo in hpc_release_ctlr(). Signed-off-by: Kenji Kaneshige Signed-off-by: Jesse Barnes commit 65b943f630bc177b743ca05b4cb6defe8fcffa6e Author: Jesse Barnes Date: Wed Jun 25 15:27:34 2008 -0700 PCI: fixup kdoc blocks for hotplug functions A few warnings snuck in as parameters were added or renamed. Signed-off-by: Jesse Barnes commit 400d34944c4ad82a817c06e570bc93b1114aa596 Author: Jeremy Fitzhardinge Date: Mon Jun 16 04:30:03 2008 -0700 xen: add mechanism to extend existing multicalls Some Xen hypercalls accept an array of operations to work on. In general this is because its more efficient for the hypercall to the work all at once rather than as separate hypercalls (even batched as a multicall). This patch adds a mechanism (xen_mc_extend_args()) to allocate more argument space to the last-issued multicall, in order to extend its argument list. The user of this mechanism is xen/mmu.c, which uses it to extend the args array of mmu_update. This is particularly valuable when doing the update for a large mprotect, which goes via ptep_modify_prot_commit(), but it also manages to batch updates to pgd/pmds as well. Signed-off-by: Jeremy Fitzhardinge Acked-by: Linus Torvalds Acked-by: Hugh Dickins Signed-off-by: Ingo Molnar commit e57778a1e30470c9f5b79e370511b9af29b59c48 Author: Jeremy Fitzhardinge Date: Mon Jun 16 04:30:02 2008 -0700 xen: implement ptep_modify_prot_start/commit Xen has a pte update function which will update a pte while preserving its accessed and dirty bits. This means that ptep_modify_prot_start() can be implemented as a simple read of the pte value. The hardware may update the pte in the meantime, but ptep_modify_prot_commit() updates it while preserving any changes that may have happened in the meantime. The updates in ptep_modify_prot_commit() are batched if we're currently in lazy mmu mode. The mmu_update hypercall can take a batch of updates to perform, but this code doesn't make particular use of that feature, in favour of using generic multicall batching to get them all into the hypervisor. The net effect of this is that each mprotect pte update turns from two expensive trap-and-emulate faults into they hypervisor into a single hypercall whose cost is amortized in a batched multicall. Signed-off-by: Jeremy Fitzhardinge Acked-by: Linus Torvalds Acked-by: Hugh Dickins Signed-off-by: Ingo Molnar commit 08b882c627aeeeb3cfd3c4354f0d360d7949549d Author: Jeremy Fitzhardinge Date: Mon Jun 16 04:30:01 2008 -0700 paravirt: add hooks for ptep_modify_prot_start/commit This patch adds paravirt-ops hooks in pv_mmu_ops for ptep_modify_prot_start and ptep_modify_prot_commit. This allows the hypervisor-specific backends to implement these in some more efficient way. Signed-off-by: Jeremy Fitzhardinge Acked-by: Linus Torvalds Acked-by: Hugh Dickins Signed-off-by: Ingo Molnar commit 1ea0704e0da65b2b46f9142ff1391163aac24060 Author: Jeremy Fitzhardinge Date: Mon Jun 16 04:30:00 2008 -0700 mm: add a ptep_modify_prot transaction abstraction This patch adds an API for doing read-modify-write updates to a pte's protection bits which may race against hardware updates to the pte. After reading the pte, the hardware may asynchonously set the accessed or dirty bits on a pte, which would be lost when writing back the modified pte value. The existing technique to handle this race is to use ptep_get_and_clear() atomically fetch the old pte value and clear it in memory. This has the effect of marking the pte as non-present, which will prevent the hardware from updating its state. When the new value is written back, the pte will be present again, and the hardware can resume updating the access/dirty flags. When running in a virtualized environment, pagetable updates are relatively expensive, since they generally involve some trap into the hypervisor. To mitigate the cost of these updates, we tend to batch them. However, because of the atomic nature of ptep_get_and_clear(), it is inherently non-batchable. This new interface allows batching by giving the underlying implementation enough information to open a transaction between the read and write phases: ptep_modify_prot_start() returns the current pte value, and puts the pte entry into a state where either the hardware will not update the pte, or if it does, the updates will be preserved on commit. ptep_modify_prot_commit() writes back the updated pte, makes sure that any hardware updates made since ptep_modify_prot_start() are preserved. ptep_modify_prot_start() and _commit() must be exactly paired, and used while holding the appropriate pte lock. They do not protect against other software updates of the pte in any way. The current implementations of ptep_modify_prot_start and _commit are functionally unchanged from before: _start() uses ptep_get_and_clear() fetch the pte and zero the entry, preventing any hardware updates. _commit() simply writes the new pte value back knowing that the hardware has not updated the pte in the meantime. The only current user of this interface is mprotect Signed-off-by: Jeremy Fitzhardinge Acked-by: Linus Torvalds Acked-by: Hugh Dickins Signed-off-by: Ingo Molnar commit f6477cc76c73833a56e97f1fafc36a7ca92927e5 Merge: fd2c17e... 543cf4c... Author: Ingo Molnar Date: Wed Jun 25 12:36:55 2008 +0200 Merge branch 'linus' into x86/timers commit 8700600a74852d75eb965b969dcf9f58e2b32546 Merge: b8e0418... 543cf4c... Author: Ingo Molnar Date: Wed Jun 25 12:31:28 2008 +0200 Merge branch 'linus' into x86/nmi commit 607baf1f4ef94637ab0f7d0e258932851dc5c0a2 Merge: 064a32d... 543cf4c... Author: Ingo Molnar Date: Wed Jun 25 12:31:14 2008 +0200 Merge branch 'linus' into x86/memtest commit 0ed368c71aa65cba8d349432bd4dab4a9a2eb39c Merge: 7aaaec3... 543cf4c... Author: Ingo Molnar Date: Wed Jun 25 12:30:54 2008 +0200 Merge branch 'linus' into x86/kconfig commit cbd6712406a3ea861b49fbfd46e23cbf5f8e073f Merge: d939d28... 543cf4c... Author: Ingo Molnar Date: Wed Jun 25 12:30:49 2008 +0200 Merge branch 'linus' into x86/irq commit 48cf937f48f68bd1e61f37c6357dbff5adb95532 Merge: fce3966... 543cf4c... Author: Ingo Molnar Date: Wed Jun 25 12:30:33 2008 +0200 Merge branch 'linus' into x86/i8259 commit 037a6079eb925f7653bddf1501f777abcd4fc91e Merge: 0754557... 543cf4c... Author: Ingo Molnar Date: Wed Jun 25 12:30:26 2008 +0200 Merge branch 'linus' into x86/gart commit 8b7ef4ec5b1ac8b6feebf5ae9cda85a7514728f8 Merge: a1d5a86... 543cf4c... Author: Ingo Molnar Date: Wed Jun 25 12:30:21 2008 +0200 Merge branch 'linus' into x86/fixmap commit 28f73e51d0f64a5b896ad816ab8df6f3bcec5810 Merge: f3f3149... 543cf4c... Author: Ingo Molnar Date: Wed Jun 25 12:30:10 2008 +0200 Merge branch 'linus' into x86/delay Conflicts: arch/x86/kernel/tsc_32.c Signed-off-by: Ingo Molnar commit 1262b0088f3c1928c0487d4074c6cda11a8b78c6 Merge: 378fc6e... 543cf4c... Author: Ingo Molnar Date: Wed Jun 25 12:29:32 2008 +0200 Merge branch 'linus' into x86/cleanups commit 37f5d732f34fa099676b2c52b8a57bab01a011de Merge: ed9e499... 543cf4c... Author: Ingo Molnar Date: Wed Jun 25 12:29:02 2008 +0200 Merge branch 'linus' into tracing/sysprof commit f4628e644c34d9e6242ea18487b2ed58ee04e3eb Merge: cb9aa97... 543cf4c... Author: Ingo Molnar Date: Wed Jun 25 12:28:47 2008 +0200 Merge branch 'linus' into tracing/mmiotrace-mergefixups commit 97e6722b8d6b5880c4d5751127d5083b1b7df27d Merge: f22f9a8... 543cf4c... Author: Ingo Molnar Date: Wed Jun 25 12:27:56 2008 +0200 Merge branch 'linus' into tracing/ftrace commit 773dc8eacaedb2e8c8d0defb5de2c66ea7dc4a08 Merge: 961ccdd... 543cf4c... Author: Ingo Molnar Date: Wed Jun 25 12:27:05 2008 +0200 Merge branch 'linus' into sched/new-API-sched_setscheduler commit f57aec5a871907427060196f6bac3d0011b38450 Merge: 1de8644... 543cf4c... Author: Ingo Molnar Date: Wed Jun 25 12:26:59 2008 +0200 Merge branch 'linus' into sched/devel Conflicts: kernel/sched_rt.c Signed-off-by: Ingo Molnar commit ace7f1b79670aa0c1d9f4b0442be82e565827333 Merge: a60b33c... 543cf4c... Author: Ingo Molnar Date: Wed Jun 25 12:23:59 2008 +0200 Merge branch 'linus' into core/softirq commit d02859ecb321c8c0f74cb9bbe3f51a59e58822b0 Merge: a987b16... 543cf4c... Author: Ingo Molnar Date: Wed Jun 25 12:16:51 2008 +0200 Merge commit 'v2.6.26-rc8' into x86/xen Conflicts: arch/x86/xen/enlighten.c arch/x86/xen/mmu.c Signed-off-by: Ingo Molnar commit 378fc6eedc0091cc5ba65b298b8967bd2d43df5d Author: WANG Cong Date: Tue Jun 24 16:21:18 2008 +0100 x86: arch/x86/kernel/machine_kexec_32.c: remove extra semicolons I can't see any reason to keep these semicolons. Signed-off-by: WANG Cong Signed-off-by: Ingo Molnar commit feda4f2c190f4efc101857935db0917ff3e4e23d Author: Dominik Brodowski Date: Tue Jun 24 15:45:55 2008 +0200 pcmcia: allow for longer CIS firmware files Don't be more zealous with memory than the firmware class core. Signed-off-by: Dominik Brodowski commit 8b5332f6994e34f2b400b25975760da709bbaa63 Author: Jonathan Corbet Date: Thu Jun 19 14:34:41 2008 -0600 pcmcia: cm40x0 cdev lock_kernel() pushdown Signed-off-by: Jonathan Corbet Signed-off-by: Dominik Brodowski commit 4aeba0134f1e54cfd881e118b039ab6ed8b99126 Author: Dominik Brodowski Date: Fri Jun 20 13:24:31 2008 +0200 pcmcia: (re)move {pcmcia,pccard}_get_status Except for one debug message in a driver marked BROKEN, pcmcia_get_status is only used by the ioctl. Therefore, move it to pcmcia_ioctl.c and unexport it. Signed-off-by: Dominik Brodowski commit 6351a71cfae2839cf6e63329d3d85eb46a4bc2c7 Author: Adrian Bunk Date: Thu Apr 17 12:36:54 2008 +0300 pcmcia: kill IN_CARD_SERVICES IN_CARD_SERVICES was #define'd but not used, so let's remove it. Signed-off-by: Adrian Bunk Signed-off-by: Dominik Brodowski commit b453917ac45d6077955c096d8d5503754b0c13b4 Author: Magnus Damm Date: Wed Dec 13 15:36:13 2006 +0900 pcmcia: Remove unused header file code pcmcia: Remove unused header file code Signed-off-by: Magnus Damm Signed-off-by: Dominik Brodowski commit ae49ec9258b1ba0456f5d2e9024d0e4742a0188b Author: Magnus Damm Date: Thu Jun 19 20:49:41 2008 +0200 pcmcia: remove unused bulkmem.h The code in include/pcmcia/bulkmem.h was only kept for compatibility reasons. Therefore, move the remaining region_info_t definition to ds.h [linux@dominikbrodowski.net: do not modify the IOCTL, move definition to ds.h, and update changelog] Signed-off-by: Magnus Damm Signed-off-by: Dominik Brodowski commit c5081d5f4775b2a3f858f91151bbf9163e473075 Author: Dominik Brodowski Date: Thu Jun 19 20:12:34 2008 +0200 pcmcia: simplify pccard_validate_cis As cisinfo_t only contains one unsigned_int, pccard_validate_cis can be simplified by passing that around directly. Signed-off-by: Dominik Brodowski commit c502380170ee93fd1f4028cc1f32efc87fde7376 Author: Dominik Brodowski Date: Thu Jun 19 19:02:52 2008 +0200 pcmcia: carve out ioctl adjust function to pcmcia_ioctl Let pcmcia_ioctl interact with rsrc_nonstatic using functions which rsrc_nonstatic.c has to use anyway. Signed-off-by: Dominik Brodowski commit 635416ef393e8cec5a89fc6c1de710ee9596a51e Author: Alan Cox Date: Mon Jun 16 14:35:15 2008 +0200 pcmcia: irq probe can be done without risking an IRQ storm Nowdays you can ask for an IRQ to be allocated but not enabled, when PCMCIA was written this was not true and this feature is thus not used [linux@dominikbrodowski.net: add comment and ifdef to avoid compilation breakage at least on alpha] Signed-off-by: Alan Cox Signed-off-by: Andrew Morton Signed-off-by: Dominik Brodowski commit 05f43d48ddbda0ce74941aff4711a1829116cc4f Author: Alex Harford Date: Sun Jun 15 10:34:25 2008 -0700 pcmcia: Fix ti12xx_2nd_slot_empty always failing For TI 1520 and others, ti12xx_2nd_slot_empty was reading card detect from the wrong slot, and always failing. Signed-off-by: Alex Harford Signed-off-by: Dominik Brodowski commit c1ac02280d76de7aba8a9d43638d0f7d1fd0f820 Author: Dominik Brodowski Date: Sat Jun 14 18:51:06 2008 +0200 pcmcia: check for pointer instead of pointer address Bug noted by Michael Buesch: checking for the pointer address is always true. This didn't matter much, for the very first check in pcmcia_release_window() was for the pointer pointing to something, and the return value is ignored here. Nonetheless, fix it. CC: Michael Buesch Signed-off-by: Dominik Brodowski commit 4cf974c57633e70a8d48f9d40e41cf192c6e062c Author: Alan Cox Date: Sat Jun 14 16:01:57 2008 +0200 pcmcia: switch cm4000_cs.c to unlocked_ioctl Push the BKL down and use unlocked_ioctl. Signed-off-by: Alan Cox Cc: Harald Welte Signed-off-by: Andrew Morton Signed-off-by: Dominik Brodowski commit 7d5789616dd3090fe8486fbb849da3e9d9f36bb9 Author: David Brownell Date: Thu Jun 12 12:13:55 2008 -0700 pcmcia: simplify rsrc_nonstatic attributes Simplify sysfs attribute registration for sockets without static resource mappings by using an attribute_group. This shrinks object size a bit: use loops in sysfs code, but have more data. Signed-off-by: David Brownell Signed-off-by: Dominik Brodowski commit 785e821eb679c171f453722f15c6791de0c1abe1 Author: Michael Hennerich Date: Wed Jun 11 09:06:16 2008 +0200 pcmcia: add support CompactFlash PCMCIA support for Blackfin. A new host driver to add CompactFlash PCMCIA support for Blackfin. [akpm@linux-foundation.org: coding-style fixes] Signed-off-by: Michael Hennerich Signed-off-by: Bryan Wu Cc: Mike Frysinger Signed-off-by: Andrew Morton Signed-off-by: Dominik Brodowski commit 0478cf269974e0c7d98f5c5eed815ffb958ddee6 Author: Dominik Brodowski Date: Thu May 29 10:42:16 2008 +0200 pcmcia: remove version.h pcmcia/version.h is empty and its existence is not even needed by deprecated userspace tools. CC: David Sterba Signed-off-by: Jiri Kosina Signed-off-by: Dominik Brodowski commit 0b402094199762dde81bee8c32d323cf52f2c6e7 Author: Christoph Hellwig Date: Sun Apr 22 13:55:36 2007 +0100 pcmcia: cs: kill thread_wait There is not reason to have a waitqueue if it's always the same thread that is waiting for it. Just use wake_up_process instead. Signed-off-by: Christoph Hellwig Small modification: Also remove unused variable. Signed-off-by: Dominik Brodowski commit 2df697036ba69ea99b73a2dbf82dcc8fec62d4ab Author: Leonardo Potenza Date: Tue Apr 1 23:47:09 2008 +0200 pcmcia: i82365.c: check request_irq return value Add a check for the request_irq() return value. Signed-off-by: Leonardo Potenza Signed-off-by: Dominik Brodowski commit b3363997a62d67f76f388c629673094935209d16 Author: Sergei Shtylyov Date: Mon Apr 14 17:27:30 2008 +0400 pcmcia: fix Alchemy warnings Fix the following warnings: drivers/pcmcia/au1000_generic.c: In function `au1x00_pcmcia_socket_probe': drivers/pcmcia/au1000_generic.c:405: warning: integer constant is too large for "long" type drivers/pcmcia/au1000_generic.c:413: warning: integer constant is too large for "long" type by properly postfixing the socket constants. While at it, fix the lines over 80 characters long in the vicinity... Signed-off-by: Sergei Shtylyov Acked-by: Ralf Baechle Signed-off-by: Dominik Brodowski commit f36fe2b90fe93e2f586b24f42413bf8cfad8f626 Author: Adrian Bunk Date: Tue May 20 01:02:40 2008 +0300 pcmcia: remove CVS keywords This patch removes CVS keywords that weren't updated for a long time from comments. Signed-off-by: Adrian Bunk Signed-off-by: Dominik Brodowski commit 14540c6dfd8d342a5e897da8763a77a145e40acd Author: Roel Kluin <12o3l@tiscali.nl> Date: Wed Jan 30 15:28:16 2008 +0100 pcmcia: yenta-cardbus: ENE_TEST_C9_PFENABLE duplicate *_F0 The test only makes sense if we check for _F0 and _F1. Signed-off-by: Roel Kluin <12o3l@tiscali.nl> CC: Daniel Ritz Signed-off-by: Dominik Brodowski commit cbba0de2f8e4d9bef521d092711a3c8625f7791b Author: Magnus Damm Date: Wed Dec 13 15:40:18 2006 +0900 pcmcia: Update email address for m8xx driver author Update the m8xx driver's author email address. Signed-off-by: Magnus Damm Signed-off-by: Dominik Brodowski commit b664d6bbeeddc77b93f5fea16006b428054f1cd1 Author: Robert Richter Date: Tue Jun 24 12:31:05 2008 +0200 x86: add X86_FEATURE_IBS cpu feature This adds IBS to the cpu feature flags allowing Perfmon and OProfile to use cpu_has(). Signed-off-by: Robert Richter Signed-off-by: Ingo Molnar commit f3f3149f35b9195ef4b761b1353fc0766b5f53be Author: Alok Kataria Date: Mon Jun 23 18:21:56 2008 -0700 x86: use cpu_khz for loops_per_jiffy calculation, cleanup As suggested by Ingo, remove all references to tsc from init/calibrate.c TSC is x86 specific, and using tsc in variable names in a generic file should be avoided. lpj_tsc is now called lpj_fine, since it is related to fine tuning of lpj value. Also tsc_rate_* is called timer_rate_* Signed-off-by: Alok N Kataria Cc: Arjan van de Ven Cc: Daniel Hecht Cc: Tim Mann Cc: Zach Amsden Cc: Sahil Rihan Signed-off-by: Ingo Molnar commit 93e1ade5382206d597e9d6de2d1383e69f54d064 Author: Vegard Nossum Date: Sun Jun 22 09:40:18 2008 +0200 x86/oprofile: disable preemption in nmi_shutdown fix: BUG: using smp_processor_id() in preemptible [00000000] code: oprofiled/27301 caller is nmi_shutdown+0x11/0x60 Pid: 27301, comm: oprofiled Not tainted 2.6.26-rc7 #25 [] debug_smp_processor_id+0xbd/0xc0 [] nmi_shutdown+0x11/0x60 [] oprofile_shutdown+0x2a/0x60 Note that we don't need this for the other functions, since they are all called with on_each_cpu() (which disables preemption for us anyway). Signed-off-by: Vegard Nossum Cc: Philippe Elie Cc: oprofile-list@lists.sf.net Cc: Johannes Weiner Signed-off-by: Ingo Molnar commit a033c332e047397904ed74816946b2edd9b0d5cd Author: Li Zefan Date: Mon Jun 23 10:52:42 2008 +0800 lockdep: remove duplicate definition of STATIC_LOCKDEP_MAP_INIT STATIC_LOCKDEP_MAP_INIT is defined twice in lockdep.h. I guess it's a copy & paste. Signed-off-by: Li Zefan Cc: Peter Zijlstra Signed-off-by: Ingo Molnar commit 3ccf79f4570acacfefc51772e8f9207895b35ad7 Author: Paul E. McKenney Date: Sun Jun 22 14:02:55 2008 -0700 rcu: make quiescent rcutorture less power-hungry This patch aligns the rcutorture wakeup times to align with all other multiple-of-a-second wakeups to further decrease power consumption. Suggested-by: Arjan van de Ven Signed-off-by: Paul E. McKenney Cc: josh@freedesktop.org Cc: dvhltc@us.ibm.com Cc: niv@us.ibm.com Cc: dino@in.ibm.com Cc: akpm@linux-foundation.org Cc: torvalds@linux-foundation.org Cc: vegard.nossum@gmail.com Cc: adobriyan@gmail.com Cc: oleg@tv-sign.ru Cc: bunk@kernel.org Cc: rjw@sisk.pl Signed-off-by: Ingo Molnar commit e3d7be270c5b1be07ffadcc8b56599ad8e975c1d Author: Paul E. McKenney Date: Sun Jun 22 13:06:38 2008 -0700 rcu, rcutorture: make quiescent rcutorture less power-hungry Signed-off-by: Paul E. McKenney Cc: josh@freedesktop.org Cc: dvhltc@us.ibm.com Cc: niv@us.ibm.com Cc: dino@in.ibm.com Cc: akpm@linux-foundation.org Cc: torvalds@linux-foundation.org Cc: vegard.nossum@gmail.com Cc: adobriyan@gmail.com Cc: oleg@tv-sign.ru Cc: bunk@kernel.org Cc: rjw@sisk.pl Signed-off-by: Ingo Molnar commit 33af9039cbf629041da2bfa0cf451208391a1ec3 Author: Andreas Herrmann Date: Fri Jun 20 22:08:37 2008 +0200 x86: pat.c final cleanup of loop body in reserve_memtype Signed-off-by: Andreas Herrmann Cc: Venkatesh Pallipadi Cc: Suresh B Siddha Signed-off-by: Ingo Molnar commit 64fe44c38bbdfab4fe052029058ce5fe9804de68 Author: Andreas Herrmann Date: Fri Jun 20 22:07:09 2008 +0200 x86: pat.c introduce function to check for conflicts with existing memtypes ... to strip down loop body in reserve_memtype. Signed-off-by: Andreas Herrmann Cc: Venkatesh Pallipadi Cc: Suresh B Siddha Signed-off-by: Ingo Molnar commit f6887264deba4cd991f0ca006918dcff4c939021 Author: Andreas Herrmann Date: Fri Jun 20 22:05:37 2008 +0200 x86: pat.c consolidate list_add handling in reserve_memtype Signed-off-by: Andreas Herrmann Cc: Venkatesh Pallipadi Cc: Suresh B Siddha Signed-off-by: Ingo Molnar commit 3e9c83b309fd7cbf1d9b801d0d5877c040e30420 Author: Andreas Herrmann Date: Fri Jun 20 22:04:02 2008 +0200 x86: pat.c consolidate error/debug messages in reserve_memtype ... and move last debug message out of locked section. Signed-off-by: Andreas Herrmann Cc: Venkatesh Pallipadi Cc: Suresh B Siddha Signed-off-by: Ingo Molnar commit 69e26be9b1d0c83d3581475095ce2a1ccc578215 Author: Andreas Herrmann Date: Fri Jun 20 22:03:06 2008 +0200 x86: pat.c more trivial changes - add BUG statement to catch invalid start and end parameters - No need to track the actual type in both req_type and actual_type -- keep req_type unchanged. - removed (IMHO) superfluous comments Signed-off-by: Andreas Herrmann Cc: Venkatesh Pallipadi Cc: Suresh B Siddha Signed-off-by: Ingo Molnar commit ac97991ec9e0a05c8860f4a04f8477227b1c03f2 Author: Andreas Herrmann Date: Fri Jun 20 22:01:49 2008 +0200 x86: pat.c choose more crisp variable names - parse/ml => entry (within list_for_each and friends) - new_entry => new - ret_type => new_type (to avoid confusion with req_type) (... to make it more readable...) Signed-off-by: Andreas Herrmann Cc: Venkatesh Pallipadi Cc: Suresh B Siddha Signed-off-by: Ingo Molnar commit bcc643dc287cb732e96a1685ac130c3ae8b1c960 Author: Andreas Herrmann Date: Fri Jun 20 21:58:46 2008 +0200 x86: introduce macro to check whether an address range is in the ISA range Signed-off-by: Andreas Herrmann Cc: Venkatesh Pallipadi Cc: Suresh B Siddha Signed-off-by: Ingo Molnar commit 6ff10de374cc68ff2024247793176dc8a1b317ea Author: Ingo Molnar Date: Tue Jun 24 01:19:49 2008 +0200 x86: fix "x86: use cpu_khz for loops_per_jiffy calculation" fix: arch/x86/kernel/tsc_32.c: In function ‘tsc_init': arch/x86/kernel/tsc_32.c:421: error: ‘lpj_tsc' undeclared (first use in this function) arch/x86/kernel/tsc_32.c:421: error: (Each undeclared identifier is reported only once arch/x86/kernel/tsc_32.c:421: error: for each function it appears in.) Signed-off-by: Ingo Molnar commit cd1a28e8457e6ebf72c48d84d4e736307e86436e Author: Huang, Ying Date: Mon Jun 23 11:20:54 2008 +0800 lockdep: add lock_class information to lock_chain and output it It is based on x86/master branch of git-x86 tree, and has been tested on x86_64 platform. ChangeLog: v2: - Enclosing proc file system related code into CONFIG_PROVE_LOCKING. - Fix nr_chain_hlocks update code. Signed-off-by: Huang Ying Cc: Peter Zijlstra Signed-off-by: Ingo Molnar commit 961ccddd59d627b89bd3dc284b6517833bbdf25d Author: Rusty Russell Date: Mon Jun 23 13:55:38 2008 +1000 sched: add new API sched_setscheduler_nocheck: add a flag to control access checks Hidehiro Kawai noticed that sched_setscheduler() can fail in stop_machine: it calls sched_setscheduler() from insmod, which can have CAP_SYS_MODULE without CAP_SYS_NICE. Two cases could have failed, so are changed to sched_setscheduler_nocheck: kernel/softirq.c:cpu_callback() - CPU hotplug callback kernel/stop_machine.c:__stop_machine_run() - Called from various places, including modprobe() Signed-off-by: Rusty Russell Cc: Jeremy Fitzhardinge Cc: Hidehiro Kawai Cc: Andrew Morton Cc: linux-mm@kvack.org Cc: sugita Cc: Satoshi OSHIMA Signed-off-by: Ingo Molnar commit 3da757daf86e498872855f0b5e101f763ba79499 Author: Alok Kataria Date: Fri Jun 20 15:06:33 2008 -0700 x86: use cpu_khz for loops_per_jiffy calculation On the x86 platform we can use the value of tsc_khz computed during tsc calibration to calculate the loops_per_jiffy value. Its very important to keep the error in lpj values to minimum as any error in that may result in kernel panic in check_timer. In virtualization environment, On a highly overloaded host the guest delay calibration may sometimes result in errors beyond the ~50% that timer_irq_works can handle, resulting in the guest panicking. Does some formating changes to lpj_setup code to now have a single printk to print the bogomips value. We do this only for the boot processor because the AP's can have different base frequencies or the BIOS might boot a AP at a different frequency. Signed-off-by: Alok N Kataria Cc: Arjan van de Ven Cc: Daniel Hecht Cc: Tim Mann Cc: Zach Amsden Cc: Sahil Rihan Signed-off-by: Ingo Molnar commit f22f9a89ce6857d377bf22dba4c1a8cd256c5136 Author: Abhishek Sagar Date: Sat Jun 21 23:50:29 2008 +0530 ftrace: avoid modifying kprobe'd records Avoid modifying the mcount call-site if there is a kprobe installed on it. These records are not marked as failed however. This allowed the filter rules on them to remain up-to-date. Whenever the kprobe on the corresponding record is removed, the record gets updated as normal. Signed-off-by: Abhishek Sagar Cc: Steven Rostedt Signed-off-by: Ingo Molnar commit ecea656d1d5e912d2f3d332657ea4a6d8380f891 Author: Abhishek Sagar Date: Sat Jun 21 23:47:53 2008 +0530 ftrace: freeze kprobe'd records Let records identified as being kprobe'd be marked as "frozen". The trouble with records which have a kprobe installed on their mcount call-site is that they don't get updated. So if such a function which is currently being traced gets its tracing disabled due to a new filter rule (or because it was added to the notrace list) then it won't be updated and continue being traced. This patch allows scanning of all frozen records during tracing to check if they should be traced. Signed-off-by: Abhishek Sagar Cc: Steven Rostedt Signed-off-by: Ingo Molnar commit 785656a41f9a9c0e843a23d1ae05d900b5158f8f Author: Abhishek Sagar Date: Sat Jun 21 23:47:39 2008 +0530 kprobes: enable clean usage of get_kprobe Allow clean use of get_kprobe() outside of core kprobe code. Ftrace makes use of get_kprobe to identify probes installed on mcount call-sites. Signed-off-by: Abhishek Sagar Acked-by: Ananth N Mavinakayanahalli Cc: Masami Hiramatsu Cc: jkenisto@us.ibm.com Cc: Steven Rostedt Signed-off-by: Ingo Molnar commit 395a59d0f8e86bb39cd700c3d185d30c670bb958 Author: Abhishek Sagar Date: Sat Jun 21 23:47:27 2008 +0530 ftrace: store mcount address in rec->ip Record the address of the mcount call-site. Currently all archs except sparc64 record the address of the instruction following the mcount call-site. Some general cleanups are entailed. Storing mcount addresses in rec->ip enables looking them up in the kprobe hash table later on to check if they're kprobe'd. Signed-off-by: Abhishek Sagar Cc: davem@davemloft.net Cc: Steven Rostedt Signed-off-by: Ingo Molnar commit 0754557d72c1fbfc5fcfd5235e7c23ae6f77248c Author: Yinghai Lu Date: Sat Jun 21 03:50:47 2008 -0700 x86: change early_gart_iommu_check() back to any_mapped Kevin Winchester reported a GART related direct rendering failure against linux-next-20080611, which shows up via these log entries: PCI: Using ACPI for IRQ routing PCI: Cannot allocate resource region 0 of device 0000:00:00.0 agpgart: Detected AGP bridge 0 agpgart: Aperture conflicts with PCI mapping. agpgart: Aperture from AGP @ e0000000 size 128 MB agpgart: Aperture conflicts with PCI mapping. agpgart: No usable aperture found. agpgart: Consider rebooting with iommu=memaper=2 to get a good aperture. instead of the expected: PCI: Using ACPI for IRQ routing agpgart: Detected AGP bridge 0 agpgart: Aperture from AGP @ e0000000 size 128 MB Kevin bisected it down to this change in tip/x86/gart: "x86: checking aperture size order". agp check is using request_mem_region(), and could fail if e820 is reserved... change it back to e820_any_mapped(). Reported-and-bisected-by: "Kevin Winchester" Signed-off-by: Yinghai Lu Tested-by: Kevin Winchester Signed-off-by: Ingo Molnar commit 009b9fc98ddd83f9139fdabb12c0d7a8535d5421 Merge: 3711ccb... 481c534... Author: Ingo Molnar Date: Mon Jun 23 11:53:03 2008 +0200 Merge branch 'linus' into x86/threadinfo commit 1de8644cc7c826e0c41e52825bd5a12e2e31e6ca Merge: 6c3df25... 481c534... Author: Ingo Molnar Date: Mon Jun 23 11:30:23 2008 +0200 Merge branch 'linus' into sched/devel commit 1e74f9cbbba5348a6c58988cce0f19d6ef887cc8 Merge: 31a72bc... 481c534... Author: Ingo Molnar Date: Mon Jun 23 11:29:11 2008 +0200 Merge branch 'linus' into core/rcu commit f34bfb1beef8a17ba3d46b60f8fa19ffedc1ed8d Merge: ee4311a... 481c534... Author: Ingo Molnar Date: Mon Jun 23 11:11:42 2008 +0200 Merge branch 'linus' into tracing/ftrace commit a60b33cf59d1c9e0e363287fce799cb23d45660c Merge: 0f476b6... 481c534... Author: Ingo Molnar Date: Mon Jun 23 10:52:59 2008 +0200 Merge branch 'linus' into core/softirq commit 009b47dfc732781d23fd848c101d2aad743844b0 Author: Lennert Buytenhek Date: Sun Jun 22 22:45:10 2008 +0200 [ARM] mv78xx0: add defconfig Signed-off-by: Lennert Buytenhek commit 794d15b25df5dda10efba600d6dd6cd74a7aa9cb Author: Stanislav Samsonov Date: Sun Jun 22 22:45:10 2008 +0200 [ARM] add Marvell 78xx0 ARM SoC support The Marvell Discovery Duo (MV78xx0) is a family of ARM SoCs featuring (depending on the model) one or two Feroceon CPU cores with 512K of L2 cache and VFP coprocessors running at (depending on the model) between 800 MHz and 1.2 GHz, and features a DDR2 controller, two PCIe interfaces that can each run either in x4 or quad x1 mode, three USB 2.0 interfaces, two 3Gb/s SATA II interfaces, a SPI interface, two TWSI interfaces, a crypto accelerator, IDMA/XOR engines, a SPI interface, four UARTs, and depending on the model, two or four gigabit ethernet interfaces. This patch adds basic support for the platform, and allows booting on the MV78x00 development board, with functional UARTs, SATA, PCIe, GigE and USB ports. Signed-off-by: Stanislav Samsonov Signed-off-by: Lennert Buytenhek commit a9311cfed241ebcd6b5f9be5c8c6d519bf22f9e7 Author: Lennert Buytenhek Date: Sun Jun 22 22:45:09 2008 +0200 [ARM] Orion: PCIe x4/x1 detection support The Discovery Duo (MV78xx0) has two x4 PCIe ports which can either be used in x4 mode or in quad x1 mode. This patch adds an accessor function to the generic plat-orion PCIe handling code to detect in which of the two modes we're running (which is determined by strap pins and/or configured by the bootloader). Signed-off-by: Lennert Buytenhek commit 0a17c7bc0b81e4556eea08c7e27923e5534d3c25 Author: Lennert Buytenhek Date: Sun Jun 22 22:45:08 2008 +0200 [ARM] Feroceon: 88fr571-vd support Add support for the Feroceon 88fr571-vd CPU core as found in e.g. the Marvell Discovery Duo family of ARM SoCs. Signed-off-by: Lennert Buytenhek commit 9307f05c772e37e7f71b521d1d63c4560f44d476 Author: Saeed Bishara Date: Sun Jun 22 22:45:07 2008 +0200 [ARM] Kirkwood: add defconfig Signed-off-by: Lennert Buytenhek commit 651c74c74bf84ba966b52588ba3329606f3fd8d4 Author: Saeed Bishara Date: Sun Jun 22 22:45:06 2008 +0200 [ARM] add Marvell Kirkwood (88F6000) SoC support The Marvell Kirkwood (88F6000) is a family of ARM SoCs based on a Shiva CPU core, and features a DDR2 controller, a x1 PCIe interface, a USB 2.0 interface, a SPI controller, a crypto accelerator, a TS interface, and IDMA/XOR engines, and depending on the model, also features one or two Gigabit Ethernet interfaces, two SATA II interfaces, one or two TWSI interfaces, one or two UARTs, a TDM/SLIC interface, a NAND controller, an I2S/SPDIF interface, and an SDIO interface. This patch adds supports for the Marvell DB-88F6281-BP Development Board and the RD-88F6192-NAS and the RD-88F6281 Reference Designs, enabling support for the PCIe interface, the USB interface, the ethernet interfaces, the SATA interfaces, the TWSI interfaces, the UARTs, and the NAND controller. Signed-off-by: Saeed Bishara Signed-off-by: Lennert Buytenhek commit 9c2af6c57c4a253b595b5eef1b665989b5f15de5 Author: Lennert Buytenhek Date: Sun Jun 22 22:45:05 2008 +0200 [ARM] Feroceon: 88fr131 support Add support for the Shiva 88fr131 CPU core as found in e.g. the Marvell Kirkwood family of ARM SoCs. Signed-off-by: Lennert Buytenhek commit 99c6dc117d27d6259214812bd0b113aaf467f600 Author: Lennert Buytenhek Date: Sun Jun 22 22:45:04 2008 +0200 [ARM] Feroceon: L2 cache support This patch adds support for the unified Feroceon L2 cache controller as found in e.g. the Marvell Kirkwood and Marvell Discovery Duo families of ARM SoCs. Note that: - Page table walks are outer uncacheable on Kirkwood and Discovery Duo, since the ARMv5 spec provides no way to indicate outer cacheability of page table walks (specifying it in TTBR[4:3] is an ARMv6+ feature). This requires adding L2 cache clean instructions to proc-feroceon.S (dcache_clean_area(), set_pte()) as well as to tlbflush.h ({flush,clean}_pmd_entry()). The latter case is handled by defining a new TLB type (TLB_FEROCEON) which is almost identical to the v4wbi one but provides a TLB_L2CLEAN_FR flag. - The Feroceon L2 cache controller supports L2 range (i.e. 'clean L2 range by MVA' and 'invalidate L2 range by MVA') operations, and this patch uses those range operations for all Linux outer cache operations, as they are faster than the regular per-line operations. L2 range operations are not interruptible on this hardware, which avoids potential livelock issues, but can be bad for interrupt latency, so there is a compile-time tunable (MAX_RANGE_SIZE) which allows you to select the maximum range size to operate on at once. (Valid range is between one cache line and one 4KiB page, and must be a multiple of the line size.) Signed-off-by: Lennert Buytenhek commit 836a8051d54525e0782f156dcfa3c13d30f22840 Author: Stanislav Samsonov Date: Tue Jun 3 11:24:40 2008 +0300 [ARM] Feroceon: L1 cache range operation support This patch adds support for the L1 D cache range operations that are supported by the Marvell Discovery Duo and Marvell Kirkwood ARM SoCs. Signed-off-by: Stanislav Samsonov Acked-by: Saeed Bishara Reviewed-by: Nicolas Pitre Signed-off-by: Lennert Buytenhek commit 7ea217a85e38c5ed6edbc789670badb619da9f28 Author: Lennert Buytenhek Date: Sun Jun 22 22:45:02 2008 +0200 [ARM] Loki: add defconfig Signed-off-by: Lennert Buytenhek commit 777f9bebad3476b7dbf5cd8abbd3414139ca0e48 Author: Lennert Buytenhek Date: Sun Jun 22 22:45:02 2008 +0200 [ARM] add Marvell Loki (88RC8480) SoC support The Marvell Loki (88RC8480) is an ARM SoC based on a Feroceon CPU core running at between 400 MHz and 1.0 GHz, and features a 64 bit DDR controller, 512K of internal SRAM, two x4 PCI-Express ports, two Gigabit Ethernet ports, two 4x SAS/SATA controllers, two UARTs, two TWSI controllers, and IDMA/XOR engines. This patch adds support for the Marvell LB88RC8480 Development Board, enabling the use of the PCIe interfaces, the ethernet interfaces, the TWSI interfaces and the UARTs. Signed-off-by: Lennert Buytenhek commit 1219715de70956557b9dedf3ee021a73d4f4ec52 Author: Ke Wei Date: Fri May 23 10:23:22 2008 +0200 [ARM] Orion: add a separate BRIDGE_INT_TIMER1_CLR define Some Feroceon-based SoCs have an MBUS bridge interrupt controller that requires writing a one instead of a zero to clear edge interrupt sources such as timer expiry. This patch adds a new BRIDGE_INT_TIMER1_CLR define, which platform code can set to either ~BRIDGE_INT_TIMER1 (write-zero-to-clear) or BRIDGE_INT_TIMER1 (write-one-to-clear) depending on the platform. Signed-off-by: Lennert Buytenhek commit ab6d15d50637fc25ee941710b23fed09ceb28db3 Author: Ke Wei Date: Sun Jun 22 22:45:00 2008 +0200 [ARM] Feroceon: allow more old Feroceon IDs There are a couple more Feroceon-based SoCs out in the field that use different Variant and Architecture fields in their Main ID registers -- this patch tweaks the processor match/mask in proc-feroceon.S to catch those SoCs as well. Signed-off-by: Ke Wei Signed-off-by: Lennert Buytenhek commit 2e2023fe02c3530db3a0d6a26a2e90396a428796 Author: Nicolas Pitre Date: Tue Jun 3 23:06:21 2008 +0200 [ARM] Feroceon: catch other Feroceon CPU IDs in head.S Tweak the Feroceon match/mask in arch/arm/boot/compressed/head.S to match a couple of newer Feroceon cores (such as the 88fr571vd with CPU ID 0x56155710, and the 88fr131 with CPU ID 0x56251310) as well. Signed-off-by: Nicolas Pitre Signed-off-by: Lennert Buytenhek commit 6c386e58aadb90fb5d8b5be979e02d74f8be52fe Author: Nicolas Pitre Date: Thu Apr 24 02:04:54 2008 +0200 [ARM] Feroceon: speed up flushing of the entire cache Flushing the L1 D cache with a test/clean/invalidate loop is very easy in software, but it is not the quickest way of doing it, as there is a lot of overhead involved in re-scanning the cache from the beginning every time we hit a dirty line. This patch makes proc-feroceon.S use "clean+invalidate by set/way" loops according to possible cache configuration of Feroceon CPUs (either direct-mapped or 4-way set associative). Signed-off-by: Nicolas Pitre Signed-off-by: Lennert Buytenhek commit 79e90dd5aa95adfdc3117db8a559da3d0195ba58 Author: Lennert Buytenhek Date: Wed May 28 16:43:48 2008 +0200 [ARM] Orion: nuke orion5x_{read,write} Nuke the Orion-specific orion5x_{read,write} wrappers. Signed-off-by: Lennert Buytenhek commit 0e3bc0503f7e7b5b0bd4416f43eeeca1b661e66e Author: Lennert Buytenhek Date: Wed Jun 4 03:16:21 2008 +0200 [ARM] Orion: use linux/serial_reg.h for Orion uncompress.h Signed-off-by: Lennert Buytenhek commit 7ec753ccc10ad552c8ec2d40e0edbe3a9c562f30 Author: Sylver Bruneau Date: Tue Jun 10 01:00:38 2008 +0200 [ARM] Orion: add Maxtor Shared Storage II support This patch adds support for the Maxtor Shared Storage II hardware. Signed-off-by: Sylver Bruneau Signed-off-by: Lennert Buytenhek commit 7171d8672bb0bcb744935bd2c6108378b5c6c6ad Author: Alexander Clouter Date: Sat May 31 22:32:37 2008 +0100 [ARM] Orion: add Technologic Systems TS-78xx support Signed-off-by: Alexander Clouter Signed-off-by: Lennert Buytenhek commit 530c854aa351b2c7b3b3b6bedae8143310875206 Author: Sylver Bruneau Date: Sat May 31 18:21:49 2008 +0200 [ARM] Orion: remove code duplication in TS209 and TS409 setup files Signed-off-by: Sylver Bruneau Signed-off-by: Lennert Buytenhek commit b08d5af39616fd32a1fafbcb51c36d4c99c4e02f Author: Martin Michlmayr Date: Sun Apr 6 14:08:17 2008 +0200 [ARM] Orion: add HP Media Vault mv2120 support Signed-off-by: Lennert Buytenhek commit 42452b77a1fba2fee89350be2a9c03b54b27c218 Author: Lennert Buytenhek Date: Sat May 31 08:19:20 2008 +0200 [ARM] Orion: add Linksys WRT350N v2 support Signed-off-by: Lennert Buytenhek Tested-by: Dirk Teurlings Tested-by: Peter van Valderen commit d2b2a6bbc020e5a9a244f318d28515081e922882 Author: Lennert Buytenhek Date: Sat May 31 08:30:40 2008 +0200 [ARM] Orion: add 88F5181L (Orion-VoIP) support Signed-off-by: Lennert Buytenhek Acked-by: Russell King commit 47e9cffde663eafd5f78987036429fc0994d90e8 Author: Sylver Bruneau Date: Sat Apr 26 02:35:29 2008 +0200 [ARM] Orion: add QNAP TS-409 support Signed-off-by: Lennert Buytenhek commit a0087f2fcf5cb4e16502f5334168fbe304af318b Author: Sylver Bruneau Date: Wed Apr 30 08:14:58 2008 +0200 [ARM] Orion: implement power-off method for Kurobox Pro This patch implements the communication with the microcontroller on the Kurobox Pro and Linkstation Pro/Live boards. This is allowing to send the commands needed to power-off the board correctly. Signed-off-by: Sylver Bruneau Acked-by: Russell King Signed-off-by: Lennert Buytenhek commit 2850a037734eac0af2e6abc4e8be986c3edfd834 Author: Lennert Buytenhek Date: Wed May 28 16:17:39 2008 +0200 [ARM] Orion: avoid setting ->force_phy_addr The mv643xx_eth platform data field ->force_phy_addr only needs to be set if the passed-in ->phy_addr field is zero (to distinguish the case of not having specified a phy address (force_phy_addr = 0) from the case where a phy address of zero needs to be used (force_phy_addr = 1.)) Also, the ->force_phy_addr field will hopefully disappear in a future mv643xx_eth reorganisation. Therefore, this patch deletes the ->force_phy_addr field initialiser from all Orion board code. Signed-off-by: Lennert Buytenhek commit b206ed0462b7112d07bb9f245bf49f5e95ff174a Author: Lennert Buytenhek Date: Fri Jun 6 12:32:59 2008 +0200 [ARM] Orion: remove error printks in ->map_irq() implementations If all PCI devices are working as expected, the error printks in the various implementations of ->map_irq() doesn't really provide any useful info. And if something is not working as expected, turning on pci=debug gives you more useful information than the printk calls in ->map_irq(), since the former also tells you which devices _did_ get IRQs successfully assigned. Therefore, delete these printks entirely. Spotted by Russell King. Signed-off-by: Lennert Buytenhek Acked-by: Russell King commit 19cfd5c09f780ac870fd9d89201c4ebc0b22be81 Author: Lennert Buytenhek Date: Sat May 10 23:25:46 2008 +0200 [ARM] Orion: rework MPP handling Instead of having board code poke directly into the MPP configuration registers, and separately calling orion5x_gpio_set_valid_pins() to indicate which MPP pins can be used as GPIO pins, introduce a helper function for configuring the roles of each of the MPP pins, and have that helper function handle gpio validity internally. Signed-off-by: Lennert Buytenhek Acked-by: Sylver Bruneau Acked-by: Russell King commit 386a048a1ea42ff9ac87ffa344c4c19a5cc59678 Author: Lennert Buytenhek Date: Sat May 10 17:01:18 2008 +0200 [ARM] Orion: move setting up PCIe WA window into PCIe setup path It makes no sense to do PCIe WA window setup in the individual board support files while the decision whether or not to use the PCIe WA access method is made in a different place, in the PCIe support code. This patch moves the configuration of a PCIe WA window from the individual Orion board support files to the central Orion PCIe support code. Signed-off-by: Lennert Buytenhek Acked-by: Russell King commit 044f6c7c449ae8ba0353b032706b098a7ad5e304 Author: Lennert Buytenhek Date: Tue Apr 22 05:37:12 2008 +0200 [ARM] Orion: move EHCI/I2C/UART peripheral init into board code This patch moves initialisation of EHCI/I2C/UART platform devices from the common orion5x_init() into the board support code. The rationale behind this is that only the board support code knows whether certain peripherals have been brought out on the board, and not initialising peripherals that haven't been brought out is desirable for example: - to reduce user confusion (e.g. seeing both 'eth0' and 'eth1' appear while there is only one ethernet port on the board); and - to allow for future power savings (peripherals that have not been brought out can be clock gated off entirely). Signed-off-by: Lennert Buytenhek Acked-by: Russell King commit 6eef84a5496c678ab27b72bec0fc785c9cee063b Author: Lennert Buytenhek Date: Wed May 28 16:20:56 2008 +0200 [ARM] Orion: delete unused IO_SPACE_REMAP define This define isn't used anywhere in the kernel tree -- nuke it. Signed-off-by: Lennert Buytenhek Acked-by: Russell King commit 000e99c3334cdddaec020d7324fe4ca2a683d3dd Author: Lennert Buytenhek Date: Sun May 18 19:46:59 2008 +0200 [ARM] Orion: top-level IRQs are level-triggered Make it clear that Orion top-level IRQs are level-triggered. This means that we don't need an ->ack() handler, or at least, we don't need the ->ack() handler (or the acking part of the ->mask_ack() handler) to actually do anything. Given that, we might as well point our ->mask_ack() handler at the ->mask() handler instead of providing a dummy ->ack() handler, since providing a ->mask_ack() handler on level IRQ sources will prevent ->ack() from ever being called. Signed-off-by: Lennert Buytenhek Acked-by: Russell King commit ee0dd840052e303a3eb171363be5e6364d200a51 Author: Lennert Buytenhek Date: Fri Apr 11 23:08:26 2008 +0200 [ARM] Feroceon: annotate 88fr531-vd CPU entries Annotate the entries for the 88fr531-vd CPU core in arch/arm/boot/compressed/head.S and arch/arm/mm/proc-feroceon.S with the full name of the core. Signed-off-by: Lennert Buytenhek Acked-by: Russell King commit 4fc338e38f08f0a91e35ab386abae48eb033dbb2 Author: Lennert Buytenhek Date: Fri May 23 08:34:42 2008 +0200 [ARM] Orion: DRAM mapping granularity is 64KiB, not 16MiB The DRAM base address and size fields in the CPU's MBUS bridge have 64KiB granularity, instead of the currently used 16MiB. Since all of the currently supported MBUS peripherals support 64KiB granularity as well, this patch changes the Orion address map code to stop rounding base addresses down and sizes up to multiples of 16MiB. Found by Ke Wei . Signed-off-by: Lennert Buytenhek Acked-by: Russell King commit a18b658449e6677aba2bf8dcd3593adecff6fe4d Author: Lennert Buytenhek Date: Sat May 10 23:20:50 2008 +0200 [ARM] Orion: make window setup a little more safe Currently, Orion window setup uses hardcoded window indexes for each of the boot/cs0/cs1/cs2/PCIe WA windows. The static window allocation used can clash if board support code will ever attempt to configure both a dev2 and a PCIe WA window, as both of those use CPU mbus window #7 at present. This patch keeps track of the last used window, and opens subsequently requested windows sequentially, starting from 4. (Windows 0-3 are used as MEM/IO windows for the PCI/PCIe buses.) Signed-off-by: Lennert Buytenhek commit e7068ad337a991fba627148a4a57939fdc1e6a2d Author: Lennert Buytenhek Date: Sat May 10 16:30:01 2008 +0200 [ARM] Orion: fix various whitespace and coding style issues More cosmetic cleanup: - Replace 8-space indents by proper tab indents. - In structure initialisers, use a trailing comma for every member. - Collapse "},\n{" in structure initialiers to "}, {". Signed-off-by: Lennert Buytenhek Acked-by: Russell King commit f91a8dcc25398c5d708056de081d6cebf3f2023e Author: Nicolas Pitre Date: Fri Apr 11 21:04:28 2008 -0400 [ARM] cache align memset and memzero This is a natural extension following the previous patch. Non Feroceon based targets are unchanged. Signed-off-by: Nicolas Pitre Signed-off-by: Lennert Buytenhek commit 2239aff6ab2b95af1f628eee7a809f21c41605b3 Author: Nicolas Pitre Date: Mon Mar 31 12:38:31 2008 -0400 [ARM] cache align destination pointer when copying memory for some processors The implementation for memory copy functions on ARM had a (disabled) provision for aligning the source pointer before loading registers with data. Turns out that aligning the _destination_ pointer is much more useful, as the read side is already sufficiently helped with the use of preload. So this changes the definition of the CALGN() macro to target the destination pointer instead, and turns it on for Feroceon processors where the gain is very noticeable. Signed-off-by: Nicolas Pitre Signed-off-by: Lennert Buytenhek commit 4c4925c1f4ccd72002957c3e73b4f117f2bcf712 Author: Nicolas Pitre Date: Wed Jun 11 12:40:13 2008 -0400 [ARM] fix cache alignment code in memset.S This code is currently disabled, which explains why no one was affected. Signed-off-by: Nicolas Pitre Signed-off-by: Lennert Buytenhek commit f76e9154736e9ab47b64940d0062f19c80225b7f Author: Nicolas Pitre Date: Thu Apr 24 01:31:46 2008 -0400 [ARM] latencytop support Available for !SMP only at the moment. From Russell: |Basically, if a thread is running on a CPU, thread_saved_fp() is invalid. |So, the question is: what guarantees do we have here that 'tsk' is not |running on another CPU? Signed-off-by: Nicolas Pitre Tested-by: Lennert Buytenhek Signed-off-by: Lennert Buytenhek commit b0bfcce930bca38af056662e598991cb393eaa4a Author: Nicolas Pitre Date: Mon May 5 15:21:28 2008 -0400 [ARM] Orion: update defconfig to 2.6.26-rc4 Signed-off-by: Nicolas Pitre Signed-off-by: Lennert Buytenhek commit 437a0a54eea7b101e8a5b70688009956f6522ed0 Author: Ingo Molnar Date: Fri Jun 20 21:50:20 2008 +0200 x86, bitops: make constant-bit set/clear_bit ops faster, gcc workaround Jeremy Fitzhardinge reported this compiler bug: Suggestion from Linus: add "r" to the input constraint of the set_bit()/clear_bit()'s constant 'nr' branch: Blows up on "gcc version 3.4.4 20050314 (prerelease) (Debian 3.4.3-13)": CC init/main.o include2/asm/bitops.h: In function `start_kernel': include2/asm/bitops.h:59: warning: asm operand 1 probably doesn't match constraints include2/asm/bitops.h:59: warning: asm operand 1 probably doesn't match constraints include2/asm/bitops.h:59: warning: asm operand 1 probably doesn't match constraints include2/asm/bitops.h:59: error: impossible constraint in `asm' include2/asm/bitops.h:59: error: impossible constraint in `asm' include2/asm/bitops.h:59: error: impossible constraint in `asm' Reported-by: Jeremy Fitzhardinge Signed-off-by: Ingo Molnar commit 77149367dade50af8370420265bd4f818cde8afd Author: Arnd Bergmann Date: Tue May 20 19:16:16 2008 +0200 microcode: BKL pushdown Signed-off-by: Arnd Bergmann commit b78032a7e52995b42d231d0064358eef16c9a8cc Author: Arnd Bergmann Date: Tue May 20 19:16:14 2008 +0200 message-i2o-i2o_config: BKL pushdown Signed-off-by: Arnd Bergmann commit f18f81daba25d29541e46972a7ff4d65162ff167 Author: Arnd Bergmann Date: Tue May 20 19:16:13 2008 +0200 megaraid: BKL pushdown Signed-off-by: Arnd Bergmann commit cad84238056babf4e4e6b0de183238224aab8177 Author: Arnd Bergmann Date: Tue May 20 19:16:12 2008 +0200 media-radio-miropcm20-rds: BKL pushdown Signed-off-by: Arnd Bergmann commit b9bde77a6a4f76b767d4363a5f74127528426159 Author: Arnd Bergmann Date: Tue May 20 19:16:11 2008 +0200 macintosh-smu: BKL pushdown Signed-off-by: Arnd Bergmann commit 600bf8140c22e473ef0806ae45214aaaf53e0da3 Author: Arnd Bergmann Date: Tue May 20 19:16:10 2008 +0200 lcd: BKL pushdown Signed-off-by: Arnd Bergmann commit 28fbbf491368c9491461ca492e13862da1b49180 Author: Arnd Bergmann Date: Tue May 20 19:16:08 2008 +0200 jsflash: BKL pushdown Signed-off-by: Arnd Bergmann commit cddf63d99d0d145f18b293c3d0de4af7dab2a922 Author: Arnd Bergmann Date: Tue May 20 19:16:06 2008 +0200 irnet_ppp: BKL pushdown Signed-off-by: Arnd Bergmann commit af96f0103d332be92c42a44accf731da667ecc03 Author: Arnd Bergmann Date: Tue May 20 19:16:04 2008 +0200 ipmi-watchdog: BKL pushdown Signed-off-by: Arnd Bergmann commit b0e54f7c477ad24fa0d49baed942c5a5909c748b Author: Arnd Bergmann Date: Tue May 20 19:16:03 2008 +0200 ip27-rtc: BKL pushdown Signed-off-by: Arnd Bergmann commit 6b0ee363b294c3724224909dcb0b80f7dac3dfd6 Author: Arnd Bergmann Date: Tue May 20 19:16:02 2008 +0200 infiniband-ucma: BKL pushdown Signed-off-by: Arnd Bergmann commit a9c4e8f74ba26f10cf78fed7c5b863ea50988856 Author: Arnd Bergmann Date: Tue May 20 19:16:00 2008 +0200 hw-random: BKL pushdown Signed-off-by: Arnd Bergmann commit 48b81880519274d2a8b3e9919a47d91d05a1c964 Author: Arnd Bergmann Date: Tue May 20 19:15:59 2008 +0200 hpet: BKL pushdown Signed-off-by: Arnd Bergmann commit 986f8b8ccf4806c1e95528a6f157998113fb4f41 Author: Arnd Bergmann Date: Tue May 20 19:15:58 2008 +0200 hp_sdc_rtc: BKL pushdown Signed-off-by: Arnd Bergmann commit 4a7e79a7deab9718d51dc8d3ee938bd0eb789b7b Author: Arnd Bergmann Date: Tue May 20 19:15:57 2008 +0200 hdpu_cpustate: BKL pushdown Signed-off-by: Arnd Bergmann commit 742a2fe31bf311d065a2bbacc2b363103b351300 Author: Arnd Bergmann Date: Tue May 20 19:15:55 2008 +0200 genrtc: BKL pushdown Signed-off-by: Arnd Bergmann commit 78abb6ac919cee123e632d833a42d0312ccb2b0d Author: Arnd Bergmann Date: Tue May 20 19:15:54 2008 +0200 flash: BKL pushdown Signed-off-by: Arnd Bergmann commit 1d17bf0c08569e7aefd27df0179065fb955588c4 Author: Arnd Bergmann Date: Tue May 20 19:15:53 2008 +0200 envctrl: BKL pushdown Signed-off-by: Arnd Bergmann commit 89c7de08c5fc059c4f6231571416d9bc0bbc91d4 Author: Arnd Bergmann Date: Tue May 20 19:15:52 2008 +0200 efirtc: BKL pushdown Signed-off-by: Arnd Bergmann commit 080c2226474fa3060fadce9a2341004f477aadb3 Author: Arnd Bergmann Date: Tue May 20 19:15:50 2008 +0200 ds1620: BKL pushdown Signed-off-by: Arnd Bergmann commit 7ccef46320ecd52c4d20c8aad592599df76bb7a1 Author: Arnd Bergmann Date: Tue May 20 19:15:49 2008 +0200 ds1286: BKL pushdown Signed-off-by: Arnd Bergmann commit 514bcc66d4072a221a8dfd341a4006385a441918 Author: Arnd Bergmann Date: Tue May 20 19:15:48 2008 +0200 dlm-user: BKL pushdown Signed-off-by: Arnd Bergmann commit 009228dfb641ca7e4315ab0d0d55465747331025 Author: Arnd Bergmann Date: Tue May 20 19:15:47 2008 +0200 display7seg: BKL pushdown Signed-off-by: Arnd Bergmann commit e73322ceefb2a777dc0ef369a2504bf5c42b8c52 Author: Arnd Bergmann Date: Tue May 20 19:15:46 2008 +0200 crypto-zcrypt_api: BKL pushdown Signed-off-by: Arnd Bergmann commit 135fe10f9fb9fba981f60c5526e37900f52c9705 Author: Arnd Bergmann Date: Tue May 20 19:15:45 2008 +0200 crypto-prng: BKL pushdown Signed-off-by: Arnd Bergmann commit b05c9e6cd939b6f79be17e9b6a23ca15a219dec2 Author: Arnd Bergmann Date: Tue May 20 19:15:43 2008 +0200 cpwatchdog: BKL pushdown Signed-off-by: Arnd Bergmann commit 122bc5eaf81a3870f6cc00d2e5e97f32f92e636b Author: Arnd Bergmann Date: Tue May 20 19:15:42 2008 +0200 bvme6000-rtc: BKL pushdown Signed-off-by: Arnd Bergmann commit 556889a4ae89d5f2adf98cac58ecf9326b0d0297 Author: Arnd Bergmann Date: Tue May 20 19:15:41 2008 +0200 briq_panel: BKL pushdown Signed-off-by: Arnd Bergmann commit 8324af6dddac11f9f7e9df8b784f6949ddb61b5d Author: Arnd Bergmann Date: Tue May 20 19:15:40 2008 +0200 bluetooth-vhci: BKL pushdown Signed-off-by: Arnd Bergmann commit 986837badea28a8d32864ced7cbc2fb80b9f7c91 Author: Arnd Bergmann Date: Tue May 20 19:15:38 2008 +0200 block-dasd_eer: BKL pushdown Signed-off-by: Arnd Bergmann commit 9a8bd2f76cb78fd730337f1b3b9cbef101ce2dad Author: Arnd Bergmann Date: Tue May 20 19:15:37 2008 +0200 bf561-coreb: BKL pushdown Signed-off-by: Arnd Bergmann commit 52e7c5e08201e20ddbe93cb1977869c38072bc2f Author: Arnd Bergmann Date: Tue May 20 19:15:36 2008 +0200 basler-excite: BKL pushdown Signed-off-by: Arnd Bergmann commit 864fe51671c9e44fb9d02765623daac9acc26a8b Author: Arnd Bergmann Date: Tue May 20 19:15:34 2008 +0200 apm_32: BKL pushdown Signed-off-by: Arnd Bergmann commit 2861ead38b8a376888c3f63b9c8e45d4cee02117 Author: Arnd Bergmann Date: Tue May 20 19:15:33 2008 +0200 apm-emulation: BKL pushdown Signed-off-by: Arnd Bergmann commit b82829943c470e59cfd3ee84d8ed6ae5d5e1a55b Author: Arnd Bergmann Date: Tue May 20 19:15:32 2008 +0200 ans-lcd: BKL pushdown Signed-off-by: Arnd Bergmann commit a076230134f3083a58cef99e48b127818ef01e7a Author: Arnd Bergmann Date: Tue May 20 19:15:30 2008 +0200 agp-frontend: BKL pushdown Signed-off-by: Arnd Bergmann commit 8f5934278d1d86590244c2791b28f77d67466007 Author: Linus Torvalds Date: Mon May 19 19:53:01 2008 -0700 Replace BKL with superblock lock in fat/msdos/vfat This replaces the use of the BKL in the FAT family of filesystems with the existing superblock lock instead. The code already appears to do mostly proper locking with its own private spinlocks (and mutexes), but while the BKL could possibly have been dropped entirely, converting it to use the superblock lock (which is just a regular mutex) is the conservative thing to do. As a per-filesystem mutex, it not only won't have any of the possible latency issues related to the BKL, but the lock is obviously private to the particular filesystem instance and will thus not cause problems for entirely unrelated users like the BKL can. Signed-off-by: Linus Torvalds Cc: OGAWA Hirofumi Signed-off-by: Jonathan Corbet commit 5ca6a93d802a9d110127556e5d3ed032fd273e03 Author: Stephen Rothwell Date: Mon May 19 16:06:52 2008 +1000 bkl-removal viotape fixup Signed-off-by: Stephen Rothwell Signed-off-by: Jonathan Corbet commit 9514dff918b947ae43b66517dc90d0e05548bd6a Author: Jonathan Corbet Date: Sun May 18 15:40:00 2008 -0600 Remove the lock_kernel() call from chrdev_open() All in-kernel char device open() functions now either have their own lock_kernel() calls or clearly do not need one. Signed-off-by: Jonathan Corbet commit a30427d92d0bc152b833088e4a305bbeb1a0c162 Author: Jonathan Corbet Date: Sun May 18 15:39:11 2008 -0600 Add a comment in chrdev_open() I stared at this code for a while and almost deleted it before understanding crept into my slow brain. Hopefully this makes life easier for the next person to happen on it. Signed-off-by: Jonathan Corbet commit f2b9857eee17797541b845782ade4d7a9d50f843 Author: Jonathan Corbet Date: Sun May 18 15:32:43 2008 -0600 Add a bunch of cycle_kernel_lock() calls All of the open() functions which don't need the BKL on their face may still depend on its acquisition to serialize opens against driver initialization. So make those functions acquire then release the BKL to be on the safe side. Signed-off-by: Jonathan Corbet commit 0b2806768899dba5967bcd4a3b93eaed9a1dc4f3 Author: Jonathan Corbet Date: Sun May 18 14:27:41 2008 -0600 Add cycle_kernel_lock() A number of driver functions are so obviously trivial that they do not need the big kernel lock - at least not overtly. It turns out that the acquisition of the BKL in driver open() functions can perform a sort of poor-hacker's serialization function, delaying the open operation until the driver is certain to have completed its initialization. Add a simple cycle_kernel_lock() function for these cases to make it clear that there is no need to *hold* the BKL, just to be sure that we can acquire it. Signed-off-by: Jonathan Corbet commit 6606470dd1d628878383c96d10b52a77986ddac7 Author: Jonathan Corbet Date: Fri May 16 14:28:31 2008 -0600 videodev: BKL pushdown Put explicit lock_kernel() calls into videodev_open(). That function itself seems OK, but one never knows about all the open() functions provided by underlying video drivers. Signed-off-by: Jonathan Corbet commit b5b4aa67da65aeb58718e0a39158b293873ac572 Author: Jonathan Corbet Date: Fri May 16 14:25:20 2008 -0600 usbdev: BKL pushdown Add explicit lock_kernel() calls to usbdev_open() Signed-off-by: Jonathan Corbet commit 1af46fd72d6c18c1d96ce7f3491b841055e9dcfd Author: Jonathan Corbet Date: Fri May 16 14:23:31 2008 -0600 USB Monitor: BKL pushdown Add explicit lock_kernel() calls to mon_bin_open() Signed-off-by: Jonathan Corbet commit b2f2ba01b2a4356e92231669f7e3dcee37ac2fca Author: Jonathan Corbet Date: Fri May 16 14:21:30 2008 -0600 printer gadget: BKL pushdown Add explicit lock_kernel() calls to printer_open() Signed-off-by: Jonathan Corbet commit 26ce4f0684ef4b96d0244ac58b89ec282d5b980c Author: Jonathan Corbet Date: Fri May 16 14:19:56 2008 -0600 adb: BKL pushdown Put explicit lock_kernel() calls in adb_open(). The fact that adb_release() already has them suggests this is necessary. Signed-off-by: Jonathan Corbet commit 3462032d66703ef7721329b44fe2dac4aaef475d Author: Jonathan Corbet Date: Fri May 16 14:17:33 2008 -0600 divamnt: BKL pushdown Put explicit lock_kernel() calls into maint_open(). Signed-off-by: Jonathan Corbet commit a237f3bbaab28bb780201f15f6003cf3d2e81024 Author: Jonathan Corbet Date: Fri May 16 14:15:33 2008 -0600 CAPI: BKL pushdown Put explicit lock_kernel() calls into capi_open() Signed-off-by: Jonathan Corbet commit b0061a0ec4d10a69309d0371a01e8b99387009ef Author: Jonathan Corbet Date: Fri May 16 14:12:52 2008 -0600 changer: BKL pushdown Add lock_kernel() calls to ch_open(), though the existing locking looks adequate. Signed-off-by: Jonathan Corbet commit dea3f665d6fa263a9870a54e9f8cfd146016f140 Author: Jonathan Corbet Date: Fri May 16 14:11:09 2008 -0600 dpt_i20: BKL pushdown Add lock_kernel() calls to adpt_open() Signed-off-by: Jonathan Corbet commit 9aaf20cbf5b7cccd45495326cba0b35b2884e6b3 Author: Jonathan Corbet Date: Fri May 16 14:08:58 2008 -0600 videopix: BKL pushdown Add explicit lock_kernel() calls to vfc_open(). Signed-off-by: Jonathan Corbet commit 5e9829ad38c24aa71252e643836e7cedcb1c83d7 Author: Jonathan Corbet Date: Fri May 16 14:06:45 2008 -0600 bpp: bkl pushdown Put explicit lock_kernel() calls into bpp_open(). It has locking, but I'm not convinced it won't race with ioctl(). Signed-off-by: Jonathan Corbet commit 4541b5ec9f631a143cdea862d07ddfc3cdac36f2 Author: Jonathan Corbet Date: Fri May 16 14:03:05 2008 -0600 phantom: BKL pushdown Add explicit lock_kernel calls to phantom_open(). Signed-off-by: Jonathan Corbet commit 057e7c7ff9f91a36a761588c53826bd6a710aeba Author: Jonathan Corbet Date: Fri May 16 14:01:12 2008 -0600 infiniband: more BKL pushdown Be extra-cautious and protect the remaining open() functions. Signed-off-by: Jonathan Corbet commit 65f37b790bd7ba15413838579470296a709c45e6 Author: Jonathan Corbet Date: Fri May 16 13:57:31 2008 -0600 dsp56k: BKL pushdown Put explicit lock_kernel calls into dsp56k_open(). [Stupid missing label error fixed] Signed-off-by: Jonathan Corbet commit c0bed680f0ca603864375ed5f9fed4296a53aa62 Author: Jonathan Corbet Date: Fri May 16 13:54:46 2008 -0600 raw: BKL pushdown Put explicit lock_kernel() calls into raw_open(), even though the existing locking looks adequate. Signed-off-by: Jonathan Corbet commit b8c71d7ae2a7f723d171d9175212b6d0a727655d Author: Jonathan Corbet Date: Fri May 16 13:53:00 2008 -0600 tlckl: BKL pushdown Put explicit lock_kernel calls into tlclk_open() Signed-off-by: Jonathan Corbet commit f4943db14f5071ecbf7ca76722e59a2fd22bda4d Author: Jonathan Corbet Date: Fri May 16 13:50:20 2008 -0600 xilinx icap: BKL pushdown Add explicit lock_kernel() calls to hwicap_open() even though the existing locking looks adequate. Signed-off-by: Jonathan Corbet commit f97259e35de1f99ba0ac19383408e247fd763cf0 Author: Jonathan Corbet Date: Fri May 16 13:47:50 2008 -0600 vcs: BKL pushdown Add explicit BKL to vcs_open(). Signed-off-by: Jonathan Corbet commit 609f9e92b570f390a457a81effe0af6b758dc582 Author: Jonathan Corbet Date: Fri May 16 13:46:14 2008 -0600 spidev: BKL pushdown Add the BKL to spidev_open(), even though the existing locking looks adequate. Signed-off-by: Jonathan Corbet commit d21c95c569c462da20d491b75d0a45bd70ddc1bf Author: Jonathan Corbet Date: Fri May 16 13:40:30 2008 -0600 Add "no BKL needed" comments to several drivers This documents the fact that somebody looked at the relevant open() functions and concluded that, due to their trivial nature, no locking was needed. Signed-off-by: Jonathan Corbet commit 39d95b9d857ad9ed335dd1a2d6c6de1f1ee69ce1 Author: Jonathan Corbet Date: Fri May 16 09:10:50 2008 -0600 tty: cdev lock_kernel() pushdown Parts of the serial code actually BUG() if we don't do this. commit c43ef17450dce8cbf50f97497a1949ff8f484e88 Author: Jonathan Corbet Date: Thu May 15 16:44:14 2008 -0600 snsc: cdev lock_kernel() pushdown Signed-off-by: Jonathan Corbet commit 78a3c3d7c6b89085610edfe86f7790144afc737e Author: Jonathan Corbet Date: Thu May 15 16:39:03 2008 -0600 sound: cdev lock_kernel() pushdown Signed-off-by: Jonathan Corbet commit fc7f687a6878e19f7ce58cb8a65659cd2730b586 Author: Jonathan Corbet Date: Thu May 15 16:30:36 2008 -0600 fbmem: cdev lock_kernel() pushdown Signed-off-by: Jonathan Corbet commit 5794e1b14bcd9817c5fa27d3254996f0d9551296 Author: Jonathan Corbet Date: Thu May 15 16:26:57 2008 -0600 dvb: cdev lock_kernel() pushdown Signed-off-by: Jonathan Corbet commit 20613f24bcd1cbfb08e64f0bb00c44481313b448 Author: Jonathan Corbet Date: Thu May 15 16:24:25 2008 -0600 usbcore: cdev lock_kernel() pushdown usb_open() is protected by a down_read(&minor_rwsem), but I'm not sure I trust it to protect everything including subsidiary open() functions. Signed-off-by: Jonathan Corbet commit 1bcaa0bd6fd5b510dd9f1ba2da114d3f1253af61 Author: Jonathan Corbet Date: Thu May 15 16:16:28 2008 -0600 isdn: cdev lock_kernel() pushdown Signed-off-by: Jonathan Corbet commit 46787b481be00d5443d385480d12470728406cf4 Author: Jonathan Corbet Date: Thu May 15 16:09:48 2008 -0600 gdth: cdev lock_kernel() pushdown Signed-off-by: Jonathan Corbet commit b3369c68bf9d61062585f3ebc1286220191c0f84 Author: Jonathan Corbet Date: Thu May 15 16:08:15 2008 -0600 st: cdev lock_kernel() pushdown Signed-off-by: Jonathan Corbet commit d4514d1bed1c7157bcff4c81307a9e0374df257a Author: Jonathan Corbet Date: Thu May 15 16:01:47 2008 -0600 aacraid: cdev lock_kernel() pushdown Signed-off-by: Jonathan Corbet commit 647d87bd1b9e7ff24f89b7d4e38c75d756018caa Author: Jonathan Corbet Date: Thu May 15 12:23:19 2008 -0600 osst: cdev lock_kernel() pushdown. Signed-off-by: Jonathan Corbet commit eb09d3d4ee09b25876db549b6d5221610216e105 Author: Jonathan Corbet Date: Thu May 15 12:22:06 2008 -0600 sg: cdev lock_kernel() pushdown Signed-off-by: Jonathan Corbet commit 04f4ac9d1bb8a9103609ce8e927f8e98826ce339 Author: Jonathan Corbet Date: Thu May 15 12:01:56 2008 -0600 ide-tape: cdev lock_kernel() pushdown ->release() already has explicit lock_kernel() calls... Signed-off-by: Jonathan Corbet commit 16750c2f32e3fd879fce787a13900f11633ef9af Author: Jonathan Corbet Date: Thu May 15 11:58:31 2008 -0600 phonedev: cdev lock_kernel() pushdown phone_open() looks OK, but I don't trust the subsidiary drivers (and ixj in particular). Signed-off-by: Jonathan Corbet commit 70ffa16e604bab22b12bf72cb7796f1dd01ec335 Author: Jonathan Corbet Date: Thu May 15 11:34:16 2008 -0600 drm: cdev lock_kernel() pushdown Signed-off-by: Jonathan Corbet commit abedd296e97a5d943e76999de97253f1b62a4846 Author: Jonathan Corbet Date: Thu May 15 11:29:38 2008 -0600 lp: cdev lock_kernel() pushdown Signed-off-by: Jonathan Corbet commit 12ead6b098b65dd21d3ed4fcccf20025dbe86cc2 Author: Jonathan Corbet Date: Thu May 15 11:24:23 2008 -0600 mbcs: cdev lock_kernel() pushdown This driver would appear to have no internal locking at all. Signed-off-by: Jonathan Corbet commit 2d863e92ec1b1deb8167d7f5266f754f258e876a Author: Jonathan Corbet Date: Thu May 15 11:16:21 2008 -0600 viotape: cdev lock_kernel pushdown () Signed-off-by: Jonathan Corbet commit 309c4551c0fa0897d5343c36cbfbfa39f1f41b88 Author: Jonathan Corbet Date: Thu May 15 11:07:52 2008 -0600 misc: cdev lock_kernel() pushdown misc_open() looks fine, but who knows what all of the misc drivers are doing in their open() functions? Signed-off-by: Jonathan Corbet commit 1f439647a4072ec64bb2e4b9290cd7be6aee8328 Author: Jonathan Corbet Date: Thu May 15 11:04:19 2008 -0600 mem: cdev lock_kernel() pushdown It's really hard to tell if this is necessary - lots of weird magic happens by way of map_devmem() Signed-off-by: Jonathan Corbet commit ecc38983f6c83f371fefb5a69a72e358fc7b1218 Author: Jonathan Corbet Date: Thu May 15 10:46:49 2008 -0600 ipmi: cdev lock_kernel() pushdown Signed-off-by: Jonathan Corbet commit fbc8a81d66bbbce3f0b4d5752f8bc8bb3c1fc439 Author: Jonathan Corbet Date: Thu May 15 10:39:37 2008 -0600 UIO: cdev lock_kernel() pushdown Signed-off-by: Jonathan Corbet commit 2edbf8537edc62c9b0ef75e7025d01e8b6a48707 Author: Jonathan Corbet Date: Thu May 15 10:37:16 2008 -0600 Input: cdev lock_kernel() pushdown Signed-off-by: Jonathan Corbet commit 702e57d9ef7002f8d362faa6ddebc59e6d43fa05 Author: Jonathan Corbet Date: Thu May 15 10:25:44 2008 -0600 HID: cdev lock_kernel() pushdown Signed-off-by: Jonathan Corbet commit 72b67048f5dac18fd6494e3d3bff7e54840e8761 Author: Jonathan Corbet Date: Thu May 15 10:15:38 2008 -0600 UBI: cdev lock_kernel() pushdown Signed-off-by: Jonathan Corbet commit 6071239ef1947914892601e36785c7b1cf8b7dd4 Author: Jonathan Corbet Date: Thu May 15 10:10:37 2008 -0600 mtdchar: cdev lock_kernel() pushdown Signed-off-by: Jonathan Corbet commit ea2959a2972410f15155a015df74ce77ac79f8b8 Author: Jonathan Corbet Date: Thu May 15 10:07:56 2008 -0600 paride: cdev lock_kernel() pushdown Signed-off-by: Jonathan Corbet commit 579174a55f491edeaccb8f5d3dc7ad69a17f5423 Author: Jonathan Corbet Date: Thu May 15 10:03:09 2008 -0600 AoE: cdev lock_kernel() pushdown Signed-off-by: Jonathan Corbet commit 764a4a8e54cdd6efc5928f876aa9e35778f22377 Author: Jonathan Corbet Date: Thu May 15 10:01:17 2008 -0600 drivers/s390: cdev lock_kernel() pushdown Signed-off-by: Jonathan Corbet commit 51a776fa7a7997e726d4a478eda0854c6f9143bd Author: Jonathan Corbet Date: Thu May 15 09:38:18 2008 -0600 rtc: cdev lock_kernel() pushdown Signed-off-by: Jonathan Corbet commit 0f476b6d91a1395bda6464e653ce66ea9bea7167 Author: Johannes Berg Date: Wed Jun 18 09:29:37 2008 +0200 softirq: remove irqs_disabled warning from local_bh_enable There's no need to use local_irq_save() over local_irq_disable() in the local_bh_enable code since it is a bug to call it with irqs disabled and do_softirq will enable irqs if there is any pending work. Consolidate the code from local_bh_enable and ..._ip to avoid having a disconnect between them in the warnings they trigger that is currently there. Also always trigger the warning on in_irq(), not just in the trace-irqflags case. Signed-off-by: Johannes Berg Cc: Michael Buesch Cc: David Ellingsworth Cc: Linus Torvalds Signed-off-by: Ingo Molnar commit a1d5a8691f1b6c92491747bea3b778b184fa5837 Author: Ingo Molnar Date: Fri Jun 20 15:34:46 2008 +0200 x86: unify __set_fixmap, fix fix build failure: arch/x86/mm/pgtable.c:280: warning: ‘enum fixed_addresses’ declared inside parameter list arch/x86/mm/pgtable.c:280: warning: its scope is only this definition or declaration, which is probably not what you want arch/x86/mm/pgtable.c:280: error: parameter 1 (‘idx’) has incomplete type Signed-off-by: Ingo Molnar commit aeaaa59c7e15dcfaaf57ce069ef81683067d575d Author: Jeremy Fitzhardinge Date: Tue Jun 17 11:42:01 2008 -0700 x86/paravirt/xen: add set_fixmap pv_mmu_ops Signed-off-by: Jeremy Fitzhardinge Signed-off-by: Juan Quintela Signed-off-by: Eduardo Habkost Signed-off-by: Mark McLoughlin Signed-off-by: Ingo Molnar commit d494a96125c99f1e37b1f831b29b42c9b712ee05 Author: Jeremy Fitzhardinge Date: Tue Jun 17 11:41:59 2008 -0700 x86: implement set_pte_vaddr Signed-off-by: Jeremy Fitzhardinge Signed-off-by: Ingo Molnar commit 7c7e6e07e2a7c0d2d96389f4f0540e44a80ecdaa Author: Jeremy Fitzhardinge Date: Tue Jun 17 11:41:54 2008 -0700 x86: unify __set_fixmap In both cases, I went with the 32-bit behaviour. Signed-off-by: Jeremy Fitzhardinge Signed-off-by: Ingo Molnar commit 944256e00a5466ae6b7a11fdb3a47d092f2f62c1 Author: Jeremy Fitzhardinge Date: Tue Jun 17 11:41:49 2008 -0700 x86: unify asm-x86/fixmap*.h Signed-off-by: Jeremy Fitzhardinge Signed-off-by: Ingo Molnar commit a987b16cc6123af2c9414032701bab5f73c54c89 Author: Jeremy Fitzhardinge Date: Mon Jun 16 15:01:56 2008 -0700 xen: don't drop NX bit Because NX is now enforced properly, we must put the hypercall page into the .text segment so that it is executable. Signed-off-by: Jeremy Fitzhardinge Cc: Stable Kernel Cc: the arch/x86 maintainers Signed-off-by: Ingo Molnar commit eb179e443deb0a5c81a62b4c157124a4b7ff1813 Author: Jeremy Fitzhardinge Date: Mon Jun 16 15:01:53 2008 -0700 xen: mask unwanted pte bits in __supported_pte_mask [ Stable: this isn't a bugfix in itself, but it's a pre-requiste for "xen: don't drop NX bit" ] Signed-off-by: Jeremy Fitzhardinge Cc: Stable Kernel Cc: the arch/x86 maintainers Signed-off-by: Ingo Molnar commit 6673cf63e5d973db5145d1f48b354efcb9fe2a13 Author: Isaku Yamahata Date: Mon Jun 16 14:58:13 2008 -0700 xen: Use wmb instead of rmb in xen_evtchn_do_upcall(). This patch is ported one from 534:77db69c38249 of linux-2.6.18-xen.hg. Use wmb instead of rmb to enforce ordering between evtchn_upcall_pending and evtchn_pending_sel stores in xen_evtchn_do_upcall(). Cc: Samuel Thibault Signed-off-by: Isaku Yamahata Cc: Nick Piggin Cc: the arch/x86 maintainers Signed-off-by: Ingo Molnar commit a1855d802fb62718192eb7e180161b08adff4e73 Author: Takashi Iwai Date: Thu Jun 19 15:41:37 2008 +0200 ALSA: hda - Fix digital converter proc output AC_VERB_GET_DIGI_CONVERT_2 isn't actually implemented but reserved. The whole SIC bits are returned from DIGI_CONVERT_1. Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit 443cd507ce7f78c6f8742b72736585c031d5a921 Author: Huang, Ying Date: Fri Jun 20 16:39:21 2008 +0800 lockdep: add lock_class information to lock_chain and output it This patch records array of lock_class into lock_chain, and export lock_chain information via /proc/lockdep_chains. It is based on x86/master branch of git-x86 tree, and has been tested on x86_64 platform. Signed-off-by: Huang Ying Cc: Peter Zijlstra Signed-off-by: Ingo Molnar commit 6c3df25511c2c51f2dd36cc52a8d22363d731793 Author: Peter Zijlstra Date: Thu Jun 19 14:22:28 2008 +0200 sched: rt: dont stop the period timer when there are tasks wanting to run So if the group ever gets throttled, it will never wake up again. Signed-off-by: Peter Zijlstra Cc: "Daniel K." Cc: Peter Zijlstra Reported-by: "Daniel K." commit 10b612f440a22a294e87ec7e8f03f9eea3338628 Author: Peter Zijlstra Date: Thu Jun 19 14:22:27 2008 +0200 sched: rt: fix the bandwidth contraint computations Signed-off-by: Peter Zijlstra Cc: "Daniel K." Signed-off-by: Ingo Molnar commit eff6549b957d15d1ad168d90b8c1eb643b9c163f Author: Peter Zijlstra Date: Thu Jun 19 14:22:26 2008 +0200 sched: rt: move some code around Signed-off-by: Peter Zijlstra Cc: "Daniel K." Signed-off-by: Ingo Molnar commit b79f3833d81d54fc71d98c8064dc45f33a755a8a Author: Peter Zijlstra Date: Thu Jun 19 14:22:25 2008 +0200 sched: rt: fix SMP bandwidth balancing for throttled groups Now we exceed the runtime and get throttled - the period rollover tick will subtract the cpu quota from the runtime and check if we're below quota. However with this cpu having a very small portion of the runtime it will not refresh as fast as it should. Therefore, also rebalance the runtime when we're throttled. Signed-off-by: Peter Zijlstra Cc: "Daniel K." Signed-off-by: Ingo Molnar commit ada18de2eb76961a4d4847f63291744c9e7beec4 Author: Peter Zijlstra Date: Thu Jun 19 14:22:24 2008 +0200 sched: debug: add some rt debug output Signed-off-by: Peter Zijlstra Cc: "Daniel K." Signed-off-by: Ingo Molnar commit 7dbceaf9bb68919651901b101f44edd5391ee489 Author: Ingo Molnar Date: Fri Jun 20 07:28:24 2008 +0200 x86, bitops: make constant-bit set/clear_bit ops faster, adapt, clean up fix integration bug introduced by "x86: bitops take an unsigned long *" which turned "(void *) + x" into "(long *) + x". small cleanups to make it more apparent which value get propagated where. Signed-off-by: Ingo Molnar commit 5f0120b5786f5dbe097a946a2eb5d745ebc2b7ed Author: Jan Beulich Date: Wed Jun 18 12:42:11 2008 +0100 x86-64: remove unnecessary ptregs call stubs Signed-off-by: Jan Beulich Cc: "Andi Kleen" Signed-off-by: Ingo Molnar commit 1a750e0cd7a30c478723ecfa1df685efcdd38a90 Author: Linus Torvalds Date: Wed Jun 18 21:03:26 2008 -0700 x86, bitops: make constant-bit set/clear_bit ops faster On Wed, 18 Jun 2008, Linus Torvalds wrote: > > And yes, the "lock andl" should be noticeably faster than the xchgl. I dunno. Here's a untested (!!) patch that turns constant-bit set/clear_bit ops into byte mask ops (lock orb/andb). It's not exactly pretty. The reason for using the byte versions is that a locked op is serialized in the memory pipeline anyway, so there are no forwarding issues (that could slow down things when we access things with different sizes), and the byte ops are a lot smaller than 32-bit and particularly 64-bit ops (big constants, and the 64-bit ops need the REX prefix byte too). [ Side note: I wonder if we should turn the "test_bit()" C version into a "char *" version too.. It could actually help with alias analysis, since char pointers can alias anything. So it might be the RightThing(tm) to do for multiple reasons. I dunno. It's a separate issue. ] It does actually shrink the kernel image a bit (a couple of hundred bytes on the text segment for my everything-compiled-in image), and while it's totally untested the (admittedly few) code generation points I looked at seemed sane. And "lock orb" should be noticeably faster than "lock bts". If somebody wants to play with it, go wild. I didn't do "change_bit()", because nobody sane uses that thing anyway. I guarantee nothing. And if it breaks, nobody saw me do anything. You can't prove this email wasn't sent by somebody who is good at forging smtp. This does require a gcc that is recent enough for "__builtin_constant_p()" to work in an inline function, but I suspect our kernel requirements are already higher than that. And if you do have an old gcc that is supported, the worst that would happen is that the optimization doesn't trigger. Signed-off-by: Ingo Molnar commit dd0c7c4903c29da9aa3bf33deecf064d190a0d81 Author: Andreas Herrmann Date: Wed Jun 18 15:38:57 2008 +0200 x86: shrink pat_x_mtrr_type to its essentials Signed-off-by: Andreas Herrmann Cc: Venkatesh Pallipadi Cc: Suresh B Siddha Cc: Hugh Dickins Signed-off-by: Ingo Molnar commit b8e0418b2a25f975c3b8764030c24b7253d33a68 Author: Glauber Costa Date: Mon Jun 16 19:59:08 2008 -0300 x86: fix typo CONFIX -> CONFIG Signed-off-by: Ingo Molnar commit 31a72bce0bd6f3e0114009288bccbc96376eeeca Author: Paul E. McKenney Date: Wed Jun 18 09:26:49 2008 -0700 rcu: make rcutorture more vicious: reinstate boot-time testing This patch re-institutes the ability to build rcutorture directly into the Linux kernel. The reason that this capability was removed was that this could result in your kernel being pretty much useless, as rcutorture would be running starting from early boot. This problem has been avoided by (1) making rcutorture run only three seconds of every six by default, (2) adding a CONFIG_RCU_TORTURE_TEST_RUNNABLE that permits rcutorture to be quiesced at boot time, and (3) adding a sysctl in /proc named /proc/sys/kernel/rcutorture_runnable that permits rcutorture to be quiesced and unquiesced when built into the kernel. Please note that this /proc file is -not- available when rcutorture is built as a module. Please also note that to get the earlier take-no-prisoners behavior, you must use the boot command line to set rcutorture's "stutter" parameter to zero. The rcutorture quiescing mechanism is currently quite crude: loops in each rcutorture process that poll a global variable once per tick. Suggestions for improvement are welcome. The default action will be to reduce the polling rate to a few times per second. Signed-off-by: Paul E. McKenney Suggested-by: Ingo Molnar Signed-off-by: Ingo Molnar commit 28bb171169247754bae47bad0609208333e7a34b Author: Harvey Harrison Date: Wed Jun 18 13:45:13 2008 -0700 alsa: add annotations to bitwise type snd_pcm_hw_param_t Fully half of all alsa sparse warnings are from snd_pcm_hw_param_t degrading to integer type, this goes a long way towards eliminating them. Signed-off-by: Harvey Harrison Signed-off-by: Jaroslav Kysela commit 1cdad71537b42d0f0bf247772942ce678e4e8898 Merge: 20b6331... 15a8641... Author: Ingo Molnar Date: Thu Jun 19 09:09:15 2008 +0200 Merge branch 'sched' into sched-devel Conflicts: kernel/sched_rt.c Signed-off-by: Ingo Molnar commit 3dfa8773674e16f95f70a0e631e80c69390d04d7 Author: Kumar Gala Date: Mon Jun 16 09:41:32 2008 -0500 powerpc/booke: Add support for new e500mc core The new e500mc core from Freescale is based on the e500v2 but with the following changes: * Supports only the Enhanced Debug Architecture (DSRR0/1, etc) * Floating Point * No SPE * Supports lwsync * Doorbell Exceptions * Hypervisor * Cache line size is now 64-bytes (e500v1/v2 have a 32-byte cache line) Signed-off-by: Kumar Gala commit d120f65f3aaf306c957bc4c82e510f5b0f1e9b27 Author: Paul E. McKenney Date: Wed Jun 18 05:21:44 2008 -0700 rcu: make rcutorture more vicious: add stutter feature This patch takes a step towards making rcutorture more brutal by allowing the test to be automatically periodically paused, with the default being to run the test for five seconds then pause for five seconds and repeat. This behavior can be controlled using a new "stutter" module parameter, so that "stutter=0" gives the old default behavior of running continuously. Starting and stopping rcutorture more heavily stresses RCU's interaction with the scheduler, as well as exercising more paths through the grace-period detection code. Note that the default to "shuffle_interval" has also been adjusted from 5 seconds to 3 seconds to provide varying overlap with the "stutter" interval. I am still unable to provoke the failures that Alexey has been seeing, even with this patch, but will be doing a few additional things to beef up rcutorture. Suggested-by: Ingo Molnar Signed-off-by: Paul E. McKenney Signed-off-by: Ingo Molnar commit 219835f10eaef19d2b976076f2bc4ad806856c55 Author: Paolo Ciarrocchi Date: Sat Jun 14 21:11:39 2008 +0200 x86: coding style fixes to x86/kernel/cpu/cpufreq/cpufreq-nforce2.c Before: total: 22 errors, 8 warnings, 440 lines checked After: total: 0 errors, 8 warnings, 442 lines checked paolo@paolo-desktop:~/linux.trees.git$ md5sum /tmp/cpufreq-nforce2.o.* 3d4330a5d188fe904446e5948a618b48 /tmp/cpufreq-nforce2.o.after 1477e6b0dcd6f59b1fb6b4490042eca6 /tmp/cpufreq-nforce2.o.before ^^^ I guess this is because I fixed a few "do not initialise statics to 0 or NULL" paolo@paolo-desktop:~/linux.trees.git$ size /tmp/cpufreq-nforce2.o.* text data bss dec hex filename 1923 72 16 2011 7db /tmp/cpufreq-nforce2.o.after 1923 72 16 2011 7db /tmp/cpufreq-nforce2.o.before Signed-off-by: Paolo Ciarrocchi Signed-off-by: Ingo Molnar commit f016e15c11ba8945ff8e1945445648722d6fadfb Author: Paolo Ciarrocchi Date: Sat Jun 14 20:44:52 2008 +0200 x86: coding style fixes to arch/x86/math-emu/reg_constant Before: total: 6 errors, 1 warnings, 117 lines checked After: total: 0 errors, 1 warnings, 117 lines checked paolo@paolo-desktop:~/linux.trees.git$ md5sum /tmp/reg_constant.o.* 780388a3056d58fb759efaf190d5d3d1 /tmp/reg_constant.o.after 780388a3056d58fb759efaf190d5d3d1 /tmp/reg_constant.o.before paolo@paolo-desktop:~/linux.trees.git$ size /tmp/reg_constant.o.* text data bss dec hex filename 457 0 0 457 1c9 /tmp/reg_constant.o.after 457 0 0 457 1c9 /tmp/reg_constant.o.before Signed-off-by: Paolo Ciarrocchi Signed-off-by: Ingo Molnar commit 5175676a2d012ca5e5ad5eaedbfc1da5d5660d2a Author: Paolo Ciarrocchi Date: Sat Jun 14 14:37:14 2008 +0200 x86: coding style fixes to arch/x86/kernel/cpu/mcheck/k7.c Before: total: 6 errors, 13 warnings, 105 lines checked After: total: 0 errors, 0 warnings, 105 lines checked paolo@paolo-desktop:~/linux.trees.git$ size /tmp/k7* text data bss dec hex filename 1135 0 0 1135 46f /tmp/k7.o.after 1135 0 0 1135 46f /tmp/k7.o.before paolo@paolo-desktop:~/linux.trees.git$ md5sum /tmp/k7* 87b14954045aa37dbaee6fb7e022ed9a /tmp/k7.o.after 87b14954045aa37dbaee6fb7e022ed9a /tmp/k7.o.before Signed-off-by: Paolo Ciarrocchi Signed-off-by: Ingo Molnar commit fe94ae995d33a4df35b6b9cd0504e87d7e37c8de Author: Paolo Ciarrocchi Date: Sat Jun 14 14:06:19 2008 +0200 x86: coding style fixes to arch/x86/kernel/cpu/mcheck/p4.c Before: total: 16 errors, 34 warnings, 257 lines checked After: total: 0 errors, 2 warnings, 257 lines checked No changes in the compiled code: paolo@paolo-desktop:~/linux.trees.git$ size /tmp/p4* text data bss dec hex filename 2644 4 4 2652 a5c /tmp/p4.o.after 2644 4 4 2652 a5c /tmp/p4.o.before paolo@paolo-desktop:~/linux.trees.git$ md5sum /tmp/p4* 13f1b21c4246b31a28aaff38184586ca /tmp/p4.o.after 13f1b21c4246b31a28aaff38184586ca /tmp/p4.o.before Signed-off-by: Paolo Ciarrocchi Signed-off-by: Ingo Molnar commit 4620b49f76096fa5183eecad7d689faa898a4c82 Author: Vegard Nossum Date: Thu Jun 12 23:21:53 2008 +0200 softirq: remove initialization of static per-cpu variable Signed-off-by: Vegard Nossum Signed-off-by: Ingo Molnar commit e17ba73b0ee6c0f24393c48b455e0d8db761782c Author: Jiri Slaby Date: Mon May 12 15:44:40 2008 +0200 x86, generic: mark early_printk as asmlinkage It's not explicitly marked as asmlinkage, but invoked from x86_32 startup code with parameters on stack. No other architectures define early_printk and none of them are affected by this change, since defines asmlinkage as empty token. Signed-off-by: Jiri Slaby Cc: H. Peter Anvin Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner Signed-off-by: Ingo Molnar commit 20b6331bfed1f07ba1e5006889a5d64adc53615e Author: Dmitry Adamushko Date: Wed Jun 11 00:58:30 2008 +0200 sched: rework of "prioritize non-migratable tasks over migratable ones" regarding this commit: 45c01e824991b2dd0a332e19efc4901acb31209f I think we can do it simpler. Please take a look at the patch below. Instead of having 2 separate arrays (which is + ~800 bytes on x86_32 and twice so on x86_64), let's add "exclusive" (the ones that are bound to this CPU) tasks to the head of the queue and "shared" ones -- to the end. In case of a few newly woken up "exclusive" tasks, they are 'stacked' (not queued as now), meaning that a task {i+1} is being placed in front of the previously woken up task {i}. But I don't think that this behavior may cause any realistic problems. There are a couple of changes on top of this one. (1) in check_preempt_curr_rt() I don't think there is a need for the "pick_next_rt_entity(rq, &rq->rt) != &rq->curr->rt" check. enqueue_task_rt(p) and check_preempt_curr_rt() are always called one after another with rq->lock being held so the following check "p->rt.nr_cpus_allowed == 1 && rq->curr->rt.nr_cpus_allowed != 1" should be enough (well, just its left part) to guarantee that 'p' has been queued in front of the 'curr'. (2) in set_cpus_allowed_rt() I don't thinks there is a need for requeue_task_rt() here. Perhaps, the only case when 'requeue' (+ reschedule) might be useful is as follows: i) weight == 1 && cpu_isset(task_cpu(p), *new_mask) i.e. a task is being bound to this CPU); ii) 'p' != rq->curr but here, 'p' has already been on this CPU for a while and was not migrated. i.e. it's possible that 'rq->curr' would not have high chances to be migrated right at this particular moment (although, has chance in a bit longer term), should we allow it to be preempted. Anyway, I think we should not perhaps make it more complex trying to address some rare corner cases. For instance, that's why a single queue approach would be preferable. Unless I'm missing something obvious, this approach gives us similar functionality at lower cost. Verified only compilation-wise. (Almost)-Signed-off-by: Dmitry Adamushko Signed-off-by: Ingo Molnar commit f7d62364b2cef85cbcd4feffdd3632ef7c3b61c2 Author: Hiroshi Shimamoto Date: Tue Jun 10 20:29:19 2008 -0700 sched: fix typo in Documentation/scheduler/sched-rt-group.txt Fix minor typos. Signed-off-by: Hiroshi Shimamoto Signed-off-by: Ingo Molnar commit 0db125c467afcbcc229abb1a87bc36ef72777dc2 Author: Vegard Nossum Date: Tue Jun 10 23:45:45 2008 +0200 x86: more header fixes Summary: Add missing include guards for some x86 headers. This has only had the most rudimentary testing, but is hopefully obviously correct. Signed-off-by: Ingo Molnar commit 6cf514fce18589ea1e0521c5f2d7c2bb280fefc7 Author: Hugh Dickins Date: Mon Jun 16 18:42:43 2008 +0100 x86: PAT: make pat_x_mtrr_type() more readable Clean up over-complications in pat_x_mtrr_type(). And if reserve_memtype() ignores stray req_type bits when pat_enabled, it's better to mask them off when not also. Signed-off-by: Hugh Dickins Signed-off-by: Ingo Molnar commit b4b3bd96f26586e53ab5482f1869221dd1b5ac36 Author: Daniel Rahn Date: Fri Jun 6 09:42:36 2008 +0200 x86: correctly report NR_BANKS in mce_64.c attached is a no-brainer that makes kernel correctly report NR_BANKS for MCE. We are right now limited to NR_BANKS==6, but the error message will use the available number of banks instead of the defined maximum. For a Nehalem based system it will print: "MCE: warning: using only 9 banks" while the correct message would be "MCE: warning: using only 6 banks" Signed-off-by: Pavel Machek Signed-off-by: Ingo Molnar commit 5af970a48f3ba0dd96a036b196c79dc923f28231 Author: Ingo Molnar Date: Wed Jun 18 10:09:48 2008 +0200 rcutorture: WARN_ON_ONCE(1) when detecting an error this makes it easier for automated tests to pick up such failures. commit 1301a964cef2759d46b4ce366eeeee1f869731f9 Author: Randy Dunlap Date: Tue Jun 17 19:19:34 2008 +0100 ALSA: ASoC: fix PM=n build Fix sound/soc build failure when CONFIG_PM=n: linux-next-20080617/sound/soc/soc-core.c:829: error: 'soc_resume_deferred' undeclared (first use in this function) soc3.out:make[3]: *** [sound/soc/soc-core.o] Error 1 Signed-off-by: Randy Dunlap Signed-off-by: Mark Brown Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit f52845ad771a2b62bc06bc940f16c8f6296654ec Author: Takashi Iwai Date: Tue Jun 17 16:35:22 2008 +0200 ALSA: ca0106 - Add entry for another MSI K8N Diamond MB Added an entry for another MSI K8N Diamond mobo with SSID 1102:1009. Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit 43785eaeb1cfb8aed3cf8027f298b242f88fdc45 Author: Takashi Iwai Date: Mon Jun 16 15:47:26 2008 +0200 ALSA: hda - Fix wrong volumes in AD1988 auto-probe mode Don't create mixer volume elements for Headphone and Speaker if they use the same DAC as normal line-outs on AD1988. Otherwise the amp value gets screwed up, e.g. https://bugzilla.novell.com/show_bug.cgi?id=398255 Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit 83544994a6a592073e9f6b937c6da12cf5ed2d1e Author: Timur Tabi Date: Fri Jun 13 14:02:31 2008 -0500 ALSA: Fix register programming in Freescale MPC8610 HPCD sound driver Fix the Freescale MPC8610 HPCD sound driver so that it programs the DMACR and PMUXCR registers in the global utilities correctly. Signed-off-by: Timur Tabi Acked-by: Liam Girdwood Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit 5ce4b59653b2c2053cd9a011918ac1e4747f24cc Author: Josh Boyer Date: Tue Jun 17 19:01:38 2008 -0400 powerpc/4xx: Workaround for PPC440EPx/GRx PCI_28 Errata The 440EPx/GRx chips don't support PCI MRM commands. Drivers determine this by looking for a zero value in the PCI cache line size register. However, some drivers write to this register upon initialization. This can cause MRMs to be used on these chips, which may cause deadlocks on PLB4. The workaround implemented here introduces a new indirect_type flag, called PPC_INDIRECT_TYPE_BROKEN_MRM. This is set in the pci_controller structure in the pci fixup function for 4xx PCI bridges by determining if the bridge is compatible with 440EPx/GRx. The flag is checked in the indirect_write_config function, and forces any writes to the PCI_CACHE_LINE_SIZE register to be zero, which will disable MRMs for these chips. A similar workaround has been tested by AMCC on various PCI cards, such as the Silicon Image ATA card and Intel E1000 GIGE card. Hangs were seen with the Silicon Image card, and MRMs were seen on the bus with a PCI analyzer. With the workaround in place, the card functioned properly and only Memory Reads were seen on the bus with the analyzer. Acked-by: Stefan Roese Signed-off-by: Josh Boyer commit ee4311adf105f4d740f52e3948acc1d81598afcc Author: Ingo Molnar Date: Tue Jun 17 17:43:02 2008 +0200 ftrace: build fix with gcc 4.3 fix: arch/x86/kernel/ftrace.c: Assembler messages: arch/x86/kernel/ftrace.c:82: Error: bad register name `%sil' make[1]: *** [arch/x86/kernel/ftrace.o] Error 1 Signed-off-by: Ingo Molnar commit 284373059f9605442cac6453780f6aaecf9abac1 Author: Takashi Iwai Date: Tue Jun 17 16:30:27 2008 +0200 ALSA: emu10k1 - simplify the last fix Clean up the previous commit for fixing memory leaks. Signed-off-by: Takashi Iwai commit 9f515b6898d0f2c1b9eb34ae9986794045f34e2b Author: Jaroslav Kysela Date: Tue Jun 17 16:20:13 2008 +0200 ALSA: emu10k1 - fix possible memory leak in memory allocation routines The leak was introduced in "[ALSA] emu10k1 - simplify page allocation for synth" commit. Signed-off-by: Jaroslav Kysela commit e01b70ef3eb3080fecc35e15f68cd274c0a48163 Author: Jiri Hladky Date: Mon Jun 2 12:00:19 2008 +0200 x86: fix bug in arch/i386/lib/delay.c file, delay_loop function when trying to understand how Bogomips are implemented I have found a bug in arch/i386/lib/delay.c file, delay_loop function. The function fails for loops > 2^31+1. It because SF is set when dec returns numbers > 2^31. The fix is to use jnz instruction instead of jns (and add one decl instruction to the end to have exactly the same number of loops as in original version). Martin Mares observed: > It is a long time since I have hacked that file, but you should definitely > make sure that the function is never called with a zero argument. In such > case, the original version made just a single pass, but your version > makes 2^32 of them. fixed that. Signed-off-by: Ingo Molnar commit e6e07d8a2d2989c1f42287131308aa2fde253631 Author: Jeremy Fitzhardinge Date: Mon Jun 16 16:08:17 2008 -0700 x86: make asm/asm.h work for asm code. This is useful for unifying some pieces of asm code. Signed-off-by: Jeremy Fitzhardinge Signed-off-by: H. Peter Anvin commit 15650a2f644a2f15738cf22807c090d89328f500 Author: Jesse Barnes Date: Mon Jun 16 15:29:45 2008 -0700 x86/PCI: fixup early quirk probing On x86, we do early PCI probing to apply some quirks for chipset bugs. However, in a recent cleanup (7bcbc78dea92fdf0947fa48e248da3c993a5690f) a thinko was introduced that causes us to probe all subfunctions of even single function devices (a function was factored out of an inner loop and a "break" became a "return"). Fix that up by making check_dev_quirk() return a value so we can keep the factored code intact. Acked-by: Ingo Molnar Signed-off-by: Jesse Barnes commit bccaea8fe287454d70f5b2546910561e9f884053 Author: Jerone Young Date: Fri Jun 6 14:09:05 2008 -0500 powerpc/booke: Fix definitions for dbcr[1-2] and dbsr registers This takes values from the PowerPC ISA BookIII-E specifications that are for DBCR0. Many of these values are different from those currently specified, which are for the ppc405. Also added some bookE definitions for DBCR1 & DBCR2. [ galak@kernel.crashing.org: Added aliases to 40x DBCR0 to match Book-E, Added enhanced debug DBCR0/DBSR _CIRPT and _CRET defines and DBSR IRPT and RET. ] Signed-off-by: Jerone Young Acked-by: Josh Boyer Signed-off-by: Kumar Gala commit f22529351f7060d61eff3b76d7c9706f90aaedf3 Author: Ingo Molnar Date: Thu May 22 10:37:48 2008 +0200 namespacecheck: fixes Signed-off-by: Ingo Molnar commit 7aaaec38fcd9ef3172e69f8c19f20113830a8498 Merge: 1ac9701... 0665190... Author: Ingo Molnar Date: Mon Jun 16 11:28:04 2008 +0200 Merge branch 'linus' into x86/kconfig commit c54f9da1c8ceee19436430afac0798a989eb886d Merge: a2eddfa... 0665190... Author: Ingo Molnar Date: Mon Jun 16 11:27:53 2008 +0200 Merge branch 'linus' into x86/irqstats commit d939d2851fd12568e2eabb2916769e8a57ba5c89 Merge: 9f5314f... 0665190... Author: Ingo Molnar Date: Mon Jun 16 11:27:45 2008 +0200 Merge branch 'linus' into x86/irq commit 33ee375b2ea5dd11581a57d67bedd0ca39b19a5e Merge: 6703f6d... 0665190... Author: Ingo Molnar Date: Mon Jun 16 11:27:18 2008 +0200 Merge branch 'linus' into x86/gart commit 9583f3d9c00974911daf227cbaa12d6c1caaabad Merge: 962cf36... 0665190... Author: Ingo Molnar Date: Mon Jun 16 11:24:17 2008 +0200 Merge branch 'linus' into core/softirq commit 6d72b7952fa7d7c61d021398970c29afde6a4443 Merge: 6360b1f... 0665190... Author: Ingo Molnar Date: Mon Jun 16 11:24:00 2008 +0200 Merge branch 'linus' into core/rodata commit 766d02786ecd22932beeb9ca8bad6d8c5a552ef9 Merge: 906d882... 0665190... Author: Ingo Molnar Date: Mon Jun 16 11:23:36 2008 +0200 Merge branch 'linus' into core/rcu commit 688d22e23ab1caacb2c36c615854294b58f2ea47 Merge: 7e0edc1... 0665190... Author: Ingo Molnar Date: Mon Jun 16 11:21:27 2008 +0200 Merge branch 'linus' into x86/xen commit fd2c17e1777d46cff14c25ea774a4d17459d188a Merge: 74e411c... 0665190... Author: Ingo Molnar Date: Mon Jun 16 11:20:57 2008 +0200 Merge branch 'linus' into x86/timers commit 3557b18fcbe0e29706214f3c7cc680a7823605eb Merge: 4226ab9... 0665190... Author: Ingo Molnar Date: Mon Jun 16 11:20:37 2008 +0200 Merge branch 'linus' into x86/ptemask commit faeca31d068090285b77c39574d2bda14b079c50 Merge: 499f8f8... 0665190... Author: Ingo Molnar Date: Mon Jun 16 11:20:28 2008 +0200 Merge branch 'linus' into x86/pat commit 064a32d82c20cdcb0119a8b316eb520608d8c647 Merge: 0327318... 0665190... Author: Ingo Molnar Date: Mon Jun 16 11:19:53 2008 +0200 Merge branch 'linus' into x86/memtest commit 1791a78c0b10fe548bf08a2ed7f84a4ea1385430 Merge: bf07dc8... 0665190... Author: Ingo Molnar Date: Mon Jun 16 11:17:50 2008 +0200 Merge branch 'linus' into x86/cleanups commit ed9e4996d9a123b7550e63713d563f524fa9d9f0 Merge: 4d2df79... 0665190... Author: Ingo Molnar Date: Mon Jun 16 11:17:19 2008 +0200 Merge branch 'linus' into tracing/sysprof commit cb9aa97c21c59ad01c9514d7faf45dc166fba226 Merge: 668a6c3... 0665190... Author: Ingo Molnar Date: Mon Jun 16 11:16:46 2008 +0200 Merge branch 'linus' into tracing/mmiotrace-mergefixups commit e765ee90da62535ac7d7a97f2464f9646539d683 Merge: a4500b8... 0665190... Author: Ingo Molnar Date: Mon Jun 16 11:15:58 2008 +0200 Merge branch 'linus' into tracing/ftrace commit f9e8e07e074a880e110922759dcdb369fecdf07c Merge: e9886ca... 0665190... Author: Ingo Molnar Date: Mon Jun 16 11:15:21 2008 +0200 Merge branch 'linus' into sched-devel commit 6719292af5513da52aa876d0e7ac4367a0851845 Author: Jaroslav Kysela Date: Mon Jun 16 10:39:34 2008 +0200 ALSA: Remove duplicate MODULE_AUTHOR/DESCRIPTION/LICENCE from snd-ens1370.ko But comment only extra code in ak4531_codec.c for history. Signed-off-by: Jaroslav Kysela commit 28638ea4f8adb63f837e4436560ab16ab0388587 Merge: f781b03... 0665190... Author: Ingo Molnar Date: Mon Jun 16 10:17:15 2008 +0200 Merge branch 'linus' into x86/nmi Conflicts: arch/x86/kernel/nmi_32.c commit 906d882cacecd37ad2fdd03ed2a9b232bcb9507e Author: Lai Jiangshan Date: Mon Jun 9 16:35:25 2008 -0700 rcu: remove unused field struct rcu_data::rcu_tasklet Since softirq works for rcu reclaimer, rcu_tasklet is unused now. Signed-off-by: Lai Jiangshan Cc: "Paul E. McKenney" Signed-off-by: Andrew Morton Signed-off-by: Ingo Molnar commit b7d2399242b639f0b0be5f901506a7180d961b64 Author: Jaroslav Kysela Date: Mon Jun 16 09:42:25 2008 +0200 ALSA: Release 1.0.17rc2 Signed-off-by: Jaroslav Kysela commit 766979e09d302315f314bfd96fdd83f8f9896d9c Author: Takashi Iwai Date: Fri Jun 13 20:53:56 2008 +0200 ALSA: hda - use upper_32_bits() Use the standard upper_32_bits() instead of own macro. Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit 0c6341ace5efb14a0da08482e299b3c158e0d5fb Author: Takashi Iwai Date: Fri Jun 13 20:50:27 2008 +0200 ALSA: hda - bdl_pos_adj=32 as default Use bdl_pos_adj=32 as default except for Intel hardwares confirmed to work with bdl_pos_adj=1. Looks like ATI and NVidia require this higher value. Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit 6ed2597883b1b03ca94f62f0cfe908314cba6d6b Author: Andy Green Date: Fri Jun 13 16:24:05 2008 +0100 ALSA: ASoC: Don't block system resume On OpenMoko soc-audio resume is taking 700ms of the whole resume time of 1.3s, dominated by writes to the codec over I2C. This patch shunts the resume guts into a workqueue which then is done asynchronously. The "card" is locked using the ALSA power state APIs as suggested by Mark Brown. [Added fix for race with resume to suspend and fixed a couple of nits from checkpatch -- broonie.] Signed-off-by: Andy Green Signed-off-by: Mark Brown Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit abb68c26ba15f8e84e580a40c0b1bc349cb534b0 Author: Mark Brown Date: Fri Jun 13 16:24:04 2008 +0100 ALSA: ASoC: Check for exact register match in wm97xx_reset() To provide added robustness in case an AC97 controller reads back all zeros in error cases check for an exact match when testing to see if resets have brought the codec back. Signed-off-by: Mark Brown Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit aafc4412be31306e5c38bd4e4581066507503adc Author: Matthew Ranostay Date: Fri Jun 13 18:04:33 2008 +0200 ALSA: hda: Add support for 92HD73xxx codecs Added support for new family of IDT codecs. Signed-off-by: Matthew Ranostay Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit 87c8a64475f0597b7fd9c36d2f867ae8ef4a9eca Author: Ingo Molnar Date: Mon Jun 2 13:19:08 2008 +0200 printk: export console_drivers this symbol is needed by drivers/video/xen-fbfront.ko. Signed-off-by: Ingo Molnar commit 1462a200057df08be12f3719e1f37adbd2c6e4d0 Author: Ingo Molnar Date: Mon Jun 16 08:40:04 2008 +0200 Revert "prohibit rcutorture from being compiled into the kernel" This reverts commit 9aaffc898ff4a3df18c5fc4b9e0fa47e779ad726. That commit was a very bad idea. RCU_TORTURE found many boot timing bugs and other sorts of bugs in the past, so excluding it from boot images is very silly. The option already depends on DEBUG_KERNEL and is disabled by default. Even when it runs, the test threads are reniced. If it annoys people we could add a runtime sysctl. commit 9fc697b0b01416edae99dd9c5c49fb69c9282744 Author: Stefan Schmidt Date: Tue Jun 10 08:57:27 2008 +0100 [ARM] 5082/1: pxa: Definition for the third USB port control register UP3OCR This adds the definition for the third USB port control register UP3OCR. It is used on the EZX GSM mobile phones. Signed-off-by: Stefan Schmidt Acked-by: Eric Miao Signed-off-by: Russell King commit d438ae5796085379327bdba76114929eedf94a89 Author: Philipp Zabel Date: Fri Jun 6 18:40:47 2008 +0100 [ARM] 5080/1: touch PSSR_OTGPH only on pxa27x in ohci-pxa27x and pxa27x_udc and include pxa2xx-regs.h as build fix since PSSR definitions moved from pxa-regs.h into pxa2xx-regs.h. Note: This change is temporary as pxa27x processor specific code will be finally moved elsewhere (both drivers should support pxa3xx, too). Signed-off-by: Philipp Zabel Acked-by: Eric Miao Signed-off-by: Russell King commit a4500b84c51645bbc86be3ca84f2252b7ada060f Author: Abhishek Sagar Date: Sat Jun 14 11:59:39 2008 +0530 ftrace: fix "notrace" filtering priority This is a fix to give notrace filter rules priority over "set_ftrace_filter" rules. This fix ensures that functions which are set to be filtered and are concurrently marked as "notrace" don't get recorded. As of now, if a record is marked as FTRACE_FL_FILTER and is enabled, then the notrace flag is not checked. Tested on x86-32. Signed-off-by: Abhishek Sagar Signed-off-by: Ingo Molnar commit d3bd67cdbb5d12f30dfd1b627fd95bd6dcc7ff1e Author: Takashi Iwai Date: Thu Jun 12 18:17:26 2008 +0200 ALSA: make snd_ctl_elem_read() and snd_ctl_elem_write() static snd_ctl_elem_read() and snd_ctl_elem_write() are no longer used by any other drivers. Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit 149b154452b18dedd4559cdd65b965ae9011e425 Author: Takashi Iwai Date: Thu Jun 12 17:43:36 2008 +0200 ALSA: hda - Remove unused mutex Removed unused mutex from patch_*.c. Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit 4549915cdf468019d2fd86485dd8d2ab426b8d85 Author: Takashi Iwai Date: Thu Jun 12 16:27:24 2008 +0200 ALSA: hda - Fix stac9205_cfg_tbl Sort stac9205_cfg_table in the order of id numbers, and removed the duplicated (obsoleted) entries for 0x01fc and 0x01fd. This doesn't change the driver behavior since the old entries are all secondary. The duplication occured due to commit dfe495d0, and the old entries were introduced by commit ae0a8ed8. Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit 6e132fa668d48a5a6fae6c24f6104e44b1ec1049 Author: Jarkko Nikula Date: Wed Jun 11 13:47:15 2008 +0100 ALSA: ASoC: Cover also Nokia N810 WiMAX Edition in N810 machine driver Signed-off-by: Jarkko Nikula Signed-off-by: Mark Brown Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit a2e31a595ea74120a5e9de91fce56dd835edff94 Author: Mike Montour Date: Wed Jun 11 13:47:14 2008 +0100 ALSA: ASoC: Add TLV information to the LM4857 controls on the GTA01 Signed-off-by: Mike Montour Signed-off-by: Mark Brown Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit 10144c09a0d6a62e1d56e25f142743c7a00e5dba Author: Mike Montour Date: Wed Jun 11 13:47:13 2008 +0100 ALSA: ASoC: Add SOC_SINGLE_EXT_TLV control type Signed-off-by: Mike Montour Signed-off-by: Mark Brown Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit 2cc8c609798957b90adf90b5bfb9859d1643fade Author: Mike Montour Date: Wed Jun 11 13:47:12 2008 +0100 ALSA: ASoC: Add TLV information to remaining WM8753 controls Signed-off-by: Mike Montour Signed-off-by: Mark Brown Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit d133b0ce6ceaf744184c7cb9f95ba92f333c246a Author: Mark Brown Date: Wed Jun 11 13:47:11 2008 +0100 ALSA: ASoC: Fix WM9713 voice PCM slave mode configuration Reported-by: Rodolfo Giometti Signed-off-by: Mark Brown Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit bdb92876f0a9d2b431199e385732ede89ff0b97d Author: Mark Brown Date: Wed Jun 11 13:47:10 2008 +0100 ALSA: ASoC: Pass the DAI being configured into CPU DAI probe and remove This allows per-DAI initialisation to be done by the CPU DAI drivers. Signed-off-by: Mark Brown Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit dbac7cb8a7fcae34ffda04e4bc30673c2ea841ae Author: Mark Brown Date: Wed Jun 11 13:47:09 2008 +0100 ALSA: ASoC: Add missing includes Ensure that DAIs are prototyped in the codec drivers that define them. Signed-off-by: Mark Brown Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit ae2ff19180d7dcac438e399f874d4de230b7f326 Author: Mark Brown Date: Wed Jun 11 13:47:08 2008 +0100 ALSA: ASoC: Tweak tlv320aicx reg_cache_size ASoC codec drivers frequently set the register cache size using sizeof() rather than ARRAY_SIZE(). For tlv320aicx either is correct since the registers are 8 bit but update to use ARRAY_SIZE() for clarity. Signed-off-by: Mark Brown Acked-by: Jarkko Nikula  Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit 8ddd440768e04e0c158c2bfa6178928e1f1eef3e Author: Mark Brown Date: Wed Jun 11 13:47:07 2008 +0100 ALSA: ASoC: Fix register cache size for UDA1380 The register cache size is used by the codec_reg sysfs file which works in terms of the register cache access functions rather than in terms of raw access to the cache so the size specified needs to be in terms of the number of elements. Signed-off-by: Mark Brown Cc: Philipp Zabel Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit d751b233bb8568f1de1ccbe3824ca69090326251 Author: Mark Brown Date: Wed Jun 11 13:47:06 2008 +0100 ALSA: ASoC: Fix register cache sizes for Wolfson codecs The register cache size is used by the codec_reg sysfs file which works in terms of the register cache access functions rather than in terms of raw access to the cache so the size specified needs to be in terms of the number of elements. Signed-off-by: Mark Brown Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit 9f240a558f94bea839e14c46c8fccf93bdd35ef6 Author: Krzysztof Helt Date: Wed Jun 11 12:26:32 2008 +0200 ALSA: opti93x: use cs4231 lib This patch converts the Opti93x driver to use the cs4231 library instead of duplicating the code. Signed-off-by: Krzysztof Helt Tested-by: Rene Herman Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit abf1f5aafc1939db1f252e33914a3689e0f5830f Author: Krzysztof Helt Date: Mon Jun 9 23:07:28 2008 +0200 ALSA: opti93x: add support for Opti93x codec in cs4231-lib This patch adds support for WSS compatible Opti93x codec to the cs4231-lib. Signed-off-by: Krzysztof Helt Tested-by: Rene Herman Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit a6a950a8a8e1431e8527809339e089ac926a7d34 Author: Takashi Iwai Date: Tue Jun 10 17:53:35 2008 +0200 ALSA: hda - Add a warning if pending IRQ is found The pending IRQ handling is a very hackish workaround and should be avoided as much as possible via a larger bdl_pos_adj option value. Put a warning message if this situation occurs so that the user may have a chance to notice that something is wrong. Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit 8c53b96f229aa6e27f17855cbbf8e4243868a3a9 Author: Takashi Iwai Date: Tue Jun 10 17:53:35 2008 +0200 ALSA: hda - Add description of bdl_pos_adj option Added a brief description of the new bdl_pos_adj option to ALSA-Configuration.txt. Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit 5c0d7bc103dd1ae85967fbcf70be8d1ae3aa3d79 Author: Takashi Iwai Date: Tue Jun 10 17:53:35 2008 +0200 ALSA: hda - Fix bdl_pos_adj value for ATI SB chipsets ATI SB controllers seem to report the DMA ahead in the amount of FIFO. Thus bdl_pos_adj should be 32 for them as default. Also, the default value is set to -1, which means to make the driver to choose the appropriate value. Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit 555e219ffaeecbd08d1603e1551188483e7e3b64 Author: Takashi Iwai Date: Tue Jun 10 17:53:34 2008 +0200 ALSA: hda - bdl_pos_adj option to each instance The option bdl_pos_adj should be provided for each card instance instead of a global one because the value depends rather on each controller-chip. Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit d2e1c97331d37a477ef7e9a272b4de4e53b893be Author: Takashi Iwai Date: Tue Jun 10 17:53:34 2008 +0200 ALSA: hda - remove position_fix=3 position_fix=3 is the option to correct the DMA position with the FIFO size. But, it never worked correctly, and we have now more other workarounds for the DMA position fixes. Thus better to remove it. Also, change POS_FIX_NONE to POS_FIX_LPIB to represent its real role better. Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit 675f25d4d3ff6501cbce608bcc2333a56ec4c105 Author: Takashi Iwai Date: Tue Jun 10 17:53:20 2008 +0200 ALSA: hda - Add bdl_pos_adj option Added a new option, bdl_pos_adj, to adjust the delay of IRQ-wakeup timing. Most HD-audio hardwares have a problem that a BDL IRQ is issued before actually the data and the DMA pointer are updated. We have already a mechanism to force to delay snd_pcm_period_elapsed() calls via workq, but this costs much CPU, and typically the delay is within one sample. Thus, it's more clever to adjust the BDL entries instead. The new option adds the size of the delay in frames. As default, it's set to 1 -- that is, one sample delay. Even the hardware is really correct, one sample delay is relatively harmless in comparison with reporting wrong positions. Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit 0a1b42db4bf9db233d1f29795086a9526e84c845 Author: Adrian Bunk Date: Tue Jun 10 01:26:28 2008 +0300 sound: sound/oss/dmasound/: cleanups This patch contains the following cleanups: - make the following needlessly global functions static: - dmasound_core.c: get_afmt_string() - dmasound_paula.c: dmasound_paula_init() - dmasound_q40.c: dmasound_q40_init() - remove the following unused global variable: - dmasound_core.c: software_input_volume Signed-off-by: Adrian Bunk Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit 781711a93e8aae756e8ae07acef185a6dfe552b8 Author: Takashi Iwai Date: Tue Jun 10 12:34:45 2008 +0200 ALSA: emu10k1 - Fix page allocation with GFP_DMA Added the missing GFP_ATOMIC to page_alloc when called with GFP_DMA. GFP_KERNEL often results in stalls for ZONE_DMA, so GFP_ATOMIC is more prgmatic. Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit 36ca6e133ae3a57318a3ad8a41b2f005e3934c29 Author: Akio Idehara Date: Mon Jun 9 22:57:40 2008 +0900 [ALSA] hda - Add Toshiba dynabook SS RX1 support I have Toshiba dynabook SS RX1 and this patch adds that support. Signed-off-by: Akio Idehara Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit 3ae5f36a368b143cfd8a6f7a988a012c1b46eda0 Author: Krzysztof Helt Date: Sun Jun 8 07:57:53 2008 +0200 [ALSA] opti93x: fix sound ouput for Opti930 This patch fixes silenced output from the Opti930. Signed-off-by: Krzysztof Helt Acked-by: Rene Herman Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit 38f582270feb19ea8821cb64c5d2fdbd6bdd0bd9 Author: Takashi Iwai Date: Sun Jun 8 09:17:27 2008 +0200 [ALSA] ac97 - Fix power_save option value as time-out The power_save option was set as boot although it was meant to be a timeout value like the same option of snd-hda-intel originally. Now fixed to the same style. Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit 05a076de83b507238cd186e93daeaf15820d570e Author: Mark Brown Date: Fri Jun 6 17:13:53 2008 +0100 [ALSA] ASoC: Fix default mono mixer configuration for WM8510 Signed-off-by: Mark Brown Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit 0264b3b636f1ba5777426dd9b5bb5cbbeb5fcb34 Author: Juergen Beisert Date: Fri Jun 6 17:02:57 2008 +0200 [ALSA] ac97: add support for wm9711 master left inv switch This patch adds support for Master Left Inv Switch on wm9711. At least required to drive the mono speaker on the PXA270 platfrom Signed-off-by: Juergen Beisert Acked-by: Mark Brown Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit a5a242dceed5d1c74fe46088762a9e4312c2d000 Author: Vegard Nossum Date: Fri Jun 13 11:00:14 2008 +0200 stacktrace: print_stack_trace() cleanup - shorter code and better atomicity with regards to printk(). (It's been tested with the backtrace self-test code on i386 and x86_64.) Cc: Arjan van de Ven Signed-off-by: Vegard Nossum Signed-off-by: Ingo Molnar commit 131b943ae643b1ad6febd67cdbb31d955706ecf4 Author: Ben Hutchings Date: Thu Jun 5 17:37:15 2008 +0100 cputopology: always define CPU topology information, clean up simplify drivers/base/topology.c a bit. Signed-off-by: Ben Hutchings Signed-off-by: Ingo Molnar commit c50cbb05a05cf1f9ca3592272eff053c847727d8 Author: Ben Hutchings Date: Wed Jun 4 21:47:29 2008 -0700 cpu topology: always define CPU topology information This can result in an empty topology directory in sysfs, and requires in-kernel users to protect all uses with #ifdef - see . The documentation of CPU topology specifies what the defaults should be if only partial information is available from the hardware. So we can provide these defaults as a fallback. This patch: - Adds default definitions of the 4 topology macros to - Changes drivers/base/topology.c to use the topology macros unconditionally and to cope with definitions that aren't lvalues - Updates documentation accordingly [ From: Andrew Morton - fold now-duplicated code - fix layout ] Signed-off-by: Ben Hutchings Cc: Vegard Nossum Cc: Nick Piggin Cc: Chandra Seetharaman Cc: Suresh Siddha Cc: Mike Travis Cc: Christoph Lameter Cc: John Hawkes Cc: Zhang, Yanmin Signed-off-by: Andrew Morton Signed-off-by: Ingo Molnar commit 2429e4ee78e2fa40f82a4572dd21d4f3b4de9325 Author: Huang, Ying Date: Fri Jun 13 14:40:17 2008 +0800 lockdep: output lock_class key instead of address for forward dependency output The key instead of address of lock_class should be output in /proc/lockdep when forward dependency is output, because key is output for lock_class itself as identifier too. This patch is based on x86/auto-latest branch of git-x86 tree, and has been tested on x86_64 platform. Signed-off-by: Huang Ying Signed-off-by: Ingo Molnar commit d8f3de0d2412bb91639cfefc5b3c79dbf3812212 Author: Rafael J. Wysocki Date: Thu Jun 12 23:24:06 2008 +0200 Suspend-related patches for 2.6.27 ACPI PM: Add possibility to change suspend sequence There are some systems out there that don't work correctly with our current suspend/hibernation code ordering. Provide a workaround for these systems allowing them to pass 'acpi_sleep=old_ordering' in the kernel command line so that it will use the pre-ACPI 2.0 ("old") suspend code ordering. Unfortunately, this requires us to add a platform hook to the resuming of devices for recovering the platform in case one of the device drivers' .suspend() routines returns error code. Namely, ACPI 1.0 specifies that _PTS should be called before suspending devices, but _WAK still should be called before resuming them in order to undo the changes made by _PTS. However, if there is an error during suspending devices, they are automatically resumed without returning control to the PM core, so the _WAK has to be called from within device_resume() in that cases. The patch also reorders and refactors the ACPI suspend/hibernation code to avoid duplication as far as reasonably possible. Signed-off-by: Rafael J. Wysocki Acked-by: Pavel Machek Signed-off-by: Jesse Barnes commit 53eb2fbeb9e68e1a9a23945de8450999c46270ce Merge: 8344b56... 0e6859d... Author: Jesse Barnes Date: Thu Jun 12 12:06:58 2008 -0700 Merge branch 'suspend' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6 into linux-next commit f781b03c4b1c713ac000877c8bbc31fc4164a29b Author: Cyrill Gorcunov Date: Thu Jun 12 17:08:16 2008 +0400 x86: touch_nmi_watchdog(): reset alert counters for supported nmi_watchdog modes only The checking 'if nmi_watchdog > 0' (ie NMI_NONE) is quite fast but it has a side effect - it's taken even if nmi_watchdog = NMI_DISABLED. Nowadays nmi_watchdog is set up to NMI_NONE by default so this condition is properly taken most the time but we better show this explicitly. Signed-off-by: Cyrill Gorcunov Signed-off-by: Ingo Molnar commit 6703f6d10dcd3316e03641a5ecaa6c8a04374d98 Author: Rafael J. Wysocki Date: Tue Jun 10 00:10:48 2008 +0200 x86, gart: add resume handling If GART IOMMU is used on an AMD64 system, the northbridge registers related to it should be restored during resume so that memory is not corrupted. Make gart_resume() handle that as appropriate. Ref. http://lkml.org/lkml/2008/5/25/96 and the following thread. Signed-off-by: Rafael J. Wysocki Signed-off-by: Ingo Molnar commit 20764ff1efb440640353053ec83263e69e1259e0 Author: Jiri Slaby Date: Thu Jun 12 11:27:03 2008 +0200 ftrace: fix printout Do not print loglevel before "entries of %ld bytes". Move it to the previous pr_info. Signed-off-by: Jiri Slaby Cc: Steven Rostedt Signed-off-by: Ingo Molnar commit bb6dfb32f90094fea647e1f27d994a8b6ddd2766 Merge: 4f384f8... 5e70b7f... Author: Ingo Molnar Date: Thu Jun 12 11:27:22 2008 +0200 Merge branch 'linus' into x86/gart commit bf07dc864902b3e788de5ab50dc62d5677da90f2 Author: Rafael J. Wysocki Date: Thu Jun 12 10:27:08 2008 +0200 x86: remove obsolete PM definitions from NMI header Remove obsolete and no longer used PM-related definitions from include/asm-x86/nmi.h. Signed-off-by: Rafael J. Wysocki Signed-off-by: Ingo Molnar commit 499f8f84b8324ba27d756e03f373fa16eeed9ccc Author: Andreas Herrmann Date: Tue Jun 10 16:06:21 2008 +0200 x86: rename pat_wc_enabled to pat_enabled BTW, what does pat_wc_enabled stand for? Does it mean "write-combining"? Currently it is used to globally switch on or off PAT support. Thus I renamed it to pat_enabled. I think this increases readability (and hope that I didn't miss something). Signed-off-by: Andreas Herrmann Signed-off-by: Ingo Molnar commit cd7a4e936d345ab4cb49d68192d90bd4e4c58458 Author: Andreas Herrmann Date: Tue Jun 10 16:05:39 2008 +0200 x86: PAT: fixed checkpatch errors (and whitespaces) x86: PAT: fixed checkpatch errors (and whitespaces) Signed-off-by: Andreas Herrmann Signed-off-by: Ingo Molnar commit 97cfab6ac4ddfda0d722393bbf46cc40bc332107 Author: Andreas Herrmann Date: Tue Jun 10 16:05:18 2008 +0200 x86: PAT: fix ambiguous paranoia check in pat_init() Starting with commit 8d4a4300854f3971502e81dacd930704cb88f606 (x86: cleanup PAT cpu validation) the PAT CPU feature flag is not cleared anymore. Now the error message "PAT enabled, but CPU feature cleared" in pat_init() is misleading. Furthermore the current code does not check for existence of the PAT CPU feature flag if a CPU is whitelisted in validate_pat_support. This patch clears pat_wc_enabled if boot CPU has no PAT feature flag and adapts the paranoia check. Signed-off-by: Andreas Herrmann Signed-off-by: Ingo Molnar commit ee863ba7ab3d3ed8a9585d378aae69d1e3e9f1b4 Author: Andreas Herrmann Date: Tue Jun 10 16:04:30 2008 +0200 x86: unconditionally enable PAT for AMD CPUs If PAT support is advertised it should just work. No errata known. Signed-off-by: Andreas Herrmann Signed-off-by: Ingo Molnar commit c26421d01986e1521043c8feb47256833df3bf31 Author: Venki Pallipadi Date: Thu May 29 12:01:44 2008 -0700 x86: fix Xorg crash with xf86MapVidMem error Clarify the usage of mtrr_lookup() in PAT code, and to make PAT code resilient to mtrr lookup problems. Specifically, pat_x_mtrr_type() is restructured to highlight, under what conditions we look for mtrr hint. pat_x_mtrr_type() uses a default type when there are any errors in mtrr lookup (still maintaining the pat consistency). And, reserve_memtype() highlights its usage ot mtrr_lookup for request type of '-1' and also defaults in a sane way on any mtrr lookup failure. pat.c looks at mtrr type of a range to get a hint on what mapping type to request when user/API: (1) hasn't specified any type (/dev/mem mapping) and we do not want to take performance hit by always mapping UC_MINUS. This will be the case for /dev/mem mappings used to map BIOS area or ACPI region which are WB'able. In this case, as long as MTRR is not WB, PAT will request UC_MINUS for such mappings. (2) user/API requests WB mapping while in reality MTRR may have UC or WC. In this case, PAT can map as WB (without checking MTRR) and still effective type will be UC or WC. But, a subsequent request to map same region as UC or WC may fail, as the region will get trackked as WB in PAT list. Looking at MTRR hint helps us to track based on effective type rather than what user requested. Again, here mtrr_lookup is only used as hint and we fallback to WB mapping (as requested by user) as default. In both cases, after using the mtrr hint, we still go through the memtype list to make sure there are no inconsistencies among multiple users. Signed-off-by: Venkatesh Pallipadi Signed-off-by: Suresh Siddha Tested-by: Rufus & Azrael Signed-off-by: Ingo Molnar commit 0e6859d49ff194e01afc229c996e3aefca1a0539 Author: Rafael J. Wysocki Date: Thu Jun 5 01:17:28 2008 +0200 ACPI PM: Remove obsolete Toshiba workaround Remove the obsolete workaround for a Toshiba Satellite 4030cdt S1 problem from drivers/acpi/sleep/main.c . Signed-off-by: Rafael J. Wysocki Acked-by: Pavel Machek Signed-off-by: Len Brown commit 8d2bdf49481b27096e242119e73abe9348c1019b Author: Rafael J. Wysocki Date: Thu Jun 5 01:16:37 2008 +0200 PCI ACPI: Drop the second argument of platform_pci_choose_state Since the second argument of acpi_pci_choose_state() and platform_pci_choose_state() is never used, remove it. Signed-off-by: Rafael J. Wysocki Acked-by: Pavel Machek Signed-off-by: Len Brown commit 06166780eb53685e72b589814d535d1f9948e761 Author: David Brownell Date: Thu Jun 5 01:15:40 2008 +0200 ACPI PM: acpi_pm_device_sleep_state() cleanup Get rid of a superfluous acpi_pm_device_sleep_state() parameter. The only legitimate value of that parameter must be derived from the first parameter, which is what all the callers already do. (However, this does not address the fact that ACPI still doesn't set up those flags.) Signed-off-by: David Brownell Acked-by: Pavel Machek Signed-off-by: Rafael J. Wysocki Signed-off-by: Len Brown commit fec6a82282cc38397ba1c4a7b5b99d70eea06532 Author: Kumar Gala Date: Wed Jun 11 13:07:26 2008 -0500 powerpc/booke: Fix some comments related to debug level exceptions Signed-off-by: Kumar Gala commit 5848f16947026601b9cb4df694bb9f44dfefc354 Author: Anton Vorontsov Date: Wed Jun 11 16:32:48 2008 +0400 powerpc/QE: qe_reset should be __init This patch fixes following section mismatch: WARNING: arch/powerpc/sysdev/built-in.o(.text+0x11d8): Section mismatch in reference from the function qe_reset() to the function .init.text:cpm_muram_init() Signed-off-by: Anton Vorontsov Signed-off-by: Kumar Gala commit d2146cb274e494dd14e50f5b4cdeb7a5e5af5421 Author: Giuseppe Coviello Date: Fri May 23 03:51:37 2008 +1000 powerpc/4xx: Convert Sam440ep DTS to dts-v1 This makes the sam440ep.dts dts-v1 compliant. Signed-off-by: Giuseppe Coviello Signed-off-by: Josh Boyer commit b6014e15bc38a33cf9591d33674dd870027cb623 Author: Giuseppe Coviello Date: Tue May 20 01:20:47 2008 +1000 powerpc/4xx: Sam440ep support The Sam440ep is an high customizable general purpose mini-itx board, based on the AMCC 440EP and with a LatticeXP FPGA onboard. It's poduced by ACube Systems Srl (Bassano del Grappa, Italy), http://www.acube-systems.biz. Signed-off-by: Giuseppe Coviello Signed-off-by: Josh Boyer commit 995ada8d5e6b3d5a32ca3e544a564d0623c4f3fa Author: Stefan Roese Date: Fri Jun 6 00:22:29 2008 +1000 powerpc/4xx: PCIe driver now detects if a port is disabled via the dev-tree This patch add a check to the PPC4xx PCIe driver to detect if the port is disabled via the device-tree. This is needed for the AMCC Canyonlands board which has an option to either select 2 PCIe ports or 1 PCIe port and one SATA port. The SATA port and the 1st PCIe port pins are multiplexed so we can't start both drivers. Signed-off-by: Stefan Roese Acked-by: Benjamin Herrenschmidt Signed-off-by: Josh Boyer commit 156cea23acffaa270cf243a3a0f43e1e30682081 Author: Valentine Barshak Date: Thu Jun 5 23:36:38 2008 +1000 powerpc/4xx: Fix resource issue in warp-nand.c The "ndfc-chip" device doesn't need any resources. All resources are handled by the "ndfc-nand" device. Registering the same memory resource twice causes "cat /proc/iomem" to go into an infinite loop displaying NDFC memory addresses. Signed-off-by: Valentine Barshak Acked-by: Stefan Roese Acked-by: Sean MacLennan Signed-off-by: Josh Boyer commit 887942d7d62499999f7868f194d7f41fd6e88795 Author: Imre Kaloz Date: Wed Jun 11 08:03:41 2008 -0400 powerpc/4xx: MTD support for the AMCC Taishan Board Add support for the NOR flash found on the AMCC Taishan Board and enable MTD support in the defconfig. Signed-off-by: Imre Kaloz Acked-by: Stefan Roese Signed-off-by: Josh Boyer commit 939e622c5e7f8ccd6b0a05a810114b368f7de69e Author: Josh Boyer Date: Wed Jun 11 07:52:40 2008 -0400 Revert "[POWERPC] 4xx: Fix 460GT support to not enable FPU" This reverts commit acb0142bf01c0ebe18f09e37814451ee6a873e27. AMCC has indicated that the PPC 460GT does have FPU support. This revert enables the FPU for those chips again. Signed-off-by: Josh Boyer commit 8344b568f5bdc7ee1bba909de3294c6348c36056 Author: Alex Chiang Date: Tue Jun 10 15:30:42 2008 -0600 PCI: ACPI PCI slot detection driver Detect all physical PCI slots as described by ACPI, and create entries in /sys/bus/pci/slots/. Not all physical slots are hotpluggable, and the acpiphp module does not detect them. Now we know the physical PCI geography of our system, without caring about hotplug. [kaneshige.kenji@jp.fujitsu.com: export-kobject_rename-for-pci_hotplug_core] Signed-off-by: Kenji Kaneshige Acked-by: Greg KH [akpm@linux-foundation.org: build fix] [akpm@linux-foundation.org: fix build with CONFIG_DMI=n] Signed-off-by: Alex Chiang Cc: Greg KH Cc: Kristen Carlson Accardi Cc: Len Brown Acked-by: Len Brown Acked-by: Kenji Kaneshige Signed-off-by: Andrew Morton Signed-off-by: Andrew Morton Signed-off-by: Jesse Barnes commit f46753c5e354b857b20ab8e0fe7b2579831dc369 Author: Alex Chiang Date: Tue Jun 10 15:28:50 2008 -0600 PCI: introduce pci_slot Currently, /sys/bus/pci/slots/ only exposes hotplug attributes when a hotplug driver is loaded, but PCI slots have attributes such as address, speed, width, etc. that are not related to hotplug at all. Introduce pci_slot as the primary data structure and kobject model. Hotplug attributes described in hotplug_slot become a secondary structure associated with the pci_slot. This patch only creates the infrastructure that allows the separation of PCI slot attributes and hotplug attributes. In this patch, the PCI hotplug core remains the only user of this infrastructure, and thus, /sys/bus/pci/slots/ will still only become populated when a hotplug driver is loaded. A later patch in this series will add a second user of this new infrastructure and demonstrate splitting the task of exposing pci_slot attributes from hotplug_slot attributes. - Make pci_slot the primary sysfs entity. hotplug_slot becomes a subsidiary structure. o pci_create_slot() creates and registers a slot with the PCI core o pci_slot_add_hotplug() gives it hotplug capability - Change the prototype of pci_hp_register() to take the bus and slot number (on parent bus) as parameters. - Remove all the ->get_address methods since this functionality is now handled by pci_slot directly. [achiang@hp.com: rpaphp-correctly-pci_hp_register-for-empty-pci-slots] Tested-by: Badari Pulavarty Acked-by: Benjamin Herrenschmidt [akpm@linux-foundation.org: build fix] [akpm@linux-foundation.org: make headers_check happy] [akpm@linux-foundation.org: nuther build fix] [akpm@linux-foundation.org: fix typo in #include] Signed-off-by: Alex Chiang Signed-off-by: Matthew Wilcox Cc: Greg KH Cc: Kristen Carlson Accardi Cc: Len Brown Acked-by: Kenji Kaneshige Signed-off-by: Andrew Morton Signed-off-by: Jesse Barnes commit fe99740cac117f208707488c03f3789cf4904957 Author: Alex Chiang Date: Tue Jun 10 15:27:37 2008 -0600 PCI: construct one fakephp slot per PCI slot Register one slot per slot, rather than one slot per function. Change the name of the slot to fake%d instead of the pci address. Signed-off-by: Alex Chiang Signed-off-by: Matthew Wilcox Cc: Greg KH Cc: Kristen Carlson Accardi Cc: Len Brown Cc: Kenji Kaneshige Signed-off-by: Andrew Morton Signed-off-by: Jesse Barnes commit 64dab20450184e6586c12704da11ce48a0918050 Author: Jesse Barnes Date: Tue Jun 10 14:20:03 2008 -0700 PCI: update location of PCI hotplug mailing lists Just concentrate PCI traffic at linux-pci@vger rather than splitting it between vger and a sf.net moderated (!) mailing list. Acked-by: Matthew Wilcox Acked-by: Scott Murray Acked-by: Kristen Carlson Accardi Signed-off-by: Jesse Barnes commit ec1aef33668448718fcba79e4e981592bfd7e0a3 Author: Adrian Bunk Date: Tue Jun 10 15:12:58 2008 -0500 jfs: remove DIRENTSIZ After fat gets fixed the unused DIRENTSIZ macro was the last user of struct dirent we should get rid of since the kernel and userspace versions differed. Signed-off-by: Adrian Bunk Signed-off-by: Dave Kleikamp commit 27e468597315e5ce078fdd39856b7954b639183a Author: Krzysztof Helt Date: Sun Jun 8 13:47:02 2008 +0200 PCI: unhide the SMBus on the Compaq Deskpro EN This patch unhides the SMBus on Compaq Deskpro EN SFF P667 with the Intel 815E chipset. Unhiding it reveals a THMC51 hardware monitoring chip. Jean Delvare has checked that this machine has no ACPI magic touching the SMBus nor the hardware monitoring chip, so this should be safe. The patch was tested on Fedora Core 9 with 2.6.25.4 kernel. Signed-off-by: Krzysztof Helt Tested-by: Rafał Haładuda CC: Jean Delvare Signed-off-by: Jesse Barnes commit 5d9526d07a8dc87460c13c277b3edcc26b0e662f Author: Alex Chiang Date: Wed Jun 4 11:39:07 2008 -0600 PCIe: fix 'symbol not declared' sparse warnings While refreshing my physical PCI slot series against upstream, I noticed a few simple sparse/compile warnings that were easy to fix. Fix the following sparse warnings in PCIe: drivers/pci/pcie/aer/aerdrv.c:86:6: warning: symbol 'pci_no_aer' was not declared. Should it be static? drivers/pci/pcie/portdrv_bus.c:21:17: warning: symbol 'pcie_port_bus_type' was not declared. Should it be static? Signed-off-by: Alex Chiang Signed-off-by: Jesse Barnes commit 10260d9ab702454460242ef4d3ecfc49fcb96a5b Author: Jean Delvare Date: Wed Jun 4 13:53:31 2008 +0200 PCI: Unhide the SMBus on the Compaq Evo D510 One more machine with a hidden Intel SMBus. Unhiding it reveals a SMSC EMC6D100 hardware monitoring chip. I have checked that this machine has no ACPI magic touching the SMBus nor the hardware monitoring chip, so this should be safe. Signed-off-by: Jean Delvare Signed-off-by: Jesse Barnes commit ece6763419f44ed72f4fc78752e5f5364df1794b Author: Julia Lawall Date: Thu May 29 15:04:38 2008 +0200 PCI: eliminate double kfree in intel-iommu initialization The destination of goto error also does a kfree(g_iommus), so it is not correct to do one here. This was found using Coccinelle (http://www.emn.fr/x-info/coccinelle/). Signed-off-by: Julia Lawall Signed-off-by: Jesse Barnes commit 6a3f084971bad985722afe25b16a5c0a990cea75 Author: Kenji Kaneshige Date: Mon Jun 2 09:22:34 2008 -0700 pciehp: removes redundant NULL write to slot status register Cleanup to remove a redundant NULL write to SLOTSTATUS. Signed-off-by: Kenji Kaneshige Signed-off-by: Kristen Carlson Accardi Signed-off-by: Jesse Barnes commit d8b23e8ffb567758fc6074e97210ddb42114827c Author: Kenji Kaneshige Date: Mon Jun 2 09:07:46 2008 -0700 pciehp: fixes typo in dbg_ctrl() in pciehp_hpc.c Fixup a typo in dbg_ctrl(); it was fetching SLOTSTATUS twice. Signed-off-by: Kenji Kaneshige Signed-off-by: Kristen Carlson Accardi Signed-off-by: Jesse Barnes commit ac9c052d10d8d6f46a30cb46c0d6d753997c299f Author: Kenji Kaneshige Date: Wed May 28 15:01:03 2008 +0900 shpchp: check firmware before taking control Fix the following problems of shpchp driver about getting hotplug control from firmware. - The shpchp driver must not control the hotplug controller if it fails to get control from the firmware. But current shpchp controls the hotplug controller regardless the result, because it doesn't check the return value of get_hp_hw_control_from_firmware(). - Current shpchp driver doesn't support _OSC. The pciehp driver already have the code for evaluating _OSC and OSHP and shpchp and pciehp can share it. So this patch move that code from pciehp to acpi_pcihp.c. Signed-off-by: Kenji Kaneshige Signed-off-by: Jesse Barnes commit d737bdc141f0f040171fffbb7f9e08a825b27aab Author: Kenji Kaneshige Date: Wed May 28 14:59:44 2008 +0900 pciehp: block signals while waiting for command completion Since we need to wait for command completion for muximum 1sec, waiting command should not be interrupted by a signal. Signed-off-by: Kenji Kaneshige Signed-off-by: Jesse Barnes commit 125c39f7d233de28f342d80858025ffed0c4b7f4 Author: Kenji Kaneshige Date: Wed May 28 14:57:30 2008 +0900 pciehp: evaluate _OSC/OSHP before controller init Current pciehp evaluates _OSC/OSHP method after some controller initialization is done. So if evaluating _OSC/OSHP is failed, we need to cleanup already initialized data structures or hardware. This clearly is not robust way. With this patch, _OSC/OSHP evaluation is done first. Signed-off-by: Kenji Kaneshige Signed-off-by: Jesse Barnes commit b143b3cc82fac459feb1abdffb1d77be9805adaa Author: Kenji Kaneshige Date: Wed May 28 14:56:00 2008 +0900 pciehp: remove redundant pci_dev initialization Remove the redundant initialization of pci_dev member of struct controller in pciehp_probe(). It is initialized in pcie_init(). Signed-off-by: Kenji Kaneshige Signed-off-by: Jesse Barnes commit e3f2baebf4209b5927e23fa65d5977d31db936b3 Author: Yinghai Lu Date: Thu May 22 14:35:11 2008 -0700 PCI/x86: early dump pci conf space v2 Allows us to dump PCI space before any kernel changes have been made. Signed-off-by: Yinghai Lu Signed-off-by: Jesse Barnes commit e7891c733f9b26c851edde50cf886a30bd133dbd Author: Yinghai Lu Date: Thu May 22 14:35:21 2008 -0700 PCI/x86: write_pci_config_byte fix offset also add write_pci_config_16 Signed-off-by: Yinghai Lu Signed-off-by: Jesse Barnes commit 25e18499e08cb097cbbfeab5de25d094d5312ee5 Author: Rafael J. Wysocki Date: Wed May 21 01:40:43 2008 +0200 Implement new suspend and hibernation callbacks for platform busses Implement new suspend and hibernation callbacks for the platform bus type. Signed-off-by: Rafael J. Wysocki Acked-by: Pavel Machek Signed-off-by: Greg KH Signed-off-by: Jesse Barnes commit bbb44d9f23d868a2837c6b22b8dfb123d8e7800c Author: Rafael J. Wysocki Date: Tue May 20 00:49:04 2008 +0200 PCI: implement new suspend/resume callbacks Implement new suspend and hibernation callbacks for the PCI bus type. Signed-off-by: Rafael J. Wysocki Acked-by: Pavel Machek Signed-off-by: Jesse Barnes commit 1eede070a59e1cc73da51e1aaa00d9ab86572cfc Author: Rafael J. Wysocki Date: Tue May 20 23:00:01 2008 +0200 Introduce new top level suspend and hibernation callbacks Introduce 'struct pm_ops' and 'struct pm_ext_ops' ('ext' meaning 'extended') representing suspend and hibernation operations for bus types, device classes, device types and device drivers. Modify the PM core to use 'struct pm_ops' and 'struct pm_ext_ops' objects, if defined, instead of the ->suspend(), ->resume(), ->suspend_late(), and ->resume_early() callbacks (the old callbacks will be considered as legacy and gradually phased out). The main purpose of doing this is to separate suspend (aka S2RAM and standby) callbacks from hibernation callbacks in such a way that the new callbacks won't take arguments and the semantics of each of them will be clearly specified. This has been requested for multiple times by many people, including Linus himself, and the reason is that within the current scheme if ->resume() is called, for example, it's difficult to say why it's been called (ie. is it a resume from RAM or from hibernation or a suspend/hibernation failure etc.?). The second purpose is to make the suspend/hibernation callbacks more flexible so that device drivers can handle more than they can within the current scheme. For example, some drivers may need to prevent new children of the device from being registered before their ->suspend() callbacks are executed or they may want to carry out some operations requiring the availability of some other devices, not directly bound via the parent-child relationship, in order to prepare for the execution of ->suspend(), etc. Ultimately, we'd like to stop using the freezing of tasks for suspend and therefore the drivers' suspend/hibernation code will have to take care of the handling of the user space during suspend/hibernation. That, in turn, would be difficult within the current scheme, without the new ->prepare() and ->complete() callbacks. Signed-off-by: Rafael J. Wysocki Acked-by: Pavel Machek Signed-off-by: Jesse Barnes commit bb71ad880204b79d60331d3384103976e086cb9f Author: Gary Hade Date: Mon May 12 13:57:46 2008 -0700 PCI: boot parameter to avoid expansion ROM memory allocation Contention for scarce PCI memory resources has been growing due to an increasing number of PCI slots in large multi-node systems. The kernel currently attempts by default to allocate memory for all PCI expansion ROMs so there has also been an increasing number of PCI memory allocation failures seen on these systems. This occurs because the BIOS either (1) provides insufficient PCI memory resource for all the expansion ROMs or (2) provides adequate PCI memory resource for expansion ROMs but provides the space in kernel unexpected BIOS assigned P2P non-prefetch windows. The resulting PCI memory allocation failures may be benign when related to memory requests for expansion ROMs themselves but in some cases they can occur when attempting to allocate space for more critical BARs. This can happen when a successful expansion ROM allocation request consumes memory resource that was intended for a non-ROM BAR. We have seen this happen during PCI hotplug of an adapter that contains a P2P bridge where successful memory allocation for an expansion ROM BAR on device behind the bridge consumed memory that was intended for a non-ROM BAR on the P2P bridge. In all cases the allocation failure messages can be very confusing for users. This patch provides a new 'pci=norom' kernel boot parameter that can be used to disable the default PCI expansion ROM memory resource allocation. This provides a way to avoid the above described issues on systems that do not contain PCI devices for which drivers or user-level applications depend on the default PCI expansion ROM memory resource allocation behavior. Signed-off-by: Gary Hade Signed-off-by: Jesse Barnes commit 5ca5c02f0e81c094c19d30dc0d13be4e929a994a Author: Hidetoshi Seto Date: Mon May 19 13:48:17 2008 +0900 PCI/MSI: skip calling pci_find_capability from msi_set_mask_bits The position of MSI capability is already cached in the msi_desc when we enter the msi_set_mask_bits(). Use it instead. Signed-off-by: Hidetoshi Seto Acked-by: Arnaldo Carvalho de Melo Signed-off-by: Jesse Barnes commit cf35e4ad57b4c39a4c74921e20e48ec0dbeb14f4 Author: Adrian Bunk Date: Tue May 20 01:02:06 2008 +0300 PCI: remove CVS keywords This patch removes CVS keywords that weren't updated for a long time from comments. Signed-off-by: Adrian Bunk Signed-off-by: Jesse Barnes commit 90a57dab6a2bce7f2ef186fe2d07a84d14a2a625 Author: Kenji Kaneshige Date: Thu May 15 15:23:13 2008 +0900 pci-acpi: formatting cleanups for _OSC Minor cleanup in pci-acpi.c. Signed-off-by: Kenji Kaneshige Acked-by: Shaohua Li Signed-off-by: Jesse Barnes commit c155062d6ebed676f62761f90c62894a97816932 Author: Kenji Kaneshige Date: Thu May 15 15:22:35 2008 +0900 pci-acpi: remove unused variable in __pci_osc_support_set The 'retval' variable in __pci_osc_support_set() is no longer used. Remove this unused variable. Signed-off-by: Kenji Kaneshige Acked-by: Shaohua Li Signed-off-by: Jesse Barnes commit 681f7d9db58d2b6dc3c3b784d6815f86a53b6ba0 Author: Kenji Kaneshige Date: Thu May 15 15:21:16 2008 +0900 pci-acpi: add flag to indicate query had been done Current pci-acpi implementation checks osc_data->support_stat to see if control bits had been already queried. It is not good from the viewpoint of easy understanding. So this patch adds new 'is_queried' flag to indicate query had been done. Signed-off-by: Kenji Kaneshige Acked-by: Shaohua Li Signed-off-by: Jesse Barnes commit 5e0b9947452c824d66fafe728a46312cff544a7f Author: Kenji Kaneshige Date: Thu May 15 15:20:11 2008 +0900 pci-acpi: use local buffer for _OSC Current pci-acpi implementation uses array in osc_data directly to evaluate _OSC. It needs to save the old data and restore it if _OSC evaluation fails. To make it more robust, we should use local array to evaluate _OSC. Signed-off-by: Kenji Kaneshige Acked-by: Shaohua Li Signed-off-by: Jesse Barnes commit 8a7a4faf96eef8c87421be0d3f33ea036804289b Author: Kenji Kaneshige Date: Thu May 15 15:18:53 2008 +0900 pci-acpi: remove duplicate code for _OSC Remove the duplicated code in acpi_query_osc() and acpi_run_osc(). It simplifies the code very much. Signed-off-by: Kenji Kaneshige Acked-by: Shaohua Li Signed-off-by: Jesse Barnes commit 49db139955d3392c6c4facf987905d0a9afed581 Author: Zhao Yakui Date: Tue May 13 11:15:05 2008 +0800 PCI: Disable PME during PCI scan If a device supports #PME and can generate PME events from D0, we may see superfluous events before a driver is loaded (drivers should only enable PME as needed), preventing suspend from working if the corresponding GPE was enabled. Likewise, if the ACPI device has the _PRW object, the _PSW/_DSW object will be called in order to disable the wakeup functionality. But when it is allowed to wake up the sleeping state, OSPM will enable it again. So we should disable PME in the course of scanning PCI devices and enable it again only when PME events are actually required to be generated from the requested PCI state (for example, D3_hot or D3_cold). It is also safe to disable PME again when the PME is disabled for the PCI devices. Signed-off-by: Zhao Yakui Signed-off-by: Li Shaohua Signed-off-by: Jesse Barnes commit e1a2a51e684bfe9d6165992d4a065439617a3107 Author: Rafael J. Wysocki Date: Thu May 15 21:51:31 2008 +0200 Suspend/Resume bug in PCI layer wrt quirks Some quirks should be called with interrupt disabled, we can't directly call them in .resume_early. Also the patch introduces pci_fixup_resume_early and pci_fixup_suspend, which matches current device core callbacks (.suspend/.resume_early). TBD: Somebody knows why we need quirk resume should double check if a quirk should be called in resume or resume_early. I changed some per my understanding, but can't make sure I fixed all. Signed-off-by: Shaohua Li Signed-off-by: Jesse Barnes commit 273c11270d3715c4c06d4df1607a1a60034d887b Author: Miklos Vajna Date: Tue May 13 18:38:56 2008 +0200 x86/PCI: janitor work in irq.c Wrapped long lines, removed trailing whitespaces, fixed case indentation inside switch and so. Signed-off-by: Miklos Vajna Signed-off-by: Jesse Barnes commit eaf611426d4b9ad0d0a30c0a8d414380128720af Author: Robert P. J. Day Date: Sun May 11 16:58:53 2008 -0400 PCI: Replace deprecated __initcall with device_initcall. Signed-off-by: Robert P. J. Day Signed-off-by: Jesse Barnes commit 19792a0859f96e9fc8ce87d97b269bcb895389e5 Author: Adrian Bunk Date: Mon May 5 21:25:47 2008 +0300 PCI: drivers/pci/pci.c: add prototypes This patch adds prototypes for pcibios_disable_device() and pcibios_set_pcie_reset_state() in include/linux/pci.h While I was at it, I also removed the unneeded "extern" from the prototype of pcibios_add_platform_entries(). Signed-off-by: Adrian Bunk Signed-off-by: Jesse Barnes commit 552fe04aa242f164f126abfdb3f6f90fd6679d9f Author: Adrian Bunk Date: Mon May 5 21:21:51 2008 +0300 PCI: make {pciehp,shpchp}_slot_with_bus static This patch makes the needlessly global {pciehp,shpchp}_slot_with_bus static. Signed-off-by: Adrian Bunk Signed-off-by: Jesse Barnes commit 5093bb965a163fe288c3e5db0275165f86c895c2 Author: Anton Vorontsov Date: Fri May 23 20:39:06 2008 +0400 powerpc/QE: switch to the cpm_muram implementation This is very trivial patch. We're transitioning to the cpm_muram_* calls. That's it. Less trivial changes: - BD_SC_* defines were defined in the cpm.h and qe.h, so to avoid redefines we remove BD_SC from the qe.h and use cpm.h along with cpm_muram_* prototypes; - qe_muram_dump was unused and thus removed; - added some code to the cpm_common.c to support legacy QE bindings (data-only node name). - For convenience, define qe_* calls to cpm_*. So drivers need not to be changed. Signed-off-by: Anton Vorontsov Signed-off-by: Kumar Gala commit b13e930906b313d787f4dd07fe78b74a3a8c22c4 Author: Anton Vorontsov Date: Fri May 23 20:39:01 2008 +0400 powerpc/83xx: new board support: MPC8360E-RDK This is patch adds board file, device tree, and defconfig for the new board, made by Freescale Semiconductor Inc. and Logic Product Development. Currently supported: 1. UEC{1,2,7,4}; 2. I2C; 3. SPI; 4. NS16550 serial; 5. PCI and miniPCI; 6. Intel NOR StrataFlash X16 64Mbit PC28F640P30T85; 7. Graphics controller, Fujitsu MB86277. Not supported in this patch: 1. StMICRO NAND512W3A2BN6E, 512 Mbit (supported with FSL UPM NAND driver); 2. FHCI USB (supported with FHCI driver). 3. QE Serial UCCs (tested to not work with ucc_uart driver, reason unknown, yet); 4. ADC AD7843 (tested to work, but support via device tree depends on major SPI rework, GPIO API, etc); Signed-off-by: Anton Vorontsov Signed-off-by: Kumar Gala commit 32def337aafee0bc65eb58d5b1b3617525eb7fb7 Author: Anton Vorontsov Date: Mon May 19 21:47:05 2008 +0400 powerpc/QE: implement support for the GPIO LIB API This is needed to access QE GPIOs via Linux GPIO API. Signed-off-by: Anton Vorontsov Acked-By: Timur Tabi Signed-off-by: Kumar Gala commit 9572653ee01a2134ae3a1d7aa29ce9d026a6afe9 Author: Anton Vorontsov Date: Fri May 23 20:38:58 2008 +0400 powerpc/QE: prepare QE PIO code for GPIO LIB support - split and export __par_io_config_pin() out of par_io_config_pin(), so we could use the prefixed version with GPIO LIB API; - rename struct port_regs to qe_pio_regs, and place it into qe.h; - rename #define NUM_OF_PINS to QE_PIO_PINS, and place it into qe.h. Signed-off-by: Anton Vorontsov Acked-By: Timur Tabi Signed-off-by: Kumar Gala commit 5e41486c408eb4206aee09303631427f57771691 Author: Anton Vorontsov Date: Fri May 23 20:38:56 2008 +0400 powerpc/QE: add support for QE USB clocks routing This patch adds a function to the qe_lib to setup QE USB clocks routing. To setup clocks safely, cmxgcr register needs locking, so I just reused ucc_lock since it was used only to protect cmxgcr. The idea behind placing clocks routing functions into the qe_lib is that later we'll hopefully switch to the generic Linux Clock API, thus, for example, FHCI driver may be used for QE and CPM chips without nasty #ifdefs. This patch also fixes QE_USB_RESTART_TX command definition in the qe.h. Signed-off-by: Anton Vorontsov Acked-By: Timur Tabi Signed-off-by: Kumar Gala commit 83ff9dcf375c418ca3b98eb950711525ca1269e2 Author: Anton Vorontsov Date: Fri May 23 20:38:54 2008 +0400 powerpc/sysdev: implement FSL GTM support GTM stands for General-purpose Timers Module and able to generate timer{1,2,3,4} interrupts. These timers are used by the drivers that need time precise interrupts (like for USB transactions scheduling for the Freescale USB Host controller as found in some QE and CPM chips), or these timers could be used as wakeup events from the CPU deep-sleep mode. Things unimplemented: 1. Cascaded (32 bit) timers (1-2, 3-4). This is straightforward to implement when needed, two timers should be marked as "requested" and configured as appropriate. 2. Super-cascaded (64 bit) timers (1-2-3-4). This is also straightforward to implement when needed, all timers should be marked as "requested" and configured as appropriate. Signed-off-by: Anton Vorontsov Signed-off-by: Kumar Gala commit 5399be7f4679251e8c4c6637fde240f7ac8efdb9 Author: Wolfgang Grandegger Date: Fri Jun 6 13:50:06 2008 +0200 powerpc/85xx: add local bus nodes for Flash and CAN to tqm8560.dts This patch adds local bus nodes for Flash and CAN to the DTS file of the TQM8560 module (tqm8560.dts). Signed-off-by: Wolfgang Grandegger Signed-off-by: Kumar Gala commit 02b8a3d1eb2ae6353cfbce627ded22e299cf1989 Author: Wolfgang Grandegger Date: Fri Jun 6 13:50:05 2008 +0200 powerpc/85xx: support for the TQM8548 module using the big Flash Some TQM85xx boards could be equipped with up to 1 GiB (NOR) flash memory and therefore a modified memory map is required and setup by the board loader. This patch adds an appropriate DTS file. Signed-off-by: Wolfgang Grandegger Signed-off-by: Kumar Gala commit 6dd1b64a26d9209c09488e9fa257e7744823bf29 Author: Wolfgang Grandegger Date: Fri Jun 6 13:50:04 2008 +0200 powerpc/85xx: add board support for the TQM8548 modules This patch adds support for the TQM8548 modules from TQ-Components GmbH (http://www.tqc.de). Signed-off-by: Wolfgang Grandegger Signed-off-by: Kumar Gala commit 4fb035f69e3d08506b65d33b97be1b0e78af39a2 Author: Wolfgang Grandegger Date: Fri Jun 6 13:50:03 2008 +0200 powerpc/85xx: correct vendor prefix in DTS files for TQM85xx modules Like for the TQM5200, the vendor prefix "tqc," is now used for all TQM85xx modules from TQ-Components GmbH (http://www.tqc.de) in the corresponding DTS files. Signed-off-by: Wolfgang Grandegger Signed-off-by: Kumar Gala commit 00dba56465228825ea806e3a7fc0aa6bba7bdc6c Author: Thomas Gleixner Date: Mon Jun 9 18:35:28 2008 +0200 x86: move more common idle functions/variables to process.c more unification. Should cause no change in functionality. Signed-off-by: Thomas Gleixner Signed-off-by: Ingo Molnar commit 09fd4b4ef5bc7e5222c13acec1bee8cd252fb63f Author: Thomas Gleixner Date: Mon Jun 9 18:04:27 2008 +0200 x86: use cpuid to check MWAIT support for C1 cpuid(0x05) provides extended information about MWAIT in EDX when bit 0 of ECX is set. Bit 4-7 of EDX determine whether MWAIT is supported for C1. C1E enabled CPUs have these bits set to 0. Based on an earlier patch from Andi Kleen. Signed-off-by: Thomas Gleixner Signed-off-by: Ingo Molnar commit 732d7be17b98ebfd59e5864c3490f19856fa832c Author: Thomas Gleixner Date: Mon Jun 9 17:27:20 2008 +0200 x86: use cpuinfo to check for interrupt pending message msr Simplify code: no need to do a cpuid(1) again. The cpuinfo structure has all necessary information already. Signed-off-by: Thomas Gleixner Signed-off-by: Ingo Molnar commit aa83f3f2cfc74d66d01b1d2eb1485ea1103a0f4e Author: Thomas Gleixner Date: Mon Jun 9 17:11:13 2008 +0200 x86: cleanup C1E enabled detection Rename the "MSR_K8_ENABLE_C1E" MSR to INT_PENDING_MSG, which is the name in the data sheet as well. Move the C1E mask to the header file. Signed-off-by: Thomas Gleixner Signed-off-by: Ingo Molnar commit 6ddd2a27948f0bd02a2ad001e8a6816898eba0dc Author: Thomas Gleixner Date: Mon Jun 9 16:59:53 2008 +0200 x86: simplify idle selection default_idle is selected in cpu_idle(), when no other idle routine is selected. Select it in select_idle_routine() when mwait is not selected. Signed-off-by: Thomas Gleixner Signed-off-by: Ingo Molnar commit 2b1bce1787700768cbc87c8509851c6f49d252dc Author: Ankita Garg Date: Mon Jun 9 14:10:25 2008 +0530 ftrace: disable tracing when current_tracer is set to "none" Found that inspite of setting the current_tracer to "none", trace from the previous trace type continued to be collected. The patch below fixes this and causes the trace to be disabled when the "none" type is selected. Compile and boot tested the patch for functionality. Signed-off-by: Ankita Garg Signed-off-by: Ingo Molnar commit 040ec23d07f95285e9777a85cda29cb339a3065b Author: Ingo Molnar Date: Mon Jun 9 01:45:29 2008 -0700 sched: sched_clock() lockdep fix Sitsofe Wheeler bisected the following commit to cause a lockdep to warn about itself and turn itself off: > commit c6531cce6e6e4b99bcda46b6268d6f2d9e30aea4 > Author: Ingo Molnar > Date: Mon May 12 21:21:14 2008 +0200 > > sched: do not trace sched_clock do not use raw irq flags in cpu_clock() as it causes lockdep to lose track of the true state of the IRQ flag. Reported-and-bisected-by: Sitsofe Wheeler Signed-off-by: Ingo Molnar Signed-off-by: Andrew Morton commit e9886ca3a93d7d041d3de8e5acebe213da777d59 Author: Paul Mundt Date: Mon Jun 9 17:12:24 2008 +0900 sched: kill off dead cfs_rq_set_shares() Building with CONFIG_FAIR_GROUP_SCHED=y on UP results in an unused cfs_rq_set_shares() reference. As nothing is using this dummy function in the first place, just kill it off. Signed-off-by: Paul Mundt Signed-off-by: Ingo Molnar commit 917f0af9e5a9ceecf9e72537fabb501254ba321d Author: Paul Mackerras Date: Mon Jun 9 14:01:46 2008 +1000 powerpc: Remove arch/ppc and include/asm-ppc All the maintained platforms are now in arch/powerpc, so the old arch/ppc stuff can now go away. Acked-by: Adrian Bunk Acked-by: Arnd Bergmann Acked-by: Becky Bruce Acked-by: Benjamin Herrenschmidt Acked-by: Geert Uytterhoeven Acked-by: Grant Likely Acked-by: Jochen Friedrich Acked-by: John Linn Acked-by: Jon Loeliger Acked-by: Josh Boyer Acked-by: Kumar Gala Acked-by: Olof Johansson Acked-by: Peter Korsgaard Acked-by: Scott Wood Acked-by: Sean MacLennan Acked-by: Segher Boessenkool Acked-by: Stefan Roese Acked-by: Stephen Neuendorffer Acked-by: Wolfgang Denk Signed-off-by: Paul Mackerras commit 6492c7f83e88a3a9521793b6934d882b97afe287 Author: Mike Galbraith Date: Sun Jun 8 09:27:13 2008 +0200 sched: trivial sched_features cleanup Remove unused debug/tuning features. Signed-off-by: Mike Galbraith Signed-off-by: Ingo Molnar commit 5b80fe8bd732b5dd442118a43e02db22e8fd93e2 Author: Paolo Ciarrocchi Date: Sat Jun 7 14:34:42 2008 +0200 x86: coding style fixes to arch/x86/kernel/sys_i386_32.c Before: total: 16 errors, 25 warnings, 246 lines checked After: total: 0 errors, 7 warnings, 246 lines checked Compile tested. paolo@paolo-desktop:/tmp$ size sys* text data bss dec hex filename 1209 0 0 1209 4b9 sys_i386_32.o.after 1209 0 0 1209 4b9 sys_i386_32.o.before paolo@paolo-desktop:/tmp$ md5sum sys* 6144f6d6ce7342c3e192681a1ccaa1c1 sys_i386_32.o.after 6144f6d6ce7342c3e192681a1ccaa1c1 sys_i386_32.o.before Signed-off-by: Paolo Ciarrocchi Signed-off-by: Ingo Molnar commit 7058b06188232381c13ff05a3caf458bb892b834 Author: Paolo Ciarrocchi Date: Sat Jun 7 14:14:35 2008 +0200 x86: coding style fixes to arch/x86/pci/irq. Before: total: 60 errors, 85 warnings, 1237 lines checked After: total: 1 errors, 82 warnings, 1226 lines checked WARNING: line over 80 characters Compile tested. paolo@paolo-desktop:/tmp$ size irq.o.* text data bss dec hex filename 6128 440 76 6644 19f4 irq.o.after 6128 440 76 6644 19f4 irq.o.before Signed-off-by: Paolo Ciarrocchi Signed-off-by: Ingo Molnar commit 9e26d84273541a8c6c2efb705457ca8e6245fb73 Author: Robert Richter Date: Fri Jun 6 12:01:13 2008 +0200 fix build bug in "x86: add PCI extended config space access for AMD Barcelona" Also much less code now. Signed-off-by: Robert Richter Signed-off-by: Ingo Molnar commit ce8e37cdbdb34a9faeade22e0e6440f0d04560f5 Author: Jeremy Fitzhardinge Date: Fri Jun 6 10:21:39 2008 +0100 x86: set PAE PHYSICAL_MASK_SHIFT to 44 bits. When a 64-bit x86 processor runs in 32-bit PAE mode, a pte can potentially have the same number of physical address bits as the 64-bit host ("Enhanced Legacy PAE Paging"). This means, in theory, we could have up to 52 bits of physical address in a pte. The 32-bit kernel uses a 32-bit unsigned long to represent a pfn. This means that it can only represent physical addresses up to 32+12=44 bits wide. Rather than widening pfns everywhere, just set 2^44 as the Linux x86_32-PAE architectural limit for physical address size. Signed-off-by: Jeremy Fitzhardinge Cc: Jan Beulich Signed-off-by: Ingo Molnar commit 9985b0bab332289f14837eff3c6e0bcc658b58f7 Author: David Rientjes Date: Thu Jun 5 12:57:11 2008 -0700 sched: prevent bound kthreads from changing cpus_allowed Kthreads that have called kthread_bind() are bound to specific cpus, so other tasks should not be able to change their cpus_allowed from under them. Otherwise, it is possible to move kthreads, such as the migration or software watchdog threads, so they are not allowed access to the cpu they work on. Cc: Peter Zijlstra Cc: Paul Menage Cc: Paul Jackson Signed-off-by: David Rientjes Signed-off-by: Ingo Molnar commit 668231141f307ffd81db075b34bddaedae0ec863 Author: Andreas Herrmann Date: Thu Jun 5 16:35:10 2008 +0200 x86: fix compile warning in io_apic_{32,64}.c Signed-off-by: Ingo Molnar commit 7def2be1dc679984f4c4fb3ef19a8a081b2454ec Author: Peter Zijlstra Date: Thu Jun 5 14:49:58 2008 +0200 sched: fix hotplug cpus on ia64 Cliff Wickman wrote: > I built an ia64 kernel from Andrew's tree (2.6.26-rc2-mm1) > and get a very predictable hotplug cpu problem. > billberry1:/tmp/cpw # ./dis > disabled cpu 17 > enabled cpu 17 > billberry1:/tmp/cpw # ./dis > disabled cpu 17 > enabled cpu 17 > billberry1:/tmp/cpw # ./dis > > The script that disables the cpu always hangs (unkillable) > on the 3rd attempt. > > And a bit further: > The kstopmachine thread always sits on the run queue (real time) for about > 30 minutes before running. this fix solves some (but not all) issues between CPU hotplug and RT bandwidth throttling. Signed-off-by: Peter Zijlstra Signed-off-by: Ingo Molnar commit 34078a5e44db3cbed2e0ed580c29a39d94e0cd97 Author: Abhishek Sagar Date: Tue Jun 3 08:33:41 2008 +0530 ftrace: prevent freeing of all failed updates Steven Rostedt wrote: > If we unload a module and reload it, will it ever get converted again? The intent was always to filter core kernel functions to prevent their freeing. Here's a fix which should allow re-recording of module call-sites. Signed-off-by: Ingo Molnar commit eb9a7bf09172f409c10ec9560adeea95bb4045f5 Author: Abhishek Sagar Date: Sun Jun 1 21:47:54 2008 +0530 ftrace: add debugfs entry 'failures' Identify functions which had their mcount call-site updates failed. This can help us track functions which ftrace shouldn't fiddle with, and are thus not being traced. If there is no race with any external agent which is modifying the mcount call-site, then this file displays no entries (normal case). Signed-off-by: Abhishek Sagar Signed-off-by: Ingo Molnar commit 1d74f2a0f64b4091e5e91b55ac1b17dff93f4b59 Author: Abhishek Sagar Date: Sun Jun 1 21:47:42 2008 +0530 ftrace: remove ftrace_ip_converted() Remove the unneeded function ftrace_ip_converted(). Signed-off-by: Abhishek Sagar Signed-off-by: Ingo Molnar commit 0eb967012ea15e6e8cfab483d9fa37bc602d400c Author: Abhishek Sagar Date: Sun Jun 1 21:47:30 2008 +0530 ftrace: prevent freeing of all failed updates Prevent freeing of records which cause problems and correspond to function from core kernel text. A new flag, FTRACE_FL_CONVERTED is used to mark a record as "converted". All other records are patched lazily to NOPs. Failed records now also remain on frace_hash table. Each invocation of ftrace_record_ip now checks whether the traced function has ever been recorded (including past failures) and doesn't re-record it again. Signed-off-by: Abhishek Sagar Signed-off-by: Ingo Molnar commit 6ad36762d7a88d747f6fed95194b4f7ff5da8df4 Author: Oleg Nesterov Date: Sun Jun 8 21:20:42 2008 +0400 __mutex_lock_common: use signal_pending_state() Change __mutex_lock_common() to use signal_pending_state() for the sake of the code re-use. This adds 7 bytes to kernel/mutex.o, but afaics only because gcc isn't smart enough. (btw, uninlining of __mutex_lock_common() shrinks .text from 2722 to 1542, perhaps it is worth doing). Signed-off-by: Oleg Nesterov Signed-off-by: Ingo Molnar commit af1cf204ba2fd8135933a2e4df523fb1112dc0e2 Author: Ingo Molnar Date: Sun May 25 21:16:06 2008 +0200 x86, mpparse: build fix fix: LD .tmp_vmlinux1 arch/x86/kernel/built-in.o: In function `setup_arch': : undefined reference to `early_reserve_e820_mpc_new' Signed-off-by: Ingo Molnar commit 6780711e9817585f89b02b0556aac3564cbe1f45 Author: Yinghai Lu Date: Sun Jun 8 19:53:26 2008 -0700 x86: update mptable, fix need to call early_reserve_e820() to preallocate mptable for 32bit Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit d49c4288407b2ffa8cab270cb5bc6882abe969f6 Author: Yinghai Lu Date: Sun Jun 8 18:31:54 2008 -0700 x86: make generic arch support NUMAQ ... so it could fall back to normal numa and we'd reduce the impact of the NUMAQ subarch. NUMAQ depends on GENERICARCH also decouple genericarch numa from acpi. also make it fall back to bigsmp if apicid > 8. Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit 4e78c91abe1a40b905611100a593be62784ba355 Author: Ingo Molnar Date: Mon Jun 9 11:59:30 2008 +0200 Revert "x86, numaq: add pci_acpi_scan_root() stub" This reverts commit f3294690979634ee10398bb0beadfe1d4edb881d. That bug will be fixed in a better way via: x86: make generic arch support NUMAQ commit e0da33646826b66ef933d47ea2fb7a693fd849bf Author: Yinghai Lu Date: Sun Jun 8 18:29:22 2008 -0700 x86: introduce max_physical_apicid for bigsmp switching a multi-socket test-system with 3 or 4 ioapics, when 4 dualcore cpus or 2 quadcore cpus installed, needs to switch to bigsmp or physflat. CPU apic id is [4,11] instead of [0,7], and we need to check max apic id instead of cpu numbers. also add check for 32 bit when acpi is not compiled in or acpi=off. Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit c3ff01672a23fabb40d4b80ff25a845582fd07c2 Author: Yinghai Lu Date: Fri Jun 6 18:54:26 2008 -0700 x86: fix boot failure with 64GB+ system with numa 32-bit Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit 9043f007963f4039befa3c31f47173f74a0b1c70 Author: Yinghai Lu Date: Fri Jun 6 18:53:33 2008 -0700 x86, numa, 32-bit: use find_e820_area() to find KVA RAM on node don't assume we can use RAM near the end of every node. Esp systems that have few memory and they could have kva address and kva RAM all below max_low_pfn. Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit cc1a9d86ce989083703c4bdc11b75a87e1cc404a Author: Yinghai Lu Date: Sun Jun 8 19:39:16 2008 -0700 mm, x86: shrink_active_range() should check all Now we are using register_e820_active_regions() instead of add_active_range() directly. So end_pfn could be different between the value in early_node_map to node_end_pfn. So we need to make shrink_active_range() smarter. shrink_active_range() is a generic MM function in mm/page_alloc.c but it is only used on 32-bit x86. Should we move it back to some file in arch/x86? Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit db3660c1905293b91653e07f7857576df71ebf28 Author: Yinghai Lu Date: Tue Jun 3 01:43:24 2008 -0700 x86: remove all active memory ranges before registering them again after trimming - 64bit this way we keep the early_node_map all right. Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit 237749428552e2f81ec6c801482dfd8a777e470b Author: Ingo Molnar Date: Mon Jun 9 10:57:16 2008 +0200 Revert "x86, 32-bit: SRAT fix" This reverts commit ea57a5a6db8961de35cd1a4a80d8e01ee4307973, a better fix will be merged. commit 0f3d6bcd391b058c619fc30e8022e8a29fbf4bef Author: Trent Piepho Date: Wed May 28 09:48:32 2008 +1000 powerpc: Improve (in|out)_[bl]eXX() asm code Since commit 4cb3cee03d558fd457cb58f56c80a2a09a66110c the code generated for the in_beXX() and out_beXX() mmio functions has been sub-optimal. The out_leXX() family of functions are created with the macro DEF_MMIO_OUT_LE() while the out_beXX() family are created with DEF_MMIO_OUT_BE(). In what was perhaps a bit too much macro use, both of these macros are in turn created via the macro DEF_MMIO_OUT(). For the LE versions, eventually they boil down to an asm that will look something like this: asm("sync; stwbrx %1,0,%2" : "=m" (*addr) : "r" (val), "r" (addr)); The issue is that the "stwbrx" instruction only comes in an indexed, or 'x', version, in which the address is represented by the sum of two registers (the "0,%2"). Unfortunately, gcc doesn't have a constraint for an indexed memory reference. The "m" constraint allows both indexed and offset, i.e. register plus constant, memory references and there is no "stwbr" version for offset references. "m" also allows updating addresses and there is no 'u' version of "stwbrx" like there is with "stwux". The unused first operand to the asm is just to tell gcc that *addr is an output of the asm. The address used is passed in a single register via the third asm operand, and the index register is just hard coded as 0. This means gcc is forced to put the address in a single register and can't use index addressing, e.g. if one has the data in register 9, a base address in register 3 and an index in register 4, gcc must emit code like "add 11,4,3; stwbrx 9,0,11" instead of just "stwbrx 9,4,3". This costs an extra add instruction and another register. For gcc 4.0 and older, there doesn't appear to be anything that can be done. But for 4.1 and newer, there is a 'Z' constraint. It does not allow "updating" addresses, but does allow both indexed and offset addresses. However, the only allowed constant offset is 0. We can then use the undocumented 'y' operand modifier, which causes gcc to convert "0(reg)" into the equivilient "0,reg" format that can be used with stwbrx. This brings us the to problem with the BE version. In this case, the "stw" instruction does have both indexed and non-indexed versions. The final asm ends up looking like this: asm("sync; stw%U0%X0 %1,%0" : "=m" (*addr) : "r" (val), "r" (addr)); The undocumented codes "%U0" and "%0X" will generate a 'u' if the memory reference should be an auto-updating one, and an 'x' if the memory reference is indexed, respectively. The third operand is unused, it's just there because asm the code is reused from the LE version. However, gcc does not know this, and generates unnecessary code to stick addr in a register! To use the example from the LE version, gcc will generate "add 11,4,3; stwx 9,4,3". It is able to use the indexed address "4,3" for the "stwx", but still thinks it needs to put 4+3 into register 11, which will never be used. This also ends up happening a lot for the offset addressing mode, where common code like this: out_be32(&device_registers->some_register, data); uses an instruction like "stw 9, 42(3)", where register 3 has the pointer device_registers and 42 is the offset of some_register in that structure. gcc will be forced to generate the unnecessary instruction "addi 11, 3, 42" to put the address into a single (unused) register. The in_* versions end up having these exact same problems as well. Signed-off-by: Trent Piepho CC: Benjamin Herrenschmidt CC: Andreas Schwab Signed-off-by: Paul Mackerras commit 19fc65b5251dfd90312ae0142cc8650cd273e6a6 Author: Michael Ellerman Date: Mon May 26 12:12:32 2008 +1000 powerpc: Fix irq_alloc_host() reference counting and callers When I changed irq_alloc_host() to take an of_node (52964f87c64e6c6ea671b5bf3030fb1494090a48: "Add an optional device_node pointer to the irq_host"), I botched the reference counting semantics. Stephen pointed out that it's irq_alloc_host()'s business if it needs to take an additional reference to the device_node, the caller shouldn't need to care. Signed-off-by: Michael Ellerman Signed-off-by: Paul Mackerras commit 2272a55f16c998d916904bba018b0f40f430d744 Author: Michael Ellerman Date: Mon May 26 12:12:31 2008 +1000 powerpc: Rework qe_ic_init() so we can avoid freeing the irq_host If we do the call to of_address_to_resource() first, then we don't need to worry about freeing the irq_host (which the code doesn't do currently anyway). Signed-off-by: Michael Ellerman Signed-off-by: Paul Mackerras commit 84f1c1e08906f2206f2bbdd19e4ff6a0757ff7f8 Author: Michael Ellerman Date: Mon May 26 12:12:30 2008 +1000 powerpc: Rework ipic_init() so we can avoid freeing the irq_host If we do the call to of_address_to_resource() first, then we don't need to worry about freeing the irq_host (which the code doesn't do currently anyway). Signed-off-by: Michael Ellerman Signed-off-by: Paul Mackerras commit 997526db9fa408058f23de19c0e12abd9207276b Author: Michael Ellerman Date: Mon May 26 12:12:30 2008 +1000 powerpc: Rework Axon MSI setup so we can avoid freeing the irq_host If we do the call to irq_of_parse_and_map() first, then we don't need to worry about freeing the irq_host. Signed-off-by: Michael Ellerman Signed-off-by: Paul Mackerras commit 7c4f10b9003dc8423df07574ba197bbbe3bc382b Author: Rune Torgersen Date: Sat May 24 01:59:15 2008 +1000 powerpc: Check that TASK_SIZE does not overlap KERNEL_START Make sure CONFIG_TASK_SIZE does not overlap CONFIG_KERNEL_START This could happen when overriding settings to get 1GB lowmem, and would lead to userland mysteriousely hanging. This setting is only used by PPC32. Signed-off-by: Rune Torgersen Acked-by: Kumar Gala Signed-off-by: Paul Mackerras commit cec0dd94cf2628d5ba184e725f02be061e7bb014 Author: Stephen Rothwell Date: Fri May 23 16:39:58 2008 +1000 platinumfb: Use linux/of_{device,platform}.h instead of asm Signed-off-by: Stephen Rothwell Acked-by: Benjamin Herrenschmidt Signed-off-by: Paul Mackerras commit c401b0445649d8a7e3e43fee915ec9aa6149a1b9 Author: Stephen Rothwell Date: Fri May 23 16:32:54 2008 +1000 of_serial: Use linux/of_platform.h instead of asm Signed-off-by: Stephen Rothwell Acked-by: Arnd Bergmann Signed-off-by: Paul Mackerras commit d33b78df142177d51de0ed0c4f3e57c8b5e8ff89 Author: Emil Medve Date: Fri May 23 08:40:16 2008 +1000 powerpc: Add the PC speaker only when requested This eliminates this minor boot-time debugging error message: [ 1.316451] calling add_pcspkr+0x0/0x84 [ 1.316478] initcall add_pcspkr+0x0/0x84 returned -19 after 0 msecs Signed-off-by: Emil Medve Signed-off-by: Paul Mackerras commit bacd73ae76c310bc3c71d21a2864746fd9696d3c Author: Remi Machet Date: Fri May 16 10:26:02 2008 +1000 powerpc: Add C2K to configuration Support for the C2K cPCI Single Board Computer from GEFanuc (PowerPC MPC7448 with a Marvell MV64460 chipset). All features of the board are not supported yet, but the board boots, flash works, all Ethernet ports are working and PCI devices are all found (USB and SATA on PCI1 do not work yet). Part 5 of 5: add the Kconfig entry for the C2K board. Signed-off-by: Remi Machet Signed-off-by: Paul Mackerras commit 2059615f37505b7ee988549ce4de34b620110ebe Author: Remi Machet Date: Fri May 16 10:25:28 2008 +1000 powerpc: Default configuration for C2K Support for the C2K cPCI Single Board Computer from GEFanuc (PowerPC MPC7448 with a Marvell MV64460 chipset). All features of the board are not supported yet, but the board boots, flash works, all Ethernet ports are working and PCI devices are all found (USB and SATA on PCI1 do not work yet). Part 4 of 5: this is the default config for the board. In this configuration the kernel is going to try to boot from MTD partition 3 on the NOR flash (see c2k.dts for details about the partitioning of the flash). Signed-off-by: Remi Machet Signed-off-by: Paul Mackerras commit 46388c0d88add1c39926cd415039fe931edd5829 Author: Remi Machet Date: Sat May 17 05:31:04 2008 +1000 powerpc: C2K board driver Support for the C2K cPCI Single Board Computer from GEFanuc (PowerPC MPC7448 with a Marvell MV64460 chipset). All features of the board are not supported yet, but the board boots, flash works, all Ethernet ports are working and PCI devices are all found (USB and SATA on PCI1 do not work yet). Part 3 of 5: driver for the board. At this time it is very generic and similar to its original, the driver for the prpmc2800. Signed-off-by: Remi Machet Signed-off-by: Paul Mackerras commit c6ec08e03dd06b8dfa3f6d938b0a89c6ed8475c9 Author: Remi Machet Date: Wed May 21 06:50:10 2008 +1000 powerpc: Boot code for the C2K Support for the C2K cPCI Single Board Computer from GEFanuc (PowerPC MPC7448 with a Marvell MV64460 chipset). All features of the board are not supported yet, but the board boots, flash works, all Ethernet ports are working and PCI devices are all found (USB and SATA on PCI1 do not work yet). Part 2 of 5: support for the board in arch/powerpc/boot. Signed-off-by: Remi Machet Signed-off-by: Paul Mackerras commit 61586476cda599c64ab2b8f4f808d6a615a2fab2 Author: Remi Machet Date: Wed May 21 03:30:24 2008 +1000 powerpc: DTS file for the C2K Support for the C2K cPCI Single Board Computer from GEFanuc (PowerPC MPC7448 with a Marvell MV64460 chipset). All features of the board are not supported yet, but the board boots, flash works, all Ethernet ports are working and PCI devices are all found (USB and SATA on PCI1 do not work yet). Part 1 of 5: DTS file describing the board peripherals. As far as I know all peripherals except the FPGA are listed in there (I did not include the FPGA because a lot of work is needed there). Signed-off-by: Remi Machet Signed-off-by: Paul Mackerras commit 5073e7ee8684f3997b3633a2e5fa574027f37891 Author: Anton Vorontsov Date: Sat May 24 04:40:00 2008 +1000 powerpc/mpic: Fix ambiguous else statement This fixes the following warning, introduced by commit 475ca391b490a683d66bf19999a8a7a24913f139 (mpic: Deal with bogus NIRQ in Feature Reporting Register): CC arch/powerpc/sysdev/mpic.o arch/powerpc/sysdev/mpic.c: In function 'mpic_alloc': arch/powerpc/sysdev/mpic.c:1146: warning: suggest explicit braces to avoid ambiguous 'else' Signed-off-by: Anton Vorontsov Acked-by: Kumar Gala Signed-off-by: Paul Mackerras commit 8a3e1c670e503ddd6f6c373b307f38b783ee3a50 Merge: e026892... 60d5019... Author: Paul Mackerras Date: Mon Jun 9 12:19:41 2008 +1000 Merge branch 'merge' Conflicts: arch/powerpc/sysdev/fsl_soc.c commit ea57a5a6db8961de35cd1a4a80d8e01ee4307973 Author: Ingo Molnar Date: Fri Jun 6 16:28:23 2008 +0200 x86, 32-bit: SRAT fix we were adding reserved BIOS ranges as general memory as well => not good. solves this crash: [ 20.068075] hostname used greatest stack depth: 6464 bytes left [ 20.121404] BUG: unable to handle kernel <1>BUG: unable to handle kernel NULL pointer dereference at 00000b8c [ 20.121404] IP: [] kmap_atomic_prot+0x2d/0x1c3 [ 20.121404] *pdpt = 00000000367eb001 *pde = 0000000000000000 [ 20.121404] Oops: 0000 [#1] PREEMPT SMP DEBUG_PAGEALLOC [ 20.121404] [ 20.121404] Pid: 2061, comm: rc.sysinit Not tainted (2.6.26-rc3 #2440) [ 20.121404] EIP: 0060:[] EFLAGS: 00010206 CPU: 0 [ 20.121404] EIP is at kmap_atomic_prot+0x2d/0x1c3 Signed-off-by: Ingo Molnar commit e958b3600484533ff801920290468adc8135f89d Author: Thomas Gleixner Date: Wed Jun 4 23:22:32 2008 +0200 sched: move weighted_cpuload into #ifdef CONFIG_SMP section weighted_cpuload is only used on SMP. move it into the CONFIG_SMP section. Signed-off-by: Thomas Gleixner commit 68f4f1ec08e3d95730a2693b99df8260aa0d06ae Author: Max Krasnyansky Date: Thu May 29 11:17:02 2008 -0700 sched: Move cpu masks from kernel/sched.c into kernel/cpu.c kernel/cpu.c seems a more logical place for those maps since they do not really have much to do with the scheduler these days. kernel/cpu.c is now built for the UP kernel too, but it does not affect the size the kernel sections. $ size vmlinux before text data bss dec hex filename 3313797 307060 310352 3931209 3bfc49 vmlinux after text data bss dec hex filename 3313797 307060 310352 3931209 3bfc49 vmlinux Signed-off-by: Max Krasnyansky Cc: pj@sgi.com Cc: menage@google.com Cc: rostedt@goodmis.org Cc: mingo@elte.hu Acked-by: Peter Zijlstra Signed-off-by: Thomas Gleixner commit 5c8e1ed1d204a6770ca2854cd3b3597070fe7e5a Author: Max Krasnyansky Date: Thu May 29 11:17:01 2008 -0700 sched: CPU hotplug events must not destroy scheduler domains created by the cpusets First issue is not related to the cpusets. We're simply leaking doms_cur. It's allocated in arch_init_sched_domains() which is called for every hotplug event. So we just keep reallocation doms_cur without freeing it. I introduced free_sched_domains() function that cleans things up. Second issue is that sched domains created by the cpusets are completely destroyed by the CPU hotplug events. For all CPU hotplug events scheduler attaches all CPUs to the NULL domain and then puts them all into the single domain thereby destroying domains created by the cpusets (partition_sched_domains). The solution is simple, when cpusets are enabled scheduler should not create default domain and instead let cpusets do that. Which is exactly what the patch does. Signed-off-by: Max Krasnyansky Cc: pj@sgi.com Cc: menage@google.com Cc: rostedt@goodmis.org Cc: mingo@elte.hu Acked-by: Peter Zijlstra Signed-off-by: Thomas Gleixner commit 1100ac91b6af02d8639d518fad5b434b1bf44ed6 Author: Ingo Molnar Date: Thu Jun 5 12:25:37 2008 +0200 sched: fix cpuprio build bug this patch was not built on !SMP: kernel/sched_rt.c: In function 'inc_rt_tasks': kernel/sched_rt.c:404: error: 'struct rq' has no member named 'online' Signed-off-by: Ingo Molnar commit e539d8fcd11af811db70707d47ea436d5621d0da Author: Thomas Gleixner Date: Thu Jun 5 10:28:00 2008 +0200 sched: fix the cpuprio count really Peter pointed out that the last version of the "fix" was still one off under certain circumstances. Use BITS_TO_LONG instead to get an accurate result. Signed-off-by: Thomas Gleixner commit 709d4b0c60f990bccf3e10ba7c6da407ad65c97f Author: Gregory Haskins Date: Wed Jun 4 15:04:10 2008 -0400 sched: fix cpupri priocount A rounding error was pointed out by Peter Zijlstra which would result in the structure holding priorities to be off by one. Signed-off-by: Gregory Haskins Cc: Peter Zijlstra Cc: Steven Rostedt Cc: Arnaldo Carvalho de Melo Signed-off-by: Thomas Gleixner commit 1f11eb6a8bc92536d9e93ead48fa3ffbd1478571 Author: Gregory Haskins Date: Wed Jun 4 15:04:05 2008 -0400 sched: fix cpupri hotplug support The RT folks over at RedHat found an issue w.r.t. hotplug support which was traced to problems with the cpupri infrastructure in the scheduler: https://bugzilla.redhat.com/show_bug.cgi?id=449676 This bug affects 23-rt12+, 24-rtX, 25-rtX, and sched-devel. This patch applies to 25.4-rt4, though it should trivially apply to most cpupri enabled kernels mentioned above. It turned out that the issue was that offline cpus could get inadvertently registered with cpupri so that they were erroneously selected during migration decisions. The end result would be an OOPS as the offline cpu had tasks routed to it. This patch generalizes the old join/leave domain interface into an online/offline interface, and adjusts the root-domain/hotplug code to utilize it. I was able to easily reproduce the issue prior to this patch, and am no longer able to reproduce it after this patch. I can offline cpus indefinately and everything seems to be in working order. Thanks to Arnaldo (acme), Thomas, and Peter for doing the legwork to point me in the right direction. Also thank you to Peter for reviewing the early iterations of this patch. Signed-off-by: Gregory Haskins Cc: Peter Zijlstra Cc: Steven Rostedt Cc: Arnaldo Carvalho de Melo Cc: Ingo Molnar Signed-off-by: Thomas Gleixner commit 099f98c8a1f13501a98afbfff4756395a610581c Author: Gautham R Shenoy Date: Thu May 29 20:56:32 2008 +0530 sched: print the sd->level in sched_domain_debug code While printing out the visual representation of the sched-domains, print the level (MC, SMT, CPU, NODE, ... ) of each of the sched_domains. Credit: Peter Zijlstra Signed-off-by: Gautham R Shenoy Signed-off-by: Ingo Molnar commit e29c98d12b3f02d6ac711c60b4a5f8a46d1cf19b Author: Gautham R Shenoy Date: Thu May 29 12:36:18 2008 +0530 sched: update the sched-domains debug documentation SCHED_DOMAIN_DEBUG mentioned in the Documentation for sched-domains for enabling sched-domains debugging doesn't exist anymore. Update the documentation to reflect the correct way of enabling sched-domain debugging. Signed-off-by: Gautham R Shenoy Signed-off-by: Ingo Molnar commit 6d6bc0ad867c46896d0994bb039e7550ecb9b51d Author: Dhaval Giani Date: Fri May 30 14:23:45 2008 +0200 sched: add comments for ifdefs in sched.c make sched.c easier to read. Signed-off-by: Dhaval Giani Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit e21f5b153b9b4a6775d7d41964e372e13a9178ab Author: Arjan van de Ven Date: Fri May 23 09:05:58 2008 -0700 sched: print module list in the "scheduling while atomic" warning For the normal WARN_ON() etc we added a print-the-modules-list already, which is very useful to figure out candidates for certain types of bugs. This patch adds the same print to the "scheduling while atomic" BUG warning, for the same reason: when we get here it's very useful to see which modules are loaded, to narrow down the candidate code list. Signed-off-by: Arjan van de Ven Cc: mingo@elte.hu Signed-off-by: Thomas Gleixner commit c7aceaba042702538b23cf4e0de1b2891ad8e671 Author: Richard Kennedy Date: Thu May 15 12:09:15 2008 +0100 sched: reorder task_struct to reduce padding on 64bit builds This patch removes 24 bytes of padding and allows 1 extra object per slab on my fedora based config. Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 81d41d7ece23a1c3b4bcd1604026d3a06cc4dc79 Author: Rabin Vincent Date: Sun May 11 05:55:33 2008 +0530 sched: fix defined-but-unused warning Fix this warning, which appears with !CONFIG_SMP: kernel/sched.c:1216: warning: `init_hrtick' defined but not used Signed-off-by: Rabin Vincent Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 554ec22f075d46e4363520a407d2b7eeb5dfdd43 Author: Ingo Molnar Date: Mon May 12 21:21:03 2008 +0200 namespacecheck: more sched.c fixes [ Stephen Rothwell : build fix ] Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit f7dcd80bbc8e7032443e6539ea1b830364f82200 Author: Thomas Gleixner Date: Sat May 24 23:20:38 2008 +0200 namespacecheck: fixes in kernel/sched.c Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit d07355f5def74d060333563b36ab51b89fd44cdd Author: Dmitry Adamushko Date: Mon May 12 21:21:15 2008 +0200 sched: check for SD_SERIALIZE atomically in rebalance_domains() Nothing really serious here, mainly just a matter of nit-picking :-/ From: Dmitry Adamushko For CONFIG_SCHED_DEBUG && CONFIG_SYSCT configs, sd->flags can be altered while being manipulated in rebalance_domains(). Let's do an atomic check. We rely here on the atomicity of read/write accesses for aligned words. Signed-off-by: Dmitry Adamushko Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 6d299f1b53b84e2665f402d9bcc494800aba6386 Author: Gregory Haskins Date: Mon May 12 21:21:14 2008 +0200 sched: fix SCHED_OTHER balance iterator to include all tasks The currently logic inadvertently skips the last task on the run-queue, resulting in missed balance opportunities. Signed-off-by: Gregory Haskins Signed-off-by: David Bahi CC: Peter Zijlstra Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 6e0534f278199f1e3dd1049b9bc19a7a5b87ada1 Author: Gregory Haskins Date: Mon May 12 21:21:01 2008 +0200 sched: use a 2-d bitmap for searching lowest-pri CPU The current code use a linear algorithm which causes scaling issues on larger SMP machines. This patch replaces that algorithm with a 2-dimensional bitmap to reduce latencies in the wake-up path. Signed-off-by: Gregory Haskins Acked-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit f333fdc9098b71e2687e4e9b6349fcb352960d66 Author: Mike Galbraith Date: Mon May 12 21:20:55 2008 +0200 sched: make !hrtick faster it is safe to ignore timers and flags when the feature is disabled. Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 45c01e824991b2dd0a332e19efc4901acb31209f Author: Gregory Haskins Date: Mon May 12 21:20:41 2008 +0200 sched: prioritize non-migratable tasks over migratable ones Dmitry Adamushko pointed out a known flaw in the rt-balancing algorithm that could allow suboptimal balancing if a non-migratable task gets queued behind a running migratable one. It is discussed in this thread: http://lkml.org/lkml/2008/4/22/296 This issue has been further exacerbated by a recent checkin to sched-devel (git-id 5eee63a5ebc19a870ac40055c0be49457f3a89a3). >From a pure priority standpoint, the run-queue is doing the "right" thing. Using Dmitry's nomenclature, if T0 is on cpu1 first, and T1 wakes up at equal or lower priority (affined only to cpu1) later, it *should* wait for T0 to finish. However, in reality that is likely suboptimal from a system perspective if there are other cores that could allow T0 and T1 to run concurrently. Since T1 can not migrate, the only choice for higher concurrency is to try to move T0. This is not something we addessed in the recent rt-balancing re-work. This patch tries to enhance the balancing algorithm by accomodating this scenario. It accomplishes this by incorporating the migratability of a task into its priority calculation. Within a numerical tsk->prio, a non-migratable task is logically higher than a migratable one. We maintain this by introducing a new per-priority queue (xqueue, or exclusive-queue) for holding non-migratable tasks. The scheduler will draw from the xqueue over the standard shared-queue (squeue) when available. There are several details for utilizing this properly. 1) During task-wake-up, we not only need to check if the priority preempts the current task, but we also need to check for this non-migratable condition. Therefore, if a non-migratable task wakes up and sees an equal priority migratable task already running, it will attempt to preempt it *if* there is a likelyhood that the current task will find an immediate home. 2) Tasks only get this non-migratable "priority boost" on wake-up. Any requeuing will result in the non-migratable task being queued to the end of the shared queue. This is an attempt to prevent the system from being completely unfair to migratable tasks during things like SCHED_RR timeslicing. I am sure this patch introduces potentially "odd" behavior if you concoct a scenario where a bunch of non-migratable threads could starve migratable ones given the right pattern. I am not yet convinced that this is a problem since we are talking about tasks of equal RT priority anyway, and there never is much in the way of guarantees against starvation under that scenario anyway. (e.g. you could come up with a similar scenario with a specific timing environment verses an affinity environment). I can be convinced otherwise, but for now I think this is "ok". Signed-off-by: Gregory Haskins CC: Dmitry Adamushko CC: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit e7bd3de08e5208b09fbad06dd80294ea0e86f7bf Author: Adrian Bunk Date: Thu Jun 5 21:29:18 2008 +0300 ALSA: make sparc/dbri.c:snd_dbri_proc() static This patch makes the needlessly global snd_dbri_proc() static. Signed-off-by: Adrian Bunk Signed-off-by: Takashi Iwai commit 33b9cd8214d6e385fcd63c321252a359ee96d568 Author: Adrian Bunk Date: Thu Jun 5 21:24:10 2008 +0300 [ALSA] usbaudio.c: remove #ifndef CONFIG_USB_EHCI_SPLIT_ISO code Since USB_EHCI_SPLIT_ISO is now unconditionally enabled the #ifndef CONFIG_USB_EHCI_SPLIT_ISO became wrong. Reported-by: Robert P. J. Day Signed-off-by: Adrian Bunk Signed-off-by: Takashi Iwai commit 40445ac5e93f1b97e1d7a8c5bed9d34bd89b7550 Author: Adrian Bunk Date: Thu Jun 5 21:22:25 2008 +0300 [ALSA] remove SND_GUS_SYNTH After the removal of the sequencer instrument layer SND_GUS_SYNTH was no longer used. Reported-by: Robert P. J. Day Signed-off-by: Adrian Bunk Signed-off-by: Takashi Iwai commit 9aaca9683b014c4d718f32cbddb42e5b36ea3c0f Author: Geoffrey Wossum Date: Thu Jun 5 13:49:34 2008 +0100 [ALSA] Revised AT32 ASoC Patch Attached is a revised version of my patch to add AT32 to ASoC. This cleans most of the style issues associated with the previous patch. Also fixes an issue with the playpaq_wm8510.c code depending on a non-released patch to th AT32 portmux support. Patch is against 2.6.24.3.atmel.3 kernel, the latest AVR32 kernel Atmel has released, with the linux-2.6-asoc patches from when v2.6.24 was tagged also applied. [Fixed up minor checkpatch issues and updated for current kernels -- broonie] Signed-off-by: Geoffrey Wossum Signed-off-by: Mark Brown Signed-off-by: Takashi Iwai commit f10485e79882bf09cf442a673511154987b43e3b Author: Mark Brown Date: Thu Jun 5 13:49:33 2008 +0100 [ALSA] ASoC: Add WM8990 driver The WM8990 is a highly integrated ultra-low power hi-fi codec designed for handsets rich in multimedia features such as mobile TV, digital audio playback and gaming. The bulk of this driver was written by Liam Girdwood with some additional development and updates for new ASoC APIs by me. Signed-off-by: Liam Girdwood Signed-off-by: Mark Brown Signed-off-by: Takashi Iwai commit 5d421516670e8009436e299bd25cff1a6d3a4707 Author: Mark Brown Date: Thu Jun 5 13:49:32 2008 +0100 [ALSA] ASoC: Add WM8510 driver The WM8510 is a mono CODEC with speaker driver optimised for telephony applications, featuring: - 16/20/24/32 bit audio at data rates between 8kHz and 48kHz - On-chip PLL - Dual microphone inputs This driver was originally written by Liam Girdwood with updates from Brett Saunders, Geoffrey Wossum and myself. Signed-off-by: Liam Girdwood Signed-off-by: Brett Saunders Signed-off-by: Geoffrey Wossum Signed-off-by: Mark Brown Signed-off-by: Takashi Iwai commit 8b83afe0d21f07145ec34ac006656e4d3edc4bac Author: Ville Syrjälä Date: Tue Jun 3 20:52:10 2008 +0300 [ALSA] maestro3: Fix hw volume on HP OmniBook Make the hw volume buttons work correctly on some HP OmniBook laptops. The original quirk was apparently applied a bit too early and it was also lacking some critial register writes. This improved sequence was discovered by trial and error (like the original sequence). Tested and found working on OB500 and OB6000 laptops. Signed-off-by: Ville Syrjala Signed-off-by: Takashi Iwai commit 607d982bbea2a14b5b77cc7689f509d588e1e6da Author: Takashi Iwai Date: Wed Jun 4 12:41:21 2008 +0200 [ALSA] hda - increase max_codecs of ICH to 4 It turned out that some ICH9-based boards use SD3 for the audio codec where the current driver code doesn't probe. Since we have a better codec slot check now, it must be safe to increase this to 4. Signed-off-by: Takashi Iwai commit 2c3bf9abb11dd8050cd2d153917d1746c8d5af05 Author: Takashi Iwai Date: Wed Jun 4 12:39:38 2008 +0200 [ALSA] hda - Fix PLL gating control on Realtek codecs On some Realtek codecs, the analog PLL gating control bit must be set off while the default value is 1. Signed-off-by: Takashi Iwai commit 17bba1b72d190742c99a140154f0abac9c1996c3 Author: Jiang zhe Date: Wed Jun 4 12:11:07 2008 +0200 [ALSA] hda - support intel DG33 motherboards These two motherboards's pin configuration are not covered by driver. I wrote a new model to support them. Signed-off-by: Jiang zhe Signed-off-by: Takashi Iwai commit cddc0ab71194a09c0ac359be10a0f1ef976ddc95 Author: Prakash, Sathya Date: Wed May 21 00:56:41 2008 +0530 [SCSI] mpt fusion : Updated copyright statment with 2008 included Updating copyright statement to include the year 2008 Signed-off-by: Sathya Prakash Signed-off-by: James Bottomley commit 22288ca9e6d19ead263249521ab77e576c6e7fdd Author: Prakash, Sathya Date: Wed May 21 00:55:33 2008 +0530 [SCSI] mpt fusion: Driver version upgrade to 3.04.07 Updating driver version to 3.04.07 from 3.04.06 Signed-off-by: Sathya Prakash Signed-off-by: James Bottomley commit aa0fec62391cd429385e7f3f9fc4a1fb8e2d1218 Author: Christof Schmitt Date: Mon May 19 12:17:47 2008 +0200 [SCSI] zfcp: Fix sparse warning by providing new entry in dbf drivers/s390/scsi/zfcp_dbf.c:692:2: warning: context imbalance in 'zfcp_rec_dbf_event_thread' - different lock contexts for basic block Replace the parameter indicating if the lock is held with a new entry function that only acquires the lock. This makes the lock handling more visible and removes the sparse warning. Signed-off-by: Christof Schmitt Signed-off-by: Martin Peschke Signed-off-by: James Bottomley commit 7337891f381f856a63595392d7e79f2580912bf7 Author: Martin Peschke Date: Mon May 19 12:17:46 2008 +0200 [SCSI] zfcp: remove some __attribute__ ((packed)) There is no need to pack data structures which describe the contents of records in the new recovery trace. lcrash currently depends on the binary format for the other traces, removing the packed attribute from all traces would break trace debugging with lcrash. Signed-off-by: Martin Peschke Signed-off-by: Christof Schmitt Signed-off-by: James Bottomley commit 70c665405151bc0fdb73ea47c85eb9d0254770b0 Author: Martin Peschke Date: Mon May 19 12:17:45 2008 +0200 [SCSI] zfcp: Refine trace levels of some recovery related events. This change better spreads trace levels of recovery related events. There was an overlap of traces for some recovery triggers and the processing of recovery actions. Signed-off-by: Martin Peschke Signed-off-by: Christof Schmitt Signed-off-by: James Bottomley commit c3baa9a26c5ac7e8d801093d55d33620d8bc2fe2 Author: Martin Peschke Date: Mon May 19 12:17:44 2008 +0200 [SCSI] zfcp: Add information about interrupt to trace. Store the index of the buffer in the inbound queue used to report request completion in trace record for request coompletion. This piece of information allows to better compare qdio and zfcp traces. Signed-off-by: Martin Peschke Signed-off-by: Christof Schmitt Signed-off-by: James Bottomley commit e891bffe927f39718cf84c35b380d6edb189848b Author: Martin Peschke Date: Mon May 19 12:17:43 2008 +0200 [SCSI] zfcp: Rename sbal_curr to sbal_last. sbal_last is more appropriate, because it matches sbal_first. Signed-off-by: Martin Peschke Signed-off-by: Christof Schmitt Signed-off-by: James Bottomley commit d01d51beee4dd9f7ff9caf7491aa1727a318e665 Author: Martin Peschke Date: Mon May 19 12:17:42 2008 +0200 [SCSI] zfcp: Rename sbal_last. sbal_last is confusing, as it is not the last one actually used, but just a limit. sbal_limit is a better name. Signed-off-by: Martin Peschke Signed-off-by: Christof Schmitt Signed-off-by: James Bottomley commit 0f83b110f0cf6aef59e66184d5a1513318d654b5 Author: Martin Peschke Date: Mon May 19 12:17:41 2008 +0200 [SCSI] zfcp: Remove field sbal_last from trace record. This field is not needed, because it designates an index with a fix offset from sbal_first. It's name is confusing anyway. Signed-off-by: Martin Peschke Signed-off-by: Christof Schmitt Signed-off-by: James Bottomley commit 5c9a6890de80ed9222e6920f5930c272800f75ad Author: Christof Schmitt Date: Mon May 19 12:17:40 2008 +0200 [SCSI] zfcp: Remove some sparse warnings Remove some sparse warnings by telling sparse that zfcp_req_create acquires the lock for the request queue. Signed-off-by: Christof Schmitt Signed-off-by: Martin Peschke Signed-off-by: James Bottomley commit b21417820f8f659a6b73cc937ab39bf77d350ce6 Author: Heiko Carstens Date: Mon May 19 12:17:39 2008 +0200 [SCSI] zfcp: Fix fsf_status_read return code handling If allocation of a status buffer failed the function incorrectly returned 0 instead of -ENOMEM. Signed-off-by: Heiko Carstens Signed-off-by: Martin Peschke Signed-off-by: James Bottomley commit 9dfe1cc36be27040144238d30da05053db71beb1 Author: Christof Schmitt Date: Mon May 19 12:17:38 2008 +0200 [SCSI] zfcp: Fix mempool pointer for GID_PN request allocation When allocating memory for GID_PN nameserver requests, the allocation function stores the pointer to the mempool, but then overwrites the pointer via memset. Later, the wrong function to free the memory will be called, since this is based on the stored pointer. Fix this by first initializing the struct and then storing the pointer. Signed-off-by: Christof Schmitt Signed-off-by: Martin Peschke Signed-off-by: James Bottomley commit d26ab06ede83287f99067fee3034c5455a75faf9 Author: Swen Schillig Date: Mon May 19 12:17:37 2008 +0200 [SCSI] zfcp: receiving an unsolicted status can lead to I/O stall Processing of an unsolicted status request can lead to a locking race of the request_queue's queue_lock during the recreation of the used up status read request while still in interrupt context of the response handler. Detaching the 'refill' of the long running status read requests from the handler to a scheduled work is solving this issue. In addition, each refill-run is trying to re-establish the full amount of status read requests, which might have failed in earlier runs. Signed-off-by: Swen Schillig Signed-off-by: Christof Schmitt Signed-off-by: James Bottomley commit 15424921222f2bed0aa92ef1e8bc94f753d2c6ea Author: Adrian Bunk Date: Tue Apr 22 00:31:51 2008 +0300 [SCSI] mpt fusion: make struct mpt_proc_root_dir static This patch makes the needlessly global struct mpt_proc_root_dir static. Signed-off-by: Adrian Bunk Acked-by: "Prakash, Sathya" Signed-off-by: James Bottomley commit 427e59f09fdba387547106de7bab980b7fff77be Author: James Bottomley Date: Sat Mar 8 18:24:17 2008 -0600 [SCSI] make use of the residue value USB sometimes doesn't return an error but instead returns a residue value indicating part (or all) of the command wasn't completed. So if the driver _done() error processing indicates the command was fully processed, subtract off the residue so that this USB error gets propagated. Cc: Alan Stern Signed-off-by: James Bottomley commit 19c4158bcdf42ee3b2394342caf14f8471d2c78e Author: Alan Stern Date: Fri Mar 7 11:20:25 2008 -0500 [SCSI] SCSI: remove dev->power.power_state from mesh driver power.power_state is scheduled for removal. This patch (as1055) removes all uses of that field from the SCSI mesh driver. Signed-off-by: Alan Stern Acked-by: Paul Mackerras Signed-off-by: James Bottomley commit 13a17fdeedbb156463a9a007378366ec0a0c30ef Author: Harvey Harrison Date: Thu May 8 12:08:53 2008 -0700 [SCSI] aacraid: linit.c make aac_show_serial_number static drivers/scsi/aacraid/linit.c:865:9: warning: symbol 'aac_show_serial_number' was not declared. Should it be static? Signed-off-by: Harvey Harrison Acked-by: Mark Salyzyn Signed-off-by: James Bottomley commit a4c38cfa462be3be6c200740a4f2edbae25903c5 Author: Mark Salyzyn Date: Wed May 7 15:24:23 2008 -0400 [SCSI] aacraid: Add Power Management cards to documentation Update the documented list of products supported by the aacraid driver. Signed-off-by: Mark Salyzyn Signed-off-by: James Bottomley commit 3a0d9e92356feb60ee4e978355f712366a93f4ef Author: Christof Schmitt Date: Tue May 6 11:00:06 2008 +0200 [SCSI] zfcp: sysfs attributes for fabric and channel latencies The latency information is provided on a SCSI device level (LUN) which can be found at the following location  /sys/class/scsi_device//device/cmd_latency  /sys/class/scsi_device//device/read_latency  /sys/class/scsi_device//device/write_latency Each sysfs attribute provides the available data: min, max and sum for fabric and channel latency and the number of requests processed. An overrun of the variables is neither detected nor treated. The file has to be read twice to make a meaningful statement, because only the differences of the values between the two reads can be used. A reset of the values can be achieved by writing to the attribute. Signed-off-by: Swen Schillig Signed-off-by: Christof Schmitt Signed-off-by: James Bottomley commit c9615858a81d2424c78b10a2f689ba24b156937c Author: Christof Schmitt Date: Tue May 6 11:00:05 2008 +0200 [SCSI] zfcp: Track fabric and channel latencies provided by FCP adapter Add the infrastructure to retrieve the fabric and channel latencies from FSF commands for each SCSI command that has been processed. For each unit, the sum, min, max and number of requests is tracked. Signed-off-by: Swen Schillig Signed-off-by: Christof Schmitt Signed-off-by: James Bottomley commit 688864e29869a71a8183e4e2f96ccf9f2de1375f Author: Chandra Seetharaman Date: Thu May 1 14:50:40 2008 -0700 [SCSI] scsi_dh: Remove hardware handler infrastructure from dm This patch just removes infrastructure that provided support for hardware handlers in the dm layer as it is not needed anymore. Signed-off-by: Chandra Seetharaman Acked-by: Alasdair G Kergon Signed-off-by: James Bottomley commit cb520223d7f22c5386aff27a5856a66e2c32aaac Author: Chandra Seetharaman Date: Thu May 1 14:50:34 2008 -0700 [SCSI] scsi_dh: Remove hardware handlers from dm This patch removes the 3 hardware handlers that currently exist under dm as the functionality is moved to SCSI layer in the earlier patches. [jejb: removed more makefile hunks and rejection fixes] Signed-off-by: Chandra Seetharaman Acked-by: Alasdair G Kergon Signed-off-by: James Bottomley commit 2651f5d7d3bc5120a439e498f131e4d731f99b3e Author: Chandra Seetharaman Date: Thu May 1 14:50:28 2008 -0700 [SCSI] scsi_dh: Remove dm_pg_init_complete This patch just removes the dm layer's path initialization completion routine. This is separated from the other patch(scsi_dh: Use SCSI device handler in dm-multipath) Just to make that patch more readable. Signed-off-by: Chandra Seetharaman Acked-by: Alasdair G Kergon Signed-off-by: James Bottomley commit bab7cfc733f4453a502b7491b9ee37b091440ec4 Author: Chandra Seetharaman Date: Thu May 1 14:50:22 2008 -0700 [SCSI] scsi_dh: Add a single threaded workqueue for initializing paths Before this patch set (SCSI hardware handlers), initialization of a path was done asynchronously. Doing that requires a workqueue in each device/hardware handler module and leads to unneccessary complication in the device handler code, making it difficult to read the code and follow the state diagram. Moving that workqueue to this level makes the device handler code simpler. Hence, the workqueue is moved to dm level. A new workqueue is added instead of adding it to the existing workqueue (kmpathd) for the following reasons: 1. Device activation has to happen faster, stacking them along with the other workqueue might lead to unnecessary delay in the activation of the path. 2. The effect could be felt the other way too. i.e the current events that are handled by the existing workqueue might get a delayed response. Signed-off-by: Chandra Seetharaman Acked-by: Alasdair G Kergon Signed-off-by: James Bottomley commit cfae5c9bb66325cd32d5f2ee41f14749f062a53c Author: Chandra Seetharaman Date: Thu May 1 14:50:11 2008 -0700 [SCSI] scsi_dh: Use SCSI device handler in dm-multipath This patch converts dm-mpath to use scsi device handlers instead of dm's hardware handlers. This patch does not add any new functionality. Old behaviors remain and userspace tools work as is except that arguments supplied with hardware handler are ignored. One behavioral exception is: Activation of a path is synchronous in this patch, opposed to the older behavior of being asynchronous (changed in patch 07: scsi_dh: Add a single threaded workqueue for initializing a path) Note: There is no need to get a reference for the device handler module (as it was done in the dm hardware handler case) here as the reference is held when the device was first found. Instead we check and make sure that support for the specified device is present at table load time. Signed-off-by: Chandra Seetharaman Signed-off-by: Mike Christie Acked-by: Alasdair G Kergon Signed-off-by: James Bottomley commit 5e7dccad3621f6e2b572f309cf830a2c902cae80 Author: Chandra Seetharaman Date: Thu May 1 14:50:04 2008 -0700 [SCSI] scsi_dh: add EMC Clariion device handler This adds support for EMC Clariions. This patch has the features that currently exists in mainline and advanced features from Ed's patches. Signed-off-by: Chandra Seetharaman Signed-off-by: Mike Christie Signed-off-by: James Bottomley commit f6dd337ee4c440f29a873da3779eb3af44bd1623 Author: Mike Christie Date: Thu May 1 14:49:59 2008 -0700 [SCSI] scsi_dh: add hp sw device handler This patch provides the device handler to support the older hp boxes which cannot be upgraded. Signed-off-by: Mike Christie Signed-off-by: Chandra Seetharaman Signed-off-by: James Bottomley commit fbd7ab3eb53a3b88fefa7873139a62e439860155 Author: Chandra Seetharaman Date: Thu May 1 14:49:52 2008 -0700 [SCSI] scsi_dh: add lsi rdac device handler This patch provides the device handler to support the LSI RDAC SCSI based storage devices. Signed-off-by: Chandra Seetharaman Signed-off-by: James Bottomley commit a6a8d9f87eb8510a8f53672ea87703f62185d75f Author: Chandra Seetharaman Date: Thu May 1 14:49:46 2008 -0700 [SCSI] scsi_dh: add infrastructure for SCSI Device Handlers Some of the storage devices (that can be accessed through multiple paths), do need some special handling for 1. Activating the passive path of the storage access. 2. Decode and handle the special sense codes returned by the devices. 3. Handle the I/Os being sent to the passive path, especially during the device probe time. when accessed through multiple paths. As of today this special device handling is done at the dm-multipath layer using dm-handlers. That works well for (1); for (2) to be handled at dm layer, scsi sense information need to be exported from SCSI to dm-layer, which is not very attractive; (3) cannot be done at all at the dm layer. Device handler has been moved to SCSI mainly to handle (2) and (3) properly. Signed-off-by: Chandra Seetharaman Signed-off-by: Mike Anderson Signed-off-by: Mike Christie Signed-off-by: James Bottomley commit 18404756765c713a0be4eb1082920c04822ce588 Author: Max Krasnyansky Date: Thu May 29 11:02:52 2008 -0700 genirq: Expose default irq affinity mask (take 3) Current IRQ affinity interface does not provide a way to set affinity for the IRQs that will be allocated/activated in the future. This patch creates /proc/irq/default_smp_affinity that lets users set default affinity mask for the newly allocated IRQs. Changing the default does not affect affinity masks for the currently active IRQs, they have to be changed explicitly. Updated based on Paul J's comments and added some more documentation. Signed-off-by: Max Krasnyansky Cc: pj@sgi.com Cc: a.p.zijlstra@chello.nl Cc: tglx@linutronix.de Cc: rdunlap@xenotime.net Cc: mingo@elte.hu Signed-off-by: Thomas Gleixner commit 75b9f5d2a0318da9d5e694a9a1be33f46b4c021e Author: mingo@elte.hu Date: Thu Jun 5 11:18:12 2008 +0200 x86, nmi: fix build fix: arch/x86/kernel/built-in.o: In function `proc_nmi_enabled': : undefined reference to `nmi_watchdog_default' arch/x86/kernel/built-in.o: In function `native_smp_prepare_cpus': : undefined reference to `nmi_watchdog_default' Signed-off-by: Ingo Molnar commit 1a1b1d1322ebd1ece405f3057cdd408bc77e391d Author: Cyrill Gorcunov Date: Wed Jun 4 01:00:58 2008 +0400 x86: watchdog - check for CPU is being supported This patch does check if CPU is being recongnized before call the unreserve(). Since enable_lapic_nmi_watchdog() does have such a check the same is make sense here too in a sake of code consistency (but nothing more). Signed-off-by: Cyrill Gorcunov Cc: mingo@redhat.com Cc: hpa@zytor.com Cc: macro@linux-mips.org Signed-off-by: Thomas Gleixner commit 3ed3f06295e69700fa808396f7b350bff2b69de0 Author: Cyrill Gorcunov Date: Wed Jun 4 01:00:47 2008 +0400 x86: nmi - consolidate nmi_watchdog_default for 32bit mode 64bit mode bootstrap code does set nmi_watchdog to NMI_NONE by default and doing the same on 32bit mode is safe too. Such an action saves us from several #ifdef. Btw, my previous commit commit 19ec673ced067316b9732bc6d1c4ff4052e5f795 Author: Cyrill Gorcunov Date: Wed May 28 23:00:47 2008 +0400 x86: nmi - fix incorrect NMI watchdog used by default did not fix the problem completely, moreover it introduced additional bug - nmi_watchdog would be set to either NMI_LOCAL_APIC or NMI_IO_APIC _regardless_ to boot option if being enabled thru /proc/sys/kernel/nmi_watchdog. Sorry for that. Fix it too. Signed-off-by: Cyrill Gorcunov Cc: mingo@redhat.com Cc: hpa@zytor.com Cc: macro@linux-mips.org Signed-off-by: Thomas Gleixner commit 74e411cb6443d8bcb55fbe89fcc7a9ee574df91b Author: Krzysztof Oledzki Date: Wed Jun 4 03:40:17 2008 +0200 x86: add another PCI ID for ICH6 force hpet. Tested on Asus P5GDC-V $ lspci -n -n |grep ISA 00:1f.0 ISA bridge [0601]: Intel Corporation 82801FB/FR (ICH6/ICH6R) LPC Interface Bridge [8086:2640] (rev 03) Force enabled HPET at base address 0xfed00000 hpet clockevent registered hpet0: at MMIO 0xfed00000, IRQs 2, 8, 0 hpet0: 3 64-bit timers, 14318180 Hz Signed-off-by: Krzysztof Piotr Oledzki Cc: mingo@elte.hu Signed-off-by: Thomas Gleixner commit c45a707dbe35cb9aa6490223e5b1129fa3583948 Author: Huang, Ying Date: Mon Jun 2 14:26:25 2008 +0800 x86: linked list of setup_data for i386 This patch adds linked list of struct setup_data supported for i386. Signed-off-by: Huang Ying Cc: andi@firstfloor.org Cc: mingo@redhat.com Signed-off-by: Thomas Gleixner commit 0c51a965ed3c44dd50497e74492a015680e49899 Author: Huang, Ying Date: Mon Jun 2 14:26:23 2008 +0800 x86: extract common part of head32.c and head64.c into head.c This patch extracts the common part of head32.c and head64.c into head.c. Signed-off-by: Huang Ying Cc: andi@firstfloor.org Cc: mingo@redhat.com Signed-off-by: Thomas Gleixner commit ecacf09f7d26b2317e8b1d59fa40f62081fad0bb Author: Huang, Ying Date: Mon Jun 2 14:26:21 2008 +0800 x86: reserve EFI memory map with reserve_early This patch reserves the EFI memory map with reserve_early(). Because EFI memory map is allocated by bootloader, if it is not reserved by reserved_early(), it may be overwritten through address returned by find_e820_area(). Signed-off-by: Huang Ying Cc: andi@firstfloor.org Cc: mingo@redhat.com Signed-off-by: Thomas Gleixner commit d0ec2c6f2c2f0478b34ae78b3e65f60a561ac807 Author: Huang, Ying Date: Mon Jun 2 14:26:18 2008 +0800 x86: reserve highmem pages via reserve_early This patch makes early reserved highmem pages become reserved pages. This can be used for highmem pages allocated by bootloader such as EFI memory map, linked list of setup_data, etc. Signed-off-by: Huang Ying Cc: andi@firstfloor.org Cc: mingo@redhat.com Signed-off-by: Thomas Gleixner commit d3fbe5ea9518b46a68e6b278974e92e2c3acef4a Author: Huang, Ying Date: Mon Jun 2 14:26:14 2008 +0800 x86: split out common code into find_overlapped_early() This patch clean up reserve_early() family functions by extracting the common part of reserve_early(), free_early() and bad_addr() into find_overlapped_early(). Signed-off-by: Huang Ying Cc: andi@firstfloor.org Cc: mingo@redhat.com Signed-off-by: Thomas Gleixner commit 4f384f8bcdb5d618a0a68fb84c809e602c798b8f Author: Pavel Machek Date: Mon May 26 21:17:30 2008 +0200 x86: aperture_64.c: corner case wrong If fix == 0, aper_enabled == 1, gart_fix_e820 == 0 if (!fix && !aper_enabled) return; if (gart_fix_e820 && !fix && aper_enabled) { if (e820_any_mapped(aper_base, aper_base + aper_size, E820_RAM)) { /* reserve it, so we can reuse it in second kernel */ printk(KERN_INFO "update e820 for GART\n"); add_memory_region(aper_base, aper_size, E820_RESERVED); update_e820(); } return; } /* different nodes have different setting, disable them all atfirst*/ we'll fall back here and disable all the settings, even when they were all consistent. What about this? (I hope it compiles...) Signed-off-by: Pavel Machek Cc: Dave Jones Cc: Andi Kleen Signed-off-by: Thomas Gleixner commit fa5b8a30cf03520737e9a0ee2ee03a61b2eccf05 Author: Pavel Machek Date: Mon May 26 20:40:47 2008 +0200 aperture_64.c: duplicated code, buggy? Hi! void __init early_gart_iommu_check(void) contains for (num = 24; num < 32; num++) { if (!early_is_k8_nb(read_pci_config(0, num, 3, 0x00))) continue; loop, with very similar loop duplicated in void __init gart_iommu_hole_init(void) . First copy of a loop seems to be buggy, too. It uses 0 as a "nothing set" value, which may actually bite us in last_aper_enabled case (because it may be often zero). (Beware, it is hard to test this patch, because this code has about 2^8 different code paths, depending on hardware and cmdline settings). Plus, the second loop does not check for consistency of aper_enabled. Should it? Signed-off-by: Thomas Gleixner commit bd70e522afce2f7837d081dc52f261ecf9d4d2d5 Author: Yinghai Lu Date: Wed Jun 4 13:21:29 2008 -0700 x86: e820 max_arch_pfn typo fix for 64 bit should use right shift Signed-off-by: Yinghai Lu Cc: Andrew Morton Signed-off-by: Thomas Gleixner commit 7b2a0a6c4866cac146dcb0433e6984eb19a81335 Author: Yinghai Lu Date: Tue Jun 3 19:35:04 2008 -0700 x86: make 32-bit use e820_register_active_regions() this way 32-bit is more similar to 64-bit, and smarter e820 and numa. Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit ee0c80fadfa56bf4f9d90c1c023429a6bd8edd69 Author: Yinghai Lu Date: Tue Jun 3 19:34:00 2008 -0700 x86: move e820_register_active() to e820.c to prepare 32-bit to use it. Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit 84b56fa46b36c2df508e7d421feab514fad30f81 Author: Yinghai Lu Date: Tue Jun 3 19:32:30 2008 -0700 x86, numa, 32-bit: make sure get we kva space when 1/3 user/kernel split is used, and less memory is installed, or if we have a big hole below 4g, max_low_pfn is still using 3g-128m try to go down from max_low_pfn until we get it. otherwise will panic. need to make 32-bit code to use register_e820_active_regions ... later. Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit ab530e1f781da4d704892daab2bdd568f473687d Author: Yinghai Lu Date: Tue Jun 3 10:25:54 2008 -0700 x86: early check if a system is numaq so we could fall back to one node numa. Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit f19dc2f22a180dde3f9e611b76c73f5390c11ecd Author: Yinghai Lu Date: Tue Jun 3 10:24:49 2008 -0700 x86: change propagate_e820_map() back to find_max_pfn(), 32-bit, fix add memory_present() calls for sparse and non-numa. Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit d44b9d17faf7bca165ce73a1acb936b65a3f0cc6 Author: Hiroshi Shimamoto Date: Tue Jun 3 13:06:07 2008 -0700 x86: move bugs_64.c to cpu/bugs_64.c It looks good to move bugs_64.c to cpu/bugs_64.c. Signed-off-by: Hiroshi Shimamoto Signed-off-by: H. Peter Anvin commit 835fc943f34139ed062f1ac194b52ed3b7123d88 Author: Ingo Molnar Date: Tue Jun 3 14:42:06 2008 +0200 x86: mp build fix fix: drivers/built-in.o: In function `acpi_pci_irq_enable': : undefined reference to `mp_config_acpi_gsi' Signed-off-by: Ingo Molnar commit c8c034ce79418d2143c00c4cf751cfa51701f788 Author: Yinghai Lu Date: Sun Jun 1 23:55:37 2008 -0700 x86: clean up max_pfn_mapped usage - 64-bit on 64-bit we only get valid max_pfn_mapped after init_memory_mapping(). Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit 6af61a7614a306fe882a0c2b4ddc63b65aa66efc Author: Yinghai Lu Date: Sun Jun 1 23:53:50 2008 -0700 x86: clean up max_pfn_mapped usage - 32-bit on 32-bit in head_32.S after initial page table is done, we get initial max_pfn_mapped, and then kernel_physical_mapping_init will give us a final one. We need to use that to make sure find_e820_area will get valid addresses for boot_map and for NODE_DATA(0) on numa32. XEN PV and lguest may need to assign max_pfn_mapped too. Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit 287572cb38de7f270b59191a0fecfa5c5de7765d Author: Yinghai Lu Date: Sun Jun 1 21:06:31 2008 -0700 x86, numa, 32-bit: avoid clash between ramdisk and kva use find_e820_area to get address space... Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit 2944e16b25e7fb8b5ee0dd9dc7197a0f9e523cfd Author: Yinghai Lu Date: Sun Jun 1 13:17:38 2008 -0700 x86: update mptable make mptable to be consistent with acpi routing, so we could: 1. kexec kernel with acpi=off 2. work around BIOSes where acpi routing is working, but mptable is not right, so can use kernel/kexec to start other OSes that don't have good acpi support. command line: update_mptable Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit e8c27ac9191ab9e6506ae5cbe70d87ac50f8e960 Author: Yinghai Lu Date: Sun Jun 1 13:15:22 2008 -0700 x86, numa, 32-bit: print out debug info on all kvas also fix the print out of node_remap_end_vaddr Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit 0596152388e234efebce464355186ad9e16c8cb6 Author: Yinghai Lu Date: Sat May 31 22:52:47 2008 -0700 x86, 32-bit: change propagate_e820_map() back to find_max_pfn() we don't need to call memory_present that early. numa and sparse will call memory_present later and might even fail, it will call memory_present for the full range. also for sparse it will call alloc_bootmem ... before we set up bootmem. Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit b66cd7207387b9b428aaf1988e21dd263c6a4928 Author: Yinghai Lu Date: Sat May 31 22:53:47 2008 -0700 x86: set node_remap_size[0] in fallback path ... otherwise alloc_remap will not get node_mem_map from kva area, and alloc_node_mem_map has to alloc_bootmem_node to get mem_map. It will use two low address copies ... Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit ba924c81dd5a7a7fb5ded025af7fdd3b61f8ca67 Author: Yinghai Lu Date: Sat May 31 22:51:51 2008 -0700 x86, numa, 32-bit: increase max_elements to 1024 so every element will represent 64M instead of 256M. AMD opteron could have HW memory hole remapping, so could have [0, 8g + 64M) on node0. Reduce element size to 64M to keep that on node 0 Later we need to use find_e820_area() to allocate memory_node_map like on 64-bit. But need to move memory_present out of populate_mem_map... Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit 471b3c1b011f807d16f1e19d1d4ecf703f1e7d1a Author: Ingo Molnar Date: Tue Jun 3 12:39:43 2008 +0200 x86, numaq 32-bit: build fix fix: drivers/built-in.o: In function `acpi_numa_init': : undefined reference to `acpi_numa_arch_fixup' which can happen with ACPI && NUMAQ. commit cf3d0cb8a10a4fd19439bb34995d9ad28854739a Author: Ingo Molnar Date: Tue Jun 3 11:36:56 2008 +0200 x86: 32-bit numa, build fix on Summit it's possible to have: CONFIG_ACPI_SRAT=y CONFIG_HAVE_ARCH_PARSE_SRAT=y in which case acpi.h defines the acpi_numa_slit_init() and acpi_numa_processor_affinity_init() methods as a macro. commit f3294690979634ee10398bb0beadfe1d4edb881d Author: Ingo Molnar Date: Tue Jun 3 10:16:10 2008 +0200 x86, numaq: add pci_acpi_scan_root() stub allow 32-bit numaq build to succeed with ACPI enabled. commit b28852d6703e4b72ce363c5168ea8d3fb28b9c57 Author: Ingo Molnar Date: Tue Jun 3 10:11:07 2008 +0200 x86: add dummy acpi_numa_processor_affinity_init() implementation on 32-bit allow CONFIG_ACPI_NUMA builds to succeed. commit 2772f54bf37b033263abe4a2314c40a308a1a5cd Author: Ingo Molnar Date: Tue Jun 3 10:09:45 2008 +0200 x86: add acpi_numa_slit_init() dummy implementation on 32-bit allow CONFIG_ACPI_NUMA builds to succeed on 32-bit. commit 4c1cbafb88490757a38119c41229251369bcecbc Author: Ingo Molnar Date: Tue Jun 3 09:28:52 2008 +0200 x86 mpparse: build fix fix this build bug: drivers/acpi/pci_irq.c: In function 'acpi_pci_irq_enable': drivers/acpi/pci_irq.c:574: error: implicit declaration of function 'mp_config_acpi_gsi' Signed-off-by: Ingo Molnar commit 5a85bb02ba473aacd29f4039a74744f729443b31 Author: Jaroslav Kysela Date: Tue Jun 3 09:06:20 2008 +0200 ALSA: Release v1.0.17rc1 Signed-off-by: Jaroslav Kysela commit e026892c85571e12f11abffde5a90bcc704d663e Author: Timur Tabi Date: Mon Jun 2 15:09:35 2008 -0500 [POWERPC] fsl: Update fsl_soc to use cell-index property of I2C nodes Currently, fsl_i2c_of_init() uses the order of the I2C adapter nodes in the device tree to enumerate the I2C adapters. Instead, let's check for the cell-index property and use it if it exists. This is handy for device drivers that need to identify the I2C adapters by specific numbers. The Freescale MPC8610 ASoC V2 sound drivers are an example. Signed-off-by: Timur Tabi Signed-off-by: Kumar Gala commit fca622c5b21a259950a2964ceca7b6c2a23c849f Author: Kumar Gala Date: Wed Apr 30 05:23:21 2008 -0500 [POWERPC] 40x/Book-E: Save/restore volatile exception registers On machines with more than one exception level any system register that might be modified by the "normal" exception level needs to be saved and restored on taking a higher level exception. We already are saving and restoring ESR and DEAR. For critical level add SRR0/1. For debug level add CSRR0/1 and SRR0/1. For machine check level add DSRR0/1, CSRR0/1, and SRR0/1. On FSL Book-E parts we always save/restore the MAS registers for critical, debug, and machine check level exceptions. On 44x we always save/restore the MMUCR. Additionally, we save and restore the ksp_limit since we have to adjust it for each exception level. Signed-off-by: Kumar Gala Acked-by: Paul Mackerras commit 369e757b65d4a5e49bae7cfaf671e784f891cfbe Author: Kumar Gala Date: Wed Apr 30 04:17:22 2008 -0500 [POWERPC] Rework EXC_LEVEL_EXCEPTION_PROLOG code * Cleanup the code a bit my allocating an INT_FRAME on our exception stack there by make references go from GPR11-INT_FRAME_SIZE(r8) to just GPR11(r8) * simplify {lvl}_transfer_to_handler code by moving the copying of the temp registers we use if we come from user space into the PROLOG * If the exception came from kernel mode copy thread_info flags, preempt, and task pointer from the process thread_info. Signed-off-by: Kumar Gala Acked-by: Paul Mackerras commit bcf0b0880710409420a4e3b15dbf4b9a63542c0b Author: Kumar Gala Date: Wed Apr 30 03:49:55 2008 -0500 [POWERPC] Move to runtime allocated exception stacks For the additonal exception levels (critical, debug, machine check) on 40x/book-e we were using "static" allocations of the stack in the associated head.S. Move to a runtime allocation to make the code a bit easier to read as we mimic how we handle IRQ stacks. Its also a bit easier to setup the stack with a "dummy" thread_info in C code. Signed-off-by: Kumar Gala Acked-by: Paul Mackerras commit c054065bc10a7ee2bcf78b5bc95f4b4d9bdc923a Author: Kumar Gala Date: Fri May 30 13:43:43 2008 -0500 [POWERPC] 85xx: Add next-level-cache property Added next-level-cache to the L1 and a reference to the new L2 label. This is per the ePAPR 0.94 spec. Since we are't really dependent on this today we aren't supporting the "legacy" l2-cache phandle that is specified in the PPC v2.1 OF Binding spec. Signed-off-by: Kumar Gala commit acd4b715ec83e451990bb82bdbf28ecaeab1b67d Author: Kumar Gala Date: Fri May 30 12:12:26 2008 -0500 [POWERPC] Cleanup mpic nodes in .dts Removed clock-frequency, big-endian, and built-in props as they aren't specified anywhere. Also added compatible = "chrp,open-pic" in the places it was missing. Signed-off-by: Kumar Gala commit 59d13f9dba56c444e5356b42d3d57b46e44ef975 Author: Bryan O'Donoghue Date: Thu May 8 13:47:00 2008 +0100 [POWERPC] 83xx: Add support for Analogue & Micro ASP837E board The following adds support for the Analogue & Micro ASP 8347E, running Redboot. http://www.analogue-micro.com/ASP8347.html Signed-off-by: Bryan O'Donoghue Signed-off-by: Kumar Gala commit 64f9b5ee17ee7974d7cc58d75221432d86960ba3 Author: Timur Tabi Date: Thu May 15 17:46:10 2008 -0500 [POWERPC] fsl: Add CS4270 i2c data to fsl_soc.c The i2c_devices[] array in fsl_soc.c lists all the I2C nodes that are supported on Freescale boards. Add an entry for the Cirrus Logic CS4270 so that a new-style CS4270 driver will work. Signed-off-by: Timur Tabi Signed-off-by: Kumar Gala commit 22fb7d9be593181e2f779cf7a8421703a6be713b Author: Timur Tabi Date: Thu May 15 17:04:57 2008 -0500 [POWERPC] fsl: Add warning for unrecognized I2C nodes in the device tree Update of_find_i2c_driver in fsl_soc.c to display a warning message if an I2C node in the device tree isn't found in the i2c_devices[] array. Signed-off-by: Timur Tabi Signed-off-by: Kumar Gala commit 692d1037e6914a8a32a7a9fba416684c75c7efca Author: Anton Vorontsov Date: Fri May 23 17:41:02 2008 +0400 [POWERPC] fsl_msi: few (mostly cosmetic) fixes This patch fixes few cosmetic issues, also removes unused function, makes some functions static and reduces #ifdef count. Signed-off-by: Anton Vorontsov Signed-off-by: Kumar Gala commit 741edc494978bc2770e891b8cfadbca3246a3d1a Author: Jason Jin Date: Fri May 23 16:32:48 2008 +0800 [POWERPC] 85xx: Enable MSI support for 85xxds board This patch enabled MSI on 8544ds and 8572ds board. So far only one MSI interrupt can generate on 8544 board. Signed-off-by: Jason Jin Signed-off-by: Kumar Gala commit 0023352f56f90d01de67f995e248fe4c5308a497 Author: Jason Jin Date: Fri May 23 16:32:47 2008 +0800 [POWERPC] 86xx: Enable MSI support for MPC8610HPCD board This patch enable the MSI on 8610hpcd board. Through the msi-available-ranges property, All the 256 msi interrupts can be tested on this board. Signed-off-by: Jason Jin Signed-off-by: Kumar Gala commit 34e36c1541fe70e5b3842a3278c0e7631d31f4cb Author: Jason Jin Date: Fri May 23 16:32:46 2008 +0800 [POWERPC] fsl: PCIe MSI support for 83xx/85xx/86xx processors. This MSI driver can be used on 83xx/85xx/86xx board. In this driver, virtual interrupt host and chip were setup. There are 256 MSI interrupts in this host, Every 32 MSI interrupts cascaded to one IPIC/MPIC interrupt. The chip was treated as edge sensitive and some necessary functions were setup for this chip. Before using the MSI interrupt, PCI/PCIE device need to ask for a MSI interrupt in the 256 MSI interrupts. A 256bit bitmap show which MSI interrupt was used, reserve bit in the bitmap can be used to force the device use some designate MSI interrupt in the 256 MSI interrupts. Sometimes this is useful for testing the all the MSI interrupts. The msi-available-ranges property in the dts file was used for this purpose. Signed-off-by: Jason Jin Signed-off-by: Kumar Gala commit aee1dc73b519227084d77b0b2fc972b68b4153d8 Author: Jason Jin Date: Fri May 23 16:32:45 2008 +0800 [POWERPC] Update booting-without-of for Freescale PCIe MSI Binding document adding for Freescale PCIe MSI support. Signed-off-by: Jason Jin Signed-off-by: Kumar Gala commit 69eaf23a9797e1bdf16e210ef4da3e756a41f4de Author: Dmitry Baryshkov Date: Sat May 31 16:14:48 2008 +0100 [ARM] 5071/2: Drop PXA_SHARPSL_25x/27x case from PXA Kconfig. As nothing in the code references to the PXA_SHARPSL_25x/27x, we can drop that Kconfig case and permit all-zaurus builds. Signed-off-by: Dmitry Baryshkov Acked-by: Richard Purdie Signed-off-by: Russell King commit 5806d8abf6b152f23d057c2e6b9199892883a8df Author: Dmitry Baryshkov Date: Sat May 31 16:17:32 2008 +0100 [ARM] 5073/1: spitz_pm: don't register devices on non-spitz machines Signed-off-by: Dmitry Baryshkov Acked-by: Richard Purdie Signed-off-by: Russell King commit 043fbc099af0fc0ec94112c7235b7544147149f4 Author: Dmitry Baryshkov Date: Sat May 31 16:16:54 2008 +0100 [ARM] 5072/1: corgi_pm: don't register devices on non-corgi machines Signed-off-by: Dmitry Baryshkov Acked-by: Richard Purdie Signed-off-by: Russell King commit 7c5926d4e8d0f3d36688df4652b8f9f9ef0d7945 Author: Mike Rapoport Date: Mon May 12 11:36:28 2008 +0100 [ARM] 5036/2: Combine cm_x270_defconfig and em_x270_defconfig into xm_x270_defconfig Combine cm_x270_defconfig and em_x270_defconfig to allow running the same kernel on both machines Signed-off-by: Mike Rapoport Signed-off-by: Russell King commit 63b43f5d3264f4d70b5d29885997253d33259744 Author: Russell King Date: Sun Apr 20 17:36:20 2008 +0100 [ARM] pxa: allow PXA to be built for multiple platforms Convert the 'choice' into a 'menu' to allow multiple platforms to be selected. This means to do a build check across PXA, you don't end up spending a lifetime building _twenty_ sodding kernels. Signed-off-by: Russell King commit 5855a1e3c0714242b8a1875383b63ccf9bafaab7 Author: Mike Rapoport Date: Mon May 12 06:41:13 2008 +0100 [ARM] 5035/1: Ensure that zone adjustment is done only on CM-X270 Adjust zones for PCI DMA only if machine_is_armcore() to allow running the same kernel on different PXA machines. Signed-off-by: Mike Rapoport Signed-off-by: Russell King commit 0b0a9df6038752674e54e333cd247c877d29aab8 Author: Russell King Date: Sun May 18 14:59:36 2008 +0100 [ARM] pxa: separate out power manager and clock registers The power manager and core clock registers aren't present in PXA3 CPUs. Move them out of pxa-regs.h into pxa2xx-regs.h, and include pxa2xx-regs.h where necessary. Signed-off-by: Russell King commit bc3a595988468b8a9c2526b9fb8d7bcaa27cc1a7 Author: Philipp Zabel Date: Mon Jun 2 18:49:27 2008 +0100 [ARM] 5075/1: i2c-pxa: move i2c pin setup and PCFR_PI2CEN handling into arch/arm/mach-pxa This fixes a build error introduced when the power manager register definitions were moved into pxa2xx-regs.h. Signed-off-by: Philipp Zabel Signed-off-by: Russell King commit ba45ca435060614e595a107ac323a36b52619d7d Author: Nicolas Ferre Date: Tue Apr 8 13:59:18 2008 +0100 [ARM] 4940/1: AT91: UDPHS driver: SAM9RL board and cpu integration. Adds support for the USB High Speed Device Port on the AT91SAM9RL system on chip. The AT91SAM9RL uses the same UDPHS IP as the AVR32 and the AT91CAP9 (atmel_usba_udc driver). Signed-off-by: Nicolas Ferre Acked-by: Andrew Victor Signed-off-by: Russell King commit 6b71dbf65e63c13202fb18773a5fd2d4415b6b2e Author: Stelian Pop Date: Sat Apr 5 21:16:15 2008 +0100 [ARM] 4935/1: AT91CAP9: enable RTC-on-RTT in defconfig. Update the help text for RTC_DRV_AT91SAM9 to mention that the option apply to AT91CAP9 processors too, and enable it in the defconfig. Signed-off-by: Stelian Pop Signed-off-by: Andrew Victor Signed-off-by: Russell King commit 7c8cf66529ebf95f1a5f34d1b69504d442b42630 Author: Stelian Pop Date: Sat Apr 5 21:15:25 2008 +0100 [ARM] 4934/1: AT91CAP9 UDPHS driver: board and cpu integration. This is patch 2 of 2 adding support for the USB High Speed Device Port on the AT91CAP9 system on chip. The AT91CAP9 uses the same UDPHS IP as the AVR32 and the AT91SAM9RL. This patch declares the UDPHS ressources in the at91cap9 (cpu and adk board) files, wires up the atmel_usba_udc driver to them, and activates the driver in the defconfig. Signed-off-by: Stelian Pop Acked-by: Haavard Skinnemoen Acked-by: Andrew Victor Signed-off-by: Russell King commit 53d7168026a440c4cba25468a3d926ddd7ab030a Author: Stelian Pop Date: Sat Apr 5 21:14:03 2008 +0100 [ARM] 4933/1: AT91CAP9 UDPHS driver: generic AT91 parts. This is patch 1 of 2 adding support for the USB High Speed Device Port on the AT91CAP9 system on chip. The AT91CAP9 uses the same UDPHS IP as the AVR32 and the AT91SAM9RL. This patch makes the generic AT91 adaptations, mainly dealing with the addition of the UDPHS UTMI clock. Signed-off-by: Stelian Pop Acked-by: Haavard Skinnemoen Acked-by: Andrew Victor Signed-off-by: Russell King commit 19750336d4cc3a171a5aa5f9a258fb81066cc45e Author: Andrew Victor Date: Sat May 24 18:10:26 2008 +0100 [ARM] 5059/1: [AT91] Convert to new-style UART initialization Convert the following AT91RM9200-based boards to the new-style UART initialization: - Conitec ARM&EVA - Atmel AT91RM9200-DK - Embest ATEB9200 - Atmel AT91RM9200-EK - KwikByte KB920x Signed-off-by: Andrew Victor Signed-off-by: Russell King commit 7b2253418cc12877620b4d6782831e8643ab0afa Author: Andrew Victor Date: Sat May 24 17:48:37 2008 +0100 [ARM] 5058/1: [AT91] Calao Systems - default configs Default config files for the three AT91-based boards available from Calao Systems: USB_A9260, USB_A9263 and QIL_A9260. Signed-off-by: Grégory Hermant Signed-off-by: Andrew Victor Signed-off-by: Russell King commit ca0a789ab9c83d8fdf28f5c2700b316cd5dec2f0 Author: Andrew Victor Date: Sat May 24 17:47:04 2008 +0100 [ARM] 5057/1: [AT91] Calao Systems - board files Add support for three AT91-based boards available from Calao Systems: USB_A9260, USB_A9263 and QIL_A9260. Signed-off-by: Grégory Hermant Signed-off-by: Andrew Victor Signed-off-by: Russell King commit e3ba22db09408baee721897fb1b50e16f071d916 Author: Andrew Victor Date: Sat May 24 17:06:45 2008 +0100 [ARM] 5056/1: [AT91] Cleanup YL9200 board file Cleanup the YL9200 board-support file. Other things fixed are: - Use new-style UART initialization - Register all LEDs as gpio_leds. - NOR Flash error noted in comments fixed by increasing YL9200_FLASH_SIZE - The only I2C device is the AT24C eeprom. - Setup of NWAIT pin and programming of SMC controller for the LCD/VGA. - Configure touchscreen interrupt pin. Also adding the board to the KConfig and Makefile. Signed-off-by: Andrew Victor Signed-off-by: Russell King commit ffdf786291636137ef2d51c3a5d340793032aa28 Author: Russell King Date: Sun May 18 14:57:59 2008 +0100 [ARM] pxa: Add PXA3_ prefix to PXA3 specific constants standby.S contains both PXA2 and PXA3 specific code. The PXA3 specific constants clash with the PXA2 ones, so give them a prefix. Signed-off-by: Russell King commit 4e5e8de0dbdeb08df2b4c15fa2b0ba2216091793 Author: Russell King Date: Thu Apr 24 15:28:11 2008 +0100 [ARM] pxa: avoid kfreeing static data if platform device fails to register When a dynamically allocated platform device is 'put', the platform device's platform_data is kfree'd. This is bad if it's pointing at static data. Use the provided function to register platform data for these devices. This also means we can mark the pcmcia ops structures as __initdata. Signed-off-by: Russell King commit 04ba0f656f7580d8a51a5b3441e088309141b67a Author: Russell King Date: Thu Apr 24 15:23:25 2008 +0100 [ARM] pxa: avoid registering multiple pxa2xx_pcmcia devices cm_x270 and mainstone both register their PCMCIA devices using the same name, resulting in a warning message from the kernel. Avoid this by making the cm_x270 and mainstone PCMCIA initialisation conditional on the machine type we're running on. Signed-off-by: Russell King commit 720046de27ec2a96d4497dbca8ee98657efa059c Author: Russell King Date: Thu Apr 24 15:13:36 2008 +0100 [ARM] pxa: don't register lpd270 cpld_irq sysdev if !lpd270 Don't register the LPD270 cpld_irq system device when we're not running on a LPD270 machine - "cpld_irq" is also registered (separately) by Lubbock and Mainstone. Signed-off-by: Russell King commit 1a7e612fa5ea0311232bd5418a40ec7280557789 Author: Dmitry Baryshkov Date: Sat May 31 16:18:11 2008 +0100 [ARM] 5074/1: fix warning: missing terminating ' character Signed-off-by: Dmitry Baryshkov Acked-by: Richard Purdie Signed-off-by: Russell King commit 3d1ba1da2b4ff4ace7801e99fb9a3095b182d847 Author: Ingo Molnar Date: Mon Jun 2 13:50:10 2008 +0200 x86: fix nmi.c build bug apic.h needs to be included for the apic_write_around() definition. commit e0773410247f1e5fc6f7c52a4c5f3c6c9873d527 Author: Abhishek Sagar Date: Sat May 31 14:24:02 2008 +0530 ftrace: export kretprobe_trampoline for function tracer Follow suit from kprobe implementations on other archs and make kretprobe_trampoline non-static. Ftrace implmentation (more specifically, kernel/trace/trace.c) requires access to it (see-> http://kerneltrap.org/mailarchive/linux-kernel/2008/5/27/1955234). Signed-off-by: Abhishek Sagar Signed-off-by: Ingo Molnar commit 7e0edc1bc343231029084761ebf59e522902eb49 Author: Jeremy Fitzhardinge Date: Sat May 31 01:33:04 2008 +0100 xen: add new Xen elfnote types and use them appropriately Define recently added XEN_ELFNOTEs, and use them appropriately. Most significantly, this enables domain checkpointing (xm save -c). Signed-off-by: Jeremy Fitzhardinge Signed-off-by: Ingo Molnar commit d07af1f0e3a3e378074fc36322dd7b0e72d9a3e2 Author: Jeremy Fitzhardinge Date: Sat May 31 01:33:03 2008 +0100 xen: resume timers on all vcpus On resume, the vcpu timer modes will not be restored. The timer infrastructure doesn't do this for us, since it assumes the cpus are offline. We can just poke the other vcpus into the right mode directly though. Signed-off-by: Jeremy Fitzhardinge Signed-off-by: Ingo Molnar commit 9c7a794209f8a91f47697c3be20597eb60531e6d Author: Jeremy Fitzhardinge Date: Sat May 31 01:33:02 2008 +0100 xen: restore vcpu_info mapping If we're using vcpu_info mapping, then make sure its restored on all processors before relasing them from stop_machine. The only complication is that if this fails, we can't continue because we've already made assumptions that the mapping is available (baked in calls to the _direct versions of the functions, for example). Fortunately this can only happen with a 32-bit hypervisor, which may possibly run out of mapping space. On a 64-bit hypervisor, this is a non-issue. Signed-off-by: Jeremy Fitzhardinge Signed-off-by: Ingo Molnar commit e2426cf85f8db5891fb5831323d2d0c176c4dadc Author: Jeremy Fitzhardinge Date: Sat May 31 01:24:27 2008 +0100 xen: avoid hypercalls when updating unpinned pud/pmd When operating on an unpinned pagetable (ie, one under construction or destruction), it isn't necessary to use a hypercall to update a pud/pmd entry. Jan Beulich observed that a similar optimisation avoided many thousands of hypercalls while doing a kernel build. One tricky part is that early in the kernel boot there's no page structure, so we can't check to see if the page is pinned. In that case, we just always use the hypercall. Signed-off-by: Jeremy Fitzhardinge Cc: Jan Beulich Signed-off-by: Ingo Molnar commit 15ce60056b24a65b65e28de973a9fd8ac0750a2f Author: Ingo Molnar Date: Mon Jun 2 13:20:11 2008 +0200 xen: export get_phys_to_machine -tip testing found the following xen-console symbols trouble: ERROR: "get_phys_to_machine" [drivers/video/xen-fbfront.ko] undefined! ERROR: "get_phys_to_machine" [drivers/net/xen-netfront.ko] undefined! ERROR: "get_phys_to_machine" [drivers/input/xen-kbdfront.ko] undefined! with: http://redhat.com/~mingo/misc/config-Mon_Jun__2_12_25_13_CEST_2008.bad commit 9f5314fb4d556d3132c784d0df47352b2830ca53 Author: Jack Steiner Date: Wed May 28 09:51:18 2008 -0500 x86, uv: update macros used by UV platform Update the UV address macros to better describe the fields of UV physical addresses. Improve comments in the header files. Add additional MMR definitions. Signed-off-by: Jack Steiner Signed-off-by: Ingo Molnar commit 88ff0a474e98f869d8c321e29481f298320100d6 Author: Hiroshi Shimamoto Date: Tue May 27 18:49:39 2008 -0700 x86: coding style fixes for nmi.c before total: 1 errors, 6 warnings, 534 lines checked after total: 0 errors, 1 warnings, 532 lines checked Signed-off-by: Hiroshi Shimamoto Signed-off-by: Ingo Molnar commit fb093eab6d8963a085f112773284f2bcb3d7907b Author: Yinghai Lu Date: Tue May 27 16:29:20 2008 -0700 x86: remove duplicated e820 func in setup.h we already have them in e820.h Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit ad90c0e3ce8d20d6873b57e36181ef6d7a0097fe Author: Steven Rostedt Date: Tue May 27 20:48:37 2008 -0400 ftrace: user update and disable dynamic ftrace daemon In dynamic ftrace, the mcount function starts off pointing to a stub function that just returns. On start up, the call to the stub is modified to point to a "record_ip" function. The job of the record_ip function is to add the function to a pre-allocated hash list. If the function is already there, it simply is ignored, otherwise it is added to the list. Later, a ftraced daemon wakes up and calls kstop_machine if any functions have been recorded, and changes the calls to the recorded functions to a simple nop. If no functions were recorded, the daemon goes back to sleep. The daemon wakes up once a second to see if it needs to update any newly recorded functions into nops. Usually it does not, but if a lot of code has been executed for the first time in the kernel, the ftraced daemon will call kstop_machine to update those into nops. The problem currently is that there's no way to stop the daemon from doing this, and it can cause unneeded latencies (800us which for some is bothersome). This patch adds a new file /debugfs/tracing/ftraced_enabled. If the daemon is active, reading this will return "enabled\n" and "disabled\n" when the daemon is not running. To disable the daemon, the user can echo "0" or "disable" into this file, and "1" or "enable" to re-enable the daemon. Since the daemon is used to convert the functions into nops to increase the performance of the system, I also added that anytime something is written into the ftraced_enabled file, kstop_machine will run if there are new functions that have been detected that need to be converted. This way the user can disable the daemon but still be able to control the conversion of the mcount calls to nops by simply, "echo 0 > /debugfs/tracing/ftraced_enabled" when they need to do more conversions. To see the number of converted functions: "cat /debugfs/tracing/dyn_ftrace_total_info" Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar commit 6330a30a76c1e62d4b4ec238368957f8febf9113 Author: Vegard Nossum Date: Wed May 28 09:46:19 2008 +0200 x86: break mutual header inclusion This breaks up the mutual inclusion between headers ptrace.h and vm86.h by moving some small part of vm86.h which is needed by ptrace.h into processor-flags.h. We also try to move #include lines to the top. This has been compile tested on x86_32 and x86_64 defconfig, and run through 'make headers_check'. Cc: Adrian Bunk Signed-off-by: Vegard Nossum Signed-off-by: Ingo Molnar commit 83bea8e1fa0c47b30664b6f92397c016c22f77fb Author: Vegard Nossum Date: Tue May 27 21:03:46 2008 +0200 x86: fix incomplete include guard in include/asm-x86/seccomp_32.h Signed-off-by: Vegard Nossum Signed-off-by: Ingo Molnar commit 76094a2cf46e4ab776055d4086615b884408568c Author: Abhishek Sagar Date: Wed May 28 00:03:18 2008 +0530 ftrace: distinguish kretprobe'd functions in trace logs Tracing functions via ftrace which have a kretprobe installed on them, can produce misleading output in their trace logs. E.g, consider the correct trace of the following sequence: do_IRQ() { ~ irq_enter(); ~ } Trace log (sample): -0 [00] 4154504455.781616: irq_enter <- do_IRQ But if irq_enter() has a kretprobe installed on it, the return value stored on the stack at each invocation is modified to divert the return to a kprobe trampoline function called kretprobe_trampoline(). So with this the trace would (currently) look like: -0 [00] 4154504455.781616: irq_enter <- kretprobe_trampoline Now this is quite misleading to the end user, as it suggests something that didn't actually happen. So just to avoid such misinterpretations, the inlined patch aims to output such a log as: -0 [00] 4154504455.781616: irq_enter <- [unknown/kretprobe'd] Signed-off-by: Abhishek Sagar Acked-by: Steven Rostedt Signed-off-by: Ingo Molnar commit c1f64a58003fd2efaa725a857e269a15f765791a Author: Linus Torvalds Date: Tue May 27 09:47:13 2008 -0700 x86: MMIO and gcc re-ordering issue On Tue, 27 May 2008, Linus Torvalds wrote: > > Expecting people to fix up all drivers is simply not going to happen. And > serializing things shouldn't be *that* expensive. People who cannot take > the expense can continue to use the magic __raw_writel() etc stuff. Of course, for non-x86, you kind of have to expect drivers to be well-behaved, so non-x86 can probably avoid this simply because there are less relevant drivers involved. Here's a UNTESTED patch for x86 that may or may not compile and work, and which serializes (on a compiler level) the IO accesses against regular memory accesses. __read[bwlq]()/__write[bwlq]() are not serialized with a :"memory" barrier, although since they still use "asm volatile" I suspect that i practice they are probably serial too. Did not look very closely at any generated code (only did a trivial test to see that the code looks *roughly* correct). Signed-off-by: Ingo Molnar commit 1a5726528a70bb239bdd149aef7f2155cd2b1699 Author: Ingo Molnar Date: Mon Jun 2 12:21:36 2008 +0200 fix build bug in "x86: add PCI extended config space access for AMD Barcelona" commit c78277288e3d561d55fb48bc0fe8d6e2cf4d0880 Author: Jeremy Fitzhardinge Date: Thu May 29 09:02:19 2008 +0100 CONFIG_PM_SLEEP fix: xen: fix compilation when CONFIG_PM_SLEEP is disabled Xen save/restore depends on CONFIG_PM_SLEEP being set for device_power_up/down. Signed-off-by: Jeremy Fitzhardinge Acked-by: Randy Dunlap Signed-off-by: Ingo Molnar commit c46e62f73569d7ef42255bd6f31e35925b7f1492 Author: Pavel Machek Date: Wed May 28 12:42:57 2008 +0200 i8259: fix final ugliness Introduce IRQx_VECTOR on 32-bit, so that #ifdef noise is kept down. There should be no object code change. [ mingo@elte.hu: merged to x86/irq not x86/i8259 due to x86/irq having restructured the vector code into asm-x86/irq_vectors.h, which this patch touches. ] Signed-off-by: Pavel Machek Signed-off-by: Ingo Molnar commit 6fc92866a4a6778a9732a14b61f70cb9014b2a1a Author: Ingo Molnar Date: Mon Jun 2 10:54:16 2008 +0200 fix build bug in "x86: add PCI extended config space access for AMD Barcelona" Signed-off-by: Ingo Molnar commit 831d991821daedd4839073dbca55514432ef1768 Author: Robert Richter Date: Mon Sep 3 10:17:39 2007 +0200 x86: add PCI extended config space access for AMD Barcelona This patch implements PCI extended configuration space access for AMD's Barcelona CPUs. It extends the method using CF8/CFC IO addresses. An x86 capability bit has been introduced that is set for CPUs supporting PCI extended config space accesses. Signed-off-by: Robert Richter Signed-off-by: Ingo Molnar commit d2cd74b158d7214a556226e3312f9fb1de64d7ae Author: Takashi Iwai Date: Mon Jun 2 11:45:53 2008 +0200 [ALSA] emu10k1 - Fix inverted Analog/Digital mixer switch on Audigy2 On Audigy2 Platinum, the Analog/Digital mixer switch is inverted. https://bugzilla.novell.com/show_bug.cgi?id=396204 The patch adds a simple workaround. There might be another device requiring a similar fix, too (or fix for audigy2 generically), but right now I fix only the known broken one. Signed-off-by: Takashi Iwai commit 014c257cce65e9d1cd2d28ec1c89a37c536b151d Author: Abhishek Sagar Date: Sat May 31 14:23:50 2008 +0530 ftrace: core support for ARM Core ftrace support for the ARM architecture, which includes support for dynamic function tracing. Signed-off-by: Abhishek Sagar Signed-off-by: Ingo Molnar commit 9a73aa81ffb993382afed2ed404bc2b330d75427 Author: Yinghai Lu Date: Thu May 29 16:25:56 2008 -0700 x86: 32bit numa srat fix early_ioremap leak on two node system (16g RAM) with numa config I got this crash: get_memcfg_from_srat: assigning address to rsdp RSD PTR v0 [ACPIAM] ACPI: Too big length in RSDT: 92 failed to get NUMA memory information from SRAT table NUMA - single node, flat memory mode Node: 0, start_pfn: 0, end_pfn: 153 Setting physnode_map array to node 0 for pfns: 0 ... Pid: 0, comm: swapper Not tainted 2.6.26-rc4 #4 [<80b41289>] hlt_loop+0x0/0x3 [<8011efa0>] ? alloc_remap+0x50/0x70 [<8079e32e>] alloc_node_mem_map+0x5e/0xa0 [<8012e77b>] ? printk+0x1b/0x20 [<80b590f6>] free_area_init_node+0xc6/0x470 [<80b588fc>] ? __alloc_bootmem_node+0x2c/0x50 [<80b58ad8>] ? find_min_pfn_for_node+0x38/0x70 [<8012e77b>] ? printk+0x1b/0x20 [<80b597c4>] free_area_init_nodes+0x254/0x2d0 [<80b544d7>] zone_sizes_init+0x97/0xa0 [<80b48a03>] setup_arch+0x383/0x530 [<8012e77b>] ? printk+0x1b/0x20 [<80b41aa4>] start_kernel+0x64/0x350 [<80b412d8>] i386_start_kernel+0x8/0x10 ======================= this patch increases the acpi table limit to 32. Also match early_ioremap() with early_iounmap(). Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit a5481280b29b6a3db912ec100498bd31eaa6d2db Author: Yinghai Lu Date: Thu May 29 12:58:37 2008 -0700 x86: extend e820 early_res support 32bit -fix #5 reserve early numa kva, so it will not clash with new RAMDISK Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit 163872950dc856fd23849c27f60049feaac49ae6 Author: Yinghai Lu Date: Thu May 29 12:57:22 2008 -0700 x86: extend e820 early_res support 32bit -fix #4 reserve_early pgdata for 32bit numa Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit f0d43100f13be0fa5bf52741d7084bb27f00e621 Author: Yinghai Lu Date: Thu May 29 12:56:36 2008 -0700 x86: extend e820 early_res support 32bit -fix #3 introduce init_pg_table_start, so xen PV could specify the value. Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit 23deb06821442506615f34bd92ccd6a2422629d7 Author: H. Peter Anvin Date: Fri May 30 17:19:03 2008 -0700 x86: move x86-specific documentation into Documentation/x86 The current organization of the x86 documentation makes it appear as if the "i386" documentation doesn't apply to x86-64, which is does. Thus, move that documentation into Documentation/x86, and move the x86-64-specific stuff into Documentation/x86/x86_64 with the eventual goal to move stuff that isn't actually 64-bit specific back into Documentation/x86. Signed-off-by: H. Peter Anvin commit 4039feb5bae72a5fed9ba6bc1a9cfd8dfe0a8613 Author: H. Peter Anvin Date: Fri May 30 17:16:20 2008 -0700 x86: update Documentation/i386/boot.txt Document QUIET_FLAG, correct the definition of several fields, make it clear this applies to the entire x86 architecture, not just i386. Signed-off-by: H. Peter Anvin commit 3b6b9293d0f8e1b11630102013ca2a1dcef17d44 Author: Kristian Høgsberg Date: Thu May 29 18:31:15 2008 -0400 x86: Honor 'quiet' command line option in real mode boot decompressor. This patch lets the early real mode code look for the 'quiet' option on the kernel command line and pass a loadflag to the decompressor. When this flag is set, we suppress the "Decompressing Linux... Parsing ELF... done." messages. Signed-off-by: Kristian Høgsberg Signed-off-by: H. Peter Anvin commit 23968f71b26ece45ed52895d41b0208b90a516e7 Author: Kristian Høgsberg Date: Thu May 29 18:31:14 2008 -0400 x86: Use structs instead of hardcoded offsets in x86 boot decompressor. Replace hardcoded offsets embedded in macros in arch/x86/boot/compressed with proper structure references. Signed-off-by: Kristian Høgsberg Signed-off-by: H. Peter Anvin commit 1c47cd638e8302bc38be1f6d81067950e038ebd3 Author: H. Peter Anvin Date: Fri May 30 15:42:45 2008 -0700 x86: fix overlong line in arch/x86/kernel/cpu/amd_64.c Clean up an overlong line in arch/x86/kernel/cpu/amd_64.c. Signed-off-by: H. Peter Anvin commit 30a713180b3d08fdec5ca572e5a1cd35253c5d8e Author: Dave Jones Date: Thu May 22 18:57:25 2008 -0400 x86: Move the 64-bit Centaur specific parts out of setup_64.c Create a separate centaur_64.c file in the cpu/ dir for the useful parts to live in. Signed-off-by: Dave Jones Signed-off-by: H. Peter Anvin commit 7e2191127eb414d7d5a11df6552ab6e3845d17a1 Author: Dave Jones Date: Thu May 22 18:55:06 2008 -0400 x86: Remove workaround for prescott (32bit P4) from 64-bit code. Signed-off-by: Dave Jones Signed-off-by: H. Peter Anvin commit a82fbe31cb387bb246e2d3b3c177f551bb991135 Author: Dave Jones Date: Thu May 22 18:54:32 2008 -0400 x86: Move the 64-bit Intel specific parts out of setup_64.c Create a separate intel_64.c file in the cpu/ dir for the useful parts to live in. Signed-off-by: Dave Jones Signed-off-by: H. Peter Anvin commit 4d285878564bb46cf64e54be18eeffe33ca583a0 Author: Dave Jones Date: Thu May 22 18:48:32 2008 -0400 x86: Move the AMD64 specific parts out of setup_64.c Create a separate amd_64.c file in the cpu/ dir for the useful parts to live in. Signed-off-by: Dave Jones Signed-off-by: H. Peter Anvin commit d364319b989967b74e57fef5c8017fd56a16c392 Author: Thomas Gleixner Date: Fri May 2 23:42:01 2008 +0200 x86: move mmconfig declarations to header arch/x86/kernel/mmconf-fam10h_64.c is missing the prototypes, which are decalred in arch/x86/kernel/setup_64.c. Move the prototypes and the inline stubs to the appropriate header file. Signed-off-by: Thomas Gleixner Signed-off-by: Ingo Molnar commit ba3a5974239293d921235e6fa82b09b670e674ef Author: Ingo Molnar Date: Fri May 30 14:55:47 2008 +0200 - fix typo in include/asm-x86/nmi.h commit 7a14ce1d8c1d3a6118d406e64eaf9aa70375e085 Author: Ingo Molnar Date: Mon May 12 15:43:53 2008 +0200 nohz: reduce jiffies polling overhead Signed-off-by: Ingo Molnar commit a5003fc04113c217370409beac812831cbf6e0ac Author: Takashi Iwai Date: Fri May 30 09:49:41 2008 +0200 [ALSA] emu10k1 - simplify page allocation for synth Simplify the page allocation of emu10k1 driver for emux synth support. Since these pages aren't be necessarily coherent, we can avoid expensive DMA-coherent routines. Signed-off-by: Takashi Iwai commit 2621f0338ce4e3e57cc32a967f5a3d2999390fe3 Author: Takashi Iwai Date: Fri May 30 11:27:24 2008 +0200 [ALSA] trivial clean up of sound/isa/sb/Makefile Remove unneeded sort in sound/isa/sb/Makefile. Signed-off-by: Takashi Iwai commit 72860b0f3c4a303498c9e16c8a4a38ddf23d56de Author: Takashi Iwai Date: Fri May 30 11:25:03 2008 +0200 sound: Clean up sound/oss/Kconfig Removed unnecessary dependencies, fix a wrong selection, and make CONFIG_SOUND_OSS menuconfig to simplify. Signed-off-by: Takashi Iwai commit e22af66fc85a8b008237970da4d9b6910422536b Merge: a4831fb... f7b0b93... Author: Uwe Kleine-König Date: Fri May 30 10:46:30 2008 +0200 Merge branch 'atags' into for-rmk commit a4831fbe096a6f4f691fd71b041ce27add54088e Author: Uwe Kleine-König Date: Wed May 21 10:17:07 2008 +0200 ns9xxx: fix assembler version of __REG2 to be consistent with the C version It's not very critical because __REG2 isn't used in assembler code currently. Additionally some white space noise is fixed. Signed-off-by: Uwe Kleine-König commit f7b0b939d54b457ba172e088f477af2012aef9b3 Author: Uwe Kleine-König Date: Thu Feb 21 15:04:40 2008 +0100 clean up atags exporting code This gets rid of two static variables (one of them being __initdata) and a static function. Signed-off-by: Uwe Kleine-König Acked-by: Uli Luckas commit 8ff7f2a46bd8831e1f1f2a694ec13921720180b7 Author: Uwe Kleine-König Date: Thu Feb 21 16:30:10 2008 +0100 There is no need to have BOOT_PARAMS_SIZE known outside of atags.c atags.c was the only user of KEXEC_BOOT_PARAMS_SIZE and kexec.h was only included to get that definition. Signed-off-by: Uwe Kleine-König Acked-by: Uli Luckas commit 8bb8b453cb458d8f62411e78a4cfd6d860b503b6 Author: Takashi Iwai Date: Fri May 30 09:47:45 2008 +0200 [ALSA] trident - clean up obsolete synth codes Clean up the unused synth codes in the memory handling of trident driver. Signed-off-by: Takashi Iwai commit 23ce1547638443f0053dd674e728062c48ff0e39 Author: Takashi Iwai Date: Fri May 30 09:22:22 2008 +0200 [ALSA] Make ak4531 local to ens1370 driver The ak4531 module is used only by ens1370 driver (and unlikely that any other will use it ever). Let's make it local to ens1370. Signed-off-by: Takashi Iwai commit c18f68e4d809a517ed8df540bac2993a4f14d9a4 Author: Takashi Iwai Date: Thu May 29 18:53:05 2008 +0200 [ALSA] Clean up sound/pci/ac97/Makefile Signed-off-by: Takashi Iwai commit 0723abd0b2c9d4603b8c51d6615800c2439a328e Author: Josh Boyer Date: Tue May 20 07:59:23 2008 -0500 [POWERPC] 4xx: Fix compiler warning on DCR_NATIVE only builds With the recent DCR code rework, we get a compiler warning about find_dcr_parent being defined but not used. This fixes it by only defining the function if CONFIG_PPC_DCR_MMIO is set. Signed-off-by: Josh Boyer commit 4ebef31fa6e013e5cd3d4522e6018eb6d55046be Author: Sean MacLennan Date: Tue May 20 08:28:52 2008 -0500 [POWERPC] PIKA Warp: Update platform code to support Rev B boards * Switched from 64M NOR/64M NAND to 4M NOR/256M NAND. * Full DTM support including critical temperature. * Added POST information. * Removed LED function, moved to new LED driver. * Moved ad7414 to new style I2C initialization. Signed-off-by: Sean MacLennan Signed-off-by: Josh Boyer commit 0393cb615f369b6ea0e636dd4d1e25675657dc75 Author: Sean MacLennan Date: Tue Apr 29 13:27:46 2008 +1000 [POWERPC] PIKA Warp: Update DTS to support Rev B boards * Switched from 64M NOR/64M NAND to 4M NOR/256M NAND. * Added led entries. * Added fpga-sd entry. * Added ad7414 entry. Signed-off-by: Sean MacLennan Acked-by: Grant Likely Signed-off-by: Josh Boyer commit 6f031101f5c6bb44762911909da575127f676eb8 Author: Josh Boyer Date: Fri May 16 00:41:23 2008 +1000 [POWERPC] 4xx: Fix PCI mem in rainier DTS This fixes the PCI node in the Rainier to match the spec from AMCC. A similar fix was done for 440EPx, which shares the same values as 440GRx. Signed-off-by: Josh Boyer commit 71f349799b34c8b6ce3df42126b4de6cfa16456d Author: David Gibson Date: Thu May 15 16:46:39 2008 +1000 [POWERPC] Convert remaining dts-v0 files to v1 At the moment we have a mixture of left-over version 0 and new-format version 1 files in arch/powerpc/boot/dts. This is potentially confusing to people new to the dts format attempting to figure it out. So, this patch converts all the as-yet unconverted dts v0 files and converts them to v1. They're mechanically-converted, and not hand tweaked so in some cases they're not 100% in keeping with usual v1 style, but the convertor program does have some heuristics so the discrepancies aren't too bad. I have checked that this patch produces no changes to the resulting dtb binaries. Signed-off-by: David Gibson Acked-by: Josh Boyer Acked-by: Geoff Levand Signed-off-by: Josh Boyer commit b786af117b360843349cf66165c4efa0217ca2a7 Author: Stephen Neuendorffer Date: Wed May 7 04:29:17 2008 +1000 [POWERPC] Refactor DCR code Previously, DCR support was configured at compile time to either use MMIO or native dcr instructions. Although this works for most platforms, it fails on FPGA platforms: 1) Systems may include more than one DCR bus. 2) Systems may be native DCR capable and still use memory mapped DCR interface. This patch provides runtime support based on the device trees for the case where CONFIG_PPC_DCR_MMIO and CONFIG_PPC_DCR_NATIVE are both selected. Previously, this was a poorly defined configuration, which happened to provide NATIVE support. The runtime selection is made based on the dcr-controller having a 'dcr-access-method' attribute in the device tree. If only one of the above options is selected, then the code uses #defines to select only the used code in order to avoid introducing overhead in existing usage. Signed-off-by: Stephen Neuendorffer Signed-off-by: Josh Boyer commit 0261ac5f2f43a1906cfacfb19d62ed643d162cbe Author: Ingo Molnar Date: Thu May 29 09:31:50 2008 +0200 xen: fix "xen: implement save/restore" -tip testing found the following build breakage: drivers/built-in.o: In function `xen_suspend': manage.c:(.text+0x4390f): undefined reference to `xen_console_resume' with this config: http://redhat.com/~mingo/misc/config-Thu_May_29_09_23_16_CEST_2008.bad i have bisected it down to: | commit 0e91398f2a5d4eb6b07df8115917d0d1cf3e9b58 | Author: Jeremy Fitzhardinge | Date: Mon May 26 23:31:27 2008 +0100 | | xen: implement save/restore the problem is that drivers/xen/manage.c is built unconditionally if CONFIG_XEN is enabled and makes use of xen_suspend(), but drivers/char/hvc_xen.c, where the xen_suspend() method is implemented, is only build if CONFIG_HVC_XEN=y as well. i have solved this by providing a NOP implementation for xen_suspend() in the !CONFIG_HVC_XEN case. Signed-off-by: Ingo Molnar commit b7482f52789266e2548be5d0f6420c9fc12428d8 Author: Philipp Zabel Date: Wed May 28 17:58:06 2008 +0100 [ALSA] ASoC: Add UDA1380 driver The UDA1380 codec is used by the HTC Magician and a number of Samsung reference boards. This driver has had a long out of tree history, having originally been written by Giorgio Padrin and converted to ASoC by Richard Purdie. Since conversion to ASoC most of the work on the driver has been done by Philipp Zabel with some review and updates for new APIs by Liam Girdwood and Mark Brown. Signed-off-by: Richard Purdie Signed-off-by: Philipp Zabel Signed-off-by: Liam Girdwood Signed-off-by: Mark Brown Signed-off-by: Takashi Iwai commit e13ac2e9b18bde51cf32c69c2209df25791ab3e5 Author: Mark Brown Date: Wed May 28 17:58:05 2008 +0100 [ALSA] ASoC: Add SOC_DOUBLE_S8_TLV control type The SOC_DOUBLE_S8_TLV control type was originally implemented in the UDA1380 driver by Philipp Zabel and was moved into the core by me. Signed-off-by: Philipp Zabel Signed-off-by: Mark Brown Signed-off-by: Takashi Iwai commit 19ec673ced067316b9732bc6d1c4ff4052e5f795 Author: Cyrill Gorcunov Date: Wed May 28 23:00:47 2008 +0400 x86: nmi - fix incorrect NMI watchdog used by default The commit commit 4b82b277707a39b97271439c475f186f63ec4692 Author: Cyrill Gorcunov Date: Sat May 24 19:36:35 2008 +0400 set nmi_watchdog to NMI_IO_APIC as by default. This causes hangs on some machines with buggy watchdogs. Fix it - i.e. restore old behaviour. Thanks to Sitsofe Wheeler and Adrian Bunk for catching the problem and Maciej W. Rozycki for explanation what is going on there. Signed-off-by: Cyrill Gorcunov CC: Maciej W. Rozycki Signed-off-by: Ingo Molnar commit c7d624d1ee7b77622305bd638755394e4d3f2d2f Author: Dave Jones Date: Wed May 28 12:57:13 2008 -0400 x86: Fix up silly i1586 boot message. Trying to boot a 64-bit kernel on a 32bit Pentium 4 gets you an amusing message along the lines of. "you need an x86-64, but you only have an i1586" due to the P4 being family F. Munge it to be 686. Signed-off-by: Dave Jones Signed-off-by: H. Peter Anvin commit 3c65e8743bf8b5cf0f90e8d767bf1d8b50c14c76 Author: Li Zefan Date: Wed May 28 08:58:56 2008 -0500 JFS: diAlloc() should return -EIO rather than EIO The comment above the function says one of its return value is -EIO, and also the caller of diAlloc() checks for -EIO: struct inode *ialloc(struct inode *parent, umode_t mode) { ... rc = diAlloc(parent, S_ISDIR(mode), inode); if (rc) { jfs_warn("ialloc: diAlloc returned %d!", rc); if (rc == -EIO) make_bad_inode(inode); ... Signed-off-by: Li Zefan Signed-off-by: Dave Kleikamp commit a93bbaa77ea61c6bad684263a65f812b31bf9791 Author: Takashi Iwai Date: Tue May 27 17:59:24 2008 +0200 [ALSA] Improve the slots option handling Fix and improve the slots option handling. The sound core tries to find the slot with the given module name first and assign if it's still available. If all pre-given slots are unavailable, then try to find another free slot. Also, when a module name begins with '!', it means the negative match: the slot will be given for any modules but that one. Signed-off-by: Takashi Iwai commit b20aeccd6ad42ccb6be1b3d1d32618ddd2b31bf0 Author: Ingo Molnar Date: Wed May 28 14:24:38 2008 +0200 xen: fix early bootup crash on native hardware -tip tree auto-testing found the following early bootup hang: --------------> get_memcfg_from_srat: assigning address to rsdp RSD PTR v0 [Nvidia] BUG: Int 14: CR2 ffd00040 EDI 8092fbfe ESI ffd00040 EBP 80b0aee8 ESP 80b0aed0 EBX 000f76f0 EDX 0000000e ECX 00000003 EAX ffd00040 err 00000000 EIP 802c055a CS 00000060 flg 00010006 Stack: ffd00040 80bc78d0 80b0af6c 80b1dbfe 8093d8ba 00000008 80b42810 80b4ddb4 80b42842 00000000 80b0af1c 801079c8 808e724e 00000000 80b42871 802c0531 00000100 00000000 0003fff0 80b0af40 80129999 00040100 00040100 00000000 Pid: 0, comm: swapper Not tainted 2.6.26-rc4-sched-devel.git #570 [<802c055a>] ? strncmp+0x11/0x25 [<80b1dbfe>] ? get_memcfg_from_srat+0xb4/0x568 [<801079c8>] ? mcount_call+0x5/0x9 [<802c0531>] ? strcmp+0xa/0x22 [<80129999>] ? printk+0x38/0x3a [<80129999>] ? printk+0x38/0x3a [<8011b122>] ? memory_present+0x66/0x6f [<80b216b4>] ? setup_memory+0x13/0x40c [<80b16b47>] ? propagate_e820_map+0x80/0x97 [<80b1622a>] ? setup_arch+0x248/0x477 [<80129999>] ? printk+0x38/0x3a [<80b11759>] ? start_kernel+0x6e/0x2eb [<80b110fc>] ? i386_start_kernel+0xeb/0xf2 ======================= <------ with this config: http://redhat.com/~mingo/misc/config-Wed_May_28_01_33_33_CEST_2008.bad The thing is, the crash makes little sense at first sight. We crash on a benign-looking printk. The code around it got changed in -tip but checking those topic branches individually did not reproduce the bug. Bisection led to this commit: | d5edbc1f75420935b1ec7e65df10c8f81cea82de is first bad commit | commit d5edbc1f75420935b1ec7e65df10c8f81cea82de | Author: Jeremy Fitzhardinge | Date: Mon May 26 23:31:22 2008 +0100 | | xen: add p2m mfn_list_list Which is somewhat surprising, as on native hardware Xen client side should have little to no side-effects. After some head scratching, it turns out the following happened: randconfig enabled the following Xen options: CONFIG_XEN=y CONFIG_XEN_MAX_DOMAIN_MEMORY=8 # CONFIG_XEN_BLKDEV_FRONTEND is not set # CONFIG_XEN_NETDEV_FRONTEND is not set CONFIG_HVC_XEN=y # CONFIG_XEN_BALLOON is not set which activated this piece of code in arch/x86/xen/mmu.c: > @@ -69,6 +69,13 @@ > __attribute__((section(".data.page_aligned"))) = > { [ 0 ... TOP_ENTRIES - 1] = &p2m_missing[0] }; > > +/* Arrays of p2m arrays expressed in mfns used for save/restore */ > +static unsigned long p2m_top_mfn[TOP_ENTRIES] > + __attribute__((section(".bss.page_aligned"))); > + > +static unsigned long p2m_top_mfn_list[TOP_ENTRIES / P2M_ENTRIES_PER_PAGE] > + __attribute__((section(".bss.page_aligned"))); The problem is, you must only put variables into .bss.page_aligned that have a _size_ that is _exactly_ page aligned. In this case the size of p2m_top_mfn_list is not page aligned: 80b8d000 b p2m_top_mfn 80b8f000 b p2m_top_mfn_list 80b8f008 b softirq_stack 80b97008 b hardirq_stack 80b9f008 b bm_pte So all subsequent variables get unaligned which, depending on luck, breaks the kernel in various funny ways. In this case what killed the kernel first was the misaligned bootmap pte page, resulting in that creative crash above. Anyway, this was a fun bug to track down :-) I think the moral is that .bss.page_aligned is a dangerous construct in its current form, and the symptoms of breakage are very non-trivial, so i think we need build-time checks to make sure all symbols in .bss.page_aligned are truly page aligned. The Xen fix below gets the kernel booting again. Signed-off-by: Ingo Molnar commit b1829d2705daa7cb72eb1e08bdc8b7e9fad34266 Author: Ingo Molnar Date: Wed May 28 01:22:08 2008 +0200 ftrace: fix merge Signed-off-by: Ingo Molnar commit dd564d0cf08686cf0cc332bf9d48cba5b26a8171 Author: Pavel Machek Date: Tue May 27 18:03:56 2008 +0200 x86: aperture_64.c: cleanups Some small cleanups for aperture_64.c; they should not really change any code. Signed-off-by: Pavel Machek Cc: Dave Jones Cc: Andi Kleen Signed-off-by: Thomas Gleixner commit f9423e7a94eb2dfef3503dde76d17eaf342ab962 Author: Kailang Yang Date: Tue May 27 12:32:25 2008 +0200 [ALSA] hda - Fix EAPD and COEF setups for realtek codecs Fixed EAPD and COEF setups for Realtek ALC662/663, 660-VD and 888 codecs. Signed-off-by: Kailang Yang Signed-off-by: Takashi Iwai commit 2f8932863d243a744ccd3dc005490ad9d2eae478 Author: Kailang Yang Date: Tue May 27 12:14:47 2008 +0200 [ALSA] hda - show correct codec chip in PCM stream names Show more exact codec chip name in the PCM stream name strings. Signed-off-by: Kailang Yang Signed-off-by: Takashi Iwai commit 531240ff520406c793a110e1c0f187d931f47d66 Author: Kailang Yang Date: Tue May 27 12:10:25 2008 +0200 [ALSA] hda - Fix vref pincap check in alc882 auto-detection Signed-off-by: Kailang Yang Signed-off-by: Takashi Iwai commit 6dda9f4a95905f2b38e79e3737da5e25397e6acb Author: Kailang Yang Date: Tue May 27 12:05:31 2008 +0200 [ALSA] hda - Add ALC663 support Added the support of ALC663 codec, including specific models for ASUS M51VA, ASUS G71V, ASUS H13 and ASUS G50V. Signed-off-by: Kailang Yang Signed-off-by: Takashi Iwai commit abbc9d1b25637b1948a4718fa8f7b257233136bc Author: Kailang Yang Date: Tue May 27 11:48:01 2008 +0200 [ALSA] hda - Add ICH9 controller support (8086:2911) Added the missing PCI ID for ICH9 controller (8086:2911) Signed-off-by: Kailang Yang Signed-off-by: Takashi Iwai commit f269002e61446ed3410d8ca5f06ebca1e2760cb5 Author: Kailang Yang Date: Tue May 27 11:44:55 2008 +0200 [ALSA] hda - Add support of Teradici controller Add the new PCI ID 0x6549 0x1200 Teradici controller. Signed-off-by: Kailang Yang Signed-off-by: Takashi Iwai commit 142054a389ebf7972b4eee822ad7c55ff852b649 Author: Mike Rapoport Date: Mon May 26 12:59:16 2008 +0300 [ALSA] Add EM-X270 ASoC driver This patch adds ASoC support for EM-X270 machine. Signed-off-by: Mike Rapoport Signed-off-by: Takashi Iwai commit 62cf872a8eec1f11aacbec0ac3fe3698bfa9b403 Author: Takashi Iwai Date: Tue May 20 12:15:15 2008 +0200 [ALSA] Replace CONFIG_SND_DEBUG_DETECT with CONFIG_SND_DEBUG_VERBOSE Replace CONFIG_SND_DEBUG_DETECT with CONFIG_SND_DEBUG_VERBOSE to represent its meaning more better. This config isn't provided only for the detection but for more verbose debug prints in general. Signed-off-by: Takashi Iwai commit 6938d6b2a90d5e2ffaef037852652a1333502519 Author: Takashi Iwai Date: Fri May 23 16:11:26 2008 +0200 [ALSA] Fix AC97 kconfig items The kconfig items related with AC97-powersave must be outside the CONFIG_SND_PCI range. And it'd be better together with CONFIG_SND_AC97. Signed-off-by: Takashi Iwai commit 89fe5117928b2c1272c9376362131ded561c91ad Author: Takashi Iwai Date: Fri May 23 16:10:37 2008 +0200 sound: Convert to menuconfig Convert menu in sound Kconfig files to menuconfig and if. Signed-off-by: Takashi Iwai commit 06b5fb97cec1a3ca61d10164118b00fe98a6a866 Author: Adrian Bunk Date: Tue May 20 00:59:35 2008 +0300 sound: sound/oss/: remove CVS keywords This patch removes CVS keywords that weren't updated for a long time from comments. Signed-off-by: Adrian Bunk Signed-off-by: Takashi Iwai commit a72e72469a166c825196c3f20dabd352877fec2b Author: Adrian Bunk Date: Tue May 20 01:06:55 2008 +0300 [ALSA] remove CVS keywords This patch removes CVS keywords that weren't updated for a long time from comments. Signed-off-by: Adrian Bunk Signed-off-by: Takashi Iwai commit 62b126315369d52e40ad604e1798ff5b6265287e Author: Chris Mennie Date: Mon May 19 16:21:33 2008 +0200 [ALSA] usb-audio - Support for Roland SonicCell sound module Added entry into usbquirks.h to recognize Roland SonicCell sound module by mostly duplicating the entry for the Roland SH-201. USB MIDI works just fine, though the USB audio is a little unreliable (but still works well enough). Signed-off-by: Chris Mennie Signed-off-by: Takashi Iwai commit 3945e2c9abf8e00c2edc4aa29215ddfad1cd8cf7 Author: Yinghai Lu Date: Sun May 25 10:00:09 2008 -0700 x86: extend e820 ealy_res support 32bit - fix #2 remove extra -1 in reseve_early calling panic if can not find space for new RAMDISK Signed-off-by: Yinghai Lu Cc: Andrew Morton Cc: Jeremy Fitzhardinge Signed-off-by: Thomas Gleixner commit 359cdd3f866b6219a6729e313faf2221397f3278 Author: Jeremy Fitzhardinge Date: Mon May 26 23:31:28 2008 +0100 xen: maintain clock offset over save/restore Hook into the device model to make sure that timekeeping's resume handler is called. This deals with our clocksource's non-monotonicity over the save/restore. Explicitly call clock_has_changed() to make sure that all the timers get retriggered properly. Signed-off-by: Jeremy Fitzhardinge Signed-off-by: Thomas Gleixner commit 0e91398f2a5d4eb6b07df8115917d0d1cf3e9b58 Author: Jeremy Fitzhardinge Date: Mon May 26 23:31:27 2008 +0100 xen: implement save/restore This patch implements Xen save/restore and migration. Saving is triggered via xenbus, which is polled in drivers/xen/manage.c. When a suspend request comes in, the kernel prepares itself for saving by: 1 - Freeze all processes. This is primarily to prevent any partially-completed pagetable updates from confusing the suspend process. If CONFIG_PREEMPT isn't defined, then this isn't necessary. 2 - Suspend xenbus and other devices 3 - Stop_machine, to make sure all the other vcpus are quiescent. The Xen tools require the domain to run its save off vcpu0. 4 - Within the stop_machine state, it pins any unpinned pgds (under construction or destruction), performs canonicalizes various other pieces of state (mostly converting mfns to pfns), and finally 5 - Suspend the domain Restore reverses the steps used to save the domain, ending when all the frozen processes are thawed. Signed-off-by: Jeremy Fitzhardinge Signed-off-by: Thomas Gleixner commit 7d88d32a4670af583c896e5ecd3929b78538ca62 Author: Jeremy Fitzhardinge Date: Mon May 26 23:31:26 2008 +0100 xenbus: rebind irq on restore When restoring, rebind the existing xenbus irq to the new xenbus event channel. (It turns out in practice that this is always the same, and is never updated on restore. That's a bug, but Xeno-linux has been like this for a long time, so it can't really be fixed.) Signed-off-by: Jeremy Fitzhardinge Signed-off-by: Thomas Gleixner commit 6b9b732d0e396a3f1a95977162a8624aafce38a1 Author: Jeremy Fitzhardinge Date: Mon May 26 23:31:25 2008 +0100 xen-console: add save/restore Add code to: 1. Deal with the console page being canonicalized. During save, the console's mfn in the start_info structure is canonicalized to a pfn. In order to deal with that, we always use a copy of the pfn and indirect off that all the time. However, we fall back to using the mfn if the pfn hasn't been initialized yet. 2. Restore the console event channel, and rebind it to the existing irq. Signed-off-by: Jeremy Fitzhardinge Signed-off-by: Thomas Gleixner commit 0f2287ad7c61f10b2a22a06e2a66cdbbbfc44ad0 Author: Jeremy Fitzhardinge Date: Mon May 26 23:31:24 2008 +0100 xen: fix unbind_from_irq() Rearrange the tests in unbind_from_irq() so that we can still unbind an irq even if the underlying event channel is bad. This allows a device driver to shuffle its irqs on save/restore before the underlying event channels have been fixed up. Signed-off-by: Jeremy Fitzhardinge Signed-off-by: Thomas Gleixner commit eb1e305f4ef201e549ffd475b7dcbcd4ec36d7dc Author: Jeremy Fitzhardinge Date: Mon May 26 23:31:23 2008 +0100 xen: add rebind_evtchn_irq Add rebind_evtchn_irq(), which will rebind an device driver's existing irq to a new event channel on restore. Since the new event channel will be masked and bound to vcpu0, we update the state accordingly and unmask the irq once everything is set up. Signed-off-by: Jeremy Fitzhardinge Signed-off-by: Thomas Gleixner commit d5edbc1f75420935b1ec7e65df10c8f81cea82de Author: Jeremy Fitzhardinge Date: Mon May 26 23:31:22 2008 +0100 xen: add p2m mfn_list_list When saving a domain, the Xen tools need to remap all our mfns to portable pfns. In order to remap our p2m table, it needs to know where all its pages are, so maintain the references to the p2m table for it to use. Signed-off-by: Jeremy Fitzhardinge Signed-off-by: Thomas Gleixner commit a0d695c821544947342a2d372ec4108bc813b979 Author: Jeremy Fitzhardinge Date: Mon May 26 23:31:21 2008 +0100 xen: make dummy_shared_info non-static Rename dummy_shared_info to xen_dummy_shared_info and make it non-static, in anticipation of users outside of enlighten.c Signed-off-by: Jeremy Fitzhardinge Signed-off-by: Thomas Gleixner commit cf0923ea295ba08ae656ef04164a43cb6553ba99 Author: Jeremy Fitzhardinge Date: Mon May 26 23:31:20 2008 +0100 xen: efficiently support a holey p2m table When using sparsemem and memory hotplug, the kernel's pseudo-physical address space can be discontigious. Previously this was dealt with by having the upper parts of the radix tree stubbed off. Unfortunately, this is incompatible with save/restore, which requires a complete p2m table. The solution is to have a special distinguished all-invalid p2m leaf page, which we can point all the hole areas at. This allows the tools to see a complete p2m table, but it only costs a page for all memory holes. It also simplifies the code since it removes a few special cases. Signed-off-by: Jeremy Fitzhardinge Signed-off-by: Thomas Gleixner commit 8006ec3e911f93d702e1d4a4e387e244ab434924 Author: Jeremy Fitzhardinge Date: Mon May 26 23:31:19 2008 +0100 xen: add configurable max domain size Add a config option to set the max size of a Xen domain. This is used to scale the size of the physical-to-machine array; it ends up using around 1 page/GByte, so there's no reason to be very restrictive. For a 32-bit guest, the default value of 8GB is probably sufficient; there's not much point in giving a 32-bit machine much more memory than that. Signed-off-by: Jeremy Fitzhardinge Signed-off-by: Thomas Gleixner commit d451bb7aa852627bdf7be7937dc3d9d9f261b235 Author: Jeremy Fitzhardinge Date: Mon May 26 23:31:18 2008 +0100 xen: make phys_to_machine structure dynamic We now support the use of memory hotplug, so the physical to machine page mapping structure must be dynamic. This is implemented as a two-level radix tree structure, which allows us to efficiently incrementally allocate memory for the p2m table as new pages are added. Signed-off-by: Jeremy Fitzhardinge Signed-off-by: Thomas Gleixner commit 955d6f1778da5a9795f2dfb07f760006f194609a Author: Adrian Bunk Date: Mon May 26 23:31:17 2008 +0100 xen: drivers/xen/balloon.c: make a function static Make the needlessly global balloon_set_new_target() static. Signed-off-by: Adrian Bunk Acked-by: Chris Wright Signed-off-by: Andrew Morton Signed-off-by: Thomas Gleixner commit 38bb5ab4179572f4d24d3ca7188172a31ca51a69 Author: Jeremy Fitzhardinge Date: Mon May 26 23:31:16 2008 +0100 xen: count resched interrupts properly Make sure resched interrupts appear in /proc/interrupts in the proper place. Signed-off-by: Jeremy Fitzhardinge Signed-off-by: Thomas Gleixner commit bfdab126cfa6fe3c2ddb8b6007a38202b510b6c1 Author: Isaku Yamahata Date: Mon May 26 23:31:15 2008 +0100 xen: add missing definitions in include/xen/interface/memory.h which ia64/xen needs Add xen handles realted definitions for xen memory which ia64/xen needs. Pointer argumsnts for ia64/xen hypercall are passed in pseudo physical address (guest physical address) so that it is required to convert guest kernel virtual address into pseudo physical address. The xen guest handle represents such arguments. Signed-off-by: Isaku Yamahata Signed-off-by: Jeremy Fitzhardinge Signed-off-by: Thomas Gleixner commit a90971ebddc81330f59203dee9803512aa4e2ef6 Author: Isaku Yamahata Date: Mon May 26 23:31:14 2008 +0100 xen: compilation fix to balloon driver for ia64 support fix compilation error of ballon driver on ia64. extent_start member is pointer argument. On x86 pointer argument for xen hypercall is passed as virtual address. On the other hand, ia64 and ppc, pointer argument is passed in pseudo physical address. (guest physicall address.) So they must be passed as handle and convert right before issuing hypercall. CC drivers/xen/balloon.o linux-2.6-x86/drivers/xen/balloon.c: In function 'increase_reservation': linux-2.6-x86/drivers/xen/balloon.c:228: error: incompatible types in assignment linux-2.6-x86/drivers/xen/balloon.c: In function 'decrease_reservation': linux-2.6-x86/drivers/xen/balloon.c:324: error: incompatible types in assignment linux-2.6-x86/drivers/xen/balloon.c: In function 'dealloc_pte_fn': linux-2.6-x86/drivers/xen/balloon.c:486: error: incompatible types in assignment linux-2.6-x86/drivers/xen/balloon.c: In function 'alloc_empty_pages_and_pagevec': linux-2.6-x86/drivers/xen/balloon.c:522: error: incompatible types in assignment make[2]: *** [drivers/xen/balloon.o] Error 1 Signed-off-by: Isaku Yamahata Signed-off-by: Jeremy Fitzhardinge Signed-off-by: Thomas Gleixner commit ec9b2065d4d3b797604c09a569083dd9ff951b1b Author: Isaku Yamahata Date: Mon May 26 23:31:13 2008 +0100 xen: Move manage.c to drivers/xen for ia64/xen support move arch/x86/xen/manage.c under drivers/xen/to share codes with x86 and ia64. ia64/xen also uses manage.c Signed-off-by: Isaku Yamahata Signed-off-by: Jeremy Fitzhardinge Signed-off-by: Thomas Gleixner commit 83abc70a4c6e306f4c1672e25884322f797e4fcb Author: Jeremy Fitzhardinge Date: Mon May 26 23:31:12 2008 +0100 xen: make earlyprintk=xen work again For some perverse reason, if you call add_preferred_console() it prevents setup_early_printk() from successfully enabling the boot console - unless you make it a preferred console too... Also, make xenboot console output distinct from normal console output, since it gets repeated when the console handover happens, and the duplicated output is confusing without disambiguation. Signed-off-by: Jeremy Fitzhardinge Signed-off-by: Thomas Gleixner Cc: Markus Armbruster Cc: Gerd Hoffmann commit e4dcff1f6e7582f76c2c9990b1d9111bbc8e26ef Author: Markus Armbruster Date: Mon May 26 23:31:11 2008 +0100 xen pvfb: Dynamic mode support (screen resizing) The pvfb backend indicates dynamic mode support by creating node feature_resize with a non-zero value in its xenstore directory. xen-fbfront sends a resize notification event on mode change. Fully backwards compatible both ways. Framebuffer size and initial resolution can be controlled through kernel parameter xen_fbfront.video. The backend enforces a separate size limit, which it advertises in node videoram in its xenstore directory. xen-kbdfront gets the maximum screen resolution from nodes width and height in the backend's xenstore directory instead of hardcoding it. Additional goodie: support for larger framebuffers (512M on a 64-bit system with 4K pages). Changing the number of bits per pixels dynamically is not supported, yet. Ported from http://xenbits.xensource.com/linux-2.6.18-xen.hg?rev/92f7b3144f41 http://xenbits.xensource.com/linux-2.6.18-xen.hg?rev/bfc040135633 Signed-off-by: Pat Campbell Signed-off-by: Markus Armbruster Signed-off-by: Jeremy Fitzhardinge Signed-off-by: Thomas Gleixner commit f4ad1ebd7a0fae2782ef9f76c0b94b536742c3e8 Author: Markus Armbruster Date: Mon May 26 23:31:10 2008 +0100 xen pvfb: Zero unused bytes in events sent to backend This isn't a security flaw (the backend can see all our memory anyway). But it's the right thing to do all the same. Signed-off-by: Markus Armbruster Signed-off-by: Jeremy Fitzhardinge Signed-off-by: Thomas Gleixner commit 1e892c959da42278e60b21f5ecfd6fba0efff313 Author: Markus Armbruster Date: Mon May 26 23:31:09 2008 +0100 xen pvfb: Module aliases to support module autoloading These are mostly for completeness and consistency with the other frontends, as PVFB is typically compiled in rather than a module. Derived from http://xenbits.xensource.com/linux-2.6.18-xen.hg?rev/5e294e29a43e While there, add module descriptions. Signed-off-by: Markus Armbruster Signed-off-by: Jeremy Fitzhardinge Signed-off-by: Thomas Gleixner commit 6ba0e7b36c7cc1745b3cbeda244d14edae3ad058 Author: Markus Armbruster Date: Mon May 26 23:31:08 2008 +0100 xen pvfb: Pointer z-axis (mouse wheel) support Add z-axis motion to pointer events. Backward compatible, because there's space for the z-axis in union xenkbd_in_event, and old backends zero it. Derived from http://xenbits.xensource.com/linux-2.6.18-xen.hg?rev/57dfe0098000 http://xenbits.xensource.com/linux-2.6.18-xen.hg?rev/1edfea26a2a9 http://xenbits.xensource.com/linux-2.6.18-xen.hg?rev/c3ff0b26f664 Signed-off-by: Pat Campbell Signed-off-by: Markus Armbruster Signed-off-by: Jeremy Fitzhardinge Signed-off-by: Thomas Gleixner commit 9e124fe16ff24746d6de5a2ad685266d7bce0e08 Author: Markus Armbruster Date: Mon May 26 23:31:07 2008 +0100 xen: Enable console tty by default in domU if it's not a dummy Without console= arguments on the kernel command line, the first console to register becomes enabled and the preferred console (the one behind /dev/console). This is normally tty (assuming CONFIG_VT_CONSOLE is enabled, which it commonly is). This is okay as long tty is a useful console. But unless we have the PV framebuffer, and it is enabled for this domain, tty0 in domU is merely a dummy. In that case, we want the preferred console to be the Xen console hvc0, and we want it without having to fiddle with the kernel command line. Commit b8c2d3dfbc117dff26058fbac316b8acfc2cb5f7 did that for us. Since we now have the PV framebuffer, we want to enable and prefer tty again, but only when PVFB is enabled. But even then we still want to enable the Xen console as well. Problem: when tty registers, we can't yet know whether the PVFB is enabled. By the time we can know (xenstore is up), the console setup game is over. Solution: enable console tty by default, but keep hvc as the preferred console. Change the preferred console to tty when PVFB probes successfully, unless we've been given console kernel parameters. Signed-off-by: Markus Armbruster Signed-off-by: Jeremy Fitzhardinge Signed-off-by: Thomas Gleixner commit a15af1c9ea2750a9ff01e51615c45950bad8221b Author: Jeremy Fitzhardinge Date: Mon May 26 23:31:06 2008 +0100 x86/paravirt: add pte_flags to just get pte flags Add pte_flags() to extract the flags from a pte. This is a special case of pte_val() which is only guaranteed to return the pte's flags correctly; the page number may be corrupted or missing. The intent is to allow paravirt implementations to return pte flags without having to do any translation of the page number (most notably, Xen). Signed-off-by: Jeremy Fitzhardinge Signed-off-by: Thomas Gleixner commit 239d1fc04ed0b58d638096b12a7f6d50269d30c9 Author: Jeremy Fitzhardinge Date: Mon May 26 23:31:05 2008 +0100 xen: don't worry about preempt during xen_irq_enable() When enabling interrupts, we don't need to worry about preemption, because we either enter with interrupts disabled - so no preemption - or the caller is confused and is re-enabling interrupts on some indeterminate processor. Signed-off-by: Jeremy Fitzhardinge Signed-off-by: Thomas Gleixner commit 2956a3511c8c5dccb1d4739ead17c7c3c23a24b7 Author: Jeremy Fitzhardinge Date: Mon May 26 23:31:04 2008 +0100 xen: allow some cr4 updates The guest can legitimately change things like cr4.OSFXSR and OSXMMEXCPT, so let it. Signed-off-by: Jeremy Fitzhardinge Signed-off-by: Thomas Gleixner commit 349c709f42453707f74bece0d9d35ee5b3842893 Author: Jeremy Fitzhardinge Date: Mon May 26 23:31:02 2008 +0100 xen: use new sched_op Use the new sched_op hypercall, mainly because xenner doesn't support the old one. Signed-off-by: Jeremy Fitzhardinge Signed-off-by: Thomas Gleixner commit 7b1333aa4cb546ddeb9c05098a53d9a777623a05 Author: Jeremy Fitzhardinge Date: Mon May 26 23:31:01 2008 +0100 xen: use hypercall rather than clts Xen will trap and emulate clts, but its better to use a hypercall. Also, xenner doesn't handle clts. Signed-off-by: Jeremy Fitzhardinge Signed-off-by: Thomas Gleixner commit 0922abdc3982ae54cbe1b24ac5aa91a260eca1bb Author: Jeremy Fitzhardinge Date: Mon May 26 23:31:00 2008 +0100 xen: make early console also write to debug console When using "earlyprintk=xen", also write the console output to the raw debug console. This will appear on dom0's console if the hypervisor has been compiled to allow it. Signed-off-by: Jeremy Fitzhardinge Signed-off-by: Thomas Gleixner commit 0acf10d8fbd52926217d3933d196b33fe2468f18 Author: Jeremy Fitzhardinge Date: Mon May 26 23:30:59 2008 +0100 xen: add raw console write functions for debug Add a couple of functions which can write directly to the Xen console for debugging. This output ends up on the host's dom0 console (assuming it allows the domain to write there). Signed-off-by: Jeremy Fitzhardinge Signed-off-by: Thomas Gleixner commit 4e09e21ccb0dfe7ee8d5641192e0072e83bd916b Author: Jeremy Fitzhardinge Date: Mon May 26 23:31:03 2008 +0100 x86: use symbolic constant in stts() Signed-off-by: Jeremy Fitzhardinge Signed-off-by: Thomas Gleixner commit 4226ab93d8ae3fd895abe45879fe34d489a98718 Author: Jeremy Fitzhardinge Date: Mon May 26 23:30:58 2008 +0100 x86: use pteval_t for _PAGE_FOO Rather than making _PAGE_* constants signed, and then relying on sign-extension to make sure that masks derived from them are wide enough, just explicitly type them pteval_t. This guarantees that they and any derived values are the right size for the current pte format. The reliance on sign extension is fragile, and invokes some very subtle corners of the C type system. Signed-off-by: Jeremy Fitzhardinge Signed-off-by: Thomas Gleixner commit 900cfa46191a7d87cf1891924cb90499287fd235 Author: Carlos R. Mafra Date: Thu May 22 19:25:11 2008 -0300 hrtimer: Remove unused variables in ktime_divns() The variables dns and inc are not used, remove them. Signed-off-by: Carlos R. Mafra Cc: tglx@linutronix.de Signed-off-by: Thomas Gleixner commit d031476408ae0f5196e3c579f519dfdefb099b67 Author: Jeremy Fitzhardinge Date: Fri May 23 14:41:19 2008 +0100 hrtimer: remove warning in hres_timers_resume hres_timers_resume() warns if there appears to be more than one cpu online. This warning makes sense when the suspend/resume mechanism offlines all cpus but one during the suspend/resume process. However, Xen suspend does not need to offline the other cpus; it merely keeps them tied up in stop_machine() while the virtual machine is suspended. The warning hres_timers_resume issues is therefore spurious. Signed-off-by: Jeremy Fitzhardinge Cc: xen-devel Cc: "Rafael J. Wysocki" Signed-off-by: Thomas Gleixner commit 492a7ea5bcf263ee02a9eb6a3ab0222a1946fade Author: Abhishek Sagar Date: Sun May 25 00:10:04 2008 +0530 ftrace: fix updating of ftrace_update_cnt Hi Ingo/Steven, Ftrace currently maintains an update count which includes false updates, i.e, updates which failed. If anything, such failures should be tracked by some separate variable, but this patch provides a minimal fix. Signed-off-by: Abhishek Sagar Cc: rostedt@goodmis.org Signed-off-by: Thomas Gleixner commit ffdaa3582b6b39d625d585d07e329ffdc925e971 Author: Abhishek Sagar Date: Sat May 24 23:45:02 2008 +0530 ftrace: safe traversal of ftrace_hash hlist Hi Steven, I noticed that concurrent instances of ftrace_record_ip() have a race between ftrace_hash list traversal during ftrace_ip_in_hash() (before acquiring ftrace_shutdown_lock) and ftrace_add_hash(). If it's so then this should fix it. Signed-off-by: Abhishek Sagar Cc: rostedt@goodmis.org Signed-off-by: Thomas Gleixner commit ccbfac2923c9febaeaf07a50054027a92b502718 Author: Steven Rostedt Date: Thu May 22 14:31:07 2008 -0400 ftrace: powerpc clean ups This patch cleans up the ftrace code in PowerPC based on the comments from Michael Ellerman. Signed-off-by: Steven Rostedt Cc: Michael Ellerman Cc: proski@gnu.org Cc: a.p.zijlstra@chello.nl Cc: Pekka Paalanen Cc: Steven Rostedt Cc: linuxppc-dev@ozlabs.org Cc: Soeren Sandmann Pedersen Cc: paulus@samba.org Signed-off-by: Thomas Gleixner commit 41bc8144d02028133bcd1d545023c6f49e8b2411 Author: Steven Rostedt Date: Thu May 22 11:49:22 2008 -0400 ftrace: fix up cmdline recording The new work with converting the trace hooks over to markers broke the command line recording of ftrace. This patch fixes it again. Signed-off-by: Steven Rostedt Cc: Peter Zijlstra Cc: Mathieu Desnoyers Signed-off-by: Thomas Gleixner commit 41c52c0db9607e59f90da7da5309489fa06e887f Author: Steven Rostedt Date: Thu May 22 11:46:33 2008 -0400 ftrace: set_ftrace_notrace feature While debugging latencies in the RT kernel, I found that it would be nice to be able to filter away functions from the trace than just to filter on functions. I added a new interface to the debugfs tracing directory called set_ftrace_notrace When dynamic frace is enabled, this lets you filter away functions that will not be recorded in the trace. It is similar to adding 'notrace' to those functions but by doing it without recompiling the kernel. Here's how set_ftrace_filter and set_ftrace_notrace interact. Remember, if set_ftrace_filter is set, it removes all functions from the trace execpt for those listed in the set_ftrace_filter. set_ftrace_notrace will prevent those functions from being traced. If you were to set one function in both set_ftrace_filter and set_ftrace_notrace and that function was the same, then you would end up with an empty trace. the set of functions to trace is: set_ftrace_filter == empty then all functions not in set_ftrace_notrace else set of the set_ftrace_filter and not in set of set_ftrace_notrace. Signed-off-by: Steven Rostedt Signed-off-by: Thomas Gleixner commit da89a7a2536c46e76a1a4351a70a8b8417e5fed1 Author: Steven Rostedt Date: Thu May 22 00:22:20 2008 -0400 ftrace: remove printks from irqsoff trace Printing out new max latencies was fine for the old RT tracer. But for mainline it is a bit messy. We also need to test if the run queue is locked before we can do the print. This means that we may not be printing out latencies if the run queue is locked on another CPU. This produces inconsistencies in the output. This patch simply removes the print altogether. Signed-off-by: Steven Rostedt Cc: pq@iki.fi Cc: proski@gnu.org Cc: sandmann@redhat.com Cc: a.p.zijlstra@chello.nl Signed-off-by: Thomas Gleixner commit 7e18d8e701b6798a5df11e0a16881a60ab1018b6 Author: Steven Rostedt Date: Thu May 22 00:22:19 2008 -0400 ftrace: add function tracing to wake up tracing This patch adds function tracing to the functions that are called on the CPU of the task being traced. Signed-off-by: Steven Rostedt Cc: pq@iki.fi Cc: proski@gnu.org Cc: sandmann@redhat.com Cc: a.p.zijlstra@chello.nl Signed-off-by: Thomas Gleixner commit 4902f8849da6d2805bd291551a6dfd48f1b4f604 Author: Steven Rostedt Date: Thu May 22 00:22:18 2008 -0400 ftrace: move ftrace_special to trace.c Move the ftrace_special out of sched_switch to trace.c. Signed-off-by: Steven Rostedt Cc: pq@iki.fi Cc: proski@gnu.org Cc: sandmann@redhat.com Cc: a.p.zijlstra@chello.nl Signed-off-by: Thomas Gleixner commit 19384c0314342222b18d4c7f09cdce1ca74dfd2a Author: Steven Rostedt Date: Thu May 22 00:22:16 2008 -0400 ftrace: limit use of check pages The check_pages function is called often enough that it can cause problems with trace outputs or even bringing the system to a halt. This patch limits the check_pages to the places that are most likely to have problems. The check is made at the flip between the global array and the max save array, as well as when the size of the buffers changes and the self tests. This patch also removes the BUG_ON from check_pages and replaces it with a WARN_ON and disabling of the tracer. Signed-off-by: Steven Rostedt Cc: pq@iki.fi Cc: proski@gnu.org Cc: sandmann@redhat.com Cc: a.p.zijlstra@chello.nl Signed-off-by: Thomas Gleixner commit 1a20d3ecf5c2a6435df2b756435b1eb1c657d45b Author: H. Peter Anvin Date: Mon May 26 13:36:53 2008 -0700 x86: string_32.h: workaround for broken gcc 4.0 gcc 4.0 fails to allocate %eax for the pattern operand in the rep store instructions used by memset; force it to do so by declaring a register variable. Signed-off-by: H. Peter Anvin commit 4b6011bc6ec71660859139ac8d28b7d0badd681c Author: Sven Wegener Date: Sun May 25 21:16:36 2008 +0200 x86: Remove obsolete LOCK macro from include/asm-x86/atomic_64.h Commit d167a518 "[PATCH] x86_64: x86_64 version of the smp alternative patch." has left the LOCK macro in include/asm-x86_64/atomic.h, which is now include/asm-x86/atomic_64.h. Its scope should be local to the file, other architectures don't provide it, I couldn't find an in-tree user of it and allyesconfig, allmodconfig and allnoconfig build fine without it, so this patch removes it. Signed-off-by: Sven Wegener Signed-off-by: Thomas Gleixner commit 1798bc22b2790bf2a956588e6b17c36ef79ceff7 Author: Cyrill Gorcunov Date: Sat May 24 19:36:41 2008 +0400 x86: nmi_32/64.c - merge down nmi_32.c and nmi_64.c to nmi.c Signed-off-by: Cyrill Gorcunov Cc: hpa@zytor.com Cc: mingo@redhat.com Signed-off-by: Thomas Gleixner commit fd5cea02de100197a4c26d9e103508cf09b50a82 Author: Cyrill Gorcunov Date: Sat May 24 19:36:40 2008 +0400 x86: nmi_32/64.c - add helper functions to hide arch specific data Signed-off-by: Cyrill Gorcunov Cc: hpa@zytor.com Cc: mingo@redhat.com Signed-off-by: Thomas Gleixner commit 7c2ba83f9a479eee6f302147767a30f3187fbd4b Author: Cyrill Gorcunov Date: Sat May 24 19:36:39 2008 +0400 x86: nmi_32.c cleanup - use for_each_online_cpu helper Since cpu_online_map is touched (by for_each_online_cpu) at moment when cpu_callin_map is already filled up we can get rid of its checking at all Signed-off-by: Cyrill Gorcunov Cc: hpa@zytor.com Cc: mingo@redhat.com Signed-off-by: Thomas Gleixner commit 96f9dcb10755e96eae706b9e869c0dc25adb3d74 Author: Cyrill Gorcunov Date: Sat May 24 19:36:38 2008 +0400 x86: nmi_64.c - use for_each_possible_cpu helper Signed-off-by: Cyrill Gorcunov Cc: hpa@zytor.com Cc: mingo@redhat.com Signed-off-by: Thomas Gleixner commit 6c8decdf14b17d42f6eb817d310642f4d6598a19 Author: Cyrill Gorcunov Date: Sat May 24 19:36:37 2008 +0400 x86: nmi_32.c - unknown_nmi_panic_callback should always panic Signed-off-by: Cyrill Gorcunov Cc: hpa@zytor.com Cc: mingo@redhat.com Signed-off-by: Thomas Gleixner commit ad63ba169d45ccb6594eb35a6c31c421fe70ff45 Author: Cyrill Gorcunov Date: Sat May 24 19:36:36 2008 +0400 x86: nmi_32/64.c - use apic_write_around instead of apic_write apic_write_around will be expanded to apic_write in 64bit mode anyway. Only a few CPUs (well, old CPUs to be precise) requires such an action. In general it should not hurt and could be cleaned up for apic_write (just in case) Signed-off-by: Cyrill Gorcunov Cc: hpa@zytor.com Cc: mingo@redhat.com Signed-off-by: Thomas Gleixner commit 4b82b277707a39b97271439c475f186f63ec4692 Author: Cyrill Gorcunov Date: Sat May 24 19:36:35 2008 +0400 x86: nmi_32.c - add nmi_watchdog_default helper Signed-off-by: Cyrill Gorcunov Cc: hpa@zytor.com Cc: mingo@redhat.com Signed-off-by: Thomas Gleixner commit d1b946b97d71423f365fa797d1428e1847c0bec1 Author: Cyrill Gorcunov Date: Sat May 24 19:36:34 2008 +0400 x86: nmi_32.c - add "panic" option Allow to pass "panic" option in 32bit mode Signed-off-by: Cyrill Gorcunov Cc: hpa@zytor.com Cc: mingo@redhat.com Signed-off-by: Thomas Gleixner commit c6425b9f143a75bbcd0a7684b4df40e20d0b2f32 Author: Cyrill Gorcunov Date: Sat May 24 19:36:33 2008 +0400 x86: move do_nmi(), stop_nmi() and restart_nmi() to traps_64.c traps_32.c already holds these functions so do the same for traps_64.c Signed-off-by: Cyrill Gorcunov Cc: hpa@zytor.com Cc: mingo@redhat.com Signed-off-by: Thomas Gleixner commit e56b3a12c45e439169f2d1f7194be397667320a6 Author: Cyrill Gorcunov Date: Sat May 24 19:36:32 2008 +0400 x86: nmi - die_nmi() output message unification Make 64bit die_nmi() to produce the same message as 32bit mode has Signed-off-by: Cyrill Gorcunov Cc: hpa@zytor.com Cc: mingo@redhat.com Signed-off-by: Thomas Gleixner commit ddca03c98a7f7ad5ab09967ff52d4ed60358c896 Author: Cyrill Gorcunov Date: Sat May 24 19:36:31 2008 +0400 x86: nmi - unify die_nmi() interface By slightly changing 32bit mode die_nmi() we may unify the interface and make it common for both (32/64bit) modes Signed-off-by: Cyrill Gorcunov Cc: hpa@zytor.com Cc: mingo@redhat.com Signed-off-by: Thomas Gleixner commit 85cc35fa7255d113b5383a9c8536c363274bb475 Author: Thomas Gleixner Date: Sun May 25 21:21:36 2008 +0200 x86: fix mpparse fallout UP builds with LOCAL_APIC=y and IO_APIC=n fail with a missing reference to mp_bus_not_pci. Distangle the mpparse code some more and move the ioapic specific bus check into a separate function. This code needs sume urgent un#ifdef surgery all over the place. Signed-off-by: Thomas Gleixner commit 2e4db9d2c5db9c9dd3e1d1ec3263bc4a990ff8df Author: Fernando Luis Vazquez Cao Date: Mon May 19 14:23:44 2008 -0700 x86: remove duplicate declaration of unknown_nmi_panic Signed-off-by: Fernando Luis Vazquez Cao Signed-off-by: Andrew Morton Signed-off-by: Thomas Gleixner commit c6531cce6e6e4b99bcda46b6268d6f2d9e30aea4 Author: Ingo Molnar Date: Mon May 12 21:21:14 2008 +0200 sched: do not trace sched_clock The tracer uses sched_clock, so do not trace it. Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 886dd58258e6ddebe20e7aebef7b167a24bad7ee Author: Ingo Molnar Date: Mon May 12 15:44:38 2008 +0200 debugging: make stacktrace independent from DEBUG_KERNEL Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit b764a15f679942a7bc9d4f9645299e1defcc5b43 Author: Alan Cox Date: Thu May 22 21:22:04 2008 +0100 x86: Switch apm to unlocked_kernel This pushes the lock a fair way down and the final kill looks like it should be an easy project for someone who wants to have a shot at it. Signed-off-by: Alan Cox Cc: mingo@redhat.com Signed-off-by: Thomas Gleixner commit 136ef671df04dc157afa0d4b96c7bd23ba072c9c Author: Alexey Starikovskiy Date: Tue May 20 00:29:59 2008 +0400 x86: allow MPPARSE to be deselected in SMP configs commit 8732fc4b237fca3bd3cb0ec87ca8fb90271b0baf Author: Alexey Starikovskiy Date: Mon May 19 19:47:16 2008 +0400 x86: move mp_bus_not_pci from mpparse.c commit ce6444d39fdea29dcf145d2d95fe9cdc850aa53c Author: Alexey Starikovskiy Date: Mon May 19 19:47:09 2008 +0400 x86: mp_bus_id_to_pci_bus is not needed commit bab4b27c00c4880737c18bb91138b1a7dd94164c Author: Alexey Starikovskiy Date: Mon May 19 19:47:03 2008 +0400 x86: move smp_found_config commit f3918352909f839a7b0dbf9b3f81d2e183c46f88 Author: Alexey Starikovskiy Date: Fri May 23 01:54:51 2008 +0400 x86: move pic_mode to apic_32.c commit b3e2416465bc9140bfd209f247e6a789f68f0d19 Author: Alexey Starikovskiy Date: Fri May 23 01:54:44 2008 +0400 x86: Set pic_mode only if local apic code is present commit bf62f3981c7076714e3b9f5fa6989a806cad02bf Author: Yinghai Lu Date: Tue May 20 20:10:58 2008 -0700 x86: move e820_mark_nosave_regions to e820.c and make e820_mark_nosave_regions to take limit_pfn to use max_low_pfn for 32bit and end_pfn for 64bit Signed-off-by: Yinghai Lu Cc: Andrew Morton Signed-off-by: Thomas Gleixner commit aafbdf71f1d3aeffd679b1a86e1b28f71515856c Author: Alexey Starikovskiy Date: Thu May 22 12:26:15 2008 +0400 x86: fix mpparse/acpi interaction Sitsofe Wheeler reported boot problems on linux-next. It looks like the same issue as found by Soeren Sandman in 7575217f656a93, "x86: initialize all fields of mp_irqs[mp_irq_entries]". But his fix is also not complete, as dstapic is used before it assigned. Reported-by: Sitsofe Wheeler Bisected-by: Sitsofe Wheeler Signed-off-by: Alexey Starikovskiy Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 59f4519ad7ade61123e90085b0dadb2ea197bd87 Author: Soeren Sandmann Date: Sun May 18 05:24:41 2008 +0200 x86: initialize all fields of mp_irqs[mp_irq_entries] Commit "x86: make config_irqsrc not MPspec specific" introduced some uses of uninitialized fields in mp_config_acpi_legacy_irqs(). I need the following patch to get sched-devel/master to boot. Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 2fddb6e28e903a3ab1704cc5aac01be5a59dc05b Author: Alexey Starikovskiy Date: Wed May 14 19:03:17 2008 +0400 x86: make config_irqsrc not MPspec specific Signed-off-by: Alexey Starikovskiy Signed-off-by: Ingo Molnar commit ec2cd0a22e2715f776a934e01c4f8ea098324fe1 Author: Alexey Starikovskiy Date: Wed May 14 19:03:10 2008 +0400 x86: make struct config_ioapic not MPspec specific Signed-off-by: Alexey Starikovskiy Signed-off-by: Ingo Molnar commit 5f8951487ddbacbc949e9ffae574f94791f9b4dd Author: Alexey Starikovskiy Date: Wed May 14 19:03:04 2008 +0400 x86: make mp_ioapic_routing definition local Signed-off-by: Alexey Starikovskiy Signed-off-by: Ingo Molnar commit 11113f84c72bd832dc4e76122e613b0e623e2346 Author: Alexey Starikovskiy Date: Wed May 14 19:02:57 2008 +0400 x86: complete move ACPI from mpparse.c Signed-off-by: Alexey Starikovskiy Signed-off-by: Ingo Molnar commit 32c5061265caf201d6a2c0d02181e2b68769c22c Author: Alexey Starikovskiy Date: Wed May 14 19:02:51 2008 +0400 x86: move es7000_plat out of mpparse.c Signed-off-by: Alexey Starikovskiy Signed-off-by: Ingo Molnar commit 11a62a056093a7f25f1595fbd8bd5f93559572b6 Author: Yinghai Lu Date: Mon May 12 15:43:38 2008 +0200 x86: cleanup print out for mptable the new output is: MPTABLE: OEM ID: SUN MPTABLE: Product ID: 4600 M2 MPTABLE: APIC at: 0x instead of it all in one line with <6> and double Product ID... Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 4a139a7fdec8964cecf7a3564ee7ae327141d495 Author: Thomas Gleixner Date: Mon May 12 15:43:37 2008 +0200 x86: include pci.h in e820_64.c global pci_mem_start needs a declaration. include pci.h Signed-off-by: Thomas Gleixner Signed-off-by: Ingo Molnar commit a91eea6df383f26fc4fcbefcbdb5aee8facd17fd Author: Thomas Gleixner Date: Mon May 12 15:43:37 2008 +0200 x86: fix shadow variables of global end_pnf in e820_64.c Signed-off-by: Thomas Gleixner Signed-off-by: Ingo Molnar commit 7f028bc0fd119a4fc65aedc07728ce85c8813d33 Author: Thomas Gleixner Date: Mon May 12 15:43:35 2008 +0200 x86: move mp_ioapic_routing to mpparse and make it static mpparse is the only user of mp_ioapic_routing. Signed-off-by: Thomas Gleixner Signed-off-by: Ingo Molnar commit ba5b14cc0311af6ed20dc25aa98a1d5ea6f2e6c0 Author: Yinghai Lu Date: Wed May 21 18:40:18 2008 -0700 x86: extend e820 ealy_res support 32bit - fix use find_e820_area to find addess for new RAMDISK, instead of using ram blindly also print out low ram and bootmap info Signed-off-by: Yinghai Lu Cc: Andrew Morton Cc: Jeremy Fitzhardinge Signed-off-by: Thomas Gleixner commit a4c81cf684350797939416c99effb9d3ae46bca6 Author: Yinghai Lu Date: Sun May 18 01:18:57 2008 -0700 x86: extend e820 ealy_res support 32bit move early_res related from e820_64.c to e820.c make edba detection to be done in head32.c remove smp_alloc_memory, because we have fixed trampoline address now. Signed-off-by: Yinghai Lu arch/x86/kernel/e820.c | 214 ++++++++++++++++++++++++++++++++++++ arch/x86/kernel/e820_64.c | 196 -------------------------------- arch/x86/kernel/head32.c | 76 ++++++++++++ arch/x86/kernel/setup_32.c | 109 +++--------------- arch/x86/kernel/smpboot.c | 17 -- arch/x86/kernel/trampoline.c | 2 arch/x86/mach-voyager/voyager_smp.c | 9 - include/asm-x86/e820.h | 6 + include/asm-x86/e820_64.h | 9 - include/asm-x86/smp.h | 1 arch/x86/kernel/e820.c | 214 ++++++++++++++++++++++++++++++++++++ arch/x86/kernel/e820_64.c | 196 -------------------------------- arch/x86/kernel/head32.c | 76 ++++++++++++ arch/x86/kernel/setup_32.c | 109 +++--------------- arch/x86/kernel/smpboot.c | 17 -- arch/x86/kernel/trampoline.c | 2 arch/x86/mach-voyager/voyager_smp.c | 9 - include/asm-x86/e820.h | 6 + include/asm-x86/e820_64.h | 9 - include/asm-x86/smp.h | 1 arch/x86/kernel/e820.c | 214 ++++++++++++++++++++++++++++++++++++ arch/x86/kernel/e820_64.c | 196 -------------------------------- arch/x86/kernel/head32.c | 76 ++++++++++++ arch/x86/kernel/setup_32.c | 109 +++--------------- arch/x86/kernel/smpboot.c | 17 -- arch/x86/kernel/trampoline.c | 2 arch/x86/mach-voyager/voyager_smp.c | 9 - include/asm-x86/e820.h | 6 + include/asm-x86/e820_64.h | 9 - include/asm-x86/smp.h | 1 10 files changed, 320 insertions(+), 319 deletions(-) Signed-off-by: Ingo Molnar commit 69c9189320c46b14e5ae3ad4b3a0d35cc63cba20 Author: Paul Jackson Date: Wed May 14 08:15:58 2008 -0700 x86 boot: add code to add BIOS provided EFI memory entries to kernel Add to the kernels boot memory map 'memmap' entries found in the EFI memory descriptors passed in from the BIOS. On EFI systems, up to E820MAX == 128 memory map entries can be passed via the legacy E820 interface (limited by the size of the 'zeropage'). These entries can be duplicated in the EFI descriptors also passed from the BIOS, and possibly more entries passed by the EFI interface, which does not have the E820MAX limit on number of memory map entries. This code doesn't worry about the likely duplicate, overlapping or (unlikely) conflicting entries between the EFI map and the E820 map. It just dumps all the EFI entries into the memmap[] array (which already has the E820 entries) and lets the existing routine sanitize_e820_map() sort the mess out. Signed-off-by: Paul Jackson Signed-off-by: Ingo Molnar commit 5b7eb2e9ef4e467a1248537b47a63bab265be3cc Author: Paul Jackson Date: Wed May 14 08:15:52 2008 -0700 x86 boot: longer comment explaining sanitize_e820_map routine Elaborate on the comment for sanitize_e820_map(), epxlaining more what it does, what it inputs, and what it returns. Rearrange the placement of this comment to fit kernel conventions, before the routine's code rather than buried inside it. Signed-off-by: Paul Jackson Signed-off-by: Ingo Molnar commit 6e9bcc796b120d17b08dde7ab958b82ddb899889 Author: Paul Jackson Date: Wed May 14 08:15:46 2008 -0700 x86 boot: change sanitize_e820_map parameter from byte to int to allow bigger memory maps The map size counter passed into, and back out of, sanitize_e820_map(), was an eight bit type (char or u8), as derived from its origins in legacy BIOS E820 structures. This patch changes that type to an 'int', to allow this sanitize routine to also be used on larger maps (larger than the 256 count that fits in a char). The legacy BIOS E820 interface of course does not change; that remains at 8 bits for this count, holding up to E820MAX == 128 entries. But the kernel internals can handle more when those additional memory map entries are passed from the BIOS via EFI interfaces. Signed-off-by: Paul Jackson Signed-off-by: Ingo Molnar commit 028b785888c523baccdf27af0cdbf1deb92edec0 Author: Paul Jackson Date: Wed May 14 08:15:40 2008 -0700 x86 boot: extend some internal memory map arrays to handle larger EFI input Extend internal boot time memory tables to allow for up to three entries per node, which may be larger than the 128 E820MAX entries handled by the legacy BIOS E820 interface. The EFI interface, if present, is capable of passing memory map entries for these larger node counts. This patch requires an earlier patch that rewrote code depending on these array sizes from using E820MAX explicitly to size loops, to instead using ARRAY_SIZE() of the applicable array. Another patch following this one will provide the code to pick up additional memory entries passed via the EFI interface from the BIOS and insert them in the following, now enlarged, arrays. Signed-off-by: Paul Jackson Signed-off-by: Ingo Molnar commit c3965bd15118742d72b4bc1a290d37b3f081eb98 Author: Paul Jackson Date: Wed May 14 08:15:34 2008 -0700 x86 boot: proper use of ARRAY_SIZE instead of repeated E820MAX constant This patch is motivated by a subsequent patch which will allow for more memory map entries on EFI supported systems than can be passed via the x86 legacy BIOS E820 interface. The legacy interface is limited to E820MAX == 128 memory entries, and that "E820MAX" manifest constant was used as the size for several arrays and loops over those arrays. The primary change in this patch is to change code loop sizes over those arrays from using the constant E820MAX, to using the ARRAY_SIZE() macro evaluated for the array being looped. That way, a subsequent patch can change the size of some of these arrays, without breaking this code. This patch also adds a parameter to the sanitize_e820_map() routine, which had an implicit size for the array passed it of E820MAX entries. This new parameter explicitly passes the size of said array. Once again, this will allow a subsequent patch to change that array size for some calls to sanitize_e820_map() without breaking the code. As part of enhancing the sanitize_e820_map() interface this way, I further combined the unnecessarily distinct x86_32 and x86_64 declarations for this routine into a single, commonly used, declaration. This patch in itself should make no difference to the resulting kernel binary. [ mingo@elte.hu: merged to -tip ] Signed-off-by: Paul Jackson Signed-off-by: Ingo Molnar commit b25e31cec7788ccba5749d10f8f4343fffff4750 Author: Paul Jackson Date: Wed May 14 08:15:28 2008 -0700 x86 boot: minor code format fixes in e820 and efi routines Standardize a few pointer declarations to not have the extra space after the '*' character. Signed-off-by: Paul Jackson Signed-off-by: Ingo Molnar commit c801ed3860fe2f84281d4cae4c3e6ca87e81e890 Author: Paul Jackson Date: Wed May 14 08:15:23 2008 -0700 x86 boot: simplify pageblock_bits enum declaration The use of #defines with '##' pre-processor concatenation is a useful way to form several symbol names with a common pattern. But when there is just a single name obtained from that #define, it's just obfuscation. Better to just write the plain symbol name, as is. The following patch is a result of my wasting ten minutes looking through the kernel to figure out what 'PB_migrate_end' meant, and forgetting what I came to do, by the time I figured out that the #define PB_range macro defined it. Signed-off-by: Paul Jackson Signed-off-by: Ingo Molnar commit cb5dd7c104c64d7ba8ff4dd3eec3d9b92c378937 Author: Paul Jackson Date: Wed May 14 08:15:16 2008 -0700 x86 boot: add header comment to dmi.h stating what it is The "dmi.h" file did not state anywhere in the file what "DMI" was. For those who know, it's obvious. For the rest of us, I added a brief opening comment. Signed-off-by: Paul Jackson Signed-off-by: Ingo Molnar commit e9197bf0114661195bee35e7795cfc42164d9b2c Author: Paul Jackson Date: Wed May 14 08:15:10 2008 -0700 x86 boot: remove some unused extern function declarations Remove three extern declarations for routines that don't exist. Fix a typo in a comment. Signed-off-by: Paul Jackson Signed-off-by: Ingo Molnar commit e3f8ba81fdce852abe36a33eed7b243c4a0acfac Author: Paul Jackson Date: Wed May 14 08:15:04 2008 -0700 x86 boot: include missing smp.h header The patch: x86: convert cpu_to_apicid to be a per cpu variable introduced a dependency of ipi.h on smp.h in x86 builds with an allnoconfig. Including smp.h in ipi.h fixes the build error: In file included from arch/x86/kernel/traps_64.c:48: include/asm/ipi.h: In function 'send_IPI_mask_sequence': include/asm/ipi.h:114: error: 'per_cpu__x86_cpu_to_apicid' undeclared (first use in this function) Signed-off-by: Paul Jackson Cc: Mike Travis Signed-off-by: Ingo Molnar commit 3f03c54a34fa3da680b3341dd3ba965ef3394bd1 Author: Yinghai Lu Date: Fri May 9 22:40:52 2008 -0700 x86: mtrr cleanup for converting continuous to discrete layout - fix #2 disable the noisy print out. also use the one the less spare mtrr reg. Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit 8004dd965b13b01a96def054d420f6df7ff22d53 Author: Yinghai Lu Date: Mon May 12 17:40:39 2008 -0700 x86: amd opteron TOM2 mask val fix there is a typo in the mask value, need to remove that extra 0, to avoid 4bit clearing. Signed-off-by: Yinghal Lu Signed-off-by: Ingo Molnar commit b79cd8f1268bab57ff85b19d131f7f23deab2dee Author: Yinghai Lu Date: Sun May 11 00:30:15 2008 -0700 x86: make e820.c to have common functions remove the duplicated copy of these functions. Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit 833e78bfeeef628f0201349a0a05a54f48f07884 Author: Yinghai Lu Date: Mon May 5 15:57:38 2008 -0700 x86: process fam 10h like k8 with fixed mtrr setting otherwise fixed MTRR for family 10h may not be changed. Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 12031a624af7816ec7660b82be648aa3703b4ebe Author: Yinghai Lu Date: Fri May 2 02:40:22 2008 -0700 x86: mtrr cleanup for converting continuous to discrete - auto detect v4 Loop through mtrr chunk_size and gran_size from 1M to 2G to find out the optimal value so user does not need to add mtrr_chunk_size and mtrr_gran_size to the kernel command line. If optimal value is not found, print out all list to help select less optimal value. Add mtrr_spare_reg_nr= so user could set 2 instead of 1, if the card need more entries. v2: find the one with more spare entries v3: fix hole_basek offset v4: tight the compare between range and range_new loop stop with 4g Signed-off-by: Yinghai Lu Cc: Andrew Morton Cc: Gabriel C Cc: Mika Fischer Signed-off-by: Thomas Gleixner Signed-off-by: Ingo Molnar commit f5098d62c1d1cede8ff23d01bbf50a421f110562 Author: Yinghai Lu Date: Tue Apr 29 20:25:58 2008 -0700 x86: mtrr cleanup for converting continuous to discrete layout v8 - fix v9: address format change requests by Ingo more case handling in range_to_var_with_hole Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 8a374026c265476b1acfc3c186a66d59ebdb2cda Author: Yinghai Lu Date: Tue Apr 29 20:25:16 2008 -0700 x86: fix trimming e820 with MTRR holes. - fix v2: process hole then end_pfn fix update_memory_range with whole cover comparing Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 42651f15824d003e8357693ab72c4dbb3e280836 Author: Yinghai Lu Date: Tue Apr 29 01:59:49 2008 -0700 x86: fix trimming e820 with MTRR holes. converting MTRR layout from continous to discrete, some time could run out of MTRRs. So add gran_sizek to prevent that by dumpping small RAM piece less than gran_sizek. previous trimming only can handle highest_pfn from mtrr to end_pfn from e820. when have more than 4g RAM installed, there will be holes below 4g. so need to check ram below 4g is coverred well. need to be applied after [PATCH] x86: mtrr cleanup for converting continuous to discrete layout v7 Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 95ffa2438d0e9c48779f0106b1c0eb36165e759c Author: Yinghai Lu Date: Tue Apr 29 03:52:33 2008 -0700 x86: mtrr cleanup for converting continuous to discrete layout, v8 some BIOS like to use continus MTRR layout, and X driver can not add WB entries for graphical cards when 4g or more RAM installed. the patch will change MTRR to discrete. mtrr_chunk_size= could be used to have smaller continuous block to hold holes. default is 256m, could be set according to size of graphics card memory. mtrr_gran_size= could be used to send smallest mtrr block to avoid run out of MTRRs v2: fix -1 for UC checking v3: default to disable, and need use enable_mtrr_cleanup to enable this feature skip the var state change warning. remove next_basek in range_to_mtrr() v4: correct warning mask. v5: CONFIG_MTRR_SANITIZER v6: fix 1g, 2g, 512 aligment with extra hole v7: gran_sizek to prevent running out of MTRRs. v8: fix hole_basek caculation caused when removing next_basek gran_sizek using when basek is 0. need to apply [PATCH] x86: fix trimming e820 with MTRR holes. right after this one. Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 0dbfafa5fcd4dd189e2adc7b6ed9e0405e846d79 Author: Alexander van Heukelum Date: Wed Apr 23 15:09:05 2008 +0200 x86: move i386 memory setup code to e820_32.c The x86_64 code has centralized the memory setup code in e820_64.c. This patch copies that approach to i386: - early_param("mem", ...) parsing is moved from setup_32.c to e820_32.c. - setup_memory_map() and finish_e820_parsing() are factored out from setup_arch(), and declarations are added to e820_32.h. - print_memory_map() is made static and removed from e820_32.h. - user_defined_memmap is marked as __initdata. Signed-off-by: Alexander van Heukelum Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 0da72a4aeb4482c64c1142a2e36b556d13374937 Author: Thomas Gleixner Date: Wed Apr 30 20:11:51 2008 +0200 x86: fix sparse warning in mtrr/generic.c arch/x86/kernel/cpu/mtrr/generic.c:216:12: warning: symbol 'lo' shadows an earlier one Signed-off-by: Thomas Gleixner Signed-off-by: Ingo Molnar commit 1ac97018169c5a13feaa90d9671f2d6ba2d9e86e Author: Ingo Molnar Date: Mon May 19 14:10:14 2008 +0200 x86: untangle pci dependencies make PCI-less subarches not build with PCI - instead of complicating the PCI dependencies. Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit c9fea78dc9775981bed2da379568c8a8fddd1fb6 Author: Ingo Molnar Date: Mon May 19 13:53:39 2008 +0200 x86: make NUMAQ depend on PCI NUMAQ depends on the existence of PCI hardware, and requiring PCI makes this subarch simpler and avoids build failures if PCI is disabled. Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 668a6c3654560aef8741642478973e205a4f02bf Author: Ingo Molnar Date: Mon May 19 13:35:24 2008 +0200 - fix mmioftrace + rcu merge interaction Signed-off-by: Thomas Gleixner commit 48e239572271cf79412d90753a721242a765f7d9 Author: Thomas Gleixner Date: Sat May 24 17:24:34 2008 +0200 x86: fixup the fallout of the bitops changes Signed-off-by: Thomas Gleixner commit 83cd1daa1dc3400e5ca2255818641233ebb30680 Author: Jan Beulich Date: Mon May 12 15:44:39 2008 +0200 x86: eliminate dead code in x86_64 entry.S Remove the not longer used handlers for reserved vectors. Signed-off-by: Jan Beulich Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 78d64fc21d2aa425c65de49765cddecc84d595a4 Author: Joe Perches Date: Mon May 12 15:44:39 2008 +0200 x86: include/asm-x86/string_32.h - style only Looked at this file because of __memcpy warnings. Thought it could use a style/checkpatch cleanup. No change in vmlinux. [tglx: fixed the remaining issues ] Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 2141261a11524acbfce86a5a213bbaea08794bbb Author: Miklos Vajna Date: Tue May 13 13:35:25 2008 +0200 x86: janitor work in video-vga.c Just moved an open brace to the previous line. Signed-off-by: Miklos Vajna Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit f0766440dda7ace8a43b030f75e2dcb82449fb85 Author: Christoph Lameter Date: Fri May 9 19:09:48 2008 -0700 x86: unify current.h Simply stitch these together. There are just two definitions that are shared but the file is resonably small and putting these things together shows that further unifications requires a unification of the per cpu / pda handling between both arches. Signed-off-by: Christoph Lameter Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit bfe4bb1526945e446d2912bef2e1e2cbd2c7349e Author: Miklos Vajna Date: Sat May 17 22:48:13 2008 +0200 x86: janitor work in bugs.c Just moved trailing statements to the next line, removed space before open/close parenthesis, wrapped long lines. Signed-off-by: Miklos Vajna Signed-off-by: Thomas Gleixner commit 23eb271b9186531e1eb704dda9ab37abcfd0ca4a Author: Andrew Morton Date: Wed May 14 16:10:39 2008 -0700 x86: setup_force_cpu_cap(): don't do clear_bit(non-unsigned-long) Another hack to make proper prototyping of x86 bitops viable. Cc: Andrea Arcangeli Signed-off-by: Andrew Morton Signed-off-by: Ingo Molnar commit 0e192b99d7d09f08b445c31ee7c7f3d0bfb27345 Author: Cyrill Gorcunov Date: Tue May 13 20:55:40 2008 +0400 x86: head_64.S cleanup - use PMD_SHIFT instead of numeric constant Signed-off-by: Cyrill Gorcunov Signed-off-by: Ingo Molnar commit 05139d8fb445d9a3569071af1c5920fc46191b7b Author: Cyrill Gorcunov Date: Tue May 13 21:14:22 2008 +0400 x86: head_64.S cleanup - use straight move to CR4 register Signed-off-by: Cyrill Gorcunov Signed-off-by: Ingo Molnar commit 2237ce2057b82561f7ea27ed30153571f404112d Author: Fernando Luis Vazquez Cao Date: Fri May 16 11:01:26 2008 +0900 x86: cleanup, remove duplicate declaration of unknown_nmi_panic Signed-off-by: Fernando Luis Vazquez Cao Signed-off-by: Ingo Molnar commit 883b7af932b4435eb4798cfa4fec0848639c2a87 Author: Huang Weiyi Date: Sun May 11 19:36:57 2008 +0800 x86: smpboot.c: removed duplicated include Removed duplicated include in arch/x86/kernel/smpboot.c. Signed-off-by: Huang Weiyi Cc: mingo@redhat.com Cc: hpa@zytor.com Signed-off-by: Thomas Gleixner commit 2cc74111c78dbc7b26c41b4e87cfebfc3aed49c4 Author: Huang Weiyi Date: Sun May 11 19:35:54 2008 +0800 x86: ipi.c: removed duplicated include Removed duplicated include in arch/x86/kernel/ipi.c. Signed-off-by: Huang Weiyi Cc: mingo@redhat.com Cc: hpa@zytor.com Signed-off-by: Thomas Gleixner commit e83e31f41a623262714d9c56dde7dfc51ac078f7 Author: Cyrill Gorcunov Date: Mon May 12 15:43:39 2008 +0200 x86: compressed/head_64.S cleanup - use predefined flags from processor-flags.h We should better use already defined flags from processor-flags.h instead of defining own ones [>>> object code check >>>] original md5sum: 129f24be6df396fb7d8bf998c01fc716 arch/x86/boot/compressed/head_64.o text data bss dec hex filename 705 48 45056 45809 b2f1 arch/x86/boot/compressed/head_64.o patched md5sum: 129f24be6df396fb7d8bf998c01fc716 arch/x86/boot/compressed/head_64-new.o text data bss dec hex filename 705 48 45056 45809 b2f1 arch/x86/boot/compressed/head_64-new.o [<<< object code check <<<] Signed-off-by: Cyrill Gorcunov Acked-by: H. Peter Anvin Signed-off-by: Ingo Molnar commit 369101da7e3f6f971b7303922d2978b8483241c6 Author: Cyrill Gorcunov Date: Mon May 12 15:43:38 2008 +0200 x86: head_64.S cleanup - use predefined flags from processor-flags.h We should better use already defined flags from processor-flags.h instead of defining own ones [>>> object code check >>>] original md5sum: 9cfa6dbf045a046bb5dfb85f8bcfe8c4 arch/x86/kernel/head_64.o text data bss dec hex filename 37361 4432 8192 49985 c341 arch/x86/kernel/head_64.o patched md5sum: 9cfa6dbf045a046bb5dfb85f8bcfe8c4 arch/x86/kernel/head_64.o text data bss dec hex filename 37361 4432 8192 49985 c341 arch/x86/kernel/head_64.o [<<< object code check <<<] Signed-off-by: Cyrill Gorcunov Acked-by: H. Peter Anvin Signed-off-by: Ingo Molnar commit 9831bfb201a8e00415d0f9e5b5a50d902a90b2db Author: Cyrill Gorcunov Date: Mon May 12 15:43:38 2008 +0200 x86 - hide X86_VM_MASK from userland programs v3 X86_VM_MASK is kernel specific flags so hide it from userland programs. It should be defined *before* ptrace.h inclusion because of circular link between these files Signed-off-by: Cyrill Gorcunov Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit ebdd561a19d7917ac49fff9c355aa4833c504bf1 Author: Jan Beulich Date: Mon May 12 15:43:38 2008 +0200 x86: constify data in reboot.c Signed-off-by: Jan Beulich Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 4c8ab98249fa3cead320ec0ee4cde9960b951989 Author: Jan Beulich Date: Mon May 12 15:43:38 2008 +0200 i386: move FIX_ACPI_* into non-permanent range .. as they are used at early boot time only. Signed-off-by: Jan Beulich Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 4e50e62ce52f39b5f45e82f68b18254458b429bb Author: Jan Beulich Date: Mon May 12 15:43:38 2008 +0200 x86: eliminate duplicate consistency checks in init_32.c Signed-off-by: Jan Beulich Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 6a1673ae2201931ce34bf7ba9f90928c864d8334 Author: Thomas Gleixner Date: Mon May 12 15:43:38 2008 +0200 x86: make memory_add_physaddr_to_nid depend on MEMORY_HOTPLUG memory_add_physaddr_to_nid() is only used in the CONFIG_MEMORY_HOTPLUG_SPARSE || CONFIG_ACPI_HOTPLUG_MEMORY case. Signed-off-by: Thomas Gleixner Signed-off-by: Ingo Molnar commit cca7c0850fa0381639bf84dd06ee900e16346373 Author: Jiri Slaby Date: Mon May 12 15:43:37 2008 +0200 x86_64: fix mm.txt documentation Commit 85eb69a16aab5a394ce043c2131319eae35e6493 introduced 512 MiB sized kernel and 1.5 GiB sized module space but omitted to change documentation properly. Fix that. [Wasn't the hole intentional protection hole?] Signed-off-by: Jiri Slaby Cc: Andi Kleen Cc: hpa@zytor.com Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 311f83494830fec17f086401a5b43984bb447cd2 Author: Adrian Bunk Date: Mon May 12 15:43:37 2008 +0200 x86: kernel/pci-dma.c cleanups This patch contains the following cleanups: - make the following needlessly global code static: - dma_alloc_pages() Signed-off-by: Adrian Bunk Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 968cbfad1a727b5689ae620f4d970abf6ce73340 Author: Thomas Gleixner Date: Mon May 12 15:43:37 2008 +0200 x86: make __pci_mmcfg_init static in mmconfig-shared.c Signed-off-by: Thomas Gleixner Signed-off-by: Ingo Molnar commit e0b32d768cad17af07af3aced67498bde98296c9 Author: Thomas Gleixner Date: Mon May 12 15:43:37 2008 +0200 x86: make command_line static in setup_64.c Signed-off-by: Thomas Gleixner Signed-off-by: Ingo Molnar commit 11034d55975be6d8b955a6eb11e87fc67ec086c2 Author: Thomas Gleixner Date: Mon May 12 15:43:36 2008 +0200 x86: init64.c include initrd.h free_initrd_mem needs a prototype, which is in linux/initrd.h Signed-off-by: Thomas Gleixner Signed-off-by: Ingo Molnar commit d1097635deed7196c2a859f285c29267779ca45a Author: Thomas Gleixner Date: Fri May 2 23:42:01 2008 +0200 x86: move mmconfig declarations to header arch/x86/kernel/mmconf-fam10h_64.c is missing the prototypes, which are decalred in arch/x86/kernel/setup_64.c. Move the prototypes and the inline stubs to the appropriate header file. Signed-off-by: Thomas Gleixner Signed-off-by: Ingo Molnar commit 55d4f22abc9f011c5db982f83377cdd38bb9a2a3 Author: Thomas Gleixner Date: Mon May 12 15:43:35 2008 +0200 x86: k8topology cleanup variable declarations Signed-off-by: Thomas Gleixner Signed-off-by: Ingo Molnar commit d34c08958fa36c7a8c3f8d9c0ebe6ec1ab744a68 Author: Thomas Gleixner Date: Mon May 12 15:43:35 2008 +0200 x86: k8topology fix shadow variable sparse mutters: arch/x86/mm/k8topology_64.c:108:7: warning: symbol 'nodeid' shadows an earlier one Signed-off-by: Thomas Gleixner Signed-off-by: Ingo Molnar commit 0eafe234a2571f51ef9f7e8baddb58c828750771 Author: Thomas Gleixner Date: Mon May 12 15:43:35 2008 +0200 x86: k8topology add missing header k8_scan_nodes is global and needs a prototype. Add the header file which contains it. Signed-off-by: Thomas Gleixner Signed-off-by: Ingo Molnar commit 635ee418381566f03819408e1303ef21fcf2d41c Author: Thomas Gleixner Date: Mon May 12 15:43:35 2008 +0200 x86: create prototype for (un)map_devmem Global functions need a prototype. Add it. Signed-off-by: Thomas Gleixner Signed-off-by: Ingo Molnar commit 535694f361419ca195fd915dd5038c926334e1be Author: Thomas Gleixner Date: Mon May 12 15:43:35 2008 +0200 x86: boot/printfc use NULL instead 0 Signed-off-by: Thomas Gleixner Signed-off-by: Ingo Molnar commit eef8f871d84b5df1a24902a4e4700188be1aff2c Author: Thomas Gleixner Date: Mon May 12 15:43:34 2008 +0200 x86: vsmp_64 add missing includes sparse mutters: arch/x86/kernel/vsmp_64.c:126:5: warning: symbol 'is_vsmp_box' was not declared. Should it be static? arch/x86/kernel/vsmp_64.c:145:13: warning: symbol 'vsmp_init' was not declared. Should it be static? Include the appropriate headers. Signed-off-by: Thomas Gleixner Signed-off-by: Ingo Molnar commit 5136dea5734cfddbc6d7ccb7ead85a3ac7ce3de2 Author: Andrew Morton Date: Wed May 14 16:10:41 2008 -0700 x86: bitops take an unsigned long * All (or most) other architectures do this. So should x86. Fix. Cc: Andrea Arcangeli Signed-off-by: Andrew Morton Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 46dd98a5c0b907f94742579ab605be1933a37abd Author: Andrew Morton Date: Wed May 14 16:10:39 2008 -0700 arch/x86/mm/pat.c: use boot_cpu_has() arch/x86/mm/pat.c: In function 'phys_mem_access_prot_allowed': arch/x86/mm/pat.c:526: warning: passing argument 2 of 'constant_test_bit' from incompatible pointer type arch/x86/mm/pat.c:526: warning: passing argument 2 of 'variable_test_bit' from incompatible pointer type arch/x86/mm/pat.c:527: warning: passing argument 2 of 'constant_test_bit' from incompatible pointer type arch/x86/mm/pat.c:527: warning: passing argument 2 of 'variable_test_bit' from incompatible pointer type arch/x86/mm/pat.c:528: warning: passing argument 2 of 'constant_test_bit' from incompatible pointer type arch/x86/mm/pat.c:528: warning: passing argument 2 of 'variable_test_bit' from incompatible pointer type arch/x86/mm/pat.c:529: warning: passing argument 2 of 'constant_test_bit' from incompatible pointer type arch/x86/mm/pat.c:529: warning: passing argument 2 of 'variable_test_bit' from incompatible pointer type Don't open-code test_bit() on a __u32 Cc: Andrea Arcangeli Signed-off-by: Andrew Morton Signed-off-by: Ingo Molnar commit e6b0edef3453677b13e175a104a83eb36d062dd3 Author: OGAWA Hirofumi Date: Mon May 12 15:43:38 2008 +0200 x86: clean up vdso_enabled type on x86_64 This fixes type of "vdso_enabled" on X86_64 to match extern in asm/elf.h. Signed-off-by: OGAWA Hirofumi Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit c2c14fb7afcc67b48724571506e095fccc65a670 Author: Thomas Gleixner Date: Mon May 12 15:43:36 2008 +0200 x86: tsc_64.c make constant UL arch/x86/kernel/tsc_64.c:245:13: warning: constant 0x100000000 is so big it is long Signed-off-by: Thomas Gleixner Signed-off-by: Ingo Molnar commit 962cf36c5bf6d2840b8d66ee9a606fae2f540bbd Author: Carlos R. Mafra Date: Thu May 15 11:15:37 2008 -0300 Remove argument from open_softirq which is always NULL As git-grep shows, open_softirq() is always called with the last argument being NULL block/blk-core.c: open_softirq(BLOCK_SOFTIRQ, blk_done_softirq, NULL); kernel/hrtimer.c: open_softirq(HRTIMER_SOFTIRQ, run_hrtimer_softirq, NULL); kernel/rcuclassic.c: open_softirq(RCU_SOFTIRQ, rcu_process_callbacks, NULL); kernel/rcupreempt.c: open_softirq(RCU_SOFTIRQ, rcu_process_callbacks, NULL); kernel/sched.c: open_softirq(SCHED_SOFTIRQ, run_rebalance_domains, NULL); kernel/softirq.c: open_softirq(TASKLET_SOFTIRQ, tasklet_action, NULL); kernel/softirq.c: open_softirq(HI_SOFTIRQ, tasklet_hi_action, NULL); kernel/timer.c: open_softirq(TIMER_SOFTIRQ, run_timer_softirq, NULL); net/core/dev.c: open_softirq(NET_TX_SOFTIRQ, net_tx_action, NULL); net/core/dev.c: open_softirq(NET_RX_SOFTIRQ, net_rx_action, NULL); This observation has already been made by Matthew Wilcox in June 2002 (http://www.cs.helsinki.fi/linux/linux-kernel/2002-25/0687.html) "I notice that none of the current softirq routines use the data element passed to them." and the situation hasn't changed since them. So it appears we can safely remove that extra argument to save 128 (54) bytes of kernel data (text). Signed-off-by: Carlos R. Mafra Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit a2eddfa95919a730e0e5ed17e9c303fe5ba249cd Author: Jan Beulich Date: Mon May 12 15:44:41 2008 +0200 x86: make /proc/stat account for all interrupts LAPIC interrupts, which don't go through the generic interrupt handling code, aren't accounted for in /proc/stat. Hence this patch adds a mechanism architectures can use to accordingly adjust the statistics. Signed-off-by: Jan Beulich Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 63687a528c39a67c1a213cdffa09feb0e6af9dbe Author: Jan Beulich Date: Mon May 12 15:44:41 2008 +0200 x86: move tracedata to RODATA .. allowing it to be write-protected just as other read-only data under CONFIG_DEBUG_RODATA. Signed-off-by: Jan Beulich Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 6360b1fbb4a939efd34fc770c2ebd927c55506e0 Author: Jan Beulich Date: Mon May 12 15:44:41 2008 +0200 move BUG_TABLE into RODATA Signed-off-by: Jan Beulich Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 091593080533a752ce66d12858d8c4105c8e1793 Author: Nick Andrew Date: Mon May 12 21:21:04 2008 +0200 printk: remember the message level for multi-line output printk(KERN_ALERT "Danger Will Robinson!\nAlien Approaching!\n"); At present this will result in one message at ALERT level and one at the current default message loglevel (e.g. WARNING). This is non-intuitive. Modify vprintk() to remember the message loglevel each time it is specified and use it for subsequent lines of output which do not specify one, within the same call to printk. Signed-off-by: Nick Andrew Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit ac60ad7413ca8208094609a3b88ed9b1ed012fbc Author: Nick Andrew Date: Mon May 12 21:21:04 2008 +0200 printk: refactor processing of line severity tokens Restructure the logic of vprintk() so the processing of the leading 3 characters of each input line is in one place, regardless whether printk_time is enabled. This makes the code smaller and easier to understand. size reduction in kernel/printk.o: text data bss dec hex filename 6157 397 1049804 1056358 101e66 printk.o.before 6117 397 1049804 1056318 101e3e printk.o.after and some style uncleanlinesses removed as well as a side-effect: Before: total: 19 errors, 22 warnings, 1340 lines checked After: total: 17 errors, 22 warnings, 1333 lines checked Signed-off-by: Nick Andrew Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit cd3a1b8562d28490b334a61d5eb05df3d722d91e Author: Jan Kiszka Date: Mon May 12 21:21:04 2008 +0200 printk: don't prefer unsuited consoles on registration console election: If some console happens to be registered first which does not provide a tty binding (!console->device), it prevents that more suited consoles which are registered later on can enter the candidate pool for console_device(). This is observable with KGDB's console which may already be registered (and exploited!) during early debugger connections, that is before any regular console registration. This patch fixes the issue by postponing the final, automated preferred_console selection until someone with a non-NULL device handler comes around. Signed-off-by: Jan Kiszka Cc: Jason Wessel Cc: Gerd Hoffmann Cc: Michael Ellerman Signed-off-by: Andrew Morton Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 3b8945e8d40645eecdb7d2357ca531f9b4dd9f71 Author: Tejun Heo Date: Mon May 12 21:21:04 2008 +0200 printk: clean up recursion check related static variables Make printk_recursion_bug_msg static and drop printk prefix from recursion variables. Signed-off-by: Tejun Heo Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 42fdfa238a23643226910acf922ea930b3286032 Author: Thomas Gleixner Date: Sat May 24 23:14:51 2008 +0200 namespacecheck: more kernel/printk.c fixes [ Stephen Rothwell : build fix ] Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 7f6f3a39d258adf51f0fb1fe0dab52272a1c61a4 Author: Thomas Gleixner Date: Sat May 24 23:12:18 2008 +0200 namespacecheck: fix kernel printk.c Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 81d50bb254ed53a0da45a65988e4e1fa08e8a541 Author: Hiroshi Shimamoto Date: Thu May 15 19:42:49 2008 -0700 posix-timers: print RT watchdog message It's useful to detect which process is killed by RT watchdog. Signed-off-by: Hiroshi Shimamoto Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 3711ccb07b7f0a13f4f1aa16a8fdca9c930f21ca Author: Thomas Gleixner Date: Sat May 24 17:24:34 2008 +0200 x86: fixup the fallout of the bitops changes Signed-off-by: Thomas Gleixner commit ec42418f1973e1f77da1fcca3be59c0acb878a9d Author: Thomas Gleixner Date: Sat May 24 15:59:58 2008 +0200 x86: rename the i8259_32/64.c leftovers to irqinit_32/64.c The leftovers of the i8259 unification have nothing to do with i8259 at all. They contain interrupt init code and the i8259_xx name is just misleading now. Rename them to irqinit_32/64.c Signed-off-by: Thomas Gleixner commit d23b200a75f78e62744c3c25d078855eec8a689b Author: Thomas Gleixner Date: Mon May 12 15:43:36 2008 +0200 x86: make init_ISA_irqs() static Signed-off-by: Thomas Gleixner Signed-off-by: Ingo Molnar commit 680afbf989d697b9ba1382017a73c8cfa53b3f89 Author: Pavel Machek Date: Wed May 21 11:57:52 2008 +0200 x86: i8259: cleanup codingstyle Signed-off-by: Pavel Machek Cc: macro@ds2.pg.gda.pl Signed-off-by: Thomas Gleixner commit 3e8631d27088f394b6788829e238a60bf07d47ab Author: Pavel Machek Date: Wed May 21 11:52:52 2008 +0200 x86: i8259.c: remove trivial ifdefs Remove #ifdefs where the only difference is formatting of comments. Signed-off-by: Pavel Machek Cc: macro@ds2.pg.gda.pl Signed-off-by: Thomas Gleixner commit 15d613cb25efd978dd55592d011a6ffc487b3432 Author: Pavel Machek Date: Wed May 21 11:47:24 2008 +0200 x86: i8259.c: remove #ifdefs around includes Remove #ifdefs around includes; including too much should be always safe. Signed-off-by: Pavel Machek Cc: macro@ds2.pg.gda.pl Signed-off-by: Thomas Gleixner commit 21fd5132b223a10bdf17713dd0bf321cbd6471d2 Author: Pavel Machek Date: Wed May 21 11:44:02 2008 +0200 x86: automatical unification of i8259.c Make conversion of i8259 very mechanical -- i8259 was generated by diff -D, with too different parts left in i8259_32 and i8259_64.c. Only "by hand" changes were removal of #ifdef from middle of the comment (prevented compilation) and removal of one static to allow splitting into files. Of course, it will need some cleanups now, and those will follow. Signed-of-by: Pavel Machek commit fce39665abb71d01d74ac74eb13dd69a799dfc2f Author: Thomas Gleixner Date: Mon May 12 15:43:36 2008 +0200 x86: make init_ISA_irqs() static Moved to i8259 branch to avoid conflicts. Signed-off-by: Thomas Gleixner Signed-off-by: Ingo Molnar commit f20b11e716936f85850654c49e06a1f955b9e5fc Author: Thomas Gleixner Date: Sat May 24 15:59:58 2008 +0200 x86: rename the i8259_32/64.c leftovers to initirq_32/64.c The leftovers of the i8259 unification have nothing to do with i8259 at all. They contain interrupt init code and the i8259_xx name is just misleading now. Rename them to initirq_32/64.c Signed-off-by: Thomas Gleixner commit 4d9a6e6128dd8ada0d2feed2a9bb6506043e4655 Author: Pavel Machek Date: Wed May 21 11:57:52 2008 +0200 x86: i8259: cleanup codingstyle Signed-off-by: Pavel Machek Cc: macro@ds2.pg.gda.pl Signed-off-by: Thomas Gleixner commit 4f6f3bac18c80ff6cf072d90796755c69cc4c748 Author: Pavel Machek Date: Wed May 21 11:52:52 2008 +0200 x86: i8259.c: remove trivial ifdefs Remove #ifdefs where the only difference is formatting of comments. Signed-off-by: Pavel Machek Cc: macro@ds2.pg.gda.pl Signed-off-by: Thomas Gleixner commit 6b4d3afbe722ee71b8da346c2c4393938440c471 Author: Pavel Machek Date: Wed May 21 11:47:24 2008 +0200 x86: i8259.c: remove #ifdefs around includes Remove #ifdefs around includes; including too much should be always safe. Signed-off-by: Pavel Machek Cc: macro@ds2.pg.gda.pl Signed-off-by: Thomas Gleixner commit 40bd21740012132afb62d78ac3e6b82372b2fbc2 Author: Pavel Machek Date: Wed May 21 11:44:02 2008 +0200 x86: automatical unification of i8259.c Make conversion of i8259 very mechanical -- i8259 was generated by commit 4d2df795f0c3eb91f97a666f47716121a2f166ed Author: Thomas Gleixner Date: Sat May 24 15:00:46 2008 +0200 sysprof: make it depend on X86 Signed-off-by: Thomas Gleixner commit 790e2a290b499b0400254e6870ec27969065d122 Author: Pekka Paalanen Date: Mon May 12 21:21:14 2008 +0200 x86 mmiotrace: page level is unsigned Fixes some sparse warnings. Signed-off-by: Pekka Paalanen Signed-off-by: Ingo Molnar commit a50445d76c22a34ae149704ea5adaef171c8acb7 Author: Pekka Paalanen Date: Mon May 12 21:21:03 2008 +0200 mmiotrace: rename kmmio_probe::user_data to :private. Signed-off-by: Pekka Paalanen Signed-off-by: Ingo Molnar commit dee310d0adf41019aca476052ac3085ff286d9be Author: Pekka Paalanen Date: Mon May 12 21:21:03 2008 +0200 x86 mmiotrace: use resource_size_t for phys addresses Signed-off-by: Pekka Paalanen Signed-off-by: Ingo Molnar commit 87e547fe41a8b57d6d80afc67a0031fbe477eb0d Author: Pekka Paalanen Date: Mon May 12 21:21:03 2008 +0200 x86 mmiotrace: fix page-unaligned ioremaps mmiotrace_ioremap() expects to receive the original unaligned map phys address and size. Also fix {un,}register_kmmio_probe() to deal properly with unaligned size. Signed-off-by: Pekka Paalanen Signed-off-by: Ingo Molnar commit 970e6fa03885f32cc43e42cb08c73a5f54cd8bd9 Author: Pekka Paalanen Date: Mon May 12 21:21:03 2008 +0200 mmiotrace: code style cleanups From c2da03771e29159627c5c7b9509ec70bce9f91ee Mon Sep 17 00:00:00 2001 From: Pekka Paalanen Date: Mon, 28 Apr 2008 21:25:22 +0300 Signed-off-by: Pekka Paalanen Signed-off-by: Ingo Molnar commit 6f6f394d9ca61fcc73ecfd2f2bf58e92dc1ab269 Author: Pekka Paalanen Date: Mon May 12 21:21:03 2008 +0200 doc: update mmiotrace doc to current status Signed-off-by: Pekka Paalanen Signed-off-by: Ingo Molnar commit e0fd5c2fa188311667267c02a702ae699a9fc2bd Author: Pekka Paalanen Date: Mon May 12 21:21:02 2008 +0200 mmiotrace: do not print bogus pid for maps either Signed-off-by: Pekka Paalanen Signed-off-by: Ingo Molnar commit 2039238b79b51a50f8477f53f33750e1c3fc146a Author: Pekka Paalanen Date: Mon May 12 21:21:02 2008 +0200 mmiotrace: print overrun counts Signed-off-by: Pekka Paalanen Signed-off-by: Ingo Molnar commit d0a7e8ca5b996d36219e6fc002907291c8ee677b Author: Pekka Paalanen Date: Mon May 12 21:21:02 2008 +0200 mmiotrace: print header using the read hook. Now the header is printed only for `trace_pipe' file. Signed-off-by: Pekka Paalanen Signed-off-by: Ingo Molnar commit 7423d1115f18627666d475fccc7c62394406ff8c Author: Pekka Paalanen Date: Mon May 12 21:21:02 2008 +0200 x86 mmiotrace: dynamically disable non-boot CPUs From 8979ee55cb6a429c4edd72ebec2244b849f6a79a Mon Sep 17 00:00:00 2001 From: Pekka Paalanen Date: Sat, 12 Apr 2008 00:18:57 +0300 Mmiotrace is not reliable with multiple CPUs and may miss events. Drop to single CPU when mmiotrace is activated. Signed-off-by: Pekka Paalanen Signed-off-by: Ingo Molnar commit 37b3619257d3190f47f233d7ed626d4b9916462c Author: Randy Dunlap Date: Mon May 12 21:20:59 2008 +0200 x86/mmiotrace: uses/depends on PCI Don't try to build mmiotrace when CONFIG_PCI=n. next-20080416/kernel/trace/trace_mmiotrace.c: In function 'mmio_print_pcidev': next-20080416/kernel/trace/trace_mmiotrace.c:62: error: implicit declaration of function 'pci_dev_driver' Signed-off-by: Randy Dunlap Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 0663bb6cd9a457fbd8ca95c627bb762d07321a39 Author: Randy Dunlap Date: Mon May 12 21:20:59 2008 +0200 mmiotrace: fix printk format Fix gcc printk format warnings: next-20080415/arch/x86/mm/mmio-mod.c: In function 'print_pte': next-20080415/arch/x86/mm/mmio-mod.c:154: warning: format '%lx' expects type 'long unsigned int', but argument 3 has type 'pteval_t' next-20080415/arch/x86/mm/mmio-mod.c:154: warning: format '%lx' expects type 'long unsigned int', but argument 4 has type 'pteval_t' next-20080415/arch/x86/mm/mmio-mod.c: At top level: next-20080415/arch/x86/mm/mmio-mod.c:403: warning: 'downed_cpus' defined but not used Signed-off-by: Randy Dunlap Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit c6c67c1afcce71335b18ed8769b1165c468bfb03 Author: Pekka Paalanen Date: Mon May 12 21:20:59 2008 +0200 mmiotrace: add user documentation Signed-off-by: Pekka Paalanen Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 736ca61fa81874b3fee205a593251b1869d0bcf1 Author: Pekka Paalanen Date: Mon May 12 21:20:59 2008 +0200 x86 mmiotrace: Do not print bogus pid Non-zero pid indicates the MMIO access originated in user space. We do not catch that kind of accesses yet, so always print zero for now. Signed-off-by: Pekka Paalanen Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit e4b37ee68609037ffcaa2fcfae47cd31a605bb9e Author: Pekka Paalanen Date: Mon May 12 21:20:59 2008 +0200 x86 mmiotrace: remove ISA_trace parameter. This had become a no-op. Signed-off-by: Pekka Paalanen Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit ff3a3e9ba5e4273a8bc10570adab4a390fb90757 Author: Pekka Paalanen Date: Mon May 12 21:20:59 2008 +0200 x86 mmiotrace: move files into arch/x86/mm/. Signed-off-by: Pekka Paalanen Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 49023168261a7f9a2fd4a1ca1adbfea922556015 Author: Ingo Molnar Date: Mon May 12 21:20:58 2008 +0200 mmiotrace: cleanup Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 801a175bf601f9a9d5e86e92dee9adeeb6625da8 Author: Ingo Molnar Date: Mon May 12 21:20:58 2008 +0200 mmiotrace: ftrace fix Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 138295373ccf7625fcb0218dfea114837983bc39 Author: Pekka Paalanen Date: Mon May 12 21:20:58 2008 +0200 ftrace: mmiotrace update, #2 another weekend, another patch. This should apply on top of my previous patch from March 23rd. Summary of changes: - Print PCI device list in output header - work around recursive probe hits on SMP - refactor dis/arm_kmmio_fault_page() and add check for page levels - remove un/reference_kmmio(), the die notifier hook is registered permanently into the list - explicitly check for single stepping in die notifier callback I have tested this version on my UP Athlon64 desktop with Nouveau, and SMP Core 2 Duo laptop with the proprietary nvidia driver. Both systems are 64-bit. One previously unknown bug crept into daylight: the ftrace framework's output routines print the first entry last after buffer has wrapped around. The most important regressions compared to non-ftrace mmiotrace at this time are: - failure of trace_pipe file - illegal lines in output file - unaware of losing data due to buffer full Personally I'd like to see these three solved before submitting to mainline. Other issues may come up once we know when we lose events. Signed-off-by: Pekka Paalanen Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit bd8ac686c73c7e925fcfe0b02dc4e7b947127864 Author: Pekka Paalanen Date: Mon May 12 21:20:57 2008 +0200 ftrace: mmiotrace, updates here is a patch that makes mmiotrace work almost well within the tracing framework. The patch applies on top of my previous patch. I have my own output formatting in place now. Summary of changes: - fix the NULL dereference that was due to not calling tracing_reset() - add print_line() callback into struct tracer - implement print_line() for mmiotrace, producing up-to-spec text - add my output header, but that is not really called in the right place - rewrote the main structs in mmiotrace - added two new trace entry types: TRACE_MMIO_RW and TRACE_MMIO_MAP - made some functions in trace.c non-static - check current==NULL in tracing_generic_entry_update() - fix(?) comparison in trace_seq_printf() Things seem to work fine except a few issues. Markers (text lines injected into mmiotrace log) are missing, I did not feel hacking them in before we have variable length entries. My output header is printed only for 'trace' file, but not 'trace_pipe'. For some reason, despite my quick fix, iter->trace is NULL in print_trace_line() when called from 'trace_pipe' file, which means I don't get proper output formatting. I only tried by loading nouveau.ko, which just detects the card, and that is traced fine. I didn't try further. Map, two reads and unmap. Works perfectly. I am missing the information about overflows, I'd prefer to have a counter for lost events. I didn't try, but I guess currently there is no way of knowning when it overflows? So, not too far from being fully operational, it seems :-) And looking at the diffstat, there also is some 700-900 lines of user space code that just became obsolete. Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit f984b51e0779a6dd30feedc41404013ca54e5d05 Author: Pekka Paalanen Date: Mon May 12 21:20:57 2008 +0200 ftrace: add mmiotrace plugin On Sat, 22 Mar 2008 13:07:47 +0100 Ingo Molnar wrote: > > > i'd suggest the following: pull x86.git and sched-devel.git into a > > > single tree [the two will combine without rejects]. Then try to add a > > > kernel/tracing/trace_mmiotrace.c ftrace plugin. The trace_sysprof.c > > > plugin might be a good example. > > > > I did this and now I have mmiotrace enabled/disabled via the tracing > > framework (what do we call this, since ftrace is one of the tracers?). > > cool! could you send the patches for that? (even if they are not fully > functional yet) Patch attached in the end. Nice to see how much code disappeared. I tried to mark all the features I had to break with XXX-comments. Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit d61fc44853f46fb002228b18aa5f30db21fcd4ac Author: Pekka Paalanen Date: Mon May 12 21:20:57 2008 +0200 x86: mmiotrace, preview 2 Kconfig.debug, Makefile and testmmiotrace.c style fixes. Use real mutex instead of mutex. Fix failure path in register probe func. kmmio: RCU read-locked over single stepping. Generate mapping id's. Make mmio-mod.c built-in and rewrite its locking. Add debugfs file to enable/disable mmiotracing. kmmio: use irqsave spinlocks. Lots of cleanups in mmio-mod.c Marker file moved from /proc into debugfs. Call mmiotrace entrypoints directly from ioremap.c. Signed-off-by: Pekka Paalanen Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 0fd0e3da4557c479b820b9a4a7afa25b4637ddf2 Author: Pekka Paalanen Date: Mon May 12 21:20:57 2008 +0200 x86: mmiotrace full patch, preview 1 kmmio.c handles the list of mmio probes with callbacks, list of traced pages, and attaching into the page fault handler and die notifier. It arms, traps and disarms the given pages, this is the core of mmiotrace. mmio-mod.c is a user interface, hooking into ioremap functions and registering the mmio probes. It also decodes the required information from trapped mmio accesses via the pre and post callbacks in each probe. Currently, hooking into ioremap functions works by redefining the symbols of the target (binary) kernel module, so that it calls the traced versions of the functions. The most notable changes done since the last discussion are: - kmmio.c is a built-in, not part of the module - direct call from fault.c to kmmio.c, removing all dynamic hooks - prepare for unregistering probes at any time - make kmmio re-initializable and accessible to more than one user - rewrite kmmio locking to remove all spinlocks from page fault path Can I abuse call_rcu() like I do in kmmio.c:unregister_kmmio_probe() or is there a better way? The function called via call_rcu() itself calls call_rcu() again, will this work or break? There I need a second grace period for RCU after the first grace period for page faults. Mmiotrace itself (mmio-mod.c) is still a module, I am going to attack that next. At some point I will start looking into how to make mmiotrace a tracer component of ftrace (thanks for the hint, Ingo). Ftrace should make the user space part of mmiotracing as simple as 'cat /debug/trace/mmio > dump.txt'. Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit f513638030ca384b0bace4df64f0b82f6ae1e4c6 Author: Pekka Paalanen Date: Mon May 12 21:20:57 2008 +0200 x86 mmiotrace: Use percpu instead of arrays. Signed-off-by: Pekka Paalanen Cc: Eric Dumazet Cc: pq@iki.fi Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 10c43d2eb50c9a5ad60388b9d3c41c31150049e6 Author: Pekka Paalanen Date: Mon May 12 21:20:57 2008 +0200 x86: explicit call to mmiotrace in do_page_fault() The custom page fault handler list is replaced with a single function pointer. All related functions and variables are renamed for mmiotrace. Signed-off-by: Pekka Paalanen Cc: Christoph Hellwig Cc: Arjan van de Ven Cc: pq@iki.fi Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 63ffa3e456c1a9884a3ebac997d91e3fdae18d78 Author: Pekka Paalanen Date: Mon May 12 21:20:57 2008 +0200 x86 mmiotrace: comment about user space ABI Signed-off-by: Pekka Paalanen Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit fe1ffafa80f6673101c6560c2bacfe3df10372ee Author: Pekka Paalanen Date: Mon May 12 21:20:56 2008 +0200 x86 mmiotrace: fix relay-buffer-full flag for SMP Relay has per-cpu buffers, but mmiotrace was using only a single flag for detecting buffer full/not-full transitions. The new code makes this per-cpu and actually counts missed events. Signed-off-by: Pekka Paalanen Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 75bb88350e0501b3cf5ac096a1008757844414a9 Author: Pekka Paalanen Date: Mon May 12 21:20:56 2008 +0200 x86 mmiotrace: use lookup_address() Use lookup_address() from pageattr.c instead of doing the same manually. Also had to EXPORT_SYMBOL_GPL(lookup_address) to make this work for modules. This also fixes "undefined symbol 'init_mm'" compile error for x86_32. Signed-off-by: Pekka Paalanen Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 8b7d89d02ef3c6a7c73d6596f28cea7632850af4 Author: Pekka Paalanen Date: Mon May 12 21:20:56 2008 +0200 x86: mmiotrace - trace memory mapped IO Mmiotrace is a tool for trapping memory mapped IO (MMIO) accesses within the kernel. It is used for debugging and especially for reverse engineering evil binary drivers. Mmiotrace works by wrapping the ioremap family of kernel functions and marking the returned pages as not present. Access to the IO memory triggers a page fault, which will be handled by mmiotrace's custom page fault handler. This will single-step the faulted instruction with the MMIO page marked as present. Access logs are directed to user space via relay and debug_fs. This page fault approach is necessary, because binary drivers have readl/writel etc. calls inlined and therefore extremely difficult to trap with with e.g. kprobes. This patch depends on the custom page fault handlers patch. Signed-off-by: Pekka Paalanen Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit bfeeeeb991cf75081e6c2f74d44ae5da05b50a94 Author: Johannes Berg Date: Mon May 12 21:21:14 2008 +0200 stacktrace: don't crash on invalid stack trace structs This patch makes the stacktrace printout code \warn when the entries pointer is unset rather than crashing when trying to access it in an attempt to make it a bit more robust. I was saving a stacktrace into an skb and forgot to copy it across skb copies... I have since fixed the code, but it would have been easier had the kernel not crashed in an interrupt. Signed-off-by: Johannes Berg Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit cf3271a73b612a03da00681ecd9bfefab37c74c9 Author: Soeren Sandmann Date: Mon May 12 05:28:50 2008 +0200 ftrace/sysprof: don't trace the user stack if we are a kernel thread. Check that current->mm is non-NULL before attempting to trace the user stack. Also take depth of the kernel stack into account when comparing against sample_max_depth. Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 8a9e94c1fbfdac45a3b6811b880777c4116aa309 Author: Ingo Molnar Date: Mon May 12 21:20:54 2008 +0200 sysprof: update copyrights Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit cd2134b1dda92fd450e6a1e12b1c7960dd6a2178 Author: Soeren Sandmann Pedersen Date: Mon May 12 21:20:54 2008 +0200 sysprof: kernel trace add kernel backtracing to the sysprof tracer. change the format of the data, so that type=0 means beginning of stack trace, 1 means kernel address, 2 means user address, and 3 means end of trace. EIP addresses are no longer distinguished from return addresses, mostly because sysprof userspace doesn't make use of it. It may be worthwhile adding this back in though, just in case it becomes interesting. Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 5fc4511c756860149b81aead6eca5bdf5c438ea7 Author: Thomas Gleixner Date: Fri May 23 23:58:21 2008 +0200 ftrace: make it more available in the Kconfig Signed-off-by: Thomas Gleixner commit 9caee613d3b860ae81b79370eeae9ac967c07536 Author: Thomas Gleixner Date: Fri May 23 23:55:54 2008 +0200 ftrace: fix __trace_special() Signed-off-by: Thomas Gleixner commit ada6b835067dc022f11cdae1c313a3710d3d977c Author: Thomas Gleixner Date: Fri May 23 23:50:41 2008 +0200 ftrace: remove notrace Remove the notrace annotations. The build logic takes care of that. Signed-off-by: Thomas Gleixner commit d618b3e6e50970a6248ac857653fdd49bcd3c045 Author: Ingo Molnar Date: Mon May 12 21:20:49 2008 +0200 ftrace: sysprof updates make the sample period configurable. Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 9f6b4e3f4a24f2590f1c96f117fc45fbea9b0fa4 Author: Ingo Molnar Date: Mon May 12 21:20:48 2008 +0200 ftrace: sysprof fix Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit ef4ab15ff34fd9c65e92bee70f58e7179da881c5 Author: Ingo Molnar Date: Mon May 12 21:20:48 2008 +0200 ftrace: make sysprof dependent on x86 for now that's the only tested platform for now. If there's interest we can make it generic easily. Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 842af315e8b0adad58fc642eaa5e6f53525e0534 Author: Ingo Molnar Date: Mon May 12 21:20:47 2008 +0200 ftrace: sysprof plugin improvement add sample maximum depth. Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit a6dd24f8d00cbccb560b19a723e6fb9bdfb20799 Author: Ingo Molnar Date: Mon May 12 21:20:47 2008 +0200 ftrace: sysprof-plugin, add self-tests Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 56a08bdcff20f0022bd9160c1093e56f763499aa Author: Ingo Molnar Date: Mon May 12 21:20:47 2008 +0200 ftrace: extend sysprof plugin some more Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 0075fa80305f3231a2d5df97b00d7f55a48ea27e Author: Ingo Molnar Date: Mon May 12 21:20:47 2008 +0200 ftrace: extend sysprof plugin add per CPU hrtimers. Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit f06c38103ea9dbca27c3f4d77f444ddefb5477cd Author: Ingo Molnar Date: Mon May 12 21:20:47 2008 +0200 ftrace: add sysprof plugin very first baby version. Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 677aa9f77e8de3791b481a0cec6c8b84d1eec626 Author: Steven Rostedt Date: Sat May 17 00:01:36 2008 -0400 ftrace: add have dynamic ftrace config for archs Now that ftrace is being ported to other architectures, it has become apparent that DYNAMIC_FTRACE is dependent on whether or not that architecture implements dynamic ftrace. FTRACE itself may be ported to an architecture without porting dynamic ftrace. This patch adds HAVE_DYNAMIC_FTRACE to allow architectures to port ftrace without having to also port the dynamic aspect as well. Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 7fa09f24b477ad41b821713eba757b3aa7a2864a Author: Steven Rostedt Date: Wed May 14 21:30:32 2008 -0400 ftrace: use the new kbuild CFLAGS_REMOVE for x86/kernel directory This patch removes the Makefile turd and uses the nice CFLAGS_REMOVE macro in the x86/kernel directory. Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 654e4787689faffdd2137fe91f59fd3ef3363ad2 Author: Steven Rostedt Date: Wed May 14 21:30:31 2008 -0400 ftrace: use the new kbuild CFLAGS_REMOVE for lib directory This patch removes the Makefile turd and uses the nice CFLAGS_REMOVE macro in the lib directory. Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 6ec562328fda585be2d7f472cfac99d3b44d362a Author: Steven Rostedt Date: Wed May 14 21:30:30 2008 -0400 ftrace: use the new kbuild CFLAGS_REMOVE for kernel directory This patch removes the Makefile turd and uses the nice CFLAGS_REMOVE macro in the kernel directory. Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 656ee82cc855027b2e994ad218519b09fa652cc1 Author: Steven Rostedt Date: Wed May 14 21:30:29 2008 -0400 kbuild: create new CFLAGS_REMOVE_(basename).o option We currently have a way to add special CFLAGS to code, but we do not have a way to remove them if needed. With the case of ftrace, some files should simply not be profiled. Adding the -pg flag to these files is simply a waste, and adding "notrace" to each and every function is ugly. Currently we put in "Makefile turd" [1] to stop the compiler from adding -pg to certain files. This was clumsy and awkward. This patch now adds the revese of CFLAGS_(basename).o with CFLAGS_REMOVE_(basename).o. This allows developers to prevent certain CFLAGS from being used to compile files. For example, we can now do CFLAGS_REMOVE_string.o = -pg to remove the -pg option from the string.o file in the lib directory. Note: a space delimited list of options may be added to the REMOVE macro. [1] - what David Miller called the workaronud to remove -pg Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 4e491d14f2506b218d678935c25a7027b79178b1 Author: Steven Rostedt Date: Wed May 14 23:49:44 2008 -0400 ftrace: support for PowerPC This patch adds full support for ftrace for PowerPC (both 64 and 32 bit). This includes dynamic tracing and function filtering. Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit e0eca07badc023a675a61906020b397da20f07c3 Author: Steven Rostedt Date: Wed May 14 23:49:43 2008 -0400 ftrace, POWERPC: add irqs_disabled_flags to ppc PPC doesn't have the irqs_disabled_flags needed by ftrace. This patch adds it. Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 489f139614596cbc956a06f5e4bb41288e276fe3 Author: Ingo Molnar Date: Mon Feb 25 13:38:05 2008 +0100 ftrace: fix build bug Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit d49dbf33f0bf8748ee3662b973eb57e60525d622 Author: Ingo Molnar Date: Fri May 16 10:41:53 2008 +0200 ftrace: fix include file dependency Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 2d8b820b2e81954754277723379ae9ed5de316fa Author: Ingo Molnar Date: Sat Feb 23 16:55:50 2008 +0100 ftrace: cleanups factor out code and clean it up. Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 37135677e653537ffc6e7def679443272a1c03c3 Author: Ingo Molnar Date: Wed May 14 08:10:31 2008 +0200 ftrace: fix mcount export bug David S. Miller noticed the following bug: the -pg instrumentation function callback is named differently on each platform. On x86 it is mcount, on sparc it is _mcount. So the export does not make sense in kernel/trace/ftrace.c - move it to x86. Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit d05f5f9906740474eb768823004ffcd775b12ca6 Author: David Miller Date: Tue May 13 22:06:59 2008 -0700 sparc64: add ftrace support. Signed-off-by: David S. Miller Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit aa5e5ceaf52a882a29d9b86531a20733f5116066 Author: David Miller Date: Tue May 13 22:06:56 2008 -0700 ftrace: remove packed attribute on ftrace_page. It causes unaligned access traps on platforms like sparc (ftrace_page may be marked packed, but once we return a dyn_ftrace sub-object from this array to another piece of code, the "packed" part of the typing information doesn't propagate). But also, it didn't serve any purpose either. Even if packed, on 64-bit or 32-bit, it didn't give us any more dyn_ftrace entries per-page. Signed-off-by: David S. Miller Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 74f4e369fc5b52433ad824cef32d3bf1304549be Author: Ingo Molnar Date: Mon May 12 21:21:15 2008 +0200 ftrace: stacktrace fix Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 5b82a1b08a00b2adca3d9dd9777efff40b7aaaa1 Author: Mathieu Desnoyers Date: Mon May 12 21:21:10 2008 +0200 Port ftrace to markers Porting ftrace to the marker infrastructure. Don't need to chain to the wakeup tracer from the sched tracer, because markers support multiple probes connected. Signed-off-by: Mathieu Desnoyers CC: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 0aa977f592f17004f9d1d545f2e1bb9ea71896c3 Author: Mathieu Desnoyers Date: Mon May 12 21:21:10 2008 +0200 Markers - define non optimized marker To support the forthcoming "immediate values" marker optimization, we must have a way to declare markers in few code paths that does not use instruction modification based enable. This will be the case of printk(), some traps and eventually lockdep instrumentation. Changelog : - Fix reversed boolean logic of "generic". Signed-off-by: Mathieu Desnoyers Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit dc102a8fae2d0d6bf5223fc549247f2e23959ae6 Author: Mathieu Desnoyers Date: Mon May 12 21:21:09 2008 +0200 Markers - remove extra format argument Denys Vlasenko : > Not in this patch, but I noticed: > > #define __trace_mark(name, call_private, format, args...) \ > do { \ > static const char __mstrtab_##name[] \ > __attribute__((section("__markers_strings"))) \ > = #name "\0" format; \ > static struct marker __mark_##name \ > __attribute__((section("__markers"), aligned(8))) = \ > { __mstrtab_##name, &__mstrtab_##name[sizeof(#name)], \ > 0, 0, marker_probe_cb, \ > { __mark_empty_function, NULL}, NULL }; \ > __mark_check_format(format, ## args); \ > if (unlikely(__mark_##name.state)) { \ > (*__mark_##name.call) \ > (&__mark_##name, call_private, \ > format, ## args); \ > } \ > } while (0) > > In this call: > > (*__mark_##name.call) \ > (&__mark_##name, call_private, \ > format, ## args); \ > > you make gcc allocate duplicate format string. You can use > &__mstrtab_##name[sizeof(#name)] instead since it holds the same string, > or drop ", format," above and "const char *fmt" from here: > > void (*call)(const struct marker *mdata, /* Probe wrapper */ > void *call_private, const char *fmt, ...); > > since mdata->format is the same and all callees which need it can take it there. Very good point. I actually thought about dropping it, since it would remove an unnecessary argument from the stack. And actually, since I now have the marker_probe_cb sitting between the marker site and the callbacks, there is no API change required. Thanks :) Mathieu Signed-off-by: Mathieu Desnoyers CC: Denys Vlasenko Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 3eefae994d9224fb7771a3ddb683868363c23510 Author: Steven Rostedt Date: Mon May 12 21:21:04 2008 +0200 ftrace: limit trace entries Currently there is no protection from the root user to use up all of memory for trace buffers. If the root user allocates too many entries, the OOM killer might start kill off all tasks. This patch adds an algorith to check the following condition: pages_requested > (freeable_memory + current_trace_buffer_pages) / 4 If the above is met then the allocation fails. The above prevents more than 1/4th of freeable memory from being used by trace buffers. To determine the freeable_memory, I made determine_dirtyable_memory in mm/page-writeback.c global. Special thanks goes to Peter Zijlstra for suggesting the above calculation. Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 6c6c27969a4c6024e6c8838829546c02aaddca18 Author: Pekka Paalanen Date: Mon May 12 21:21:02 2008 +0200 ftrace: add readpos to struct trace_seq; add trace_seq_to_user() Refactor code from tracing_read_pipe() and create trace_seq_to_user(). Moved trace_seq_reset() call before iter->trace->read() call so that when all leftover data is returned, trace_seq is reset automatically. Signed-off-by: Pekka Paalanen Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 2bb6f8d6389cbfadd657e7dc069f6986abf35e4f Author: Steven Rostedt Date: Mon May 12 21:21:02 2008 +0200 ftrace: use raw_smp_processor_id for mcount functions Due to debug hooks in the kernel that can change the way smp_processor_id works, use raw_smp_processor_id in mcount called functions (namely ftrace_record_ip). Currently we annotate most debug functions from calling mcount, but we should not rely on that to prevent kernel lockups. This patch uses the raw_smp_processor_id to prevent a recusive crash that can happen if a debug hook in smp_processor_id calls mcount. Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit a4feb8348b62fe76a63cdb5569f5c920f5283c06 Author: Ingo Molnar Date: Mon May 12 21:21:02 2008 +0200 ftrace: special stacktrace Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 9fe068e92f6290e89e19adc521441661a1229f00 Author: Ingo Molnar Date: Mon May 12 21:21:02 2008 +0200 ftrace: trace faster Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 4823ed7eadf35e4b57ce581327e21d39585f1f32 Author: Steven Rostedt Date: Mon May 12 21:21:01 2008 +0200 ftrace: fix setting of pos in read_pipe In resetting the iterator in read_pipe, the reset of pos was postitioned in the wrong location with respect to the memset operation. The current code sets pos, incorrectly, to zero. Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 2f1dafe50cc4e58a239fd81bd47f87f32042a1ee Author: Pekka Paalanen Date: Mon May 12 21:21:01 2008 +0200 x86: fix SMP alternatives: use mutex instead of spinlock, text_poke is sleepable text_poke is sleepable. The original fix by Mathieu Desnoyers . Signed-off-by: Pekka Paalanen Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 107bad8bef5ab2c3a3bff7648c18c9dc3abdc13b Author: Steven Rostedt Date: Mon May 12 21:21:01 2008 +0200 ftrace: add trace pipe header pluggin This patch adds a method for open_pipe and open_read to the pluggins so that they can add a header to the trace pipe call. Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 53d0aa773053ab18287781e25d52c5faf9e0e09e Author: Steven Rostedt Date: Mon May 12 21:21:01 2008 +0200 ftrace: add logic to record overruns This patch sets up the infrastructure to record overruns of the tracing buffer. Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 72b59d67f80983f7bb587b086fb4cb1bc95263a4 Author: Pekka Paalanen Date: Mon May 12 21:21:01 2008 +0200 x86_64: fix kernel rodata NX setting Without CONFIG_DYNAMIC_FTRACE, mark_rodata_ro() would mark a wrong number of pages as no-execute. The bug was introduced in the patch "ftrace: dont write protect kernel text". The symptom was machine reboot after a CPU hotplug. Signed-off-by: Pekka Paalanen Acked-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 25b0b44a1c732ccfc58095cdd8438955a0a19fff Author: Steven Rostedt Date: Mon May 12 21:21:00 2008 +0200 ftrace: fix comm on function trace output In cleaning up of the sched_switch code, the function trace recording of task comms was removed. This patch adds back the recording of comms for function trace. The output of ftrace now has the task comm instead of <...>. Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 4fcdae83cebda24b519a89d3dd976081fff1ca80 Author: Steven Rostedt Date: Mon May 12 21:21:00 2008 +0200 ftrace: comment code This is first installment of adding documentation to the ftrace. Expect many more patches of this kind in the near future. Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit ab46428c6969d50ecf6f6e97b7a84abba6274368 Author: Steven Rostedt Date: Mon May 12 21:21:00 2008 +0200 ftrace: modulize the number of CPU buffers Currently ftrace allocates a trace buffer for every possible CPU. Work is being done to change it to only online CPUs and add hooks to hotplug CPUS. This patch lays out the infrastructure for such a change. Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit c6caeeb142cd3a03c46107aac45c8effc02bbadb Author: Steven Rostedt Date: Mon May 12 21:21:00 2008 +0200 ftrace: replace simple_strtoul with strict_strtoul Andrew Morton suggested using strict_strtoul over simple_strtoul. This patch replaces them in ftrace. Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit cffae437cdfbc8a5370d38cefbff1dfe34dad6ca Author: Steven Rostedt Date: Mon May 12 21:21:00 2008 +0200 ftrace: simple clean ups Andrew Morton mentioned some clean ups that should be done to ftrace. This patch does some of the simple clean ups. Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit afc2abc0ae4265730a0fc48618012193a09a1d10 Author: Ingo Molnar Date: Mon May 12 21:21:00 2008 +0200 ftrace: cleanups no code changed. Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 93dcc6ea096c51cc30ad0f6647ed05fead2439bf Author: Thomas Gleixner Date: Mon May 12 21:21:00 2008 +0200 ftrace: simplify hexprint simplify hex to ascii conversion. Signed-off-by: Thomas Gleixner Signed-off-by: Ingo Molnar commit bb065afb8ebd07a03155502dba29ebf0f6fe67e8 Author: Steven Rostedt Date: Mon May 12 21:21:00 2008 +0200 lockdep: update lockdep_recursion on graph_lock With the introduction of ftrace, it is possible to recurse into the lockdep functions via the mcount call. To prevent possible lockups, updating the lockdep_recursion counter on grabbing the internal lockdep_lock should prevent deadlocks. Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit a98a3c3fde3ae7614f19758a043691b6f59dac53 Author: Steven Rostedt Date: Mon May 12 21:20:59 2008 +0200 ftrace: trace_entries to dynamically change trace buffer size This patch adds /debug/tracing/trace_entries that allows users to see as well as modify the number of trace entries the buffers hold. The number of entries only increments in ENTRIES_PER_PAGE which is calculated by the size of an entry with the number of entries that can fit in a page. The user does not need to use an exact size, but the entries will be rounded to one of the increments. Trying to set the entries to 0 will return with -EINVAL. To avoid race conditions, the modification of the buffer size can only be done when tracing is completely disabled (current_tracer == none). A info message will be printed if a user tries to modify the buffer size when not set to none. Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 05bd68c514579e007b46e4fa0461b78416a3f4c2 Author: Steven Rostedt Date: Mon May 12 21:20:59 2008 +0200 ftrace: user proper API for setting RT prios in selftest The wakeup selftest used an internal API for setting the test task priority. This patch fixes it to use the proper API for performing such a task. Thanks goes to Randy Dunlap for pointing out this build failure. Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 2dc8f09571a61d9cb3dc47bba6608689dfe15d16 Author: Steven Rostedt Date: Mon May 12 21:20:58 2008 +0200 ftrace: trace_pipe implement NONBLOCK This patch implements "NONBLOCK" for trace_pipe. If the trace_pipe is opened with O_NONBLOCK, then the trace_pipe read will not block when buffer is empty. Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 845279972f1736c3463c9cebd1bad92a0a347176 Author: Steven Rostedt Date: Mon May 12 21:20:58 2008 +0200 ftrace: return EOF in trace_pipe on change of tracer Break out of while loop with EOF when the current_trace changes. Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit b5685aede3b7b65e72ddc73b951aa1f70798a614 Author: Steven Rostedt Date: Mon May 12 21:20:58 2008 +0200 ftrace: restore iterator trace in pipe read The trace iterator is reset in the read. We still need to restore the tracer that the trace_pipe was opened with. Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 8487c23765b6e0444ec6b5f1530766d63fe68e35 Author: Steven Rostedt Date: Mon May 12 21:20:58 2008 +0200 ftrace: allow trace_pipe to block on all reads We expect things like "cat" to block on reads to trace_pipe. That's what trace_pipe is for. Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit d17d969160c18b631a19c2b34d260691402650f8 Author: Ankita Garg Date: Mon May 12 21:20:58 2008 +0200 ftrace: fix conversion of task state to char in latency tracer The conversion of task states to a character in the sched_switch tracer (part of latency tracer infrastructure), seems to be incorrect. We currently do it by indexing into the state_to_char array using the state value. The state values do not map directly into the array index and are thus incorrect. The following patch addresses this issue. This is also what is being done even in the show_task() routine in kernel/sched.c The patch has been compile and run tested. Signed-off-by: Ankita Garg Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 72829bc3d63cdc592d8f7dd86ad3b3fe8900fb74 Author: Thomas Gleixner Date: Fri May 23 21:37:28 2008 +0200 ftrace: move enums to ftrace.h and make helper function global picked from the mmiotracer patches to distangle the patch queues. Signed-off-by: Thomas Gleixner commit 86069782d62e731b4835a0cf8eb7d1d0e17cf306 Author: Pekka Paalanen Date: Mon May 12 21:20:56 2008 +0200 x86: add a list for custom page fault handlers. Provides kernel modules a way to register custom page fault handlers. On every page fault this will call a list of registered functions. The functions may handle the fault and force do_page_fault() to return immediately. This functionality is similar to the now removed page fault notifiers. Custom page fault handlers are used by debugging and reverse engineering tools. Mmiotrace is one such tool and a patch to add it into the tree will follow. The custom page fault handlers are called earlier in do_page_fault() than the page fault notifiers were. Signed-off-by: Pekka Paalanen Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 8f0f996e80b980fba07d11961d96a5fefb60976a Author: Steven Rostedt Date: Mon May 12 21:20:56 2008 +0200 ftrace: dont write protect kernel text Dynamic ftrace cant work when the kernel has its text write protected. This patch keeps the kernel from being write protected when dynamic ftrace is in place. Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit a56be3fe2f65f9f776e727bfd382e35db75911d6 Author: Steven Rostedt Date: Mon May 12 21:20:56 2008 +0200 ftrace: fix the fault label in updating code The fault label to jump to on fault of updating the code was misplaced preventing the fault from being recorded. Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 30afdcb1de0a37a2086145a82ca3febebe47d019 Author: Steven Rostedt Date: Mon May 12 21:20:56 2008 +0200 ftrace: selftest protect againt max flip There is a slight race condition in the selftest where the max update of the wakeup and irqs/preemption off tests can be doing a max update as the buffers are being tested. If this happens the system can crash with a GPF. This patch adds the max update spinlock around the checking of the buffers to prevent such a race. Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit d15f57f23eaba975309a153b23699cd0c0236974 Author: Steven Rostedt Date: Mon May 12 21:20:56 2008 +0200 ftrace: fix mutex unlock in trace output If the trace output changes on reading the trace files, there is a chance that the start function will return NULL. If the start function of a sequence returns NULL the stop equivalent is not called. In this case, all locks that are taken must be released even if they are released in the stop function. This patch fixes a case that a mutex was not released on return of NULL in the start sequence function. Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 07a267cdd2fd7d1de9455b1e36a1635ace7276c7 Author: Steven Rostedt Date: Mon May 12 21:20:55 2008 +0200 ftrace: add UNINTERRUPTIBLE state for kftraced on disable When dynamic ftrace fails and sets itself disabled, the ftraced daemon will go back to sleep everytime it wakes up. The setting of the ftraced state to UNINTERRUPTIBLE is skipped in this process, and the daemon takes up 100% of the CPU. This patch makes sure the ftraced daemon sets itself to UNINTERRUPTIBLE in that loop. Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit c1d2327b36f2261ffa8ff7227321ba900c7eee7f Author: Ingo Molnar Date: Mon May 12 21:20:55 2008 +0200 ftrace: restrict tracing to HAVE_FTRACE architectures Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 1d09daa55d2e9bab7e7d30f0d05e5a7bc60b2a4a Author: Steven Rostedt Date: Mon May 12 21:20:55 2008 +0200 ftrace: use Makefile to remove tracing from lockdep This patch removes the "notrace" annotation from lockdep and adds the debugging files in the kernel director to those that should not be compiled with "-pg" mcount tracing. Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 9d0a420b737f72d84fabebf29634d800cbf54538 Author: Steven Rostedt Date: Mon May 12 21:20:55 2008 +0200 ftrace: remove function tracing from spinlock debug The debug functions in spin_lock debugging pollute the output of the function tracer. This patch adds the debug files in the lib director to those that should not be compiled with mcount tracing. Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 92205c2343527a863d660360599a4bf8cede77b0 Author: Steven Rostedt Date: Mon May 12 21:20:55 2008 +0200 ftrace: user raw_spin_lock in tracing Lock debugging enabled cause huge performance problems for tracing. Having the lock verification happening for every function that is called because mcount calls spin_lock can cripple the system. This patch converts the spin_locks used by ftrace into raw_spin_locks. Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit c5f888cae49dfe3e86d9d1e0dab2b63ceb057be3 Author: Steven Rostedt Date: Mon May 12 21:20:55 2008 +0200 ftrace: irqsoff use raw_smp_processor_id This patch changes the use of __get_cpu_var to explicitly calling raw_smp_processor_id and using the per_cpu() macro. On some debug configurations, the use of __get_cpu_var may cause ftrace to trigger and this can cause problems with the irqsoff tracing. Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 4d9493c90f8e6e1b164aede3814010a290161abb Author: Ingo Molnar Date: Mon May 12 21:20:54 2008 +0200 ftrace: remove add-hoc code Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit d05cdb25d80f06f77aa6bddb53cd1390d4d91a0b Author: Steven Rostedt Date: Mon May 12 21:20:54 2008 +0200 ftrace: fix dynamic ftrace selftest With the adding of the configuration changes in the Makefile to prevent tracing of functions in the ftrace code, all tracing of all the ftrace code has been removed. Unfortunately, one of the selftests, relied on a function to be traced. With the new change, the function was no longer traced and the test failed. This patch separates out the test function into its own file so that we can add the "-pg" flag to the compilation of that function and the adding of the mcount call to that function. Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 06fa75ab566c50e01bfd7b055bde85cf9b1bc98a Author: Steven Rostedt Date: Mon May 12 21:20:54 2008 +0200 ftrace: add TRACE_STACK and TRACE_SPECIAL to selftest validation The selftest validation code checks for valid entries in the trace buffer. TRACE_STACK and TRACE_SPECIAL have been added to the code but not to the validator. This patch adds the two to prevent them from flagging a failure in the selftest. Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 4fe8c3048cd8280a54256bca9cac2007bd546c33 Author: Steven Rostedt Date: Mon May 12 21:20:54 2008 +0200 ftrace: printk and trace irqsoff and wakeups printk called from wakeup critical timings and irqs off can cause deadlocks since printk might do a wakeup itself. If the call to printk happens with the runqueue lock held, it can deadlock. This patch protects the printk from being called in trace irqs off with a test to see if the runqueue for the current CPU is locked. If it is locked, the printk is skipped. The wakeup always holds the runqueue lock, so the printk is simply removed. Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 8f96da02c14d722ad9a3713cd7273ce28c9036ad Author: Steven Rostedt Date: Mon May 12 21:20:54 2008 +0200 ftrace: remove wakeup from function trace trace_function is called by mcount and calling wake_up from that can have unpredictable results. This patch removes the wakeup from trace_function. Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 694379e9ed4f2f6babe111bf001c69e2e263338b Author: Ingo Molnar Date: Mon May 12 21:20:54 2008 +0200 ftrace: make it more available in the Kconfig Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 5429db2d26a59903c81a4f6c6dae7eb9daaea5fc Author: Peter Zijlstra Date: Mon May 12 21:20:53 2008 +0200 ftrace: fix wakeup callback Signed-off-by: Peter Zijlstra Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit bac524d3f3dfeffa3a9d44f2c64035b88bcaacb4 Author: Peter Zijlstra Date: Mon May 12 21:20:53 2008 +0200 ftrace: trace next state Signed-off-by: Peter Zijlstra Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 88a4216c3ec4281fc7e6725cc3a3ccd01fb1aa14 Author: Ingo Molnar Date: Mon May 12 21:20:53 2008 +0200 ftrace: sched special Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 36fc25a9f48deacd8aa08cd2d1c186a4e412604f Author: Ingo Molnar Date: Mon May 12 21:20:53 2008 +0200 ftrace: sched tree fix Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit f29c73fe3404f8799ed57aaf48859e0b55fc071f Author: Ingo Molnar Date: Mon May 12 21:20:53 2008 +0200 ftrace: include cpu in stacktrace Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 442e544ce52d4415a024920b84fb95c5f9aa0855 Author: Ingo Molnar Date: Mon May 12 21:20:53 2008 +0200 ftrace: iter ctrl fix Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit d9af56fbd8b37181bffaad060f74aa2e17382874 Author: Ingo Molnar Date: Mon May 12 21:20:53 2008 +0200 ftrace: fix cmdline tracing Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 36dfe9252bd4c9b55e8454363fb7e444c92c5030 Author: Ingo Molnar Date: Mon May 12 21:20:52 2008 +0200 ftrace: make use of tracing_cpumask Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit c7078de1aaf562a31b20984409c38cc1b40fa8a3 Author: Ingo Molnar Date: Mon May 12 21:20:52 2008 +0200 ftrace: add tracing_cpumask Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 4ac3ba41d372e3a9e420b36bc43589662b188a14 Author: Ingo Molnar Date: Mon May 12 21:20:52 2008 +0200 ftrace: trace scheduler rbtree Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 1a3c3034336320554a3342572dae98d69e054fc7 Author: Ingo Molnar Date: Mon May 12 21:20:52 2008 +0200 ftrace: fix __trace_special() Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 017730c11241e26577673eb9d957cfc66172ea91 Author: Ingo Molnar Date: Mon May 12 21:20:52 2008 +0200 ftrace: fix wakeups Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 24cd5d111e8c713e62cda7ca1d01232402e3d3c9 Author: Ingo Molnar Date: Mon May 12 21:20:52 2008 +0200 ftrace: trace curr/next tasks Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 4e65551905fb0300ae7e667cbaa41ee2e3f29a13 Author: Ingo Molnar Date: Mon May 12 21:20:52 2008 +0200 ftrace: sched tracer, trace full rbtree Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 4c1f4d4f0175129934d5dbc19a39296430937a05 Author: Ingo Molnar Date: Mon May 12 21:20:51 2008 +0200 ftrace: make nostacktrace the default Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 8ac0fca4ccb355ce50471d7aa3f10f5900b28b95 Author: Ingo Molnar Date: Mon May 12 21:20:51 2008 +0200 ftrace: sched tracer fix Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 86387f7ee5d3273ff4859e2c64ce656639b6ca65 Author: Ingo Molnar Date: Mon May 12 21:20:51 2008 +0200 ftrace: add stack tracing Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 57422797dc009fc83766bcf230d29dbe6e08e21e Author: Ingo Molnar Date: Mon May 12 21:20:51 2008 +0200 ftrace: add wakeup events to sched tracer Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit e309b41dd65aa953f86765eeeecc941d8e1e8b8f Author: Ingo Molnar Date: Mon May 12 21:20:51 2008 +0200 ftrace: remove notrace now that we have a kbuild method for notrace, no need to pollute the C code with the annotations. Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit b53dde9d34f2df396540988ebc65c33400f57b04 Author: Ingo Molnar Date: Mon May 12 21:20:51 2008 +0200 ftrace: disable -pg for the tracer itself Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 3594136ad67a54d77bcb2547e70011754a2f91d5 Author: Steven Rostedt Date: Mon May 12 21:20:50 2008 +0200 ftrace: do not profile lib/string.o Most archs define the string and memory compare functions in assembly. Some do not. But these functions may be used in some archs at early boot up. Since most archs define this code in assembly and they are not usually traced, there's no need to trace them when they are not defined in assembly. This patch removes the -pg from the CFLAGS for lib/string.o. This prevents the string functions use in either vdso or early bootup from crashing the system. Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit caf8cdebfb6c1cff50ea8077f1a07c2333d6d1fd Author: Steven Rostedt Date: Mon May 12 21:20:50 2008 +0200 ftrace: remove address of function names PowerPC is very fragile when it comes to use of function names and function addresses. ftrace needs to either use all function addresses or function names (i.e. my_func as suppose to &my_func). This patch chooses to use the names and not the addresses, and makes ftrace consistent. Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 9ff9cdb2d3b0971f89e899b3420aadd91bddc215 Author: Ingo Molnar Date: Mon May 12 21:20:50 2008 +0200 ftrace: cleanups clean up recent code. Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 6fb44b717c10ecf37beaaebd312f3afa93fed714 Author: Steven Rostedt Date: Mon May 12 21:20:49 2008 +0200 ftrace: add trace_function api for other tracers to use A new check was added in the ftrace function that wont trace if the CPU trace buffer is disabled. Unfortunately, other tracers used ftrace() to write to the buffer after they disabled it. The new disable check makes these calls into a nop. This patch changes the __ftrace that is called without the check into a new api for the other tracers to use, called "trace_function". The other tracers use this interface instead when the trace CPU buffer is already disabled. Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 2a2cc8f7c4d0dfd75720867f7dc58d24f075edfc Author: Soeren Sandmann Pedersen Date: Mon May 12 21:20:49 2008 +0200 ftrace: allow the event pipe to be polled Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit aeaee8a2c9cb4489f166ca0e39c568e8254faaa6 Author: Ingo Molnar Date: Mon May 12 21:20:49 2008 +0200 ftrace: build fix Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 2577046740fe6d77864128c6187c11125c2449ea Author: Ingo Molnar Date: Mon May 12 21:20:49 2008 +0200 ftrace: build fix no need to backmerge, only affects ftrace-enabled kernels. (which is not the default) Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 5e3ca0ec76fce92daa4eed0d02de9c79b1fe3920 Author: Ingo Molnar Date: Mon May 12 21:20:49 2008 +0200 ftrace: introduce the "hex" output method Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 2e0f57618529a2739a5e1570e6c445c9c966b595 Author: Ingo Molnar Date: Mon May 12 21:20:49 2008 +0200 ftrace: build fix Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 0fd9e0dac9026df09986a4b201518ae015814aef Author: Ingo Molnar Date: Mon May 12 21:20:48 2008 +0200 ftrace: use cpu clock again Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 26994ead1fc8cced63f17e9848edc1771036664e Author: Steven Rostedt Date: Mon May 12 21:20:48 2008 +0200 ftrace: enabled tracing by default This patch is the correct way to have tracing enabled by default. Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 4eebcc81a33fbc45e28542b50197ed7b3c486d90 Author: Steven Rostedt Date: Mon May 12 21:20:48 2008 +0200 ftrace: disable tracing on failure Since ftrace touches practically every function. If we detect any anomaly, we want to fully disable ftrace. This patch adds code to try shutdown ftrace as much as possible without doing any more harm is something is detected not quite correct. This only kills ftrace, this patch does have checks for other parts of the tracer (irqsoff, wakeup, etc.). Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 37ad508419f0fdfda7b378756eb1f35cfd26d96d Author: Steven Rostedt Date: Mon May 12 21:20:48 2008 +0200 ftrace - fix dynamic ftrace memory leak The ftrace dynamic function update allocates a record to store the instruction pointers that are being modified. If the modified instruction pointer fails to update, then the record is marked as failed and nothing more is done. Worse, if the modification fails, but the record ip function is still called, it will allocate a new record and try again. In just a matter of time, will this cause a serious memory leak and crash the system. This patch plugs this memory leak. When a record fails, it is included back into the pool of records to be used. Now a record may fail over and over again, but the number of allocated records will not increase. Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 088b1e427dbba2af93cb6a7d39258c10ff58dd27 Author: Steven Rostedt Date: Mon May 12 21:20:48 2008 +0200 ftrace: pipe fixes Some fixes for better output with the trace pipe. Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit dcb6308f2b56720599f6b9d5a01c33e67e69bde4 Author: Ingo Molnar Date: Mon May 12 21:20:48 2008 +0200 ftrace, locking fix should be an irq-safe lock ... Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit f0a920d5752e1788c0cba2add103076bcc0f7a49 Author: Ingo Molnar Date: Mon May 12 21:20:47 2008 +0200 ftrace: add trace_special() for ad-hoc tracing. Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit cb0f12aae8d085140d37ada351aa5a8e76c3f9b0 Author: Ingo Molnar Date: Mon May 12 21:20:47 2008 +0200 ftrace: bin-output Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit f9896bf30928922a3913a3810a4ab7908da6cfe7 Author: Ingo Molnar Date: Mon May 12 21:20:47 2008 +0200 ftrace: add raw output Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 8c523a9d82dbc4f3f7d972df8c0f1eacd83d0d55 Author: Ingo Molnar Date: Mon May 12 21:20:46 2008 +0200 ftrace: clean-up-pipe-iteration Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit cdd31cd2d7a0dcbec2cce3974f7129dd4fc8c879 Author: Ingo Molnar Date: Mon May 12 21:20:46 2008 +0200 ftrace: remove-idx-sync remove idx syncing - it's expensive on SMP. Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 53c37c17aafcf50f7c6fddaf01dda8f9d7e31ddf Author: Ingo Molnar Date: Mon May 12 21:20:46 2008 +0200 ftrace: fast, scalable, synchronized timestamps implement globally synchronized, fast and scalable time source for tracing. Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 750ed1a40783432d0dcb0e6c2e813a12615d7664 Author: Ingo Molnar Date: Mon May 12 21:20:46 2008 +0200 ftrace: timestamp syncing, prepare rename and uninline now() to ftrace_now(). Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 4bf39a9411a4ce8712954e03a9bd1592ee345919 Author: Ingo Molnar Date: Mon May 12 21:20:46 2008 +0200 ftrace: cleanups no code changed. Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit d4c5a2f5870939d837293de87b41dda0012a4572 Author: Ingo Molnar Date: Mon May 12 21:20:46 2008 +0200 ftrace: fix locking we can hold all cpu trace buffer locks at once - put each into a separate lock class. Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit b3806b4316306dc9c542eff6c23d7d42918f3504 Author: Steven Rostedt Date: Mon May 12 21:20:46 2008 +0200 ftrace: user run time file reading This patch creates a file called trace_pipe in the tracing debug directory. This file is a consumer of the trace buffers. This means that reads of this file consumes the entries from the trace buffers so that they will not be read a second time, as contrast to the static buffers latency_trace and trace. Reading from the trace_pipe will remove the entries from trace and latency_trace too. The advantage that trace_pipe has is that it can record live traces. It will block when there is nothing in the buffer, and read the entries as they are entered. An EOF happens when tracing is disabled (tracing_enabled = 0). Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 214023c3d13a71525e463b5e54e360b926b4dc90 Author: Steven Rostedt Date: Mon May 12 21:20:46 2008 +0200 ftrace: add a buffer for output Later patches will need to print the same things as the seq output does. But those outputs will not use the seq utility. This patch adds a buffer to the iterator, that can be used by either the seq utility or other output. Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 93a588f459da134be6ab17c4104e28441beb0d22 Author: Steven Rostedt Date: Mon May 12 21:20:45 2008 +0200 ftrace: change buffers to producer consumer This patch changes the way the CPU trace buffers are handled. Instead of always starting from the trace page head, the logic is changed to a producer consumer logic. This allows for the buffers to be drained while they are alive. Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 1d4db00a5e30c7b8f8dc2a1b19e886fd942be143 Author: Steven Rostedt Date: Mon May 12 21:20:45 2008 +0200 ftrace: reset selftests The tests may leave stuff in the buffers. This resets the buffers after each test is run. If a test fails, it does not reset the buffer to avoid touching a buffer that is corrupted. Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 08bafa0efcf29fe18ec39c2147077b597368b018 Author: Steven Rostedt Date: Mon May 12 21:20:45 2008 +0200 ftrace: disable all tracers on corrupted buffer If the trace buffer is detected to be corrupted, then we disable all tracers. Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 4e3c3333f3bd7eedfd21b1155b3c7cd24fc7f754 Author: Ingo Molnar Date: Mon May 12 21:20:45 2008 +0200 ftrace: fix time offset fix time offset calculations and ordering, plus make code more consistent. Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 77a2b37d227483fe52aead242652aee406c25bf0 Author: Steven Rostedt Date: Mon May 12 21:20:45 2008 +0200 ftrace: startup tester on dynamic tracing. This patch adds a startup self test on dynamic code modification and filters. The test filters on a specific function, makes sure that no other function is traced, exectutes the function, then makes sure that the function is traced. This patch also fixes a slight bug with the ftrace selftest, where tracer_enabled was not being set. Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 7bd2f24c2f769e3f8f1d4fc8b9fddf689825f6a7 Author: Ingo Molnar Date: Mon May 12 21:20:45 2008 +0200 ftrace: add README make it easier for newbies to find their way around. Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit c7aafc549766b87819285d3480648fc652a47bc4 Author: Ingo Molnar Date: Mon May 12 21:20:45 2008 +0200 ftrace: cleanups factor out code and clean it up. Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 60a11774b38fef1ab90b18c5353bd1c7c4d311c8 Author: Steven Rostedt Date: Mon May 12 21:20:44 2008 +0200 ftrace: add self-tests Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit e1c08bdd9fa73e44096e5a82c0d5928b04ab02c8 Author: Steven Rostedt Date: Mon May 12 21:20:44 2008 +0200 ftrace: force recording Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 57f50be14d57b0dbf88dd019e7bb0ff3a3dc7b81 Author: Steven Rostedt Date: Mon May 12 21:20:44 2008 +0200 ftrace: fix max latency Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 89b2f97819dd074297bbe3e19eaa4afcc98845ad Author: Steven Rostedt Date: Mon May 12 21:20:44 2008 +0200 ftrace: fix updates to max trace This patch fixes some bugs to the updating of the max trace that was caused by implementing the new buffering. Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 18cef379d30f5ded20cc31d7f2d342639d39919d Author: Steven Rostedt Date: Mon May 12 21:20:44 2008 +0200 ftrace: don't use raw_local_irq_save/restore Using raw_local_irq_save/restore confuses lockdep. It's fine to use the normal ones. Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 0764d23cf066c52de42b653144605b481d3fbdbc Author: Steven Rostedt Date: Mon May 12 21:20:44 2008 +0200 ftrace: lockdep notrace annotations Add notrace annotations to lockdep to keep ftrace from causing recursive problems with lock tracing and debugging. Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 361943ad0ba3f16e66859e30a408915e008ba91e Author: Steven Rostedt Date: Mon May 12 21:20:44 2008 +0200 ftrace: irqs off smp_processor_id() fix The irqsoff function tracer did a __get_cpu_var to determine if it should trace the function or not. The problem is that __get_cpu_var can preempt between getting the CPU and reading the cpu variable. This means that the cpu variable that is being read is not from the cpu being run on. At worst, this can give a false positive, where we trace the function when we should not. It will never give a false negative since we only want to trace when interrupts are disabled and we never preempt when they are. This fix adds a check after reading the irq flags to only trace if the interrupts are actually disabled. It also changes the reading of the cpu variable to use a raw_smp_processor_id since we now don't care if we preempt. We still catch that fact. Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 5568b139f4d196273958ae2947a736fdf1ffeece Author: Steven Rostedt Date: Mon May 12 21:20:44 2008 +0200 ftrace: debug smp_processor_id, use notrace preempt disable The debug smp_processor_id caused a recursive fault in debugging the irqsoff tracer. The tracer used a smp_processor_id in the ftrace callback, and this function called preempt_disable which also is traced. This caused a recursive fault (stack overload). Since using smp_processor_id without debugging on does not cause faults with the tracer (even when the tracer is wrong), the debug version should not cause a system reboot. This changes the debug_smp_processor_id to use the notrace versions of preempt_disable and enable. Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit f43fdad8627fec2d21df92799b254dceb66c9c3c Author: Ingo Molnar Date: Mon May 12 21:20:43 2008 +0200 ftrace: fix kexec disable the tracer while kexec pulls the rug from under the old kernel. Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 4c11d7aed389375253b59e2b1865eec96663c65d Author: Steven Rostedt Date: Mon May 12 21:20:43 2008 +0200 ftrace: convert single large buffer into single pages. Allocating large buffers for the tracer may fail easily. This patch converts the buffer from a large ordered allocation to single pages. It uses the struct page LRU field to link the pages together. Later patches may also implement dynamic increasing and decreasing of the trace buffers. Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 5072c59fd45e9976d02ee6f18c7336ef97623cbc Author: Steven Rostedt Date: Mon May 12 21:20:43 2008 +0200 ftrace: add filter select functions to trace This patch adds two files to the debugfs system: /debugfs/tracing/available_filter_functions and /debugfs/tracing/set_ftrace_filter The available_filter_functions lists all functions that has been recorded by the ftraced that has called the ftrace_record_ip function. This is to allow users to see what functions have been converted to nops and can be enabled for tracing. To enable functions, simply echo the names (whitespace delimited) into set_ftrace_filter. Simple wildcards are also allowed. echo 'scheduler' > /debugfs/tracing/set_ftrace_filter Will have only the scheduler be activated when tracing is enabled. echo 'sched_*' > /debugfs/tracing/set_ftrace_filter Will have only the functions starting with 'sched_' be activated. echo '*lock' > /debugfs/tracing/set_ftrace_filter Will have only functions ending with 'lock' be activated. echo '*lock*' > /debugfs/tracing/set_ftrace_filter Will have only functions with 'lock' in its name be activated. Note: 'sched*lock' will not work. The only wildcards that are allowed is an asterisk and the beginning and or end of the string passed in. Multiple names can be passed in with whitespace delimited: echo 'scheduler *lock *acpi*' > /debugfs/tracing/set_ftrace_filter is also the same as: echo 'scheduler' > /debugfs/tracing/set_ftrace_filter echo '*lock' >> /debugfs/tracing/set_ftrace_filter echo '*acpi*' >> /debugfs/tracing/set_ftrace_filter Appending does just that. It appends to the list. To disable all filters simply echo an empty line in: echo > /debugfs/tracing/set_ftrace_filter Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit d61f82d06672f57fca410da6f7fffd15867db622 Author: Steven Rostedt Date: Mon May 12 21:20:43 2008 +0200 ftrace: use dynamic patching for updating mcount calls This patch replaces the indirect call to the mcount function pointer with a direct call that will be patched by the dynamic ftrace routines. On boot up, the mcount function calls the ftace_stub function. When the dynamic ftrace code is initialized, the ftrace_stub is replaced with a call to the ftrace_record_ip, which records the instruction pointers of the locations that call it. Later, the ftraced daemon will call kstop_machine and patch all the locations to nops. When a ftrace is enabled, the original calls to mcount will now be set top call ftrace_caller, which will do a direct call to the registered ftrace function. This direct call is also patched when the function that should be called is updated. All patching is performed by a kstop_machine routine to prevent any type of race conditions that is associated with modifying code on the fly. Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 3c1720f00bb619302ba19d55986ab565e74d06db Author: Steven Rostedt Date: Mon May 12 21:20:43 2008 +0200 ftrace: move memory management out of arch code This patch moves the memory management of the ftrace records out of the arch code and into the generic code making the arch code simpler. Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit dfa60aba04dae7833d75b2e2be124bb7cfb8239f Author: Steven Rostedt Date: Mon May 12 21:20:43 2008 +0200 ftrace: use nops instead of jmp This patch patches the call to mcount with nops instead of a jmp over the mcount call. Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit b0fc494fae96a7089f3651cb451f461c7291244c Author: Steven Rostedt Date: Mon May 12 21:20:43 2008 +0200 ftrace: add ftrace_enabled sysctl to disable mcount function This patch adds back the sysctl ftrace_enabled. This time it is defaulted to on, if DYNAMIC_FTRACE is configured. When ftrace_enabled is disabled, the ftrace function is set to the stub return. If DYNAMIC_FTRACE is also configured, on ftrace_enabled = 0, the registered ftrace functions will all be set to jmps, but no more new calls to ftrace recording (used to find the ftrace calling sites) will be called. Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 3d0833953e1b98b79ddf491dd49229eef9baeac1 Author: Steven Rostedt Date: Mon May 12 21:20:42 2008 +0200 ftrace: dynamic enabling/disabling of function calls This patch adds a feature to dynamically replace the ftrace code with the jmps to allow a kernel with ftrace configured to run as fast as it can without it configured. The way this works, is on bootup (if ftrace is enabled), a ftrace function is registered to record the instruction pointer of all places that call the function. Later, if there's still any code to patch, a kthread is awoken (rate limited to at most once a second) that performs a stop_machine, and replaces all the code that was called with a jmp over the call to ftrace. It only replaces what was found the previous time. Typically the system reaches equilibrium quickly after bootup and there's no code patching needed at all. e.g. call ftrace /* 5 bytes */ is replaced with jmp 3f /* jmp is 2 bytes and we jump 3 forward */ 3: When we want to enable ftrace for function tracing, the IP recording is removed, and stop_machine is called again to replace all the locations of that were recorded back to the call of ftrace. When it is disabled, we replace the code back to the jmp. Allocation is done by the kthread. If the ftrace recording function is called, and we don't have any record slots available, then we simply skip that call. Once a second a new page (if needed) is allocated for recording new ftrace function calls. A large batch is allocated at boot up to get most of the calls there. Because we do this via stop_machine, we don't have to worry about another CPU executing a ftrace call as we modify it. But we do need to worry about NMI's so all functions that might be called via nmi must be annotated with notrace_nmi. When this code is configured in, the NMI code will not call notrace. Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 6cd8a4bb2f97527a9ceb30bc77ea4e959c6a95e3 Author: Steven Rostedt Date: Mon May 12 21:20:42 2008 +0200 ftrace: trace preempt off critical timings Add preempt off timings. A lot of kernel core code is taken from the RT patch latency trace that was written by Ingo Molnar. This adds "preemptoff" and "preemptirqsoff" to /debugfs/tracing/available_tracers Now instead of just tracing irqs off, preemption off can be selected to be recorded. When this is selected, it shares the same files as irqs off timings. One can either trace preemption off, irqs off, or one or the other off. By echoing "preemptoff" into /debugfs/tracing/current_tracer, recording of preempt off only is performed. "irqsoff" will only record the time irqs are disabled, but "preemptirqsoff" will take the total time irqs or preemption are disabled. Runtime switching of these options is now supported by simpling echoing in the appropriate trace name into /debugfs/tracing/current_tracer. Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 81d68a96a39844853b37f20cc8282d9b65b78ef3 Author: Steven Rostedt Date: Mon May 12 21:20:42 2008 +0200 ftrace: trace irq disabled critical timings This patch adds latency tracing for critical timings (how long interrupts are disabled for). "irqsoff" is added to /debugfs/tracing/available_tracers Note: tracing_max_latency also holds the max latency for irqsoff (in usecs). (default to large number so one must start latency tracing) tracing_thresh threshold (in usecs) to always print out if irqs off is detected to be longer than stated here. If irq_thresh is non-zero, then max_irq_latency is ignored. Here's an example of a trace with ftrace_enabled = 0 ======= preemption latency trace v1.1.5 on 2.6.24-rc7 Signed-off-by: Ingo Molnar -------------------------------------------------------------------- latency: 100 us, #3/3, CPU#1 | (M:rt VP:0, KP:0, SP:0 HP:0 #P:2) ----------------- | task: swapper-0 (uid:0 nice:0 policy:0 rt_prio:0) ----------------- => started at: _spin_lock_irqsave+0x2a/0xb7 => ended at: _spin_unlock_irqrestore+0x32/0x5f _------=> CPU# / _-----=> irqs-off | / _----=> need-resched || / _---=> hardirq/softirq ||| / _--=> preempt-depth |||| / ||||| delay cmd pid ||||| time | caller \ / ||||| \ | / swapper-0 1d.s3 0us+: _spin_lock_irqsave+0x2a/0xb7 (e1000_update_stats+0x47/0x64c [e1000]) swapper-0 1d.s3 100us : _spin_unlock_irqrestore+0x32/0x5f (e1000_update_stats+0x641/0x64c [e1000]) swapper-0 1d.s3 100us : trace_hardirqs_on_caller+0x75/0x89 (_spin_unlock_irqrestore+0x32/0x5f) vim:ft=help ======= And this is a trace with ftrace_enabled == 1 ======= preemption latency trace v1.1.5 on 2.6.24-rc7 -------------------------------------------------------------------- latency: 102 us, #12/12, CPU#1 | (M:rt VP:0, KP:0, SP:0 HP:0 #P:2) ----------------- | task: swapper-0 (uid:0 nice:0 policy:0 rt_prio:0) ----------------- => started at: _spin_lock_irqsave+0x2a/0xb7 => ended at: _spin_unlock_irqrestore+0x32/0x5f _------=> CPU# / _-----=> irqs-off | / _----=> need-resched || / _---=> hardirq/softirq ||| / _--=> preempt-depth |||| / ||||| delay cmd pid ||||| time | caller \ / ||||| \ | / swapper-0 1dNs3 0us+: _spin_lock_irqsave+0x2a/0xb7 (e1000_update_stats+0x47/0x64c [e1000]) swapper-0 1dNs3 46us : e1000_read_phy_reg+0x16/0x225 [e1000] (e1000_update_stats+0x5e2/0x64c [e1000]) swapper-0 1dNs3 46us : e1000_swfw_sync_acquire+0x10/0x99 [e1000] (e1000_read_phy_reg+0x49/0x225 [e1000]) swapper-0 1dNs3 46us : e1000_get_hw_eeprom_semaphore+0x12/0xa6 [e1000] (e1000_swfw_sync_acquire+0x36/0x99 [e1000]) swapper-0 1dNs3 47us : __const_udelay+0x9/0x47 (e1000_read_phy_reg+0x116/0x225 [e1000]) swapper-0 1dNs3 47us+: __delay+0x9/0x50 (__const_udelay+0x45/0x47) swapper-0 1dNs3 97us : preempt_schedule+0xc/0x84 (__delay+0x4e/0x50) swapper-0 1dNs3 98us : e1000_swfw_sync_release+0xc/0x55 [e1000] (e1000_read_phy_reg+0x211/0x225 [e1000]) swapper-0 1dNs3 99us+: e1000_put_hw_eeprom_semaphore+0x9/0x35 [e1000] (e1000_swfw_sync_release+0x50/0x55 [e1000]) swapper-0 1dNs3 101us : _spin_unlock_irqrestore+0xe/0x5f (e1000_update_stats+0x641/0x64c [e1000]) swapper-0 1dNs3 102us : _spin_unlock_irqrestore+0x32/0x5f (e1000_update_stats+0x641/0x64c [e1000]) swapper-0 1dNs3 102us : trace_hardirqs_on_caller+0x75/0x89 (_spin_unlock_irqrestore+0x32/0x5f) vim:ft=help ======= Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 352ad25aa4a189c667cb2af333948d34692a2d27 Author: Steven Rostedt Date: Mon May 12 21:20:42 2008 +0200 ftrace: tracer for scheduler wakeup latency This patch adds the tracer that tracks the wakeup latency of the highest priority waking task. "wakeup" is added to /debugfs/tracing/available_tracers Also added to /debugfs/tracing tracing_max_latency holds the current max latency for the wakeup wakeup_thresh if set to other than zero, a log will be recorded for every wakeup that takes longer than the number entered in here (usecs for all counters) (deletes previous trace) Examples: (with ftrace_enabled = 0) ============ preemption latency trace v1.1.5 on 2.6.24-rc8 Signed-off-by: Ingo Molnar -------------------------------------------------------------------- latency: 26 us, #2/2, CPU#1 | (M:rt VP:0, KP:0, SP:0 HP:0 #P:2) ----------------- | task: migration/0-3 (uid:0 nice:-5 policy:1 rt_prio:99) ----------------- _------=> CPU# / _-----=> irqs-off | / _----=> need-resched || / _---=> hardirq/softirq ||| / _--=> preempt-depth |||| / ||||| delay cmd pid ||||| time | caller \ / ||||| \ | / quilt-8551 0d..3 0us+: wake_up_process+0x15/0x17 (sched_exec+0xc9/0x100 ) quilt-8551 0d..4 26us : sched_switch_callback+0x73/0x81 (schedule+0x483/0x6d5 ) vim:ft=help ============ (with ftrace_enabled = 1) ============ preemption latency trace v1.1.5 on 2.6.24-rc8 -------------------------------------------------------------------- latency: 36 us, #45/45, CPU#0 | (M:rt VP:0, KP:0, SP:0 HP:0 #P:2) ----------------- | task: migration/1-5 (uid:0 nice:-5 policy:1 rt_prio:99) ----------------- _------=> CPU# / _-----=> irqs-off | / _----=> need-resched || / _---=> hardirq/softirq ||| / _--=> preempt-depth |||| / ||||| delay cmd pid ||||| time | caller \ / ||||| \ | / bash-10653 1d..3 0us : wake_up_process+0x15/0x17 (sched_exec+0xc9/0x100 ) bash-10653 1d..3 1us : try_to_wake_up+0x271/0x2e7 (sub_preempt_count+0xc/0x7a ) bash-10653 1d..2 2us : try_to_wake_up+0x296/0x2e7 (update_rq_clock+0x9/0x20 ) bash-10653 1d..2 2us : update_rq_clock+0x1e/0x20 (__update_rq_clock+0xc/0x90 ) bash-10653 1d..2 3us : __update_rq_clock+0x1b/0x90 (sched_clock+0x9/0x29 ) bash-10653 1d..2 4us : try_to_wake_up+0x2a6/0x2e7 (activate_task+0xc/0x3f ) bash-10653 1d..2 4us : activate_task+0x2d/0x3f (enqueue_task+0xe/0x66 ) bash-10653 1d..2 5us : enqueue_task+0x5b/0x66 (enqueue_task_rt+0x9/0x3c ) bash-10653 1d..2 6us : try_to_wake_up+0x2ba/0x2e7 (check_preempt_wakeup+0x12/0x99 ) [...] bash-10653 1d..5 33us : tracing_record_cmdline+0xcf/0xd4 (_spin_unlock+0x9/0x33 ) bash-10653 1d..5 34us : _spin_unlock+0x19/0x33 (sub_preempt_count+0xc/0x7a ) bash-10653 1d..4 35us : wakeup_sched_switch+0x65/0x2ff (_spin_lock_irqsave+0xc/0xa9 ) bash-10653 1d..4 35us : _spin_lock_irqsave+0x19/0xa9 (add_preempt_count+0xe/0x77 ) bash-10653 1d..4 36us : sched_switch_callback+0x73/0x81 (schedule+0x483/0x6d5 ) vim:ft=help ============ The [...] was added here to not waste your email box space. Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 35e8e302e5d6e32675df2fc1dd3a53dfa6630dc1 Author: Steven Rostedt Date: Mon May 12 21:20:42 2008 +0200 ftrace: add tracing of context switches This patch adds context switch tracing, of the format of: _------=> CPU# / _-----=> irqs-off | / _----=> need-resched || / _---=> hardirq/softirq ||| / _--=> preempt-depth |||| / ||||| delay cmd pid ||||| time | pid:prio:state \ / ||||| \ | / swapper-0 1d..3 137us+: 0:140:R --> 2912:120 sshd-2912 1d..3 216us+: 2912:120:S --> 0:140 swapper-0 1d..3 261us+: 0:140:R --> 2912:120 bash-2920 0d..3 267us+: 2920:120:S --> 0:140 sshd-2912 1d..3 330us!: 2912:120:S --> 0:140 swapper-0 1d..3 2389us+: 0:140:R --> 2847:120 yum-upda-2847 1d..3 2411us!: 2847:120:S --> 0:140 swapper-0 0d..3 11089us+: 0:140:R --> 3139:120 gdm-bina-3139 0d..3 11113us!: 3139:120:S --> 0:140 swapper-0 1d..3 102328us+: 0:140:R --> 2847:120 yum-upda-2847 1d..3 102348us!: 2847:120:S --> 0:140 "sched_switch" is added to /debugfs/tracing/available_tracers [ Eugene Teo Cc: Mathieu Desnoyers Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 1b29b01887e6032dcaf818c14999c7a39593b4e7 Author: Steven Rostedt Date: Mon May 12 21:20:42 2008 +0200 ftrace: function tracer This is a simple trace that uses the ftrace infrastructure. It is designed to be fast and small, and easy to use. It is useful to record things that happen over a very short period of time, and not to analyze the system in general. Updates: available_tracers "function" is added to this file. current_tracer To enable the function tracer: echo function > /debugfs/tracing/current_tracer To disable the tracer: echo disable > /debugfs/tracing/current_tracer The output of the function_trace file is as follows "echo noverbose > /debugfs/tracing/iter_ctrl" preemption latency trace v1.1.5 on 2.6.24-rc7-tst Signed-off-by: Ingo Molnar -------------------------------------------------------------------- latency: 0 us, #419428/4361791, CPU#1 | (M:desktop VP:0, KP:0, SP:0 HP:0 #P:4) ----------------- | task: -0 (uid:0 nice:0 policy:0 rt_prio:0) ----------------- _------=> CPU# / _-----=> irqs-off | / _----=> need-resched || / _---=> hardirq/softirq ||| / _--=> preempt-depth |||| / ||||| delay cmd pid ||||| time | caller \ / ||||| \ | / swapper-0 0d.h. 1595128us+: set_normalized_timespec+0x8/0x2d (ktime_get_ts+0x4a/0x4e ) swapper-0 0d.h. 1595131us+: _spin_lock+0x8/0x18 (hrtimer_interrupt+0x6e/0x1b0 ) Or with verbose turned on: "echo verbose > /debugfs/tracing/iter_ctrl" preemption latency trace v1.1.5 on 2.6.24-rc7-tst -------------------------------------------------------------------- latency: 0 us, #419428/4361791, CPU#1 | (M:desktop VP:0, KP:0, SP:0 HP:0 #P:4) ----------------- | task: -0 (uid:0 nice:0 policy:0 rt_prio:0) ----------------- swapper 0 0 9 00000000 00000000 [f3675f41] 1595.128ms (+0.003ms): set_normalized_timespec+0x8/0x2d (ktime_get_ts+0x4a/0x4e ) swapper 0 0 9 00000000 00000001 [f3675f45] 1595.131ms (+0.003ms): _spin_lock+0x8/0x18 (hrtimer_interrupt+0x6e/0x1b0 ) swapper 0 0 9 00000000 00000002 [f3675f48] 1595.135ms (+0.003ms): _spin_lock+0x8/0x18 (hrtimer_interrupt+0x6e/0x1b0 ) The "trace" file is not affected by the verbose mode, but is by the symonly. echo "nosymonly" > /debugfs/tracing/iter_ctrl tracer: [ 81.479967] CPU 0: bash:3154 register_ftrace_function+0x5f/0x66 <-- _spin_unlock_irqrestore+0xe/0x5a [ 81.479967] CPU 0: bash:3154 _spin_unlock_irqrestore+0x3e/0x5a <-- sub_preempt_count+0xc/0x7a [ 81.479968] CPU 0: bash:3154 sub_preempt_count+0x30/0x7a <-- in_lock_functions+0x9/0x24 [ 81.479968] CPU 0: bash:3154 vfs_write+0x11d/0x155 <-- dnotify_parent+0x12/0x78 [ 81.479968] CPU 0: bash:3154 dnotify_parent+0x2d/0x78 <-- _spin_lock+0xe/0x70 [ 81.479969] CPU 0: bash:3154 _spin_lock+0x1b/0x70 <-- add_preempt_count+0xe/0x77 [ 81.479969] CPU 0: bash:3154 add_preempt_count+0x3e/0x77 <-- in_lock_functions+0x9/0x24 echo "symonly" > /debugfs/tracing/iter_ctrl tracer: [ 81.479913] CPU 0: bash:3154 register_ftrace_function+0x5f/0x66 <-- _spin_unlock_irqrestore+0xe/0x5a [ 81.479913] CPU 0: bash:3154 _spin_unlock_irqrestore+0x3e/0x5a <-- sub_preempt_count+0xc/0x7a [ 81.479913] CPU 0: bash:3154 sub_preempt_count+0x30/0x7a <-- in_lock_functions+0x9/0x24 [ 81.479914] CPU 0: bash:3154 vfs_write+0x11d/0x155 <-- dnotify_parent+0x12/0x78 [ 81.479914] CPU 0: bash:3154 dnotify_parent+0x2d/0x78 <-- _spin_lock+0xe/0x70 [ 81.479914] CPU 0: bash:3154 _spin_lock+0x1b/0x70 <-- add_preempt_count+0xe/0x77 [ 81.479914] CPU 0: bash:3154 add_preempt_count+0x3e/0x77 <-- in_lock_functions+0x9/0x24 Signed-off-by: Steven Rostedt Signed-off-by: Arnaldo Carvalho de Melo Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit bc0c38d139ec7fcd5c030aea16b008f3732e42ac Author: Steven Rostedt Date: Mon May 12 21:20:42 2008 +0200 ftrace: latency tracer infrastructure This patch adds the latency tracer infrastructure. This patch does not add anything that will select and turn it on, but will be used by later patches. If it were to be compiled, it would add the following files to the debugfs: The root tracing directory: /debugfs/tracing/ This patch also adds the following files: available_tracers list of available tracers. Currently no tracers are available. Looking into this file only shows "none" which is used to unregister all tracers. current_tracer The trace that is currently active. Empty on start up. To switch to a tracer simply echo one of the tracers that are listed in available_tracers: example: (used with later patches) echo function > /debugfs/tracing/current_tracer To disable the tracer: echo disable > /debugfs/tracing/current_tracer tracing_enabled echoing "1" into this file starts the ftrace function tracing (if sysctl kernel.ftrace_enabled=1) echoing "0" turns it off. latency_trace This file is readonly and holds the result of the trace. trace This file outputs a easier to read version of the trace. iter_ctrl Controls the way the output of traces look. So far there's two controls: echoing in "symonly" will only show the kallsyms variables without the addresses (if kallsyms was configured) echoing in "verbose" will change the output to show a lot more data, but not very easy to understand by humans. echoing in "nosymonly" turns off symonly. echoing in "noverbose" turns off verbose. Signed-off-by: Steven Rostedt Signed-off-by: Arnaldo Carvalho de Melo Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 16444a8a40d4c7b4f6de34af0cae1f76a4f6c901 Author: Arnaldo Carvalho de Melo Date: Mon May 12 21:20:42 2008 +0200 ftrace: add basic support for gcc profiler instrumentation If CONFIG_FTRACE is selected and /proc/sys/kernel/ftrace_enabled is set to a non-zero value the ftrace routine will be called everytime we enter a kernel function that is not marked with the "notrace" attribute. The ftrace routine will then call a registered function if a function happens to be registered. [ This code has been highly hacked by Steven Rostedt and Ingo Molnar, so don't blame Arnaldo for all of this ;-) ] Update: It is now possible to register more than one ftrace function. If only one ftrace function is registered, that will be the function that ftrace calls directly. If more than one function is registered, then ftrace will call a function that will loop through the functions to call. Signed-off-by: Arnaldo Carvalho de Melo Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 6e766410c4babd37bc7cd5e25009c179781742c8 Author: Arnaldo Carvalho de Melo Date: Mon May 12 21:20:41 2008 +0200 ftrace: annotate core code that should not be traced Mark with "notrace" functions in core code that should not be traced. The "notrace" attribute will prevent gcc from adding a call to ftrace on the annotated funtions. Signed-off-by: Arnaldo Carvalho de Melo Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 23adec554a7648f99c8acc0caf49c66320cd2b84 Author: Steven Rostedt Date: Mon May 12 21:20:41 2008 +0200 x86: add notrace annotations to vsyscall. Add the notrace annotations to the vsyscall functions - there we are not in kernel context yet, so the tracer function cannot (and must not) be called. Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit ffdc1a09ae7e2cbd714a446ee38a27f625b5f1c8 Author: Ingo Molnar Date: Mon May 12 21:20:41 2008 +0200 tracing: add notrace to linkage.h notrace signals that a function should not be traced. Most of the time this is used by tracers to annotate code that cannot be traced - it's in a volatile state (such as in user vdso context or NMI context) or it's in the tracer internals. Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 502825282e6f79c975a644afc124432ec1744de4 Author: Steven Rostedt Date: Mon May 12 21:20:41 2008 +0200 ftrace: add preempt_enable/disable notrace macros The tracer may need to call preempt_enable and disable functions for time keeping and such. The trace gets ugly when we see these functions show up for all traces. To make the output cleaner this patch adds preempt_enable_notrace and preempt_disable_notrace to be used by tracer (and debugging) functions. Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 7c731e0a495e25e79dc1e9e68772a67a55721a65 Author: Steven Rostedt Date: Mon May 12 21:20:41 2008 +0200 ftrace: make the task state char-string visible to all The tracer wants to be able to convert the state number into a user visible character. This patch pulls that conversion string out the scheduler into the header. This way if it were to ever change, other parts of the kernel will know. Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit bd3bff9e20f454b242d979ec2f9a4dca0d5fa06f Author: Ingo Molnar Date: Mon May 12 21:20:41 2008 +0200 sched: add latency tracer callbacks to the scheduler add 3 lightweight callbacks to the tracer backend. zero impact if tracing is turned off. Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit acf464817d5e7be9fb67aec4027dbee0ac9be17a Merge: 80d267f... 8962cad... Author: Paul Mackerras Date: Fri May 23 16:53:23 2008 +1000 Merge branch 'merge' into powerpc-next commit 80d267f9aee6f1b5df602b5a19fb7b4923f17db2 Author: Michael Ellerman Date: Fri May 23 14:22:21 2008 +1000 [POWERPC] Remove unnecessary cast in arch_deref_entry_point() func_descr_t->entry is already an unsigned long. Mea culpa. Signed-off-by: Michael Ellerman Signed-off-by: Paul Mackerras commit 72cac213fda6a2dd402e91692b70e175795eab7d Author: Michael Ellerman Date: Fri May 23 14:21:30 2008 +1000 [POWERPC] Add debugging trigger to Axon MSI code This adds some debugging code to the Axon MSI driver. It creates a file per MSIC in /sys/kernel/debug/powerpc, which allows the user to trigger a fake MSI interrupt by writing to the file. This can be used to test some of the MSI generation path. In particular, that the MSIC recognises a write to the MSI address, generates an interrupt and writes the MSI packet into the ring buffer. All the code is inside #ifdef DEBUG so it causes no harm unless it's enabled. Signed-off-by: Michael Ellerman Signed-off-by: Paul Mackerras commit 475ca391b490a683d66bf19999a8a7a24913f139 Author: Kumar Gala Date: Thu May 22 06:59:23 2008 +1000 [POWERPC] mpic: Deal with bogus NIRQ in Feature Reporting Register Some chips (like the SoCs from Freescale) report the wrong value in NIRQ and this causes issues if its doesn't match or exceed the value of irq_count. Add a flag that board code can set to just use irq_count instead of FRR[NIRQ]. Eventually we'll add a device tree property with the number of sources. Signed-off-by: Kumar Gala Signed-off-by: Paul Mackerras commit 2ca7633dc73405ee775a2e9b7961b47a38bc882d Author: Roland McGrath Date: Sun May 11 10:40:47 2008 +1000 [POWERPC] Tweak VDSO linker script to avoid upsetting old binutils This works around bugs in older binutils' objcopy. The placement of these sections does not really matter, but it confused the buggy old BFD libraries. Signed-off-by: Roland McGrath Signed-off-by: Paul Mackerras commit 21451155d8858773ee764e9218de2ca0f4d6fc38 Author: Anton Vorontsov Date: Wed Apr 30 00:05:24 2008 +1000 [POWERPC] of/gpio: Use dynamic base allocation Since the "gpiolib: dynamic gpio number allocation" patch was recently merged into Linus' tree (commit 8d0aab2f16c4fa170f32e7a74a52cd0122bbafef), we can use dynamic GPIO base allocation now. This, in turn, removes number of gpios per chip constraint. Signed-off-by: Anton Vorontsov Signed-off-by: Paul Mackerras commit c3ed64295f0fed9131b42122234b1ce4a4a266cf Author: Mike Travis Date: Fri May 16 10:44:39 2008 -0700 x86: change maximum NR_CPUS to 4096 and MAX_NUMNODES to 512 * Change the range of NR_CPUS from 2-255 to 2-4096 and change the range of MAX_NUMNODES (NODES_SHIFT) from 1-32768 to 1-512. * Alter comment about how much each increment of NR_CPUS consumes. (This was found by configuring for 256 cpus and then 512 cpus and dividing the difference by 256.) Signed-off-by: Mike Travis Cc: Andrew Morton Cc: Dave Jones Signed-off-by: Thomas Gleixner commit 873b274a41c0cfe58b2eb0a7722424eb367b905b Author: Dave Jones Date: Thu May 22 13:02:23 2008 -0400 x86: Add Centaur and Transmeta CPUs to PAT whitelist Unconditionally enable PAT support on Centaur and Transmeta CPUs. All known models that advertise PAT have no known errata. Signed-off-by: Dave Jones Signed-off-by: H. Peter Anvin commit b478458aeebfc55fe409abec43794ac72a623c79 Author: Jan Beulich Date: Mon May 12 15:44:39 2008 +0200 x86: avoid re-loading LDT in unrelated address spaces Performance optimization. Signed-off-by: Jan Beulich Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 3843fc2575e3389f4f0ad0420a720240a5746a5d Author: Jeremy Fitzhardinge Date: Fri May 9 12:05:57 2008 +0100 xen: remove support for non-PAE 32-bit Non-PAE operation has been deprecated in Xen for a while, and is rarely tested or used. xen-unstable has now officially dropped non-PAE support. Since Xen/pvops' non-PAE support has also been broken for a while, we may as well completely drop it altogether. Signed-off-by: Jeremy Fitzhardinge Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 0748aca6f0af917591dcfd70dccac770a25d4f71 Author: Thomas Gleixner Date: Tue May 13 10:34:20 2008 +0200 x86: remove useless static current_tsc_khz variable current_tsc_khz is just written by the init code and never used again. Remove it. Signed-off-by: Thomas Gleixner commit bedd78ca786c1d18c2a2785c7e40593dc9c9870f Author: Russell King Date: Sun Apr 20 12:31:29 2008 +0100 [RTC] remove old ARM rtc library code Now that all drivers using it are gone, remove the old ARM RTC library. Acked-by: Alessandro Zummo Signed-off-by: Russell King commit 797276ec9e4d2ee210e11068a2ce815394fe8c58 Author: Russell King Date: Sun Apr 20 12:30:41 2008 +0100 [RTC] rtc-sa1100: remove dependence on asm/rtc.h Move the two functions rtc-sa1100 wants from the old ARM RTC library into the rtc-sa1100 driver. Acked-by: Alessandro Zummo Signed-off-by: Russell King commit 7da285b626860eb6d35e08ae33eba90f0e83ad58 Author: Russell King Date: Sun Apr 20 12:26:48 2008 +0100 [RTC] remove unused asm/rtc.h includes from ARM RTC drivers On ARM, asm/rtc.h only contains definitions for the predecessor to the RTC class support. RTC class drivers should not be including this include. Build tested on at91sam9rl and s3c2410 configurations. Acked-by: Alessandro Zummo Signed-off-by: Russell King commit a190901c6b5f1f4a31681e8c69d811a4f9426e2b Author: Russell King Date: Sun Apr 20 12:08:36 2008 +0100 [RTC] rtc-pl030: add driver, remove old non-rtc lib driver Convert Integrator PL030 RTC driver to use the RTC class interfaces. Acked-by: Alessandro Zummo Signed-off-by: Russell King commit 2dba8518b7761aee3ba757b298efa15dd34eff18 Author: Russell King Date: Sun Apr 20 12:08:04 2008 +0100 [RTC] rtc-pl031: use proper resources, use proper apis, clean up includes Clean up PL031 RTC includes, make driver use proper resource checking, and use amba bus specific accessors. Acked-by: Alessandro Zummo Signed-off-by: Russell King commit f70c5253b41444fd2779e1f76bfe25811d9b8c23 Author: Russell King Date: Sun Apr 20 12:22:36 2008 +0100 [RTC] remove references to asm/mach/time.h asm/mach/time.h is the ARM header file for setting up kernel ticker timekeeping (be that the old jiffy interrupt or the new clocksource.) RTC drivers have no business using this header file, and in fact do not require it. Build tested on at91sam9rl, omap and s3c2410 configurations. Acked-by: Alessandro Zummo Acked-by: Andrew Victor Signed-off-by: Russell King commit 0abbc78a0137fee60ef092f0b20a3d3d7e7e0cc2 Author: Pavel Machek Date: Tue May 20 16:27:17 2008 +0200 x86, aperture_64: use symbolic constants Factor-out common aperture_valid code. Signed-off-by: Pavel Machek Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 2ba4cc319ab26c56205d4f23724c4748a553c845 Author: Ingo Molnar Date: Tue May 13 15:37:05 2008 +0200 rcu: fix nf_conntrack_helper.c build bug Signed-off-by: Ingo Molnar commit 6536d2891ba2c4e837ba8478dc13bb173ed24a23 Author: Dave Kleikamp Date: Wed May 21 10:45:16 2008 -0500 JFS: skip bad iput() call in error path If jfs_iget() fails, we can't call iput() on the returned error. Thanks to Eric Sesterhenn's fuzzer testing for reporting the problem. Signed-off-by: Dave Kleikamp commit aea3bfbcfb0453217c8da6cfdc1b2394d214bee5 Author: Clemens Ladisch Date: Tue May 20 14:22:44 2008 +0200 [ALSA] ice1724: fix MIDI The VT1724 MIDI port is not MPU-401 compatible; remove the hacks that try to make the MPU-401 library work with it, and just use some simple device-specific code. Signed-off-by: Clemens Ladisch Tested-by: Pavel Hofman commit 84d6bd0e272e6eace1e7e4c501f32bddfb665bb2 Author: Andy Whitcroft Date: Tue May 20 11:01:19 2008 +0100 x86: cope with no remap space being allocated for a numa node When allocating the pgdat's for numa nodes on x86_32 we attempt to place them in the numa remap space for that node. However should the node not have any remap space allocated (such as due to having non-ram pages in the remap location in the node) then we will incorrectly place the pgdat at zero. Check we have remap available, falling back to node 0 memory where we do not. Signed-off-by: Andy Whitcroft Acked-by: Mel Gorman Signed-off-by: Ingo Molnar commit b9ada4281c48076bdb252813be24ddb57e17cade Author: Andy Whitcroft Date: Tue May 20 11:01:08 2008 +0100 x86: reinstate numa remap for SPARSEMEM on x86 NUMA systems Recent kernels have been panic'ing trying to allocate memory early in boot, in __alloc_pages: BUG: unable to handle kernel paging request at 00001568 IP: [] __alloc_pages+0x33/0x2cc *pdpt = 00000000013a5001 *pde = 0000000000000000 Oops: 0000 [#1] SMP Modules linked in: Pid: 1, comm: swapper Not tainted (2.6.25 #78) EIP: 0060:[] EFLAGS: 00010246 CPU: 0 EIP is at __alloc_pages+0x33/0x2cc EAX: 00001564 EBX: 000412d0 ECX: 00001564 EDX: 000005c3 ESI: f78012a0 EDI: 00000001 EBP: 00001564 ESP: f7871e50 DS: 007b ES: 007b FS: 00d8 GS: 0000 SS: 0068 Process swapper (pid: 1, ti=f7870000 task=f786f670 task.ti=f7870000) Stack: 00000000 f786f670 00000010 00000000 0000b700 000412d0 f78012a0 00000001 00000000 c105b64d 00000000 000412d0 f78012a0 f7803120 00000000 c105c1c5 00000010 f7803144 000412d0 00000001 f7803130 f7803120 f78012a0 00000001 Call Trace: [] kmem_getpages+0x94/0x129 [] cache_grow+0x8f/0x123 [] ____cache_alloc_node+0xb9/0xe4 [] kmem_cache_alloc_node+0x92/0xd2 [] build_sched_domains+0x536/0x70d [] do_flush_tlb_all+0x0/0x3f [] do_flush_tlb_all+0x0/0x3f [] interleave_nodes+0x23/0x5a [] alternate_node_alloc+0x43/0x5b [] arch_init_sched_domains+0x46/0x51 [] kernel_init+0x0/0x82 [] sched_init_smp+0x10/0xbb [] kernel_init+0x43/0x82 [] kernel_thread_helper+0x7/0x10 Debugging this showed that the NODE_DATA() for nodes other than node 0 were all NULL. Tracing this back showed that the NODE_DATA() pointers were being initialised to each nodes remap space. However under SPARSEMEM remap is disabled which leads to the pgdat's being placed incorrectly at kernel virtual address 0. Leading to the panic when attempting to allocate memory from these nodes. Numa remap was disabled in the commit below. This occured while fixing problems triggered when attempting to boot x86_32 NUMA SPARSEMEM kernels on non-numa hardware. x86: make NUMA work on 32-bit commit 1b000a5dbeb2f34bc03d45ebdf3f6d24a60c3aed The real problem is believed to be related to other alignment issues in the regions blocked out from the bootmem allocator for small memory systems, and has been fixed separately. Therefore re-enable remap for SPARSMEM, which fixes pgdat allocation issues. Testing confirms that SPARSMEM NUMA kernels will boot correctly with this part of the change reverted. Signed-off-by: Andy Whitcroft Acked-by: Mel Gorman Signed-off-by: Ingo Molnar commit 33e5b22285f63ede858c00456f3ffbc2ea79d6cf Author: Werner Almesberger Date: Mon Apr 14 14:26:44 2008 +0200 [ALSA] soc - Fix s3c24xx-i2s LR sync while timer ticks are disabled When timer ticks are disabled when calling sound/soc/s3c24xx/s3c24xx-i2s.c:s3c24xx_snd_lrsync and the LR signal never happens, we loop forever. This has been observed in the following call chain: snd_pcm_common_ioctl1 -> snd_pcm_action_lock_irq -> snd_pcm_action_single -> snd_pcm_do_resume -> soc_pcm_trigger -> s3c24xx_i2s_trigger The patch below changes the timeout mechanism to use udelay, which doesn't need timer ticks. Signed-off-by: Werner Almesberger Signed-off-by: Mark Brown Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit a65f0568f6cc8433877fb71dd7d36b551854b0bc Author: Mark Brown Date: Tue May 13 14:54:43 2008 +0200 [ALSA] soc - Convert Wolfson codec drivers to use bulk DAPM registration Signed-off-by: Mark Brown Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit 3ff3f64ba04b3e5a86dce5239b10268798f68ad7 Author: Mark Brown Date: Mon May 19 12:32:25 2008 +0200 [ALSA] ASoC: core checkpatch cleanups Signed-off-by: Mark Brown Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit 0be9898adb6f58fee44f0fec0bbc0eac997ea9eb Author: Mark Brown Date: Mon May 19 12:31:28 2008 +0200 [ALSA] ASoC: Clarify API for bias configuration Currently the ASoC core configures the bias levels in the system using a callback on codecs and machines called 'dapm_event', passing it PCI style power levels as SNDRV_CTL_POWER_ constants. This is more obscure than it needs to be and has caused confusion to driver authors, especially given that DAPM is also performing power management. Address this by renaming the callback function to 'set_bias_level' and using constants explicitly representing the off, standby, pre-on and on states which DAPM transitions through. Also unexport the API for setting bias level: there are currently no in-tree users of this API other than the core itself and it is likely that the core would need to be extended to cater for any users. Signed-off-by: Mark Brown Cc: Jarkko Nikula Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit 284d115ec9b70d7c38752d10ad393a198db07a4b Author: Russell King Date: Sun Apr 20 17:32:16 2008 +0100 [ARM] pxa: separate PXA25x and PXA27x UDC register definitions The PXA25x and PXA27x USB device controller register definitions are different. Currently, they live side by side in pxa-regs.h, but only one set is available depending on the setting of PXA25x or PXA27x. This means that if we build to support both PXA25x and PXA27x, the PXA27x definitions are unavailable, even to PXA27x specific code. Remove these definitions from pxa-regs.h, and place them in separate files. Include these files where appropriate. Note: according to the dependencies in drivers/usb/gadget/Kconfig, we do not support the UDC on PXA27x nor PXA3xx CPUs, so remove the platform devices from pxa27x.c and pxa3xx.c. Signed-off-by: Russell King commit 02a8e76979f9b439642e67955edb865c112926f6 Author: Russell King Date: Sun Apr 20 17:15:32 2008 +0100 [ARM] pxa: corgibl_limit_intensity build errors If CONFIG_BACKLIGHT_CORGI is not selected, then corgibl_limit_intensity() is not present. However, both corgi_pm.c and sharp_pm.c reference this symbol, resulting in a link error. Wrap the references with the relevant ifdefs, and avoid the resulting NULL pointer dereference by making the code in sharpsl_pm.c also conditional on the config symbol. Signed-off-by: Russell King commit 75540c1ac3c7bd72ac8e092058f9714875239995 Author: eric miao Date: Sun Apr 13 21:44:04 2008 +0100 [ARM] pxa: Add PXA support for PWM API Patch mainly from Eric Miao, with minor edits by rmk. Note: PWM0 and PWM2 share the same register I/O space and clock gating on pxa{27x, 3xx}, thus PWM2 is treated in the driver as a child PWM of PWM0. And this is also true for PWM1/3. Signed-off-by: eric miao Signed-off-by: Russell King commit 1a189b97190d3f0f8cf0379a799d3555b2d648bb Author: Russell King Date: Sun Apr 13 21:41:55 2008 +0100 [ARM] pxa: Add bare bones PWM API Signed-off-by: Russell King commit 1ef6ab75c7deef931d6308af282ed7d8e480e77f Author: Mark Brown Date: Mon May 19 12:31:55 2008 +0200 [ALSA] ASoC: Make CPU and codec DAI operations have same type The CPU and codec DAI operations differ only in the presence of the digital mute operation for the codec so they may as well be the same type. Signed-off-by: Mark Brown Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit b2efbbfba24efc8456d68d5af42d082ab1c2febc Author: Mark Brown Date: Mon May 19 12:30:58 2008 +0200 [ALSA] ASoC: Remove in-code changelogs The overwhelming majority just say 'initial version' anyway. Signed-off-by: Mark Brown Acked-by: Ben Dooks Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit 9ad593f6d326e7a4664e3856520f6c042f82a37f Author: Takashi Iwai Date: Fri May 16 12:34:47 2008 +0200 [ALSA] hda - Fix DMA position inaccuracy Many HD-audio controllers seem inaccurate about the IRQ timing of PCM period updates. This has caused problems on audio quality; e.g. JACK doesn't work with two periods. This patch fixes the problem by checking the current DMA position at IRQ handler and delays the period-update via a workq if it's inaccurate. Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit 02330fbaaded5b603cba112e4bbf62cdadec159a Author: Andreas Mohr Date: Fri May 16 12:18:29 2008 +0200 [ALSA] PCI168 snd-azt3328 Linux driver: another huge update - figured out 'Digital(ly) Enhanced Game Port' functionality, implemented support for it (eliminating gameport polling overhead) - removed optional joystick activation, gameport now enabled unconditionally, since we now support it via the PCI I/O space, not via conflict-prone legacy I/O (which I was thus able to DISABLE now)! - fix playback bug (a muted wave output would get unmuted upon start of playback, of course this is not what we want, thus remember mute state) - implement partial power management: when idle, lower clock rate and disable codec (reduced noise!), and disable gameport circuit when unused - instantiate OPL3 timer, too - much better implementation of snd_azf3328_mixer_write_volume_gradually() - slightly optimized interrupt handling - lots of cleanup This time, I also found a way to verify proper OPL3 operation via MIDI file playback (emulation via synth hardware). Signed-off-by: Andreas Mohr Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit f99a633a151686a599413bef758253dfd04887d1 Author: Jarkko Nikula Date: Thu May 15 11:01:36 2008 +0200 [ALSA] ASoC: Convert N810 machine driver to use gpiolib Use gpiolib since it is now available for OMAPs. Change also references to HW version RX44 to product name N810. Signed-off-by: Jarkko Nikula Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit 1a2505988ea650b61bd07722e99080a40ff27653 Author: Mark Brown Date: Tue May 13 14:58:57 2008 +0200 [ALSA] soc - n810 - Update for bulk DAPM registration APIs Signed-off-by: Mark Brown Cc: Jarkko Nikula Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit acf497f996aa08f03c62a3150abd7939ae23de4c Author: Mark Brown Date: Tue May 13 14:58:30 2008 +0200 [ALSA] soc - davinci-evm - Update for bulk DAPM registration APIs Signed-off-by: Mark Brown Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit 8f3112d7a847c2933a42ce29f17899f585d09106 Author: Mark Brown Date: Tue May 13 14:58:03 2008 +0200 [ALSA] soc - neo1973_wm8753 - Convert to bulk DAPM registration APIs Signed-off-by: Mark Brown Cc: Graeme Gregory Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit 51e6a8411a9440f0fdba6cdd7d779e74f89debc4 Author: Mark Brown Date: Tue May 13 14:57:37 2008 +0200 [ALSA] soc - eti_b1_wm8731 - Convert to use bulk DAPM control registration Signed-off-by: Mark Brown Cc: Frank Mandarino Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit 25191c45aec54cd01b53391bb0b0e1e60377a5fc Author: Mark Brown Date: Tue May 13 14:55:48 2008 +0200 [ALSA] soc - Zaurus - Convert to bulk DAPM registration APIs Signed-off-by: Mark Brown Cc: Richard Purdie Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit d0cc0d3a95cc3c022ee118072d243d3670ec1663 Author: Mark Brown Date: Tue May 13 14:55:22 2008 +0200 [ALSA] soc - tlv320aic3x - Convert to use bulk registration APIs Signed-off-by: Mark Brown Cc: Jarkko Nikula Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit 105f1c28442301237d20b05a3d52d9987614016f Author: Mark Brown Date: Tue May 13 14:52:19 2008 +0200 [ALSA] soc - DAPM - Bulk route registration ASoC codecs and machine drivers that use DAPM routes all cut'n'paste a loop iterating over a null terminated array of routes. Factor out this into a bulk registration function, improving the error reporting for most users, and deprecate the old API to help out of tree users pick up the changes. Signed-off-by: Mark Brown Cc: Graeme Gregory Cc: Frank Mandarino Cc: Jarkko Nikula Cc: Richard Purdie Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit 4ba1327ab8ce179c40862f3dedb4ebaaa491d737 Author: Mark Brown Date: Tue May 13 14:51:19 2008 +0200 [ALSA] soc - DAPM - Add bulk control registration Most SoC drivers cut'n'paste a loop iterating over an array to register their DAPM controls. Provide a function they can call instead. Signed-off-by: Mark Brown Cc: Graeme Gregory Cc: Frank Mandarino Cc: Jarkko Nikula Cc: Richard Purdie Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit ca1f30ad6c3f002d1d9b9355a53b8bbf2fe70588 Author: Clemens Ladisch Date: Tue May 13 09:26:01 2008 +0200 [ALSA] virtuoso: restrict period time to less than 10 s Add a constraint for the period time so that there are less than ten seconds between interrupts so that ALSA does not assume that the device is dead. Signed-off-by: Clemens Ladisch Signed-off-by: Jaroslav Kysela commit d55d7a1cbbd069f8368ec5c67480d319e7b227b9 Author: Clemens Ladisch Date: Tue May 13 09:25:39 2008 +0200 [ALSA] oxygen: add symbols for buffer/period size constraints Introduce symbols for the buffer/period size constraints so that their limits and relationships become clearer. Signed-off-by: Clemens Ladisch Signed-off-by: Jaroslav Kysela commit 4a4bc53bc52978dd6c918531921da925fd047d95 Author: Clemens Ladisch Date: Tue May 13 09:24:39 2008 +0200 [ALSA] oxygen: add PM support Add suspend/resume support. Signed-off-by: Clemens Ladisch Signed-off-by: Jaroslav Kysela commit 92215f3a178080bd9d7c65879499e9474e54d55c Author: Clemens Ladisch Date: Tue May 13 09:23:02 2008 +0200 [ALSA] virtuoso: add xonar_enable_output() Move the setting of the output enable GPIO bit to a separate function. Signed-off-by: Clemens Ladisch Signed-off-by: Jaroslav Kysela commit 75146fc0f9368ea41419792ac8bfdd19273b4473 Author: Clemens Ladisch Date: Tue May 13 09:22:43 2008 +0200 [ALSA] oxygen: separate out hardware initialization code Create separate functions for the code that initializes the hardware, as opposed to initializing internal driver state, so that they can be reused for resume support. Signed-off-by: Clemens Ladisch Signed-off-by: Jaroslav Kysela commit bbbfb5526650cb9d01c5c230a4e3cbbc18474c41 Author: Clemens Ladisch Date: Tue May 13 09:21:48 2008 +0200 [ALSA] oxygen: simplify DAC volume initialization When initializing the DAC volume registers, we can just use the generic volume update functions instead of setting the registers manually. Signed-off-by: Clemens Ladisch Signed-off-by: Jaroslav Kysela commit e58aee95806c9d2bbcfc84cb85ce958e360165ef Author: Clemens Ladisch Date: Tue May 13 09:20:51 2008 +0200 [ALSA] oxygen: save register writes Save the written values of all CMI8788 and AC97 registers and of some of the DAC/ADC registers so that it is possible to restore the register state later. Signed-off-by: Clemens Ladisch Signed-off-by: Jaroslav Kysela commit c13650079ba3bed1c0bdd9bf4a13274be7676ff6 Author: Clemens Ladisch Date: Tue May 13 09:19:53 2008 +0200 [ALSA] oxygen: add symbol for I/O space size Remove another magic number - add a symbol for the size of the PCI I/O range. Signed-off-by: Clemens Ladisch Signed-off-by: Jaroslav Kysela commit d023dc0aa25d6a4f7dd0d109179a2077d22a7ad2 Author: Clemens Ladisch Date: Tue May 13 09:18:27 2008 +0200 [ALSA] oxygen: fix version in MODULE_LICENSE Adjust the MODULE_LICENSE strings to properly reflect the actual license. Signed-off-by: Clemens Ladisch Signed-off-by: Jaroslav Kysela commit c17cf06bfc4417a79d452c266e819c510f6a8344 Author: Takashi Iwai Date: Fri May 9 12:45:56 2008 +0200 [ALSA] Remove unneeded ugly hack for i386 in memalloc.c The hack for dma_alloc_coherent() is no longer needed on 2.6.26 since the base code was improved. Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit f3e9d5d1fd6a164611043c053de585a35d76d6a9 Author: Daniel Mack Date: Thu May 8 15:42:15 2008 +0200 [ALSA] snd_usb_caiaq: add support for 'Session I/O' interface This patch adds suport for Native Instruments new 'Guitar Rig Session I/O' audio hardware. Signed-off-by: Daniel Mack Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit 48008b598bb9cfffbd871512f49d84eb5b885a00 Author: Harvey Harrison Date: Thu May 8 13:01:32 2008 +0200 [ALSA] i2c: cs8427.c use put_unaligned helper Signed-off-by: Harvey Harrison Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit 87af38dafe4f930921b9217c21ec6d72cad56bcc Author: Daniel Jacobowitz Date: Wed May 7 12:05:10 2008 +0200 [ALSA] ac97 - Add virtual master control to VT1616/VT1617A codec. Enable VMASTER for VT1616 / VT1617A codec. Signed-off-by: Daniel Jacobowitz Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit 1894c59fdb63692f5ba2576875cc558b856935ca Author: Tim Niemeyer Date: Mon May 5 14:16:12 2008 +0200 [ALSA] soc - Patch to add debug messages to the neo1973_wm8753 (GTA01) sound driver Signed-off-by: Tim Niemeyer Signed-off-by: Mark Brown Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit 650f6b13318bce6a8d59bfa48fe15b5832623cbc Author: Stephen Rothwell Date: Thu May 1 10:49:18 2008 +0200 [ALSA] sound: fix export symbol typo Signed-off-by: Stephen Rothwell Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit eeec12bf7b7d80d1c9cae5aae0dff7e2f928c64b Author: Graeme Gregory Date: Wed Apr 30 19:27:40 2008 +0200 [ALSA] soc - DAPM - add hook to read state of DAPM widget This adds a hook to read the power state of a DAPM widget, I use this in the gta02 driver to expose certain DAPM widgets in the mixer for ease of audio routing. Signed-off-by: Graeme Gregory Signed-off-by: Mark Brown Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit 54e7e6167d29a4a98207884b2fbd28b0b3fe91f6 Author: Daniel Mack Date: Wed Apr 30 16:20:52 2008 +0200 [ALSA] soc - tlv320aic3x - add GPIO support This patch adds support for AIC3x GPIO lines. They can be configured for many possible functions as well as be driven manually. I also introduced i2c read functionality since the GPIO state register has to be read from hardware every time and can not be served from cache. Signed-off-by: Daniel Mack Signed-off-by: Mark Brown Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit 4f9c16ccfa26691dbb9a5d9e7d5098eb934ccdbe Author: Daniel Mack Date: Wed Apr 30 16:20:19 2008 +0200 [ALSA] soc - tlv320aic3x - revisit clock setup This patch cleans up the clocking setup for aic3x codecs. It drops the dividers table and determines the PLL control values programatically. Under certain conditions, the PLL is disabled entirely which could save some power. Signed-off-by: Daniel Mack Acked-by: Jarkko Nikula Signed-off-by: Mark Brown Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit 711bbdd659b685b45d3f28b29a00f17be6484f38 Author: Ingo Molnar Date: Sat May 17 08:26:25 2008 +0200 rculist.h: fix include in net/netfilter/nf_conntrack_netlink.c this file has rculist dependency but did not explicitly include it, which broke the build. Signed-off-by: Ingo Molnar commit 247ab1a80595100bd7ea61d174f8b7b7e5f8d4bb Author: Huang Weiyi Date: Wed May 14 16:23:00 2008 -0700 rcu: remove duplicated include in kernel/rcupreempt.c Removed duplicated include file in kernel/rcupreempt.c. Signed-off-by: Huang Weiyi Signed-off-by: Andrew Morton Signed-off-by: Ingo Molnar commit e19a98967f49cb63352b3db4818983ea2cec24ba Author: Huang Weiyi Date: Wed May 14 16:23:00 2008 -0700 rcu: remove duplicated include in kernel/rcupreempt_trace.c Removed duplicated include file in kernel/rcupreempt_trace.c Signed-off-by: Huang Weiyi Signed-off-by: Andrew Morton Signed-off-by: Ingo Molnar commit 78b0e0e9b27b62c4b22f05a147f7a80fa58b1ae3 Author: Paul E. McKenney Date: Mon May 12 21:21:06 2008 +0200 RCU, rculist.h: fix list iterators RCU list iterators: should prefetch ever be optimised out with no side-effects, the current version will lose the barrier completely. Pointed-out-by: Linus Torvalds Signed-off-by: Paul E. McKenney Signed-off-by: Ingo Molnar commit d7c0651390b6a03ad53f99faec0ba88109d7191d Author: Paul E. McKenney Date: Mon May 12 21:21:06 2008 +0200 rcu: fix rcu_try_flip_waitack_needed() to prevent grace-period stall The comment was correct -- need to make the code match the comment. Without this patch, if a CPU goes dynticks idle (and stays there forever) in just the right phase of preemptible-RCU grace-period processing, grace periods stall. The offending sequence of events (courtesy of Promela/spin, at least after I got the liveness criterion coded correctly...) is as follows: o CPU 0 is in dynticks-idle mode. Its dynticks_progress_counter is (say) 10. o CPU 0 takes an interrupt, so rcu_irq_enter() increments CPU 0's dynticks_progress_counter to 11. o CPU 1 is doing RCU grace-period processing in rcu_try_flip_idle(), sees rcu_pending(), so invokes dyntick_save_progress_counter(), which in turn takes a snapshot of CPU 0's dynticks_progress_counter into CPU 0's rcu_dyntick_snapshot -- now set to 11. CPU 1 then updates the RCU grace-period state to rcu_try_flip_waitack(). o CPU 0 returns from its interrupt, so rcu_irq_exit() increments CPU 0's dynticks_progress_counter to 12. o CPU 1 later invokes rcu_try_flip_waitack(), which notices that CPU 0 has not yet responded, and hence in turn invokes rcu_try_flip_waitack_needed(). This function examines the state of CPU 0's dynticks_progress_counter and rcu_dyntick_snapshot variables, which it copies to curr (== 12) and snap (== 11), respectively. Because curr!=snap, the first condition fails. Because curr-snap is only 1 and snap is odd, the second condition fails. rcu_try_flip_waitack_needed() therefore incorrectly concludes that it must wait for CPU 0 to explicitly acknowledge the counter flip. o CPU 0 remains forever in dynticks-idle mode, never taking any more hardware interrupts or any NMIs, and never running any more tasks. (Of course, -something- will usually eventually happen, which might be why we haven't seen this one in the wild. Still should be fixed!) Therefore the grace period never ends. Fix is to make the code match the comment, as shown below. With this fix, the above scenario would be satisfied with curr being even, and allow the grace period to proceed. Signed-off-by: Paul E. McKenney Cc: Peter Zijlstra Cc: Josh Triplett Cc: Dipankar Sarma Cc: Signed-off-by: Andrew Morton Signed-off-by: Ingo Molnar commit 10aa9d2cf9878757b003023d33ff90a37aa3044b Author: Franck Bui-Huu Date: Mon May 12 21:21:06 2008 +0200 rculist.h: use the rcu API Make almost all list mutation primitives use rcu_assign_pointer(). The main point of this being readability improvement. Signed-off-by: Franck Bui-Huu Cc: "Paul E. McKenney" Cc: Josh Triplett Signed-off-by: Andrew Morton Signed-off-by: Ingo Molnar commit 82524746c27fa418c250a56dd7606b9d3fc79826 Author: Franck Bui-Huu Date: Mon May 12 21:21:05 2008 +0200 rcu: split list.h and move rcu-protected lists into rculist.h Move rcu-protected lists from list.h into a new header file rculist.h. This is done because list are a very used primitive structure all over the kernel and it's currently impossible to include other header files in this list.h without creating some circular dependencies. For example, list.h implements rcu-protected list and uses rcu_dereference() without including rcupdate.h. It actually compiles because users of rcu_dereference() are macros. Others RCU functions could be used too but aren't probably because of this. Therefore this patch creates rculist.h which includes rcupdates without to many changes/troubles. Signed-off-by: Franck Bui-Huu Acked-by: Paul E. McKenney Acked-by: Josh Triplett Signed-off-by: Andrew Morton Signed-off-by: Ingo Molnar commit 32300751b4079cb5688453baa94711579d4285d5 Author: Paul E. McKenney Date: Mon May 12 21:21:05 2008 +0200 sched: 1Q08 RCU doc update, add call_rcu_sched() Long-delayed update to the RCU documentation, including adding the new call_rcu_sched() and rcu_barrier_sched() APIs. Signed-off-by: Paul E. McKenney Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 2326974df29988181b6b69ed6fbf42b17adf916f Author: Paul E. McKenney Date: Mon May 12 21:21:05 2008 +0200 rcu: add call_rcu_sched() and friends to rcutorture Add entry to rcu_torture_ops allowing the correct barrier function to be used upon exit from rcutorture. Also add torture options for the new call_rcu_sched() API. Signed-off-by: Paul E. McKenney Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 70f12f848d3e981479b4f6f751e73c14f7c13e5b Author: Paul E. McKenney Date: Mon May 12 21:21:05 2008 +0200 rcu: add rcu_barrier_sched() and rcu_barrier_bh() Add rcu_barrier_sched() and rcu_barrier_bh(). With these in place, rcutorture no longer gives the occasional oops when repeatedly starting and stopping torturing rcu_bh. Also adds the API needed to flush out pre-existing call_rcu_sched() callbacks. Signed-off-by: Paul E. McKenney Signed-off-by: Mathieu Desnoyers Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 8db559b83009bed92e1b5dd13a651ff273d9ff62 Author: Paul E. McKenney Date: Mon May 12 21:21:05 2008 +0200 rcu: add memory barriers and comments to rcu_check_callbacks() Add comments to the logic that infers quiescent states when interrupting from either user mode or the idle loop. Also add a memory barrier: it appears that James Huang was in fact onto something, as the scheduler is much less synchronization happy than it once was, so we can no longer rely on its memory barriers in all cases. Signed-off-by: Paul E. McKenney Reported-by: James Huang Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 4446a36ff8c74ac3b32feb009b651048e129c6af Author: Paul E. McKenney Date: Mon May 12 21:21:05 2008 +0200 rcu: add call_rcu_sched() Fourth cut of patch to provide the call_rcu_sched(). This is again to synchronize_sched() as call_rcu() is to synchronize_rcu(). Should be fine for experimental and -rt use, but not ready for inclusion. With some luck, I will be able to tell Andrew to come out of hiding on the next round. Passes multi-day rcutorture sessions with concurrent CPU hotplugging. Fixes since the first version include a bug that could result in indefinite blocking (spotted by Gautham Shenoy), better resiliency against CPU-hotplug operations, and other minor fixes. Fixes since the second version include reworking grace-period detection to avoid deadlocks that could happen when running concurrently with CPU hotplug, adding Mathieu's fix to avoid the softlockup messages, as well as Mathieu's fix to allow use earlier in boot. Fixes since the third version include a wrong-CPU bug spotted by Andrew, getting rid of the obsolete synchronize_kernel API that somehow snuck back in, merging spin_unlock() and local_irq_restore() in a few places, commenting the code that checks for quiescent states based on interrupting from user-mode execution or the idle loop, removing some inline attributes, and some code-style changes. Known/suspected shortcomings: o I still do not entirely trust the sleep/wakeup logic. Next step will be to use a private snapshot of the CPU online mask in rcu_sched_grace_period() -- if the CPU wasn't there at the start of the grace period, we don't need to hear from it. And the bit about accounting for changes in online CPUs inside of rcu_sched_grace_period() is ugly anyway. o It might be good for rcu_sched_grace_period() to invoke resched_cpu() when a given CPU wasn't responding quickly, but resched_cpu() is declared static... This patch also fixes a long-standing bug in the earlier preemptable-RCU implementation of synchronize_rcu() that could result in loss of concurrent external changes to a task's CPU affinity mask. I still cannot remember who reported this... Signed-off-by: Paul E. McKenney Signed-off-by: Mathieu Desnoyers Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 8b09dee67f484e9b42114b1a1f068e080fd7aa56 Author: Steven Rostedt Date: Mon May 12 21:21:05 2008 +0200 rcupreempt: remove duplicate prototypes rcu_batches_completed and rcu_patches_completed_bh are both declared in rcuclassic.h and rcupreempt.h. This patch removes the extra prototypes for them from rcupdate.h. rcu_batches_completed_bh is defined as a static inline in the rcupreempt.h header file. Trying to export this as EXPORT_SYMBOL_GPL causes linking problems with the powerpc linker. There's no need to export a static inlined function. Modules must be compiled with the same type of RCU implementation as the kernel they are for. Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar commit a8ac1ae3a2a8ceb5bc1d334a502d42f59b91379c Merge: b4ef290... b8291ad... Author: Ingo Molnar Date: Mon May 19 09:23:07 2008 +0200 Merge branch 'linus' into x86/pat commit 0bec0bba7a507bdaf07312fcabdc00b5576abb32 Author: Jonathan Corbet Date: Thu May 15 09:25:03 2008 -0600 pcmcia: cdev lock_kernel() pushdown Signed-off-by: Jonathan Corbet commit 0911810755fc9f15659cc3cb43912633b90027a0 Author: Jonathan Corbet Date: Thu May 15 09:21:33 2008 -0600 cosa: cdev lock_kernel() pushdown Signed-off-by: Jonathan Corbet commit 3db633ee352bfe20d4a2b0c3c8a46ce31a6c7149 Author: Jonathan Corbet Date: Thu May 15 09:21:02 2008 -0600 i2c: cdev lock_kernel() pushdown Signed-off-by: Jonathan Corbet commit 5119e92efc733d730b34f9605a5ae61fdc4bf649 Author: Jonathan Corbet Date: Thu May 15 09:12:01 2008 -0600 x86: cdev lock_kernel() pushdown Push the cdev lock_kernel() call down into the x86 msr and cpuid drivers. Signed-off-by: Jonathan Corbet commit 1fa984b583a809423ddb1d88fa46484071f85f80 Author: Jonathan Corbet Date: Thu May 15 09:11:26 2008 -0600 sh: cdev lock_kernel() pushdown Push the cdev lock_kernel() call down into the sh gio driver. Signed-off-by: Jonathan Corbet commit 7558da942e51933b5e6aa5e851d4da1df0cd6752 Author: Jonathan Corbet Date: Thu May 15 09:10:50 2008 -0600 mips: cdev lock_kernel() pushdown Push the cdev lock_kernel() call into MIPS-specific drivers. Signed-off-by: Jonathan Corbet commit 0c401df37ef9f45f35390a5574e24cbf3f916acf Author: Jonathan Corbet Date: Thu May 15 09:10:18 2008 -0600 cris: cdev lock_kernel() pushdown Push the cdev lock_kernel() call into cris drivers. Signed-off-by: Jonathan Corbet commit 75bd2ef1457998791cfc89cd59927574488fc22a Author: Jonathan Corbet Date: Thu May 15 09:09:23 2008 -0600 bsg: cdev lock_kernel() pushdown Push the cdev lock_kernel call into bsg_open(). Signed-off-by: Jonathan Corbet commit b4ef290d7c3abd1bf8cefcf8def359537fda7f31 Merge: 77b52b4... f26a398... Author: Thomas Gleixner Date: Sun May 18 11:54:43 2008 +0200 Merge branch 'linus' into x86/pat commit 538f0fd0f210c2ce5c585799f18d0e5c7cf6155e Merge: 3bb6fbf... f26a398... Author: Thomas Gleixner Date: Sat May 17 17:12:24 2008 +0200 Merge branch 'linus' into x86/gart commit dedd4915af40cff6614707c50dcae43d17beadec Author: Ingo Molnar Date: Sat May 17 08:28:33 2008 +0200 bitops: fix build in struct thread_info we can move flags from u32 to natural size - assembly code uses offsetof. Signed-off-by: Ingo Molnar commit 493d35863dbb692c38c1415fd83d88dfb902ae37 Author: Jeremy Kerr Date: Wed May 14 16:22:58 2008 -0700 mutex-debug: check mutex magic before owner Currently, the mutex debug code checks the lock->owner before lock->magic, so a corrupt mutex will most likely result in failing the owner check, rather than the magic check. This change to debug_mutex_unlock does the magic check first, so we have a better idea of what breaks. Signed-off-by: Jeremy Kerr Acked-by: Peter Zijlstra Signed-off-by: Andrew Morton Signed-off-by: Ingo Molnar commit 09e67ca2c523544e6b38aa570a5f62a0cf20b87b Author: Stephen Rothwell Date: Fri May 16 11:57:45 2008 +1000 [POWERPC] Move of_device_get_modalias to drivers/of Commit 140b932f8cb6cced10b96860651a198b1b89cbb9 ("Create modalias file in sysfs for of_platform bus") needs this to avoid breaking the sparc builds. Just move the code and add whitespace around some binary operators. Signed-off-by: Stephen Rothwell Acked-by: David S. Miller Signed-off-by: Paul Mackerras commit 7bc228b1ef71f395aeb89bdf81bf95556b08b374 Author: Robert P. J. Day Date: Thu May 15 05:16:44 2008 +1000 [POWERPC] Get most of ioctl.h content from Now that allows overriding of the most commonly changed macros, take advantage of that. Signed-off-by: Robert P. J. Day Signed-off-by: Paul Mackerras commit 0b2cca804ee40495bc92449c3e22f3c3a3f2977a Author: Scott Wood Date: Tue Apr 29 01:38:13 2008 +1000 [POWERPC] Add 6xx-style HID0_SLEEP support. This adds a function to put a 6xx/7xx/7xxx/83xx family CPU into sleep mode, and return after an interrupt has occurred. It expects to be called with interrupts disabled, and returns with interrupts disabled. Interrupts are enabled while the processor is asleep, but the interrupt that wakes the processor is not handled; it is still pending when this function returns. Signed-off-by: Scott Wood Signed-off-by: Guennadi Liakhovetski Signed-off-by: Paul Mackerras commit a560643e21e1ac10f7398b45111aecdd7f47a4a5 Author: Paul Mackerras Date: Wed May 14 14:30:48 2008 +1000 [POWERPC] Defer processing of interrupts when the CPU wakes from sleep mode This provides a way to defer processing of an interrupt that wakes the processor out of sleep mode. On 32-bit platforms that use an interrupt to wake the processor, we have to have interrupts enabled in hardware at the point where we go to sleep, otherwise the processor will never wake up. However, because interrupts are logically disabled at this point, we don't want to process the interrupt straight away. This is handled by setting the _TLF_SLEEPING flag. When we get an interrupt and _TLF_SLEEPING is set, we firstly clear the MSR_EE (external interrupt enable) bit in the saved MSR value, and secondly we then return to the address in the link register, like we do for _TLF_NAPPING, but without actually handling the interrupt. Note that this is handled somewhat differently on powerbooks, so this new code will only be used on non-Apple machines. Signed-off-by: Paul Mackerras commit fcff474ea5cb17ff015aa40e92ed86fede41f1e2 Merge: 541b275... f26a398... Author: Paul Mackerras Date: Fri May 16 23:13:42 2008 +1000 Merge branch 'linux-2.6' into powerpc-next commit 541b2755c2ef7dd2242ac606c115daa11e43ef69 Author: Michael Ellerman Date: Thu May 8 14:27:23 2008 +1000 [POWERPC] Fix sparse warnings in arch/powerpc/platforms/pseries Don't return void in pseries/iommu.c Make mce_data_buf static in pseries/ras.c Make things static in pseries/rtasd.c Make things static in pseries/setup.c vtermno may as well be static in platforms/pseries/lpar.c Signed-off-by: Michael Ellerman Signed-off-by: Paul Mackerras commit 3ff1999b2c84e1486e80fbd3ca12b1663dc3408b Author: Michael Ellerman Date: Thu May 8 14:27:21 2008 +1000 [POWERPC] pseries/firmware.c should include pseries/pseries.h The declaration for fw_feature_init() is in pseries.h and implemented in firmware.c, so the latter should include the former. Signed-off-by: Michael Ellerman Signed-off-by: Paul Mackerras commit 1c21a2937b1f342a8f5d580203c3396557d53b6e Author: Michael Ellerman Date: Thu May 8 14:27:19 2008 +1000 [POWERPC] Fix sparse warnings in arch/powerpc/kernel Make a few things static in lparcfg.c Make init and exit routines static in rtas_flash.c Make things static in rtas_pci.c Make some functions static in rtas.c Make fops static in rtas-proc.c Remove unneeded extern for do_gtod in smp.c Make clocksource_init() static in time.c Make last_tick_len and ticklen_to_xs static in time.c Move the declaration of the pvr per-cpu into smp.h Make kexec_smp_down() and kexec_stack static in machine_kexec_64.c Don't return void in arch_teardown_msi_irqs() in msi.c Move declaration of GregorianDay()into asm/time.h Signed-off-by: Michael Ellerman Signed-off-by: Paul Mackerras commit 1c8950ff87de950a3b6ccfb26650fc0a56278836 Author: Michael Ellerman Date: Thu May 8 14:27:17 2008 +1000 [POWERPC] Make cpus_in_xmon static and remove extern mess from hvc_console.c This is a little messier than I'd like because xmon.h only exists on powerpc and we can't have a static inline and an extern declaration visible at the same time. Signed-off-by: Michael Ellerman Signed-off-by: Paul Mackerras commit 9f1067c2d98ac1c43f0c82892f5647774a6ac759 Author: Michael Ellerman Date: Thu May 8 14:27:16 2008 +1000 [POWERPC] Fix sparse warnings in xmon.c warning: Using plain integer as NULL pointer warning: Using plain integer as NULL pointer warning: symbol 'excprint' was not declared. Should it be static? warning: symbol 'prregs' was not declared. Should it be static? warning: symbol 'cacheflush' was not declared. Should it be static? warning: symbol 'read_spr' was not declared. Should it be static? warning: symbol 'write_spr' was not declared. Should it be static? warning: symbol 'super_regs' was not declared. Should it be static? warning: symbol 'mread' was not declared. Should it be static? warning: symbol 'mwrite' was not declared. Should it be static? warning: symbol 'byterev' was not declared. Should it be static? warning: symbol 'memex' was not declared. Should it be static? warning: symbol 'bsesc' was not declared. Should it be static? warning: symbol 'dump' was not declared. Should it be static? warning: symbol 'prdump' was not declared. Should it be static? warning: symbol 'generic_inst_dump' was not declared. Should it be static? warning: symbol 'ppc_inst_dump' was not declared. Should it be static? warning: symbol 'memops' was not declared. Should it be static? warning: symbol 'memdiffs' was not declared. Should it be static? warning: symbol 'memlocate' was not declared. Should it be static? warning: symbol 'memzcan' was not declared. Should it be static? warning: symbol 'proccall' was not declared. Should it be static? warning: symbol 'scannl' was not declared. Should it be static? warning: symbol 'hexdigit' was not declared. Should it be static? warning: symbol 'flush_input' was not declared. Should it be static? warning: symbol 'inchar' was not declared. Should it be static? warning: symbol 'take_input' was not declared. Should it be static? warning: symbol 'xmon_init' was not declared. Should it be static? Signed-off-by: Michael Ellerman Signed-off-by: Paul Mackerras commit af3b74df1b2fa4dbfb0534818167f6393f5ae7c7 Author: Michael Ellerman Date: Thu May 8 14:27:15 2008 +1000 [POWERPC] Move xmon_irq() declaration into xmon.h The typdef for irqreturn_t was moved into its own header a while back, so there's no reason we can't move xmon_irq() into xmon.h now. Signed-off-by: Michael Ellerman Signed-off-by: Paul Mackerras commit 7d9e793463d854073f5c0dedea991a5b63336d6a Author: Michael Ellerman Date: Thu May 8 14:27:13 2008 +1000 [POWERPC] Add a declaration for xmon() Usually we call xmon() via debugger(), so this could be static. Sometimes when debugging it's nice to be able to call xmon() directly though, so add a declaration. Signed-off-by: Michael Ellerman Signed-off-by: Paul Mackerras commit 8fa29d22dcb2aec97f1a508cd3741c6e0b4a9434 Author: Michael Ellerman Date: Thu May 8 14:27:11 2008 +1000 [POWERPC] sysdev/mpic_msi.c should include sysdev/mpic.h Some of the routines defined in mpic_msi.c are declared mpic.h, so the former should include the latter. Signed-off-by: Michael Ellerman Signed-off-by: Paul Mackerras commit c884116ac375c5dd137109b58acaa9cf50164796 Author: Michael Ellerman Date: Thu May 8 14:27:09 2008 +1000 [POWERPC] Remove duplicate variable definitions in mm/tlb_64.c Somewhere along the way (e28f7faf05159f1cfd564596f5e6178edba6bd49, "Four level pagetables for ppc64") we ended up with duplicate definitions for pte_freelist_cur and pte_freelist_force_free. Somehow this compiles, but it would be better to just have one definition for each. The two definitions we end up with can be static too! Signed-off-by: Michael Ellerman Signed-off-by: Paul Mackerras commit 572fb578de59efaaa8d197b0183db43b1128a06e Author: Michael Ellerman Date: Thu May 8 14:27:08 2008 +1000 [POWERPC] Move declaration of tce variables into mmu-hash64.h ... instead of having extern declarations in a .c file. Signed-off-by: Michael Ellerman Signed-off-by: Paul Mackerras commit 09de9ff872bca25ba717a7075c9ee49b1bdb56d2 Author: Michael Ellerman Date: Thu May 8 14:27:07 2008 +1000 [POWERPC] Fix sparse warnings in arch/powerpc/mm Make two vmemmap helpers static in init_64.c Make stab variables static in stab.c Make psize defs static in hash_utils_64.c Signed-off-by: Michael Ellerman Signed-off-by: Paul Mackerras commit 5f25f06529ecb4b20efc7ba00de599f5b9f4b63c Author: Michael Ellerman Date: Thu May 8 14:27:07 2008 +1000 [POWERPC] Move declaration of init_bootmem_done into system.h ... instead of having an extern declaration in a .c file. Signed-off-by: Michael Ellerman Signed-off-by: Paul Mackerras commit 683307da07afd3a7ee55269ee8cb70c8053b0923 Author: Remi Machet Date: Thu May 1 10:40:44 2008 +1000 [POWERPC] Create of_buses for MV64x60 devices For each mv64360 entry in the OpenFirmware database, add the registration of an of_bus to take care of devices connected to the MV64x60 asynchronous devices controller. This change makes it possible for those devices to be detected by drivers that support the of_platform without having a custom call for each of them in the board file. Signed-off-by: Remi Machet Signed-off-by: Paul Mackerras commit 663276b7c6340e755ed62bed67a2b96f4fc3d513 Author: Kumar Gala Date: Wed Apr 30 20:44:53 2008 +1000 [POWERPC] Set lower flag bits in regs->trap to indicate debug level exception We use the low bits of regs->trap as flag bits. We already indicate critical and machine check level exceptions via this mechanism. Extend it to indicate debug level exceptions. Signed-off-by: Kumar Gala Signed-off-by: Paul Mackerras commit 7a10174eeafe737f3ccfcece5bdff749c3b044e0 Author: Roland McGrath Date: Mon Apr 28 17:30:37 2008 +1000 [POWERPC] Define and use TLF_RESTORE_SIGMASK Replace TIF_RESTORE_SIGMASK with TLF_RESTORE_SIGMASK and define our own set_restore_sigmask() function. This saves the costly SMP-safe set_bit operation, which we do not need for the sigmask flag since TIF_SIGPENDING always has to be set too. Signed-off-by: Roland McGrath Signed-off-by: Paul Mackerras commit 140b932f8cb6cced10b96860651a198b1b89cbb9 Author: Olaf Hering Date: Thu Apr 24 23:16:00 2008 +1000 [POWERPC] Create modalias file in sysfs for of_platform bus Create /sys/bus/of_platform/devices/*/modalias file to allow autoloading of modules. Modalias files are already present for many other bus types. This adds also a newline to the devspec files. Also create a devspec file for mac-io devices. They were created as a side effect. Use correct buffer size for mac-io modalias buffer. Tested on iBook1 and Efika. Signed-off-by: Olaf Hering Signed-off-by: Paul Mackerras commit 9d5f525b86453da921360727112161254accc8c1 Author: Roel Kluin <12o3l@tiscali.nl> Date: Thu Apr 24 09:03:02 2008 +1000 [POWERPC] mpic_u3msi: Failed allocation unnoticed bitmap_find_free_region(), called by mpic_msi_alloc_hwirqs() may return signed, but hwirq is unsigned. A failed allocation remains unnoticed. Signed-off-by: Roel Kluin <12o3l@tiscali.nl> Signed-off-by: Paul Mackerras commit ee1a08f963c5abb5ec2d8c5defffecee7c3f84c8 Author: Roel Kluin <12o3l@tiscali.nl> Date: Thu Apr 24 08:32:26 2008 +1000 [POWERPC] mpic_pasemi_msi: Failed allocation unnoticed bitmap_find_free_region(), called by mpic_msi_alloc_hwirqs() may return signed, but hwirq is unsigned. A failed allocation remains unnoticed. Signed-off-by: Roel Kluin <12o3l@tiscali.nl> Signed-off-by: Paul Mackerras commit 54ef0ec22a39071a4e7fbedd201cecac9ac6e8a7 Author: Becky Bruce Date: Fri May 2 14:40:38 2008 -0500 [POWERPC] Delete unused fec_8xx net driver This driver has been superseded by fs_enet and is no longer in use. Signed-off-by: Becky Bruce Signed-off-by: Kumar Gala commit b2e03ca7485cac033a0667d9e45e28d32fdee9a5 Author: Alexey Dobriyan Date: Tue May 13 08:22:10 2008 -0500 JFS: switch to seq_files Signed-off-by: Alexey Dobriyan Signed-off-by: Dave Kleikamp commit 88f85a55c0645c2b7e03bf34d2a90eddf6de34fa Author: Marcin Slusarz Date: Mon May 12 16:42:43 2008 -0500 JFS: 0 is not valid errno value so return NULL from jfs_lookup Signed-off-by: Marcin Slusarz Signed-off-by: Dave Kleikamp Cc: jfs-discussion@lists.sourceforge.net Cc: Alexander Viro commit 0327318445d55808991a63137cfb698a90ab6adf Author: Yinghai Lu Date: Fri Apr 18 17:49:15 2008 -0700 x86_64: simplify the memtest parameter setting use CONFIG_MEMTEST only. if it is set, will have memtest=0 (disabled) need to have memtest=4 in command line to test more patterns. Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 205f93288093df69f9ab5f6981aef27b91088b28 Author: Dave Jones Date: Mon May 5 17:52:52 2008 -0400 x86: add new cache descriptor The latest rev of Intel doc AP-485 details a new cache descriptor that we don't yet support. A 6MB 24-way assoc L2 cache. Signed-off-by: Dave Jones Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 5cb04df8d3f03e37a19f2502591a84156be71772 Author: Ingo Molnar Date: Sun May 4 19:49:04 2008 +0200 x86: defconfig updates refresh 32-bit defconfig too, and update the 64-bit configs as well, the defconfig should be much more useful by default, so most of the updates are the enabling of various options. Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit b5d958ea66ac11b1190c24f042f517adf9229a98 Author: Auke Kok Date: Wed Apr 9 13:17:39 2008 -0700 e1000e: set CONFIG_E1000E=y in x86 defconfigs This adds to the already default CONFIG_E1000=y in these files. Signed-off-by: Auke Kok Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 622e3f28e50fe30cc199c735440cd7c75e0033b0 Author: Cyrill Gorcunov Date: Sun May 4 19:57:19 2008 +0400 x86: 64-bit defconfig remake The current x86_64_defconfig contains a number of nonexistent symbols. Lets fix it. Signed-off-by: Cyrill Gorcunov Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit f59a9310b97879159ef4d25227bc270278f1ee71 Author: Hiroshi Shimamoto Date: Fri May 2 16:44:52 2008 -0700 x86: nmi and irq counters are unsigned in nmi_64.c __nmi_count, apic_timer_irqs and irq0_irqs are unsigned. Signed-off-by: Hiroshi Shimamoto Signed-off-by: Thomas Gleixner Signed-off-by: Ingo Molnar commit f784946ded3e734524d1f48a6a8286b8a152c3b9 Author: Hiroshi Shimamoto Date: Fri May 2 16:45:08 2008 -0700 x86: use per_cpu data in nmi_32 use per_cpu for per CPU data. Signed-off-by: Hiroshi Shimamoto Signed-off-by: Thomas Gleixner Signed-off-by: Ingo Molnar commit 3bb6fbf9969a8bbe4892968659239273d092e78a Author: Pavel Machek Date: Tue Apr 15 12:43:57 2008 +0200 x86 gart: factor out common code Cleanup gart handling on amd64 a bit: move common code into enable_gart_translation , and use symbolic register names where appropriate. Signed-off-by: Pavel Machek Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 330fce23dab6e6a3d1979e55f27aba4c0c301331 Author: Yinghai Lu Date: Sat Apr 19 01:31:45 2008 -0700 x86: reserve dma32 early for gart fix we can use free_bootmem() directly. Signed-off-by: Yinghai Lu Signed-off-by: Thomas Gleixner Signed-off-by: Ingo Molnar commit 55c0d721df80dcc505dc888e85d4ca51ea150ce9 Author: Yinghai Lu Date: Sat Apr 19 01:31:11 2008 -0700 x86: clean up aperture_64.c 1. use symbolic register names where appropriate. 2. num to bus or slot changing 3. handle for new opteron for bus other than 0 Signed-off-by: Yinghai Lu Signed-off-by: Thomas Gleixner Signed-off-by: Ingo Molnar commit 7677b2ef6c0c4fddc84f6473f3863f40eb71821b Author: Yinghai Lu Date: Mon Apr 14 20:40:37 2008 -0700 x86_64: allocate gart aperture from 512M because we try to reserve dma32 early, so we have chance to get aperture from 64M. with some sequence aperture allocated from RAM, could become E820_RESERVED. and then if doing a kexec with a big kernel that uncompressed size is above 64M we could have a range conflict with still using gart. So allocate gart aperture from 512M instead. Also change the fallback_aper_order to 5, because we don't have chance to get 2G or 4G aperture. Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 8c9fd91a0dc503f085169d44f4360be025f75224 Author: Yinghai Lu Date: Sun Apr 13 18:42:31 2008 -0700 x86: checking aperture size order some systems are using 32M for gart and agp when memory is less than 4G. Kernel will reject and try to allcate another 64M that is not needed, and we will waste 64M of perfectly good RAM. this patch adds a workaround by checking aper_base/order between NB and agp bridge. If they are the same, and memory size is less than 4G, it will allow it. Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 1edc1ab3f68168ec6815e6d630f38948a6da005a Author: Yinghai Lu Date: Sun Apr 13 01:11:41 2008 -0700 x86: agp_gart size checking for buggy device while looking at Rafael J. Wysocki's system boot log, I found a funny printout: Node 0: aperture @ de000000 size 32 MB Aperture too small (32 MB) AGP bridge at 00:04:00 Aperture from AGP @ de000000 size 4096 MB (APSIZE 0) Aperture too small (0 MB) Your BIOS doesn't leave a aperture memory hole Please enable the IOMMU option in the BIOS setup This costs you 64 MB of RAM Mapping aperture over 65536 KB of RAM @ 4000000 ... agpgart: Detected AGP bridge 20 agpgart: Aperture pointing to RAM agpgart: Aperture from AGP @ de000000 size 4096 MB agpgart: Aperture too small (0 MB) agpgart: No usable aperture found. agpgart: Consider rebooting with iommu=memaper=2 to get a good aperture. it means BIOS allocated the correct gart on the NB and AGP bridge, but because a bug in the silicon (the agp bridge reports the wrong order, it wants 4G instead) the kernel will reject that allocation. Also, because the size is only 32MB, and we try to get another 64M for gart, late fix_northbridge can not revert that change because it still reads the wrong size from agp bridge. So try to double check the order value from the agp bridge, before calling aperture_valid(). [ mingo@elte.hu: 32-bit fix. ] Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit aa134f1b09df6beaa4d031a50d5fda1f3cebce6c Author: Pavel Machek Date: Tue Apr 8 10:49:03 2008 +0200 x86: iommu: use symbolic constants, not hardcoded numbers Move symbolic constants into gart.h, and use them instead of hardcoded constant. Signed-off-by: Pavel Machek Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit f8096f92b87d81c55ed63964d27baa9ce5ffe508 Author: Jan Beulich Date: Tue Apr 22 16:27:29 2008 +0100 x86: separate cmpxchg8b checking from PAE checking .. allowing the former to be use in non-PAE kernels, too. Signed-off-by: Jan Beulich Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 77b52b4c5c66175553ee59eb43f74366f1e54bde Author: Venki Pallipadi Date: Mon May 5 19:09:10 2008 -0700 x86: add "debugpat" boot option enable debug messages by a boot option "debugpat". Signed-off-by: Venkatesh Pallipadi Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 988f7b5789ccf5cfed14c72e28573a49f0cb4809 Author: venkatesh.pallipadi@intel.com Date: Tue Mar 18 17:00:22 2008 -0700 x86: PAT export resource_wc in pci sysfs For the ranges with IORESOURCE_PREFETCH, export a new resource_wc interface in pci /sysfs along with resource (which is uncached). Signed-off-by: Venkatesh Pallipadi Signed-off-by: Suresh Siddha Acked-by: Jesse Barnes Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 403d8efc94cd02ae36e7db13c4edf1d06d7b7fac Author: Thomas Gleixner Date: Mon May 5 18:13:50 2008 +0200 x86: irq_32 move 4kstacks code to one place Move the 4KSTACKS related code to one place. This allows to un#ifdef do_IRQ() and share the executed on stack for the stack overflow printk and the softirq call. Signed-off-by: Thomas Gleixner Signed-off-by: Ingo Molnar commit de9b10af1287bf25b9c0433de53a2e95ef611aa7 Author: Thomas Gleixner Date: Mon May 5 15:58:15 2008 +0200 x86: janitor stack overflow warning patch Add KERN_WARNING to the printk as this could not be done in the original patch, which allegedly only moves code around. Un#ifdef do_IRQ. Signed-off-by: Thomas Gleixner Signed-off-by: Ingo Molnar commit 04b361abfdc522239e3a071f3afdebf5787d9f03 Author: Andi Kleen Date: Mon May 5 12:36:38 2008 +0200 i386: Execute stack overflow warning on interrupt stack v2 Previously the reporting printk would run on the process stack, which risks overflow an already low stack. Instead execute it on the interrupt stack. This makes it more likely for the printk to make it actually out. It adds one not taken test/branch more to the interrupt path when stack overflow checking is enabled. We could avoid that by duplicating more code, but that seemed not worth it. Based on an observation by Eric Sandeen. v2: Fix warnings in some configs Signed-off-by: Andi Kleen Cc: mingo@elte.hu Signed-off-by: Thomas Gleixner Signed-off-by: Ingo Molnar commit ce17833183bf0a08ce3d174a2088eff0a06f2080 Author: Alan Mayer Date: Wed Apr 16 15:17:20 2008 -0500 x86: change FIRST_SYSTEM_VECTOR to a variable, fix Fixes the build error introduced by my FIRST_SYSTEM_VECTOR patch Signed-off-by: Alan Mayer Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 305b92a2323eeaa4b481f409d54f778dd7e21a46 Author: Alan Mayer Date: Tue Apr 15 15:36:56 2008 -0500 x86: change FIRST_SYSTEM_VECTOR to a variable The SGI UV system needs several more system vectors than a vanilla x86_64 system. Rather than burden the other archs with extra system vectors that they don't use, change FIRST_SYSTEM_VECTOR to a variable, so that it can be dynamic. Signed-off-by: Alan Mayer Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 1a331957efd214fc3a84f70956dfaec65e70c031 Author: Thomas Gleixner Date: Sat May 3 00:30:50 2008 +0200 x86: move eisa_set_level_irq declaration to header Signed-off-by: Thomas Gleixner Signed-off-by: Ingo Molnar commit 88a83350bc1955fa9d8fca059e19bc360fcef2ba Author: Thomas Gleixner Date: Fri May 2 23:19:26 2008 +0200 x86: declare setup_apic_routing Global functions need a prototype. Signed-off-by: Thomas Gleixner Signed-off-by: Ingo Molnar commit 22067d4501bfb47c8ca34144f68fad734178914d Author: Thomas Gleixner Date: Fri May 2 22:14:44 2008 +0200 x86: unify irq.h Not much difference in those files. Signed-off-by: Thomas Gleixner Signed-off-by: Ingo Molnar commit 22dc12d1f694b9af88e616ab758ff90c69d0fc83 Author: Thomas Gleixner Date: Fri May 2 22:10:39 2008 +0200 x86: unify hwirq.h Signed-off-by: Thomas Gleixner Signed-off-by: Ingo Molnar commit 97e7b6f54c0d66586a658e985630cd63040311fb Author: Thomas Gleixner Date: Fri May 2 22:02:25 2008 +0200 x86: unify apic interrupt function declarations Signed-off-by: Thomas Gleixner Signed-off-by: Ingo Molnar commit 0bc471d93051a19545257909bc2ed2ad3b389b54 Author: Thomas Gleixner Date: Fri May 2 21:55:12 2008 +0200 x86: move BUILD_IRQ macro magic to i8259_64.c i8259_64.c is the only place which uses those macros. Signed-off-by: Thomas Gleixner Signed-off-by: Ingo Molnar commit 9b7dc567d03d74a1fbae84e88949b6a60d922d82 Author: Thomas Gleixner Date: Fri May 2 20:10:09 2008 +0200 x86: unify interrupt vector defines The interrupt vector defines are copied 4 times around with minimal differences. Move them all into asm-x86/irq_vectors.h Signed-off-by: Thomas Gleixner Signed-off-by: Ingo Molnar commit 2e0884362d1fe36ef2d673d763d6ce35e2044e66 Author: Thomas Gleixner Date: Fri May 2 19:00:30 2008 +0200 x86: move common declarations to hw_irq.h Move the common declarations from hw_irq_32/64 into hw_irq.h Signed-off-by: Thomas Gleixner Signed-off-by: Ingo Molnar commit 6859a8402945cf1d74af75a2e1aa4e327a506ab4 Author: Alan Mayer Date: Wed Mar 26 16:11:31 2008 -0500 x86: resize NR_IRQS for large machines On machines with very large numbers of cpus, tables that are dimensioned by NR_IRQS get very large, especially the irq_desc table. They are also very sparsely used. When the cpu count is > MAX_IO_APICS, use MAX_IO_APICS to set NR_IRQS, otherwise use NR_CPUS. Signed-off-by: Alan Mayer Reviewed-by: Christoph Lameter Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 41b3eae669fb1ef6ae4acaa937b4e4617a1aa078 Author: Jan Beulich Date: Tue Apr 22 16:29:26 2008 +0100 x86: minor polishing to top-level arch Makefile Use build target when creating compatibility link, and use $(boot) where possible. Signed-off-by: Jan Beulich Signed-off-by: Ingo Molnar commit 8a6c160a2a13d82c75a50af7282b906cce948df5 Author: Ingo Molnar Date: Wed Apr 30 22:13:44 2008 +0200 x86: redo thread_info.h change redo Roland's "signals: x86 TS_RESTORE_SIGMASK" ontop of the unified thread_info.h file. Signed-off-by: Ingo Molnar commit b84200b3a0fafa167185201319940d8df62a8c7b Author: Christoph Lameter Date: Mon Apr 28 18:52:40 2008 -0700 x86: thread_info: merge thread_info allocation Make them similar so that both use THREAD_ORDER and THREAD_FLAGS and have a THREAD_SIZE definition that is setup in asm/page_xx.h Signed-off-by: Christoph Lameter Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 00c1bb133cf351fa3904b00a48a9cf535d018de6 Author: Christoph Lameter Date: Mon Apr 28 18:52:39 2008 -0700 x86: thread_info: merge tif masks The TIF masks are basically the same. x86_32 also has _TIF_SYSCALL_EMU which is zero for the 64 bit case. The tif masks become the same. x86_64 has an additional _TIF_DONOTIFY_MASK. Does not hurt for the 32 bit case since it is only used in x86_64 arch code. Signed-off-by: Christoph Lameter Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit e57549b017552f7a493b366f5ccd4781801083e4 Author: Christoph Lameter Date: Mon Apr 28 18:52:38 2008 -0700 x86: thread_info: merge TIF_ flags. Both TIF lists are essentially the same. x86_32 also has TIF_SYSCALL_EMU which must be undefined for the 64 bit case. Signed-off-by: Christoph Lameter Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 24e2de6e28a453cd114b06215df2f9931cd0c342 Author: Christoph Lameter Date: Mon Apr 28 18:52:37 2008 -0700 x86: thread_info: PREEMPT_ACTIVE Same for both 32 and 64 bit so simply put it in to the common area. Signed-off-by: Christoph Lameter Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 3351cc03c0762353225a79507e38db4c1e656d52 Author: Christoph Lameter Date: Mon Apr 28 18:52:36 2008 -0700 x86: threadinfo: merge INIT_THREAD_INFO Both definitions are the same. So move to common x86 area. Signed-off-by: Christoph Lameter Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 006c484bb3d9547e82a33a09668c9b54b912c8fb Author: Christoph Lameter Date: Mon Apr 28 18:52:35 2008 -0700 x86: common thread_info definitions Merge the thread_info definition into one structure definition for both arches. The __u32 is equal to unsigned long for 32 bit. sysenter_return is used both for the IA32 emulation for 64 and x86_32. Avoid complicated #ifdef by simply always including it. Signed-off-by: Christoph Lameter Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit f2ea3b1d4d7ab66d86da57899993282f3deb1f74 Author: Christoph Lameter Date: Mon Apr 28 18:52:34 2008 -0700 x86: threadinfo: merge thread sync state definitions Merge both. x86_64 has an additional TS_COMPAT that is harmless for 32 bit. Signed-off-by: Christoph Lameter Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 12a638e13c68bbe187782518dab375f4fa800fc4 Author: Christoph Lameter Date: Mon Apr 28 18:52:33 2008 -0700 x86: threadinfo: common include files Move shared includes to a common area in thread_info.h Adds asm/types.h for x86_64 and linux/compiler.h for x86_32. Not needed but we can avoid some ifdeffing and it simplifies later joining. Signed-off-by: Christoph Lameter Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 2052e8d40ad58b1d364f900e70edfda62caa0874 Author: Christoph Lameter Date: Mon May 12 15:43:41 2008 +0200 x86: merge thread_info.h Simple merge of both thread_info_32.h and thread_info_64.h into thread_info.h. Comments for #ifndef __ASM_THREAD_INFO_H and #ifdef __KERNEL__ are the same. Signed-off-by: Christoph Lameter Signed-off-by: Ingo Molnar commit 1c7d06d419dbe82c76fbb4d3e1fa61b2da2dc00b Author: Ingo Molnar Date: Wed Apr 30 22:12:05 2008 +0200 revert: thread_info.h change temporarily revert parts of "signals: x86 TS_RESTORE_SIGMASK". Signed-off-by: Ingo Molnar commit 8edc5cc5ec880c96de8e6686fb0d7a5231e91c05 Author: Venki Pallipadi Date: Mon May 12 15:43:34 2008 +0200 x86: remove 6 bank limitation in 64 bit MCE reporting code Eliminate the 6 bank restriction in 64 bit mce reporting code. This restriction is artificial (due to static creation of sysfs files) and 32 bit code does not have any such restriction. This change helps in reporting the details of machine checks on a machine check exception with errors in bank 6 and above on CPUs that support those banks. Without the patch, machine check errors in those banks are not reported. We still have 128 (MCE_EXTENDED_BANK) bank restriction instead of max 256 supported in hardware. That is not changed in the patch below as it will have some user level mcelog utility dependency, with bank 128 being used for thermal reporting currently. The patch below does not create sysfs control (bankNctl) for banks higher than 6 as well. That needs some pre-cleanup in /sysfs mce layout, removal of per cpu /sysfs entries for bankctl as they are really global system level control today. That change will follow. This basic change is critical to report the detailed errors on banks higher than 6. Signed-off-by: Venkatesh Pallipadi Signed-off-by: Ingo Molnar commit 7c4728f4a865067d96fb84f1d9c65e0ccd1f355d Author: Thomas Gleixner Date: Sat May 10 21:42:14 2008 +0200 x86: print info about available HPET quirk We have a lot of HPET quirks available which might force enable HPET even when the BIOS does not enable it. Some of those quirks depend on the command line option "hpet=force". Andrew pointed out that hoping that the user will find out about this boot option is not really helpful. Emit a kernel info which informs the user about the "hpet=force" boot option when we enter a quirk which depends on this option and the user did not provide it. Signed-off-by: Thomas Gleixner commit e8aa4667baf74dfd85fbaab86861465acb811085 Author: Andreas Herrmann Date: Fri May 9 11:49:11 2008 +0200 x86: enable hpet=force for AMD SB400 Add quirk to allow forced usage of HPET on ATI SB400. I stumbled over machines where HPET is enabled but not reported by BIOS. This patch configures the HPET base address and makes it known to the OS. Signed-off-by: Andreas Herrmann Signed-off-by: Thomas Gleixner commit 6fd592daae2182adc47f405e20d07f34f52d07dd Author: Carlos R. Mafra Date: Mon May 5 20:11:22 2008 -0300 x86: clean up computation of HPET .mult variables While reading through the HPET code I realized that the computation of .mult variables could be done with less lines of code, resulting in a 1.6% text size saving for hpet.o So I propose the following patch, which applies against today's Linus -git tree. >From 0c6507e400e9ca5f7f14331e18f8c12baf75a9d3 Mon Sep 17 00:00:00 2001 From: Carlos R. Mafra Date: Mon, 5 May 2008 19:38:53 -0300 The computation of clocksource_hpet.mult tmp = (u64)hpet_period << HPET_SHIFT; do_div(tmp, FSEC_PER_NSEC); clocksource_hpet.mult = (u32)tmp; can be streamlined if we note that it is equal to clocksource_hpet.mult = div_sc(hpet_period, FSEC_PER_NSEC, HPET_SHIFT); Furthermore, the computation of hpet_clockevent.mult uint64_t hpet_freq; hpet_freq = 1000000000000000ULL; do_div(hpet_freq, hpet_period); hpet_clockevent.mult = div_sc((unsigned long) hpet_freq, NSEC_PER_SEC, hpet_clockevent.shift); can also be streamlined with the observation that hpet_period and hpet_freq are inverse to each other (in proper units). So instead of computing hpet_freq and using (schematically) div_sc(hpet_freq, 10^9, shift) we use the trick of calling with the arguments in reverse order, div_sc(10^6, hpet_period, shift). The different power of ten is due to frequency being in Hertz (1/sec) and the period being in units of femtosecond. Explicitly, mult = (hpet_freq * 2^shift)/10^9 (before) mult = (10^6 * 2^shift)/hpet_period (after) because hpet_freq = 10^15/hpet_period. The comments in the code are also updated to reflect the changes. As a result, text data bss dec hex filename 2957 425 92 3474 d92 arch/x86/kernel/hpet.o 3006 425 92 3523 dc3 arch/x86/kernel/hpet.o.old a 1.6% reduction in text size. Signed-off-by: Carlos R. Mafra Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 150c9173031d43746d70582a17931350f3da8932 Author: Russell King Date: Mon May 12 17:37:21 2008 +0100 dyntick: remove deferences from SH SH does not have a configuration option for NO_IDLE_HZ their Kconfig files, yet their defconfig files lists them. Remove those references. Signed-off-by: Russell King commit ee9c578527a93c66becb526c4a122c5358a959c5 Author: Russell King Date: Sun Apr 20 13:59:33 2008 +0100 dyntick: Remove last reminants of dyntick support Remove the last reminants of dyntick support from the generic kernel. Signed-off-by: Russell King commit 205bee6ad804d7034773b5978c74dde495df2301 Author: Russell King Date: Sun Apr 20 13:57:26 2008 +0100 [ARM] dyntick: Remove obsolete and unused ARM dyntick support dyntick is superseded by the clocksource/clockevent infrastructure, using the NO_HZ configuration option. No one implements dyntick on ARM anymore, so it's pointless keeping it around. Remove dyntick support. Signed-off-by: Russell King commit e055d5bff318845f99c0fbf93245767fab8dce88 Author: Adrian Bunk Date: Tue Apr 22 01:43:27 2008 +0100 [ARM] 5015/1: arm: remove ARCH_CO285 Trying to compile a kerel for ARCH_CO285 fails with the following error: <-- snip --> ... CC arch/arm/mach-footbridge/dc21285.o /home/bunk/linux/kernel-2.6/git/linux-2.6/arch/arm/mach-footbridge/dc21285.c: In function 'dc21285_base_address': /home/bunk/linux/kernel-2.6/git/linux-2.6/arch/arm/mach-footbridge/dc21285.c:54: error: 'PCICFG0_BASE' undeclared (first use in this function) /home/bunk/linux/kernel-2.6/git/linux-2.6/arch/arm/mach-footbridge/dc21285.c:54: error: (Each undeclared identifier is reported only once /home/bunk/linux/kernel-2.6/git/linux-2.6/arch/arm/mach-footbridge/dc21285.c:54: error: for each function it appears in.) /home/bunk/linux/kernel-2.6/git/linux-2.6/arch/arm/mach-footbridge/dc21285.c:57: error: 'PCICFG1_BASE' undeclared (first use in this function) /home/bunk/linux/kernel-2.6/git/linux-2.6/arch/arm/mach-footbridge/dc21285.c: In function 'dc21285_scan_bus': /home/bunk/linux/kernel-2.6/git/linux-2.6/arch/arm/mach-footbridge/dc21285.c:286: error: implicit declaration of function 'pci_scan_bus' ... make[2]: *** [arch/arm/mach-footbridge/dc21285.o] Error 1 <-- snip --> This does not seem to be a recent breakage. The ARCH_CO285 support is old - kernel 2.2.0 contains first traces of it, an it seems to have been pretty complete in later 2.2 kernels. Since it seems to be completely dead code now this patch therefore removes it. Signed-off-by: Adrian Bunk Signed-off-by: Russell King commit 7e36e2f5355ab87f8946041d044b34cda01e2077 Author: Rod Whitby Date: Tue Apr 1 10:53:23 2008 +0100 [ARM] 4874/2: ixp4xx: Add support for the Freecom FSG-3 board The Freecom-FSG3 is a small network-attached-storage device with the following feature set: * Intel IXP422 * 4MB Flash (ixp4xx flash driver) * 64MB RAM * 4 USB 2.0 host ports (ehci and ohci drivers) * 1 WAN (eth1) and 3 LAN (eth0) ethernet ports * Supported by the open source ixp4xx ethernet driver * Via VT6421 disk controller (libata and sata-via drivers) * Internal hard disk (PATA supported, SATA not yet supported) * External SATA port (not yet supported) * ISL1208 RTC chip * Winbond 83782 temp sensor and fan controller * MiniPCI slot The ixp4xx_defconfig is also updated to support this device (the leds-fsg driver is to be submitted separately via the leds tree after this initial support is merged, as it depends on header gpio defines). Signed-off-by: Rod Whitby Signed-off-by: Russell King