1. 25 Jun, 2013 15 commits
  2. 12 Jun, 2013 5 commits
  3. 10 Jun, 2013 4 commits
    • Konrad Rzeszutek Wilk's avatar
      xen/tmem: Don't over-write tmem_frontswap_poolid after tmem_frontswap_init set it. · b2c75c44
      Konrad Rzeszutek Wilk authored
      Commit 10a7a077 ("xen: tmem: enable Xen
      tmem shim to be built/loaded as a module") allows the tmem module
      to be loaded any time. For this work the frontswap API had to
      be able to asynchronously to call tmem_frontswap_init before
      or after the swap image had been set. That was added in git
      commit 905cd0e1
      
      
      ("mm: frontswap: lazy initialization to allow tmem backends to build/run as modules").
      
      Which means we could do this (The common case):
      
       modprobe tmem		[so calls frontswap_register_ops, no ->init]
      			 modifies tmem_frontswap_poolid = -1
       swapon /dev/xvda1	[__frontswap_init, calls -> init, tmem_frontswap_poolid is
      			 < 0 so tmem hypercall done]
      
      Or the failing one:
      
       swapon /dev/xvda1	[calls __frontswap_init, sets the need_init bitmap]
       modprobe tmem		[calls frontswap_register_ops, -->init calls, finds out
      			tmem_frontswap_poolid is 0, does not make a hypercall.
      			Later in the module_init, sets tmem_frontswap_poolid=-1]
      
      Which meant that in the failing case we would not call the hypercall
      to initialize the pool and never be able to make any frontswap
      backend calls.
      
      Moving the frontswap_register_ops after setting the tmem_frontswap_poolid
      fixes it.
      Signed-off-by: default avatarKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
      Reviewed-by: default avatarBob Liu <bob.liu@oracle.com>
      b2c75c44
    • Daniel Vetter's avatar
      drm/i915: prefer VBT modes for SVDO-LVDS over EDID · c3456fb3
      Daniel Vetter authored
      In
      
      commit 53d3b4d7
      Author: Egbert Eich <eich@suse.de>
      Date:   Tue Jun 4 17:13:21 2013 +0200
      
          drm/i915/sdvo: Use &intel_sdvo->ddc instead of intel_sdvo->i2c for DDC
      
      Egbert Eich fixed a long-standing bug where we simply used a
      non-working i2c controller to read the EDID for SDVO-LVDS panels.
      Unfortunately some machines seem to not be able to cope with the mode
      provided in the EDID. Specifically they seem to not be able to cope
      with a 4x pixel mutliplier instead of a 2x one, which seems to have
      been worked around by slightly changing the panels native mode in the
      VBT so that the dotclock is just barely above 50MHz.
      
      Since it took forever to notice the breakage it's fairly safe to
      assume that at least for SDVO-LVDS panels the VBT contains fairly sane
      data. So just switch around the order and use VBT modes first.
      
      v2: Also add EDID modes just in case, and spell Egbert correctly.
      
      v3: Elaborate a bit more about what's going on on Chris' machine.
      
      Cc: Egbert Eich <eich@suse.de>
      Cc: Chris Wilson <chris@chris-wilson.co.uk>
      Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=65524
      
      
      Cc: stable@vger.kernel.org
      Reported-and-tested-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
      Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
      c3456fb3
    • Chris Wilson's avatar
      drm/i915: Enable hotplug interrupts after querying hw capabilities. · 7ba220ce
      Chris Wilson authored
      sdvo->hotplug_active is initialised during intel_sdvo_setup_outputs(),
      and so we never enabled the hotplug interrupts on SDVO as we were
      checking too early.
      
      This regression has been introduced somewhere in the hpd rework for
      the storm detection and handling starting with
      
      commit 1d843f9d
      
      
      Author: Egbert Eich <eich@suse.de>
      Date:   Mon Feb 25 12:06:49 2013 -0500
      
          DRM/I915: Add enum hpd_pin to intel_encoder.
      
      and the follow-up patches to use the new encoder->hpd_pin variable for
      the different irq setup functions.
      
      The problem is that encoder->hpd_pin was set up _before_ the output
      setup was done and so before we could assess the hotplug capabilities
      of the outputs on an sdvo encoder.
      Reported-by: default avatarAlex Fiestas <afiestas@kde.org>
      Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=58405
      
      Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
      [danvet: Add regression note.]
      Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
      7ba220ce
    • Chris Wilson's avatar
      drm/i915: Fix hotplug interrupt enabling for SDVOC · 7ee2aff3
      Chris Wilson authored
      A broken conditional would lead to SDVOC waiting upon hotplug events on
      SDVOB - and so miss all activity on its SDVO port.
      
      This regression has been introduced in
      
      commit 1d843f9d
      Author: Egbert Eich <eich@suse.de>
      Date:   Mon Feb 25 12:06:49 2013 -0500
      
          DRM/I915: Add enum hpd_pin to intel_encoder.
      
      References: https://bugs.freedesktop.org/show_bug.cgi?id=58405
      
      Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
      [danvet: Add regression note.]
      Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
      7ee2aff3
  4. 09 Jun, 2013 4 commits
  5. 08 Jun, 2013 2 commits
  6. 07 Jun, 2013 3 commits
  7. 06 Jun, 2013 3 commits
  8. 05 Jun, 2013 4 commits
    • Johan Hovold's avatar
      USB: serial: fix TIOCMIWAIT return value · f4488035
      Johan Hovold authored
      Fix regression introduced by commit 143d9d96
      
       ("USB: serial: add
      tiocmiwait subdriver operation") which made the ioctl operation return
      ENODEV rather than ENOIOCTLCMD when a subdriver TIOCMIWAIT
      implementation is missing.
      Signed-off-by: default avatarJohan Hovold <jhovold@gmail.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      f4488035
    • Alexey Kardashevskiy's avatar
      vfio: fix crash on rmmod · 9a6aa279
      Alexey Kardashevskiy authored
      
      devtmpfs_delete_node() calls devnode() callback with mode==NULL but
      vfio still tries to write there.
      
      The patch fixes this.
      Signed-off-by: default avatarAlexey Kardashevskiy <aik@ozlabs.ru>
      Signed-off-by: default avatarAlex Williamson <alex.williamson@redhat.com>
      9a6aa279
    • Guennadi Liakhovetski's avatar
      cpufreq: cpufreq-cpu0: use the exact frequency for clk_set_rate() · 0ca68436
      Guennadi Liakhovetski authored
      
      clk_set_rate() isn't supposed to accept approximate frequencies, instead
      a supported frequency should be obtained from clk_round_rate() and then
      used to set the clock.
      Signed-off-by: default avatarGuennadi Liakhovetski <g.liakhovetski@gmx.de>
      Acked-by: default avatarShawn Guo <shawn.guo@linaro.org>
      Acked-by: default avatarViresh Kumar <viresh.kumar@linaro.org>
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      0ca68436
    • Michael Wang's avatar
      cpufreq: protect 'policy->cpus' from offlining during __gov_queue_work() · 2f7021a8
      Michael Wang authored
      Jiri Kosina <jkosina@suse.cz> and Borislav Petkov <bp@alien8.de>
      reported the warning:
      
      [   51.616759] ------------[ cut here ]------------
      [   51.621460] WARNING: at arch/x86/kernel/smp.c:123 native_smp_send_reschedule+0x58/0x60()
      [   51.629638] Modules linked in: ext2 vfat fat loop snd_hda_codec_hdmi usbhid snd_hda_codec_realtek coretemp kvm_intel kvm snd_hda_intel snd_hda_codec crc32_pclmul crc32c_intel ghash_clmulni_intel snd_hwdep snd_pcm aesni_intel sb_edac aes_x86_64 ehci_pci snd_page_alloc glue_helper snd_timer xhci_hcd snd iTCO_wdt iTCO_vendor_support ehci_hcd edac_core lpc_ich acpi_cpufreq lrw gf128mul ablk_helper cryptd mperf usbcore usb_common soundcore mfd_core dcdbas evdev pcspkr processor i2c_i801 button microcode
      [   51.675581] CPU: 0 PID: 244 Comm: kworker/1:1 Tainted: G        W    3.10.0-rc1+ #10
      [   51.683407] Hardware name: Dell Inc. Precision T3600/0PTTT9, BIOS A08 01/24/2013
      [   51.690901] Workqueue: events od_dbs_timer
      [   51.695069]  0000000000000009 ffff88043a2f5b68 ffffffff8161441c ffff88043a2f5ba8
      [   51.702602]  ffffffff8103e540 0000000000000033 0000000000000001 ffff88043d5f8000
      [   51.710136]  00000000ffff0ce1 0000000000000001 ffff88044fc4fc08 ffff88043a2f5bb8
      [   51.717691] Call Trace:
      [   51.720191]  [<ffffffff8161441c>] dump_stack+0x19/0x1b
      [   51.725396]  [<ffffffff8103e540>] warn_slowpath_common+0x70/0xa0
      [   51.731473]  [<ffffffff8103e58a>] warn_slowpath_null+0x1a/0x20
      [   51.737378]  [<ffffffff81025628>] native_smp_send_reschedule+0x58/0x60
      [   51.744013]  [<ffffffff81072cfd>] wake_up_nohz_cpu+0x2d/0xa0
      [   51.749745]  [<ffffffff8104f6bf>] add_timer_on+0x8f/0x110
      [   51.755214]  [<ffffffff8105f6fe>] __queue_delayed_work+0x16e/0x1a0
      [   51.761470]  [<ffffffff8105f251>] ? try_to_grab_pending+0xd1/0x1a0
      [   51.767724]  [<ffffffff8105f78a>] mod_delayed_work_on+0x5a/0xa0
      [   51.773719]  [<ffffffff814f6b5d>] gov_queue_work+0x4d/0xc0
      [   51.779271]  [<ffffffff814f60cb>] od_dbs_timer+0xcb/0x170
      [   51.784734]  [<ffffffff8105e75d>] process_one_work+0x1fd/0x540
      [   51.790634]  [<ffffffff8105e6f2>] ? process_one_work+0x192/0x540
      [   51.796711]  [<ffffffff8105ef22>] worker_thread+0x122/0x380
      [   51.802350]  [<ffffffff8105ee00>] ? rescuer_thread+0x320/0x320
      [   51.808264]  [<ffffffff8106634a>] kthread+0xea/0xf0
      [   51.813200]  [<ffffffff81066260>] ? flush_kthread_worker+0x150/0x150
      [   51.819644]  [<ffffffff81623d5c>] ret_from_fork+0x7c/0xb0
      [   51.918165] nouveau E[     DRM] GPU lockup - switching to software fbcon
      [   51.930505]  [<ffffffff81066260>] ? flush_kthread_worker+0x150/0x150
      [   51.936994] ---[ end trace f419538ada83b5c5 ]---
      
      It was caused by the policy->cpus changed during the process of
      __gov_queue_work(), in other word, cpu offline happened.
      
      Use get/put_online_cpus() to prevent the offline from happening while
      __gov_queue_work() is running.
      
      [rjw: The problem has been present since recent commit 031299b3
      (cpufreq: governors: Avoid unnecessary per cpu timer interrupts)]
      
      References: https://lkml.org/lkml/2013/6/5/88
      
      Reported-by: default avatarBorislav Petkov <bp@alien8.de>
      Reported-and-tested-by: default avatarJiri Kosina <jkosina@suse.cz>
      Signed-off-by: default avatarMichael Wang <wangyun@linux.vnet.ibm.com>
      Acked-by: default avatarViresh Kumar <viresh.kumar@linaro.org>
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      2f7021a8