1. 25 Jan, 2012 4 commits
    • Ben Skeggs's avatar
      drm/ttm: fix two regressions since move_notify changes · 9f1feed2
      Ben Skeggs authored
      Both changes in dc97b340 cause serious
      regressions in the nouveau driver.
      
      move_notify() was originally able to presume that bo->mem is the old node,
      and new_mem is the new node.  The above commit moves the call to
      move_notify() to after move() has been done, which means that now, sometimes,
      new_mem isn't the new node at all, bo->mem is, and new_mem points at a
      stale, possibly-just-been-killed-by-move node.
      
      This is clearly not a good situation.  This patch reverts this change, and
      replaces it with a cleanup in the move() failure path instead.
      
      The second issue is that the call to move_notify() from cleanup_memtype_use()
      causes the TTM ghost objects to get passed into the driver.  This is clearly
      bad as the driver knows nothing about these "fake" TTM BOs, and ends up
      accessing uninitialised memory.
      
      I worked around this in nouveau's move_notify() hook by ensuring the BO
      destructor was nouveau's.  I don't particularly like this solution, and
      would rather TTM never pass the driver these objects.  However, I don't
      clearly understand the reason why we're calling move_notify() here anyway
      and am happy to work around the problem in nouveau instead of breaking the
      behaviour expected by other drivers.
      Signed-off-by: default avatarBen Skeggs <bskeggs@redhat.com>
      Reviewed-by: default avatarThomas Hellstrom <thellstrom@vmware.com>
      Cc: Jerome Glisse <j.glisse@gmail.com>
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      9f1feed2
    • Jerome Glisse's avatar
      drm/radeon: avoid deadlock if GPU lockup is detected in ib_pool_get · 9fc04b50
      Jerome Glisse authored
      If GPU lockup is detected in ib_pool get we are holding the ib_pool
      mutex that will be needed by the GPU reset code. As ib_pool code is
      safe to be reentrant from GPU reset code we should not block if we
      are trying to get the ib pool lock on the behalf of the same userspace
      caller, thus use the radeon_mutex_lock helper.
      Signed-off-by: default avatarJerome Glisse <jglisse@redhat.com>
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      9fc04b50
    • Jerome Glisse's avatar
      drm/radeon: silence out possible lock dependency warning · d54fbd49
      Jerome Glisse authored
      Silence out the lock dependency warning by moving bo allocation out
      of ib mutex protected section. Might lead to useless temporary
      allocation but it's not harmful as such things only happen at
      initialization.
      Signed-off-by: default avatarJerome Glisse <jglisse@redhat.com>
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      d54fbd49
    • Thomas Hellstrom's avatar
      drm: Fix authentication kernel crash · 598781d7
      Thomas Hellstrom authored
      If the master tries to authenticate a client using drm_authmagic and
      that client has already closed its drm file descriptor,
      either wilfully or because it was terminated, the
      call to drm_authmagic will dereference a stale pointer into kmalloc'ed memory
      and corrupt it.
      
      Typically this results in a hard system hang.
      
      This patch fixes that problem by removing any authentication tokens
      (struct drm_magic_entry) open for a file descriptor when that file
      descriptor is closed.
      Signed-off-by: default avatarThomas Hellstrom <thellstrom@vmware.com>
      Reviewed-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      598781d7
  2. 24 Jan, 2012 8 commits
    • Alan Cox's avatar
      gma500: Fix shmem mapping · 15b63d35
      Alan Cox authored
      GMA500 did it the old way and it's been on the TODO list to fix. Current kernels
      now blow up if we use the old way so we'd better do the work !
      Signed-off-by: default avatarAlan Cox <alan@linux.intel.com>
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      15b63d35
    • Alex Deucher's avatar
      drm/radeon/kms: refine TMDS dual link checks · 9aa59993
      Alex Deucher authored
      HDMI 1.3 defines single link clocks up to 340 Mhz.
      Refine the current dual link checks to only enable
      dual link for DVI > 165 Mhz or HDMI > 340 Mhz if the
      hw supports HDMI 1.3 (DCE3+).
      
      Fixes:
      https://bugs.freedesktop.org/show_bug.cgi?id=44755Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      9aa59993
    • Alex Deucher's avatar
      drm/radeon/kms: use drm_detect_hdmi_monitor for picking encoder mode · 27d9cc84
      Alex Deucher authored
      We were previously just checking for audio.
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      27d9cc84
    • Alex Deucher's avatar
      drm/radeon/kms: rework modeset sequence for DCE41 and DCE5 · 3a47824d
      Alex Deucher authored
      dig transmitter control table only has ENABLE/DISABLE actions
      on DCE4.1/DCE5.
      
      Fixes:
      https://bugs.freedesktop.org/show_bug.cgi?id=44955Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      3a47824d
    • Alex Deucher's avatar
      drm/radeon/kms: move panel mode setup into encoder mode set · 386d4d75
      Alex Deucher authored
      Needs to happen earlier in the mode set.
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      386d4d75
    • Alex Deucher's avatar
      drm/radeon/kms: move disp eng pll setup to init path · 3fa47d9e
      Alex Deucher authored
      We really only need to set it up once on init or resume
      rather than on every mode set.
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      3fa47d9e
    • Igor Murzov's avatar
      drm/radeon: finish getting bios earlier · 211fa4fc
      Igor Murzov authored
      Return a number of bytes read in radeon_atrm_get_bios_chunk() and
      properly check this value in radeon_atrm_get_bios().
      If radeon_atrm_get_bios_chunk() read less bytes then were requested,
      it means that it finished reading bios data.
      
      Prior to this patch, condition in radeon_atrm_get_bios() was always
      equivalent to "if (ATRM_BIOS_PAGE <= 0)", so it was always false,
      thus radeon_atrm_get_bios() was trying to read past the bios data
      wasting boot time.
      
      On my lenovo ideapad u455 laptop this patch drops bios reading time
      from ~5.5s to ~1.5s.
      Signed-off-by: default avatarIgor Murzov <e-mail@date.by>
      Reviewed-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      211fa4fc
    • Igor Murzov's avatar
      drm/radeon: fix invalid memory access in radeon_atrm_get_bios() · a3f83ab1
      Igor Murzov authored
      At a boot time I observed following bug:
      
       BUG: unable to handle kernel paging request at ffff8800a4244000
       IP: [<ffffffff81275b5b>] memcpy+0xb/0x120
       PGD 1816063 PUD 1fe7d067 PMD 1ff9f067 PTE 80000000a4244160
       Oops: 0000 [#1] SMP DEBUG_PAGEALLOC
       CPU 0
       Modules linked in: btusb bluetooth brcmsmac brcmutil crc8 cordic b43 radeon(+)
        mac80211 cfg80211 ttm ohci_hcd drm_kms_helper rfkill drm ssb agpgart mmc_core
        sp5100_tco video battery ac thermal processor rtc_cmos thermal_sys snd_hda_codec_hdmi
        joydev snd_hda_codec_conexant button bcma pcmcia snd_hda_intel snd_hda_codec
        snd_hwdep snd_pcm shpchp pcmcia_core k8temp snd_timer atl1c snd psmouse hwmon
        i2c_piix4 i2c_algo_bit soundcore evdev i2c_core ehci_hcd sg serio_raw snd_page_alloc
        loop btrfs
      
       Pid: 1008, comm: modprobe Not tainted 3.3.0-rc1 #21 LENOVO 20046                           /AMD CRB
       RIP: 0010:[<ffffffff81275b5b>]  [<ffffffff81275b5b>] memcpy+0xb/0x120
       RSP: 0018:ffff8800aa72db00  EFLAGS: 00010246
       RAX: ffff8800a4150000 RBX: 0000000000001000 RCX: 0000000000000087
       RDX: 0000000000000000 RSI: ffff8800a4244000 RDI: ffff8800a4150bc8
       RBP: ffff8800aa72db78 R08: 0000000000000010 R09: ffffffff8174bbec
       R10: ffffffff812ee010 R11: 0000000000000001 R12: 0000000000001000
       R13: 0000000000010000 R14: ffff8800a4140000 R15: ffff8800aaba1800
       FS:  00007ff9a3bd4720(0000) GS:ffff8800afa00000(0000) knlGS:0000000000000000
       CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b
       CR2: ffff8800a4244000 CR3: 00000000a9c18000 CR4: 00000000000006f0
       DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
       DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
       Process modprobe (pid: 1008, threadinfo ffff8800aa72c000, task ffff8800aa0e4000)
       Stack:
        ffffffffa04e7c7b 0000000000000001 0000000000010000 ffff8800aa72db28
        ffffffff00000001 0000000000001000 ffffffff8113cbef 0000000000000020
        ffff8800a4243420 ffff880000000002 ffff8800aa72db08 ffff8800a9d42000
       Call Trace:
        [<ffffffffa04e7c7b>] ? radeon_atrm_get_bios_chunk+0x8b/0xd0 [radeon]
        [<ffffffff8113cbef>] ? kmalloc_order_trace+0x3f/0xb0
        [<ffffffffa04a9298>] radeon_get_bios+0x68/0x2f0 [radeon]
        [<ffffffffa04c7a30>] rv770_init+0x40/0x280 [radeon]
        [<ffffffffa047d740>] radeon_device_init+0x560/0x600 [radeon]
        [<ffffffffa047ef4f>] radeon_driver_load_kms+0xaf/0x170 [radeon]
        [<ffffffffa043cdde>] drm_get_pci_dev+0x18e/0x2c0 [drm]
        [<ffffffffa04e7e95>] radeon_pci_probe+0xad/0xb5 [radeon]
        [<ffffffff81296c5f>] local_pci_probe+0x5f/0xd0
        [<ffffffff81297418>] pci_device_probe+0x88/0xb0
        [<ffffffff813417aa>] ? driver_sysfs_add+0x7a/0xb0
        [<ffffffff813418d8>] really_probe+0x68/0x180
        [<ffffffff81341be5>] driver_probe_device+0x45/0x70
        [<ffffffff81341cb3>] __driver_attach+0xa3/0xb0
        [<ffffffff81341c10>] ? driver_probe_device+0x70/0x70
        [<ffffffff813400ce>] bus_for_each_dev+0x5e/0x90
        [<ffffffff8134172e>] driver_attach+0x1e/0x20
        [<ffffffff81341298>] bus_add_driver+0xc8/0x280
        [<ffffffff813422c6>] driver_register+0x76/0x140
        [<ffffffff812976d6>] __pci_register_driver+0x66/0xe0
        [<ffffffffa043d021>] drm_pci_init+0x111/0x120 [drm]
        [<ffffffff8133c67a>] ? vga_switcheroo_register_handler+0x3a/0x60
        [<ffffffffa0229000>] ? 0xffffffffa0228fff
        [<ffffffffa02290ec>] radeon_init+0xec/0xee [radeon]
        [<ffffffff810002f2>] do_one_initcall+0x42/0x180
        [<ffffffff8109d8d2>] sys_init_module+0x92/0x1e0
        [<ffffffff815407a9>] system_call_fastpath+0x16/0x1b
       Code: 58 2a 43 50 88 43 4e 48 83 c4 08 5b c9 c3 66 90 e8 cb fd ff ff eb
        e6 90 90 90 90 90 90 90 90 90 48 89 f8 89 d1 c1 e9 03 83 e2 07 <f3> 48
        a5 89 d1 f3 a4 c3 20 48 83 ea 20 4c 8b 06 4c 8b 4e 08 4c
       RIP  [<ffffffff81275b5b>] memcpy+0xb/0x120
        RSP <ffff8800aa72db00>
       CR2: ffff8800a4244000
       ---[ end trace fcffa1599cf56382 ]---
      
      Call to acpi_evaluate_object() not always returns 4096 bytes chunks,
      on my system it can return 2048 bytes chunk, so pass the length of
      retrieved chunk to memcpy(), not the length of the recieving buffer.
      Signed-off-by: default avatarIgor Murzov <e-mail@date.by>
      Reviewed-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      a3f83ab1
  3. 23 Jan, 2012 3 commits
  4. 19 Jan, 2012 16 commits
  5. 18 Jan, 2012 9 commits
    • Linus Torvalds's avatar
      Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending · 4ba3069f
      Linus Torvalds authored
      * 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending: (26 commits)
        target: Set additional sense length field in sense data
        target: Remove legacy device status check from transport_execute_tasks
        target: Remove __transport_execute_tasks() for each processing context
        target: Remove extra se_device->execute_task_lock access in fast path
        target: Drop se_device TCQ queue_depth usage from I/O path
        target: Fix possible NULL pointer with __transport_execute_tasks
        target: Remove TFO->check_release_cmd() fabric API caller
        tcm_fc: Convert ft_send_work to use target_submit_cmd
        target: Add target_submit_cmd() for process context fabric submission
        target: Make target_put_sess_cmd use target_release_cmd_kref
        target: Set response format in INQUIRY response
        target: tcm_mod_builder: small fixups
        Documentation/target: Fix tcm_mod_builder.py build breakage
        target: remove overagressive ____cacheline_aligned annoations
        tcm_loop: bump max_sectors
        target/configs: remove trailing newline from udev_path and alias
        iscsi-target: fix chap identifier simple_strtoul usage
        target: remove useless casts
        target: simplify target_check_cdb_and_preempt
        target: Move core_scsi3_check_cdb_abort_and_preempt
        ...
      4ba3069f
    • Linus Torvalds's avatar
      Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux · 507a03c1
      Linus Torvalds authored
      This includes initial support for the recently published ACPI 5.0 spec.
      In particular, support for the "hardware-reduced" bit that eliminates
      the dependency on legacy hardware.
      
      APEI has patches resulting from testing on real hardware.
      
      Plus other random fixes.
      
      * 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux: (52 commits)
        acpi/apei/einj: Add extensions to EINJ from rev 5.0 of acpi spec
        intel_idle: Split up and provide per CPU initialization func
        ACPI processor: Remove unneeded variable passed by acpi_processor_hotadd_init V2
        ACPI processor: Remove unneeded cpuidle_unregister_driver call
        intel idle: Make idle driver more robust
        intel_idle: Fix a cast to pointer from integer of different size warning in intel_idle
        ACPI: kernel-parameters.txt : Add intel_idle.max_cstate
        intel_idle: remove redundant local_irq_disable() call
        ACPI processor: Fix error path, also remove sysdev link
        ACPI: processor: fix acpi_get_cpuid for UP processor
        intel_idle: fix API misuse
        ACPI APEI: Convert atomicio routines
        ACPI: Export interfaces for ioremapping/iounmapping ACPI registers
        ACPI: Fix possible alignment issues with GAS 'address' references
        ACPI, ia64: Use SRAT table rev to use 8bit or 16/32bit PXM fields (ia64)
        ACPI, x86: Use SRAT table rev to use 8bit or 32bit PXM fields (x86/x86-64)
        ACPI: Store SRAT table revision
        ACPI, APEI, Resolve false conflict between ACPI NVS and APEI
        ACPI, Record ACPI NVS regions
        ACPI, APEI, EINJ, Refine the fix of resource conflict
        ...
      507a03c1
    • Stefan Berger's avatar
      tpm: fix (ACPI S3) suspend regression · be405411
      Stefan Berger authored
      This patch fixes an (ACPI S3) suspend regression introduced in commit
      68d6e671 ("tpm: Introduce function to poll for result of self test")
      and occurring with an Infineon TPM and tpm_tis and tpm_infineon drivers
      active.
      
      The suspend problem occurred if the TPM was disabled and/or deactivated
      and therefore the TPM_PCRRead checking the result of the (asynchronous)
      self test returned an error code which then caused the tpm_tis driver to
      become inactive and this then seemed to have negatively influenced the
      suspend support by the tpm_infineon driver...  Besides that the tpm_tis
      drive may stay active even if the TPM is disabled and/or deactivated.
      Signed-off-by: default avatarStefan Berger <stefanb@linux.vnet.ibm.com>
      Tested-by: default avatarRafael J. Wysocki <rjw@sisk.pl>
      Acked-by: default avatarRajiv Andrade <srajiv@linux.vnet.ibm.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      be405411
    • Linus Torvalds's avatar
      nvme: fix merge error due to change of 'make_request_fn' fn type · 93c3d65b
      Linus Torvalds authored
      The type of 'make_request_fn' changed in 5a7bbad2 ("block: remove
      support for bio remapping from ->make_request"), but the merge of the
      nvme driver didn't take that into account, and as a result the driver
      would compile with a warning:
      
        drivers/block/nvme.c: In function 'nvme_alloc_ns':
        drivers/block/nvme.c:1336:2: warning: passing argument 2 of 'blk_queue_make_request' from incompatible pointer type [enabled by default]
        include/linux/blkdev.h:830:13: note: expected 'void (*)(struct request_queue *, struct bio *)' but argument is of type 'int (*)(struct request_queue *, struct bio *)'
      
      It's benign, but the warning is annoying.
      Reported-by: default avatarStephen Rothwell <sfr@canb.auug.org>
      Cc: Matthew Wilcox <matthew.r.wilcox@intel.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      93c3d65b
    • Stephen Rothwell's avatar
      xen: using EXPORT_SYMBOL requires including export.h · 9ef9b20b
      Stephen Rothwell authored
      Fix these warnings:
      
        drivers/xen/biomerge.c:14:1: warning: data definition has no type or storage class [enabled by default]
        drivers/xen/biomerge.c:14:1: warning: type defaults to 'int' in declaration of 'EXPORT_SYMBOL' [-Wimplicit-int]
        drivers/xen/biomerge.c:14:1: warning: parameter names (without types) in function declaration [enabled by default]
      
      And this build error:
      
        ERROR: "xen_biovec_phys_mergeable" [drivers/block/nvme.ko] undefined!
      Signed-off-by: default avatarStephen Rothwell <sfr@canb.auug.org.au>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      9ef9b20b
    • Linus Torvalds's avatar
      Merge branch 'for-linus/i2c-33' of git://git.fluff.org/bjdooks/linux · aa303f2c
      Linus Torvalds authored
      * 'for-linus/i2c-33' of git://git.fluff.org/bjdooks/linux:
        i2c-eg20t: Change-company-name-OKI-SEMICONDUCTOR to LAPIS Semiconductor
        i2c-eg20t: Support new device LAPIS Semiconductor ML7831 IOH
        i2c-eg20t: modified the setting of transfer rate.
        i2c-eg20t: use i2c_add_numbered_adapter to get a fixed bus number
        i2c: OMAP: Add DT support for i2c controller
        I2C: OMAP: NACK without STP
        I2C: OMAP: correct SYSC register offset for OMAP4
      aa303f2c
    • Linus Torvalds's avatar
      Merge branch 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media · 4a7c1ff2
      Linus Torvalds authored
      * 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media: (57 commits)
        [media] as3645a: Fix compilation by including slab.h
        [media] s5p-fimc: Remove linux/version.h include from fimc-mdevice.c
        [media] s5p-mfc: Remove linux/version.h include from s5p_mfc.c
        [media] ds3000: using logical && instead of bitwise &
        [media] v4l2-ctrls: make control names consistent
        [media] DVB: dib0700, add support for Nova-TD LEDs
        [media] DVB: dib0700, add corrected Nova-TD frontend_attach
        [media] DVB: dib0700, separate stk7070pd initialization
        [media] DVB: dib0700, move Nova-TD Stick to a separate set
        [media] : add MODULE_FIRMWARE to dib0700
        [media] DVB-CORE: remove superfluous DTV_CMDs
        [media] s5p-jpeg: adapt to recent videobuf2 changes
        [media] s5p-g2d: fixed a bug in controls setting function
        [media] s5p-mfc: Fix volatile controls setup
        [media] drivers/media/video/s5p-mfc/s5p_mfc.c: adjust double test
        [media] drivers/media/video/s5p-fimc/fimc-capture.c: adjust double test
        [media] s5p-fimc: Fix incorrect control ID assignment
        [media] dvb_frontend: Don't call get_frontend() if idle
        [media] DocBook/dvbproperty.xml: Remove DTV_MODULATION from ISDB-T
        [media] DocBook/dvbproperty.xml: Fix ISDB-T delivery system parameters
        ...
      4a7c1ff2
    • Linus Torvalds's avatar
      Merge branch 'fix/asoc' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound · 9278e634
      Linus Torvalds authored
      * 'fix/asoc' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
        ASoC: Wait for WM8993 FLL to stabilise
        ASoC: core - Free platform DAPM context at platform removal.
        ASoC: dapm - Fix check for codec context in dapm_power_widgets().
        ASoC: sgtl5000: update author email address
        ASoC: Fix DMA channel leak in imx-pcm-dma-mx2 driver.
      9278e634
    • Laxman Dewangan's avatar
      gpio: tps65910: Use correct offset for gpio initialization · 94bd2442
      Laxman Dewangan authored
      Using the correct gpio offset for setting the initial value
      of gpio when setting output direction.
      Signed-off-by: default avatarLaxman Dewangan <ldewangan@nvidia.com>
      Signed-off-by: default avatarGrant Likely <grant.likely@secretlab.ca>
      94bd2442