08 Jul, 2013

2 commits


06 Jun, 2013

2 commits


10 May, 2013

2 commits

  • Pull xtensa updates from Chris Zankel:
    "Support for the latest MMU architecture that allows for a larger
    accessible memory region, and various bug-fixes"

    * tag 'xtensa-next-20130508' of git://github.com/czankel/xtensa-linux:
    xtensa: Switch to asm-generic/linkage.h
    xtensa: fix redboot load address
    xtensa: ISS: fix timer_lock usage in rs_open
    xtensa: disable IRQs while IRQ handler is running
    xtensa: enable lockdep support
    xtensa: fix arch_irqs_disabled_flags implementation
    xtensa: add irq flags trace support
    xtensa: provide custom CALLER_ADDR* implementations
    xtensa: add stacktrace support
    xtensa: clean up stpill_registers
    xtensa: don't use a7 in simcalls
    xtensa: don't attempt to use unconfigured timers
    xtensa: provide default platform_pcibios_init implementation
    xtensa: remove KCORE_ELF again
    xtensa: document MMUv3 setup sequence
    xtensa: add MMU v3 support
    xtensa: fix ibreakenable register update
    xtensa: fix oprofile building as module

    Linus Torvalds
     
  • arch/xtensa/platforms/iss/simdisk.c: In function 'proc_read_simdisk':
    arch/xtensa/platforms/iss/simdisk.c:220:12: warning: initialization discards 'const' qualifier from pointer target type [enabled by default]
    arch/xtensa/platforms/iss/simdisk.c: In function 'proc_write_simdisk':
    arch/xtensa/platforms/iss/simdisk.c:241:38: error: 'buffer' undeclared (first use in this function)
    arch/xtensa/platforms/iss/simdisk.c:241:38: note: each undeclared identifier is reported only once for each function it appears in

    Introduced by commit a69755b187749e7cc020e17127a54f395aea4eaa ("xtensa
    simdisk: switch to proc_create_data()")

    Signed-off-by: Geert Uytterhoeven
    Signed-off-by: Al Viro

    Geert Uytterhoeven
     

09 May, 2013

4 commits

  • This fixes the following lockdep splat:

    [ 66.460000] =================================
    [ 66.460000] [ INFO: inconsistent lock state ]
    [ 66.460000] 3.9.0-rc5-00161-ga48dd49 #4 Not tainted
    [ 66.460000] ---------------------------------
    [ 66.460000] inconsistent {SOFTIRQ-ON-W} -> {IN-SOFTIRQ-W} usage.
    [ 66.460000] swapper/1 [HC0[0]:SC1[1]:HE1:SE0] takes:
    [ 66.460000] (timer_lock){+.?...}, at: [] rs_poll+0x12/0xdc
    [ 66.460000] {SOFTIRQ-ON-W} state was registered at:
    [ 66.460000] [] lock_acquire+0xec/0x13c
    [ 66.460000] [] _raw_spin_lock+0x3a/0x84
    [ 66.460000] [] rs_open+0x18/0x58
    [ 66.460000] [] tty_open+0x262/0x3cc
    [ 66.460000] [] chrdev_open+0x8c/0xe0
    [ 66.460000] [] do_dentry_open$isra$16+0x10e/0x190
    [ 66.460000] [] finish_open+0x39/0x48
    [ 66.460000] [] do_last$isra$34+0x6c4/0x824
    [ 66.460000] [] path_openat+0x66/0x310
    [ 66.460000] [] do_filp_open+0x16/0x44
    [ 66.460000] [] do_sys_open+0xd5/0x13c
    [ 66.460000] [] sys_open+0x12/0x18
    [ 66.460000] [] kernel_init_freeable+0xe4/0x12c
    [ 66.460000] [] kernel_init+0xc/0x9c
    [ 66.460000] [] ret_from_kernel_thread+0x8/0xc
    [ 66.460000] irq event stamp: 132542
    [ 66.460000] hardirqs last enabled at (132542): [] _raw_spin_unlock_irq+0x30/0x44
    [ 66.460000] hardirqs last disabled at (132541): [] _raw_spin_lock_irq+0xe/0x8c
    [ 66.460000] softirqs last enabled at (132234): [] __do_softirq+0x216/0x2a4
    [ 66.460000] softirqs last disabled at (132539): [] irq_exit+0x38/0x40
    [ 66.460000]
    [ 66.460000] other info that might help us debug this:
    [ 66.460000] Possible unsafe locking scenario:
    [ 66.460000]
    [ 66.460000] CPU0
    [ 66.460000] ----
    [ 66.460000] lock(timer_lock);
    [ 66.460000]
    [ 66.460000] lock(timer_lock);
    [ 66.460000]
    [ 66.460000] *** DEADLOCK ***
    [ 66.460000]
    [ 66.460000] 1 lock held by swapper/1:
    [ 66.460000] #0: (((&serial_timer))){+.-...}, at: [] call_timer_fn+0x0/0x1f0
    [ 66.460000]
    Stack: d7c2fac0 00000018 00000004 00000001 d7c2faa0 00000004 00000006 d7c2fa90
    9003e87c d7c2fae0 d7c30000 d025a87c 00000001 0000000f 00000000 d7c2fac0
    9004005d d7c2fb10 d7c30000 d7c30338 00000001 00000001 00000000 d7c30338
    [ 66.460000] Call Trace:
    [ 66.460000] [] print_usage_bug$part$26+0x1c3/0x1c8
    [ 66.460000] [] mark_lock+0x2b4/0x440
    [ 66.460000] [] __lock_acquire+0x54d/0x16c4
    [ 66.460000] [] lock_acquire+0xec/0x13c
    [ 66.460000] [] _raw_spin_lock+0x3a/0x84
    [ 66.460000] [] rs_poll+0x12/0xdc
    [ 66.460000] [] call_timer_fn+0xbe/0x1f0
    [ 66.460000] [] run_timer_softirq+0x198/0x1f4
    [ 66.460000] [] __do_softirq+0x114/0x2a4
    [ 66.460000] [] irq_exit+0x38/0x40
    [ 66.460000] [] do_IRQ+0x44/0x48
    [ 66.460000] [] do_interrupt+0x4c/0x54
    [ 66.460000] [] common_exception_return+0x0/0x5c
    [ 66.460000] [] free_pcppages_bulk+0x254/0x308
    [ 66.460000]

    Signed-off-by: Max Filippov
    Signed-off-by: Chris Zankel

    Max Filippov
     
  • To support FRAME_POINTER avoid using a7 in __simc (none of the existing
    simcalls needs it). Replace calls to __simc with more specific
    simc_read, simc_write and simc_lseek calls.

    Signed-off-by: Max Filippov
    Signed-off-by: Chris Zankel

    Max Filippov
     
  • This fixes the following build error:

    arch/xtensa/kernel/built-in.o:(.init.literal+0xe8): undefined reference
    to `platform_pcibios_init'
    arch/xtensa/kernel/built-in.o: In function `setup_arch':
    (.init.text+0x20e): undefined reference to `platform_pcibios_init'

    and allows platform to omit definition of platform_pcibios_init if it's
    empty.

    Signed-off-by: Max Filippov
    Signed-off-by: Chris Zankel

    Max Filippov
     
  • Only set the register when there is at least one ibreak register,
    otherwise the build fails:
    arch/xtensa/kernel/head.S:105: Error: invalid register 'ibreakenable'
    for 'wsr' instruction
    arch/xtensa/platforms/iss/setup.c:67: Error: invalid register
    'ibreakenable' for 'wsr' instruction

    Signed-off-by: Max Filippov
    Signed-off-by: Chris Zankel

    Max Filippov
     

07 May, 2013

1 commit


05 May, 2013

1 commit


10 Apr, 2013

2 commits


27 Feb, 2013

1 commit

  • Pull xtensa update from Chris Zankel:
    "Added features:
    - add support for thread local storage (TLS)

    - add accept4 and finit_module syscalls

    - support medium-priority interrupts

    - add support for dc232c processor variant

    - support file-base simulated disk for ISS simulator

    Bug fixes:

    - fix return values returned by the str[n]cmp functions

    - avoid mmap cache aliasing

    - fix handling of 'windowed registers' in ptrace"

    * tag 'xtensa-next-20130225' of git://github.com/czankel/xtensa-linux:
    xtensa: add accept4 syscall
    xtensa: add support for TLS
    xtensa: add missing include asm/uaccess.h to checksum.h
    xtensa: do not enable GENERIC_GPIO by default
    xtensa: complete ptrace handling of register windows
    xtensa: add support for oprofile
    xtensa: move spill_registers to traps.h
    xtensa: ISS: add host file-based simulated disk
    xtensa: fix str[n]cmp return value
    xtensa: avoid mmap cache aliasing
    xtensa: add finit_module syscall
    xtensa: pull signal definitions from signal-defs.h
    xtensa: fix ipc_parse_version selection
    xtensa: dispatch medium-priority interrupts
    xtensa: Add config files for Diamond 233L - Rev C processor variant
    xtensa: use new common dtc rule
    xtensa: rename prom_update_property to of_update_property

    Linus Torvalds
     

24 Feb, 2013

2 commits

  • Simdisk is a block device that maps to a file in the host file system.
    It is usable for testing in the simulated environment, like xt-sim or
    QEMU. Device binding to host file may be changed at runtime via proc
    interface provided the device is not in use. Number of block devices
    and initial binding to host files is controlled via kernel/module
    parameters, with defaults specified in the kernel configuration.

    Signed-off-by: Victor Prupis
    Signed-off-by: Max Filippov
    Signed-off-by: Chris Zankel

    Victor Prupis
     
  • This rename happened in 79d1c71 powerpc+of: Rename the drivers/of prom_*
    functions to of_*.

    Signed-off-by: Max Filippov
    Signed-off-by: Chris Zankel

    Max Filippov
     

16 Jan, 2013

2 commits

  • Now, we start converting tty buffer functions to actually use
    tty_port. This will allow us to get rid of the need of tty in many
    call sites. Only tty_port will needed and hence no more
    tty_port_tty_get in those paths.

    Now, the one where most of tty_port_tty_get gets removed:
    tty_flip_buffer_push.

    IOW we also closed all the races in drivers not using tty_port_tty_get
    at all yet.

    Also we move tty_flip_buffer_push declaration from include/linux/tty.h
    to include/linux/tty_flip.h to all others while we are changing it
    anyway.

    Signed-off-by: Jiri Slaby
    Signed-off-by: Greg Kroah-Hartman

    Jiri Slaby
     
  • Now, we start converting tty buffer functions to actually use
    tty_port. This will allow us to get rid of the need of tty in many
    call sites. Only tty_port will needed and hence no more
    tty_port_tty_get in those paths.

    tty_insert_flip_char is the next one to proceed. This one is used all
    over the code, so the patch is huge.

    Signed-off-by: Jiri Slaby
    Signed-off-by: Greg Kroah-Hartman

    Jiri Slaby
     

19 Dec, 2012

5 commits


16 Nov, 2012

1 commit

  • After commit "TTY: move tty buffers to tty_port", the tty buffers are
    not freed in some drivers. This is because tty_port_destructor is not
    called whenever a tty_port is freed. This was an assumption I counted
    with but was unfortunately untrue. So fix the drivers to fulfil this
    assumption.

    To be sure, the TTY buffers (and later some stuff) are gone along with
    the tty_port, we have to call tty_port_destroy at tear-down places.
    This is mostly where the structure containing a tty_port is freed.
    This patch does exactly that -- put tty_port_destroy at those places.

    Signed-off-by: Jiri Slaby
    Signed-off-by: Greg Kroah-Hartman

    Jiri Slaby
     

16 Oct, 2012

3 commits

  • - reference SRs by names where possible, not by numbers;
    - get rid of __stringify around SR names where possible;
    - remove unneeded SR names from asm/regs.h;
    - add SREG_ prefix to remaining SR names;

    Signed-off-by: Max Filippov
    Signed-off-by: Chris Zankel

    Max Filippov
     
  • ISS serial console prints garbage instead of symbols printed via
    rs_put_char. gcc optimizes away putting prined symbol into memory buffer
    because there's no evidence that the buffer is used afterwards.

    Make rs_put_char and rs_write use simc_write that has explicit wmb.

    Signed-off-by: Max Filippov
    Signed-off-by: Chris Zankel

    Max Filippov
     
  • Simcalls that take memory buffer definitely need wmb or rmb to make sure
    gcc doesn't optimize away code that fills the buffer.

    Signed-off-by: Max Filippov
    Signed-off-by: Chris Zankel

    Max Filippov
     

09 Oct, 2012

1 commit

  • Pull Xtensa patchset from Chris Zankel:
    "The Xtensa tree has been broken for some time now, and this patchset
    brings it back to life. It has been part of the linux-next tree for
    some time.

    Most changes are inside the xtensa subdirectory; the other changes
    mostly add another rule to already existing #ifdefs to exclude Xtensa,
    where required. The only 'common' change is to add two more sections
    ('.xt.prop' and '.xt.lit') to the white list in modpost."

    * tag 'xtensa-next-20121008' of git://github.com/czankel/xtensa-linux: (27 commits)
    xtensa: Setup CROSS_COMPILE at the top
    xtensa: drop CONFIG_EMBEDDED_RAMDISK
    xtensa: fix TIOCGSERIAL and TIOCSSERIAL definitions
    xtensa: provide dummy gcc intrinsics
    xtensa: add missing symbol exports
    parport: disable for xtensa arch
    xtensa: rename MISC SR definition to avoid name clashes
    hisax: disable build for big-endian xtensa
    xtensa: fix CODA build
    xtensa: fix parallel make
    xtensa: ISS: drop unused io.c
    xtensa: ISS: exit simulator in case of halt or poweroff
    xtensa: ISS: change keyboard polling rate
    xtensa: ISS: add platform_pcibios_init
    xtensa: ISS: add dummy serial.h for ISS platform
    xtensa: change default platform clock frequency to 10MHz
    xtensa: add ARCH_WANT_OPTIONAL_GPIOLIB to xtensa config
    xtensa: set NO_IOPORT to 'n' by default
    xtensa: adopt generic io routines
    xtensa: fix ioremap
    ...

    Linus Torvalds
     

04 Oct, 2012

7 commits


14 Aug, 2012

1 commit

  • So now for those drivers that can use neither tty_port_install nor
    tty_port_register_driver but still have tty_port available before
    tty_register_driver we use newly added tty_port_link_device.

    The rest of the drivers that still do not provide tty_struct
    tty_port link will have to be converted to implement
    tty->ops->install.

    Signed-off-by: Jiri Slaby
    Acked-by: Alan Cox
    Signed-off-by: Greg Kroah-Hartman

    Jiri Slaby
     

09 Mar, 2012

3 commits