19 Oct, 2010

4 commits

  • s390/powerpc/ia64 have support for CONFIG_VIRT_CPU_ACCOUNTING which does
    the fine granularity accounting of user, system, hardirq, softirq times.
    Adding that option on archs like x86 will be challenging however, given the
    state of TSC reliability on various platforms and also the overhead it will
    add in syscall entry exit.

    Instead, add a lighter variant that only does finer accounting of
    hardirq and softirq times, providing precise irq times (instead of timer tick
    based samples). This accounting is added with a new config option
    CONFIG_IRQ_TIME_ACCOUNTING so that there won't be any overhead for users not
    interested in paying the perf penalty.

    This accounting is based on sched_clock, with the code being generic.
    So, other archs may find it useful as well.

    This patch just adds the core logic and does not enable this logic yet.

    Signed-off-by: Venkatesh Pallipadi
    Signed-off-by: Peter Zijlstra
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Venkatesh Pallipadi
     
  • To account softirq time cleanly in scheduler, we need to identify whether
    softirq is invoked in ksoftirqd context or softirq at hardirq tail context.
    Add PF_KSOFTIRQD for that purpose.

    As all PF flag bits are currently taken, create space by moving one of the
    infrequently used bits (PF_THREAD_BOUND) down in task_struct to be along
    with some other state fields.

    Signed-off-by: Venkatesh Pallipadi
    Signed-off-by: Peter Zijlstra
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Venkatesh Pallipadi
     
  • Just a minor cleanup patch that makes things easier to the following patches.
    No functionality change in this patch.

    Signed-off-by: Venkatesh Pallipadi
    Signed-off-by: Peter Zijlstra
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Venkatesh Pallipadi
     
  • Peter Zijlstra found a bug in the way softirq time is accounted in
    VIRT_CPU_ACCOUNTING on this thread:

    http://lkml.indiana.edu/hypermail//linux/kernel/1009.2/01366.html

    The problem is, softirq processing uses local_bh_disable internally. There
    is no way, later in the flow, to differentiate between whether softirq is
    being processed or is it just that bh has been disabled. So, a hardirq when bh
    is disabled results in time being wrongly accounted as softirq.

    Looking at the code a bit more, the problem exists in !VIRT_CPU_ACCOUNTING
    as well. As account_system_time() in normal tick based accouting also uses
    softirq_count, which will be set even when not in softirq with bh disabled.

    Peter also suggested solution of using 2*SOFTIRQ_OFFSET as irq count
    for local_bh_{disable,enable} and using just SOFTIRQ_OFFSET while softirq
    processing. The patch below does that and adds API in_serving_softirq() which
    returns whether we are currently processing softirq or not.

    Also changes one of the usages of softirq_count in net/sched/cls_cgroup.c
    to in_serving_softirq.

    Looks like many usages of in_softirq really want in_serving_softirq. Those
    changes can be made individually on a case by case basis.

    Signed-off-by: Venkatesh Pallipadi
    Signed-off-by: Peter Zijlstra
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Venkatesh Pallipadi
     

14 Oct, 2010

1 commit


12 Oct, 2010

1 commit

  • This patch disables the fanotify syscalls by just not building them and
    letting the cond_syscall() statements in kernel/sys_ni.c redirect them
    to sys_ni_syscall().

    It was pointed out by Tvrtko Ursulin that the fanotify interface did not
    include an explicit prioritization between groups. This is necessary
    for fanotify to be usable for hierarchical storage management software,
    as they must get first access to the file, before inotify-like notifiers
    see the file.

    This feature can be added in an ABI compatible way in the next release
    (by using a number of bits in the flags field to carry the info) but it
    was suggested by Alan that maybe we should just hold off and do it in
    the next cycle, likely with an (new) explicit argument to the syscall.
    I don't like this approach best as I know people are already starting to
    use the current interface, but Alan is all wise and noone on list backed
    me up with just using what we have. I feel this is needlessly ripping
    the rug out from under people at the last minute, but if others think it
    needs to be a new argument it might be the best way forward.

    Three choices:
    Go with what we got (and implement the new feature next cycle). Add a
    new field right now (and implement the new feature next cycle). Wait
    till next cycle to release the ABI (and implement the new feature next
    cycle). This is number 3.

    Signed-off-by: Eric Paris
    Signed-off-by: Linus Torvalds

    Eric Paris
     

10 Oct, 2010

1 commit

  • * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (27 commits)
    net: clear heap allocation for ETHTOOL_GRXCLSRLALL
    isdn: strcpy() => strlcpy()
    Revert "mac80211: use netif_receive_skb in ieee80211_tx_status callpath"
    mac80211: delete AddBA response timer
    ath9k_hw: fix regression in ANI listen time calculation
    caif: fix two caif_connect() bugs
    bonding: fix WARN_ON when writing to bond_master sysfs file
    skge: add quirk to limit DMA
    MAINTAINERS: update Intel LAN Ethernet info
    e1000e.txt: Add e1000e documentation
    e1000.txt: Update e1000 documentation
    ixgbevf.txt: Update ixgbevf documentation
    cls_u32: signedness bug
    Bluetooth: Disallow to change L2CAP_OPTIONS values when connected
    sctp: Fix out-of-bounds reading in sctp_asoc_get_hmac()
    sctp: prevent reading out-of-bounds memory
    ipv4: correct IGMP behavior on v3 query during v2-compatibility mode
    netdev: Depend on INET before selecting INET_LRO
    Revert "ipv4: Make INET_LRO a bool instead of tristate."
    net: Fix the condition passed to sk_wait_event()
    ...

    Linus Torvalds
     

08 Oct, 2010

3 commits

  • * 'for-linus' of git://git.kernel.dk/linux-2.6-block:
    elevator: fix oops on early call to elevator_change()

    Linus Torvalds
     
  • * 'drm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6:
    drm: don't drop handle reference on unload
    drm/ttm: Fix two race conditions + fix busy codepaths

    Linus Torvalds
     
  • * 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6: (37 commits)
    V4L/DVB: v4l: radio: si470x: fix unneeded free_irq() call
    V4L/DVB: v4l: videobuf: prevent passing a NULL to dma_free_coherent()
    V4L/DVB: ir-core: Fix null dereferences in the protocols sysfs interface
    V4L/DVB: v4l: s5p-fimc: Fix 3-planar formats handling and pixel offset error on S5PV210 SoCs
    V4L/DVB: v4l: s5p-fimc: Fix return value on probe() failure
    V4L/DVB: uvcvideo: Restrict frame rates for Chicony CNF7129 webcam
    V4L/DVB: uvcvideo: Fix support for Medion Akoya All-in-one PC integrated webcam
    V4L/DVB: ivtvfb: prevent reading uninitialized stack memory
    V4L/DVB: cx25840: Fix typo in volume control initialization: 65335 vs. 65535
    V4L/DVB: v4l: mem2mem_testdev: add missing release for video_device
    V4L/DVB: v4l: mem2mem_testdev: fix errorenous comparison
    V4L/DVB: mt9v022.c: Fixed compilation warning
    V4L/DVB: mt9m111: added current colorspace at g_fmt
    V4L/DVB: mt9m111: cropcap and s_crop check if type is VIDEO_CAPTURE
    V4L/DVB: mx2_camera: fix a race causing NULL dereference
    V4L/DVB: tm6000: bugfix data handling
    V4L/DVB: gspca - sn9c20x: Bad transfer size of Bayer images
    V4L/DVB: videobuf-dma-sg: set correct size in last sg element
    V4L/DVB: cx231xx: Avoid an OOPS when card is unknown (card=0)
    V4L/DVB: dvb: fix smscore_getbuffer() logic
    ...

    Linus Torvalds
     

07 Oct, 2010

2 commits

  • David S. Miller
     
  • 2.6.36 introduces an API for drivers to switch the IO scheduler
    instead of manually calling the elevator exit and init functions.
    This API was added since q->elevator must be cleared in between
    those two calls. And since we already have this functionality
    directly from use by the sysfs interface to switch schedulers
    online, it was prudent to reuse it internally too.

    But this API needs the queue to be in a fully initialized state
    before it is called, or it will attempt to unregister elevator
    kobjects before they have been added. This results in an oops
    like this:

    BUG: unable to handle kernel NULL pointer dereference at 0000000000000051
    IP: [] sysfs_create_dir+0x2e/0xc0
    PGD 47ddfc067 PUD 47c6a1067 PMD 0
    Oops: 0000 [#1] PREEMPT SMP
    last sysfs file: /sys/devices/pci0000:00/0000:00:02.0/0000:04:00.1/irq
    CPU 2
    Modules linked in: t(+) loop hid_apple usbhid ahci ehci_hcd uhci_hcd libahci usbcore nls_base igb

    Pid: 7319, comm: modprobe Not tainted 2.6.36-rc6+ #132 QSSC-S4R/QSSC-S4R
    RIP: 0010:[] [] sysfs_create_dir+0x2e/0xc0
    RSP: 0018:ffff88027da25d08 EFLAGS: 00010246
    RAX: ffff88047c68c528 RBX: 00000000fffffffe RCX: 0000000000000000
    RDX: 000000000000002f RSI: 000000000000002f RDI: ffff88047e196c88
    RBP: ffff88027da25d38 R08: 0000000000000000 R09: d84156c5635688c0
    R10: d84156c5635688c0 R11: 0000000000000000 R12: ffff88047e196c88
    R13: 0000000000000000 R14: 0000000000000000 R15: ffff88047c68c528
    FS: 00007fcb0b26f6e0(0000) GS:ffff880287400000(0000) knlGS:0000000000000000
    CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b
    CR2: 0000000000000051 CR3: 000000047e76e000 CR4: 00000000000006e0
    DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
    DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
    Process modprobe (pid: 7319, threadinfo ffff88027da24000, task ffff88027d377090)
    Stack:
    ffff88027da25d58 ffff88047c68c528 00000000fffffffe ffff88047e196c88
    ffff88047c68c528 ffff88047e05bd90 ffff88027da25d78 ffffffff8123fb77
    ffff88047e05bd90 0000000000000000 ffff88047e196c88 ffff88047c68c528
    Call Trace:
    [] kobject_add_internal+0xe7/0x1f0
    [] kobject_add_varg+0x38/0x60
    [] kobject_add+0x69/0x90
    [] ? sysfs_remove_dir+0x20/0xa0
    [] ? sub_preempt_count+0x9d/0xe0
    [] ? _raw_spin_unlock+0x30/0x50
    [] ? sysfs_remove_dir+0x20/0xa0
    [] ? sysfs_remove_dir+0x34/0xa0
    [] elv_register_queue+0x34/0xa0
    [] elevator_change+0xfd/0x250
    [] ? t_init+0x0/0x361 [t]
    [] ? t_init+0x0/0x361 [t]
    [] t_init+0xa8/0x361 [t]
    [] do_one_initcall+0x3e/0x170
    [] sys_init_module+0xbd/0x220
    [] system_call_fastpath+0x16/0x1b
    Code: e5 41 56 41 55 41 54 49 89 fc 53 48 83 ec 10 48 85 ff 74 52 48 8b 47 18 49 c7 c5 00 46 61 81 48 85 c0 74 04 4c 8b 68 30 45 31 f6 80 7d 51 00 74 0e 49 8b 44 24 28 4c 89 e7 ff 50 20 49 89 c6
    RIP [] sysfs_create_dir+0x2e/0xc0
    RSP
    CR2: 0000000000000051
    ---[ end trace a6541d3bf07945df ]---

    Fix this by adding a registered bit to the elevator queue, which is
    set when the sysfs kobjects have been registered.

    Signed-off-by: Jens Axboe

    Jens Axboe
     

06 Oct, 2010

4 commits

  • This fixes a race pointed out by Dave Airlie where we don't take a buffer
    object about to be destroyed off the LRU lists properly. It also fixes a rare
    case where a buffer object could be destroyed in the middle of an
    accelerated eviction.

    The patch also adds a utility function that can be used to prematurely
    release GPU memory space usage of an object waiting to be destroyed.
    For example during eviction or swapout.

    The above mentioned commit didn't queue the buffer on the delayed destroy
    list under some rare circumstances. It also didn't completely honor the
    remove_all parameter.

    Fixes:
    https://bugzilla.redhat.com/show_bug.cgi?id=615505
    http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=591061

    Signed-off-by: Thomas Hellstrom
    Signed-off-by: Dave Airlie

    Thomas Hellstrom
     
  • …/git/tip/linux-2.6-tip

    * 'core-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
    rcu: rcu_read_lock_bh_held(): disabling irqs also disables bh
    generic-ipi: Fix deadlock in __smp_call_function_single

    Linus Torvalds
     
  • The "flags" member of "struct wait_queue_t" is used in several places in
    the kernel code without beeing initialized by init_wait(). "flags" is
    used in bitwise operations.

    If "flags" not initialized then unexpected behaviour may take place.
    Incorrect flags might used later in code.

    Added initialization of "wait_queue_t.flags" with zero value into
    "init_wait".

    Signed-off-by: Evgeny Kuznetsov
    [ The bit we care about does end up being initialized by both
    prepare_to_wait() and add_to_wait_queue(), so this doesn't seem to
    cause actual bugs, but is definitely the right thing to do -Linus ]
    Signed-off-by: Linus Torvalds

    Evgeny Kuznetsov
     
  • With all the recent module loading cleanups, we've minimized the code
    that sits under module_mutex, fixing various deadlocks and making it
    possible to do most of the module loading in parallel.

    However, that whole conversion totally missed the rather obscure code
    that adds a new module to the list for BUG() handling. That code was
    doubly obscure because (a) the code itself lives in lib/bugs.c (for
    dubious reasons) and (b) it gets called from the architecture-specific
    "module_finalize()" rather than from generic code.

    Calling it from arch-specific code makes no sense what-so-ever to begin
    with, and is now actively wrong since that code isn't protected by the
    module loading lock any more.

    So this commit moves the "module_bug_{finalize,cleanup}()" calls away
    from the arch-specific code, and into the generic code - and in the
    process protects it with the module_mutex so that the list operations
    are now safe.

    Future fixups:
    - move the module list handling code into kernel/module.c where it
    belongs.
    - get rid of 'module_bug_list' and just use the regular list of modules
    (called 'modules' - imagine that) that we already create and maintain
    for other reasons.

    Reported-and-tested-by: Thomas Gleixner
    Cc: Rusty Russell
    Cc: Adrian Bunk
    Cc: Andrew Morton
    Cc: stable@kernel.org
    Signed-off-by: Linus Torvalds

    Linus Torvalds
     

02 Oct, 2010

3 commits

  • * 'drm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6:
    vmwgfx: Fix fb VRAM pinning failure due to fragmentation
    vmwgfx: Remove initialisation of dev::devname
    vmwgfx: Enable use of the vblank system
    vmwgfx: vt-switch (master drop) fixes
    drm/vmwgfx: Fix breakage introduced by commit "drm: block userspace under allocating buffer and having drivers overwrite it (v2)"
    drm: Hold the mutex when dropping the last GEM reference (v2)
    drm/gem: handlecount isn't really a kref so don't make it one.
    drm: i810/i830: fix locked ioctl variant
    drm/radeon/kms: add quirk for MSI K9A2GM motherboard
    drm/radeon/kms: fix potential segfault in r600_ioctl_wait_idle
    drm: Prune GEM vma entries
    drm/radeon/kms: fix up encoder info messages for DFP6
    drm/radeon: fix PCI ID 5657 to be an RV410

    Linus Torvalds
     
  • * 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6:
    ACPI: invoke DSDT corruption workaround on all Toshiba Satellite
    ACPI, APEI, Fix ERST MOVE_DATA instruction implementation
    ACPI: fan: Fix more unbalanced code block
    ACPI: acpi_pad: simplify code to avoid false gcc build warning
    ACPI, APEI, Fix error path for memory allocation
    ACPI, APEI, HEST Fix the unsuitable usage of platform_data
    ACPI, APEI, Fix acpi_pre_map() return value
    ACPI, APEI, Fix APEI related table size checking
    ACPI: Disable Windows Vista compatibility for Toshiba P305D
    ACPI: Kconfig: fix typo.
    ACPI: add missing __percpu markup in arch/x86/kernel/acpi/cstate.c
    ACPI: Fix typos
    ACPI video: fix a poor warning message
    ACPI: fix build warnings resulting from merge window conflict
    ACPI: EC: add Vista incompatibility DMI entry for Toshiba Satellite L355
    ACPI: expand Vista blacklist to include SP1 and SP2
    ACPI: delete ZEPTO idle=nomwait DMI quirk
    ACPI: enable repeated PCIEXP wakeup by clearing PCIEXP_WAKE_STS on resume
    PM / ACPI: Blacklist systems known to require acpi_sleep=nonvs
    ACPI: Don't report current_now if battery reports in mWh

    Linus Torvalds
     
  • * 'idle-release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-idle-2.6:
    intel_idle: Voluntary leave_mm before entering deeper
    acpi_idle: add missing \n to printk
    intel_idle: add missing __percpu markup
    intel_idle: Change mode 755 => 644
    cpuidle: Fix typos
    intel_idle: PCI quirk to prevent Lenovo Ideapad s10-3 boot hang

    Linus Torvalds
     

01 Oct, 2010

3 commits

  • In order to be fully threadsafe we need to check that the drm_gem_object
    refcount is still 0 after acquiring the mutex in order to call the free
    function. Otherwise, we may encounter scenarios like:

    Thread A: Thread B:
    drm_gem_close
    unreference_unlocked
    kref_put mutex_lock
    ... i915_gem_evict
    ... kref_get -> BUG
    ... i915_gem_unbind
    ... kref_put
    ... i915_gem_object_free
    ... mutex_unlock
    mutex_lock
    i915_gem_object_free -> BUG
    i915_gem_object_unbind
    kfree
    mutex_unlock

    Note that no driver is currently using the free_unlocked vfunc and it is
    scheduled for removal, hasten that process.

    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=30454
    Reported-and-Tested-by: Magnus Kessler
    Signed-off-by: Chris Wilson
    Cc: stable@kernel.org
    Signed-off-by: Dave Airlie

    Chris Wilson
     
  • Avoid TLB flush IPIs for the cores in deeper c-states by voluntary leave_mm()
    before entering into that state. CPUs tend to flush TLB in those c-states
    anyways.

    acpi_idle does this with C3-type states, but it was not caried over
    when intel_idle was introduced. intel_idle can apply it
    to C-states in addition to those that ACPI might export as C3...

    Signed-off-by: Suresh Siddha
    Signed-off-by: Len Brown

    Suresh Siddha
     
  • There were lots of places being inconsistent since handle count
    looked like a kref but it really wasn't.

    Fix this my just making handle count an atomic on the object,
    and have it increase the normal object kref.

    Now i915/radeon/nouveau drivers can drop the normal reference on
    userspace object creation, and have the handle hold it.

    This patch fixes a memory leak or corruption on unload, because
    the driver had no way of knowing if a handle had been actually
    added for this object, and the fbcon object needed to know this
    to clean itself up properly.

    Reviewed-by: Chris Wilson
    Signed-off-by: Dave Airlie

    Dave Airlie
     

30 Sep, 2010

2 commits

  • The Enhanced Retransmission Mode(ERTM) is a realiable mode of operation
    of the Bluetooth L2CAP layer. Think on it like a simplified version of
    TCP.
    The problem we were facing here was a deadlock. ERTM uses a backlog
    queue to queue incomimg packets while the user is helding the lock. At
    some moment the sk_sndbuf can be exceeded and we can't alloc new skbs
    then the code sleep with the lock to wait for memory, that stalls the
    ERTM connection once we can't read the acknowledgements packets in the
    backlog queue to free memory and make the allocation of outcoming skb
    successful.

    This patch actually affect all users of bt_skb_send_alloc(), i.e., all
    L2CAP modes and SCO.

    We are safe against socket states changes or channels deletion while the
    we are sleeping wait memory. Checking for the sk->sk_err and
    sk->sk_shutdown make the code safe, since any action that can leave the
    socket or the channel in a not usable state set one of the struct
    members at least. Then we can check both of them when getting the lock
    again and return with the proper error if something unexpected happens.

    Signed-off-by: Gustavo F. Padovan
    Signed-off-by: Ulisses Furquim

    Gustavo F. Padovan
     
  • * 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/djbw/async_tx:
    dmaengine: fix interrupt clearing for mv_xor
    missing inline keyword for static function in linux/dmaengine.h
    dma/shdma: move dereference below the NULL check

    Linus Torvalds
     

29 Sep, 2010

2 commits

  • Signed-off-by: Len Brown

    Lucas De Marchi
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (47 commits)
    tcp: Fix >4GB writes on 64-bit.
    net/9p: Mount only matching virtio channels
    de2104x: fix ethtool
    tproxy: check for transparent flag in ip_route_newports
    ipv6: add IPv6 to neighbour table overflow warning
    tcp: fix TSO FACK loss marking in tcp_mark_head_lost
    3c59x: fix regression from patch "Add ethtool WOL support"
    ipv6: add a missing unregister_pernet_subsys call
    s390: use free_netdev(netdev) instead of kfree()
    sgiseeq: use free_netdev(netdev) instead of kfree()
    rionet: use free_netdev(netdev) instead of kfree()
    ibm_newemac: use free_netdev(netdev) instead of kfree()
    smsc911x: Add MODULE_ALIAS()
    net: reset skb queue mapping when rx'ing over tunnel
    br2684: fix scheduling while atomic
    de2104x: fix TP link detection
    de2104x: fix power management
    de2104x: disable autonegotiation on broken hardware
    net: fix a lockdep splat
    e1000e: 82579 do not gate auto config of PHY by hardware during nominal use
    ...

    Linus Torvalds
     

28 Sep, 2010

5 commits

  • Fixes kernel bugzilla #16603

    tcp_sendmsg() truncates iov_len to an 'int' which a 4GB write to write
    zero bytes, for example.

    There is also the problem higher up of how verify_iovec() works. It
    wants to prevent the total length from looking like an error return
    value.

    However it does this using 'int', but syscalls return 'long' (and
    thus signed 64-bit on 64-bit machines). So it could trigger
    false-positives on 64-bit as written. So fix it to use 'long'.

    Reported-by: Olaf Bonorden
    Reported-by: Daniel Büse
    Reported-by: Andrew Morton
    Signed-off-by: David S. Miller

    David S. Miller
     
  • This fixes a nasty memory corruption bug when using userptr I/O.
    The function videobuf_pages_to_sg() sets up the scatter-gather list for the
    DMA transfer to the userspace pages. The first transfer is setup correctly
    (the size is set to PAGE_SIZE - offset), but all other transfers have size
    PAGE_SIZE. This is wrong for the last transfer which may be less than PAGE_SIZE.

    Most, if not all, drivers will program the boards DMA engine correctly, i.e.
    even though the size in the last sg element is wrong, they will do their
    own size calculations and make sure the right amount is DMA-ed, and so seemingly
    prevent memory corruption.

    However, behind the scenes the dynamic DMA mapping support (in lib/swiotlb.c)
    may create bounce buffers if the memory pages are not in DMA-able memory.
    This happens for example on a 64-bit linux with a board that only supports
    32-bit DMA.

    These bounce buffers DO use the information in the sg list to determine the
    size. So while the DMA engine transfers the correct amount of data, when the
    data is 'bounced' back too much is copied, causing buffer overwrites.

    The fix is simple: calculate and set the correct size for the last sg list
    element.

    Signed-off-by: Hans Verkuil
    Cc: stable@kernel.org
    Signed-off-by: Mauro Carvalho Chehab

    Hans Verkuil
     
  • Hook the GEM vm open/close ops into the generic drm vm open/close so
    that the private vma entries are created and destroy appropriately.
    Fixes the leak of the drm_vma_entries during the lifetime of the filp.

    Reported-by: Matt Mackall
    Cc: Jesse Barnes
    Signed-off-by: Chris Wilson
    Acked-by: Jesse Barnes
    Cc: stable@kernel.org
    Signed-off-by: Dave Airlie

    Chris Wilson
     
  • as done in ip_route_connect()

    Signed-off-by: Ulrich Weber
    Signed-off-by: David S. Miller

    Ulrich Weber
     
  • …git/tip/linux-2.6-tip

    * 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
    x86/amd-iommu: Fix rounding-bug in __unmap_single
    x86/amd-iommu: Work around S3 BIOS bug
    x86/amd-iommu: Set iommu configuration flags in enable-loop
    x86, setup: Fix earlyprintk=serial,0x3f8,115200
    x86, setup: Fix earlyprintk=serial,ttyS0,115200

    Linus Torvalds
     

27 Sep, 2010

3 commits

  • Clean up a missing exit path in the ipv6 module init routines. In
    addrconf_init we call ipv6_addr_label_init which calls register_pernet_subsys
    for the ipv6_addr_label_ops structure. But if module loading fails, or if the
    ipv6 module is removed, there is no corresponding unregister_pernet_subsys call,
    which leaves a now-bogus address on the pernet_list, leading to oopses in
    subsequent registrations. This patch cleans up both the failed load path and
    the unload path. Tested by myself with good results.

    Signed-off-by: Neil Horman

    include/net/addrconf.h | 1 +
    net/ipv6/addrconf.c | 11 ++++++++---
    net/ipv6/addrlabel.c | 5 +++++
    3 files changed, 14 insertions(+), 3 deletions(-)
    Signed-off-by: David S. Miller

    Neil Horman
     
  • Reset queue mapping when an skb is reentering the stack via a tunnel.
    On second pass, the queue mapping from the original device is no
    longer valid.

    Signed-off-by: Tom Herbert
    Acked-by: Eric Dumazet
    Signed-off-by: David S. Miller

    Tom Herbert
     
  • fixes https://bugzilla.kernel.org/show_bug.cgi?id=19012

    cc: stable@kernel.org
    Signed-off-by: Dave Airlie

    Dave Airlie
     

24 Sep, 2010

1 commit


23 Sep, 2010

5 commits

  • rcu_dereference_bh() doesnt know yet about hard irq being disabled, so
    lockdep can trigger in netpoll_rx() after commit f0f9deae9e7c4 (netpoll:
    Disable IRQ around RCU dereference in netpoll_rx)

    Reported-by: Miles Lane
    Signed-off-by: Eric Dumazet
    Tested-by: Miles Lane
    Signed-off-by: Paul E. McKenney

    Eric Dumazet
     
  • This patch adds a workaround for an IOMMU BIOS problem to
    the AMD IOMMU driver. The result of the bug is that the
    IOMMU does not execute commands anymore when the system
    comes out of the S3 state resulting in system failure. The
    bug in the BIOS is that is does not restore certain hardware
    specific registers correctly. This workaround reads out the
    contents of these registers at boot time and restores them
    on resume from S3. The workaround is limited to the specific
    IOMMU chipset where this problem occurs.

    Cc: stable@kernel.org
    Signed-off-by: Joerg Roedel

    Joerg Roedel
     
  • This fixes the regression caused by the commit 6fee48cd330c68
    ("dma-mapping: arm: use generic pci_set_dma_mask and
    pci_set_consistent_dma_mask").

    ARM needs to clip the dma coherent mask for dmabounce devices. This
    restores the old trick.

    Note that strictly speaking, the DMA API doesn't allow architectures to do
    such but I'm not sure it's worth adding the new API to set the dma mask
    that allows architectures to clip it.

    Reported-by: Krzysztof Halasa
    Signed-off-by: FUJITA Tomonori
    Acked-by: Russell King
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    FUJITA Tomonori
     
  • Add a missing inline keyword for static function in linux/dmaengine.h to
    avoid duplicate symbol definitions.

    Signed-off-by: Mathieu Lacage
    Signed-off-by: Dan Williams

    Mathieu Lacage
     
  • This patch reduces namespace pollution by moving the "struct net" declaration
    out of the userspace-facing portion of linux/netlink.h. It has no impact on
    the kernel.

    (This came up because we have several C++ applications which use "net" as a
    namespace name.)

    Signed-off-by: Ollie Wild
    Signed-off-by: David S. Miller

    Ollie Wild