05 Mar, 2011
5 commits
-
This removes the implementation of the big kernel lock,
at last. A lot of people have worked on this in the
past, I so the credit for this patch should be with
everyone who participated in the hunt.The names on the Cc list are the people that were the
most active in this, according to the recorded git
history, in alphabetical order.Signed-off-by: Arnd Bergmann
Acked-by: Alan Cox
Cc: Alessio Igor Bogani
Cc: Al Viro
Cc: Andrew Hendry
Cc: Andrew Morton
Cc: Christoph Hellwig
Cc: Eric W. Biederman
Cc: Frederic Weisbecker
Cc: Hans Verkuil
Acked-by: Ingo Molnar
Cc: Jan Blunck
Cc: John Kacur
Cc: Jonathan Corbet
Cc: Linus Torvalds
Cc: Matthew Wilcox
Cc: Oliver Neukum
Cc: Paul Menage
Acked-by: Thomas Gleixner
Cc: Trond Myklebust -
The comment is no longer true as (now that the BKL conversion is
finished) a spinlock _is_ now used to protect file_lock_list,
blocked_list and inode->i_flock.Signed-off-by: Matt Fleming
Signed-off-by: Arnd Bergmann -
This replaces all instances of lock_kernel in the
IPX code with lock_sock. As far as I can tell, this
is safe to do, because there is no global state
that needs to be locked in IPX, and the code does
not recursively take the lock or sleep indefinitely
while holding it.Compile-tested only.
Signed-off-by: Arnd Bergmann
Acked-by: David S. Miller
Cc: Arnaldo Carvalho de Melo
Cc: netdev@vger.kernel.org -
This changes appletalk to use lock_sock instead of
lock_kernel for serialization. I tried to make sure
that we don't hold the socket lock during sleeping
functions, but I did not try to prove whether the
locks are necessary in the first place.Compile-tested only.
Signed-off-by: Arnd Bergmann
Acked-by: David S. Miller
Cc: Arnaldo Carvalho de Melo
Cc: David Miller
Cc: netdev@vger.kernel.org -
This replaces all instances of lock_kernel in x25
with lock_sock, taking care to release the socket
lock around sleeping functions (sock_alloc_send_skb
and skb_recv_datagram). It is not clear whether
this is a correct solution, but it seem to be what
other protocols do in the same situation.Includes a fix suggested by Eric Dumazet.
Signed-off-by: Arnd Bergmann
Acked-by: David S. Miller
Tested-by: Andrew Hendry
Cc: linux-x25@vger.kernel.org
Cc: netdev@vger.kernel.org
Cc: Eric Dumazet
03 Mar, 2011
2 commits
-
This introduces a new per-superblock mutex in UFS to replace
the big kernel lock. I have been careful to avoid nested
calls to lock_ufs and to get the lock order right with
respect to other mutexes, in particular lock_super.I did not make any attempt to prove that the big kernel
lock is not needed in a particular place in the code,
which is very possible.The mutex has a significant performance impact, so it is only
used on SMP or PREEMPT configurations.As Nick Piggin noticed, any allocation inside of the lock
may end up deadlocking when we get to ufs_getfrag_block
in the reclaim task, so we now use GFP_NOFS.Signed-off-by: Arnd Bergmann
Tested-by: Nick Bowler
Cc: Evgeniy Dushistov
Cc: Nick Piggin -
This removes the BKL in hpfs in a rather awful
way, by making the code only work on uniprocessor
systems without kernel preemption, as suggested
by Andi Kleen.The HPFS code probably has close to zero remaining
users on current kernels, all archeological uses of
the file system can probably be done with the significant
restrictions.The hpfs_lock/hpfs_unlock functions are left in the
code, sincen Mikulas has indicated that he is still
interested in fixing it in a better way.Signed-off-by: Arnd Bergmann
Acked-by: Andi Kleen
Cc: Mikulas Patocka
Cc: linux-fsdevel@vger.kernel.org
02 Mar, 2011
3 commits
-
These were missed the last time I cleaned this up
globally, because of code moving around or new code
getting merged.Signed-off-by: Arnd Bergmann
-
No reason to trace it when the last user is gone.
Signed-off-by: Arnd Bergmann
Acked-by: Frederic Weisbecker -
According to Russell King, adfs was written to not require the big
kernel lock, and all inode updates are done under adfs_dir_lock.All other metadata in adfs is read-only and does not require locking.
The use of the BKL is the result of various pushdowns from the VFS
operations.Signed-off-by: Arnd Bergmann
Acked-by: Russell King
Cc: Stuart Swales
22 Feb, 2011
30 commits
-
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ecryptfs/ecryptfs-2.6:
eCryptfs: Copy up lower inode attrs in getattr
ecryptfs: read on a directory should return EISDIR if not supported
eCryptfs: Handle NULL nameidata pointers
eCryptfs: Revert "dont call lookup_one_len to avoid NULL nameidata" -
The current code does not follow Intel documentation: It misses some things
and does other, undocumented things. This causes wrong backlight values in
certain conditions. Instead of adding tricky code handling badly documented
and rare corner cases, don't handle combination mode specially at all. This
way PCI_LBPC is never touched and weird things shouldn't happen.If combination mode is enabled, then the only downside is that changing the
brightness has a greater granularity (the LBPC value), but LBPC is at most
254 and the maximum is in the thousands, so this is no real functional loss.A potential problem with not handling combined mode is that a brightness of
max * PCI_LBPC is not bright enough. However, this is very unlikely because
from the documentation LBPC seems to act as a scaling factor and doesn't look
like it's supposed to be changed after boot. The value at boot should always
result in a bright enough screen.IMPORTANT: However, although usually the above is true, it may not be when
people ran an older (2.6.37) kernel which messed up the LBPC register, and
they are unlucky enough to have a BIOS that saves and restores the LBPC value.
Then a good kernel may seem to not work: Max brightness isn't bright enough.
If this happens people should boot back into the old kernel, set brightness
to the maximum, and then reboot. After that everything should be fine.For more information see the below links. This fixes bugs:
http://bugzilla.kernel.org/show_bug.cgi?id=23472
http://bugzilla.kernel.org/show_bug.cgi?id=25072Signed-off-by: Indan Zupancic
Tested-by: Alex Riesen
Signed-off-by: Linus Torvalds -
We force particular alignment when we generate attribute structures
when generation MODULE_VERSION() data and we need to make sure that
this alignment is followed when we iterate over these structures,
otherwise we may crash on platforms whose natural alignment is not
sizeof(void *), such as m68k.Reported-by: Geert Uytterhoeven
Signed-off-by: Dmitry Torokhov
[ There are more issues here, but the fixes are incredibly ugly - Linus ]
Signed-off-by: Linus Torvalds -
* 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mjg59/platform-drivers-x86:
dell-laptop: Toggle the unsupported hardware killswitch
thinkpad_acpi: Always report scancodes for hotkeys
acer-wmi: Fix capitalisation of GUID
platform/x86: ideapad-laptop depends on INPUT
platform: x86: acer-wmi: world-writable sysfs threeg file
platform: x86: asus_acpi: world-writable procfs files
platform: x86: tc1100-wmi: world-writable sysfs wireless and jogdial files
platform-drivers: x86: pmic: Use request_irq instead of chained handler
platform-drivers: x86: pmic: Use irq_chip buslock mechanism
platform-drivers: x86: Convert pmic to new irq_chip functions
platform-drivers: x86: pmic: Fix up bogus irq hackery -
* 'rc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild-2.6:
fixdep: Do not record dependency on the source file itself -
Add fs/eventfd.c to filesystems docbook.
Make typo corrections in fs/eventfd.c.Signed-off-by: Randy Dunlap
Cc: Davide Libenzi
Signed-off-by: Linus Torvalds -
Update the "log_buf_len" description to use [KMG] syntax for the
buffer size.Signed-off-by: Randy Dunlap
Signed-off-by: Linus Torvalds -
The '[KMG]' suffix is commonly described after a number of kernel
parameter values documentation. Explicitly state its semantics.Signed-off-by: Ahmed S. Darwish
Signed-off-by: Randy Dunlap
Signed-off-by: Linus Torvalds -
Complete the crashkernel= kernel parameter documentation.
Signed-off-by: Ahmed S. Darwish
Acked-by: Simon Horman
Acked-by: Vivek Goyal
Signed-off-by: Randy Dunlap
Signed-off-by: Linus Torvalds -
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client:
ceph: keep reference to parent inode on ceph_dentry
ceph: queue cap_snaps once per realm
libceph: fix socket write error handling
libceph: fix socket read error handling -
…git/kgene/linux-samsung
* 's5p-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung:
ARM: S5PV210: Fix regulator names
ARM: S5PV210: Update max8998_platform_data
ARM: SAMSUNG: Drop exporting s3c24xx_ts_set_platdata
ARM: S5P: Fix end address in memory resource information for UART devices
ARM: S5P64X0: Cleanup map.h file
ARM: S5P6442: Cleanup map.h file
ARM: S5PC100: Clenaup map.h file
ARM: S5PV210: Cleanup map.h file
ARM: S5PV310: Cleanup map.h file -
* git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6:
[CIFS] update cifs version
cifs: Fix regression in LANMAN (LM) auth code
cifs: fix handling of scopeid in cifs_convert_address -
* 'fixes' of master.kernel.org:/home/rmk/linux-2.6-arm:
ARM: 6745/1: kprobes insn decoding fix
ARM: tlb: move noMMU tlb_flush() to asm/tlb.h
ARM: tlb: delay page freeing for SMP and ARMv7 CPUs
ARM: Keep exit text/data around for SMP_ON_UP
ARM: Ensure predictable endian state on signal handler entry
ARM: 6740/1: Place correctly notes section in the linker script
ARM: 6700/1: SPEAr: Correct SOC config base address for spear320
ARM: 6722/1: SPEAr: sp810: switch to slow mode before reset
ARM: 6712/1: SPEAr: replace readl(), writel() with relaxed versions in uncompress.h
ARM: 6720/1: SPEAr: Append UL to VMALLOC_END
ARM: 6676/1: Correct the cpu_architecture() function for ARMv7
ARM: 6739/1: update .gitignore for boot/compressed
ARM: 6743/1: errata: interrupted ICALLUIS may prevent completion of broadcasted operation
ARM: 6742/1: pmu: avoid setting IRQ affinity on UP systems
ARM: 6741/1: errata: pl310 cache sync operation may be faulty -
* 'for-linus' of git://git390.marist.edu/pub/scm/linux-2.6:
[S390] net: provide architecture specific NET_SKB_PAD
[S390] atomic: use inline asm
[S390] correct ipl parameter block safe guard
[S390] atomic: use ACCESS_ONCE() for atomic_read()
[S390] dasd: correct device table -
Update version to 1.71 so we can more easily spot modules with the last two fixes
Signed-off-by: Steve French
-
It is found on Dell Inspiron 1018 that the firmware reports that the hardware
killswitch is not supported. This makes the rfkill key not functional.This patch forces the driver to toggle the firmware rfkill status in the case
that the hardware killswitch is indicated as unsupported by the firmware.Signed-off-by: Keng-Yu Lin
Tested-by: Alessio Igor Bogani
Signed-off-by: Matthew Garrett -
Some thinkpad hotkeys report key codes like KEY_FN_F8 when something
like KEY_VOLUMEDOWN is desired. Always provide the scan codes in
addition to the key codes to assist with debugging these issues. Also
send the scan code before the key code to match what other drivers do,
as some userspace utilities expect this ordering.Signed-off-by: Seth Forshee
Signed-off-by: Matthew Garrett -
6AF4F258-B401-42fd-BE91-3D4AC2D7C0D3 needs to be
6AF4F258-B401-42FD-BE91-3D4AC2D7C0D3 to match the hardware alias.Signed-off-by: Matthew Garrett
Acked-by: Carlos Corbacho
Cc: stable@kernel.org -
Most platform/x86 drivers that use INPUT_SPARSEKMAP also depend on INPUT,
so do the same for ideapad-laptop. This fixes a kconfig warning and
subsequent build errors when CONFIG_INPUT is disabled.warning: (ACER_WMI && ASUS_LAPTOP && DELL_WMI && HP_WMI && PANASONIC_LAPTOP && IDEAPAD_LAPTOP && EEEPC_LAPTOP && EEEPC_WMI && MSI_WMI && TOPSTAR_LAPTOP && ACPI_TOSHIBA) selects INPUT_SPARSEKMAP which has unmet direct dependencies (!S390 && INPUT)
ERROR: "input_free_device" [drivers/platform/x86/ideapad-laptop.ko] undefined!
ERROR: "input_register_device" [drivers/platform/x86/ideapad-laptop.ko] undefined!
ERROR: "sparse_keymap_setup" [drivers/platform/x86/ideapad-laptop.ko] undefined!
ERROR: "input_allocate_device" [drivers/platform/x86/ideapad-laptop.ko] undefined!
ERROR: "input_unregister_device" [drivers/platform/x86/ideapad-laptop.ko] undefined!
ERROR: "sparse_keymap_free" [drivers/platform/x86/ideapad-laptop.ko] undefined!
ERROR: "sparse_keymap_report_event" [drivers/platform/x86/ideapad-laptop.ko] undefined!Signed-off-by: Randy Dunlap
Cc: David Woodhouse
Cc: Matthew Garrett
Cc: platform-driver-x86@vger.kernel.org
Signed-off-by: Matthew Garrett -
Don't allow everybody to write to hardware registers.
Signed-off-by: Vasiliy Kulikov
Signed-off-by: Matthew Garrett -
Don't allow everybody to change ACPI settings. The comment says that it
is done deliberatelly, however, the comment before disp_proc_write()
says that at least one of these setting is experimental.Signed-off-by: Vasiliy Kulikov
Signed-off-by: Matthew Garrett -
Don't allow everybody to change WMI settings.
Signed-off-by: Vasiliy Kulikov
Signed-off-by: Matthew Garrett -
There is no need to install a chained handler for this hardware. This
is a plain x86 IOAPIC interrupt which is handled by the core code
perfectly fine. There is nothing special about demultiplexing these
gpio interrupts which justifies a custom hack. Replace it by a plain
old interrupt handler installed with request_irq. That makes the code
agnostic about the underlying primary interrupt hardware. The overhead
for this is minimal, but it gives us the advantage of accounting,
balancing and to detect interrupt storms. gpio interrupts are not
really that performance critical.Patch fixups from akpm
Signed-off-by: Thomas Gleixner
Signed-off-by: Matthew Garrett
Signed-off-by: Andrew Morton -
LANMAN response length was changed to 16 bytes instead of 24 bytes.
Revert it back to 24 bytes.Signed-off-by: Shirish Pargaonkar
CC: stable@kernel.org
Signed-off-by: Steve French -
The lower filesystem may do some type of inode revalidation during a
getattr call. eCryptfs should take advantage of that by copying the
lower inode attributes to the eCryptfs inode after a call to
vfs_getattr() on the lower inode.I originally wrote this fix while working on eCryptfs on nfsv3 support,
but discovered it also fixed an eCryptfs on ext4 nanosecond timestamp
bug that was reported.https://bugs.launchpad.net/bugs/613873
Cc:
Signed-off-by: Tyler Hicks -
read() calls against a file descriptor connected to a directory are
incorrectly returning EINVAL rather than EISDIR:[EISDIR]
[XSI] [Option Start] The fildes argument refers to a directory and the
implementation does not allow the directory to be read using read()
or pread(). The readdir() function should be used instead. [Option End]This occurs because we do not have a .read operation defined for
ecryptfs directories. Connect this up to generic_read_dir().BugLink: http://bugs.launchpad.net/bugs/719691
Signed-off-by: Andy Whitcroft
Signed-off-by: Tyler Hicks -
Allow for NULL nameidata pointers in eCryptfs create, lookup, and
d_revalidate functions.Signed-off-by: Tyler Hicks
-
Marcin Slusarz says:
> In arch/arm/kernel/kprobes-decode.c there's a function
> arm_kprobe_decode_insn which does:
>
> } else if ((insn & 0x0e000000) == 0x0c400000) {
> ...
>
> This is always false, so code below is dead.
> I found this bug by coccinelle (http://coccinelle.lip6.fr/).Reported-by: Marcin Slusarz
Signed-off-by: Nicolas Pitre
Signed-off-by: Russell King -
There's no need to noMMU to put tlb_flush() in asm/tlbflush.h - it's
part of the tlb shootdown interface. Move it to asm/tlb.h instead, as
per x86.Signed-off-by: Russell King