1. 05 2月, 2010 1 次提交
  2. 30 1月, 2010 4 次提交
  3. 26 1月, 2010 5 次提交
    • J
      drm/i915: handle non-flip pending case when unpinning the scanout buffer · de3f440f
      Jesse Barnes 提交于
      The first page flip queued will replace the current front buffer, which
      should have a 0 pending flip count.  So at finish time we need to handle
      that case (i.e. if the flip count is 0 *or* dec_and_test is 0 we need to
      wake the waiters).
      
      Also fix up an error path in the queue function and add some debug
      output (only enabled with driver debugging).
      Signed-off-by: NJesse Barnes <jbarnes@virtuousgeek.org>
      Signed-off-by: NEric Anholt <eric@anholt.net>
      de3f440f
    • L
      drm/i915: Fix the device info of Pineview · 8a6c77d6
      Li Peng 提交于
      Pineview doesn't has CXSR and need GTT-based hardware status page.
      It fixes a X boot hung issue on Pinview since commit cfdf1f
      Signed-off-by: NLi Peng <peng.li@intel.com>
      Acked-by: NZhao Yakui <yakui.zhao@intel.com>
      Signed-off-by: NEric Anholt <eric@anholt.net>
      8a6c77d6
    • L
      drm/i915: enable vblank interrupt on ironlake · c062df61
      Li Peng 提交于
      so far vblank interrupt on ironlake is disabled, this would cause
      bad gfx performance if userspace calls drm_wait_vblank. This patch
      enables vblank interrupt on ironlake and follows vblank get/put
      model.
      Signed-off-by: NLi Peng <peng.li@intel.com>
      Acked-by: NZhenyu Wang <zhenyuw@linux.intel.com>
      Signed-off-by: NEric Anholt <eric@anholt.net>
      c062df61
    • C
      drm/i915: Prevent use of uninitialized pointers along error path. · 0ce907f8
      Chris Wilson 提交于
      X.org hang with [drm:i915_gem_do_execbuffer] *ERROR* in dmesg
        http://bugzilla.kernel.org/show_bug.cgi?id=15114
      
      Matej found he was hitting an error path within i915_gem_do_execbuffer()
      that led to the attempt to dereference an uninitialised pointer during
      cleanup. This path used to be safe as we used to calloc the object
      lists, but this was changed in c8e0f93a. Daniel Vetter had also spotted
      this error and proposed a similar patch.
      
      [ 6379.732892] [drm:i915_gem_do_execbuffer] *ERROR* Object ffff880098cd6540 appears more than once in object list
      [ 6379.740976] [drm:i915_gem_do_execbuffer] *ERROR* Object ffff880098cd6540 appears more than once in object list
      [ 6379.740995] BUG: unable to handle kernel NULL pointer dereference at 00000000000000a0
      [ 6379.740998] IP: [<ffffffff8122ddb5>] i915_gem_do_execbuffer+0xba5/0x1260
      [ 6379.741006] PGD babab067 PUD bb435067 PMD 0
      [ 6379.741010] Oops: 0002 [#1] PREEMPT SMP
      [ 6379.741014] last sysfs file: /sys/devices/pci0000:00/0000:00:1c.2/0000:06:00.0/ieee80211/phy0/rfkill0/state
      [ 6379.741017] CPU 1
      [ 6379.741021] Pid: 2186, comm: X Not tainted 2.6.33-rc4-00399-g24bc7347 #142 M11D/ESPRIMO Mobile M9400
      [ 6379.741023] RIP: 0010:[<ffffffff8122ddb5>] [<ffffffff8122ddb5>] i915_gem_do_execbuffer+0xba5/0x1260
      [ 6379.741027] RSP: 0018:ffff8800b9047b78  EFLAGS: 00213206
      [ 6379.741029] RAX: 0000000000000000 RBX: 000000000000004f RCX: ffff880098cac800
      [ 6379.741032] RDX: ffff880098caca78 RSI: ffff8800b9047c98 RDI: ffff880098cd6540
      [ 6379.741034] RBP: ffff8800b9047c78 R08: ffffffff814b96b5 R09: 0000000000000006
      [ 6379.741036] R10: 0000000000000000 R11: 0000000000000003 R12: 000000000000004e
      [ 6379.741038] R13: 00000000fffffff7 R14: 0000000000000000 R15: 0000000000000001
      [ 6379.741041] FS:  0000000000000000(0000) GS:ffff880001900000(0063) knlGS:00000000f72636c0
      [ 6379.741043] CS:  0010 DS: 002b ES: 002b CR0: 0000000080050033
      [ 6379.741041] FS:  0000000000000000(0000) GS:ffff880001900000(0063) knlGS:00000000f72636c0
      [ 6379.741043] CS:  0010 DS: 002b ES: 002b CR0: 0000000080050033
      [ 6379.741045] CR2: 00000000000000a0 CR3: 00000000b9000000 CR4: 00000000000006e0
      [ 6379.741048] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
      [ 6379.741050] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
      [ 6379.741052] Process X (pid: 2186, threadinfo ffff8800b9046000, task ffff8800bb5d8000)
      [ 6379.741054] Stack:
      [ 6379.741055]  ffffc90023f57000 ffffc90023f56fff ffffc90023f56fff ffffc90023f55000
      [ 6379.741059] <0> ffff8800b9047c98 ffff8800bb43c840 ffff8800bf1de800 ffff8800bf1de820
      [ 6379.741063] <0> ffff8800b9047bd8 ffff880098cac800 0000000000000000 0000000000000002
      [ 6379.741068] Call Trace:
      [ 6379.741072]  [<ffffffff8122e6cb>] ?  i915_gem_execbuffer+0x6b/0x370
      [ 6379.741077]  [<ffffffff810a5f52>] ? __vmalloc_node+0xa2/0xb0
      [ 6379.741080]  [<ffffffff8122e6cb>] ?  i915_gem_execbuffer+0x6b/0x370
      [ 6379.741083]  [<ffffffff8122e816>] i915_gem_execbuffer+0x1b6/0x370
      [ 6379.741086]  [<ffffffff8120cd55>] drm_ioctl+0x1d5/0x460
      [ 6379.741089]  [<ffffffff8122e660>] ?  i915_gem_execbuffer+0x0/0x370
      [ 6379.741093]  [<ffffffff81248c35>] i915_compat_ioctl+0x45/0x50
      [ 6379.741097]  [<ffffffff810f1659>] compat_sys_ioctl+0xa9/0x1570
      [ 6379.741102]  [<ffffffff810b1d5c>] ? vfs_read+0x13c/0x1a0
      [ 6379.741106]  [<ffffffff81028424>] sysenter_dispatch+0x7/0x2b
      [ 6379.741108] Code: 08 85 c0 74 52 31 db 0f 1f 80 00 00 00 00 48 63 c3 48 8b
      8d 68 ff ff ff 48 8d 14 c1 48 8b 02 48 85 c0 74 25 48 8b 80 80 00 00 00 <c7> 80
      a0 00 00 00 00 00 00 00 48 8b 3a 48 85 ff 74 0c 48 c7 c6
      [ 6379.741142] RIP  [<ffffffff8122ddb5>] i915_gem_do_execbuffer+0xba5/0x1260
      [ 6379.741145]  RSP <ffff8800b9047b78>
      [ 6379.741147] CR2: 00000000000000a0
      [ 6379.741159] ---[ end trace 0598809afa4c31db ]---
      Reported-by: NMatej Laitl <strohel@gmail.com>
      Signed-off-by: NChris Wilson <chris@chris-wilson.co.uk>
      Signed-off-by: NEric Anholt <eric@anholt.net>
      0ce907f8
    • Z
      drm/i915: disable hotplug detect before Ironlake CRT detect · eceb784c
      Zhenyu Wang 提交于
      This tries to fix CRT detect loop hang seen on some Ironlake form
      factor, to clear up hotplug detect state before taking CRT detect
      to make sure next hotplug detect cycle is consistent.
      
      Cc: Stable Team <stable@kernel.org>
      Signed-off-by: NZhenyu Wang <zhenyuw@linux.intel.com>
      Signed-off-by: NEric Anholt <eric@anholt.net>
      eceb784c
  4. 22 1月, 2010 3 次提交
  5. 21 1月, 2010 27 次提交
    • L
      Merge branch 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev · 836f48c5
      Linus Torvalds 提交于
      * 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev:
        libata: retry FS IOs even if it has failed with AC_ERR_INVALID
      836f48c5
    • L
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty-2.6 · bdeef61c
      Linus Torvalds 提交于
      * git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty-2.6:
        tty: fix race in tty_fasync
        serial: serial_cs: oxsemi quirk breaks resume
        serial: imx: bit &/| confusion
        serial: Fix crash if the minimum rate of the device is > 9600 baud
        serial-core: resume serial hardware with no_console_suspend
        serial: 8250_pnp: use wildcard for serial Wacom tablets
        nozomi: quick fix for the close/close bug
        compat_ioctl: Supress "unknown cmd" message on serial /dev/console
      bdeef61c
    • L
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging-2.6 · 4caca5f9
      Linus Torvalds 提交于
      * git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging-2.6:
        Staging: hv: fix smp problems in the hyperv core code
        Staging: et131x: Fix 2.6.33rc1 regression in et131x
        Staging: asus_oled: fix oops in 2.6.32.2
      4caca5f9
    • L
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6 · f8c7e6c2
      Linus Torvalds 提交于
      * git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6:
        Revert "sysdev: fix prototype for memory_sysdev_class show/store functions"
        driver-core: fix devtmpfs crash on s390
      f8c7e6c2
    • L
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6 · c9140487
      Linus Torvalds 提交于
      * git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6:
        USB: isp1362: fix build failure on ARM systems via irq_flags cleanup
        USB: isp1362: better 64bit printf warning fixes
        USB: fix usbstorage for 2770:915d delivers no FAT
        USB: Fix level of isp1760 Reloading ptd error message
        USB: FHCI: avoid NULL pointer dereference
        USB: Fix duplicate sysfs problem after device reset.
        USB: add speed values for USB 3.0 and wireless controllers
        USB: add missing delay during remote wakeup
        USB: EHCI & UHCI: fix race between root-hub suspend and port resume
        USB: EHCI: fix handling of unusual interrupt intervals
        USB: Don't use GFP_KERNEL while we cannot reset a storage device
        USB: fix bitmask merge error
        usb: serial: fix memory leak in generic driver
        USB: serial: fix USB serial fix kfifo_len locking
      c9140487
    • L
      Merge branch 'for-linus' of git://git.kernel.dk/linux-2.6-block · 456eac94
      Linus Torvalds 提交于
      * 'for-linus' of git://git.kernel.dk/linux-2.6-block:
        fs/bio.c: fix shadows sparse warning
        drbd: The kernel code is now equivalent to out of tree release 8.3.7
        drbd: Allow online resizing of DRBD devices while peer not reachable (needs to be explicitly forced)
        drbd: Don't go into StandAlone mode when authentification failes because of network error
        drivers/block/drbd/drbd_receiver.c: correct NULL test
        cfq-iosched: Respect ioprio_class when preempting
        genhd: overlapping variable definition
        block: removed unused as_io_context
        DM: Fix device mapper topology stacking
        block: bdev_stack_limits wrapper
        block: Fix discard alignment calculation and printing
        block: Correct handling of bottom device misaligment
        drbd: check on CONFIG_LBDAF, not LBD
        drivers/block/drbd: Correct NULL test
        drbd: Silenced an assert that could triggered after changing write ordering method
        drbd: Kconfig fix
        drbd: Fix for a race between IO and a detach operation [Bugz 262]
        drbd: Use drbd_crypto_is_hash() instead of an open coded check
      456eac94
    • L
      Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6 · dedd0c2a
      Linus Torvalds 提交于
      * 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6: (23 commits)
        ACPI: delete acpi_processor_power_verify_c2()
        ACPI: allow C3 > 1000usec
        ACPI: enable C2 and Turbo-mode on Nehalem notebooks on A/C
        ACPI: power_meter: remove double kfree()
        ACPI: processor: restrict early _PDC to opt-in platforms
        ACPI: Fix unused variable warning in sbs.c
        acpi: make ACPI device id constant
        sony-laptop - fix using of uninitialized variable
        ACPI: Fix section mismatch error for acpi_early_processor_set_pdc()
        eeepc-laptop: disable wireless hotplug for 1201N
        eeepc-laptop: add hotplug_disable parameter
        eeepc-laptop: switch to using sparse keymap library
        eeepc-laptop: dmi blacklist to disable pci hotplug code
        eeepc-laptop: disable cpu speed control on EeePC 701
        ACPI: don't cond_resched if irq is disabled
        ACPI: Remove unnecessary cast.
        ACPI: Advertise to BIOS in _OSC: _OST on _PPC changes
        ACPI: EC: Add wait for irq storm
        ACPI: SBS: Move SBS HC callback to faster Notify queue
        x86, ACPI: delete acpi_boot_table_init() return value
        ...
      dedd0c2a
    • L
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ecryptfs/ecryptfs-2.6 · 15e551e5
      Linus Torvalds 提交于
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ecryptfs/ecryptfs-2.6:
        ecryptfs: use after free
        ecryptfs: Eliminate useless code
        ecryptfs: fix interpose/interpolate typos in comments
        ecryptfs: pass matching flags to interpose as defined and used there
        ecryptfs: remove unnecessary d_drop calls in ecryptfs_link
        ecryptfs: don't ignore return value from lock_rename
        ecryptfs: initialize private persistent file before dereferencing pointer
        eCryptfs: Remove mmap from directory operations
        eCryptfs: Add getattr function
        eCryptfs: Use notify_change for truncating lower inodes
      15e551e5
    • L
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable · 30a0f5e1
      Linus Torvalds 提交于
      * git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable:
        Btrfs: fix possible panic on unmount
        Btrfs: deal with NULL acl sent to btrfs_set_acl
        Btrfs: fix regression in orphan cleanup
        Btrfs: Fix race in btrfs_mark_extent_written
        Btrfs, fix memory leaks in error paths
        Btrfs: align offsets for btrfs_ordered_update_i_size
        btrfs: fix missing last-entry in readdir(3)
      30a0f5e1
    • Y
      vmalloc: remove BUG_ON due to racy counting of VM_LAZY_FREE · 88f50044
      Yongseok Koh 提交于
      In free_unmap_area_noflush(), va->flags is marked as VM_LAZY_FREE first, and
      then vmap_lazy_nr is increased atomically.
      
      But, in __purge_vmap_area_lazy(), while traversing of vmap_are_list, nr
      is counted by checking VM_LAZY_FREE is set to va->flags.  After counting
      the variable nr, kernel reads vmap_lazy_nr atomically and checks a
      BUG_ON condition whether nr is greater than vmap_lazy_nr to prevent
      vmap_lazy_nr from being negative.
      
      The problem is that, if interrupted right after marking VM_LAZY_FREE,
      increment of vmap_lazy_nr can be delayed.  Consequently, BUG_ON
      condition can be met because nr is counted more than vmap_lazy_nr.
      
      It is highly probable when vmalloc/vfree are called frequently.  This
      scenario have been verified by adding delay between marking VM_LAZY_FREE
      and increasing vmap_lazy_nr in free_unmap_area_noflush().
      
      Even the vmap_lazy_nr is for checking high watermark, it never be the
      strict watermark.  Although the BUG_ON condition is to prevent
      vmap_lazy_nr from being negative, vmap_lazy_nr is signed variable.  So,
      it could go down to negative value temporarily.
      
      Consequently, removing the BUG_ON condition is proper.
      
      A possible BUG_ON message is like the below.
      
         kernel BUG at mm/vmalloc.c:517!
         invalid opcode: 0000 [#1] SMP
         EIP: 0060:[<c04824a4>] EFLAGS: 00010297 CPU: 3
         EIP is at __purge_vmap_area_lazy+0x144/0x150
         EAX: ee8a8818 EBX: c08e77d4 ECX: e7c7ae40 EDX: c08e77ec
         ESI: 000081fe EDI: e7c7ae60 EBP: e7c7ae64 ESP: e7c7ae3c
         DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068
         Call Trace:
         [<c0482ad9>] free_unmap_vmap_area_noflush+0x69/0x70
         [<c0482b02>] remove_vm_area+0x22/0x70
         [<c0482c15>] __vunmap+0x45/0xe0
         [<c04831ec>] vmalloc+0x2c/0x30
         Code: 8d 59 e0 eb 04 66 90 89 cb 89 d0 e8 87 fe ff ff 8b 43 20 89 da 8d 48 e0 8d 43 20 3b 04 24 75 e7 fe 05 a8 a5 a3 c0 e9 78 ff ff ff <0f> 0b eb fe 90 8d b4 26 00 00 00 00 56 89 c6 b8 ac a5 a3 c0 31
         EIP: [<c04824a4>] __purge_vmap_area_lazy+0x144/0x150 SS:ESP 0068:e7c7ae3c
      
      [ See also http://marc.info/?l=linux-kernel&m=126335856228090&w=2 ]
      Signed-off-by: NYongseok Koh <yongseok.koh@samsung.com>
      Reviewed-by: NMinchan Kim <minchan.kim@gmail.com>
      Cc: Nick Piggin <npiggin@suse.de>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      88f50044
    • L
      Merge branch 'sh/for-2.6.33' of git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6 · 970114a1
      Linus Torvalds 提交于
      * 'sh/for-2.6.33' of git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6:
        sh64: wire up sys_accept4.
        sh: unwire sys_recvmmsg.
        sh: ms7724: Correct sh-eth EEPROM polling timeout.
      970114a1
    • L
      Merge master.kernel.org:/home/rmk/linux-2.6-arm · def20529
      Linus Torvalds 提交于
      * master.kernel.org:/home/rmk/linux-2.6-arm:
        ARM: 5888/1: arm: Update comments in cacheflush.h and remove unnecessary V6 and V7 comments
        ARM: 5886/1: arm: Fix cpu_proc_fin() for proc-v7.S and make kexec work
        ARM: 5885/1: arm: Flush TLB entries in setup_mm_for_reboot()
        ARM: 5884/1: arm: Fix DCC console for v7
        ARM: 5883/1: Revert "disable NX support for OABI-supporting kernels"
        ARM: 5882/1: ARM: Fix uncompress code compile for different defines of flush(void)
        ARM: fix badly placed mach/plat entries in Kconfig & Makefile
      def20529
    • S
      perf: x86: Add support for the ANY bit · b27d515a
      Stephane Eranian 提交于
      Propagate the ANY bit into the fixed counter config for v3 and higher.
      Signed-off-by: NStephane Eranian <eranian@google.com>
      [a.p.zijlstra@chello.nl: split from larger patch]
      Signed-off-by: NPeter Zijlstra <a.p.zijlstra@chello.nl>
      LKML-Reference: <4b5430c6.0f975e0a.1bf9.ffff85fe@mx.google.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      b27d515a
    • P
      perf: Change the is_software_event() definition · 92b67598
      Peter Zijlstra 提交于
      The is_software_event() definition always confuses me because its an
      exclusive expression, make it an inclusive one.
      Signed-off-by: NPeter Zijlstra <a.p.zijlstra@chello.nl>
      LKML-Reference: <new-submission>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      92b67598
    • P
      perf: Honour event state for aux stream data · 22e19085
      Peter Zijlstra 提交于
      Anton reported that perf record kept receiving events even after calling
      ioctl(PERF_EVENT_IOC_DISABLE). It turns out that FORK,COMM and MMAP
      events didn't respect the disabled state and kept flowing in.
      Reported-by: NAnton Blanchard <anton@samba.org>
      Signed-off-by: NPeter Zijlstra <a.p.zijlstra@chello.nl>
      Tested-by: NAnton Blanchard <anton@samba.org>
      LKML-Reference: <1263459187.4244.265.camel@laptop>
      CC: stable@kernel.org
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      22e19085
    • P
      perf: Fix perf_event_do_pending() fallback callsite · fe432200
      Peter Zijlstra 提交于
      Paul questioned the context in which we should call
      perf_event_do_pending(). After looking at that I found that it should be
      called from IRQ context these days, however the fallback call-site is
      placed in softirq context. Ammend this by placing the callback in the IRQ
      timer path.
      Reported-by: NPaul Mackerras <paulus@samba.org>
      Signed-off-by: NPeter Zijlstra <a.p.zijlstra@chello.nl>
      LKML-Reference: <1263374859.4244.192.camel@laptop>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      fe432200
    • Y
      sched: Reassign prev and switch_count when reacquire_kernel_lock() fail · 6d558c3a
      Yong Zhang 提交于
      Assume A->B schedule is processing, if B have acquired BKL before and it
      need reschedule this time. Then on B's context, it will go to
      need_resched_nonpreemptible for reschedule. But at this time, prev and
      switch_count are related to A. It's wrong and will lead to incorrect
      scheduler statistics.
      Signed-off-by: NYong Zhang <yong.zhang0@gmail.com>
      Signed-off-by: NPeter Zijlstra <a.p.zijlstra@chello.nl>
      LKML-Reference: <2674af741001102238w7b0ddcadref00d345e2181d11@mail.gmail.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      6d558c3a
    • M
      sched: Fix vmark regression on big machines · 50b926e4
      Mike Galbraith 提交于
      SD_PREFER_SIBLING is set at the CPU domain level if power saving isn't
      enabled, leading to many cache misses on large machines as we traverse
      looking for an idle shared cache to wake to.  Change the enabler of
      select_idle_sibling() to SD_SHARE_PKG_RESOURCES, and enable same at the
      sibling domain level.
      Reported-by: NLin Ming <ming.m.lin@intel.com>
      Signed-off-by: NMike Galbraith <efault@gmx.de>
      Signed-off-by: NPeter Zijlstra <a.p.zijlstra@chello.nl>
      LKML-Reference: <1262612696.15495.15.camel@marge.simson.net>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      50b926e4
    • L
      USB: isp1362: fix build failure on ARM systems via irq_flags cleanup · 0a2fea2e
      Lothar Wassmann 提交于
      There was some left over #ifdef ARM logic that is outdated but no one
      really noticed.  So instead of relying on this tricky logic, properly
      load and utilize the platform irq_flags resources.
      Reported-by: NBen Hutchings <ben@decadent.org.uk>
      Signed-off-by: NLothar Wassmann <LW@KARO-electronics.de>
      Signed-off-by: NMike Frysinger <vapier@gentoo.org>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      0a2fea2e
    • L
      USB: isp1362: better 64bit printf warning fixes · 96b85179
      Lothar Wassmann 提交于
      Some hosts that treat the return value of sizeof differently from unsigned
      long might still hit warnings.  So use %zu for sizeof() values.  This is a
      better version of the previous commit b0a9cf29.
      Signed-off-by: NLothar Wassmann <LW@KARO-electronics.de>
      Signed-off-by: NMike Frysinger <vapier@gentoo.org>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      96b85179
    • R
      USB: fix usbstorage for 2770:915d delivers no FAT · 10d2cdb6
      Ryan May 提交于
      Resolves kernel.org bug 14914.
      
      Remove entry for 2770:915d (usb digital camera with mass storage
      support) from unusual_devs.h. The fix triggered by the entry causes
      the file system on the camera to be completely inaccessible (no
      partition table, the device is not mountable).
      
      The patch works, but let me clarify a few things about it.  All the
      patch does is remove the entry for this device from the
      drivers/usb/storage/unusual_devs.h, which is supposed to help with a
      problem with the device's reported size (I think).  I'm pretty sure it
      was originally added for a reason, so I'm not sure removing it won't
      cause other problems to reappear.  Also, I should note that this
      unusual_devs.h entry was present (and activating workarounds) in
      2.6.29, but in that version everything works fine.  Starting with
      2.6.30, things no longer work.
      Signed-off-by: NRyan May <rmay31@gmail.com>
      Cc: Rohan Hart <rohan.hart17@gmail.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      
      10d2cdb6
    • C
      USB: Fix level of isp1760 Reloading ptd error message · c0d74142
      Colin Tuckley 提交于
      This error message is not actually an error, it's an information
      message. It is triggered when a transfer which ended in a NAQ is
      retried successfully by the hardware.
      Signed-off-by: NColin Tuckley <colin.tuckley@arm.com>
      Cc: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
      Cc: Catalin Marinas <catalin.marinas@arm.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      c0d74142
    • A
      USB: FHCI: avoid NULL pointer dereference · ae35fe9e
      Alexander Beregalov 提交于
      Assign fhci only if usb is not NULL.
      Signed-off-by: NAlexander Beregalov <a.beregalov@gmail.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      ae35fe9e
    • S
      USB: Fix duplicate sysfs problem after device reset. · 04a723ea
      Sarah Sharp 提交于
      Borislav Petkov reports issues with duplicate sysfs endpoint files after a
      resume from a hibernate.  It turns out that the code to support alternate
      settings under xHCI has issues when a device with a non-default alternate
      setting is reset during the hibernate:
      
      [  427.681810] Restarting tasks ...
      [  427.681995] hub 1-0:1.0: state 7 ports 6 chg 0004 evt 0000
      [  427.682019] usb usb3: usb resume
      [  427.682030] ohci_hcd 0000:00:12.0: wakeup root hub
      [  427.682191] hub 1-0:1.0: port 2, status 0501, change 0000, 480 Mb/s
      [  427.682205] usb 1-2: usb wakeup-resume
      [  427.682226] usb 1-2: finish reset-resume
      [  427.682886] done.
      [  427.734658] ehci_hcd 0000:00:12.2: port 2 high speed
      [  427.734663] ehci_hcd 0000:00:12.2: GetStatus port 2 status 001005 POWER sig=se0 PE CONNECT
      [  427.746682] hub 3-0:1.0: hub_reset_resume
      [  427.746693] hub 3-0:1.0: trying to enable port power on non-switchable hub
      [  427.786715] usb 1-2: reset high speed USB device using ehci_hcd and address 2
      [  427.839653] ehci_hcd 0000:00:12.2: port 2 high speed
      [  427.839666] ehci_hcd 0000:00:12.2: GetStatus port 2 status 001005 POWER sig=se0 PE CONNECT
      [  427.847717] ohci_hcd 0000:00:12.0: GetStatus roothub.portstatus [1] = 0x00010100 CSC PPS
      [  427.915497] hub 1-2:1.0: remove_intf_ep_devs: if: ffff88022f9e8800 ->ep_devs_created: 1
      [  427.915774] hub 1-2:1.0: remove_intf_ep_devs: bNumEndpoints: 1
      [  427.915934] hub 1-2:1.0: if: ffff88022f9e8800: endpoint devs removed.
      [  427.916158] hub 1-2:1.0: create_intf_ep_devs: if: ffff88022f9e8800 ->ep_devs_created: 0, ->unregistering: 0
      [  427.916434] hub 1-2:1.0: create_intf_ep_devs: bNumEndpoints: 1
      [  427.916609]  ep_81: create, parent hub
      [  427.916632] ------------[ cut here ]------------
      [  427.916644] WARNING: at fs/sysfs/dir.c:477 sysfs_add_one+0x82/0x96()
      [  427.916649] Hardware name: System Product Name
      [  427.916653] sysfs: cannot create duplicate filename '/devices/pci0000:00/0000:00:12.2/usb1/1-2/1-2:1.0/ep_81'
      [  427.916658] Modules linked in: binfmt_misc kvm_amd kvm powernow_k8 cpufreq_ondemand cpufreq_powersave cpufreq_userspace freq_table cpufreq_conservative ipv6 vfat fat
      +8250_pnp 8250 pcspkr ohci_hcd serial_core k10temp edac_core
      [  427.916694] Pid: 278, comm: khubd Not tainted 2.6.33-rc2-00187-g08d869aa-dirty #13
      [  427.916699] Call Trace:
      
      The problem is caused by a mismatch between the USB core's view of the
      device state and the USB device and xHCI host's view of the device state.
      
      After the device reset and re-configuration, the device and the xHCI host
      think they are using alternate setting 0 of all interfaces.  However, the
      USB core keeps track of the old state, which may include non-zero
      alternate settings.  It uses intf->cur_altsetting to keep the endpoint
      sysfs files for the old state across the reset.
      
      The bandwidth allocation functions need to know what the xHCI host thinks
      the current alternate settings are, so original patch set
      intf->cur_altsetting to the alternate setting 0.  This caused duplicate
      endpoint files to be created.
      
      The solution is to not set intf->cur_altsetting before calling
      usb_set_interface() in usb_reset_and_verify_device().  Instead, we add a
      new flag to struct usb_interface to tell usb_hcd_alloc_bandwidth() to use
      alternate setting 0 as the currently installed alternate setting.
      Signed-off-by: NSarah Sharp <sarah.a.sharp@linux.intel.com>
      Tested-by: NBorislav Petkov <petkovbb@googlemail.com>
      Cc: Alan Stern <stern@rowland.harvard.edu>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      04a723ea
    • G
      USB: add speed values for USB 3.0 and wireless controllers · b132b04e
      Greg Kroah-Hartman 提交于
      These controllers say "unknown" for their speed in sysfs, which
      obviously isn't correct.
      Reported-by: NKurt Garloff <garloff@novell.com>
      Cc: Sarah Sharp <sarah.a.sharp@linux.intel.com>
      Cc: David Vrabel <david.vrabel@csr.com>
      Cc: stable <stable@kernel.org>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      b132b04e
    • A
      USB: add missing delay during remote wakeup · 49d0f078
      Alan Stern 提交于
      This patch (as1330) fixes a bug in khbud's handling of remote
      wakeups.  When a device sends a remote-wakeup request, the parent hub
      (or the host controller driver, for directly attached devices) begins
      the resume sequence and notifies khubd when the sequence finishes.  At
      this point the port's SUSPEND feature is automatically turned off.
      
      However the device needs an additional 10-ms resume-recovery time
      (TRSMRCY in the USB spec).  Khubd does not wait for this delay if the
      SUSPEND feature is off, and as a result some devices fail to behave
      properly following a remote wakeup.  This patch adds the missing
      delay to the remote-wakeup path.
      
      It also extends the resume-signalling delay used by ehci-hcd and
      uhci-hcd from 20 ms (the value in the spec) to 25 ms (the value we use
      for non-remote-wakeup resumes).  The extra time appears to help some
      devices.
      Signed-off-by: NAlan Stern <stern@rowland.harvard.edu>
      Cc: stable <stable@kernel.org>
      Cc: Rickard Bellini <rickard.bellini@ericsson.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      
      49d0f078
    • A
      USB: EHCI & UHCI: fix race between root-hub suspend and port resume · cec3a53c
      Alan Stern 提交于
      This patch (as1321) fixes a problem with EHCI and UHCI root-hub
      suspends: If the suspend occurs while a port is trying to resume, the
      resume doesn't finish and simply gets lost.  When remote wakeup is
      enabled, this is undesirable behavior.
      
      The patch checks first to see if any port resumes are in progress, and
      if they are then it fails the root-hub suspend with -EBUSY.
      Signed-off-by: NAlan Stern <stern@rowland.harvard.edu>
      Cc: stable <stable@kernel.org>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      cec3a53c