14 Feb, 2013

5 commits

  • Now that N_TTY uses tty->disc_data for its private data,
    'subclass' ldiscs cannot use ->disc_data for their own private data.
    (This is a regression is v3.8-rc1)

    Use pps_lookup_dev to associate the tty with the pps source instead.

    This fixes a crashing regression in 3.8-rc1.

    Signed-off-by: George Spelvin
    Acked-by: Rodolfo Giometti
    Cc: stable
    Signed-off-by: Greg Kroah-Hartman

    George Spelvin
     
  • The PPS serial line discipline wants to attach a PPS device to a tty
    without changing the tty code to add a struct pps_device * pointer.

    Since the number of PPS devices in a typical system is generally very low
    (n=1 is by far the most common), it's practical to search the entire list
    of allocated pps devices. (We capture the timestamp before the lookup,
    so the timing isn't affected.)

    It is a bit ugly that this function, which is part of the in-kernel
    PPS API, has to be in pps.c as opposed to kapi,c, but that's not
    something that affects users.

    Signed-off-by: George Spelvin
    Acked-by: Rodolfo Giometti
    Cc: stable
    Signed-off-by: Greg Kroah-Hartman

    George Spelvin
     
  • Use big and little endian accessors function to reflect system configuration.
    Detection is done via control register in ulite_request_port.

    Tested on Microblaze LE, BE, PPC440 and Arm zynq.

    Signed-off-by: Michal Simek
    Acked-by: Arnd Bergmann
    Signed-off-by: Greg Kroah-Hartman

    Michal Simek
     
  • Clean coding style and sparse warnings.

    Signed-off-by: Michal Simek
    Signed-off-by: Greg Kroah-Hartman

    Michal Simek
     
  • -replace "baud" with "current-speed"
    -if uart alias doesn't exist in DT, don't abort, pick 0

    Signed-off-by: Vineet Gupta
    Cc: Greg Kroah-Hartman
    Cc: Grant Likely
    Cc: Arnd Bergmann
    Cc: devicetree-discuss@lists.ozlabs.org
    Cc: Rob Herring
    Cc: Rob Landley
    Cc: linux-serial@vger.kernel.org
    Cc: linux-kernel@vger.kernel.org
    Signed-off-by: Greg Kroah-Hartman

    Vineet Gupta
     

09 Feb, 2013

1 commit

  • Since SERIAL_CORE needs GENERIC_HARDIRQS (see below) and most serial drivers
    select it, just add a GENERIC_HARDIRQS dependency to all serial drivers.

    Fixes the compile error below:

    drivers/tty/serial/serial_core.c: In function ‘uart_set_info’:
    drivers/tty/serial/serial_core.c:725:2: error: implicit declaration of function ‘irq_canonicalize’

    Cc: Jiri Slaby
    Signed-off-by: Heiko Carstens
    Signed-off-by: Greg Kroah-Hartman

    Heiko Carstens
     

07 Feb, 2013

5 commits


06 Feb, 2013

5 commits


05 Feb, 2013

8 commits

  • Multiple slave pty opens may be performed in parallel with the
    master open. Of course, all the slave opens will fail because the
    master pty is still locked but during this time the slave pty
    count will be artificially greater than 1. This is should not
    cause the master pty open to fail.

    Signed-off-by: Peter Hurley
    Signed-off-by: Greg Kroah-Hartman

    Peter Hurley
     
  • If the tty driver open() fails, the tty driver close() is still
    called during the resultant tty release.

    Signed-off-by: Peter Hurley
    Signed-off-by: Greg Kroah-Hartman

    Peter Hurley
     
  • If the master and slave ptys are opened in parallel, the slave open
    fails because the pty is still locked. This is as designed.
    However, pty_close() is still called for the slave pty which sets
    TTY_OTHER_CLOSED in the master pty. This can cause the master open
    to fail as well.

    Use a common pattern in other tty drivers by setting TTY_IO_ERROR
    until the open is successful and only closing the pty if not set.

    Note: the master pty always closes regardless of whether the open
    was successful, so that proper cleanup can occur.

    Signed-off-by: Peter Hurley
    Signed-off-by: Greg Kroah-Hartman

    Peter Hurley
     
  • If pmtx_open() fails to get a slave inode or fails the pty_open(),
    the tty is released as part of the error cleanup. As evidenced by the
    first BUG stacktrace below, pty_close() assumes that the linked pty has
    a valid, initialized inode* stored in driver_data.

    Also, as evidenced by the second BUG stacktrace below, pty_unix98_shutdown()
    assumes that the master pty's driver_data has been initialized.

    1) Fix the invalid assumption in pty_close().
    2) Initialize driver_data immediately so proper devpts fs cleanup occurs.

    Fixes this BUG:

    [ 815.868844] BUG: unable to handle kernel NULL pointer dereference at 0000000000000028
    [ 815.869018] IP: [] devpts_pty_kill+0x1c/0xa0
    [ 815.869190] PGD 7c775067 PUD 79deb067 PMD 0
    [ 815.869315] Oops: 0000 [#1] PREEMPT SMP
    [ 815.869443] Modules linked in: kvm_intel kvm snd_hda_intel snd_hda_codec snd_hwdep snd_pcm snd_seq_midi microcode snd_rawmidi psmouse serio_raw snd_seq_midi_event snd_seq snd_timer$
    [ 815.870025] CPU 0
    [ 815.870143] Pid: 27819, comm: stress_test_tty Tainted: G W 3.8.0-next-20130125+ttypatch-2-xeon #2 Bochs Bochs
    [ 815.870386] RIP: 0010:[] [] devpts_pty_kill+0x1c/0xa0
    [ 815.870540] RSP: 0018:ffff88007d3e1ac8 EFLAGS: 00010282
    [ 815.870661] RAX: ffff880079c20800 RBX: 0000000000000000 RCX: 0000000000000000
    [ 815.870804] RDX: ffff880079c209a8 RSI: 0000000000000286 RDI: 0000000000000000
    [ 815.870933] RBP: ffff88007d3e1ae8 R08: 0000000000000000 R09: 0000000000000000
    [ 815.871078] R10: 0000000000000000 R11: 0000000000000001 R12: ffff88007bfb7e00
    [ 815.871209] R13: 0000000000000005 R14: ffff880079c20c00 R15: ffff880079c20c00
    [ 815.871343] FS: 00007f2e86206700(0000) GS:ffff88007fc00000(0000) knlGS:0000000000000000
    [ 815.871495] CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b
    [ 815.871617] CR2: 0000000000000028 CR3: 000000007ae56000 CR4: 00000000000006f0
    [ 815.871752] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
    [ 815.871902] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
    [ 815.872012] Process stress_test_tty (pid: 27819, threadinfo ffff88007d3e0000, task ffff88007c874530)
    [ 815.872012] Stack:
    [ 815.872012] ffff88007bfb7e00 ffff880079c20c00 ffff88007bfb7e00 0000000000000005
    [ 815.872012] ffff88007d3e1b08 ffffffff81417be7 ffff88007caa9bd8 ffff880079c20800
    [ 815.872012] ffff88007d3e1bc8 ffffffff8140e5f8 0000000000000000 0000000000000000
    [ 815.872012] Call Trace:
    [ 815.872012] [] pty_close+0x157/0x170
    [ 815.872012] [] tty_release+0x138/0x580
    [ 815.872012] [] ? _raw_spin_lock+0x23/0x30
    [ 815.872012] [] ? _raw_spin_unlock+0x1a/0x40
    [ 815.872012] [] ? __mutex_unlock_slowpath+0x48/0x60
    [ 815.872012] [] ptmx_open+0x11f/0x180
    [ 815.872012] [] chrdev_open+0x9b/0x1c0
    [ 815.872012] [] do_dentry_open+0x203/0x290
    [ 815.872012] [] ? cdev_put+0x30/0x30
    [ 815.872012] [] finish_open+0x35/0x50
    [ 815.872012] [] do_last+0x6fe/0xe90
    [ 815.872012] [] ? link_path_walk+0x7f/0x880
    [ 815.872012] [] ? cpuacct_charge+0x75/0x80
    [ 815.872012] [] path_openat+0xbc/0x4e0
    [ 815.872012] [] ? __schedule+0x400/0x7f0
    [ 815.872012] [] ? tty_release+0x496/0x580
    [ 815.872012] [] do_filp_open+0x41/0xa0
    [ 815.872012] [] ? _raw_spin_unlock+0x1a/0x40
    [ 815.872012] [] ? __alloc_fd+0xe9/0x140
    [ 815.872012] [] do_sys_open+0xf4/0x1e0
    [ 815.872012] [] sys_open+0x21/0x30
    [ 815.872012] [] system_call_fastpath+0x16/0x1b
    [ 815.872012] Code: 0f 1f 80 00 00 00 00 45 31 e4 eb d7 0f 0b 90 0f 1f 44 00 00 55 48 89 e5 48 83 ec 20 48 89 5d e8 48 89 fb 4c 89 65 f0 4c 89 6d f8 8b 47 28 48 81 78 58 d1 1c 0$
    [ 815.872012] RIP [] devpts_pty_kill+0x1c/0xa0
    [ 815.872012] RSP
    [ 815.872012] CR2: 0000000000000028
    [ 815.897036] ---[ end trace eadf50b7f34e47d5 ]---

    Fixes this BUG also:

    [ 608.366836] BUG: unable to handle kernel NULL pointer dereference at 0000000000000028
    [ 608.366948] IP: [] devpts_kill_index+0x18/0x70
    [ 608.367050] PGD 7c75b067 PUD 7b919067 PMD 0
    [ 608.367135] Oops: 0000 [#1] PREEMPT SMP
    [ 608.367201] Modules linked in: kvm_intel kvm snd_hda_intel snd_hda_codec snd_hwdep snd_pcm snd_seq_midi snd_rawmidi snd_seq_midi_event microcode snd_seq psmouse snd_timer snd_seq_device serio_raw snd mac_hid soundcore snd_page_alloc rfcomm virtio_balloon parport_pc bnep bluetooth ppdev i2c_piix4 lp parport floppy
    [ 608.367617] CPU 2
    [ 608.367669] Pid: 1918, comm: stress_test_tty Tainted: G W 3.8.0-next-20130125+ttypatch-2-xeon #2 Bochs Bochs
    [ 608.367796] RIP: 0010:[] [] devpts_kill_index+0x18/0x70
    [ 608.367885] RSP: 0018:ffff88007ae41a88 EFLAGS: 00010286
    [ 608.367951] RAX: ffffffff81417e80 RBX: ffff880036472400 RCX: 0000000180400028
    [ 608.368010] RDX: ffff880036470004 RSI: 0000000000000004 RDI: 0000000000000000
    [ 608.368010] RBP: ffff88007ae41a98 R08: 0000000000000000 R09: 0000000000000001
    [ 608.368010] R10: ffffea0001f22e40 R11: ffffffff814151d5 R12: 0000000000000004
    [ 608.368010] R13: ffff880036470000 R14: 0000000000000004 R15: ffff880036472400
    [ 608.368010] FS: 00007ff7a5268700(0000) GS:ffff88007fd00000(0000) knlGS:0000000000000000
    [ 608.368010] CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b
    [ 608.368010] CR2: 0000000000000028 CR3: 000000007a0fd000 CR4: 00000000000006e0
    [ 608.368010] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
    [ 608.368010] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
    [ 608.368010] Process stress_test_tty (pid: 1918, threadinfo ffff88007ae40000, task ffff88003688dc40)
    [ 608.368010] Stack:
    [ 608.368010] ffff880036472400 0000000000000001 ffff88007ae41aa8 ffffffff81417e98
    [ 608.368010] ffff88007ae41ac8 ffffffff8140c42b ffff88007ac73100 ffff88007ac73100
    [ 608.368010] ffff88007ae41b98 ffffffff8140ead5 ffff88007ae41b38 ffff88007ca40e40
    [ 608.368010] Call Trace:
    [ 608.368010] [] pty_unix98_shutdown+0x18/0x20
    [ 608.368010] [] release_tty+0x3b/0xe0
    [ 608.368010] [] __tty_release+0x575/0x5d0
    [ 608.368010] [] ? _raw_spin_lock+0x23/0x30
    [ 608.368010] [] ? _raw_spin_unlock+0x1a/0x40
    [ 608.368010] [] ? __mutex_unlock_slowpath+0x48/0x60
    [ 608.368010] [] tty_open+0x449/0x5f0
    [ 608.368010] [] chrdev_open+0x9b/0x1c0
    [ 608.368010] [] do_dentry_open+0x203/0x290
    [ 608.368010] [] ? cdev_put+0x30/0x30
    [ 608.368010] [] finish_open+0x35/0x50
    [ 608.368010] [] do_last+0x6fe/0xe90
    [ 608.368010] [] ? link_path_walk+0x7f/0x880
    [ 608.368010] [] path_openat+0xbc/0x4e0
    [ 608.368010] [] do_filp_open+0x41/0xa0
    [ 608.368010] [] ? _raw_spin_unlock+0x1a/0x40
    [ 608.368010] [] ? __alloc_fd+0xe9/0x140
    [ 608.368010] [] do_sys_open+0xf4/0x1e0
    [ 608.368010] [] ? _raw_spin_lock+0x23/0x30
    [ 608.368010] [] sys_open+0x21/0x30
    [ 608.368010] [] system_call_fastpath+0x16/0x1b
    [ 608.368010] Code: ec 48 83 c4 10 5b 41 5c 5d c3 66 0f 1f 84 00 00 00 00 00 0f 1f 44 00 00 55 48 89 e5 48 83 ec 10 4c 89 65 f8 41 89 f4 48 89 5d f0 8b 47 28 48 81 78 58 d1 1c 00 00 74 0b 48 8b 05 4b 66 cf 00
    [ 608.368010] RIP [] devpts_kill_index+0x18/0x70
    [ 608.368010] RSP
    [ 608.368010] CR2: 0000000000000028
    [ 608.394153] ---[ end trace afe83b0fb5fbda93 ]---

    Reported-by: Ilya Zykov
    Signed-off-by: Peter Hurley
    Signed-off-by: Greg Kroah-Hartman

    Peter Hurley
     
  • There's no reason kgdb.h itself needs to include the 8250 serial port
    header file. So push it down to the _very_ limited number of individual
    drivers that need the values in that file, and fix up the places where
    people really wanted serial_core.h and platform_device.h.

    Signed-off-by: Greg Kroah-Hartman

    Greg Kroah-Hartman
     
  • It was mistakenly defined to be 24 instead of the next higher number 25.

    Reported-by: Alexander Shishkin
    Cc: Stephen Hurd
    Signed-off-by: Michael Chan
    Cc: stable # 3.8
    Signed-off-by: Greg Kroah-Hartman

    Michael Chan
     
  • The "normal" spin lock that guards the N_TTY line discipline read section
    is replaced by a raw spin lock.

    On a PREEMP_RT system this prevents unwanted scheduling overhead when data is
    read at the same time as data is being received: while RX IRQ threaded handling
    is busy a TTY read call is performed from a RT priority > threaded IRQ priority.
    The read call tries to take the read section spin lock (held by the threaded
    IRQ) which blocks and causes a context switch to/from the threaded IRQ handler
    until the spin lock is unlocked.

    Signed-off-by: Ivo Sieben
    Reviewed-by: Thomas Gleixner
    Signed-off-by: Greg Kroah-Hartman

    Ivo Sieben
     
  • See https://bugzilla.redhat.com/show_bug.cgi?id=904907
    read command causes bash to abort with double free or corruption (out).

    A simple test-case from Roman:

    // Compile the reproducer and send sigchld ti that process.
    // EINTR occurs even if SA_RESTART flag is set.

    void handler(int sig)
    {
    }

    main()
    {
    struct sigaction act;
    act.sa_handler = handler;
    act.sa_flags = SA_RESTART;
    sigaction (SIGCHLD, &act, 0);
    struct termio ttp;
    ioctl(0, TCGETA, &ttp);
    while(1)
    {
    if (ioctl(0, TCSETAW, ttp) < 0)
    {
    if (errno == EINTR)
    {
    fprintf(stderr, "BUG!"); return(1);
    }
    }
    }
    }

    Change set_termios/set_termiox to return -ERESTARTSYS to fix this
    particular problem.

    I didn't dare to change other EINTR's in drivers/tty/, but they look
    equally wrong.

    Reported-by: Roman Rakus
    Reported-by: Lingzhu Xiang
    Signed-off-by: Oleg Nesterov
    Cc: Jiri Slaby
    Cc: stable
    Signed-off-by: Greg Kroah-Hartman

    Oleg Nesterov
     

30 Jan, 2013

5 commits

  • This change fixes a deadlock when the multiplexer is closed while there
    are still client side ports open.

    When the multiplexer is closed and there are active tty's it tries to
    close them with tty_vhangup. This has a problem though, because
    tty_vhangup needs the tty_lock. This patch changes it to unlock the
    tty_lock before attempting the hangup and relocks afterwards. The
    additional call to tty_port_tty_set is needed because otherwise the
    port stays active because of the reference counter.

    This change also exposed another problem that other code paths don't
    expect that the multiplexer could have been closed. This patch also adds
    checks for these cases in the gsmtty_ class of function that could be
    called.

    The documentation explicitly states that "first close all virtual ports
    before closing the physical port" but we've found this to not always
    reality in our field situations. The GPRS / UTMS modem sometimes crashes
    and needs a power cycle in that case which means cleanly shutting down
    everything is not always possible. This change makes it much more robust
    for our situation where at least the system is recoverable with this patch
    and doesn't hang in a deadlock situation inside the kernel.

    The patch is against the long term support kernel (3.4.27) and should
    apply cleanly to more recent branches. Tested with a Telit GE864-QUADV2
    and Telit HE910 modem.

    Signed-off-by: Dirkjan Bussink
    Cc: stable
    Signed-off-by: Greg Kroah-Hartman

    Dirkjan Bussink
     
  • The MIPS based Ralink WiSoC platform has 1 or more 8250 compatible serial cores.
    To make them work we require the same quirks that are used by AU1x00.

    Signed-off-by: John Crispin
    Signed-off-by: Greg Kroah-Hartman

    John Crispin
     
  • Dan Carpenter noticed a missing set of parentheses
    around a multiple field addition.

    https://lkml.org/lkml/2013/1/27/166

    His original commit message:

    There is a kind of precedence problem here, but it doesn't affect how
    the code works because ->serial_signals is unsigned char. We want to
    clear two flags here.

    #define SerialSignal_RTS 0x20 /* Request to Send */
    #define SerialSignal_DTR 0x80 /* Data Terminal Ready */

    Without the parenthesis then it does:

    info->serial_signals &= 0x5f;

    With the parenthesis it does:

    info->serial_signals &= 0xffffff5f;

    info->serial_signals is an unsigned char so the two statements are
    equivalent, but it's cleaner to add the parenthesis. In other dtr_rts()
    functions the parenthesis are there so this makes it more consistent.

    Other changes:

    Convert all + uses to | for these bit operations.

    Reorder the multiple fields for consistency.
    Update the comments too.

    Reported-by: Dan Carpenter
    Signed-off-by: Joe Perches
    Signed-off-by: Greg Kroah-Hartman

    Joe Perches
     
  • Add support for later SUNIX (TIMEDIA) Universal PCI Single and Multi-Port
    Communications Boards.

    These boards have PCI Vendor ID 1fd4 with device ID 1999 but otherwise
    appear to be the same as the TIMEDIA boards already supported by 8250_pci
    and parport_serial.

    Tested with:

    a. the two port serial board part number SER5037A,
    b. the two port serial and one port parallel board part number
    MIO5079A.

    Signed-off-by: Stephen Chivers
    Signed-off-by: Greg Kroah-Hartman

    Stephen Chivers
     
  • This reverts commit 58f82be334ede87aa6ff6fa1afdb05552be907be.

    This was fixed by a previous patch already.

    Signed-off-by: Greg Kroah-Hartman

    Greg Kroah-Hartman
     

26 Jan, 2013

8 commits

  • This resolves a number of tty driver merge issues found in linux-next

    Signed-off-by: Greg Kroah-Hartman

    Greg Kroah-Hartman
     
  • Linus Torvalds
     
  • Pull btrfs fixes from Chris Mason:
    "It turns out that we had two crc bugs when running fsx-linux in a
    loop. Many thanks to Josef, Miao Xie, and Dave Sterba for nailing it
    all down. Miao also has a new OOM fix in this v2 pull as well.

    Ilya fixed a regression Liu Bo found in the balance ioctls for pausing
    and resuming a running balance across drives.

    Josef's orphan truncate patch fixes an obscure corruption we'd see
    during xfstests.

    Arne's patches address problems with subvolume quotas. If the user
    destroys quota groups incorrectly the FS will refuse to mount.

    The rest are smaller fixes and plugs for memory leaks."

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs: (30 commits)
    Btrfs: fix repeated delalloc work allocation
    Btrfs: fix wrong max device number for single profile
    Btrfs: fix missed transaction->aborted check
    Btrfs: Add ACCESS_ONCE() to transaction->abort accesses
    Btrfs: put csums on the right ordered extent
    Btrfs: use right range to find checksum for compressed extents
    Btrfs: fix panic when recovering tree log
    Btrfs: do not allow logged extents to be merged or removed
    Btrfs: fix a regression in balance usage filter
    Btrfs: prevent qgroup destroy when there are still relations
    Btrfs: ignore orphan qgroup relations
    Btrfs: reorder locks and sanity checks in btrfs_ioctl_defrag
    Btrfs: fix unlock order in btrfs_ioctl_rm_dev
    Btrfs: fix unlock order in btrfs_ioctl_resize
    Btrfs: fix "mutually exclusive op is running" error code
    Btrfs: bring back balance pause/resume logic
    btrfs: update timestamps on truncate()
    btrfs: fix btrfs_cont_expand() freeing IS_ERR em
    Btrfs: fix a bug when llseek for delalloc bytes behind prealloc extents
    Btrfs: fix off-by-one in lseek
    ...

    Linus Torvalds
     
  • Fix compilation error, by adding the correct header file
    for Tegra clocks.

    Signed-off-by: Venu Byravarasu
    Reviewed-by: Stephen Warren
    Signed-off-by: Greg Kroah-Hartman

    Venu Byravarasu
     
  • 1) add clk_enable/disable in serial_pxa_console_write()
    2) add clk_prepare() to follow common clock driver

    Signed-off-by: Yi Zhang
    Signed-off-by: Greg Kroah-Hartman

    Yi Zhang
     
  • When PCH_UART_CONSOLE and SERIAL_CORE_CONSOLE is not set neither, the
    uart_port will have no 'sysrq' member hence their will need a '#ifdef'
    in pch_uart.c to handle the case, otherwise we'll see compile error
    like this:

    CC [M] drivers/tty/serial/pch_uart.o
    drivers/tty/serial/pch_uart.c: In function 'pch_uart_hal_read':
    drivers/tty/serial/pch_uart.c:572:11: error: 'struct uart_port' has no member named 'sysrq'
    make[4]: *** [drivers/tty/serial/pch_uart.o] Error 1

    Reported-by: Randy Dunlap
    CC: Stephen Rothwell
    Signed-off-by: Liang Li
    Acked-by: Randy Dunlap
    Signed-off-by: Greg Kroah-Hartman

    Liang Li
     
  • When the tty input buffer is full and thereby throttled,
    flushing/resetting the read buffer should unthrottle to allow more
    data to be received.

    Signed-off-by: Karthik Manamcheri
    Signed-off-by: Greg Kroah-Hartman

    Karthik Manamcheri
     
  • Sorry forgot to merge this in the original submission. Resync
    with the tty tree changes moving the buffers into the tty_port

    Signed-off-by: Alan Cox
    Signed-off-by: Greg Kroah-Hartman

    Alan Cox
     

25 Jan, 2013

3 commits

  • Pull cifs fixes from Steve French:
    "Two small cifs fixes"

    * 'for-next' of git://git.samba.org/sfrench/cifs-2.6:
    fs/cifs/cifs_dfs_ref.c: fix potential memory leakage
    cifs: fix srcip_matches() for ipv6

    Linus Torvalds
     
  • Pull kvm fixlet from Marcelo Tosatti.

    * git://git.kernel.org/pub/scm/virt/kvm/kvm:
    KVM: PPC: Emulate dcbf

    Linus Torvalds
     
  • Pull ARM fixes from Russell King:
    "A number of fixes:

    Patrik found a problem with preempt counting in the VFP assembly
    functions which can cause the preempt count to be upset.

    Nicolas fixed a problem with the parsing of the DT when it straddles a
    1MB boundary.

    Subhash Jadavani reported a problem with sparsemem and our highmem
    support for cache maintanence for DMA areas, and TI found a bug in
    their strongly ordered memory mapping type.

    Also, three fixes by way of Will Deacon's tree from Dave Martin for
    instruction compatibility and Marc Zyngier to fix hypervisor boot mode
    issues."

    * 'fixes' of git://git.linaro.org/people/rmk/linux-arm:
    ARM: 7629/1: mm: Fix missing XN flag for for MT_MEMORY_SO
    ARM: DMA: Fix struct page iterator in dma_cache_maint() to work with sparsemem
    ARM: 7628/1: head.S: map one extra section for the ATAG/DTB area
    ARM: 7627/1: Predicate preempt logic on PREEMP_COUNT not PREEMPT alone
    ARM: virt: simplify __hyp_stub_install epilog
    ARM: virt: boot secondary CPUs through the right entry point
    ARM: virt: Avoid bx instruction for compatibility with <=ARMv4

    Linus Torvalds