13 Nov, 2007

18 commits

  • When I removed net-modules.txt because it only contained ancient
    information I missed that many Kconfig entries pointed to this ancient
    information.

    Signed-off-by: Adrian Bunk
    Signed-off-by: David S. Miller

    Adrian Bunk
     
  • Signed-off-by: Arnaldo Carvalho de Melo
    Signed-off-by: David S. Miller

    Arnaldo Carvalho de Melo
     
  • David S. Miller
     
  • ...and fix a couple of bugs in the NBD, CIFS and OCFS2 socket handlers.

    Looking at the sock->op->shutdown() handlers, it looks as if all of them
    take a SHUT_RD/SHUT_WR/SHUT_RDWR argument instead of the
    RCV_SHUTDOWN/SEND_SHUTDOWN arguments.
    Add a helper, and then define the SHUT_* enum to ensure that kernel users
    of shutdown() don't get confused.

    Signed-off-by: Trond Myklebust
    Acked-by: Mark Fasheh
    Acked-by: David Howells
    Signed-off-by: David S. Miller

    Trond Myklebust
     
  • Commit bea3348e (the NAPI changes) made sungem unconditionally enable
    NAPI when resuming and unconditionally disable when suspending, this,
    however, makes napi_disable() hang when suspending when the interface
    was taken down before suspend because taking the interface down also
    disables NAPI. This patch makes touching the napi struct in
    suspend/resume code paths depend on having the interface up, thereby
    fixing the hang on suspend.

    The patch also moves the napi_disable() in gem_close() under the lock so
    that the NAPI state is always modified atomically together with the
    "opened" variable.

    Signed-off-by: Johannes Berg
    Acked-by: Benjamin Herrenschmidt
    Signed-off-by: David S. Miller

    Johannes Berg
     
  • fix sparse warnings "Using plain integer as NULL pointer"

    Signed-off-by: Joe Perches
    Signed-off-by: David S. Miller

    Joe Perches
     
  • Userland neighbor discovery options are typically heavily involved with
    the interface on which thay are received: add a missing ifindex field to
    the original struct. Thanks to Rémi Denis-Courmont.

    Signed-off-by: Pierre Ynard
    Signed-off-by: David S. Miller

    Pierre Ynard
     
  • While a signal is blocked, it must be posted even if its action is
    SIG_IGN or is SIG_DFL with the default action to ignore. This works
    right most of the time, but is broken when a sigwait (rt_sigtimedwait)
    is in progress. This changes the early-discard check to respect
    real_blocked. ~blocked is the set to check for "should wake up now",
    but ~(blocked|real_blocked) is the set for "blocked" semantics as
    defined by POSIX.

    This fixes bugzilla entry 9347, see

    http://bugzilla.kernel.org/show_bug.cgi?id=9347

    Signed-off-by: Roland McGrath
    Signed-off-by: Linus Torvalds

    Roland McGrath
     
  • As with commit 7fc90ec93a5eb71f4b08403baf5ba7176b3ec6b1 ("knfsd: nfsd:
    call nfsd_setuser() on fh_compose(), fix nfsd4 permissions problem")
    this is a case where we need to redo a security check in fh_verify()
    even though the filehandle already has an associated dentry--if the
    filehandle was created by fh_compose() in an earlier operation of the
    nfsv4 compound, then we may not have done these checks yet.

    Without this fix it is possible, for example, to traverse from an export
    without the secure ports requirement to one with it in a single
    compound, and bypass the secure port check on the new export.

    While we're here, fix up some minor style problems and change a printk()
    to a dprintk(), to make it harder for random unprivileged users to spam
    the logs.

    Signed-off-by: J. Bruce Fields
    Reviewed-By: NeilBrown
    Signed-off-by: Linus Torvalds

    J. Bruce Fields
     
  • The v2/v3 acl code in nfsd is translating any return from fh_verify() to
    nfserr_inval. This is particularly unfortunate in the case of an
    nfserr_dropit return, which is an internal error meant to indicate to
    callers that this request has been deferred and should just be dropped
    pending the results of an upcall to mountd.

    Thanks to Roland for bug report and data collection.

    Cc: Roland
    Acked-by: Andreas Gruenbacher
    Signed-off-by: J. Bruce Fields
    Reviewed-By: NeilBrown
    Signed-off-by: Linus Torvalds

    J. Bruce Fields
     
  • This reverts commit 5adc5be7cd1bcef6bb64f5255d2a33f20a3cf5be.

    Alexey Dobriyan reports that it causes huge slowdowns under some loads,
    in his case a "mkfs.ext2" on a 30G partition. With the placement bias,
    the mkfs took over four minutes, with it reverted it's back to about ten
    seconds for Alexey.

    Reported-and-tested-by: Alexey Dobriyan
    Cc: Mel Gorman
    Cc: Andrew Morton
    Signed-off-by: Linus Torvalds

    Linus Torvalds
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/avi/kvm:
    KVM: SVM: Intercept the 'invd' and 'wbinvd' instructions
    KVM: x86 emulator: invd instruction
    KVM: SVM: Defer nmi processing until switch to host state is complete
    KVM: SVM: Fix SMP with kernel apic
    KVM: x86 emulator: fix 'push imm8' emulation

    Linus Torvalds
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-virtio:
    virtio: Force use of power-of-two for descriptor ring sizes
    lguest: Fix lguest virtio-blk backend size computation
    virtio: Fix used_idx wrap-around
    virtio: more fallout from scatterlist changes.
    virtio: fix vring_init for 64 bits

    Linus Torvalds
     
  • * 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (39 commits)
    [INET]: Small possible memory leak in FIB rules
    [NETNS]: init dev_base_lock only once
    [UNIX]: The unix_nr_socks limit can be exceeded
    [AF_UNIX]: Convert socks to unix_socks in scan_inflight, not in callbacks
    [AF_UNIX]: Make unix_tot_inflight counter non-atomic
    [AF_PACKET]: Allow multicast traffic to be caught by ORIGDEV when bonded
    ssb: Fix PCMCIA-host lowlevel bus access
    mac80211: fix MAC80211_RCSIMPLE Kconfig
    mac80211: make "decrypt failed" messages conditional upon MAC80211_DEBUG
    mac80211: use IW_AUTH_PRIVACY_INVOKED rather than IW_AUTH_KEY_MGMT
    mac80211: remove unused driver ops
    mac80211: remove ieee80211_common.h
    softmac: MAINTAINERS update
    rfkill: Fix sparse warning
    rfkill: Use mutex_lock() at register and add sanity check
    iwlwifi: select proper rate control algorithm
    mac80211: allow driver to ask for a rate control algorithm
    mac80211: don't allow registering the same rate control twice
    rfkill: Use subsys_initcall
    mac80211: make simple rate control algorithm built-in
    ...

    Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6: (21 commits)
    [CIFS] fix oops on second mount to same server when null auth is used
    [CIFS] Fix stale mode after readdir when cifsacl specified
    [CIFS] add mode to acl conversion helper function
    [CIFS] Fix incorrect mode when ACL had deny access control entries
    [CIFS] Add uid to key description so krb can handle user mounts
    [CIFS] Fix walking out end of cifs dacl
    [CIFS] Add upcall files for cifs to use spnego/kerberos
    [CIFS] add OIDs for KRB5 and MSKRB5 to ASN1 parsing routines
    [CIFS] Register and unregister cifs_spnego_key_type on module init/exit
    [CIFS] implement upcalls for SPNEGO blob via keyctl API
    [CIFS] allow cifs_calc_signature2 to deal with a zero length iovec
    [CIFS] If no Access Control Entries, set mode perm bits to zero
    [CIFS] when mount helper missing fix slash wrong direction in share
    [CIFS] Don't request too much permission when reading an ACL
    [CIFS] enable get mode from ACL when cifsacl mount option specified
    [CIFS] ACL support part 8
    [CIFS] acl support part 7
    [CIFS] acl support part 6
    [CIFS] acl support part 6
    [CIFS] remove unused funtion compile warning when experimental off
    ...

    Linus Torvalds
     
  • restore sigcontext is taking a DNA exception while restoring FP context
    from the user stack, during the sigreturn. Appended patch fixes it by
    doing clts() if the app doesn't touch FP during the signal handler
    execution. This will stop generating a DNA, during the fxrstor in the
    sigreturn.

    This improves 64-bit lat_sig numbers by ~30% on my core2 platform.

    Signed-off-by: Suresh Siddha
    Signed-off-by: Linus Torvalds

    Siddha, Suresh B
     
  • Since the macro "for_each_object" introduced, the "end" variable becomes unused anymore.

    Signed-off-by: Denis Cheng
    Signed-off-by: Linus Torvalds

    Denis Cheng
     
  • The coredump code always calls set_dumpable(0) when it starts (even
    if RLIMIT_CORE prevents any core from being dumped). The effect of
    this (via task_dumpable) is to make /proc/pid/* files owned by root
    instead of the user, so the user can no longer examine his own
    process--in a case where there was never any privileged data to
    protect. This affects e.g. auxv, environ, fd; in Fedora (execshield)
    kernels, also maps. In practice, you can only notice this when a
    debugger has requested PTRACE_EVENT_EXIT tracing.

    set_dumpable was only used in do_coredump for synchronization and not
    intended for any security purpose. (It doesn't secure anything that wasn't
    already unsecured when a process dies by SIGTERM instead of SIGQUIT.)

    This changes do_coredump to check the core_waiters count as the means of
    synchronization, which is sufficient. Now we leave the "dumpable" bits alone.

    Signed-off-by: Roland McGrath
    Signed-off-by: Linus Torvalds

    Roland McGrath
     

12 Nov, 2007

6 commits

  • In net/sctp/sm_statefuns.c::sctp_sf_abort_violation() we may leak
    the storage allocated for 'abort' by returning from the function
    without using or freeing it. This happens in case
    "sctp_auth_recv_cid(SCTP_CID_ABORT, asoc)" is true and we jump to
    the 'discard' label.
    Spotted by the Coverity checker.

    The simple fix is to simply move the creation of the "abort chunk"
    to after the possible jump to the 'discard' label. This way we don't
    even have to allocate the memory at all in the problem case.

    Signed-off-by: Jesper Juhl
    Signed-off-by: Vlad Yasevich

    Jesper Juhl
     
  • The virtio descriptor rings of size N-1 were nicely set up to be
    aligned to an N-byte boundary. But as Anthony Liguori points out, the
    free-running indices used by virtio require that the sizes be a power
    of 2, otherwise we get problems on wrap (demonstrated with lguest).

    So we replace the clever "2^n-1" scheme with a simple "align to page
    boundary" scheme: this means that all virtio rings take at least two
    pages, but it's safer than guessing cache alignment.

    Signed-off-by: Rusty Russell

    Rusty Russell
     
  • This seems like an obvious typo but it's worked in the past because the virtio
    blk frontend just ignores the length field on completion.

    Signed-off-by: Anthony Liguori
    Signed-off-by: Rusty Russell

    Anthony Liguori
     
  • The more_used() function compares the vq->vring.used->idx with last_used_idx.
    Since vq->vring.used->idx is a 16-bit integer, and last_used_idx is an
    unsigned int, this results in unpredictable behavior when vq->vring.used->idx
    wraps around.

    This patch corrects this by changing last_used_idx to the correct type.

    Signed-off-by: Anthony Liguori
    Signed-off-by: Rusty Russell

    Anthony Liguori
     
  • This fixes OOPS in network driver when CONFIG_DEBUG_SG=y.

    Signed-off-by: Rusty Russell

    Rusty Russell
     
  • This patch fixes a typo in vring_init(). This happens to work today in lguest
    because the sizeof(struct vring_desc) is 16 and struct vring contains 3
    pointers and an unsigned int so on 32-bit
    sizeof(struct vring_desc) == sizeof(struct vring). However, this is no longer
    true on 64-bit where the bug is exposed.

    Signed-off-by: Anthony Liguori
    Signed-off-by: Rusty Russell

    Anthony Liguori
     

11 Nov, 2007

16 commits

  • This patch fixes a small memory leak. Default fib rules can be deleted by
    the user if the rule does not carry FIB_RULE_PERMANENT flag, f.e. by
    ip rule flush

    Such a rule will not be freed as the ref-counter has 2 on start and becomes
    clearly unreachable after removal.

    Signed-off-by: Denis V. Lunev
    Acked-by: Alexey Kuznetsov
    Signed-off-by: David S. Miller

    Denis V. Lunev
     
  • * it already statically initialized
    * reinitializing live global spinlock every time netns is
    setup is also wrong

    Signed-off-by: Alexey Dobriyan
    Signed-off-by: David S. Miller

    Alexey Dobriyan
     
  • The unix_nr_socks value is limited with the 2 * get_max_files() value,
    as seen from the unix_create1(). However, the check and the actual
    increment are separated with the GFP_KERNEL allocation, so this limit
    can be exceeded under a memory pressure - task may go to sleep freeing
    the pages and some other task will be allowed to allocate a new sock
    and so on and so forth.

    So make the increment before the check (similar thing is done in the
    sock_kmalloc) and go to kmalloc after this.

    Signed-off-by: Pavel Emelyanov
    Signed-off-by: David S. Miller

    Pavel Emelyanov
     
  • The scan_inflight() routine scans through the unix sockets and calls
    some passed callback. The fact is that all these callbacks work with
    the unix_sock objects, not the sock ones, so make this conversion in
    the scan_inflight() before calling the callbacks.

    This removes one unneeded variable from the inc_inflight_move_tail().

    Signed-off-by: Pavel Emelyanov
    Signed-off-by: David S. Miller

    Pavel Emelyanov
     
  • This counter is _always_ modified under the unix_gc_lock spinlock,
    so its atomicity can be provided w/o additional efforts.

    Signed-off-by: Pavel Emelyanov
    Signed-off-by: David S. Miller

    Pavel Emelyanov
     
  • The socket option for packet sockets to return the original ifindex instead
    of the bonded ifindex will not match multicast traffic. Since this socket
    option is the most useful for layer 2 traffic and multicast traffic, make
    the option multicast-aware.

    Signed-off-by: Peter P Waskiewicz Jr
    Signed-off-by: David S. Miller

    Peter P Waskiewicz Jr
     
  • This fixes the lowlevel bus access routines for
    PCMCIA based devices.

    There are still a few issues with register access sideeffects after
    this patch. This will be addressed in a later patch.

    Signed-off-by: Michael Buesch
    Signed-off-by: John W. Linville

    Michael Buesch
     
  • I meant for this to be selectable only with EMBEDDED, not enabled only
    with EMBEDDED. This does it that way. Sorry.

    Signed-off-by: Johannes Berg
    Signed-off-by: John W. Linville

    Johannes Berg
     
  • Make "decrypt failed" and "have no key" debugging messages compile
    conditionally upon CONFIG_MAC80211_DEBUG. They have been useful for
    finding certain problems in the past, but in many cases they just
    clutter a user's logs.

    A typical example is an enviornment where multiple SSIDs are using a
    single BSSID but with different protection schemes or different keys
    for each SSID. In such an environment these messages are just noise.
    Let's just leave them for those interested enough to turn-on debugging.

    Signed-off-by: John W. Linville

    John W. Linville
     
  • In the long bug-hunt for why dynamic WEP networks didn't work it
    turned out that mac80211 incorrectly uses IW_AUTH_KEY_MGMT while
    it should use IW_AUTH_PRIVACY_INVOKED to determine whether to
    associate to protected networks or not.

    This patch changes the behaviour to be that way and clarifies the
    existing code.

    Signed-off-by: Johannes Berg
    Cc: Jouni Malinen
    Signed-off-by: John W. Linville

    Johannes Berg
     
  • The driver operations set_ieee8021x(), set_port_auth() and
    set_privacy_invoked() are not used by any drivers, except
    set_privacy_invoked() they aren't even used by mac80211.
    Remove them at least until we need to support drivers with
    mac80211 that require getting this information.

    Signed-off-by: Johannes Berg
    Acked-by: Michael Wu
    Signed-off-by: John W. Linville

    Johannes Berg
     
  • Robert pointed out that I missed this file when removing the management
    interface. Do it now.

    Signed-off-by: Johannes Berg
    Signed-off-by: John W. Linville

    Johannes Berg
     
  • This patch marks softmac as obsolete in MAINTAINERS and removes Joe and
    myself as maintainers, we're no longer using it nor interested in the
    code in any way. Also remove the website reference because I took it
    offline. Hopefully the code will go away in 2.6.25.

    Signed-off-by: Johannes Berg
    Acked-by: Joseph Jezak
    Signed-off-by: John W. Linville

    Johannes Berg
     
  • Signed-off-by: John W. Linville

    Michael Buesch
     
  • Replace mutex_lock_interruptible() by mutex_lock() in rfkill_register(),
    as interruptible doesn't make sense there.

    Add a sanity check for rfkill->type, as that's used for an unchecked dereference
    in an array and might cause hard to debug crashes if the driver sets this
    to an invalid value.

    Signed-off-by: Michael Buesch
    Signed-off-by: Ivo van Doorn
    Signed-off-by: John W. Linville

    Michael Buesch
     
  • Prior to this patch, iwlwifi would always use the first
    registered rate control algorithm which, depending on system
    setup, could be anything. After the mac80211 patch to make
    the simple algorithm built-in, it would always be simple.

    This has always been a bug in iwlwifi.

    This fixes it by requesting that mac80211 selects the right
    rate control algorithm.

    Signed-off-by: Johannes Berg
    Signed-off-by: John W. Linville

    Johannes Berg