Skip to content
  1. Sep 22, 2012
  2. Sep 21, 2012
  3. Sep 20, 2012
    • Dave Airlie's avatar
      Revert "drm/nv50-/gpio: initialise to vbios defaults during init" · 18d4dbd8
      Dave Airlie authored
      This reverts commit 991083ba
      
      .
      
      We discovered this causes problem on some Dell eDP laptops, so Apple
      lose out for now, I might try and whip up a dmi based workaround for 3.6
      but I'm not sure I'll get time.
      
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      18d4dbd8
    • Dave Airlie's avatar
      Merge branch 'drm-fixes-3.6' of git://people.freedesktop.org/~agd5f/linux into drm-fixes · 8d4f5cc8
      Dave Airlie authored
      The pll fix ended up causing some regressions.  Drop it for 3.6.  I've
      fixed it properly in 3.7, but the fix is too invasive for 3.6.
      
      * 'drm-fixes-3.6' of git://people.freedesktop.org/~agd5f/linux:
        Revert "drm/radeon: rework pll selection (v3)"
      8d4f5cc8
    • Axel Lin's avatar
      Input: edt-ft5x06 - return -EFAULT on copy_to_user() error · 35b1da4e
      Axel Lin authored
      
      
      copy_to_user() returns the number of bytes remaining, but we want a
      negative error code here.
      
      Signed-off-by: default avatarAxel Lin <axel.lin@gmail.com>
      Signed-off-by: default avatarDmitry Torokhov <dtor@mail.ru>
      35b1da4e
    • Tai-hwa Liang's avatar
      Input: sentelic - filter out erratic movement when lifting finger · 30ebb7fa
      Tai-hwa Liang authored
      When lifing finger off the surface some versions of touchpad send movement
      packets with very low coordinates, which cause cursor to jump to the upper
      left corner of the screen. Let's ignore least significant bits of X and Y
      coordinates if higher bits are all zeroes and consider finger not touching
      the pad.
      
      Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=43197
      
      
      Reported-and-tested-by: default avatarAleksey Spiridonov <leks13@leks13.ru>
      Tested-by: default avatarEddie Dunn <eddie.dunn@gmail.com>
      Tested-by: default avatarJakub Luzny <limoto94@gmail.com>
      Tested-by: default avatarOlivier Goffart <olivier@woboq.com>
      Signed-off-by: default avatarTai-hwa Liang <avatar@sentelic.com>
      Signed-off-by: default avatarDmitry Torokhov <dtor@mail.ru>
      30ebb7fa
    • Pawel Moll's avatar
      Input: ambakmi - [un]prepare clocks when enabling amd disabling · 59d1f5c4
      Pawel Moll authored
      
      
      Clocks must be prepared before enabling and unprepared
      after disabling. Use appropriate functions to do this
      in one go.
      
      Signed-off-by: default avatarPawel Moll <pawel.moll@arm.com>
      Signed-off-by: default avatarDmitry Torokhov <dtor@mail.ru>
      59d1f5c4
    • Anisse Astier's avatar
      Input: i8042 - disable mux on Toshiba C850D · 8669cf67
      Anisse Astier authored
      
      
      On Toshiba Satellite C850D, the touchpad and the keyboard might randomly
      not work at boot. Preventing MUX mode activation solves this issue.
      
      Signed-off-by: default avatarAnisse Astier <anisse@astier.eu>
      Cc: stable@kernel.org
      Signed-off-by: default avatarDmitry Torokhov <dtor@mail.ru>
      8669cf67
    • Konrad Rzeszutek Wilk's avatar
      xen/boot: Disable BIOS SMP MP table search. · bd49940a
      Konrad Rzeszutek Wilk authored
      As the initial domain we are able to search/map certain regions
      of memory to harvest configuration data. For all low-level we
      use ACPI tables - for interrupts we use exclusively ACPI _PRT
      (so DSDT) and MADT for INT_SRC_OVR.
      
      The SMP MP table is not used at all. As a matter of fact we do
      not even support machines that only have SMP MP but no ACPI tables.
      
      Lets follow how Moorestown does it and just disable searching
      for BIOS SMP tables.
      
      This also fixes an issue on HP Proliant BL680c G5 and DL380 G6:
      
      9f->100 for 1:1 PTE
      Freeing 9f-100 pfn range: 97 pages freed
      1-1 mapping on 9f->100
      .. snip..
      e820: BIOS-provided physical RAM map:
      Xen: [mem 0x0000000000000000-0x000000000009efff] usable
      Xen: [mem 0x000000000009f400-0x00000000000fffff] reserved
      Xen: [mem 0x0000000000100000-0x00000000cfd1dfff] usable
      .. snip..
      Scan for SMP in [mem 0x00000000-0x000003ff]
      Scan for SMP in [mem 0x0009fc00-0x0009ffff]
      Scan for SMP in [mem 0x000f0000-0x000fffff]
      found SMP MP-table at [mem 0x000f4fa0-0x000f4faf] mapped at [ffff8800000f4fa0]
      (XEN) mm.c:908:d0 Error getting mfn 100 (pfn 5555555555555555) from L1 entry 0000000000100461 for l1e_owner=0, pg_owner=0
      (XEN) mm.c:4995:d0 ptwr_emulate: could not get_page_from_l1e()
      BUG: unable to handle kernel NULL pointer dereference at           (null)
      IP: [<ffffffff81ac07e2>] xen_set_pte_init+0x66/0x71
      . snip..
      Pid: 0, comm: swapper Not tainted 3.6.0-rc6upstream-00188-gb6fb969-dirty #2 HP ProLiant BL680c G5
      .. snip..
      Call Trace:
       [<ffffffff81ad31c6>] __early_ioremap+0x18a/0x248
       [<ffffffff81624731>] ? printk+0x48/0x4a
       [<ffffffff81ad32ac>] early_ioremap+0x13/0x15
       [<ffffffff81acc140>] get_mpc_size+0x2f/0x67
       [<ffffffff81acc284>] smp_scan_config+0x10c/0x136
       [<ffffffff81acc2e4>] default_find_smp_config+0x36/0x5a
       [<ffffffff81ac3085>] setup_arch+0x5b3/0xb5b
       [<ffffffff81624731>] ? printk+0x48/0x4a
       [<ffffffff81abca7f>] start_kernel+0x90/0x390
       [<ffffffff81abc356>] x86_64_start_reservations+0x131/0x136
       [<ffffffff81abfa83>] xen_start_kernel+0x65f/0x661
      (XEN) Domain 0 crashed: 'noreboot' set - not rebooting.
      
      which is that ioremap would end up mapping 0xff using _PAGE_IOMAP
      (which is what early_ioremap sticks as a flag) - which meant
      we would get MFN 0xFF (pte ff461, which is OK), and then it would
      also map 0x100 (b/c ioremap tries to get page aligned request, and
      it was trying to map 0xf4fa0 + PAGE_SIZE - so it mapped the next page)
      as _PAGE_IOMAP. Since 0x100 is actually a RAM page, and the _PAGE_IOMAP
      bypasses the P2M lookup we would happily set the PTE to 1000461.
      Xen would deny the request since we do not have access to the
      Machine Frame Number (MFN) of 0x100. The P2M[0x100] is for example
      0x80140.
      
      CC: stable@vger.kernel.org
      Fixes-Oracle-Bugzilla: https://bugzilla.oracle.com/bugzilla/show_bug.cgi?id=13665
      
      
      Acked-by: default avatarJan Beulich <jbeulich@suse.com>
      Signed-off-by: default avatarKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
      bd49940a
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.dk/linux-block · c46de226
      Linus Torvalds authored
      Pull block fixes from Jens Axboe:
       "A small collection of driver fixes/updates and a core fix for 3.6.  It
        contains:
      
         - Bug fixes for mtip32xx, and support for new hardware (just addition
           of IDs).  They have been queued up for 3.7 for a few weeks as well.
      
         - rate-limit a failing command error message in block core.
      
         - A fix for an old cciss bug from Stephen.
      
         - Prevent overflow of partition count from Alan."
      
      * 'for-linus' of git://git.kernel.dk/linux-block:
        cciss: fix handling of protocol error
        blk: add an upper sanity check on partition adding
        mtip32xx: fix user_buffer check in exec_drive_command
        mtip32xx: Remove dead code
        mtip32xx: Change printk to pr_xxxx
        mtip32xx: Proper reporting of write protect status on big-endian
        mtip32xx: Increase timeout for standby command
        mtip32xx: Handle NCQ commands during the security locked state
        mtip32xx: Add support for new devices
        block: rate-limit the error message from failing commands
      c46de226
    • Linus Torvalds's avatar
      Merge tag 'sh-for-linus' of git://github.com/pmundt/linux-sh · 077fee00
      Linus Torvalds authored
      Pull SuperH fixes from Paul Mundt.
      
      * tag 'sh-for-linus' of git://github.com/pmundt/linux-sh:
        sh: Fix up TIF_NOTIFY_RESUME sans TIF_SIGPENDING handling.
        sh: pfc: Release spinlock in sh_pfc_gpio_request_enable() error path
        sh: intc: Fix up multi-evt irq association.
      077fee00
    • Linus Torvalds's avatar
      Merge tag 'rpmsg-3.6-fix' of git://git.kernel.org/pub/scm/linux/kernel/git/ohad/rpmsg · cf42d543
      Linus Torvalds authored
      Pull rpmsg fix from Ohad Ben-Cohen:
       "A quick rpmsg fix from Fernando, fixing two buggy invocations of
        dma_free_coherent"
      
      * tag 'rpmsg-3.6-fix' of git://git.kernel.org/pub/scm/linux/kernel/git/ohad/rpmsg:
        rpmsg: fix dma_free_coherent dev parameter
      cf42d543
    • Linus Torvalds's avatar
      Merge tag 'md-3.6-fixes' of git://neil.brown.name/md · 4b92c17e
      Linus Torvalds authored
      Pull md fixes from NeilBrown:
       "3 fixes for md in 3.6.
      
        One reverts a recent patch which turns out to not be such a good idea.
      
        Other two fix minor bugs with the new (since 3.3) 'replacement' code
        and have been tagged for -stable."
      
      * tag 'md-3.6-fixes' of git://neil.brown.name/md:
        md: make sure metadata is updated when spares are activated or removed.
        md/raid5: fix calculate of 'degraded' when a replacement becomes active.
        Revert "md/raid5: For odirect-write performance, do not set STRIPE_PREREAD_ACTIVE."
      4b92c17e
    • Linus Torvalds's avatar
      Merge branch 'for-3.6-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq · c5c473e2
      Linus Torvalds authored
      Pull workqueue / powernow-k8 fix from Tejun Heo:
       "This is the fix for the bug where cpufreq/powernow-k8 was tripping
        BUG_ON() in try_to_wake_up_local() by migrating workqueue worker to a
        different CPU.
      
          https://bugzilla.kernel.org/show_bug.cgi?id=47301
      
        As discussed, the fix is now two parts - one to reimplement
        work_on_cpu() so that it doesn't create a new kthread each time and
        the actual fix which makes powernow-k8 use work_on_cpu() instead of
        performing manual migration.
      
        While pretty late in the merge cycle, both changes are on the safer
        side.  Jiri and I verified two existing users of work_on_cpu() and
        Duncan confirmed that the powernow-k8 fix survived about 18 hours of
        testing."
      
      * 'for-3.6-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq:
        cpufreq/powernow-k8: workqueue user shouldn't migrate the kworker to another CPU
        workqueue: reimplement work_on_cpu() using system_wq
      c5c473e2
    • Dmitry Torokhov's avatar
      Revert "input: ab8500-ponkey: Create AB8500 domain IRQ mapping" · 527df5fa
      Dmitry Torokhov authored
      This reverts commit ca3b3faf
      
      .
      
      There was a plan to place ab8500_irq_get_virq() calls in each AB8500
      child device prior to requesting an IRQ, but as we're no longer using
      Device Tree to collect our IRQ numbers, it's actually better to allow
      the core to do this during device registration time. So the IRQ number
      we pull from its resource has already been converted to a virtual IRQ.
      
      Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
      Acked-by: default avatarLinus Walleij <linus.walleij@linaro.org>
      Signed-off-by: default avatarDmitry Torokhov <dmitry.torokhov@gmail.com>
      527df5fa
    • Dmitry Torokhov's avatar
      Merge tag 'v3.6-rc5' into for-linus · 0b6c404a
      Dmitry Torokhov authored
      Sync with mainline so that I can revert an input patch that came in through
      another subsystem tree.
      0b6c404a
    • Tejun Heo's avatar
      cpufreq/powernow-k8: workqueue user shouldn't migrate the kworker to another CPU · 6889125b
      Tejun Heo authored
      powernowk8_target() runs off a per-cpu work item and if the
      cpufreq_policy->cpu is different from the current one, it migrates the
      kworker to the target CPU by manipulating current->cpus_allowed.  The
      function migrates the kworker back to the original CPU but this is
      still broken.  Workqueue concurrency management requires the kworkers
      to stay on the same CPU and powernowk8_target() ends up triggerring
      BUG_ON(rq != this_rq()) in try_to_wake_up_local() if it contends on
      fidvid_mutex and sleeps.
      
      It is unclear why this bug is being reported now.  Duncan says it
      appeared to be a regression of 3.6-rc1 and couldn't reproduce it on
      3.5.  Bisection seemed to point to 63d95a91 "workqueue: use @pool
      instead of @gcwq or @cpu where applicable" which is an non-functional
      change.  Given that the reproduce case sometimes took upto days to
      trigger, it's easy to be misled while bisecting.  Maybe something made
      contention on fidvid_mutex more likely?  I don't know.
      
      This patch fixes the bug by using work_on_cpu() instead if @pol->cpu
      isn't the same as the current one.  The code assumes that
      cpufreq_policy->cpu is kept online by the caller, which Rafael tells
      me is the case.
      
      stable: ed48ece2
      
       ("workqueue: reimplement work_on_cpu() using
              system_wq") should be applied before this; otherwise, the
              behavior could be horrible.
      
      Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      Reported-by: default avatarDuncan <1i5t5.duncan@cox.net>
      Tested-by: default avatarDuncan <1i5t5.duncan@cox.net>
      Cc: Rafael J. Wysocki <rjw@sisk.pl>
      Cc: Andreas Herrmann <andreas.herrmann3@amd.com>
      Cc: stable@vger.kernel.org
      Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=47301
      6889125b
    • Tejun Heo's avatar
      workqueue: reimplement work_on_cpu() using system_wq · ed48ece2
      Tejun Heo authored
      
      
      The existing work_on_cpu() implementation is hugely inefficient.  It
      creates a new kthread, execute that single function and then let the
      kthread die on each invocation.
      
      Now that system_wq can handle concurrent executions, there's no
      advantage of doing this.  Reimplement work_on_cpu() using system_wq
      which makes it simpler and way more efficient.
      
      stable: While this isn't a fix in itself, it's needed to fix a
              workqueue related bug in cpufreq/powernow-k8.  AFAICS, this
              shouldn't break other existing users.
      
      Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      Acked-by: default avatarJiri Kosina <jkosina@suse.cz>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Bjorn Helgaas <bhelgaas@google.com>
      Cc: Len Brown <lenb@kernel.org>
      Cc: Rafael J. Wysocki <rjw@sisk.pl>
      Cc: stable@vger.kernel.org
      ed48ece2
  4. Sep 19, 2012
    • Stephane Eranian's avatar
      perf/x86: Fix Intel Ivy Bridge support · 20a36e39
      Stephane Eranian authored
      
      
      This patch updates the existing Intel IvyBridge (model 58)
      support with proper PEBS event constraints. It cannot reuse
      the same as SandyBridge because some events (0xd3) are
      specific to IvyBridge.
      
      Also there is no UOPS_DISPATCHED.THREAD on IVB, so do not
      populate the PERF_COUNT_HW_STALLED_CYCLES_BACKEND mapping.
      
      Signed-off-by: default avatarStephane Eranian <eranian@google.com>
      Cc: peterz@infradead.org
      Cc: ak@linux.intel.com
      Link: http://lkml.kernel.org/r/20120910230701.GA5898@quad
      
      
      Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
      20a36e39
    • Guenter Roeck's avatar
      linux/kernel.h: Fix warning seen with W=1 due to change in DIV_ROUND_CLOSEST · 263a523d
      Guenter Roeck authored
      After commit b6d86d3d
      
       (Fix DIV_ROUND_CLOSEST to support negative dividends),
      the following warning is seen if the kernel is compiled with W=1 (-Wextra):
      
      warning: comparison of unsigned expression >= 0 is always true
      
      The warning is due to the test '((typeof(x))-1) >= 0', which is used to detect
      if the variable type is unsigned. Research on the web suggests that the warning
      disappears if '>' instead of '>=' is used for the comparison.
      
      Tests after changing the macro along that line show that the warning is gone,
      and that the result is still correct:
      
      i=-4: DIV_ROUND_CLOSEST(i, 2)=-2
      i=-3: DIV_ROUND_CLOSEST(i, 2)=-2
      i=-2: DIV_ROUND_CLOSEST(i, 2)=-1
      i=-1: DIV_ROUND_CLOSEST(i, 2)=-1
      i=0: DIV_ROUND_CLOSEST(i, 2)=0
      i=1: DIV_ROUND_CLOSEST(i, 2)=1
      i=2: DIV_ROUND_CLOSEST(i, 2)=1
      i=3: DIV_ROUND_CLOSEST(i, 2)=2
      i=4: DIV_ROUND_CLOSEST(i, 2)=2
      
      Code size is the same as before.
      
      Signed-off-by: default avatarGuenter Roeck <linux@roeck-us.net>
      Tested-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
      Acked-by: default avatarJean Delvare <khali@linux-fr.org>
      263a523d
    • NeilBrown's avatar
      md: make sure metadata is updated when spares are activated or removed. · 6dafab6b
      NeilBrown authored
      
      
      It isn't always necessary to update the metadata when spares are
      removed as the presence-or-not of a spare isn't really important to
      the integrity of an array.
      Also activating a spare doesn't always require updating the metadata
      as the update on 'recovery-completed' is usually sufficient.
      
      However the introduction of 'replacement' devices have made these
      transitions sometimes more important.  For example the 'Replacement'
      flag isn't cleared until the original device is removed, so we need
      to ensure a metadata update after that 'spare' is removed.
      
      So set MD_CHANGE_DEVS whenever a spare is activated or removed, to
      complement the current situation where it is set when a spare is added
      or a device is failed (or a number of other less common situations).
      
      This is suitable for -stable as out-of-data metadata could lead
      to data corruption.
      This is only relevant for 3.3 and later 9when 'replacement' as
      introduced.
      
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarNeilBrown <neilb@suse.de>
      6dafab6b
    • NeilBrown's avatar
      md/raid5: fix calculate of 'degraded' when a replacement becomes active. · e5c86471
      NeilBrown authored
      
      
      When a replacement device becomes active, we mark the device that it
      replaces as 'faulty' so that it can subsequently get removed.
      However 'calc_degraded' only pays attention to the primary device, not
      the replacement, so the array appears to become degraded, which is
      wrong.
      
      So teach 'calc_degraded' to consider any replacement if a primary
      device is faulty.
      
      This is suitable for -stable as an incorrect 'degraded' value can
      confuse md and could lead to data corruption.
      This is only relevant for 3.3 and later.
      
      Cc: stable@vger.kernel.org
      Reported-by: default avatarRobin Hill <robin@robinhill.me.uk>
      Reported-by: default avatarJohn Drescher <drescherjm@gmail.com>
      Signed-off-by: default avatarNeilBrown <neilb@suse.de>
      e5c86471
    • NeilBrown's avatar
      Revert "md/raid5: For odirect-write performance, do not set STRIPE_PREREAD_ACTIVE." · a852d7b8
      NeilBrown authored
      This reverts commit 895e3c5c
      
      .
      
      While this patch seemed like a good idea and did help some workloads,
      it hurts other workloads.
      Large sequential O_DIRECT writes were faster,
      Small random O_DIRECT writes were slower.
      
      Other changes (batching RAID5 writes) have improved the sequential
      writes using a different mechanism, so the net result of this patch
      is definitely negative.  So revert it.
      
      Reported-by: default avatarShaohua Li <shli@kernel.org>
      Tested-by: default avatarJianpeng Ma <majianpeng@gmail.com>
      Signed-off-by: default avatarNeilBrown <neilb@suse.de>
      a852d7b8
    • Ben Myers's avatar
      xfs: stop the sync worker before xfs_unmountfs · 0ba6e536
      Ben Myers authored
      Cancel work of the xfs_sync_worker before teardown of the log in
      xfs_unmountfs.  This prevents occasional crashes on unmount like so:
      
      PID: 21602  TASK: ee9df060  CPU: 0   COMMAND: "kworker/0:3"
       #0 [c5377d28] crash_kexec at c0292c94
       #1 [c5377d80] oops_end at c07090c2
       #2 [c5377d98] no_context at c06f614e
       #3 [c5377dbc] __bad_area_nosemaphore at c06f6281
       #4 [c5377df4] bad_area_nosemaphore at c06f629b
       #5 [c5377e00] do_page_fault at c070b0cb
       #6 [c5377e7c] error_code (via page_fault) at c070892c
          EAX: f300c6a8  EBX: f300c6a8  ECX: 000000c0  EDX: 000000c0  EBP: c5377ed0
          DS:  007b      ESI: 00000000  ES:  007b      EDI: 00000001  GS:  ffffad20
          CS:  0060      EIP: c0481ad0  ERR: ffffffff  EFLAGS: 00010246
       #7 [c5377eb0] atomic64_read_cx8 at c0481ad0
       #8 [c5377ebc] xlog_assign_tail_lsn_locked at f7cc7c6e [xfs]
       #9 [c5377ed4] xfs_trans_ail_delete_bulk at f7ccd520 [xfs]
      #10 [c5377f0c] xfs_buf_iodone at f7ccb602 [xfs]
      #11 [c5377f24] xfs_buf_do_callbacks at f7cca524 [xfs]
      #12 [c5377f30] xfs_buf_iodone_callbacks at f7cca5da [xfs]
      #13 [c5377f4c] xfs_buf_iodone_work at f7c718d0 [xfs]
      #14 [c5377f58] process_one_work at c024ee4c
      #15 [c5377f98] worker_thread at c024f43d
      #16 [c5377fbc] kthread at c025326b
      #17 [c5377fe8] kernel_thread_helper at c070e834
      
      PID: 26653  TASK: e79143b0  CPU: 3   COMMAND: "umount"
       #0 [cde0fda0] __schedule at c0706595
       #1 [cde0fe28] schedule at c0706b89
       #2 [cde0fe30] schedule_timeout at c0705600
       #3 [cde0fe94] __down_common at c0706098
       #4 [cde0fec8] __down at c0706122
       #5 [cde0fed0] down at c025936f
       #6 [cde0fee0] xfs_buf_lock at f7c7131d [xfs]
       #7 [cde0ff00] xfs_freesb at f7cc2236 [xfs]
       #8 [cde0ff10] xfs_fs_put_super at f7c80f21 [xfs]
       #9 [cde0ff1c] generic_shutdown_super at c0333d7a
      #10 [cde0ff38] kill_block_super at c0333e0f
      #11 [cde0ff48] deactivate_locked_super at c0334218
      #12 [cde0ff58] deactivate_super at c033495d
      #13 [cde0ff68] mntput_no_expire at c034bc13
      #14 [cde0ff7c] sys_umount at c034cc69
      #15 [cde0ffa0] sys_oldumount at c034ccd4
      #16 [cde0ffb0] system_call at c0707e66
      
      commit 11159a05
      
       added this to xfs_log_unmount and needs to be cleaned up
      at a later date.
      
      Signed-off-by: default avatarBen Myers <bpm@sgi.com>
      Reviewed-by: default avatarDave Chinner <dchinner@redhat.com>
      Reviewed-by: default avatarMark Tinguely <tinguely@sgi.com>
      0ba6e536