1. 17 Feb, 2011 17 commits
  2. 04 Feb, 2011 3 commits
    • Stephen Boyd's avatar
      hvc_dcc: Simplify assembly for v6 and v7 ARM · 8e6d3fe1
      Stephen Boyd authored
      The inline assembly differences for v6 vs. v7 in the hvc_dcc
      driver are purely optimizations. On a v7 processor, an mrc with
      the pc sets the condition codes to the 28-31 bits of the register
      being read. It just so happens that the TX/RX full bits the DCC
      driver is testing for are high enough in the register to be put
      into the condition codes. On a v6 processor, this "feature" isn't
      implemented and thus we have to do the usual read, mask, test
      operations to check for TX/RX full.
      
      Since we already test the RX/TX full bits before calling
      __dcc_getchar() and __dcc_putchar() we don't actually need to do
      anything special for v7 over v6. The only difference is in
      hvc_dcc_get_chars(). We would test RX full, poll RX full, and
      then read a character from the buffer, whereas now we will test
      RX full, read a character from the buffer, and then test RX full
      again for the second iteration of the loop. It doesn't seem
      possible for the buffer to go from full to empty between testing
      the RX full and reading a character. Therefore, replace the v7
      versions with the v6 versions and everything works the same.
      Acked-by: default avatarTony Lindgren <tony@atomide.com>
      Cc: Arnd Bergmann <arnd@arndb.de>
      Acked-by: default avatarNicolas Pitre <nicolas.pitre@linaro.org>
      Cc: Daniel Walker <dwalker@codeaurora.org>
      Signed-off-by: default avatarStephen Boyd <sboyd@codeaurora.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      8e6d3fe1
    • Stephen Boyd's avatar
      hvc_dcc: Simplify put_chars()/get_chars() loops · bf73bd35
      Stephen Boyd authored
      Casting and anding with 0xff is unnecessary in
      hvc_dcc_put_chars() since buf is already a char[].
      __dcc_get_char() can't return an int less than 0 since it only
      returns a char. Simplify the if statement in hvc_dcc_get_chars()
      to take this into account.
      
      Cc: Daniel Walker <dwalker@codeaurora.org>
      Signed-off-by: default avatarStephen Boyd <sboyd@codeaurora.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      bf73bd35
    • Stephen Boyd's avatar
      hvc_dcc: Fix bad code generation by marking assembly volatile · a9963201
      Stephen Boyd authored
      Without marking the asm __dcc_getstatus() volatile my compiler
      decides it can cache the value of __ret in a register and then
      check the value of it continually in hvc_dcc_put_chars() (I had
      to replace get_wait/put_wait with 1 and fixup the branch
      otherwise my disassembler barfed on __dcc_(get|put)char).
      
      00000000 <hvc_dcc_put_chars>:
         0:   ee103e11        mrc     14, 0, r3, cr0, cr1, {0}
         4:   e3a0c000        mov     ip, #0  ; 0x0
         8:   e2033202        and     r3, r3, #536870912      ; 0x20000000
         c:   ea000006        b       2c <hvc_dcc_put_chars+0x2c>
        10:   e3530000        cmp     r3, #0  ; 0x0
        14:   1afffffd        bne     10 <hvc_dcc_put_chars+0x10>
        18:   e7d1000c        ldrb    r0, [r1, ip]
        1c:   ee10fe11        mrc     14, 0, pc, cr0, cr1, {0}
        20:   2afffffd        bcs     1c <hvc_dcc_put_chars+0x1c>
        24:   ee000e15        mcr     14, 0, r0, cr0, cr5, {0}
        28:   e28cc001        add     ip, ip, #1      ; 0x1
        2c:   e15c0002        cmp     ip, r2
        30:   bafffff6        blt     10 <hvc_dcc_put_chars+0x10>
        34:   e1a00002        mov     r0, r2
        38:   e12fff1e        bx      lr
      
      As you can see, the value of the mrc is checked against
      DCC_STATUS_TX (bit 29) and then stored in r3 for later use.
      Marking the asm volatile produces the following:
      
      00000000 <hvc_dcc_put_chars>:
         0:   e3a03000        mov     r3, #0  ; 0x0
         4:   ea000007        b       28 <hvc_dcc_put_chars+0x28>
         8:   ee100e11        mrc     14, 0, r0, cr0, cr1, {0}
         c:   e3100202        tst     r0, #536870912  ; 0x20000000
        10:   1afffffc        bne     8 <hvc_dcc_put_chars+0x8>
        14:   e7d10003        ldrb    r0, [r1, r3]
        18:   ee10fe11        mrc     14, 0, pc, cr0, cr1, {0}
        1c:   2afffffd        bcs     18 <hvc_dcc_put_chars+0x18>
        20:   ee000e15        mcr     14, 0, r0, cr0, cr5, {0}
        24:   e2833001        add     r3, r3, #1      ; 0x1
        28:   e1530002        cmp     r3, r2
        2c:   bafffff5        blt     8 <hvc_dcc_put_chars+0x8>
        30:   e1a00002        mov     r0, r2
        34:   e12fff1e        bx      lr
      
      which looks better and actually works. Mark all the inline
      assembly in this file as volatile since we don't want the
      compiler to optimize away these statements or move them around
      in any way.
      Acked-by: default avatarTony Lindgren <tony@atomide.com>
      Cc: Arnd Bergmann <arnd@arndb.de>
      Acked-by: default avatarNicolas Pitre <nicolas.pitre@linaro.org>
      Cc: Daniel Walker <dwalker@codeaurora.org>
      Signed-off-by: default avatarStephen Boyd <sboyd@codeaurora.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      a9963201
  3. 03 Feb, 2011 11 commits
  4. 01 Feb, 2011 1 commit
  5. 31 Jan, 2011 8 commits
    • Linus Torvalds's avatar
      Merge branch 'bugfixes' of git://git.linux-nfs.org/projects/trondmy/nfs-2.6 · 0fd08c55
      Linus Torvalds authored
      * 'bugfixes' of git://git.linux-nfs.org/projects/trondmy/nfs-2.6:
        NFS: NFSv4 readdir loses entries
        NFS: Micro-optimize nfs4_decode_dirent()
        NFS: Fix an NFS client lockdep issue
        NFS construct consistent co_ownerid for v4.1
        NFS: nfs_wcc_update_inode() should set nfsi->attr_gencount
        NFS improve pnfs_put_deviceid_cache debug print
        NFS fix cb_sequence error processing
        NFS do not find client in NFSv4 pg_authenticate
        NLM: Fix "kernel BUG at fs/lockd/host.c:417!" or ".../host.c:283!"
        NFS: Prevent memory allocation failure in nfsacl_encode()
        NFS: nfsacl_{encode,decode} should return signed integer
        NFS: Fix "kernel BUG at fs/nfs/nfs3xdr.c:1338!"
        NFS: Fix "kernel BUG at fs/aio.c:554!"
        NFS4: Avoid potential NULL pointer dereference in decode_and_add_ds().
        NFS: fix handling of malloc failure during nfs_flush_multi()
      0fd08c55
    • Linus Torvalds's avatar
      Merge branch 'fixes' of master.kernel.org:/home/rmk/linux-2.6-arm · 7921127e
      Linus Torvalds authored
      * 'fixes' of master.kernel.org:/home/rmk/linux-2.6-arm:
        ARM: smp_on_up: allow non-ARM SMP processors
        ARM: io: ensure inb/outb() et.al. are properly ordered on ARMv6+
        ARM: initrd: disable initrd if passed address overlaps reserved region
        ARM: footbridge: fix debug macros
        ARM: mmci: round down the bytes transferred on error
        ARM: mmci: complete the transaction on error
        ARM: 6642/1: mmci: calculate remaining bytes at error correctly
      7921127e
    • Linus Torvalds's avatar
      Merge branch 'omap-fixes-for-linus' of... · 35a8524f
      Linus Torvalds authored
      Merge branch 'omap-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap-2.6
      
      * 'omap-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap-2.6:
        arch/arm/mach-omap2/dma.c: Convert IS_ERR result to PTR_ERR
        arm: omap2: mux: fix compile warning
        omap1: Simplify use of omap_irq_flags
        omap2+: Fix unused variable warning for omap_irq_base
      35a8524f
    • Randy Dunlap's avatar
      kernel.h: fix kernel-doc warning · ffbbf2da
      Randy Dunlap authored
      Fix kernel-doc warning in kernel.h from commit 7ef88ad5
      ("BUILD_BUG_ON: make it handle more cases"):
      
        Warning(include/linux/kernel.h:605): No description found for parameter 'condition'
        Warning(include/linux/kernel.h:605): Excess function parameter 'cond' description in 'BUILD_BUG_ON'
      Signed-off-by: default avatarRandy Dunlap <randy.dunlap@oracle.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      ffbbf2da
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://oss.sgi.com/xfs/xfs · fb9f1f17
      Linus Torvalds authored
      * 'for-linus' of git://oss.sgi.com/xfs/xfs:
        xfs: xfs_bmap_add_extent_delay_real should init br_startblock
        xfs: fix dquot shaker deadlock
        xfs: handle CIl transaction commit failures correctly
        xfs: limit extsize to size of AGs and/or MAXEXTLEN
        xfs: prevent extsize alignment from exceeding maximum extent size
        xfs: limit extent length for allocation to AG size
        xfs: speculative delayed allocation uses rounddown_power_of_2 badly
        xfs: fix efi item leak on forced shutdown
        xfs: fix log ticket leak on forced shutdown.
      fb9f1f17
    • Michael S. Tsirkin's avatar
      virtio: update MAINTAINERS · 2426ec8f
      Michael S. Tsirkin authored
      Patches should keep coming through Rusty but it helps if I'm Cc'd as
      well.
      Signed-off-by: default avatarMichael S. Tsirkin <mst@redhat.com>
      Signed-off-by: default avatarRusty Russell <rusty@rustcorp.com.au>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      2426ec8f
    • Linus Torvalds's avatar
      Merge branch 'usb-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6 · cbae4873
      Linus Torvalds authored
      * 'usb-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6: (42 commits)
        usb: gadget: composite: avoid access beyond array max length
        USB: serial: handle Data Carrier Detect changes
        USB: gadget: Fix endpoint representation in ci13xxx_udc
        USB: gadget: Fix error path in ci13xxx_udc gadget probe function
        usb: pch_udc: Fix the worning log issue at gadget driver remove
        USB: serial: Updated support for ICOM devices
        USB: ehci-mxc: add work-around for efika mx/sb bug
        USB: unbreak ehci-mxc on otg port of i.MX27
        drivers: update to pl2303 usb-serial to support Motorola cables
        USB: adding USB support for Cinterion's HC2x, EU3 and PH8 products
        USB serial: add missing .usb_driver field in serial drivers
        USB: ehci-fsl: Fix 'have_sysif_regs' detection
        USB: g_printer: fix bug in module parameter definitions
        USB: g_printer: fix bug in unregistration
        USB: uss720: remove duplicate USB device
        MAINTAINERS: add ueagle-atm entry
        USB: EHCI: fix DMA deallocation bug
        USB: pch_udc: support new device ML7213 IOH
        usb: pch_udc: Fixed issue which does not work with g_serial
        usb: set ep_dev async suspend should be later than device_initialize
        ...
      cbae4873
    • Linus Torvalds's avatar
      Merge branch 'staging-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging-2.6 · fb1c6348
      Linus Torvalds authored
      * 'staging-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging-2.6: (26 commits)
        staging: r8712u: Add new device IDs
        staging: brcm80211: fix suspend/resume issue in brcmsmac
        staging: brcm80211: remove assert to avoid panic since 2.6.37 kernel
        Staging: iio: Aditional fixpoint formatted output bugfix
        staging: usbip: vhci: use urb->dev->portnum to find port
        staging: usbip: vhci: handle EAGAIN from SO_RCVTIMEO
        staging: usbip: vhci: friendly log messages for connection errors
        staging: usbip: vhci: refuse to enqueue for dead connections
        staging: usbip: vhci: give back URBs from in-flight unlink requests
        staging: usbip: vhci: update reference count for usb_device
        staging: usbip: stub: update refcounts for devices and interfaces
        staging: tidspbridge: replace mbox callback with notifier_call
        staging: comedi: ni_labpc: Use shared IRQ for PCMCIA card
        Staging: speakup: &&/|| confusion in silent_store()
        iio: Fixpoint formatted output bugfix
        staging: rt2860: Fix incorrect netif_stop_queue usage warning
        staging: r8712u: Fix memory leak in firmware loading
        staging: tidspbridge: configure full L1 MMU range
        staging: rt2870sta: Add ID for Linksys WUSB100v2
        Staging: xgfib: put parenthesis in the right place
        ...
      fb1c6348