commit 96b5a46e2a72dc1829370c87053e0cd558d58bc0 Author: Linus Torvalds Date: Mon Feb 11 20:52:01 2008 -0800 WMI: initialize wmi_blocks.list even if ACPI is disabled Even if we don't want to register the WMI driver, we should initialize the wmi_blocks list to be empty, since we don't want the wmi helper functions to oops just because that basic list has not even been set up. With this, "find_guid()" will happily return "not found" rather than oopsing all over the place, and the callers will then just automatically return false or AE_NOT_FOUND as appropriate. Signed-off-by: Linus Torvalds commit 2c1582699872d38682b136b1446953ee351bc7e1 Author: Roland McGrath Date: Mon Feb 11 14:38:51 2008 -0800 x86: vdso_install fix The makefile magic for installing the 32-bit vdso images on disk had a little error. A single-line change would fix that bug, but this does a little more to reduce the error-prone duplication of this bit of makefile variable magic. Signed-off-by: Roland McGrath Signed-off-by: Linus Torvalds commit 31f1de46b90ad360a16e7af3e277d104961df923 Author: KOSAKI Motohiro Date: Tue Feb 12 13:30:22 2008 +0900 mempolicy: silently restrict nodemask to allowed nodes Kosaki Motohito noted that "numactl --interleave=all ..." failed in the presence of memoryless nodes. This patch attempts to fix that problem. Some background: numactl --interleave=all calls set_mempolicy(2) with a fully populated [out to MAXNUMNODES] nodemask. set_mempolicy() [in do_set_mempolicy()] calls contextualize_policy() which requires that the nodemask be a subset of the current task's mems_allowed; else EINVAL will be returned. A task's mems_allowed will always be a subset of node_states[N_HIGH_MEMORY] i.e., nodes with memory. So, a fully populated nodemask will be declared invalid if it includes memoryless nodes. NOTE: the same thing will occur when running in a cpuset with restricted mem_allowed--for the same reason: node mask contains dis-allowed nodes. mbind(2), on the other hand, just masks off any nodes in the nodemask that are not included in the caller's mems_allowed. In each case [mbind() and set_mempolicy()], mpol_check_policy() will complain [again, resulting in EINVAL] if the nodemask contains any memoryless nodes. This is somewhat redundant as mpol_new() will remove memoryless nodes for interleave policy, as will bind_zonelist()--called by mpol_new() for BIND policy. Proposed fix: 1) modify contextualize_policy logic to: a) remember whether the incoming node mask is empty. b) if not, restrict the nodemask to allowed nodes, as is currently done in-line for mbind(). This guarantees that the resulting mask includes only nodes with memory. NOTE: this is a [benign, IMO] change in behavior for set_mempolicy(). Dis-allowed nodes will be silently ignored, rather than returning an error. c) fold this code into mpol_check_policy(), replace 2 calls to contextualize_policy() to call mpol_check_policy() directly and remove contextualize_policy(). 2) In existing mpol_check_policy() logic, after "contextualization": a) MPOL_DEFAULT: require that in coming mask "was_empty" b) MPOL_{BIND|INTERLEAVE}: require that contextualized nodemask contains at least one node. c) add a case for MPOL_PREFERRED: if in coming was not empty and resulting mask IS empty, user specified invalid nodes. Return EINVAL. c) remove the now redundant check for memoryless nodes 3) remove the now redundant masking of policy nodes for interleave policy from mpol_new(). 4) Now that mpol_check_policy() contextualizes the nodemask, remove the in-line nodes_and() from sys_mbind(). I believe that this restores mbind() to the behavior before the memoryless-nodes patch series. E.g., we'll no longer treat an invalid nodemask with MPOL_PREFERRED as local allocation. [ Patch history: v1 -> v2: - Communicate whether or not incoming node mask was empty to mpol_check_policy() for better error checking. - As suggested by David Rientjes, remove the now unused cpuset_nodes_subset_current_mems_allowed() from cpuset.h v2 -> v3: - As suggested by Kosaki Motohito, fold the "contextualization" of policy nodemask into mpol_check_policy(). Looks a little cleaner. ] Signed-off-by: Lee Schermerhorn Signed-off-by: KOSAKI Motohiro Tested-by: KOSAKI Motohiro Acked-by: David Rientjes Signed-off-by: Linus Torvalds commit 1a510089849ff9f70b654659bf976a6baf3a4833 Merge: 900cf08... 10d0aa3... Author: Linus Torvalds Date: Mon Feb 11 20:44:58 2008 -0800 Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6 * 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6: [IA64] Fix build for sim_defconfig commit 900cf086fd2fbad07f72f4575449e0d0958f860f Author: Jonathan Corbet Date: Mon Feb 11 16:17:33 2008 -0700 Be more robust about bad arguments in get_user_pages() So I spent a while pounding my head against my monitor trying to figure out the vmsplice() vulnerability - how could a failure to check for *read* access turn into a root exploit? It turns out that it's a buffer overflow problem which is made easy by the way get_user_pages() is coded. In particular, "len" is a signed int, and it is only checked at the *end* of a do {} while() loop. So, if it is passed in as zero, the loop will execute once and decrement len to -1. At that point, the loop will proceed until the next invalid address is found; in the process, it will likely overflow the pages array passed in to get_user_pages(). I think that, if get_user_pages() has been asked to grab zero pages, that's what it should do. Thus this patch; it is, among other things, enough to block the (already fixed) root exploit and any others which might be lurking in similar code. I also think that the number of pages should be unsigned, but changing the prototype of this function probably requires some more careful review. Signed-off-by: Jonathan Corbet Signed-off-by: Linus Torvalds commit b1292b17dc03fcd90f3301974cea1b7c61371ba5 Merge: c76d118... 29c2711... Author: Linus Torvalds Date: Mon Feb 11 20:43:14 2008 -0800 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: mlx4_core: Fix build break (missing include) commit c76d118ecc5fcac7c823fb428676860dba0fdd20 Author: Pekka Enberg Date: Mon Feb 11 23:52:47 2008 +0200 Add Matt to MAINTAINERS as a SLAB allocator maintainer Matt is already the maintainer of SLOB which is one of the "SLAB" allocators in the kernel so add him to MAINTAINERS. Signed-off-by: Pekka Enberg Signed-off-by: Linus Torvalds commit a17b7a398d5c20ccbcb11f98dc2a76a6f07934ad Merge: 271cad6... fbf14e2... Author: Linus Torvalds Date: Mon Feb 11 20:42:11 2008 -0800 Merge branch 'upstream-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev * 'upstream-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev: sata_mv: platform driver allocs dma without create pata_ninja32: setup changes pata_legacy: typo fix pata_amd: Note in the module description it handles Nvidia sata_mv: fix loop with last port libata: ignore deverr on SETXFER if mode is configured pata_via: fix SATA cable detection on cx700 commit 271cad6d7e91ff8eea18976311692f99cd667ad3 Author: Andi Kleen Date: Mon Feb 11 20:03:17 2008 +0100 Make topology fallback macros reference their arguments. This avoids warnings with unreferenced variables in the !NUMA case. Signed-off-by: Andi Kleen Signed-off-by: Linus Torvalds commit 29c271123dc7895a9f77d3e61e747b2a052d0a2a Author: Olof Johansson Date: Sun Feb 10 20:22:57 2008 -0600 mlx4_core: Fix build break (missing include) Commit 313abe55 ("mlx4_core: For 64-bit systems, vmap() kernel queue buffers") caused this to pop up on powerpc allyesconfig, looks like a missing include file: drivers/net/mlx4/alloc.c: In function 'mlx4_buf_alloc': drivers/net/mlx4/alloc.c:162: error: implicit declaration of function 'vmap' drivers/net/mlx4/alloc.c:162: error: 'VM_MAP' undeclared (first use in this function) drivers/net/mlx4/alloc.c:162: error: (Each undeclared identifier is reported only once drivers/net/mlx4/alloc.c:162: error: for each function it appears in.) drivers/net/mlx4/alloc.c:162: warning: assignment makes pointer from integer without a cast drivers/net/mlx4/alloc.c: In function 'mlx4_buf_free': drivers/net/mlx4/alloc.c:187: error: implicit declaration of function 'vunmap' Signed-off-by: Olof Johansson Signed-off-by: Roland Dreier commit 10d0aa3c0a03dd04227ab3a4958563d84276d02e Author: Tony Luck Date: Mon Feb 11 13:23:46 2008 -0800 [IA64] Fix build for sim_defconfig Commit bdc807871d58285737d50dc6163d0feb72cb0dc2 broke the build for this config because the sim_defconfig selects CONFIG_HZ=250 but include/asm-ia64/param.h has an ifdef for the simulator to force HZ to 32. So we ended up with a kernel/timeconst.h set for HZ=250 ... which then failed the check for the right HZ value and died with: Drop the #ifdef magic from param.h and make force CONFIG_HZ=32 directly for the simulator. Signed-off-by: Tony Luck commit fbf14e2f2d674e6a2ff0fb2aa569e7f6687483a3 Author: Byron Bradley Date: Sun Feb 10 21:17:30 2008 +0000 sata_mv: platform driver allocs dma without create When the sata_mv driver is used as a platform driver, mv_create_dma_pools() is never called so it fails when trying to alloc in mv_pool_start(). Signed-off-by: Byron Bradley Acked-by: Mark Lord Signed-off-by: Jeff Garzik commit 4194645079ca15679bf7e5b00e71561cf6864761 Author: Alan Cox Date: Fri Feb 8 15:25:10 2008 +0000 pata_ninja32: setup changes Forcibly set more of the configuration at init time. This seems to fix at least one problem reported. We don't know what most of these bits do, but we do know what windows stuffs there. Signed-off-by: Alan Cox Signed-off-by: Jeff Garzik commit 8397248d4662d77296889529c911e2182151afa9 Author: Alan Cox Date: Fri Feb 8 15:23:38 2008 +0000 pata_legacy: typo fix Signed-off-by: Alan Cox Signed-off-by: Jeff Garzik commit c9544bcb4c7df07555e4b22d297c5705738da09d Author: Alan Cox Date: Fri Feb 8 15:22:39 2008 +0000 pata_amd: Note in the module description it handles Nvidia This has confused a few people so fix it Signed-off-by: Alan Cox Signed-off-by: Jeff Garzik commit 8f71efe25f8718200027b547a3e749ae3300fe60 Author: Yinghai Lu Date: Thu Feb 7 15:06:17 2008 -0800 sata_mv: fix loop with last port commit f351b2d638c3cb0b95adde3549b7bfaf3f991dfa sata_mv: Support SoC controllers cause panic: scsi 4:0:0:0: Direct-Access ATA HITACHI HDS7225S V44O PQ: 0 ANSI: 5 sd 4:0:0:0: [sde] 488390625 512-byte hardware sectors (250056 MB) sd 4:0:0:0: [sde] Write Protect is off sd 4:0:0:0: [sde] Mode Sense: 00 3a 00 00 sd 4:0:0:0: [sde] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA sd 4:0:0:0: [sde] 488390625 512-byte hardware sectors (250056 MB) sd 4:0:0:0: [sde] Write Protect is off sd 4:0:0:0: [sde] Mode Sense: 00 3a 00 00 sd 4:0:0:0: [sde] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA sde:<1>BUG: unable to handle kernel NULL pointer dereference at 000000000000001a IP: [] mv_interrupt+0x21c/0x4cc PGD 0 Oops: 0000 [1] SMP CPU 3 Modules linked in: Pid: 0, comm: swapper Not tainted 2.6.24-smp-08636-g0afc2ed-dirty #26 RIP: 0010:[] [] mv_interrupt+0x21c/0x4cc RSP: 0000:ffff8102050bbec8 EFLAGS: 00010297 RAX: 0000000000000008 RBX: 0000000000000000 RCX: 0000000000000003 RDX: 0000000000008000 RSI: 0000000000000286 RDI: ffff8102035180e0 RBP: 0000000000000001 R08: 0000000000000003 R09: ffff8102036613e0 R10: 0000000000000002 R11: ffffffff8061474c R12: ffff8102035bf828 R13: 0000000000000008 R14: ffff81020348ece8 R15: ffffc20002cb2000 FS: 0000000000000000(0000) GS:ffff810405025700(0000) knlGS:0000000000000000 CS: 0010 DS: 0018 ES: 0018 CR0: 000000008005003b CR2: 000000000000001a CR3: 0000000000201000 CR4: 00000000000006e0 DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400 Process swapper (pid: 0, threadinfo ffff810405094000, task ffff8102050b28c0) Stack: 000000010000000c 0002040000220400 0000001100000002 ffff81020348eda8 0000000000000001 ffff8102035f2cc0 0000000000000000 0000000000000000 0000000000000018 0000000000000000 0000000000000000 ffffffff80269ee8 Call Trace: [] ? handle_IRQ_event+0x25/0x53 [] ? handle_fasteoi_irq+0x90/0xc8 [] ? do_IRQ+0xf1/0x15f [] ? default_idle+0x0/0x55 [] ? ret_from_intr+0x0/0xa [] ? lapic_next_event+0x0/0xa [] ? default_idle+0x31/0x55 [] ? default_idle+0x2c/0x55 [] ? default_idle+0x0/0x55 [] ? cpu_idle+0x92/0xb8 Code: 41 14 85 c0 89 44 24 14 0f 84 9d 02 00 00 f7 d0 01 d6 41 89 d5 89 41 14 8b 41 14 89 34 24 e9 7e 02 00 00 49 63 c5 49 8b 5c c6 48 43 1a 80 4c 8b a3 20 37 00 00 0f 85 62 02 00 00 31 c9 41 83 RIP [] mv_interrupt+0x21c/0x4cc RSP CR2: 000000000000001a ---[ end trace 2583b5f7a5350584 ]--- Kernel panic - not syncing: Aiee, killing interrupt handler! last_port already include port0 base. this patch change use last_port directly, and move pp assignment later. Signed-off-by: Yinghai Lu Signed-off-by: Jeff Garzik commit 4055dee7f525a702a060ea08a3fb9f045317355f Author: Tejun Heo Date: Thu Feb 7 10:34:08 2008 +0900 libata: ignore deverr on SETXFER if mode is configured Some controllers (VIA CX700) raise device error on SETXFER even after mode configuration succeeded. Update ata_dev_set_mode() such that device error is ignored if transfer mode is configured correctly. To implement this, device is revalidated even after device error on SETXFER. This fixes kernel bugzilla bug 8563. Signed-off-by: Tejun Heo Cc: Alan Cox Signed-off-by: Jeff Garzik commit 7585eb1b7cf4bbace37ce18500809140c8eeccc3 Author: Tejun Heo Date: Thu Feb 7 10:18:53 2008 +0900 pata_via: fix SATA cable detection on cx700 The first port of cx700 is SATA. Fix cable detection. Signed-off-by: Tejun Heo Signed-off-by: Jeff Garzik commit 81772fea4110f7ce8083d52503c9c4ddaa50f75b Author: Thomas Gleixner Date: Sun Feb 10 23:57:36 2008 +0100 x86: remove over noisy debug printk pageattr-test.c contains a noisy debug printk that people reported. The condition under which it prints (randomly tapping into a mem_map[] hole and not being able to c_p_a() there) is valid behavior and not interesting to report. Remove it. Signed-off-by: Thomas Gleixner Acked-by: Ingo Molnar Signed-off-by: Linus Torvalds commit cc13e442952a347f7e217eeaee4778485394f1be Merge: 0faa908... fab1e31... Author: Linus Torvalds Date: Mon Feb 11 09:22:23 2008 -0800 Merge git://git.kernel.org/pub/scm/linux/kernel/git/sam/kbuild * git://git.kernel.org/pub/scm/linux/kernel/git/sam/kbuild: kbuild: fix make V=1 commit 0faa90880331386ac86ca78d52692c7a94051eab Merge: 1f07e98... b68e418... Author: Linus Torvalds Date: Mon Feb 11 09:21:26 2008 -0800 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/selinux-2.6 * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/selinux-2.6: selinux: support 64-bit capabilities commit 1f07e988290fc45932f5028c9e2a862c37a57336 Author: Andi Kleen Date: Mon Feb 11 01:35:20 2008 +0100 Prevent IDE boot ops on NUMA system Without this patch a Opteron test system here oopses at boot with current git. Calling to_pci_dev() on a NULL pointer gives a negative value so the following NULL pointer check never triggers and then an illegal address is referenced. Check the unadjusted original device pointer for NULL instead. Signed-off-by: Andi Kleen Signed-off-by: Linus Torvalds commit 0c0d61ca93d111c521182c0909e478fa709e05c6 Merge: eedcdef... bb50c80... Author: Linus Torvalds Date: Mon Feb 11 09:19:47 2008 -0800 Merge branch 'for-linus' of git://linux-nfs.org/~bfields/linux * 'for-linus' of git://linux-nfs.org/~bfields/linux: SUNPRC: Fix printk format warning nfsd: clean up svc_reserve_auth() NLM: don't requeue block if it was invalidated while GRANT_MSG was in flight NLM: don't reattempt GRANT_MSG when there is already an RPC in flight NLM: have server-side RPC clients default to soft RPC tasks NLM: set RPC_CLNT_CREATE_NOPING for NLM RPC clients commit eedcdefb1ad75de9cc0889b247524be64cc244ef Merge: 9585ca0... 467390a... Author: Linus Torvalds Date: Mon Feb 11 09:19:22 2008 -0800 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: ide: remove stale comment from ide-lib.c ide: fix comment in init_irq() ide: ide_init_port() bugfix ide-disk: fix flush requests (take 2) ide: introduce CONFIG_BLK_DEV_IDEDMA_SFF option bast-ide: build fix ide-tape: remove never executed code ide: fix ide/legacy/gayle.c compilation ide-cd: replace ntohs with generic byteorder macro be16_to_cpu ide: remove stale version number pdc202xx_old: always enable burst mode palm_bk3710: use struct ide_port_info palm_bk3710: port initialization/probing bugfix palm_bk3710: fix ide_unregister() usage palm_bk3710: ide_register_hw() -> ide_device_add() ide: insert BUG_ON() into __ide_set_handler() (take 2) cs5520: remove stale comment ide: another possible ide panic fix for blk-end-request commit fab1e310d3f97bb9403ac68e181fd3e654a755c7 Author: Sam Ravnborg Date: Mon Feb 11 14:26:26 2008 +0100 kbuild: fix make V=1 When make -s support were added to filechk to combination created with make V=1 were not covered. Fix it by explicitly cover this case too. Signed-off-by: Sam Ravnborg Cc: Mike Frysinger commit 9585ca02f8f9e844b64e7ff4d167ccc1390a99ab Author: Matthew Wilcox Date: Sun Feb 10 23:18:15 2008 -0500 Use proper abstractions in quirk_intel_irqbalance Since we may not have a pci_dev for the device we need to access, we can't use pci_read_config_word. But raw_pci_read is an internal implementation detail; it's better to use the architected pci_bus_read_config_word interface. Using PCI_DEVFN instead of a mysterious constant helps reassure everyone that we really do intend to access device 8. [ Thanks to Grant Grundler for pointing out to me that this is exactly what the write immediately above this is doing -- enabling device 8 to respond to config space cycles. - Matthew Grant also says: "Can you also add a comment which points at the Intel documentation? The 'Intel E7320 Memory Controller Hub (MCH) Datasheet' at http://download.intel.com/design/chipsets/datashts/30300702.pdf Page 69 documents register F4h (DEVPRES1). And I just doubled checked that the 0xf4 register value is restored later in the quirk (obvious when you look at the code but not from the patch" so here it is. - Linus ] Signed-off-by: Matthew Wilcox Acked-by: Grant Grundler Signed-off-by: Linus Torvalds commit b68e418c445e8a468634d0a7ca2fb63bbaa74028 Author: Stephen Smalley Date: Thu Feb 7 11:21:04 2008 -0500 selinux: support 64-bit capabilities Fix SELinux to handle 64-bit capabilities correctly, and to catch future extensions of capabilities beyond 64 bits to ensure that SELinux is properly updated. Signed-off-by: Stephen Smalley Signed-off-by: James Morris commit 467390a2a50493332ddc21eb806094b1829c1161 Author: Bartlomiej Zolnierkiewicz Date: Mon Feb 11 00:32:15 2008 +0100 ide: remove stale comment from ide-lib.c Signed-off-by: Bartlomiej Zolnierkiewicz commit e1771e20c8be601d1cc9364d45f907a0433dbbd5 Author: Bartlomiej Zolnierkiewicz Date: Mon Feb 11 00:32:15 2008 +0100 ide: fix comment in init_irq() APUS support is gone... Signed-off-by: Bartlomiej Zolnierkiewicz commit 428009422584cb8ded31397740ade88a36fc8172 Author: Bartlomiej Zolnierkiewicz Date: Mon Feb 11 00:32:15 2008 +0100 ide: ide_init_port() bugfix On Sunday 10 February 2008, Atsushi Nemoto wrote: > On Sun, 06 Jan 2008 18:03:10 +0100, Bartlomiej Zolnierkiewicz wrote: > > + /* reset DMA masks only for SFF-style DMA controllers */ > > + if ((d->host_flags && IDE_HFLAG_NO_DMA) == 0 && hwif->dma_base == 0) > > + hwif->swdma_mask = hwif->mwdma_mask = hwif->ultra_mask = 0; > > It might be too late, but "host_flags && IDE_HFLAGS_NO_DMA" seems > wrong for me. Fix regression caused by commmit c413b9b94d9a8e7548cc4b2e04b7df0439ce76fd ("ide: add struct ide_port_info instances to legacy host drivers"). Reported-by: Atsushi Nemoto Signed-off-by: Bartlomiej Zolnierkiewicz commit 395d8ef5bebe547a80737692f9789d2e36da16f2 Author: Bartlomiej Zolnierkiewicz Date: Mon Feb 11 00:32:14 2008 +0100 ide-disk: fix flush requests (take 2) commit 813a0eb233ee67d7166241a8b389b6a76f2247f9 Author: Bartlomiej Zolnierkiewicz Date: Fri Jan 25 22:17:10 2008 +0100 ide: switch idedisk_prepare_flush() to use REQ_TYPE_ATA_TASKFILE requests ... broke flush requests. Allocating IDE command structure on the stack for flush requests is not a very brilliant idea: - idedisk_prepare_flush() only prepares the request and it doesn't wait for it to be completed - there are can be multiple flush requests queued in the queue Fix the problem (per hints from James Bottomley) by: - dynamically allocating ide_task_t instance using kmalloc(..., GFP_ATOMIC) - adding new taskfile flag (IDE_TFLAG_DYN) - calling kfree() in ide_end_drive_command() if IDE_TFLAG_DYN is set (while at it rename 'args' to 'task' and fix whitespace damage) [ This will be fixed properly before 2.6.25 but this bug is rather critical and the proper solution requires some more work + testing. ] Thanks to Sebastian Siewior and Christoph Hellwig for reporting the problem and testing patches (extra thanks to Sebastian for bisecting it to the guilty commmit). Tested-by: Sebastian Siewior Cc: Christoph Hellwig Cc: James Bottomley Cc: Jens Axboe Cc: Tejun Heo Cc: Sergei Shtylyov Signed-off-by: Bartlomiej Zolnierkiewicz commit 8e882ba111bb52fbb42c34a265afb97ddd4fcea1 Author: Sergei Shtylyov Date: Mon Feb 11 00:32:14 2008 +0100 ide: introduce CONFIG_BLK_DEV_IDEDMA_SFF option Introduce new option CONFIG_BLK_DEV_IDEDMA_SFF for non-PCI SFF-8038i compatible bus mastering IDE controllers (which there are a few known), thus fixing a hack made for Palmchip BK3710 controller... Signed-off-by: Sergei Shtylyov Cc: Anton Salnikov Signed-off-by: Bartlomiej Zolnierkiewicz commit 7b56a937a17d21a266dd0a24053f951f3a92e428 Author: Bartlomiej Zolnierkiewicz Date: Mon Feb 11 00:32:14 2008 +0100 bast-ide: build fix On Saturday 09 February 2008, Adrian Bunk wrote: > Commit 9e016a719209d95338e314b46c3012cc7feaaeec causes the following > compile error: > > <-- snip --> > > ... > CC drivers/ide/arm/bast-ide.o > /home/bunk/linux/kernel-2.6/git/linux-2.6/drivers/ide/arm/bast-ide.c: In function 'bastide_register': > /home/bunk/linux/kernel-2.6/git/linux-2.6/drivers/ide/arm/bast-ide.c:31: error: 'hwif' redeclared as different kind of symbol > /home/bunk/linux/kernel-2.6/git/linux-2.6/drivers/ide/arm/bast-ide.c:29: error: previous definition of 'hwif' was here > make[4]: *** [drivers/ide/arm/bast-ide.o] Error 1 > > <-- snip --> Remove 'ide_hwif_t **hwif' argument from bastide_register() (together with write-only ifs[]). Cc: Adrian Bunk Cc: Russell King Acked-by: Sergei Shtylyov Signed-off-by: Bartlomiej Zolnierkiewicz commit 31cb2120270cb43403428de67d8cb5caeb58dfd2 Author: Bartlomiej Zolnierkiewicz Date: Mon Feb 11 00:32:14 2008 +0100 ide-tape: remove never executed code rq->cmd[0] is never set to REQ_IDETAPE_READ_BUFFER so remove REQ_IDETAPE_READ_BUFFER handling from idetape_create_write_cmd() and the define itself. Then remove no longer used idetape_create_read_buffer_cmd() and IDETAPE_RETRIEVE_FAULTY_BLOCK define. There should be no functional changes caused by this patch. Cc: Borislav Petkov Acked-by: Sergei Shtylyov Signed-off-by: Bartlomiej Zolnierkiewicz commit 56efa7b0e437808d367a92f7820b3aba930c230d Author: Adrian Bunk Date: Mon Feb 11 00:32:14 2008 +0100 ide: fix ide/legacy/gayle.c compilation Signed-off-by: Adrian Bunk Cc: Geert Uytterhoeven Signed-off-by: Bartlomiej Zolnierkiewicz commit 7eb43fd2fa4a55faee97d4c84b336d2138075926 Author: Borislav Petkov Date: Mon Feb 11 00:32:13 2008 +0100 ide-cd: replace ntohs with generic byteorder macro be16_to_cpu Signed-off-by: Borislav Petkov Signed-off-by: Bartlomiej Zolnierkiewicz commit eba8ff946177ca38dfde0bf1d8ce0703c45c49b9 Author: Bartlomiej Zolnierkiewicz Date: Mon Feb 11 00:32:13 2008 +0100 ide: remove stale version number On Thursday 03 January 2008, Robert Hancock wrote: [...] > How about getting rid of this stupid thing in drivers/ide/ide.c: > > #define       REVISION        "Revision: 7.00alpha2" > > which is used in: > > printk(KERN_INFO "Uniform Multi-Platform E-IDE driver " REVISION "\n"); > > It's been 7.00alpha2 for god knows how long, so clearly this version > number is not useful.. Cc: Robert Hancock Signed-off-by: Bartlomiej Zolnierkiewicz commit cfa2771bc511017159ea076965fe385101e03798 Author: Bartlomiej Zolnierkiewicz Date: Mon Feb 11 00:32:13 2008 +0100 pdc202xx_old: always enable burst mode Alan has noticed that distros always enabled burst mode (+ datasheet confirms that it is the right thing to do). Thus fix pdc202xx_old host driver to do it unconditionally and remove no longer needed CONFIG_PDC202XX_BURST option. Cc: Alan Cox Acked-by: Sergei Shtylyov Signed-off-by: Bartlomiej Zolnierkiewicz commit c79b60ddf6ff0e884c09cecbbddd656f7bf277a3 Author: Bartlomiej Zolnierkiewicz Date: Mon Feb 11 00:32:13 2008 +0100 palm_bk3710: use struct ide_port_info * Factor out cable detection to palm_bk3710_cable_detect(). * Add palm_bk3710_init_hwif() (->init_hwif method implementation). * Remove needless ->quirkproc initialization. * Add missing ->pio_mask initialization. * Use ATA_* defines for setting ->{ultra,mwdma}_mask. * Add 'struct ide_port_info palm_bk3710_port_info' and pass it to ide_device_add(). Then remove open-coded 'hwif' initialization. Cc: Anton Salnikov Acked-by: Sergei Shtylyov Signed-off-by: Bartlomiej Zolnierkiewicz commit c92a7f1d8254fabd99df33af59094935fc2cfe32 Author: Bartlomiej Zolnierkiewicz Date: Mon Feb 11 00:32:13 2008 +0100 palm_bk3710: port initialization/probing bugfix Probe port _after_ it is fully initialized. Cc: Anton Salnikov Acked-by: Sergei Shtylyov Signed-off-by: Bartlomiej Zolnierkiewicz commit d4452be757b5b94b2d39c5c254743caee913915e Author: Bartlomiej Zolnierkiewicz Date: Mon Feb 11 00:32:12 2008 +0100 palm_bk3710: fix ide_unregister() usage Don't set 'restore' flag for ide_unregister() when initializing new interface. [ identical change as done to bast-ide/ide-cs/delkin_cb host drivers by commit 909f4369bca30f9a186316a3bf2b4a9c1e702a25 ] Cc: Anton Salnikov Signed-off-by: Bartlomiej Zolnierkiewicz commit 7824bc6b474caca6d74489498d9c2c2dfcc86d10 Author: Bartlomiej Zolnierkiewicz Date: Mon Feb 11 00:32:12 2008 +0100 palm_bk3710: ide_register_hw() -> ide_device_add() * Convert palm_bk3710 host driver to use ide_device_add() instead of ide_register_hw() (while at it drop doing "ide_unregister()" loop which tries to unregister _all_ IDE interfaces if useable ide_hwifs[] slot cannot be find). [ identical change as done to bast-ide/ide-cs/delkin_cb host drivers by commit 9e016a719209d95338e314b46c3012cc7feaaeec ] * Rename 'ide_ctlr_info' to 'hw' and 'index' to 'i' while at it. Cc: Anton Salnikov Signed-off-by: Bartlomiej Zolnierkiewicz commit d30a426dc5fd8801dbd05485788a001de623d487 Author: Sergei Shtylyov Date: Mon Feb 11 00:32:12 2008 +0100 ide: insert BUG_ON() into __ide_set_handler() (take 2) Replace the check for hwgroup->handler and printk(KERN_CRIT, ...) at the start of __ide_set_handler() with mere BUG_ON() while removing such from the caller, ide_execute_command(). Fix up the code formatting, while at it... Signed-off-by: Sergei Shtylyov Signed-off-by: Bartlomiej Zolnierkiewicz commit cb777922c3a15ccbea4c02bed401e030f195aaea Author: Benjamin Herrenschmidt Date: Mon Feb 11 00:32:12 2008 +0100 cs5520: remove stale comment Remove stale comment from the cs5520 IDE driver. Signed-off-by: Benjamin Herrenschmidt Signed-off-by: Bartlomiej Zolnierkiewicz commit 3b0e044d5a881c937293a045158149514b86783c Author: Kiyoshi Ueda Date: Mon Feb 11 00:32:11 2008 +0100 ide: another possible ide panic fix for blk-end-request I have reviewed all blk-end-request patches again to confirm whether there are any similar problems with the last week's ide-cd panic: http://lkml.org/lkml/2008/1/29/140 And I found a possible similar bug in ide-io change: ide_end_drive_cmd() could be called for blk_pc_request() which could have bios. To complete such requests correctly, we need to pass the actual size of the request. Otherwise, __blk_end_request() returns 1 because the request still has bios, and the system will BUG() unnecessarily. The following patch fixes the bug and should be applied on top of Linus' git. Signed-off-by: Kiyoshi Ueda Signed-off-by: Jun'ichi Nomura Cc: Borislav Petkov Cc: Jens Axboe Signed-off-by: Bartlomiej Zolnierkiewicz commit bb50c8012cbd85b8e105584b32e4d5a2d335dcef Author: Roland Dreier Date: Fri Feb 8 16:02:04 2008 -0800 SUNPRC: Fix printk format warning net/sunrpc/xprtrdma/svc_rdma_sendto.c:160: warning: format '%llx' expects type 'long long unsigned int', but argument 3 has type 'u64' Signed-off-by: Roland Dreier Signed-off-by: J. Bruce Fields commit fbb7878c1a2ee40a1e983bf20f3dd3a80255dcf2 Author: J. Bruce Fields Date: Thu Feb 7 23:10:21 2008 -0500 nfsd: clean up svc_reserve_auth() This is a void function attempting to return the return value from another void function, which seems harmless but extremely weird, and apparently makes some compilers complain. While we're there, clean up a little (e.g. the switch statement had a minor style problem and seemed overkill as long as there's only one case). Thanks to Trond for noticing this. Signed-off-by: J. Bruce Fields Cc: Trond Myklebust commit c64e80d55db81df22a7f25b75ab4ba4c55db4749 Author: Jeff Layton Date: Wed Feb 6 11:34:13 2008 -0500 NLM: don't requeue block if it was invalidated while GRANT_MSG was in flight It's possible for lockd to catch a SIGKILL while a GRANT_MSG callback is in flight. If this happens we don't want lockd to insert the block back into the nlm_blocked list. This helps that situation, but there's still a possible race. Fixing that will mean adding real locking for nlm_blocked. Signed-off-by: Jeff Layton Signed-off-by: J. Bruce Fields commit 9706501e43a80ce48b319214a0a9e562deded35b Author: Jeff Layton Date: Wed Feb 6 11:34:12 2008 -0500 NLM: don't reattempt GRANT_MSG when there is already an RPC in flight With the current scheme in nlmsvc_grant_blocked, we can end up with more than one GRANT_MSG callback for a block in flight. Right now, we requeue the block unconditionally so that a GRANT_MSG callback is done again in 30s. If the client is unresponsive, it can take more than 30s for the call already in flight to time out. There's no benefit to having more than one GRANT_MSG RPC queued up at a time, so put it on the list with a timeout of NLM_NEVER before doing the RPC call. If the RPC call submission fails, we requeue it with a short timeout. If it works, then nlmsvc_grant_callback will end up requeueing it with a shorter timeout after it completes. Signed-off-by: Jeff Layton Signed-off-by: J. Bruce Fields commit 90bd17c87821fe0e055e0f9a7446c2875f31eb4c Author: Jeff Layton Date: Wed Feb 6 11:34:11 2008 -0500 NLM: have server-side RPC clients default to soft RPC tasks Now that it no longer does an RPC ping, lockd always ends up queueing an RPC task for the GRANT_MSG callback. But, it also requeues the block for later attempts. Since these are hard RPC tasks, if the client we're calling back goes unresponsive the GRANT_MSG callbacks can stack up in the RPC queue. Fix this by making server-side RPC clients default to soft RPC tasks. lockd requeues the block anyway, so this should be OK. Signed-off-by: Jeff Layton Signed-off-by: J. Bruce Fields commit 031fd3aa20fcf6d1862ea7814ee8b2caf36c0d78 Author: Jeff Layton Date: Wed Feb 6 11:34:10 2008 -0500 NLM: set RPC_CLNT_CREATE_NOPING for NLM RPC clients It's currently possible for an unresponsive NLM client to completely lock up a server's lockd. The scenario is something like this: 1) client1 (or a process on the server) takes a lock on a file 2) client2 tries to take a blocking lock on the same file and awaits the callback 3) client2 goes unresponsive (plug pulled, network partition, etc) 4) client1 releases the lock ...at that point the server's lockd will try to queue up a GRANT_MSG callback for client2, but first it requeues the block with a timeout of 30s. nlm_async_call will attempt to bind the RPC client to client2 and will call rpc_ping. rpc_ping entails a sync RPC call and if client2 is unresponsive it will take around 60s for that to time out. Once it times out, it's already time to retry the block and the whole process repeats. Once in this situation, nlmsvc_retry_blocked will never return until the host starts responding again. lockd won't service new calls. Fix this by skipping the RPC ping on NLM RPC clients. This makes nlm_async_call return quickly when called. Signed-off-by: Jeff Layton Signed-off-by: J. Bruce Fields