20 Jan, 2014

1 commit


18 Oct, 2013

1 commit

  • commit 8612ed0d97abcf1c016d34755b7cf2060de71963 upstream.

    Calling the WDIOC_GETSTATUS & WDIOC_GETBOOTSTATUS and twice will cause a
    interruptible deadlock.

    Signed-off-by: Dan Carpenter
    Reviewed-by: Guenter Roeck
    Signed-off-by: Wim Van Sebroeck
    Cc: Jonghwan Choi
    Signed-off-by: Greg Kroah-Hartman

    Dan Carpenter
     

18 May, 2013

1 commit


09 May, 2013

2 commits

  • A race condition exists when registering the first watchdog device.
    Sequence of events:

    - watchdog_register_device calls watchdog_dev_register
    - watchdog_dev_register creates the watchdog misc device by calling
    misc_register.
    At that time, the matching character device (/dev/watchdog0) does not yet
    exist, and old_wdd is not set either.
    - Userspace gets an event and opens /dev/watchdog
    - watchdog_open is called and sets wdd = old_wdd, which is still NULL,
    and tries to dereference it. This causes the kernel to panic.

    Seen with systemd trying to open /dev/watchdog immediately after
    it was created.

    Reported-by: Arkadiusz Miskiewicz
    Signed-off-by: Guenter Roeck
    Tested-by: Arkadiusz Miskiewicz
    Signed-off-by: Wim Van Sebroeck

    Guenter Roeck
     
  • Use the newly introduced devm_ioremap_resource() instead of
    devm_request_and_ioremap() which provides more consistent error handling.

    devm_ioremap_resource() provides its own error messages; so all explicit
    error messages can be removed from the failure code paths.

    Signed-off-by: Sachin Kamat
    Reviewed-by: Thierry Reding
    Cc: Gabor Juhos
    Cc: Paul Mundt
    Signed-off-by: Wim Van Sebroeck

    Sachin Kamat
     

14 Apr, 2013

1 commit

  • Compiling the at91rm9200_wdt.c driver without at91rm9200
    support was leading to several errors:

    drivers/built-in.o: In function `at91_wdt_close':
    at91_adc.c:(.text+0xc9fe4): undefined reference to `at91_st_base'
    drivers/built-in.o: In function `at91_wdt_write':
    at91_adc.c:(.text+0xca004): undefined reference to `at91_st_base'
    drivers/built-in.o: In function `at91wdt_shutdown':
    at91_adc.c:(.text+0xca01c): undefined reference to `at91_st_base'
    drivers/built-in.o: In function `at91wdt_suspend':
    at91_adc.c:(.text+0xca038): undefined reference to `at91_st_base'
    drivers/built-in.o: In function `at91_wdt_open':
    at91_adc.c:(.text+0xca0cc): undefined reference to `at91_st_base'
    drivers/built-in.o:at91_adc.c:(.text+0xca2c8): more undefined references to
    `at91_st_base' follow

    So, reverting the modification of the "depends" Kconfig line
    introduced by patch a6a1bcd37 (watchdog: at91rm9200: add DT support)
    seems to be the good solution.

    Signed-off-by: Nicolas Ferre
    Acked-by: Guenter Roeck
    Signed-off-by: Wim Van Sebroeck

    Nicolas Ferre
     

23 Mar, 2013

2 commits

  • The AcpiMmioSel bit is bit 1 in the AcpiMmioEn register, but the current
    sp5100_tco driver is using bit 2.

    See 2.3.3 Power Management (PM) Registers page 150 of the
    AMD SB800-Series Southbridges Register Reference Guide [1].

    AcpiMmioEn - RW – 8/16/32 bits - [PM_Reg: 24h]
    Field Name Bits Default Description
    AcpiMMioDecodeEn 0 0b Set to 1 to enable AcpiMMio space.
    AcpiMMIoSel 1 0b Set AcpiMMio registers to be memory-mapped or IO-mapped space.
    0: Memory-mapped space
    1: I/O-mapped space

    The sp5100_tco driver expects zero as a value of AcpiMmioSel (bit 1).

    Fortunately, no problems were caused by this typo, because the default
    value of the undocumented misused bit 2 seems to be zero.

    However, the sp5100_tco driver should use the correct bitmask value.

    [1] http://support.amd.com/us/Embedded_TechDocs/45482.pdf

    Signed-off-by: Takahisa Tanaka
    Signed-off-by: Paul Menzel
    Signed-off-by: Wim Van Sebroeck
    Cc: stable

    Takahisa Tanaka
     
  • A problem was found on PC's with the SB700 chipset: The PC fails to
    load BIOS after running the 3.8.x kernel until the power is completely
    cut off. It occurs in all 3.8.x versions and the mainline version as of
    2/4. The issue does not occur with the 3.7.x builds.

    There are two methods for accessing the watchdog registers.

    1. Re-programming a resource address obtained by allocate_resource()
    to chipset.
    2. Use the direct memory-mapped IO access.

    The method 1 can be used by all the chipsets (SP5100, SB7x0, SB8x0 or
    later). However, experience shows that only PC with the SB8x0 (or
    later) chipsets can use the method 2.

    This patch removes the method 1, because the critical problem was found.
    That's why the watchdog timer was able to be used on SP5100 and SB7x0
    chipsets until now.

    Link: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1116835
    Link: https://lkml.org/lkml/2013/2/14/271

    Signed-off-by: Takahisa Tanaka
    Signed-off-by: Wim Van Sebroeck
    Cc: stable

    Takahisa Tanaka
     

01 Mar, 2013

28 commits


27 Feb, 2013

1 commit

  • Pull vfs pile (part one) from Al Viro:
    "Assorted stuff - cleaning namei.c up a bit, fixing ->d_name/->d_parent
    locking violations, etc.

    The most visible changes here are death of FS_REVAL_DOT (replaced with
    "has ->d_weak_revalidate()") and a new helper getting from struct file
    to inode. Some bits of preparation to xattr method interface changes.

    Misc patches by various people sent this cycle *and* ocfs2 fixes from
    several cycles ago that should've been upstream right then.

    PS: the next vfs pile will be xattr stuff."

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (46 commits)
    saner proc_get_inode() calling conventions
    proc: avoid extra pde_put() in proc_fill_super()
    fs: change return values from -EACCES to -EPERM
    fs/exec.c: make bprm_mm_init() static
    ocfs2/dlm: use GFP_ATOMIC inside a spin_lock
    ocfs2: fix possible use-after-free with AIO
    ocfs2: Fix oops in ocfs2_fast_symlink_readpage() code path
    get_empty_filp()/alloc_file() leave both ->f_pos and ->f_version zero
    target: writev() on single-element vector is pointless
    export kernel_write(), convert open-coded instances
    fs: encode_fh: return FILEID_INVALID if invalid fid_type
    kill f_vfsmnt
    vfs: kill FS_REVAL_DOT by adding a d_weak_revalidate dentry op
    nfsd: handle vfs_getattr errors in acl protocol
    switch vfs_getattr() to struct path
    default SET_PERSONALITY() in linux/elf.h
    ceph: prepopulate inodes only when request is aborted
    d_hash_and_lookup(): export, switch open-coded instances
    9p: switch v9fs_set_create_acl() to inode+fid, do it before d_instantiate()
    9p: split dropping the acls from v9fs_set_create_acl()
    ...

    Linus Torvalds
     

25 Feb, 2013

1 commit

  • Pull MFS updates from Samuel Ortiz:
    "This is the MFD pull request for the 3.9 merge window.

    No new drivers this time, but a bunch of fairly big cleanups:

    - Roger Quadros worked on a OMAP USBHS and TLL platform data
    consolidation, OMAP5 support and clock management code cleanup.

    - The first step of a major sync for the ab8500 driver from Lee
    Jones. In particular, the debugfs and the sysct interfaces got
    extended and improved.

    - Peter Ujfalusi sent a nice patchset for cleaning and fixing the
    twl-core driver, with a much needed module id lookup code
    improvement.

    - The regular wm5102 and arizona cleanups and fixes from Mark Brown.

    - Laxman Dewangan extended the palmas APIs in order to implement the
    palmas GPIO and rt drivers.

    - Laxman also added DT support for the tps65090 driver.

    - The Intel SCH and ICH drivers got a couple fixes from Aaron Sierra
    and Darren Hart.

    - Linus Walleij patchset for the ab8500 driver allowed ab8500 and
    ab9540 based devices to switch to the new abx500 pin-ctrl driver.

    - The max8925 now has device tree and irqdomain support thanks to
    Qing Xu.

    - The recently added rtsx driver got a few cleanups and fixes for a
    better card detection code path and now also supports the RTS5227
    chipset, thanks to Wei Wang and Roger Tseng."

    * tag 'mfd-3.9-1' of git://git.kernel.org/pub/scm/linux/kernel/git/sameo/mfd-2.6: (109 commits)
    mfd: lpc_ich: Use devres API to allocate private data
    mfd: lpc_ich: Add Device IDs for Intel Wellsburg PCH
    mfd: lpc_sch: Accomodate partial population of the MFD devices
    mfd: da9052-i2c: Staticize da9052_i2c_fix()
    mfd: syscon: Fix sparse warning
    mfd: twl-core: Fix kernel panic on boot
    mfd: rtsx: Fix issue that booting OS with SD card inserted
    mfd: ab8500: Fix compile error
    mfd: Add missing GENERIC_HARDIRQS dependecies
    Documentation: Add docs for max8925 dt
    mfd: max8925: Add dts
    mfd: max8925: Support dt for backlight
    mfd: max8925: Fix onkey driver irq base
    mfd: max8925: Fix mfd device register failure
    mfd: max8925: Add irqdomain for dt
    mfd: vexpress: Allow vexpress-sysreg to self-initialise
    mfd: rtsx: Support RTS5227
    mfd: rtsx: Implement driving adjustment to device-dependent callbacks
    mfd: vexpress: Add pseudo-GPIO based LEDs
    mfd: ab8500: Rename ab8500 to abx500 for hwmon driver
    ...

    Linus Torvalds
     

23 Feb, 2013

1 commit


14 Feb, 2013

1 commit