aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2011-03-03block: kill loop_mutexPetr Uzel1-5/+0
Following steps lead to deadlock in kernel: dd if=/dev/zero of=img bs=512 count=1000 losetup -f img mkfs.ext2 /dev/loop0 mount -t ext2 -o loop /dev/loop0 mnt umount mnt/ Stacktrace: [<c102ec04>] irq_exit+0x36/0x59 [<c101502c>] smp_apic_timer_interrupt+0x6b/0x75 [<c127f639>] apic_timer_interrupt+0x31/0x38 [<c101df88>] mutex_spin_on_owner+0x54/0x5b [<fe2250e9>] lo_release+0x12/0x67 [loop] [<c10c4eae>] __blkdev_put+0x7c/0x10c [<c10a4da5>] fput+0xd5/0x1aa [<fe2250cf>] loop_clr_fd+0x1a9/0x1b1 [loop] [<fe225110>] lo_release+0x39/0x67 [loop] [<c10c4eae>] __blkdev_put+0x7c/0x10c [<c10a59d9>] deactivate_locked_super+0x17/0x36 [<c10b6f37>] sys_umount+0x27e/0x2a5 [<c10b6f69>] sys_oldumount+0xb/0xe [<c1002897>] sysenter_do_call+0x12/0x26 [<ffffffff>] 0xffffffff Regression since 2a48fc0ab24241755dc9, which introduced the private loop_mutex as part of the BKL removal process. As per [1], the mutex can be safely removed. [1] http://www.gossamer-threads.com/lists/linux/kernel/1341930 Addresses: https://bugzilla.novell.com/show_bug.cgi?id=669394 Addresses: https://bugzilla.kernel.org/show_bug.cgi?id=29172 Signed-off-by: Petr Uzel <[email protected]> Cc: [email protected] Reviewed-by: Nikanth Karthikesan <[email protected]> Acked-by: Arnd Bergmann <[email protected]> Signed-off-by: Jens Axboe <[email protected]>
2011-03-03blktrace: Remove blk_fill_rwbs_rq.Tao Ma3-20/+3
If we enable trace events to trace block actions, We use blk_fill_rwbs_rq to analyze the corresponding actions in request's cmd_flags, but we only choose the minor 2 bits from it, so most of other flags(e.g, REQ_SYNC) are missing. For example, with a sync write we get: write_test-2409 [001] 160.013869: block_rq_insert: 3,64 W 0 () 258135 + = 8 [write_test] Since now we have integrated the flags of both bio and request, it is safe to pass rq->cmd_flags directly to blk_fill_rwbs and blk_fill_rwbs_rq isn't needed any more. With this patch, after a sync write we get: write_test-2417 [000] 226.603878: block_rq_insert: 3,64 WS 0 () 258135 += 8 [write_test] Signed-off-by: Tao Ma <[email protected]> Acked-by: Jeff Moyer <[email protected]> Signed-off-by: Jens Axboe <[email protected]>
2011-03-03hfs: fix rename() over non-empty directoryAl Viro1-37/+13
merge hfs_unlink() and hfs_rmdir(), while we are at it. Signed-off-by: Al Viro <[email protected]>
2011-03-03udf: fix i_nlink limitAl Viro1-6/+5
(256 << sizeof(x)) - 1 is not the maximal possible value of x... In reality, the maximal allowed value for UDF FileLinkCount is 65535. Signed-off-by: Al Viro <[email protected]>
2011-03-03fix reiserfs mkdir() breakageAl Viro1-1/+1
if directory has so many subdirectories that its link count is set to 1 (i.e. "can't tell accurately") and reiserfs_new_inode() fails, we shouldn't decrement the parent's link count in cleanup path; that's what DEC_DIR_INODE_NLINK() is for. As it is, we end up with parent suddenly getting zero i_nlink, with very unpleasant effects. Signed-off-by: Al Viro <[email protected]>
2011-03-03exofs: i_nlink races in rename()Al Viro1-6/+2
Signed-off-by: Al Viro <[email protected]>
2011-03-03nilfs2: i_nlink races in rename()Al Viro1-7/+1
Signed-off-by: Al Viro <[email protected]>
2011-03-03minix: i_nlink races in rename()Al Viro1-6/+2
Signed-off-by: Al Viro <[email protected]>
2011-03-03ufs: i_nlink races in rename()Al Viro1-7/+2
Signed-off-by: Al Viro <[email protected]>
2011-03-03sysv: i_nlink races in rename()Al Viro1-6/+2
Signed-off-by: Al Viro <[email protected]>
2011-03-02RxRPC: Fix v1 keysAnton Blanchard1-1/+0
commit 339412841d7 (RxRPC: Allow key payloads to be passed in XDR form) broke klog for me. I notice the v1 key struct had a kif_version field added: -struct rxkad_key { - u16 security_index; /* RxRPC header security index */ - u16 ticket_len; /* length of ticket[] */ - u32 expiry; /* time at which expires */ - u32 kvno; /* key version number */ - u8 session_key[8]; /* DES session key */ - u8 ticket[0]; /* the encrypted ticket */ -}; +struct rxrpc_key_data_v1 { + u32 kif_version; /* 1 */ + u16 security_index; + u16 ticket_length; + u32 expiry; /* time_t */ + u32 kvno; + u8 session_key[8]; + u8 ticket[0]; +}; However the code in rxrpc_instantiate strips it away: data += sizeof(kver); datalen -= sizeof(kver); Removing kif_version fixes my problem. Signed-off-by: Anton Blanchard <[email protected]> Signed-off-by: David Howells <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2011-03-02AF_RXRPC: Handle receiving ACKALL packetsDavid Howells1-0/+1
The OpenAFS server is now sending ACKALL packets, so we need to handle them. Otherwise we report a protocol error and abort. Signed-off-by: David Howells <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2011-03-02Merge branch 'drm-fixes' of ↵Linus Torvalds1-0/+11
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/i915: fix memory corruption with GM965 and >4GB RAM
2011-03-02Merge branch 'devicetree/merge' of git://git.secretlab.ca/git/linux-2.6Linus Torvalds4-73/+45
* 'devicetree/merge' of git://git.secretlab.ca/git/linux-2.6: of/promtree: allow DT device matching by fixing 'name' brokenness (v5) x86: OLPC: have prom_early_alloc BUG rather than return NULL of/flattree: Drop an uninteresting message to pr_debug level of: Add missing of_address.h to xilinx ehci driver
2011-03-02Merge branch 'for-linus' of ↵Linus Torvalds22-209/+224
git://git.kernel.org/pub/scm/linux/kernel/git/mattst88/alpha-2.6 * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mattst88/alpha-2.6: alpha: Enable GENERIC_HARDIRQS_NO_DEPRECATED alpha: irq: Convert affinity to use irq_data alpha: irq: Remove pointless irq status manipulation alpha: titan: Convert irq_chip functions alpha: takara: Convert irq_chip functions alpha: sable: Convert irq_chip functions alpha: rx164: Convert irq_chip functions alpha: noritake: Convert irq_chip functions alpha: rawhide: Convert irq_chip functions alpha: mikasa: Convert irq_chip functions alpha: marvel: Convert irq_chip functions alpha: eiger: Convert irq_chip functions alpha: eb64p: Convert irq_chip functions alpha: dp264: Convert irq_chip functions alpha: cabriolet: Convert irq_chip functions alpha: i8259, alcor, jensen wildfire: Convert irq_chip alpha: srm: Convert irq_chip functions alpha: Pyxis convert irq_chip functions Fix typo in call to irq_to_desc()
2011-03-02Merge branch 'for-linus' of ↵Linus Torvalds6-12/+37
git://git.kernel.org/pub/scm/linux/kernel/git/sameo/mfd-2.6 * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sameo/mfd-2.6: mfd: Avoid tps6586x burst writes mfd: Don't suspend WM8994 if the CODEC is not suspended mfd: Fix DaVinci voice codec device name mfd: Fix NULL pointer due to non-initialized ucb1x00-ts absinfo mfd: Fix ASIC3 build with GENERIC_HARDIRQS_NO_DEPRECATED
2011-03-02Merge branch 'for_linus' of ↵Linus Torvalds1-7/+2
git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs-2.6 * 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs-2.6: ext2: Fix link count corruption under heavy link+rename load
2011-03-02Merge branch 'fixes' of ↵Linus Torvalds3-18/+28
git://git.kernel.org/pub/scm/linux/kernel/git/davej/cpufreq * 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/davej/cpufreq: [CPUFREQ] p4-clockmod: print EST-capable warning message only once [CPUFREQ] fix BUG on cpufreq policy init failure [CPUFREQ] Fix another notifier leak in powernow-k8. [CPUFREQ] Missing "unregister_cpu_notifier" in powernow-k8.c
2011-03-02Merge branch 'merge' of ↵Linus Torvalds4-7/+18
git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc * 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc: powerpc: Fix call to flush_ptrace_hw_breakpoint() powerpc/kexec: Restore ppc_md.machine_kexec powerpc/mm: Make hpte_need_flush() safe for preemption
2011-03-02Merge branch 'idle-release' of ↵Linus Torvalds2-0/+29
git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-idle-2.6 * 'idle-release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-idle-2.6: intel_idle: disable Atom/Lincroft HW C-state auto-demotion intel_idle: disable NHM/WSM HW C-state auto-demotion
2011-03-02cnic: Fix lost interrupt on bnx2xMichael Chan1-8/+17
We service 2 queues (kcq1 and kcq2) in cnic_service_bnx2x_bh(). If the status block index has changed when servicing the kcq2, we must go back and check kcq1. The latest status block index will be used to acknowledge the interrupt, and without looping back to check kcq1, we may miss events on kcq1. Signed-off-by: Michael Chan <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2011-03-02cnic: Prevent status block race conditions with hardwareMichael Chan1-0/+8
The status block index is used to acknowledge interrupt events and must be read before checking for the interrupt events, so we need to add rmb() to guarantee that. Signed-off-by: Michael Chan <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2011-03-02Merge branch 'release' of ↵Linus Torvalds4-20/+66
git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6 * 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6: ACPI / ACPICA: Implicit notify for multiple devices ACPI / debugfs: Fix buffer overflows, double free
2011-03-02Merge branch 'master' of ↵David S. Miller3-3/+5
master.kernel.org:/pub/scm/linux/kernel/git/jkirsher/net-2.6
2011-03-02net: dcbnl: check correct ops in dcbnl_ieee_set()John Fastabend1-1/+1
The incorrect ops routine was being tested for in DCB_ATTR_IEEE_PFC attributes. This patch corrects it. Currently, every driver implementing ieee_setets also implements ieee_setpfc so this bug is not actualized yet. Signed-off-by: John Fastabend <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2011-03-02of/promtree: allow DT device matching by fixing 'name' brokenness (v5)Andres Salomon1-70/+42
Commit e2f2a93b, "of/promtree: add package-to-path support to pdt" changed dp->name from using the 'name' property to using package-to-path. This fixed /proc/device-tree creation by eliminating conflicts between names (the 'name' property provides names like 'battery', whereas package-to-path provides names like '/foo/bar/battery@0', which we stripped to 'battery@0'). However, it also breaks of_device_id table matching. The fix that we _really_ wanted was to keep dp->name based upon the name property ('battery'), but based dp->full_name upon package-to-path ('battery@0'). This patch does just that. This changes all users (except SPARC) of promtree to use the full result from package-to-path for full_name, rather than stripping the directory out. In practice, the strings end up being exactly the same; this change saves time, code, and memory. SPARC continues to use the existing build_path_component() code. v2: combine two patches and revert of_pdt_node_name to original version v3: use dp->phandle instead of passing around node v4: warn/bail out for non-sparc archs if pkg2path is not set v5: split of_pdt_build_full_name into sparc & non-sparc versions v6: Pass NULL to pkg2path before buf gets assigned. Drop check for pkg2path hook on each and every node. v7: Don't BUG() when unable to get the full_path; create a known-unique name instead. Signed-off-by: Andres Salomon <[email protected]> Signed-off-by: Grant Likely <[email protected]>
2011-03-02x86: OLPC: have prom_early_alloc BUG rather than return NULLAndres Salomon1-2/+1
..similar to what sparc's prom_early_alloc does. Signed-off-by: Andres Salomon <[email protected]> Signed-off-by: Grant Likely <[email protected]>
2011-03-02of/flattree: Drop an uninteresting message to pr_debug levelPaul Bolle1-1/+1
This message looks like an error (which it isn't) when booting with a flattened device tree. Remove the message from normal kernel builds. Signed-off-by: Paul Bolle <[email protected]> Signed-off-by: Grant Likely <[email protected]>
2011-03-02of: Add missing of_address.h to xilinx ehci driverMichal Simek1-0/+1
Build log: In file included from drivers/usb/host/ehci-hcd.c:1208: drivers/usb/host/ehci-xilinx-of.c: In function 'ehci_hcd_xilinx_of_probe': drivers/usb/host/ehci-xilinx-of.c:168: error: implicit declaration of function 'of_address_to_resource' Signed-off-by: John Williams <[email protected]> Signed-off-by: Michal Simek <[email protected]> Acked-by: Greg Kroah-Hartman <[email protected]> Signed-off-by: Grant Likely <[email protected]>
2011-03-02alpha: Enable GENERIC_HARDIRQS_NO_DEPRECATEDThomas Gleixner1-0/+1
All interrupt chips are converted. Mark it clean. Signed-off-by: Thomas Gleixner <[email protected]> Signed-off-by: Matt Turner <[email protected]>
2011-03-02alpha: irq: Convert affinity to use irq_dataThomas Gleixner1-4/+9
affinity is moving to irq_data. Fix it up. Signed-off-by: Thomas Gleixner <[email protected]> Signed-off-by: Matt Turner <[email protected]>
2011-03-02alpha: irq: Remove pointless irq status manipulationThomas Gleixner1-8/+3
The irq descriptors are initialized IRQ_DISABLED in the generic code. No need to fiddle with them. Signed-off-by: Thomas Gleixner <[email protected]> Signed-off-by: Matt Turner <[email protected]>
2011-03-02alpha: titan: Convert irq_chip functionsThomas Gleixner1-9/+12
Signed-off-by: Thomas Gleixner <[email protected]> Signed-off-by: Matt Turner <[email protected]>
2011-03-02alpha: takara: Convert irq_chip functionsThomas Gleixner1-6/+8
Signed-off-by: Thomas Gleixner <[email protected]> Signed-off-by: Matt Turner <[email protected]>
2011-03-02alpha: sable: Convert irq_chip functionsThomas Gleixner1-10/+10
Signed-off-by: Thomas Gleixner <[email protected]> Signed-off-by: Matt Turner <[email protected]>
2011-03-02alpha: rx164: Convert irq_chip functionsThomas Gleixner1-8/+8
Signed-off-by: Thomas Gleixner <[email protected]> Signed-off-by: Matt Turner <[email protected]>
2011-03-02alpha: noritake: Convert irq_chip functionsThomas Gleixner1-8/+8
Signed-off-by: Thomas Gleixner <[email protected]> Signed-off-by: Matt Turner <[email protected]>
2011-03-02alpha: rawhide: Convert irq_chip functionsThomas Gleixner1-7/+10
Signed-off-by: Matt Turner <[email protected]>
2011-03-02alpha: mikasa: Convert irq_chip functionsThomas Gleixner1-8/+8
Signed-off-by: Thomas Gleixner <[email protected]> Signed-off-by: Matt Turner <[email protected]>
2011-03-02alpha: marvel: Convert irq_chip functionsThomas Gleixner1-23/+19
Signed-off-by: Thomas Gleixner <[email protected]> Signed-off-by: Matt Turner <[email protected]>
2011-03-02alpha: eiger: Convert irq_chip functionsThomas Gleixner1-6/+8
Signed-off-by: Thomas Gleixner <[email protected]> Signed-off-by: Matt Turner <[email protected]>
2011-03-02alpha: eb64p: Convert irq_chip functionsThomas Gleixner1-9/+9
Signed-off-by: Thomas Gleixner <[email protected]> Signed-off-by: Matt Turner <[email protected]>
2011-03-02alpha: dp264: Convert irq_chip functionsThomas Gleixner1-25/+27
Signed-off-by: Thomas Gleixner <[email protected]> Signed-off-by: Matt Turner <[email protected]>
2011-03-02alpha: cabriolet: Convert irq_chip functionsThomas Gleixner1-8/+8
Signed-off-by: Thomas Gleixner <[email protected]> Signed-off-by: Matt Turner <[email protected]>
2011-03-02alpha: i8259, alcor, jensen wildfire: Convert irq_chipThomas Gleixner5-52/+58
Signed-off-by: Thomas Gleixner <[email protected]> Signed-off-by: Matt Turner <[email protected]>
2011-03-02alpha: srm: Convert irq_chip functionsThomas Gleixner1-8/+8
Signed-off-by: Thomas Gleixner <[email protected]> Signed-off-by: Matt Turner <[email protected]>
2011-03-02alpha: Pyxis convert irq_chip functionsThomas Gleixner1-10/+10
Signed-off-by: Thomas Gleixner <[email protected]> Signed-off-by: Matt Turner <[email protected]>
2011-03-02Fix typo in call to irq_to_desc()Morten Holst Larsen1-1/+1
Fix typo in call to irq_to_desc() Signed-off-by: Morten H. Larsen <[email protected]> Signed-off-by: Matt Turner <[email protected]>
2011-03-02Merge branch 'master' of ↵David S. Miller2-2/+6
git://git.kernel.org/pub/scm/linux/kernel/git/kaber/nf-2.6
2011-03-02block: blk-flush shouldn't call directly into q->request_fn() __blk_run_queue()Tejun Heo1-3/+5
blk-flush decomposes a flush into sequence of multiple requests. On completion of a request, the next one is queued; however, block layer must not implicitly call into q->request_fn() directly from completion path. This makes the queue behave unexpectedly when seen from the drivers and violates the assumption that q->request_fn() is called with process context + queue_lock. This patch makes blk-flush the following two changes to make sure q->request_fn() is not called directly from request completion path. - blk_flush_complete_seq_end_io() now asks __blk_run_queue() to always use kblockd instead of calling directly into q->request_fn(). - queue_next_fseq() uses ELEVATOR_INSERT_REQUEUE instead of ELEVATOR_INSERT_FRONT so that elv_insert() doesn't try to unplug the request queue directly. Reported by Jan in the following threads. http://thread.gmane.org/gmane.linux.ide/48778 http://thread.gmane.org/gmane.linux.ide/48786 stable: applicable to v2.6.37. Signed-off-by: Tejun Heo <[email protected]> Reported-by: Jan Beulich <[email protected]> Cc: "David S. Miller" <[email protected]> Cc: [email protected] Signed-off-by: Jens Axboe <[email protected]>