12 Jan, 2016

1 commit

  • Pull vfs xattr updates from Al Viro:
    "Andreas' xattr cleanup series.

    It's a followup to his xattr work that went in last cycle; -0.5KLoC"

    * 'work.xattr' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
    xattr handlers: Simplify list operation
    ocfs2: Replace list xattr handler operations
    nfs: Move call to security_inode_listsecurity into nfs_listxattr
    xfs: Change how listxattr generates synthetic attributes
    tmpfs: listxattr should include POSIX ACL xattrs
    tmpfs: Use xattr handler infrastructure
    btrfs: Use xattr handler infrastructure
    vfs: Distinguish between full xattr names and proper prefixes
    posix acls: Remove duplicate xattr name definitions
    gfs2: Remove gfs2_xattr_acl_chmod
    vfs: Remove vfs_xattr_cmp

    Linus Torvalds
     

14 Dec, 2015

1 commit

  • Change the list operation to only return whether or not an attribute
    should be listed. Copying the attribute names into the buffer is moved
    to the callers.

    Since the result only depends on the dentry and not on the attribute
    name, we do not pass the attribute name to list operations.

    Signed-off-by: Andreas Gruenbacher
    Signed-off-by: Al Viro

    Andreas Gruenbacher
     

09 Dec, 2015

1 commit

  • new method: ->get_link(); replacement of ->follow_link(). The differences
    are:
    * inode and dentry are passed separately
    * might be called both in RCU and non-RCU mode;
    the former is indicated by passing it a NULL dentry.
    * when called that way it isn't allowed to block
    and should return ERR_PTR(-ECHILD) if it needs to be called
    in non-RCU mode.

    It's a flagday change - the old method is gone, all in-tree instances
    converted. Conversion isn't hard; said that, so far very few instances
    do not immediately bail out when called in RCU mode. That'll change
    in the next commits.

    Signed-off-by: Al Viro

    Al Viro
     

07 Dec, 2015

1 commit

  • Add an additional "name" field to struct xattr_handler. When the name
    is set, the handler matches attributes with exactly that name. When the
    prefix is set instead, the handler matches attributes with the given
    prefix and with a non-empty suffix.

    This patch should avoid bugs like the one fixed in commit c361016a in
    the future.

    Signed-off-by: Andreas Gruenbacher
    Reviewed-by: James Morris
    Signed-off-by: Al Viro

    Andreas Gruenbacher
     

14 Nov, 2015

2 commits

  • The xattr_handler operations are currently all passed a file system
    specific flags value which the operations can use to disambiguate between
    different handlers; some file systems use that to distinguish the xattr
    namespace, for example. In some oprations, it would be useful to also have
    access to the handler prefix. To allow that, pass a pointer to the handler
    to operations instead of the flags value alone.

    Signed-off-by: Andreas Gruenbacher
    Reviewed-by: Christoph Hellwig
    Signed-off-by: Al Viro

    Andreas Gruenbacher
     
  • The vfs checks if a task has the appropriate access for get and set
    operations, but it cannot do that for the list operation; the file system
    must check for that itself.

    Signed-off-by: Andreas Gruenbacher
    Reviewed-by: Christoph Hellwig
    Cc: David Woodhouse
    Cc: linux-mtd@lists.infradead.org
    Signed-off-by: Al Viro

    Andreas Gruenbacher
     

08 Nov, 2015

1 commit

  • Merge second patch-bomb from Andrew Morton:

    - most of the rest of MM

    - procfs

    - lib/ updates

    - printk updates

    - bitops infrastructure tweaks

    - checkpatch updates

    - nilfs2 update

    - signals

    - various other misc bits: coredump, seqfile, kexec, pidns, zlib, ipc,
    dma-debug, dma-mapping, ...

    * emailed patches from Andrew Morton : (102 commits)
    ipc,msg: drop dst nil validation in copy_msg
    include/linux/zutil.h: fix usage example of zlib_adler32()
    panic: release stale console lock to always get the logbuf printed out
    dma-debug: check nents in dma_sync_sg*
    dma-mapping: tidy up dma_parms default handling
    pidns: fix set/getpriority and ioprio_set/get in PRIO_USER mode
    kexec: use file name as the output message prefix
    fs, seqfile: always allow oom killer
    seq_file: reuse string_escape_str()
    fs/seq_file: use seq_* helpers in seq_hex_dump()
    coredump: change zap_threads() and zap_process() to use for_each_thread()
    coredump: ensure all coredumping tasks have SIGNAL_GROUP_COREDUMP
    signal: remove jffs2_garbage_collect_thread()->allow_signal(SIGCONT)
    signal: introduce kernel_signal_stop() to fix jffs2_garbage_collect_thread()
    signal: turn dequeue_signal_lock() into kernel_dequeue_signal()
    signals: kill block_all_signals() and unblock_all_signals()
    nilfs2: fix gcc uninitialized-variable warnings in powerpc build
    nilfs2: fix gcc unused-but-set-variable warnings
    MAINTAINERS: nilfs2: add header file for tracing
    nilfs2: add tracepoints for analyzing reading and writing metadata files
    ...

    Linus Torvalds
     

07 Nov, 2015

4 commits

  • jffs2_garbage_collect_thread() does allow_signal(SIGCONT) for no reason,
    SIGCONT will wake a stopped task up even if it is ignored.

    Signed-off-by: Oleg Nesterov
    Reviewed-by: Tejun Heo
    Cc: David Woodhouse
    Cc: Felipe Balbi
    Cc: Markus Pargmann
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Oleg Nesterov
     
  • jffs2_garbage_collect_thread() can race with SIGCONT and sleep in
    TASK_STOPPED state after it was already sent. Add the new helper,
    kernel_signal_stop(), which does this correctly.

    Signed-off-by: Oleg Nesterov
    Reviewed-by: Tejun Heo
    Cc: David Woodhouse
    Cc: Felipe Balbi
    Cc: Markus Pargmann
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Oleg Nesterov
     
  • 1. Rename dequeue_signal_lock() to kernel_dequeue_signal(). This
    matches another "for kthreads only" kernel_sigaction() helper.

    2. Remove the "tsk" and "mask" arguments, they are always current
    and current->blocked. And it is simply wrong if tsk != current.

    3. We could also remove the 3rd "siginfo_t *info" arg but it looks
    potentially useful. However we can simplify the callers if we
    change kernel_dequeue_signal() to accept info => NULL.

    4. Remove _irqsave, it is never called from atomic context.

    Signed-off-by: Oleg Nesterov
    Reviewed-by: Tejun Heo
    Cc: David Woodhouse
    Cc: Felipe Balbi
    Cc: Markus Pargmann
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Oleg Nesterov
     
  • Reported-by: Wu Fengguang
    Cc: Sasha Levin
    Cc: David Woodhouse
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrew Morton
     

05 Oct, 2015

1 commit


29 Sep, 2015

2 commits


22 Sep, 2015

1 commit

  • Remove unneeded NULL test.

    The semantic patch that makes this change is as follows:
    (http://coccinelle.lip6.fr/)

    //
    @@ expression x; @@
    -if (x != NULL)
    \(kmem_cache_destroy\|mempool_destroy\|dma_pool_destroy\)(x);
    //

    Signed-off-by: Julia Lawall
    Signed-off-by: Brian Norris

    Julia Lawall
     

05 Jul, 2015

1 commit

  • Pull more vfs updates from Al Viro:
    "Assorted VFS fixes and related cleanups (IMO the most interesting in
    that part are f_path-related things and Eric's descriptor-related
    stuff). UFS regression fixes (it got broken last cycle). 9P fixes.
    fs-cache series, DAX patches, Jan's file_remove_suid() work"

    [ I'd say this is much more than "fixes and related cleanups". The
    file_table locking rule change by Eric Dumazet is a rather big and
    fundamental update even if the patch isn't huge. - Linus ]

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (49 commits)
    9p: cope with bogus responses from server in p9_client_{read,write}
    p9_client_write(): avoid double p9_free_req()
    9p: forgetting to cancel request on interrupted zero-copy RPC
    dax: bdev_direct_access() may sleep
    block: Add support for DAX reads/writes to block devices
    dax: Use copy_from_iter_nocache
    dax: Add block size note to documentation
    fs/file.c: __fget() and dup2() atomicity rules
    fs/file.c: don't acquire files->file_lock in fd_install()
    fs:super:get_anon_bdev: fix race condition could cause dev exceed its upper limitation
    vfs: avoid creation of inode number 0 in get_next_ino
    namei: make set_root_rcu() return void
    make simple_positive() public
    ufs: use dir_pages instead of ufs_dir_pages()
    pagemap.h: move dir_pages() over there
    remove the pointless include of lglock.h
    fs: cleanup slight list_entry abuse
    xfs: Correctly lock inode when removing suid and file capabilities
    fs: Call security_ops->inode_killpriv on truncate
    fs: Provide function telling whether file_remove_privs() will do anything
    ...

    Linus Torvalds
     

24 Jun, 2015

2 commits

  • Pull MTD updates from Brian Norris:
    "JFFS2:
    - fix a theoretical unbalanced locking issue; the lock handling was a
    bit unclean, but AFAICT, it didn't actually lead to real deadlocks

    NAND:
    - brcmnand driver: new driver supporting NAND controller found
    originally on Broadcom STB SoCs (BCM7xxx), but now also found on
    BCM63xxx, iProc (e.g., Cygnus, BCM5301x), BCM3xxx, and more

    - begin factoring out BBT code so it can be shared between
    traditional (parallel) NAND drivers and upcoming SPI NAND drivers
    (WIP)

    - add common DT-based init support, so nand_base can pick up some
    flash properties automatically, using established common NAND DT
    properties

    - mxc_nand: support 8-bit ECC

    - pxa3xx_nand:
    * fix build for ARM64
    * use a jiffies-based timeout

    SPI NOR:
    - add a few new IDs

    - clear out some unnecessary entries

    - make sure SECT_4K flags are correct for all (?) entries

    Core:
    - fix mtd->usecount race conditions (BUG_ON())

    - switch to modern PM ops

    Other:
    - CFI: save code space by de-inlining large functions

    - clean up some partition parser selection code across several
    drivers

    - various miscellaneous changes, mostly minor"

    * tag 'for-linus-20150623' of git://git.infradead.org/linux-mtd: (57 commits)
    mtd: docg3: Fix kasprintf() usage
    mtd: docg3: Don't leak docg3->bbt in error path
    mtd: nandsim: Fix kasprintf() usage
    mtd: cs553x_nand: Fix kasprintf() usage
    mtd: r852: Fix device_create_file() usage
    mtd: brcmnand: drop unnecessary initialization
    mtd: propagate error codes from add_mtd_device()
    mtd: diskonchip: remove two-phase partitioning / registration
    mtd: dc21285: use raw spinlock functions for nw_gpio_lock
    mtd: chips: fixup dependencies, to prevent build error
    mtd: cfi_cmdset_0002: Initialize datum before calling map_word_load_partial
    mtd: cfi: deinline large functions
    mtd: lantiq-flash: use default partition parsers
    mtd: plat_nand: use default partition probe
    mtd: nand: correct indentation within conditional
    mtd: remove incorrect file name
    mtd: blktrans: use better error code for unimplemented ioctl()
    mtd: maps: Spelling s/reseved/reserved/
    mtd: blktrans: change blktrans_getgeo return value
    mtd: mxc_nand: generate nand_ecclayout for 8 bit ECC
    ...

    Linus Torvalds
     
  • list_entry is just a wrapper for container_of, but it is arguably
    wrong (and slightly confusing) to use it when the pointed-to struct
    member is not a struct list_head. Use container_of directly instead.

    Signed-off-by: Rasmus Villemoes
    Signed-off-by: Al Viro

    Rasmus Villemoes
     

11 May, 2015

1 commit


08 May, 2015

1 commit

  • Li Zefan reported an unbalanced locking issue, found by his
    internal debugging feature on runtime. The particular case he was
    looking at doesn't lead to a deadlock, as the structure that this lock
    is embedded in is freed on error. But we should straighten out the error
    handling.

    Because several callers of jffs2_do_read_inode_internal() /
    jffs2_do_read_inode() already handle the locking/unlocking and inode
    clearing at their own level, let's just push any unlocks/clearing down
    to the caller. This consistency is much easier to verify.

    Reported-by: Li Zefan
    Cc: David Woodhouse
    Cc: Artem Bityutskiy
    Cc: Andrew Morton
    Signed-off-by: Brian Norris

    Brian Norris
     

27 Apr, 2015

1 commit

  • Pull fourth vfs update from Al Viro:
    "d_inode() annotations from David Howells (sat in for-next since before
    the beginning of merge window) + four assorted fixes"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
    RCU pathwalk breakage when running into a symlink overmounting something
    fix I_DIO_WAKEUP definition
    direct-io: only inc/dec inode->i_dio_count for file systems
    fs/9p: fix readdir()
    VFS: assorted d_backing_inode() annotations
    VFS: fs/inode.c helpers: d_inode() annotations
    VFS: fs/cachefiles: d_backing_inode() annotations
    VFS: fs library helpers: d_inode() annotations
    VFS: assorted weird filesystems: d_inode() annotations
    VFS: normal filesystems (and lustre): d_inode() annotations
    VFS: security/: d_inode() annotations
    VFS: security/: d_backing_inode() annotations
    VFS: net/: d_inode() annotations
    VFS: net/unix: d_backing_inode() annotations
    VFS: kernel/: d_inode() annotations
    VFS: audit: d_backing_inode() annotations
    VFS: Fix up some ->d_inode accesses in the chelsio driver
    VFS: Cachefiles should perform fs modifications on the top layer only
    VFS: AF_UNIX sockets should call mknod on the top layer only

    Linus Torvalds
     

23 Apr, 2015

1 commit

  • Pull MTD updates from Brian Norris:
    "Common MTD:

    - Add Kconfig option for keeping both the 'master' and 'partition'
    MTDs registered as devices. This would really make a better
    default if we could do it over, as it allows a lot more flexibility
    in (1) determining the flash topology of the system from user-space
    and (2) adding temporary partitions at runtime (ioctl(BLKPG)).

    Unfortunately, this would possibly cause user-space breakage, as it
    will cause renumbering of the /dev/mtdX devices. We'll see if we
    can change this in the future, as there have already been a few
    people looking for this feature, and I know others have just been
    working around our current limitations instead of fixing them this
    way.

    - Along with the previous change, add some additional information to
    sysfs, so user-space can read the offset of each partition within
    its master device

    SPI NOR:

    - add new device tree compatible binding to represent the
    mostly-compatible class of SPI NOR flash which can be detected by
    their extended JEDEC ID bytes, cutting down the duplication of our
    ID tables

    - misc. new IDs

    Various other miscellaneous fixes and changes"

    * tag 'for-linus-20150422' of git://git.infradead.org/linux-mtd: (53 commits)
    mtd: spi-nor: Add support for Macronix mx25u6435f serial flash
    mtd: spi-nor: Add support for Winbond w25q64dw serial flash
    mtd: spi-nor: add support for the Winbond W25X05 flash
    mtd: spi-nor: support en25s64 device
    mtd: m25p80: bind to "nor-jedec" ID, for auto-detection
    Documentation: devicetree: m25p80: add "nor-jedec" binding
    mtd: Make MTD tests cancelable
    mtd: mtd_oobtest: Fix bitflip_limit usage in test case 3
    mtd: docg3: remove invalid __exit annotations
    mtd: fsl_ifc_nand: use msecs_to_jiffies for time conversion
    mtd: atmel_nand: don't map the ROM table if no pmecc table offset in DT
    mtd: atmel_nand: add a definition for the oob reserved bytes
    mtd: part: Remove partition overlap checks
    mtd: part: Add sysfs variable for offset of partition
    mtd: part: Create the master device node when partitioned
    mtd: ts5500_flash: Fix typo in MODULE_DESCRIPTION in ts5500_flash.c
    mtd: denali: Disable sub-page writes in Denali NAND driver
    mtd: pxa3xx_nand: cleanup wait_for_completion handling
    mtd: nand: gpmi: Check for scan_bbt() error
    mtd: nand: gpmi: fixup return type of wait_for_completion_timeout
    ...

    Linus Torvalds
     

16 Apr, 2015

2 commits

  • Pull second vfs update from Al Viro:
    "Now that net-next went in... Here's the next big chunk - killing
    ->aio_read() and ->aio_write().

    There'll be one more pile today (direct_IO changes and
    generic_write_checks() cleanups/fixes), but I'd prefer to keep that
    one separate"

    * 'for-linus-2' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (37 commits)
    ->aio_read and ->aio_write removed
    pcm: another weird API abuse
    infinibad: weird APIs switched to ->write_iter()
    kill do_sync_read/do_sync_write
    fuse: use iov_iter_get_pages() for non-splice path
    fuse: switch to ->read_iter/->write_iter
    switch drivers/char/mem.c to ->read_iter/->write_iter
    make new_sync_{read,write}() static
    coredump: accept any write method
    switch /dev/loop to vfs_iter_write()
    serial2002: switch to __vfs_read/__vfs_write
    ashmem: use __vfs_read()
    export __vfs_read()
    autofs: switch to __vfs_write()
    new helper: __vfs_write()
    switch hugetlbfs to ->read_iter()
    coda: switch to ->read_iter/->write_iter
    ncpfs: switch to ->read_iter/->write_iter
    net/9p: remove (now-)unused helpers
    p9_client_attach(): set fid->uid correctly
    ...

    Linus Torvalds
     
  • that's the bulk of filesystem drivers dealing with inodes of their own

    Signed-off-by: David Howells
    Signed-off-by: Al Viro

    David Howells
     

15 Apr, 2015

1 commit

  • Pull trivial tree from Jiri Kosina:
    "Usual trivial tree updates. Nothing outstanding -- mostly printk()
    and comment fixes and unused identifier removals"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial:
    goldfish: goldfish_tty_probe() is not using 'i' any more
    powerpc: Fix comment in smu.h
    qla2xxx: Fix printks in ql_log message
    lib: correct link to the original source for div64_u64
    si2168, tda10071, m88ds3103: Fix firmware wording
    usb: storage: Fix printk in isd200_log_config()
    qla2xxx: Fix printk in qla25xx_setup_mode
    init/main: fix reset_device comment
    ipwireless: missing assignment
    goldfish: remove unreachable line of code
    coredump: Fix do_coredump() comment
    stacktrace.h: remove duplicate declaration task_struct
    smpboot.h: Remove unused function prototype
    treewide: Fix typo in printk messages
    treewide: Fix typo in printk messages
    mod_devicetable: fix comment for match_flags

    Linus Torvalds
     

12 Apr, 2015

1 commit

  • All places outside of core VFS that checked ->read and ->write for being NULL or
    called the methods directly are gone now, so NULL {read,write} with non-NULL
    {read,write}_iter will do the right thing in all cases.

    Signed-off-by: Al Viro

    Al Viro
     

31 Mar, 2015

1 commit


07 Mar, 2015

1 commit


23 Feb, 2015

2 commits

  • Pull more vfs updates from Al Viro:
    "Assorted stuff from this cycle. The big ones here are multilayer
    overlayfs from Miklos and beginning of sorting ->d_inode accesses out
    from David"

    * 'for-linus-2' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (51 commits)
    autofs4 copy_dev_ioctl(): keep the value of ->size we'd used for allocation
    procfs: fix race between symlink removals and traversals
    debugfs: leave freeing a symlink body until inode eviction
    Documentation/filesystems/Locking: ->get_sb() is long gone
    trylock_super(): replacement for grab_super_passive()
    fanotify: Fix up scripted S_ISDIR/S_ISREG/S_ISLNK conversions
    Cachefiles: Fix up scripted S_ISDIR/S_ISREG/S_ISLNK conversions
    VFS: (Scripted) Convert S_ISLNK/DIR/REG(dentry->d_inode) to d_is_*(dentry)
    SELinux: Use d_is_positive() rather than testing dentry->d_inode
    Smack: Use d_is_positive() rather than testing dentry->d_inode
    TOMOYO: Use d_is_dir() rather than d_inode and S_ISDIR()
    Apparmor: Use d_is_positive/negative() rather than testing dentry->d_inode
    Apparmor: mediated_filesystem() should use dentry->d_sb not inode->i_sb
    VFS: Split DCACHE_FILE_TYPE into regular and special types
    VFS: Add a fallthrough flag for marking virtual dentries
    VFS: Add a whiteout dentry type
    VFS: Introduce inode-getting helpers for layered/unioned fs environments
    Infiniband: Fix potential NULL d_inode dereference
    posix_acl: fix reference leaks in posix_acl_create
    autofs4: Wrong format for printing dentry
    ...

    Linus Torvalds
     
  • Convert the following where appropriate:

    (1) S_ISLNK(dentry->d_inode) to d_is_symlink(dentry).

    (2) S_ISREG(dentry->d_inode) to d_is_reg(dentry).

    (3) S_ISDIR(dentry->d_inode) to d_is_dir(dentry). This is actually more
    complicated than it appears as some calls should be converted to
    d_can_lookup() instead. The difference is whether the directory in
    question is a real dir with a ->lookup op or whether it's a fake dir with
    a ->d_automount op.

    In some circumstances, we can subsume checks for dentry->d_inode not being
    NULL into this, provided we the code isn't in a filesystem that expects
    d_inode to be NULL if the dirent really *is* negative (ie. if we're going to
    use d_inode() rather than d_backing_inode() to get the inode pointer).

    Note that the dentry type field may be set to something other than
    DCACHE_MISS_TYPE when d_inode is NULL in the case of unionmount, where the VFS
    manages the fall-through from a negative dentry to a lower layer. In such a
    case, the dentry type of the negative union dentry is set to the same as the
    type of the lower dentry.

    However, if you know d_inode is not NULL at the call site, then you can use
    the d_is_xxx() functions even in a filesystem.

    There is one further complication: a 0,0 chardev dentry may be labelled
    DCACHE_WHITEOUT_TYPE rather than DCACHE_SPECIAL_TYPE. Strictly, this was
    intended for special directory entry types that don't have attached inodes.

    The following perl+coccinelle script was used:

    use strict;

    my @callers;
    open($fd, 'git grep -l \'S_IS[A-Z].*->d_inode\' |') ||
    die "Can't grep for S_ISDIR and co. callers";
    @callers = ;
    close($fd);
    unless (@callers) {
    print "No matches\n";
    exit(0);
    }

    my @cocci = (
    '@@',
    'expression E;',
    '@@',
    '',
    '- S_ISLNK(E->d_inode->i_mode)',
    '+ d_is_symlink(E)',
    '',
    '@@',
    'expression E;',
    '@@',
    '',
    '- S_ISDIR(E->d_inode->i_mode)',
    '+ d_is_dir(E)',
    '',
    '@@',
    'expression E;',
    '@@',
    '',
    '- S_ISREG(E->d_inode->i_mode)',
    '+ d_is_reg(E)' );

    my $coccifile = "tmp.sp.cocci";
    open($fd, ">$coccifile") || die $coccifile;
    print($fd "$_\n") || die $coccifile foreach (@cocci);
    close($fd);

    foreach my $file (@callers) {
    chomp $file;
    print "Processing ", $file, "\n";
    system("spatch", "--sp-file", $coccifile, $file, "--in-place", "--no-show-diff") == 0 ||
    die "spatch failed";
    }

    [AV: overlayfs parts skipped]

    Signed-off-by: David Howells
    Signed-off-by: Al Viro

    David Howells
     

17 Feb, 2015

1 commit


14 Feb, 2015

1 commit

  • sm->offset maybe wrong but magic maybe right, the offset do not have CRC.

    Badness at c00c7580 [verbose debug info unavailable]
    NIP: c00c7580 LR: c00c718c CTR: 00000014
    REGS: df07bb40 TRAP: 0700 Not tainted (2.6.34.13-WR4.3.0.0_standard)
    MSR: 00029000 CR: 22084f84 XER: 00000000
    TASK = df84d6e0[908] 'mount' THREAD: df07a000
    GPR00: 00000001 df07bbf0 df84d6e0 00000000 00000001 00000000 df07bb58 00000041
    GPR08: 00000041 c0638860 00000000 00000010 22084f88 100636c8 df814ff8 00000000
    GPR16: df84d6e0 dfa558cc c05adb90 00000048 c0452d30 00000000 000240d0 000040d0
    GPR24: 00000014 c05ae734 c05be2e0 00000000 00000001 00000000 00000000 c05ae730
    NIP [c00c7580] __alloc_pages_nodemask+0x4d0/0x638
    LR [c00c718c] __alloc_pages_nodemask+0xdc/0x638
    Call Trace:
    [df07bbf0] [c00c718c] __alloc_pages_nodemask+0xdc/0x638 (unreliable)
    [df07bc90] [c00c7708] __get_free_pages+0x20/0x48
    [df07bca0] [c00f4a40] __kmalloc+0x15c/0x1ec
    [df07bcd0] [c01fc880] jffs2_scan_medium+0xa58/0x14d0
    [df07bd70] [c01ff38c] jffs2_do_mount_fs+0x1f4/0x6b4
    [df07bdb0] [c020144c] jffs2_do_fill_super+0xa8/0x260
    [df07bdd0] [c020230c] jffs2_fill_super+0x104/0x184
    [df07be00] [c0335814] get_sb_mtd_aux+0x9c/0xec
    [df07be20] [c033596c] get_sb_mtd+0x84/0x1e8
    [df07be60] [c0201ed0] jffs2_get_sb+0x1c/0x2c
    [df07be70] [c0103898] vfs_kern_mount+0x78/0x1e8
    [df07bea0] [c0103a58] do_kern_mount+0x40/0x100
    [df07bec0] [c011fe90] do_mount+0x240/0x890
    [df07bf10] [c0120570] sys_mount+0x90/0xd8
    [df07bf40] [c00110d8] ret_from_syscall+0x0/0x4

    === Exception: c01 at 0xff61a34
    LR = 0x100135f0
    Instruction dump:
    38800005 38600000 48010f41 4bfffe1c 4bfc2d15 4bfffe8c 72e90200 4082fc28
    3d20c064 39298860 8809000d 68000001 2f800000 419efc0c 38000001
    mount: mounting /dev/mtdblock3 on /common failed: Input/output error

    Signed-off-by: Chen Jie
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: David Woodhouse

    Chen Jie
     

13 Jan, 2015

1 commit


29 Nov, 2014

1 commit


22 Oct, 2014

1 commit


09 Oct, 2014

1 commit

  • schedule_delayed_work() happening when the work is already pending is
    a cheap no-op. Don't bother with ->wbuf_queued logics - it's both
    broken (cancelling ->wbuf_dwork leaves it set, as spotted by Jeff Harris)
    and pointless. It's cheaper to let schedule_delayed_work() handle that
    case.

    Reported-by: Jeff Harris
    Tested-by: Jeff Harris
    Cc: stable@vger.kernel.org
    Signed-off-by: Al Viro

    Al Viro
     

09 Aug, 2014

2 commits

  • Pull MTD updates from Brian Norris:
    "AMD-compatible CFI driver:
    - Support OTP programming for Micron M29EW family
    - Increase buffer write timeout, according to detected flash
    parameter info

    NAND
    - Add helpers for retrieving ONFI timing modes
    - GPMI: provide option to disable bad block marker swapping (required
    for Ka-On electronics platforms)

    SPI NOR
    - EON EN25QH128 support
    - Support new Flag Status Register (FSR) on a few Micron flash

    Common
    - New sysfs entries for bad block and ECC stats

    And a few miscellaneous refactorings, cleanups, and driver
    improvements"

    * tag 'for-linus-20140808' of git://git.infradead.org/linux-mtd: (31 commits)
    mtd: gpmi: make blockmark swapping optional
    mtd: gpmi: remove line breaks from error messages and improve wording
    mtd: gpmi: remove useless (void *) type casts and spaces between type casts and variables
    mtd: atmel_nand: NFC: support multiple interrupt handling
    mtd: atmel_nand: implement the nfc_device_ready() by checking the R/B bit
    mtd: atmel_nand: add NFC status error check
    mtd: atmel_nand: make ecc parameters same as definition
    mtd: nand: add ONFI timing mode to nand_timings converter
    mtd: nand: define struct nand_timings
    mtd: cfi_cmdset_0002: fix do_write_buffer() timeout error
    mtd: denali: use 8 bytes for READID command
    mtd/ftl: fix the double free of the buffers allocated in build_maps()
    mtd: phram: Fix whitespace issues
    mtd: spi-nor: add support for EON EN25QH128
    mtd: cfi_cmdset_0002: Add support for locking OTP memory
    mtd: cfi_cmdset_0002: Add support for writing OTP memory
    mtd: cfi_cmdset_0002: Invalidate cache after entering/exiting OTP memory
    mtd: cfi_cmdset_0002: Add support for reading OTP
    mtd: spi-nor: add support for flag status register on Micron chips
    mtd: Account for BBT blocks when a partition is being allocated
    ...

    Linus Torvalds
     
  • Now with 64bit bzImage and kexec tools, we support ramdisk that size is
    bigger than 2g, as we could put it above 4G.

    Found compressed initramfs image could not be decompressed properly. It
    turns out that image length is int during decompress detection, and it
    will become < 0 when length is more than 2G. Furthermore, during
    decompressing len as int is used for inbuf count, that has problem too.

    Change len to long, that should be ok as on 32 bit platform long is
    32bits.

    Tested with following compressed initramfs image as root with kexec.
    gzip, bzip2, xz, lzma, lzop, lz4.
    run time for populate_rootfs():
    size name Nehalem-EX Westmere-EX Ivybridge-EX
    9034400256 root_img : 26s 24s 30s
    3561095057 root_img.lz4 : 28s 27s 27s
    3459554629 root_img.lzo : 29s 29s 28s
    3219399480 root_img.gz : 64s 62s 49s
    2251594592 root_img.xz : 262s 260s 183s
    2226366598 root_img.lzma: 386s 376s 277s
    2901482513 root_img.bz2 : 635s 599s

    Signed-off-by: Yinghai Lu
    Cc: "H. Peter Anvin"
    Cc: Ingo Molnar
    Cc: Rashika Kheria
    Cc: Josh Triplett
    Cc: Kyungsik Lee
    Cc: P J P
    Cc: Al Viro
    Cc: Tetsuo Handa
    Cc: "Daniel M. Weeks"
    Cc: Alexandre Courbot
    Cc: Jan Beulich
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Yinghai Lu
     

03 Jul, 2014

2 commits