1. 23 Aug, 2010 1 commit
  2. 19 Aug, 2010 1 commit
  3. 18 Aug, 2010 2 commits
  4. 16 Aug, 2010 3 commits
  5. 11 Aug, 2010 2 commits
  6. 10 Aug, 2010 31 commits
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://neil.brown.name/md · 3d30701b
      Linus Torvalds authored
      * 'for-linus' of git://neil.brown.name/md: (24 commits)
        md: clean up do_md_stop
        md: fix another deadlock with removing sysfs attributes.
        md: move revalidate_disk() back outside open_mutex
        md/raid10: fix deadlock with unaligned read during resync
        md/bitmap:  separate out loading a bitmap from initialising the structures.
        md/bitmap: prepare for storing write-intent-bitmap via dm-dirty-log.
        md/bitmap: optimise scanning of empty bitmaps.
        md/bitmap: clean up plugging calls.
        md/bitmap: reduce dependence on sysfs.
        md/bitmap: white space clean up and similar.
        md/raid5: export raid5 unplugging interface.
        md/plug: optionally use plugger to unplug an array during resync/recovery.
        md/raid5: add simple plugging infrastructure.
        md/raid5: export is_congested test
        raid5: Don't set read-ahead when there is no queue
        md: add support for raising dm events.
        md: export various start/stop interfaces
        md: split out md_rdev_init
        md: be more careful setting MD_CHANGE_CLEAN
        md/raid5: ensure we create a unique name for kmem_cache when mddev has no gendisk
        ...
      3d30701b
    • Linus Torvalds's avatar
      x86: fix up system call numbering nit · 8cbd84f2
      Linus Torvalds authored
      As pointed out by Jiri Slaby: when I resolved the the 32-bit x85 system
      call entry tables for prlimit (due to the conflict with fanotify), I
      forgot to add the numbering in comments that we do for every fifth entry.
      Reported-by: default avatarJiri Slaby <jslaby@suse.cz>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      8cbd84f2
    • Guenter Roeck's avatar
    • Randy Dunlap's avatar
      i2c.h: fix kernel-doc warnings · 72d2e9f9
      Randy Dunlap authored
      Fix kernel-doc warnings in linux/i2c.h:
      
        Warning(include/linux/i2c.h:176): No description found for parameter 'alert'
        Warning(include/linux/i2c.h:259): No description found for parameter 'of_node'
      Signed-off-by: default avatarRandy Dunlap <randy.dunlap@oracle.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      72d2e9f9
    • Randy Dunlap's avatar
      kernel/timer.c: fix kernel-doc function parameter warning · 0caa6210
      Randy Dunlap authored
      Fix kernel-doc warning, add @timer description:
      
        Warning(kernel/timer.c:335): No description found for parameter 'timer'
      Signed-off-by: default avatarRandy Dunlap <randy.dunlap@oracle.com>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      0caa6210
    • Randy Dunlap's avatar
      docbook: fixup media support files for htmldocs also · 0f7436a5
      Randy Dunlap authored
      'make htmldocs' produces errors due to missing a supporting media
      file, so add 'xmldoclinks' to the htmldocs dependencies so that the
      needed supporting file will be present.
      
        Documentation/DocBook/media.xml:4: warning: failed to load external entity "Documentation/DocBook/media-entities.tmpl"
      Signed-off-by: default avatarRandy Dunlap <randy.dunlap@oracle.com>
      Acked-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      0f7436a5
    • Randy Dunlap's avatar
      docbook: fix fatal error from libata · 3d2be54b
      Randy Dunlap authored
      'make htmldocs' has a fatal error when processing libata.xml, as seen
      below.  The string "Example patterns:" (or any string with "example.*:"
      in it AFAIK) causes some part of the doc generation tool chain to try to
      produce an <informalexample> block without a beginning <para>, but
      there is an ending </para> generated, which throws things out of kilter.
      
      I don't even know where (what program) this is happening in.
      I searched in docproc and xmlto and in some XML stylesheets without
      finding anything.  If anyone can give me pointers about this, please do.
      Until this is fixed, let's just spell "Example" as "Sample"
      and match up the double quotation marks while there.
      
        Documentation/DocBook/libata.xml:6575: parser error : Opening and ending tag mismatch: programlisting line 6573 and para
           </para><para>
                  ^
        Documentation/DocBook/libata.xml:6580: parser error : Opening and ending tag mismatch: para line 6575 and programlisting
        </programlisting></informalexample>
                         ^
        unable to parse Documentation/DocBook/libata.xml
        make[2]: *** [Documentation/DocBook/libata.html] Error 1
      Signed-off-by: default avatarRandy Dunlap <randy.dunlap@oracle.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      3d2be54b
    • Dave Kleikamp's avatar
      jfs: don't allow os2 xattr namespace overlap with others · aca0fa34
      Dave Kleikamp authored
      It's currently possible to bypass xattr namespace access rules by
      prefixing valid xattr names with "os2.", since the os2 namespace stores
      extended attributes in a legacy format with no prefix.
      
      This patch adds checking to deny access to any valid namespace prefix
      following "os2.".
      Signed-off-by: default avatarDave Kleikamp <shaggy@linux.vnet.ibm.com>
      Reported-by: default avatarSergey Vlasov <vsu@altlinux.ru>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      aca0fa34
    • Linus Torvalds's avatar
      Merge branch 'for-2.6.36' of git://git.kernel.dk/linux-2.6-block · 2f9e825d
      Linus Torvalds authored
      * 'for-2.6.36' of git://git.kernel.dk/linux-2.6-block: (149 commits)
        block: make sure that REQ_* types are seen even with CONFIG_BLOCK=n
        xen-blkfront: fix missing out label
        blkdev: fix blkdev_issue_zeroout return value
        block: update request stacking methods to support discards
        block: fix missing export of blk_types.h
        writeback: fix bad _bh spinlock nesting
        drbd: revert "delay probes", feature is being re-implemented differently
        drbd: Initialize all members of sync_conf to their defaults [Bugz 315]
        drbd: Disable delay probes for the upcomming release
        writeback: cleanup bdi_register
        writeback: add new tracepoints
        writeback: remove unnecessary init_timer call
        writeback: optimize periodic bdi thread wakeups
        writeback: prevent unnecessary bdi threads wakeups
        writeback: move bdi threads exiting logic to the forker thread
        writeback: restructure bdi forker loop a little
        writeback: move last_active to bdi
        writeback: do not remove bdi from bdi_list
        writeback: simplify bdi code a little
        writeback: do not lose wake-ups in bdi threads
        ...
      
      Fixed up pretty trivial conflicts in drivers/block/virtio_blk.c and
      drivers/scsi/scsi_error.c as per Jens.
      2f9e825d
    • Linus Torvalds's avatar
      Merge branch 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6 · 7ae0dea9
      Linus Torvalds authored
      * 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6: (94 commits)
        V4L/DVB: tvp7002: fix write to H-PLL Feedback Divider LSB register
        V4L/DVB: dvb: siano: free spinlock before schedule()
        V4L/DVB: media: video: pvrusb2: remove custom hex_to_bin()
        V4L/DVB: drivers: usbvideo: remove custom implementation of hex_to_bin()
        V4L/DVB: Report supported QAM modes on bt8xx
        V4L/DVB: media: ir-keytable: null dereference in debug code
        V4L/DVB: ivtv: convert to the new control framework
        V4L/DVB: ivtv: convert gpio subdev to new control framework
        V4L/DVB: wm8739: convert to the new control framework
        V4L/DVB: cs53l32a: convert to new control framework
        V4L/DVB: wm8775: convert to the new control framework
        V4L/DVB: cx2341x: convert to the control framework
        V4L/DVB: cx25840: convert to the new control framework
        V4L/DVB: cx25840/ivtv: replace ugly priv control with s_config
        V4L/DVB: saa717x: convert to the new control framework
        V4L/DVB: msp3400: convert to the new control framework
        V4L/DVB: saa7115: convert to the new control framework
        V4L/DVB: v4l2: hook up the new control framework into the core framework
        V4L/DVB: Documentation: add v4l2-controls.txt documenting the new controls API
        V4L/DVB: v4l2-ctrls: Whitespace cleanups
        ...
      7ae0dea9
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/wim/linux-2.6-watchdog · 6c74700f
      Linus Torvalds authored
      * git://git.kernel.org/pub/scm/linux/kernel/git/wim/linux-2.6-watchdog:
        watchdog: hpwdt: formatting of pointers in printk()
        watchdog: Adding support for ARM Primecell SP805 Watchdog
        watchdog: f71808e_wdt: new watchdog driver for Fintek F71808E and F71882FG
        watchdog: sch311x_wdt.c: set parent before registeriing the misc device in probe() function
        watchdog: wdt_pci.c: move ids to pci_ids.h
        watchdog: s3c2410_wdt - Fix removing of platform device
      6c74700f
    • Linus Torvalds's avatar
      3e756163
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input · 04f2b976
      Linus Torvalds authored
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
        Input: xpad - add USB-ID for PL-3601 Xbox 360 pad
        Input: cy8ctmg100_ts - signedness bug
        Input: elantech - report position also with 3 fingers
        Input: elantech - discard the first 2 positions on some firmwares
        Input: adxl34x - do not mark device as disabled on startup
        Input: gpio_keys - add hooks to enable/disable device
        Input: evdev - rearrange ioctl handling
        Input: dynamically allocate ABS information
        Input: switch to input_abs_*() access functions
        Input: add static inline accessors for ABS properties
      04f2b976
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6 · 9895850b
      Linus Torvalds authored
      * git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6: (148 commits)
        USB: serial: fix stalled writes
        USB: remove fake "address-of" expressions
        USB: fix thread-unsafe anchor utiliy routines
        USB: usbtest: support test device with only one iso-in or iso-out endpoint
        USB: usbtest: avoid to free coherent buffer in atomic context
        USB: xhci: Set DMA mask for host.
        USB: xhci: Don't flush doorbell writes.
        USB: xhci: Reduce reads and writes of interrupter registers.
        USB: xhci: Make xhci_set_hc_event_deq() static.
        USB: xhci: Minimize HW event ring dequeue pointer writes.
        USB: xhci: Make xhci_handle_event() static.
        USB: xhci: Remove unnecessary reads of IRQ_PENDING register.
        USB: xhci: Performance - move xhci_work() into xhci_irq()
        USB: xhci: Performance - move interrupt handlers into xhci-ring.c
        USB: xhci: Performance - move functions that find ep ring.
        USB:: fix linux/usb.h kernel-doc warnings
        USB: add USB serial ssu100 driver
        USB: usb-storage: implement autosuspend
        USB: ehci: fix remove of ehci debugfs dir
        USB: Add USB 2.0 to ssb ohci driver
        ...
      9895850b
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty-2.6 · fc385c31
      Linus Torvalds authored
      * git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty-2.6: (68 commits)
        U6715 16550A serial driver support
        Char: nozomi, set tty->driver_data appropriately
        Char: nozomi, fix tty->count counting
        serial: max3107: Fix gpiolib support
        hsu: call PCI pm hooks in suspend/resume function
        hsu: some code cleanup
        hsu: add a periodic timer to check dma rx channel
        hsu: driver for Medfield High Speed UART device
        mxser: remove unnesesary NULL check
        serial: add support for OX16PCI958 card
        serial: 68328serial.c: remove dead (ALMA_ANS | DRAGONIXVZ | M68EZ328ADS)
        timbuart: use __devinit and __devexit macros for probe and remove
        serial: MMIO32 support for 8250_early.c
        serial: mcf: don't take spinlocks in already protected functions
        serial: general fixes in the serial_rs485 structure
        serial: fix missing bit coverage of ASYNC_FLAGS
        serial: "altera_uart: simplify altera_uart_console_putc()" checkpatch fixes
        serial: crisv10: formatting of pointers in printk()
        vt: Fix warning: statement with no effect due to vt_kern.h
        tty_io: remove casts from void*
        ...
      fc385c31
    • Johan Hovold's avatar
      USB: serial: fix stalled writes · b58af406
      Johan Hovold authored
      As David VomLehn points out, it was possible to receive an interrupt
      before clearing the free-urb flag which could lead to the urb being
      incorrectly marked as busy.
      
      For the same reason, move tx_bytes accounting so that it will never be
      negative.
      
      Note that the free-flags set and clear operations do not need any
      additional locking as they are manipulated while USB_SERIAL_WRITE_BUSY
      is set.
      Reported-by: default avatarDavid VomLehn <dvomlehn@cisco.com>
      Tested-by: default avatarDavid VomLehn <dvomlehn@cisco.com>
      Signed-off-by: default avatarJohan Hovold <jhovold@gmail.com>
      Cc: stable <stable@kernel.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      b58af406
    • Alan Stern's avatar
      USB: remove fake "address-of" expressions · b409214c
      Alan Stern authored
      Fake "address-of" expressions that evaluate to NULL generally confuse
      readers and can provoke compiler warnings.  This patch (as1412)
      removes three such fake expressions, using "#ifdef"s in their place.
      Signed-off-by: default avatarAlan Stern <stern@rowland.harvard.edu>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      b409214c
    • Christian Lamparter's avatar
      USB: fix thread-unsafe anchor utiliy routines · b3e67044
      Christian Lamparter authored
      This patch fixes a race condition in two utility routines
      related to the removal/unlinking of urbs from an anchor.
      
      If two threads are concurrently accessing the same anchor,
      both could end up with the same urb - thinking they are
      the exclusive owner.
      
      Alan Stern pointed out a related issue in
      usb_unlink_anchored_urbs:
      
      "The URB isn't removed from the anchor until it completes
       (as a by-product of completion, in fact), which might not
       be for quite some time after the unlink call returns.
       In the meantime, the subroutine will keep trying to unlink
       it, over and over again."
      
      Cc: stable <stable@kernel.org>
      Cc: Oliver Neukum <oneukum@suse.de>
      Cc: Greg Kroah-Hartman <greg@kroah.com>
      Acked-by: default avatarAlan Stern <stern@rowland.harvard.edu>
      Signed-off-by: default avatarChristian Lamparter <chunkeey@googlemail.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      
      b3e67044
    • Ming Lei's avatar
      USB: usbtest: support test device with only one iso-in or iso-out endpoint · 951fd8ee
      Ming Lei authored
      It is very common that one altsetting may include only one iso-in or iso-out
      single endpoint, especially for high bandwidth endpoint, so support it.
      Signed-off-by: default avatarMing Lei <tom.leiming@gmail.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      951fd8ee
    • Ming Lei's avatar
      USB: usbtest: avoid to free coherent buffer in atomic context · e10e1bec
      Ming Lei authored
      This patch fixes the warning below:
      [30753.755998] ------------[ cut here ]------------
      [30753.755998] WARNING: at /home/tom/git/linux-2.6/linux-2.6-next/arch/x86/include/asm/dma-mapping.h:155 hcd_buffer_free+0xb1/0xd4 [usbcore]()
      [30753.755998] Hardware name: 6475EK2
      [30753.755998] Modules linked in: uvcvideo ehci_hcd usbtest cdc_ether usbnet vfat fat usb_storage nfsd lockd nfs_acl auth_rpcgss exportfs mii tun videodev v4l1_compat v4l2_compat_ioctl32 fuse bridge stp llc sunrpc ipv6 cpufreq_ondemand acpi_cpufreq freq_table mperf kvm_intel kvm arc4 ecb ath5k usbhid mac80211 snd_hda_codec_conexant ch341 usbserial ath cfg80211 thinkpad_acpi snd_hda_intel pcspkr wmi hwmon yenta_socket iTCO_wdt iTCO_vendor_support i2c_i801 e1000e snd_hda_codec snd_hwdep snd_pcm snd_timer snd soundcore snd_page_alloc pata_acpi uhci_hcd ohci_hcd usbcore i915 drm_kms_helper drm i2c_algo_bit i2c_core video output [last unloaded: uvcvideo]
      [30753.755998] Pid: 0, comm: swapper Tainted: G        W   2.6.35-rc6-gkh-wl+ #49
      [30753.755998] Call Trace:
      [30753.755998]  <IRQ>  [<ffffffff8104478a>] warn_slowpath_common+0x80/0x98
      [30753.755998]  [<ffffffff810447b7>] warn_slowpath_null+0x15/0x17
      [30753.755998]  [<ffffffffa00ce02d>] hcd_buffer_free+0xb1/0xd4 [usbcore]
      [30753.755998]  [<ffffffffa00c1345>] usb_free_coherent+0x1c/0x1e [usbcore]
      [30753.755998]  [<ffffffffa00b13e4>] simple_free_urb+0x23/0x2f [usbtest]
      [30753.755998]  [<ffffffffa00b210b>] iso_callback+0xbb/0x10f [usbtest]
      [30753.755998]  [<ffffffffa00c7390>] usb_hcd_giveback_urb+0x8c/0xc0 [usbcore]
      [30753.755998]  [<ffffffffa0449b35>] ehci_urb_done+0x84/0x95 [ehci_hcd]
      [30753.755998]  [<ffffffffa044b5a5>] ehci_work+0x41a/0x7dd [ehci_hcd]
      [30753.755998]  [<ffffffffa044e298>] ehci_irq+0x33b/0x370 [ehci_hcd]
      [30753.755998]  [<ffffffff8100fb05>] ? sched_clock+0x9/0xd
      [30753.755998]  [<ffffffff8105e641>] ? sched_clock_local+0x1c/0x82
      [30753.755998]  [<ffffffff8105e76a>] ? sched_clock_cpu+0xc3/0xce
      [30753.755998]  [<ffffffff81067c7e>] ? trace_hardirqs_off+0xd/0xf
      [30753.755998]  [<ffffffff8105e7b8>] ? cpu_clock+0x43/0x5e
      [30753.755998]  [<ffffffffa00c6999>] usb_hcd_irq+0x45/0xa1 [usbcore]
      [30753.755998]  [<ffffffff81092e02>] handle_IRQ_event+0x20/0xa5
      [30753.755998]  [<ffffffff81094cea>] handle_fasteoi_irq+0x92/0xd2
      [30753.755998]  [<ffffffff8100c0ed>] handle_irq+0x1f/0x2a
      [30753.755998]  [<ffffffff8100b75d>] do_IRQ+0x57/0xbe
      [30753.755998]  [<ffffffff8136a693>] ret_from_intr+0x0/0x16
      [30753.755998]  <EOI>  [<ffffffff81223baa>] ? acpi_idle_enter_bm+0x231/0x269
      [30753.755998]  [<ffffffff81223ba3>] ? acpi_idle_enter_bm+0x22a/0x269
      [30753.755998]  [<ffffffff812c4b6b>] cpuidle_idle_call+0x99/0xce
      [30753.755998]  [<ffffffff81008dd5>] cpu_idle+0x61/0xaa
      [30753.755998]  [<ffffffff8136374b>] start_secondary+0x1c2/0x1c6
      [30753.755998] ---[ end trace 904cfaf7ab4cb1a2 ]---
      Signed-off-by: default avatarMing Lei <tom.leiming@gmail.com>
      Cc: stable <stable@kernel.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      e10e1bec
    • Sarah Sharp's avatar
      USB: xhci: Set DMA mask for host. · 006d5820
      Sarah Sharp authored
      Tell the USB core that we can do DMA directly (instead of needing it to
      memory-map the buffers for PIO).  If the xHCI host supports 64-bit addresses,
      set the DMA mask accordingly.  Otherwise indicate the host can handle 32-bit DMA
      addresses.
      
      This improves performance because the USB core doesn't have to spend time
      remapping buffers in high memory into the 32-bit address range.
      Signed-off-by: default avatarSarah Sharp <sarah.a.sharp@linux.intel.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      006d5820
    • Sarah Sharp's avatar
      USB: xhci: Don't flush doorbell writes. · ed3f2453
      Sarah Sharp authored
      To tell the host controller that there are transfers on the endpoint
      rings, we need to ring the endpoint doorbell.  This is a PCI MMIO write,
      which can be delayed until another register read is queued.
      
      The previous code would flush the doorbell write by reading the doorbell
      register after the write.  This may take time, and it's not necessary to
      force the host controller to know about the transfers right away.  Don't
      flush the doorbell register writes.
      Signed-off-by: default avatarSarah Sharp <sarah.a.sharp@linux.intel.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      ed3f2453
    • Sarah Sharp's avatar
      USB: xhci: Reduce reads and writes of interrupter registers. · c21599a3
      Sarah Sharp authored
      The interrupter register set includes a register that says whether interrupts
      are pending for each event ring (the IP bit).  Each MSI-X vector will get its
      own interrupter set with separate IP bits.  The status register includes an
      "Event Interrupt (EINT)" bit that is set when an IP bit is set in any of the
      interrupters.
      
      When PCI interrupts are used, the EINT bit exactly mirrors the IP bit in the
      single interrupter set, and it is a waste of time to check both registers when
      trying to figure out if the xHC interrupted or another device on the shared IRQ
      line interrupted.  Only check the IP bit to reduce register reads.
      
      The IP bit is automatically cleared by the xHC when MSI or MSI-X is enabled.  It
      doesn't make sense to read that register to check for shared interrupts (since
      MSI and MSI-X aren't shared).  It also doesn't make sense to write to that
      register to clear the IP bit, since it is cleared by the hardware.
      
      We can tell whether MSI or MSI-X is enabled by looking at the irq number in
      hcd->irq.  If it's -1, we know MSI or MSI-X is enabled.
      Signed-off-by: default avatarSarah Sharp <sarah.a.sharp@linux.intel.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      c21599a3
    • Sarah Sharp's avatar
      USB: xhci: Make xhci_set_hc_event_deq() static. · 257d585a
      Sarah Sharp authored
      Now that the event handler functions no longer use xhci_set_hc_event_deq()
      to update the event ring dequeue pointer, that function is not used by
      anything in xhci-ring.c.  Move that function into xhci-mem.c and make it
      static.
      Signed-off-by: default avatarSarah Sharp <sarah.a.sharp@linux.intel.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      257d585a
    • Sarah Sharp's avatar
      USB: xhci: Minimize HW event ring dequeue pointer writes. · c06d68b8
      Sarah Sharp authored
      The xHCI specification suggests that writing the hardware event ring dequeue
      pointer register too often can be an expensive operation for the xHCI hardware
      to manage.  It suggests minimizing the number of writes to that register.
      
      Originally, the driver wrote the event ring dequeue pointer after each
      event was processed.  Depending on how the event ring moderation register
      is set up and how fast the transfers are completing, there may be several
      events processed for each interrupt.  This patch makes the hardware event
      ring dequeue pointer be written only once per interrupt.
      
      Make the transfer event handler and port status event handler only write
      the software event ring dequeue pointer.  Move the updating of the
      hardware event ring dequeue pointer into the interrupt function.  Move the
      contents of xhci_set_hc_event_deq() into the interrupt handler.  The
      interrupt handler must clear the event handler busy flag, so it might as
      well also write the dequeue pointer to the same register.  This eliminates
      two 32-bit PCI reads and two 32-bit PCI writes.
      Reported-by: default avatarAndiry Xu <andiry.xu@amd.com>
      Signed-off-by: default avatarSarah Sharp <sarah.a.sharp@linux.intel.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      c06d68b8
    • Sarah Sharp's avatar
      USB: xhci: Make xhci_handle_event() static. · d6d98a4d
      Sarah Sharp authored
      xhci_handle_event() is now only called from within xhci-ring.c, so make it
      static.
      Signed-off-by: default avatarSarah Sharp <sarah.a.sharp@linux.intel.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      d6d98a4d
    • Sarah Sharp's avatar
      USB: xhci: Remove unnecessary reads of IRQ_PENDING register. · 27e0dd4d
      Sarah Sharp authored
      Remove a duplicate register read of the interrupt pending register from
      xhci_irq().  Also, remove waiting on the posted write of that register.
      The host will see it eventually.  It will probably read the register
      itself before deciding whether to interrupt the system again, forcing the
      posted write to complete.
      Signed-off-by: default avatarSarah Sharp <sarah.a.sharp@linux.intel.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      27e0dd4d
    • Sarah Sharp's avatar
      USB: xhci: Performance - move xhci_work() into xhci_irq() · bda53145
      Sarah Sharp authored
      When we move xhci_work() into xhci_irq(), we don't need to read the operational
      register status field twice.
      Signed-off-by: default avatarSarah Sharp <sarah.a.sharp@linux.intel.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      bda53145
    • Sarah Sharp's avatar
      USB: xhci: Performance - move interrupt handlers into xhci-ring.c · 9032cd52
      Sarah Sharp authored
      Most of the work for interrupt handling is done in xhci-ring.c, so it makes
      sense to move the functions that are first called when an interrupt happens
      (xhci_irq() or xhci_msi_irq()) into xhci-ring.c, so that the compiler can better
      optimize them.
      
      Shorten some lines to make it pass checkpatch.
      Signed-off-by: default avatarSarah Sharp <sarah.a.sharp@linux.intel.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      9032cd52
    • Sarah Sharp's avatar
      USB: xhci: Performance - move functions that find ep ring. · 021bff91
      Sarah Sharp authored
      I've been using perf to measure the top symbols while transferring 1GB of data
      on a USB 3.0 drive with dd.  This is using the raw disk with /dev/sdb, with a
      block size of 1K.
      
      During performance testing, the top symbol was xhci_triad_to_transfer_ring(), a
      function that should return immediately if streams are not enabled for an
      endpoint.  It turned out that the functions to find the endpoint ring was
      defined in xhci-mem.c and used in xhci-ring.c and xhci-hcd.c.  I moved a copy of
      xhci_triad_to_transfer_ring() and xhci_urb_to_transfer_ring() into xhci-ring.c
      and declared them static.  I also made a static version of
      xhci_urb_to_transfer_ring() in xhci.c.
      
      This improved throughput on a 1GB read of the raw disk with dd from
      186MB/s to 195MB/s, and perf reported sampling the xhci_triad_to_transfer_ring()
      0.06% of the time, rather than 9.26% of the time.
      Signed-off-by: default avatarSarah Sharp <sarah.a.sharp@linux.intel.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      021bff91
    • Randy Dunlap's avatar
      USB:: fix linux/usb.h kernel-doc warnings · c6ba1c2a
      Randy Dunlap authored
      Fix kernel-doc warnings in linux/usb.h:
      
      Warning(include/linux/usb.h:185): No description found for parameter 'resetting_device'
      Warning(include/linux/usb.h:1212): No description found for parameter 'stream_id'
      Signed-off-by: default avatarRandy Dunlap <randy.dunlap@oracle.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      c6ba1c2a