09 Mar, 2007

8 commits


08 Mar, 2007

32 commits

  • ecryptfs uses a lock_parent() function, which I hope really locks the parents
    and is not abused

    Signed-off-by: Peter Zijlstra
    Cc: Michael Halcrow
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Peter Zijlstra
     
  • The sn console driver was snagged by the use of CONFIG_DEBUG_SHIRQ!

    The request_irq() immediate call to the interrupt handler caused
    another attempt to lock the port lock - deadlock.

    This is a patch to fix that.

    Signed-off-by: Patrick Gefre
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Pat Gefre
     
  • In my previous x86_64 thread fix, I forgot to initialize thread.arch.fs in
    arch_prctl. A process calling arch_prctl to set %fs would lose it on the
    next context switch.

    It also turns out that you can switch to a process which is in the process
    of exiting and which has lost its mm. In this case, it's worse than
    useless to try to call arch_prctl on the host process.

    Signed-off-by: Jeff Dike
    Cc: Paolo 'Blaisorblade' Giarrusso
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jeff Dike
     
  • Fix inverted check introduced in 57881dd9df40b76dc7fc6a0d13fd75f337accb32 "Fix
    check_partition routines".

    Signed-off-by: Suzuki K P
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    suzuki
     
  • IA64 and ARM-OABI are currently using their own version of epoll compat_
    code.

    An architecture needs epoll_event translation if alignof(u64) in 32 bit
    mode is different from alignof(u64) in 64 bit mode. If an architecture
    needs epoll_event translation, it must define struct compat_epoll_event in
    asm/compat.h and set CONFIG_HAVE_COMPAT_EPOLL_EVENT and use
    compat_sys_epoll_ctl and compat_sys_epoll_wait.

    All 64 bit architecture should use compat_sys_epoll_pwait.

    [sfr: restructure and move to fs/compat.c, remove MIPS version
    of compat_sys_epoll_pwait, use __put_user_unaligned]

    Signed-off-by: Stephen Rothwell
    Cc: David Woodhouse
    Cc: Russell King
    Cc: "Luck, Tony"
    Cc: "David S. Miller"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Davide Libenzi
     
  • [Bluetooth] Fix socket locking in hci_sock_dev_event()

    hci_sock_dev_event() uses bh_lock_sock() to lock the socket lock.
    This is not deadlock-safe against locking of the same socket lock in
    l2cap_connect_cfm() from softirq context. In addition to that,
    hci_sock_dev_event() doesn't seem to be called from softirq context,
    so it is safe to use lock_sock()/release_sock() instead.

    The lockdep warning can be triggered on my T42p simply by switching
    the Bluetooth off by the keyboard button.

    =================================
    [ INFO: inconsistent lock state ]
    2.6.21-rc2 #4
    ---------------------------------
    inconsistent {in-softirq-W} -> {softirq-on-W} usage.
    khubd/156 [HC0[0]:SC0[0]:HE1:SE1] takes:
    (slock-AF_BLUETOOTH){-+..}, at: [] hci_sock_dev_event+0xa8/0xc5 [bluetooth]
    {in-softirq-W} state was registered at:
    [] mark_lock+0x59/0x414
    [] l2cap_connect_cfm+0x4e/0x11f [l2cap]
    [] __lock_acquire+0x3e5/0xb99
    [] l2cap_connect_cfm+0x4e/0x11f [l2cap]
    [] lock_acquire+0x67/0x81
    [] l2cap_connect_cfm+0x4e/0x11f [l2cap]
    [] _spin_lock+0x29/0x34
    [] l2cap_connect_cfm+0x4e/0x11f [l2cap]
    [] l2cap_connect_cfm+0x4e/0x11f [l2cap]
    [] hci_send_cmd+0x126/0x14f [bluetooth]
    [] hci_event_packet+0x729/0xebd [bluetooth]
    [] hci_rx_task+0x2a/0x20f [bluetooth]
    [] hci_rx_task+0x6c/0x20f [bluetooth]
    [] trace_hardirqs_on+0x10d/0x14e
    [] tasklet_action+0x3d/0x68
    [] __do_softirq+0x41/0x92
    [] do_softirq+0x27/0x3d
    [] do_IRQ+0x7b/0x8f
    [] common_interrupt+0x24/0x34
    [] common_interrupt+0x2e/0x34
    [] acpi_processor_idle+0x1b3/0x34a
    [] acpi_processor_idle+0x1b6/0x34a
    [] cpu_idle+0x39/0x4e
    [] start_kernel+0x372/0x37a
    [] unknown_bootoption+0x0/0x202
    [] 0xffffffff

    Signed-off-by: Jiri Kosina
    Acked-by: Marcel Holtmann
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jiri Kosina
     
  • Also PTRACE_OLDSETOPTIONS should be accepted, as done by kernel/ptrace.c
    and forced by binary compatibility. UML/32bit breaks because of this -
    since it is wise enough to use PTRACE_OLDSETOPTIONS to be binary compatible
    with 2.4 host kernels.

    Until 2.6.17 (commit f0f2d6536e3515b5b1b7ae97dc8f176860c8c2ce) we had:

    default:
    return sys_ptrace(request, pid, addr, data);

    Instead here we have:
    case PTRACE_GET_THREAD_AREA:
    case ...:
    return sys_ptrace(request, pid, addr, data);

    default:
    return -EINVAL;

    This change was a style change - when a case is added, it must be
    explicitly tested this way. In this case, not enough testing was done.

    Cc: Andi Kleen
    Signed-off-by: Paolo 'Blaisorblade' Giarrusso
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Paolo 'Blaisorblade' Giarrusso
     
  • Avoid reusing userspace errno twice - it can be cleared by libc code
    everywhere (in particular printk() does clear it in my setup).

    Signed-off-by: Paolo 'Blaisorblade' Giarrusso
    Acked-by: Jeff Dike
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Paolo 'Blaisorblade' Giarrusso
     
  • Avoid returning ENOMEM in case of a duplicate IRQ - ENOMEM was saved into err
    earlier.

    Signed-off-by: Paolo 'Blaisorblade' Giarrusso
    Acked-by: Jeff Dike
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Paolo 'Blaisorblade' Giarrusso
     
  • Fix confusion about call context - comments and code are inconsistent and
    plain wrong, my fault.

    Signed-off-by: Paolo 'Blaisorblade' Giarrusso
    Acked-by: Jeff Dike
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Paolo 'Blaisorblade' Giarrusso
     
  • Since both UML consoles do not use percpu variables, they may be called when
    the cpu is still offline, and they may be marked CON_ANYTIME (this is
    documented in kernel/printk.c, grep for CON_ANYTIME to find mentions of this).

    Works well in testing done with lock debug enabled, should be safe but is not
    needed for next release.

    This would probably help also stderr_console.c, but this is yet to test.

    Signed-off-by: Paolo 'Blaisorblade' Giarrusso
    Acked-by: Jeff Dike
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Paolo 'Blaisorblade' Giarrusso
     
  • os_usr1_signal() is totally unused, os_usr1_process() is used only by TT mode.

    Signed-off-by: Paolo 'Blaisorblade' Giarrusso
    Acked-by: Jeff Dike
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Paolo 'Blaisorblade' Giarrusso
     
  • Memory allocated by mcast_user_init must be freed in the matching mcast_remove.

    Signed-off-by: Paolo 'Blaisorblade' Giarrusso
    Acked-by: Jeff Dike
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Paolo 'Blaisorblade' Giarrusso
     
  • When a given host directory is specified to be mounted both in hostfs=path1
    and with mount option -o path2, we should give access to path1/path2, but this
    does not happen. Fix that in the simpler way.

    Also, root_ino can be the empty string, since we use %s/%s as format.

    Signed-off-by: Paolo 'Blaisorblade' Giarrusso
    Acked-by: Jeff Dike
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Paolo 'Blaisorblade' Giarrusso
     
  • Fix double free in the error path - when name is assigned into root_inode we
    do not own it any more and we must not kfree() it - see patch for details.

    Thanks to William Stearns for the initial report.

    CC: William Stearns
    Signed-off-by: Paolo 'Blaisorblade' Giarrusso
    Acked-by: Jeff Dike
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Paolo 'Blaisorblade' Giarrusso
     
  • * 'for-linus' of master.kernel.org:/pub/scm/linux/kernel/git/dtor/input:
    Input: i8042 - another attempt to fix AUX delivery checks

    Linus Torvalds
     
  • Do not assume that AUX_LOOP command is broken unless it
    completes successfully but returns wrong (unexpected) data.

    Signed-off-by: Dmitry Torokhov

    Dmitry Torokhov
     
  • * master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6:
    [BRIDGE]: adding new device to bridge should enable if up
    [IPV6]: Do not set IF_READY if device is down
    [IPSEC]: xfrm audit hook misplaced in pfkey_delete and xfrm_del_sa
    [IPSEC]: Add xfrm policy change auditing to pfkey_spdget
    [IPSEC]: xfrm_policy delete security check misplaced
    [CONNECTOR]: Bugfix for cn_call_callback()
    [DCCP]: Revert patch which disables bidirectional mode
    [IPV6]: Handle np->opt being NULL in ipv6_getsockopt_sticky().
    [UDP]: Reread uh pointer after pskb_trim
    [NETFILTER]: nfnetlink_log: fix crash on bridged packet
    [NETFILTER]: nfnetlink_log: zero-terminate prefix
    [NETFILTER]: nf_conntrack_ipv6: fix incorrect classification of IPv6 fragments as ESTABLISHED

    Linus Torvalds
     
  • * 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-linus:
    [MIPS] ARC: Fix several compiler warnings.
    [MIPS] ISA: Fix typo
    [CHAR] ds1286: Fix handling of seconds in RTC_ALM_SET ioctl.

    Linus Torvalds
     
  • * 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6:
    [IA64] fsys_getcpu for IA64
    [IA64] remove duplicate declaration of efi_initialize_iomem_resources
    [IA64] Pick highest possible saved_max_pfn for crash_dump
    [IA64] fix NULL pointer in ia64/irq_chip-mask/unmask function

    Linus Torvalds
     
  • CC arch/mips/arc/init.o
    arch/mips/arc/init.c: In function 'prom_init':
    arch/mips/arc/init.c:27: warning: ISO C90 forbids mixed declarations and code
    arch/mips/arc/init.c:35: warning: format ‘%08lx’ expects type ‘long unsigned int’, but argument 2 has type 'ULONG'
    arch/mips/arc/init.c:28: warning: unused variable 'c'
    arch/mips/arc/init.c:27: warning: unused variable ‘cnt’

    Signed-off-by: Ralf Baechle

    Ralf Baechle
     
  • Lost CONFIG_ prefix discovered by Robert P. J. Day .

    Signed-off-by: Ralf Baechle

    Ralf Baechle
     
  • o Fix use of uninitialized variable sec.
    o Make the RTC_ALM_SET ioctl return -EINVAL for non-zero seconds - the
    DS1286 has no second field for the alarm time.
    o Replace the obscure BIN_TO_BCD macro with BIN2BCD.

    Signed-off-by: Ralf Baechle

    Ralf Baechle
     
  • On 1.6GHz Montectio Tiger4, the following performance data is measured with
    kernel built with defconfig which has NUMA configured:

    Fastest sys_getcpu: 502 itc counts.
    Fastest fsys_getcpu: 28 itc counts.

    fsys_getcpu performance is largly impacted by whether data (node_to_cpu_map
    etc) is in cache. It can take fsys_getcpu up to ~150 itc counts in cold
    cache case.

    Signed-off-by: Fenghua Yu
    Signed-off-by: Tony Luck

    Fenghua Yu
     
  • efi_initialize_iomem_resources() is declared in both include/linux/efi.h
    and arch/ia64/kernel/setup.c. This patch removes the latter.

    Signed-off-by: Simon Horman
    Signed-off-by: Tony Luck

    Horms
     
  • Berhhard Walle noted that on his HP rx8640 he ended up with saved_max_pfn
    smaller than the highest address of system ram in /proc/iomem and proposed
    a patch to base the address on the unrounded and unfiltered EFI memory
    map address. Simon Horman and Magnus Damm suggested that the whole test
    be moved earlier in the function. This is the combination of both of
    these patches.

    Signed-off-by: Tony Luck

    Tony Luck
     
  • One change introduced by the workqueue removal patch is that adding an
    interface that is up to a bridge which is also up does not ever call
    br_stp_enable_port(), leaving the port in DISABLED state until we do
    ifconfig down and up or link events occur.

    The following patch to the br_add_if function fixes it.
    This is a regression introduced in 2.6.21.

    Submitted-by: Aji_Srinivas@emc.com
    Signed-off-by: Stephen Hemminger
    Signed-off-by: David S. Miller

    Aji Srinivas
     
  • Now that we add the IPv6 device at registration time we don't need
    to set IF_READY in ipv6_add_dev anymore because we will always get
    a NETDEV_UP event later on should the device ever become ready.

    Signed-off-by: Herbert Xu
    Signed-off-by: David S. Miller

    Herbert Xu
     
  • Inside pfkey_delete and xfrm_del_sa the audit hooks were not called if
    there was any permission/security failures in attempting to do the del
    operation (such as permission denied from security_xfrm_state_delete).
    This patch moves the audit hook to the exit path such that all failures
    (and successes) will actually get audited.

    Signed-off-by: Eric Paris
    Acked-by: Venkat Yekkirala
    Acked-by: James Morris
    Signed-off-by: David S. Miller

    Eric Paris
     
  • pfkey_spdget neither had an LSM security hook nor auditing for the
    removal of xfrm_policy structs. The security hook was added when it was
    moved into xfrm_policy_byid instead of the callers to that function by
    my earlier patch and this patch adds the auditing hooks as well.

    Signed-off-by: Eric Paris
    Acked-by: Venkat Yekkirala
    Acked-by: James Morris
    Signed-off-by: David S. Miller

    Eric Paris
     
  • The security hooks to check permissions to remove an xfrm_policy were
    actually done after the policy was removed. Since the unlinking and
    deletion are done in xfrm_policy_by* functions this moves the hooks
    inside those 2 functions. There we have all the information needed to
    do the security check and it can be done before the deletion. Since
    auditing requires the result of that security check err has to be passed
    back and forth from the xfrm_policy_by* functions.

    This patch also fixes a bug where a deletion that failed the security
    check could cause improper accounting on the xfrm_policy
    (xfrm_get_policy didn't have a put on the exit path for the hold taken
    by xfrm_policy_by*)

    It also fixes the return code when no policy is found in
    xfrm_add_pol_expire. In old code (at least back in the 2.6.18 days) err
    wasn't used before the return when no policy is found and so the
    initialization would cause err to be ENOENT. But since err has since
    been used above when we don't get a policy back from the xfrm_policy_by*
    function we would always return 0 instead of the intended ENOENT. Also
    fixed some white space damage in the same area.

    Signed-off-by: Eric Paris
    Acked-by: Venkat Yekkirala
    Acked-by: James Morris
    Signed-off-by: David S. Miller

    Eric Paris
     
  • When system under heavy stress and must allocate new work
    instead of reusing old one, new work must use correct
    completion callback.

    Patch is based on Philipp's and Lars' work.
    I only cleaned small stuff (and removed spaces instead of tabs).

    Signed-off-by: Philipp Reisner
    Signed-off-by: Lars Ellenberg
    Signed-off-by: Evgeniy Polyakov
    Signed-off-by: David S. Miller

    Philipp Reisner