1. 28 Jun, 2012 6 commits
    • Linus Torvalds's avatar
      Merge branch 'drm-fixes' of git://people.freedesktop.org/~airlied/linux · 4a9c4697
      Linus Torvalds authored
      Pull drm fixes from Dave Airlie:
       "Nearly all intel, one missing license header in nouveau, nothing
        majorly earth shattering."
      
      * 'drm-fixes' of git://people.freedesktop.org/~airlied/linux:
        Revert "drm/i915: allow PCH PWM override on IVB"
        drm/nouveau: add license header to prime.
        drm/i915: Fix eDP blank screen after S3 resume on HP desktops
        drm/i915: rip out the PM_IIR WARN
      4a9c4697
    • Linus Torvalds's avatar
      Merge tag 'sh-for-linus' of git://github.com/pmundt/linux-sh · ef726227
      Linus Torvalds authored
      Pull SuperH fixes from Paul Mundt.
      
      * tag 'sh-for-linus' of git://github.com/pmundt/linux-sh:
        sh: Convert sh_clk_mstp32_register to sh_clk_mstp_register
        sh: kfr2r09: fix compile breakage
      ef726227
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net · f3747e2f
      Linus Torvalds authored
      Pull networking update from David Miller:
      
       1) Pairing and deadlock fixes in bluetooth from Johan Hedberg.
      
       2) Add device IDs for AR3011 and AR3012 bluetooth chips.  From
          Giancarlo Formicuccia and Marek Vasut.
      
       3) Fix wireless regulatory deadlock, from Eliad Peller.
      
       4) Fix full TX ring panic in bnx2x driver, from Eric Dumazet.
      
       5) Revert the two commits that added skb_orphan_try(), it causes
          erratic bonding behavior with UDP clients and the gains it used to
          give are mostly no longer happening due to how BQL works.  From Eric
          Dumazet.
      
       6) It took two tries, but Thomas Graf fixed a problem wherein we
          registered ipv6 routing procfs files before their backend data were
          initialized properly.
      
       7) Fix max GSO size setting in be2net, from Sarveshwar Bandi.
      
       8) PHY device id mask is wrong for KSZ9021 and KS8001 chips, fix from
          Jason Wang.
      
       9) Fix use of stale SKB data pointer after skb_linearize() call in
          batman-adv, from Antonio Quartulli.
      
      10) Fix memory leak in IXGBE due to missing __GFP_COMP, from Alexander
          Duyck.
      
      11) Fix probing of Gobi devices in qmi_wwan usbnet driver, from Bjørn
          Mork.
      
      12) Fix suspend/resume and open failure handling in usbnet from Ming
          Lei.
      
      13) Attempt to fix device r8169 hangs for certain chips, from Francois
          Romieu.
      
      14) Fix advancement of RX dirty pointer in some situations in sh_eth
          driver, from Yoshihiro Shimoda.
      
      15) Attempt to fix restart of IPV6 routing table dumps when there is an
          intervening table update.  From Eric Dumazet.
      
      16) Respect security_inet_conn_request() return value in ipv6 TCP.  From
          Neal Cardwell.
      
      17) Add another iPAD device ID to ipheth driver, from Davide Gerhard.
      
      18) Fix access to freed SKB in l2tp_eth_dev_xmit(), and fix l2tp lockdep
          splats, from Eric Dumazet.
      
      19) Make sure all bridge devices, regardless of whether they were
          created via netlink or ioctls, have their rtnetlink ops hooked up.
          From Thomas Graf and Stephen Hemminger.
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (81 commits)
        9p: fix min_t() casting in p9pdu_vwritef()
        can: flexcan: use be32_to_cpup to handle the value of dt entry
        xen/netfront: teardown the device before unregistering it.
        bridge: Assign rtnl_link_ops to bridge devices created via ioctl (v2)
        vhost: use USER_DS in vhost_worker thread
        ixgbe: Do not pad FCoE frames as this can cause issues with FCoE DDP
        net: l2tp_eth: use LLTX to avoid LOCKDEP splats
        mac802154: add missed braces
        net: l2tp_eth: fix l2tp_eth_dev_xmit race
        net/mlx4_en: Release QP range in free_resources
        net/mlx4: Use single completion vector after NOP failure
        net/mlx4_en: Set correct port parameters during device initialization
        ipheth: add support for iPad
        caif-hsi: Add missing return in error path
        caif-hsi: Bugfix - Piggyback'ed embedded CAIF frame lost
        caif: Clear shutdown mask to zero at reconnect.
        tcp: heed result of security_inet_conn_request() in tcp_v6_conn_request()
        ipv6: fib: fix fib dump restart
        batman-adv: fix race condition in TT full-table replacement
        batman-adv: only drop packets of known wifi clients
        ...
      f3747e2f
    • Paul Mundt's avatar
    • Nobuhiro Iwamatsu's avatar
      sh: Convert sh_clk_mstp32_register to sh_clk_mstp_register · ad3337cb
      Nobuhiro Iwamatsu authored
      sh_clk_mstp32_register is deprecated. This convert to sh_clk_mstp_register.
      Signed-off-by: default avatarNobuhiro Iwamatsu <nobuhiro.iwamatsu.yj@renesas.com>
      Signed-off-by: default avatarPaul Mundt <lethal@linux-sh.org>
      ad3337cb
    • Guennadi Liakhovetski's avatar
      sh: kfr2r09: fix compile breakage · bc404e91
      Guennadi Liakhovetski authored
      Fix compile breakage caused by
      
      commit aa82f9fc
      Author: Paul Mundt <lethal@linux-sh.org>
      
          sh: kfr2r09 evt2irq migration.
      Signed-off-by: default avatarGuennadi Liakhovetski <g.liakhovetski@gmx.de>
      Signed-off-by: default avatarPaul Mundt <lethal@linux-sh.org>
      bc404e91
  2. 27 Jun, 2012 15 commits
  3. 26 Jun, 2012 14 commits
    • Alexander Duyck's avatar
      ixgbe: Do not pad FCoE frames as this can cause issues with FCoE DDP · 57efd44c
      Alexander Duyck authored
      FCoE target mode was experiencing issues due to the fact that we were
      sending up data frames that were padded to 60 bytes after the DDP logic had
      already stripped the frame down to 52 or 56 depending on the use of VLANs.
      This was resulting in the FCoE DDP logic having issues since it thought the
      frame still had data in it due to the padding.
      
      To resolve this, adding code so that we do not pad FCoE frames prior to
      handling them to the stack.
      
      CC: <stable@vger.kernel.org>
      Signed-off-by: default avatarAlexander Duyck <alexander.h.duyck@intel.com>
      Tested-by: default avatarPhil Schmitt <phillip.j.schmitt@intel.com>
      Tested-by: default avatarRoss Brattain <ross.b.brattain@intel.com>
      Signed-off-by: default avatarJeff Kirsher <jeffrey.t.kirsher@intel.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      57efd44c
    • Eric Dumazet's avatar
      net: l2tp_eth: use LLTX to avoid LOCKDEP splats · a2842a1e
      Eric Dumazet authored
      Denys Fedoryshchenko reported a LOCKDEP issue with l2tp code.
      
      [ 8683.927442] ======================================================
      [ 8683.927555] [ INFO: possible circular locking dependency detected ]
      [ 8683.927672] 3.4.1-build-0061 #14 Not tainted
      [ 8683.927782] -------------------------------------------------------
      [ 8683.927895] swapper/0/0 is trying to acquire lock:
      [ 8683.928007]  (slock-AF_INET){+.-...}, at: [<e0fc73ec>]
      l2tp_xmit_skb+0x173/0x47e [l2tp_core]
      [ 8683.928121]
      [ 8683.928121] but task is already holding lock:
      [ 8683.928121]  (_xmit_ETHER#2){+.-...}, at: [<c02f062d>]
      sch_direct_xmit+0x36/0x119
      [ 8683.928121]
      [ 8683.928121] which lock already depends on the new lock.
      [ 8683.928121]
      [ 8683.928121]
      [ 8683.928121] the existing dependency chain (in reverse order) is:
      [ 8683.928121]
      [ 8683.928121] -> #1 (_xmit_ETHER#2){+.-...}:
      [ 8683.928121]        [<c015a561>] lock_acquire+0x71/0x85
      [ 8683.928121]        [<c034da2d>] _raw_spin_lock+0x33/0x40
      [ 8683.928121]        [<c0304e0c>] ip_send_reply+0xf2/0x1ce
      [ 8683.928121]        [<c0317dbc>] tcp_v4_send_reset+0x153/0x16f
      [ 8683.928121]        [<c0317f4a>] tcp_v4_do_rcv+0x172/0x194
      [ 8683.928121]        [<c031929b>] tcp_v4_rcv+0x387/0x5a0
      [ 8683.928121]        [<c03001d0>] ip_local_deliver_finish+0x13a/0x1e9
      [ 8683.928121]        [<c0300645>] NF_HOOK.clone.11+0x46/0x4d
      [ 8683.928121]        [<c030075b>] ip_local_deliver+0x41/0x45
      [ 8683.928121]        [<c03005dd>] ip_rcv_finish+0x31a/0x33c
      [ 8683.928121]        [<c0300645>] NF_HOOK.clone.11+0x46/0x4d
      [ 8683.928121]        [<c0300960>] ip_rcv+0x201/0x23d
      [ 8683.928121]        [<c02de91b>] __netif_receive_skb+0x329/0x378
      [ 8683.928121]        [<c02deae8>] netif_receive_skb+0x4e/0x7d
      [ 8683.928121]        [<e08d5ef3>] rtl8139_poll+0x243/0x33d [8139too]
      [ 8683.928121]        [<c02df103>] net_rx_action+0x90/0x15d
      [ 8683.928121]        [<c012b2b5>] __do_softirq+0x7b/0x118
      [ 8683.928121]
      [ 8683.928121] -> #0 (slock-AF_INET){+.-...}:
      [ 8683.928121]        [<c0159f1b>] __lock_acquire+0x9a3/0xc27
      [ 8683.928121]        [<c015a561>] lock_acquire+0x71/0x85
      [ 8683.928121]        [<c034da2d>] _raw_spin_lock+0x33/0x40
      [ 8683.928121]        [<e0fc73ec>] l2tp_xmit_skb+0x173/0x47e
      [l2tp_core]
      [ 8683.928121]        [<e0fe31fb>] l2tp_eth_dev_xmit+0x1a/0x2f
      [l2tp_eth]
      [ 8683.928121]        [<c02e01e7>] dev_hard_start_xmit+0x333/0x3f2
      [ 8683.928121]        [<c02f064c>] sch_direct_xmit+0x55/0x119
      [ 8683.928121]        [<c02e0528>] dev_queue_xmit+0x282/0x418
      [ 8683.928121]        [<c031f4fb>] NF_HOOK.clone.19+0x45/0x4c
      [ 8683.928121]        [<c031f524>] arp_xmit+0x22/0x24
      [ 8683.928121]        [<c031f567>] arp_send+0x41/0x48
      [ 8683.928121]        [<c031fa7d>] arp_process+0x289/0x491
      [ 8683.928121]        [<c031f4fb>] NF_HOOK.clone.19+0x45/0x4c
      [ 8683.928121]        [<c031f7a0>] arp_rcv+0xb1/0xc3
      [ 8683.928121]        [<c02de91b>] __netif_receive_skb+0x329/0x378
      [ 8683.928121]        [<c02de9d3>] process_backlog+0x69/0x130
      [ 8683.928121]        [<c02df103>] net_rx_action+0x90/0x15d
      [ 8683.928121]        [<c012b2b5>] __do_softirq+0x7b/0x118
      [ 8683.928121]
      [ 8683.928121] other info that might help us debug this:
      [ 8683.928121]
      [ 8683.928121]  Possible unsafe locking scenario:
      [ 8683.928121]
      [ 8683.928121]        CPU0                    CPU1
      [ 8683.928121]        ----                    ----
      [ 8683.928121]   lock(_xmit_ETHER#2);
      [ 8683.928121]                                lock(slock-AF_INET);
      [ 8683.928121]                                lock(_xmit_ETHER#2);
      [ 8683.928121]   lock(slock-AF_INET);
      [ 8683.928121]
      [ 8683.928121]  *** DEADLOCK ***
      [ 8683.928121]
      [ 8683.928121] 3 locks held by swapper/0/0:
      [ 8683.928121]  #0:  (rcu_read_lock){.+.+..}, at: [<c02dbc10>]
      rcu_lock_acquire+0x0/0x30
      [ 8683.928121]  #1:  (rcu_read_lock_bh){.+....}, at: [<c02dbc10>]
      rcu_lock_acquire+0x0/0x30
      [ 8683.928121]  #2:  (_xmit_ETHER#2){+.-...}, at: [<c02f062d>]
      sch_direct_xmit+0x36/0x119
      [ 8683.928121]
      [ 8683.928121] stack backtrace:
      [ 8683.928121] Pid: 0, comm: swapper/0 Not tainted 3.4.1-build-0061 #14
      [ 8683.928121] Call Trace:
      [ 8683.928121]  [<c034bdd2>] ? printk+0x18/0x1a
      [ 8683.928121]  [<c0158904>] print_circular_bug+0x1ac/0x1b6
      [ 8683.928121]  [<c0159f1b>] __lock_acquire+0x9a3/0xc27
      [ 8683.928121]  [<c015a561>] lock_acquire+0x71/0x85
      [ 8683.928121]  [<e0fc73ec>] ? l2tp_xmit_skb+0x173/0x47e [l2tp_core]
      [ 8683.928121]  [<c034da2d>] _raw_spin_lock+0x33/0x40
      [ 8683.928121]  [<e0fc73ec>] ? l2tp_xmit_skb+0x173/0x47e [l2tp_core]
      [ 8683.928121]  [<e0fc73ec>] l2tp_xmit_skb+0x173/0x47e [l2tp_core]
      [ 8683.928121]  [<e0fe31fb>] l2tp_eth_dev_xmit+0x1a/0x2f [l2tp_eth]
      [ 8683.928121]  [<c02e01e7>] dev_hard_start_xmit+0x333/0x3f2
      [ 8683.928121]  [<c02f064c>] sch_direct_xmit+0x55/0x119
      [ 8683.928121]  [<c02e0528>] dev_queue_xmit+0x282/0x418
      [ 8683.928121]  [<c02e02a6>] ? dev_hard_start_xmit+0x3f2/0x3f2
      [ 8683.928121]  [<c031f4fb>] NF_HOOK.clone.19+0x45/0x4c
      [ 8683.928121]  [<c031f524>] arp_xmit+0x22/0x24
      [ 8683.928121]  [<c02e02a6>] ? dev_hard_start_xmit+0x3f2/0x3f2
      [ 8683.928121]  [<c031f567>] arp_send+0x41/0x48
      [ 8683.928121]  [<c031fa7d>] arp_process+0x289/0x491
      [ 8683.928121]  [<c031f7f4>] ? __neigh_lookup.clone.20+0x42/0x42
      [ 8683.928121]  [<c031f4fb>] NF_HOOK.clone.19+0x45/0x4c
      [ 8683.928121]  [<c031f7a0>] arp_rcv+0xb1/0xc3
      [ 8683.928121]  [<c031f7f4>] ? __neigh_lookup.clone.20+0x42/0x42
      [ 8683.928121]  [<c02de91b>] __netif_receive_skb+0x329/0x378
      [ 8683.928121]  [<c02de9d3>] process_backlog+0x69/0x130
      [ 8683.928121]  [<c02df103>] net_rx_action+0x90/0x15d
      [ 8683.928121]  [<c012b2b5>] __do_softirq+0x7b/0x118
      [ 8683.928121]  [<c012b23a>] ? local_bh_enable+0xd/0xd
      [ 8683.928121]  <IRQ>  [<c012b4d0>] ? irq_exit+0x41/0x91
      [ 8683.928121]  [<c0103c6f>] ? do_IRQ+0x79/0x8d
      [ 8683.928121]  [<c0157ea1>] ? trace_hardirqs_off_caller+0x2e/0x86
      [ 8683.928121]  [<c034ef6e>] ? common_interrupt+0x2e/0x34
      [ 8683.928121]  [<c0108a33>] ? default_idle+0x23/0x38
      [ 8683.928121]  [<c01091a8>] ? cpu_idle+0x55/0x6f
      [ 8683.928121]  [<c033df25>] ? rest_init+0xa1/0xa7
      [ 8683.928121]  [<c033de84>] ? __read_lock_failed+0x14/0x14
      [ 8683.928121]  [<c0498745>] ? start_kernel+0x303/0x30a
      [ 8683.928121]  [<c0498209>] ? repair_env_string+0x51/0x51
      [ 8683.928121]  [<c04980a8>] ? i386_start_kernel+0xa8/0xaf
      
      It appears that like most virtual devices, l2tp should be converted to
      LLTX mode.
      
      This patch takes care of statistics using atomic_long in both RX and TX
      paths, and fix a bug in l2tp_eth_dev_recv(), which was caching skb->data
      before a pskb_may_pull() call.
      Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
      Reported-by: default avatarDenys Fedoryshchenko <denys@visp.net.lb>
      Cc: James Chapman <jchapman@katalix.com>
      Cc: Hong zhi guo <honkiko@gmail.com>
      Cc: Francois Romieu <romieu@fr.zoreil.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      a2842a1e
    • Craig Shelley's avatar
      USB: CP210x Add 10 Device IDs · 3fcc8f96
      Craig Shelley authored
      This patch adds 10 device IDs for CP210x based devices from the following manufacturers:
      Timewave
      Clipsal
      Festo
      Link Instruments
      Signed-off-by: default avatarCraig Shelley <craig@microtron.org.uk>
      Cc: stable <stable@vger.kernel.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      3fcc8f96
    • Forest Bond's avatar
      USB: option: Add USB ID for Novatel Ovation MC551 · 065b07e7
      Forest Bond authored
      This device is also known as the Verizon USB551L.
      Signed-off-by: default avatarForest Bond <forest.bond@rapidrollout.com>
      Acked-by: default avatarDan Williams <dcbw@redhat.com>
      Cc: stable <stable@vger.kernel.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      065b07e7
    • Alexandre Pereira da Silva's avatar
      usb: phy: Fix Kconfig dependency for Phy drivers · c6156328
      Alexandre Pereira da Silva authored
      USB phy layer driver are only built if usb host is selected, but they
      are used too by USB_GADGET drivers
      Signed-off-by: default avatarAlexandre Pereira da Silva <aletes.xgr@gmail.com>
      Acked-by: default avatarRoland Stigge <stigge@antcom.de>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      c6156328
    • Ming Lei's avatar
      Revert "mmc: omap_hsmmc: Enable Auto CMD12" · fe852273
      Ming Lei authored
      This patch reverts the commit dba3c29e.
      
      After bisecting, this commit dba3c29e is found to ruin micro-SD card data
      (writing incorrect file, or fs is corrupt after several times mount)
      on the beagle-xm revB, and reverting the commit will fix the problem.
      
      Also from TRM of OMAP3/OMAP4/DM37x, the below is mentioned about
      the Auto CMD12 Enable bit.
              - SDIO does not support this feature.
              - SD card only.
      Looks it is not suitable to always enable Auto CMD12 in host controller
      driver.
      
      Considered that the commit is not mature enough, so ask to revert it
      first.
      
      Cc: Balaji T K <balajitk@ti.com>
      Cc: Venkatraman S <svenkatr@ti.com>
      Buglink: https://lkml.org/lkml/2012/6/10/225Reported-by: default avatarPaolo Pisati <p.pisati@gmail.com>
      Reported-bisected-and-tested-by: default avatarMing Lei <ming.lei@canonical.com>
      Signed-off-by: default avatarMing Lei <ming.lei@canonical.com>
      Acked-by: default avatarVenkatraman S <svenkatr@ti.com>
      Signed-off-by: default avatarChris Ball <cjb@laptop.org>
      fe852273
    • Subhash Jadavani's avatar
      mmc: block: fix the data timeout issue with ACMD22 · d380443c
      Subhash Jadavani authored
      If multi block write operation fails for SD card, during
      error handling we send the SD_APP_SEND_NUM_WR_BLKS (ACMD22)
      to know how many blocks were already programmed by card.
      
      But mmc_sd_num_wr_blocks() function which sends the ACMD22
      calculates the data timeout value from csd.tacc_ns and
      csd.tacc_clks parameters which will be 0 for block addressed
      (>2GB cards) SD card. This would result in timeout_ns and
      timeout_clks being 0 in the mmc_request passed to host driver.
      This means host controller would program its data timeout timer
      value with 0 which could result in DATA TIMEOUT errors from
      controller.
      
      To fix this issue, mmc_sd_num_wr_blocks() should instead
      just call the mmc_set_data_timeout() to calculate the
      data timeout value. mmc_set_data_timeout() function
      ensures that non zero timeout value is set even for
      block addressed SD cards.
      Signed-off-by: default avatarSubhash Jadavani <subhashj@codeaurora.org>
      Reviewed-by: default avatarVenkatraman S <svenkatr@ti.com>
      Signed-off-by: default avatarChris Ball <cjb@laptop.org>
      d380443c
    • Linus Torvalds's avatar
      Merge branch 'drm-fixes' of git://people.freedesktop.org/~airlied/linux · d1346a6c
      Linus Torvalds authored
      Pull drm fixes from Dave Airlie:
       "Just two changes: one udl endian fix, one nouveau memory corruption on
        some GPUs."
      
      * 'drm-fixes' of git://people.freedesktop.org/~airlied/linux:
        drm/nouveau/fbcon: using nv_two_heads is not a good idea
        drm/udl: Make sure to get correct endian keys from vendor descriptor
      d1346a6c
    • Linus Torvalds's avatar
      Merge branch 'upstream-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid · 60d2c252
      Linus Torvalds authored
      Pull HID fixes from Jiri Kosina:
       "The most important one is a purification of Kconfig for CONFIG_HID;
        the inclusion of HID groups and autoloading didn't leave the Kconfig
        in a really consistent state.  Henrik's patch fixes that.  In addition
        to that, there are two small fixes for logitech and magicmouse
        drivers."
      
      * 'upstream-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid:
        HID: Fix the generic Kconfig options
        HID: magicmouse: Correct report range of major / minor axes
        HID: logitech: don't use stack based dj_report structures
      60d2c252
    • Takashi Iwai's avatar
      ALSA: hda - Fix power-map regression for HP dv6 & co · 6e1c39c6
      Takashi Iwai authored
      The recent fix for power-map controls (commit b0791dda) caused
      regressions on some other HP laptops.  They have fixed pins but these
      pins are exposed as jack-detectable.  Thus the driver tries to control
      the power-map dynamically per jack detection where it never gets on.
      
      This patch adds the check of connection and it assumes the no jack
      detection is available for fixed pins no matter what pin capability
      says.
      
      BugLink: http://bugs.launchpad.net/bugs/1013183Reported-by: default avatarLuis Henriques <luis.henriques@canonical.com>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      6e1c39c6
    • Takashi Iwai's avatar
      ALSA: hda - Initialize caches at codec reconfiguration · 09a6071b
      Takashi Iwai authored
      Better to clean up the caches for avoiding inconsistent codec state
      after the reconfiguration.
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      09a6071b
    • Takashi Iwai's avatar
      ALSA: hda - Fix memory leaks at module unload · 59cad16b
      Takashi Iwai authored
      Some caches aren't released properly at module unloading time.
      
      Cc: <stable@vger.kernel.org> [v3.4+]
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      59cad16b
    • Takashi Iwai's avatar
      ALSA: hda - Fix memory leaks in Realtek & Conexant codec parsers · ee48df57
      Takashi Iwai authored
      When moved to the helper code, forgot to release the verb arrays.
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      ee48df57
    • Ben Skeggs's avatar
      drm/nouveau/fbcon: using nv_two_heads is not a good idea · 9bd0c15f
      Ben Skeggs authored
      nv_two_heads() was never meant to be used outside of pre-nv50 code.  The
      code checks for >= NV_10 for 2 CRTCs, then downgrades a few specific
      chipsets to 1 CRTC based on (pci_device & 0x0ff0).
      
      The breakage example seen is on GTX 560Ti, with a pciid of 0x1200, which
      gets detected as an NV20 (0x020x) with 1 CRTC by nv_two_heads(), causing
      memory corruption because there's actually 2 CRTCs..
      
      This switches fbcon to use the CRTC count directly from the mode_config
      structure, which will also fix the same issue on Kepler boards which have
      4 CRTCs.
      Signed-off-by: default avatarBen Skeggs <bskeggs@redhat.com>
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      9bd0c15f
  4. 25 Jun, 2012 5 commits