12 Sep, 2016

1 commit

  • On lubbock board, the probe of the driver crashes by dereferencing very
    early a platform_data structure which is not set, in
    pxa2xx_configure_sockets().

    The stack fixed is :
    [ 0.244353] SA1111 Microprocessor Companion Chip: silicon revision 1, metal revision 1
    [ 0.256321] sa1111 sa1111: Providing IRQ336-390
    [ 0.340899] clocksource: Switched to clocksource oscr0
    [ 0.472263] Unable to handle kernel NULL pointer dereference at virtual address 00000004
    [ 0.480469] pgd = c0004000
    [ 0.483432] [00000004] *pgd=00000000
    [ 0.487105] Internal error: Oops: f5 [#1] ARM
    [ 0.491497] Modules linked in:
    [ 0.494650] CPU: 0 PID: 1 Comm: swapper Not tainted 4.8.0-rc3-00080-g1aaa68426f0c-dirty #2068
    [ 0.503229] Hardware name: Intel DBPXA250 Development Platform (aka Lubbock)
    [ 0.510344] task: c3e42000 task.stack: c3e44000
    [ 0.514984] PC is at pxa2xx_configure_sockets+0x4/0x24 (drivers/pcmcia/pxa2xx_base.c:227)
    [ 0.520193] LR is at pcmcia_lubbock_init+0x1c/0x38
    [ 0.525079] pc : [] lr : [] psr: a0000053
    [ 0.525079] sp : c3e45e70 ip : 100019ff fp : 00000000
    [ 0.536651] r10: c0828900 r9 : c0434838 r8 : 00000000
    [ 0.541953] r7 : c0820700 r6 : c0857b30 r5 : c3ec1400 r4 : c0820758
    [ 0.548549] r3 : 00000000 r2 : 0000000c r1 : c3c09c40 r0 : c3ec1400
    [ 0.555154] Flags: NzCv IRQs on FIQs off Mode SVC_32 ISA ARM Segment none
    [ 0.562450] Control: 0000397f Table: a0004000 DAC: 00000053
    [ 0.568257] Process swapper (pid: 1, stack limit = 0xc3e44190)
    [ 0.574154] Stack: (0xc3e45e70 to 0xc3e46000)
    [ 0.578610] 5e60: c4849800 00000000 c3ec1400 c024769c
    [ 0.586928] 5e80: 00000000 c3ec140c c3c0ee0c c3ec1400 c3ec1434 c020c410 c3ec1400 c3ec1434
    [ 0.595244] 5ea0: c0820700 c080b408 c0828900 c020c5f8 00000000 c0820700 c020c578 c020ac5c
    [ 0.603560] 5ec0: c3e687cc c3e71e10 c0820700 00000000 c3c02de0 c020bae4 c03c62f7 c03c62f7
    [ 0.611872] 5ee0: c3e68780 c0820700 c042e034 00000000 c043c440 c020cdec c080b408 00000005
    [ 0.620188] 5f00: c042e034 c00096c0 c0034440 c01c730c 20000053 ffffffff 00000000 00000000
    [ 0.628502] 5f20: 00000000 c3ffcb87 c3ffcb90 c00346ac c3e66ba0 c03f7914 00000092 00000005
    [ 0.636811] 5f40: 00000005 c03f847c 00000091 c03f847c 00000000 00000005 c0434828 00000005
    [ 0.645125] 5f60: c043482c 00000092 c043c440 c0828900 c0434838 c0418d2c 00000005 00000005
    [ 0.653430] 5f80: 00000000 c041858c 00000000 c032e9f0 00000000 00000000 00000000 00000000
    [ 0.661729] 5fa0: 00000000 c032e9f8 00000000 c000f0f0 00000000 00000000 00000000 00000000
    [ 0.670020] 5fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
    [ 0.678311] 5fe0: 00000000 00000000 00000000 00000000 00000013 00000000 00000000 00000000
    [ 0.686673] (pxa2xx_configure_sockets) from pcmcia_lubbock_init (/drivers/pcmcia/sa1111_lubbock.c:161)
    [ 0.696026] (pcmcia_lubbock_init) from pcmcia_probe (/drivers/pcmcia/sa1111_generic.c:213)
    [ 0.704358] (pcmcia_probe) from driver_probe_device (/drivers/base/dd.c:378 /drivers/base/dd.c:499)
    [ 0.712848] (driver_probe_device) from __driver_attach (/./include/linux/device.h:983 /drivers/base/dd.c:733)
    [ 0.721414] (__driver_attach) from bus_for_each_dev (/drivers/base/bus.c:313)
    [ 0.729723] (bus_for_each_dev) from bus_add_driver (/drivers/base/bus.c:708)
    [ 0.738036] (bus_add_driver) from driver_register (/drivers/base/driver.c:169)
    [ 0.746185] (driver_register) from do_one_initcall (/init/main.c:778)
    [ 0.754561] (do_one_initcall) from kernel_init_freeable (/init/main.c:843 /init/main.c:851 /init/main.c:869 /init/main.c:1016)
    [ 0.763409] (kernel_init_freeable) from kernel_init (/init/main.c:944)
    [ 0.771660] (kernel_init) from ret_from_fork (/arch/arm/kernel/entry-common.S:119)
    [ 0.779347] Code: c03c6305 c03c631e c03c632e e5903048 (e993000c)
    All code
    ========
    0: c03c6305 eorsgt r6, ip, r5, lsl #6
    4: c03c631e eorsgt r6, ip, lr, lsl r3
    8: c03c632e eorsgt r6, ip, lr, lsr #6
    c: e5903048 ldr r3, [r0, #72] ; 0x48
    10:* e993000c ldmib r3, {r2, r3}
    Signed-off-by: Russell King

    Robert Jarzmik
     

03 Sep, 2015

3 commits


20 Oct, 2014

1 commit


21 Sep, 2012

1 commit

  • In case of error, the function clk_get() returns ERR_PTR()
    and never returns NULL pointer. The NULL test in the error
    handling should be replaced with IS_ERR().

    dpatch engine is used to auto generated this patch.
    (https://github.com/weiyj/dpatch)

    Signed-off-by: Wei Yongjun
    Acked-by: Eric Miao
    Signed-off-by: Haojian Zhuang

    Wei Yongjun
     

29 Mar, 2012

2 commits

  • …m/linux/kernel/git/dhowells/linux-asm_system

    Pull "Disintegrate and delete asm/system.h" from David Howells:
    "Here are a bunch of patches to disintegrate asm/system.h into a set of
    separate bits to relieve the problem of circular inclusion
    dependencies.

    I've built all the working defconfigs from all the arches that I can
    and made sure that they don't break.

    The reason for these patches is that I recently encountered a circular
    dependency problem that came about when I produced some patches to
    optimise get_order() by rewriting it to use ilog2().

    This uses bitops - and on the SH arch asm/bitops.h drags in
    asm-generic/get_order.h by a circuituous route involving asm/system.h.

    The main difficulty seems to be asm/system.h. It holds a number of
    low level bits with no/few dependencies that are commonly used (eg.
    memory barriers) and a number of bits with more dependencies that
    aren't used in many places (eg. switch_to()).

    These patches break asm/system.h up into the following core pieces:

    (1) asm/barrier.h

    Move memory barriers here. This already done for MIPS and Alpha.

    (2) asm/switch_to.h

    Move switch_to() and related stuff here.

    (3) asm/exec.h

    Move arch_align_stack() here. Other process execution related bits
    could perhaps go here from asm/processor.h.

    (4) asm/cmpxchg.h

    Move xchg() and cmpxchg() here as they're full word atomic ops and
    frequently used by atomic_xchg() and atomic_cmpxchg().

    (5) asm/bug.h

    Move die() and related bits.

    (6) asm/auxvec.h

    Move AT_VECTOR_SIZE_ARCH here.

    Other arch headers are created as needed on a per-arch basis."

    Fixed up some conflicts from other header file cleanups and moving code
    around that has happened in the meantime, so David's testing is somewhat
    weakened by that. We'll find out anything that got broken and fix it..

    * tag 'split-asm_system_h-for-linus-20120328' of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-asm_system: (38 commits)
    Delete all instances of asm/system.h
    Remove all #inclusions of asm/system.h
    Add #includes needed to permit the removal of asm/system.h
    Move all declarations of free_initmem() to linux/mm.h
    Disintegrate asm/system.h for OpenRISC
    Split arch_align_stack() out from asm-generic/system.h
    Split the switch_to() wrapper out of asm-generic/system.h
    Move the asm-generic/system.h xchg() implementation to asm-generic/cmpxchg.h
    Create asm-generic/barrier.h
    Make asm-generic/cmpxchg.h #include asm-generic/cmpxchg-local.h
    Disintegrate asm/system.h for Xtensa
    Disintegrate asm/system.h for Unicore32 [based on ver #3, changed by gxt]
    Disintegrate asm/system.h for Tile
    Disintegrate asm/system.h for Sparc
    Disintegrate asm/system.h for SH
    Disintegrate asm/system.h for Score
    Disintegrate asm/system.h for S390
    Disintegrate asm/system.h for PowerPC
    Disintegrate asm/system.h for PA-RISC
    Disintegrate asm/system.h for MN10300
    ...

    Linus Torvalds
     
  • Remove all #inclusions of asm/system.h preparatory to splitting and killing
    it. Performed with the following command:

    perl -p -i -e 's!^#\s*include\s*.*\n!!' `grep -Irl '^#\s*include\s*' *`

    Signed-off-by: David Howells

    David Howells
     

24 Mar, 2012

1 commit

  • Pull #3 ARM updates from Russell King:
    "This adds gpio support to soc_common, allowing an amount of code to be
    deleted from each PCMCIA socket driver for the PXA/SA11x0 SoCs."

    * 'pcmcia' of git://git.linaro.org/people/rmk/linux-arm:
    PCMCIA: sa1111: rename sa1111 socket drivers to have sa1111_ prefix.
    PCMCIA: make lubbock socket driver part of sa1111_cs
    PCMCIA: add Kconfig control for building sa11xx_base.c
    PCMCIA: sa1111: jornada720: no need to disable IRQs around sa1111_set_io
    PCMCIA: sa1111: pass along sa1111_pcmcia_configure_socket() failure code
    PCMCIA: soc_common: remove explicit wrprot initialization in socket drivers
    PCMCIA: soc_common: remove soc_pcmcia_*_irqs functions
    PCMCIA: sa11x0: h3600: convert to use new irq/gpio management
    PCMCIA: sa11x0: simpad: convert to use new irq/gpio management
    PCMCIA: sa11x0: shannon: convert to use new irq/gpio management
    PCMCIA: sa11x0: nanoengine: convert reset handling to use GPIO subsystem
    PCMCIA: sa11x0: nanoengine: convert to use new irq/gpio management
    PCMCIA: sa11x0: cerf: convert reset handling to use GPIO subsystem
    PCMCIA: sa11x0: cerf: convert to use new irq/gpio management
    PCMCIA: sa11x0: assabet: convert to use new irq/gpio management
    PCMCIA: sa1111: use new per-socket irq/gpio infrastructure
    PCMCIA: pxa: convert PXA socket drivers to use new irq/gpio management
    PCMCIA: soc_common: add GPIO support for card status signals
    PCMCIA: soc_common: move common initialization into soc_common

    Linus Torvalds
     

16 Feb, 2012

1 commit

  • If pxa2xx_drv_pcmcia_add_one fails, it will go to err1 error path.
    Add a missing clk_put in the error path.

    Checking the ret value after the for loop is redundant, it is always false.
    Thus remove the redundant checking.

    Signed-off-by: Axel Lin
    Acked-by: Eric Miao
    Acked-by: Marek Vasut
    Signed-off-by: Haojian Zhuang

    Axel Lin
     

27 Jan, 2012

1 commit


06 Nov, 2011

1 commit


19 Feb, 2011

1 commit

  • After 2.6.34 changes, __pxa2xx_drv_pcmcia_probe() was replaced by
    sa1111_pcmcia_add(). That unfortunately means that configure_sockets()
    is not called, leading to MECR not being set properly, leading to
    strange crashes.

    Tested on pxa255+sa1111, I do not have lubbock board nearby. Perhaps
    cleaner solution exists?

    Signed-off-by: Pavel Machek
    Signed-off-by: Dominik Brodowski

    Pavel Machek
     

20 Dec, 2010

1 commit


16 Dec, 2010

2 commits


07 Aug, 2010

1 commit

  • * git://git.kernel.org/pub/scm/linux/kernel/git/brodo/pcmcia-2.6:
    pcmcia: avoid buffer overflow in pcmcia_setup_isa_irq
    pcmcia: do not request windows if you don't need to
    pcmcia: insert PCMCIA device resources into resource tree
    pcmcia: export resource information to sysfs
    pcmcia: use struct resource for PCMCIA devices, part 2
    pcmcia: remove memreq_t
    pcmcia: move local definitions out of include/pcmcia/cs.h
    pcmcia: do not use io_req_t when calling pcmcia_request_io()
    pcmcia: do not use io_req_t after call to pcmcia_request_io()
    pcmcia: use struct resource for PCMCIA devices
    pcmcia: clean up cs.h
    pcmcia: use pcmica_{read,write}_config_byte
    pcmcia: remove cs_types.h
    pcmcia: remove unused flag, simplify headers
    pcmcia: remove obsolete CS_EVENT_ definitions
    pcmcia: split up central event handler
    pcmcia: simplify event callback
    pcmcia: remove obsolete ioctl

    Conflicts in:
    - drivers/staging/comedi/drivers/*
    - drivers/staging/wlags49_h2/wl_cs.c
    due to dev_info_t and whitespace changes

    Linus Torvalds
     

31 Jul, 2010

1 commit

  • Remove cs_types.h which is no longer needed: Most definitions aren't
    used at all, a few can be made away with, and two remaining definitions
    (typedefs, unfortunatley) may be moved to more specific places.

    CC: linux-ide@vger.kernel.org
    CC: linux-usb@vger.kernel.org
    CC: laforge@gnumonks.org
    CC: linux-mtd@lists.infradead.org
    CC: alsa-devel@alsa-project.org
    CC: linux-serial@vger.kernel.org
    Acked-by: Marcel Holtmann (for drivers/bluetooth/)
    Acked-by: David S. Miller
    Signed-off-by: Dominik Brodowski

    Dominik Brodowski
     

13 Jul, 2010

1 commit


30 Mar, 2010

1 commit

  • …it slab.h inclusion from percpu.h

    percpu.h is included by sched.h and module.h and thus ends up being
    included when building most .c files. percpu.h includes slab.h which
    in turn includes gfp.h making everything defined by the two files
    universally available and complicating inclusion dependencies.

    percpu.h -> slab.h dependency is about to be removed. Prepare for
    this change by updating users of gfp and slab facilities include those
    headers directly instead of assuming availability. As this conversion
    needs to touch large number of source files, the following script is
    used as the basis of conversion.

    http://userweb.kernel.org/~tj/misc/slabh-sweep.py

    The script does the followings.

    * Scan files for gfp and slab usages and update includes such that
    only the necessary includes are there. ie. if only gfp is used,
    gfp.h, if slab is used, slab.h.

    * When the script inserts a new include, it looks at the include
    blocks and try to put the new include such that its order conforms
    to its surrounding. It's put in the include block which contains
    core kernel includes, in the same order that the rest are ordered -
    alphabetical, Christmas tree, rev-Xmas-tree or at the end if there
    doesn't seem to be any matching order.

    * If the script can't find a place to put a new include (mostly
    because the file doesn't have fitting include block), it prints out
    an error message indicating which .h file needs to be added to the
    file.

    The conversion was done in the following steps.

    1. The initial automatic conversion of all .c files updated slightly
    over 4000 files, deleting around 700 includes and adding ~480 gfp.h
    and ~3000 slab.h inclusions. The script emitted errors for ~400
    files.

    2. Each error was manually checked. Some didn't need the inclusion,
    some needed manual addition while adding it to implementation .h or
    embedding .c file was more appropriate for others. This step added
    inclusions to around 150 files.

    3. The script was run again and the output was compared to the edits
    from #2 to make sure no file was left behind.

    4. Several build tests were done and a couple of problems were fixed.
    e.g. lib/decompress_*.c used malloc/free() wrappers around slab
    APIs requiring slab.h to be added manually.

    5. The script was run on all .h files but without automatically
    editing them as sprinkling gfp.h and slab.h inclusions around .h
    files could easily lead to inclusion dependency hell. Most gfp.h
    inclusion directives were ignored as stuff from gfp.h was usually
    wildly available and often used in preprocessor macros. Each
    slab.h inclusion directive was examined and added manually as
    necessary.

    6. percpu.h was updated not to include slab.h.

    7. Build test were done on the following configurations and failures
    were fixed. CONFIG_GCOV_KERNEL was turned off for all tests (as my
    distributed build env didn't work with gcov compiles) and a few
    more options had to be turned off depending on archs to make things
    build (like ipr on powerpc/64 which failed due to missing writeq).

    * x86 and x86_64 UP and SMP allmodconfig and a custom test config.
    * powerpc and powerpc64 SMP allmodconfig
    * sparc and sparc64 SMP allmodconfig
    * ia64 SMP allmodconfig
    * s390 SMP allmodconfig
    * alpha SMP allmodconfig
    * um on x86_64 SMP allmodconfig

    8. percpu.h modifications were reverted so that it could be applied as
    a separate patch and serve as bisection point.

    Given the fact that I had only a couple of failures from tests on step
    6, I'm fairly confident about the coverage of this conversion patch.
    If there is a breakage, it's likely to be something in one of the arch
    headers which should be easily discoverable easily on most builds of
    the specific arch.

    Signed-off-by: Tejun Heo <tj@kernel.org>
    Guess-its-ok-by: Christoph Lameter <cl@linux-foundation.org>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: Lee Schermerhorn <Lee.Schermerhorn@hp.com>

    Tejun Heo
     

24 Mar, 2010

1 commit

  • Instead of requiring PCMCIA socket drivers to call various functions
    during their (bus) resume and suspend functions, register an own
    dev_pm_ops for this class. This fixes several suspend/resume bugs
    seen on db1xxx-ss, and probably on some other socket drivers, too.

    With regard to the asymmetry with only _noirq suspend, but split up
    resume, please see bug 14334 and commit 9905d1b411946fb3 .

    Signed-off-by: Dominik Brodowski

    Dominik Brodowski
     

17 Dec, 2009

1 commit

  • Commit d0d26c33b63c7ec10c3fdf9c7ce0aa035f0b3200 broke the driver by
    propagating a pointer to the platform_device where a pointer to the
    generic device was expected, leading to a spectacular crash...

    Signed-off-by: Marc Zyngier
    Acked-by: Dominik Brodowski
    Acked-by: Eric Miao
    Signed-off-by: Russell King

    Marc Zyngier
     

16 Dec, 2009

1 commit


14 Dec, 2009

1 commit


13 Dec, 2009

1 commit


12 Dec, 2009

1 commit

  • ERROR: "pxa2xx_drv_pcmcia_ops" [drivers/pcmcia/pxa2xx_lubbock_cs.ko] undefined!
    ERROR: "pxa2xx_drv_pcmcia_add_one" [drivers/pcmcia/pxa2xx_lubbock_cs.ko] undefined!

    We also remove __pxa2xx_drv_pcmcia_probe and its export, since this is
    no longer required.

    Signed-off-by: Russell King

    Russell King
     

09 Nov, 2009

5 commits


29 Sep, 2009

1 commit


10 Sep, 2009

1 commit


28 Mar, 2009

1 commit


09 Mar, 2009

2 commits


14 Oct, 2008

1 commit

  • * git://git.kernel.org/pub/scm/linux/kernel/git/brodo/pcmcia-2.6: (49 commits)
    pcmcia: ioctl-internal definitions
    pcmcia: cistpl header cleanup
    pcmcia: remove unused argument to pcmcia_parse_tuple()
    pcmcia: card services header cleanup
    pcmcia: device_id header cleanup
    pcmcia: encapsulate ioaddr_t
    pcmcia: cleanup device driver header file
    pcmcia: cleanup socket services header file
    pcmcia: merge ds_internal.h into cs_internal.h
    pcmcia: cleanup cs_internal.h
    pcmcia: cs_internal.h is internal
    pcmcia: use dev_printk for cs_error()
    pcmcia: remove CS_ error codes alltogether
    pcmcia: deprecate CS_BAD_TUPLE
    pcmcia: deprecate CS_BAD_ARGS
    pcmcia: deprecate CS_BAD_BASE, CS_BAD_IRQ, CS_BAD_OFFSET and CS_BAD_SIZE
    pcmcia: deprecate CS_BAD_ATTRIBUTE, CS_BAD_TYPE and CS_BAD_PAGE
    pcmcia: deprecate CS_NO_MORE_ITEMS
    pcmcia: deprecate CS_IN_USE
    pcmcia: deprecate CS_CONFIGURATION_LOCKED
    ...

    Fix trivial conflict in drivers/pcmcia/ds.c manually

    Linus Torvalds
     

09 Sep, 2008

1 commit

  • The Arcom/Eurotech Viper needs some extra care to run. On this board,
    the PC104 connector is actually wired to the second PCMCIA slot.
    Therefore, this second socket needs to be enabled, despite not being
    managed by the PCMCIA code.

    I'd rather have the MECR setup in the platform support code so I could,
    for example, use the PC104 bus without having the PCMCIA module loaded.

    Signed-off-by: Marc Zyngier

    Marc Zyngier
     

26 Aug, 2008

1 commit


07 Aug, 2008

1 commit