26 Jul, 2008

40 commits

  • Adjust the asm symlink support so we do not create the
    symlink unless really needed.
    We check the precense of include/asm-$ARCH by checking
    for the system.h file. We may end up with a stale directory
    so it is not enough to check if the directory is present.

    Signed-off-by: Sam Ravnborg

    Sam Ravnborg
     
  • Signed-off-by: Sam Ravnborg

    Sam Ravnborg
     
  • Factor out the headers_*_all support to a seperate
    shell script and add support for arch specific
    header files can be located in either

    arch/$ARCH/include/asm
    or
    include/asm-$ARCH/

    In "make help" always display the headers_* targets.

    Signed-off-by: Sam Ravnborg

    Sam Ravnborg
     
  • We see some header files that are selected dependent on
    the actual architecture so force a reinstallation
    of all header files when the arch changes.
    This slows down "make headers_check_all" but then
    we better reflect reality.

    Signed-off-by: Sam Ravnborg

    Sam Ravnborg
     
  • Those are left presumably from aborted ccache(1) compilations:

    arch/x86/kernel/.tmp_io_apic_64.o.T5veul
    arch/x86/kvm/.tmp_x86.o.SZWn69
    arch/x86/mm/.tmp_pgtable.o.sL1LTf
    drivers/ieee1394/.tmp_ieee1394_transactions.o.bUj6o1
    drivers/infiniband/hw/mlx4/.tmp_main.o.vy0ep6

    BTW, with git there is nice way to check for such nuisainces:

    make mrproper
    git-ls-files -o

    should give empty output.

    More precise wildcard spec from: Jan Engelhardt

    Signed-off-by: Alexey Dobriyan
    Signed-off-by: Sam Ravnborg
    Cc: Jan Engelhardt

    Alexey Dobriyan
     
  • Move the core functionality of headers_install
    and headers_check to two small perl scripts.
    The makefile is adapted to use the perl scrip and
    changed to operate on all files in a directory.
    So if one file is changed then all files in the
    directory is processed.

    perl were chosen for the helper scripts because this
    is pure text processing which perl is good at and
    especially the headers_check.pl script are expected to
    see changes / new checks implmented.

    The speed is ~300% faster on this box.
    And the output generated to the screen is now down to
    two lines per directory (one for install, one for check)
    so it is easier to scroll back after a kernel build.

    The perl scripts has been brought to sanity by patient
    feedback from: Vegard Nossum

    Signed-off-by: Sam Ravnborg

    Sam Ravnborg
     
  • Move it to the top-level file to decide if we install/check
    the generic headers or the arch specific headers.

    This revealed a long standing bug where "make headers_check_all"
    relied on the files in asm/ for the current architecture.
    So make headers_check_all is now broken by this commit.

    In addition:

    o add a simpler way to detect if an arch support
    exporting header files.

    o add 'set -e;' so we error out early if
    make headers_check_all fails.

    o add sparc64 and cris to arch we do not process
    in make headers_*_all because:

    sparc64 - use sparc to export headers
    cris - is know seriously broken

    Includes suggestions from: David Woodhouse
    .

    Signed-off-by: Sam Ravnborg
    Cc: David Woodhouse

    Sam Ravnborg
     
  • Fix the a.out.h case by setting SRCARCH and error
    out early in case of an error.
    The a.out.h case failed with the *_all targets.

    Signed-off-by: Sam Ravnborg

    Sam Ravnborg
     
  • No functional changes just improved readability

    Signed-off-by: Sam Ravnborg

    Sam Ravnborg
     
  • ALTARCH is no longer used by any arch(*) so drop
    support for this from Makefile.headerinst

    Dropping ALTARCH support simplifies Makefile.headerinst

    (*) sparc64 uses it but work is ongoing to drop it
    and no furter usage is planned.

    Signed-off-by: Sam Ravnborg
    Cc: David Woodhouse
    Cc: David Miller

    Sam Ravnborg
     
  • unifdef utility is fast enough to warrant that we always
    run the scripts through unifdef.

    This patch runs all headers listed with header-y and unifdef-y
    through unifdef.
    Next step is to drop unifdef-y in all Kbuild files and
    that can now be done in smaller steps.

    Signed-off-by: Sam Ravnborg
    Cc: David Woodhouse
    Cc: Adrian Bunk

    Sam Ravnborg
     
  • o Use lower case for local variables
    o Add a helper target for common targets
    o Use $(hdr-inst)= ... to make Make invocations simpler
    o Add -rR to make invocations

    In total this adds more lines than it removes but the
    benefit is better readability

    Signed-off-by: Sam Ravnborg
    Cc: David Woodhouse

    Sam Ravnborg
     
  • * 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc: (34 commits)
    powerpc: Wireup new syscalls
    Move update_mmu_cache() declaration from tlbflush.h to pgtable.h
    powerpc/pseries: Remove kmalloc call in handling writes to lparcfg
    powerpc/pseries: Update arch vector to indicate support for CMO
    ibmvfc: Add support for collaborative memory overcommit
    ibmvscsi: driver enablement for CMO
    ibmveth: enable driver for CMO
    ibmveth: Automatically enable larger rx buffer pools for larger mtu
    powerpc/pseries: Verify CMO memory entitlement updates with virtual I/O
    powerpc/pseries: vio bus support for CMO
    powerpc/pseries: iommu enablement for CMO
    powerpc/pseries: Add CMO paging statistics
    powerpc/pseries: Add collaborative memory manager
    powerpc/pseries: Utilities to set firmware page state
    powerpc/pseries: Enable CMO feature during platform setup
    powerpc/pseries: Split retrieval of processor entitlement data into a helper routine
    powerpc/pseries: Add memory entitlement capabilities to /proc/ppc64/lparcfg
    powerpc/pseries: Split processor entitlement retrieval and gathering to helper routines
    powerpc/pseries: Remove extraneous error reporting for hcall failures in lparcfg
    powerpc: Fix compile error with binutils 2.15
    ...

    Fixed up conflict in arch/powerpc/platforms/52xx/Kconfig manually.

    Linus Torvalds
     
  • * 'linux-next' of git://git.infradead.org/~dedekind/ubi-2.6: (22 commits)
    UBI: always start the background thread
    UBI: fix gcc warning
    UBI: remove pre-sqnum images support
    UBI: fix kernel-doc errors and warnings
    UBI: fix checkpatch.pl errors and warnings
    UBI: bugfix - do not torture PEB needlessly
    UBI: rework scrubbing messages
    UBI: implement multiple volumes rename
    UBI: fix and re-work debugging stuff
    UBI: amend commentaries
    UBI: fix error message
    UBI: improve mkvol request validation
    UBI: add ubi_sync() interface
    UBI: fix 64-bit calculations
    UBI: fix LEB locking
    UBI: fix memory leak on error path
    UBI: do not forget to free internal volumes
    UBI: fix memory leak
    UBI: avoid unnecessary division operations
    UBI: fix buffer padding
    ...

    Linus Torvalds
     
  • The new type checking of the flags arguments to irqsave and friends
    (commit 3f307891ce0e7b0438c432af1aacd656a092ff45) pointed out this thing
    with a big nice warning.

    Signed-off-by: Linus Torvalds

    Linus Torvalds
     
  • Convert PCI err device from platform to open firmware of_dev to comply
    with powerpc schemes.

    [akpm@linux-foundation.org: coding-style fixes]
    Signed-off-by: Dave Jiang
    Signed-off-by: Doug Thompson
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Dave Jiang
     
  • Fixup of missing bit 0 on 64360 PCIx_ERR_MASK and errata FEr-#11 and
    FEr-#16 for the 64460. Bit 0 must remain 0.

    Signed-off-by: Dave Jiang
    Signed-off-by: Doug Thompson
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Dave Jiang
     
  • Update get_property() call to use of_get_property() in order to fix compile

    Signed-off-by: Dave Jiang
    Signed-off-by: Doug Thompson
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Dave Jiang
     
  • This module harvests more than just memory errors, it also harvests
    various bus and dma errors that the Chipset detects. Previously, it would
    report all such errors, which would cause output to be TOO loud.

    This patches therefore adds a parameter which is used to turn off
    NON-MEMORY error reports by default. Or the reporting can be enabled via
    the parameter

    Also did code style cleanup: less than 80 characters per line rule

    Signed-off-by: Doug Thompson
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Doug Thompson
     
  • The channel DIMM label does not seem to be used much in the edac code.
    However, where it is used (in the core code), it is assumed to not have a
    newline embedded. This leaves the sysfs file newline free which looks
    funny when cat'ing it. Here we just add the trailing newline to the sysfs
    chX_dimm_label output...

    [Doug Thompson note: the DIMM label is one of the primary uses of EDAC.
    User space daemon scripts, edac-utils@sourceforge, populate the DIMM label
    fields, via /sys/devices/system/edac attributes, with the silk screen
    labels of the motherboard in use. dmidecode access BIOS tables, but BIOS
    tables are well known to be incorrect and useless in these respects.
    edac-utils will strip off any newlines before its use of the output, when
    displaying DIMM slot silk screen labels.

    Signed-off-by: Arthur Jones
    Signed-off-by: Doug Thompson
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Arthur Jones
     
  • Static kobjects and ksets are not supported in Linux kernel. Convert the
    mc_kset from static to dynamic. This patch depends on my previous patch
    to remove the module parameter attributes from mc...

    Signed-off-by: Arthur Jones
    Signed-off-by: Doug Thompson
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Arthur Jones
     
  • /sys/devices/system/edac/mc has a few files which are duplicated in
    /sys/module/edac_core/parameters. Now that all the functionality is
    duplicated between these two locations, we remove the former kobject
    attributes and update the documentation.

    Signed-off-by: Arthur Jones
    Signed-off-by: Doug Thompson
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Arthur Jones
     
  • When updating the edac_mc_poll_msec module parameter from the sysfs
    /sys/module/edac_core/parameters/edac_mc_poll_msec file, we don't update
    the workq timers. So that, if we move from a big poll time to a small
    one, the small one won't take effect until the big one has timed out.

    Here we provide a new module parameter set method to call out to the
    update routine. This brings the /sys/module/edac_core/parameters
    functionality up to that provided by the /sys/drivers/system/edac/mc sysfs
    module parameter files so that we can remove them or at least link to the
    /sys/module files...

    Signed-off-by: Arthur Jones
    Signed-off-by: Doug Thompson
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Arthur Jones
     
  • Static kobjects are not supported in linux kernel. Convert the
    edac_pci_top_main_kobj from static to dynamic. This avoids the double
    free of the edac_pci_top_main_kobj.name that we see on module reload of
    the e752x edac driver (and probably others as well).

    In addition Greg KH has pointed out that this code may be
    cleaned up significantly. I will look at that as a follow-on patch, for
    now, I just want the minimum fix to get this double-free oops bug
    squashed...

    Many thanks to Greg KH for his patience in showing me what the
    Documentation/kobject.txt already said (oops)...

    Signed-off-by: Arthur Jones
    Signed-off-by: Doug Thompson
    Acked-by: Greg Kroah-Hartman
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Arthur Jones
     
  • Some code cleanliness issues found by Andrew Morton (thanks!) which should
    not affect functionality, but which should help make the code more
    maintainable.

    In particular, we now:

    * convert all #define's w/ a parameter to static inlines
    * use 1UL rather than 1ULL when calculating an unsigned long
    * use pci_disable_device

    The resulting code is tested and seems to work fine...

    Signed-off-by: Arthur Jones
    Cc: Doug Thompson
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Arthur Jones
     
  • Explicitly unmask ECC errors we are interested in reporting.

    Signed-off-by: Arthur Jones
    Signed-off-by: Doug Thompson
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Arthur Jones
     
  • It is possible that the BIOS did not enable ECC at boot time. We check
    for that case and fail to load if it is true.

    Signed-off-by: Arthur Jones
    Signed-off-by: Doug Thompson
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Arthur Jones
     
  • The error mask we use to trigger ECC notifications is missing many bits of
    interest. We add these bits here so that all possible ECC errors can be
    reported.

    Signed-off-by: Arthur Jones
    Signed-off-by: Doug Thompson
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Arthur Jones
     
  • Preliminary support for the Intel 5100 MCH. CE and UE errors are reported
    along with the current DIMM label information and other memory parameters.

    Reasons why this is preliminary:

    1) This chip has 2 independent memory controllers which, for best
    perforance, use interleaved accesses to the DDR2 memory. This
    architecture does not map very well to the current edac data structures
    which depend on symmetric channel access to the interleaved data.
    Without core changes, the best I could do for now is to map both memory
    controllers to different csrows (first all ranks of controller 0, then
    all ranks of controller 1). Someone much more familiar with the edac
    core than I will probably need to come up with a more general data
    structure to handle the interleaving and de-interleaving of the two
    memory controllers.

    2) I have not yet tackled the de-interleaving of the rank/controller
    address space into the physical address space of the CPU. There is
    nothing fundamentally missing, it is just ending up to be a lot of
    code, and I'd rather keep it separate for now, esp since it doesn't
    work yet...

    3) The code depends on a particular i5100 chip select to DIMM mainboard
    chip select mapping. This mapping seems obvious to me in order to
    support dual and single ranked memory, but it is not unique and DIMM
    labels could be wrong on other mainboards. There is no way to query
    this mapping that I know of.

    4) The code requires that the i5100 is in 32GB mode. Only 4 ranks per
    controller, 2 ranks per DIMM are supported. I do not have hardware
    (nor do I expect to have hardware anytime soon) for the 48GB (6 ranks
    per controller) mode.

    5) The serial presence detect code should be broken out into a "real"
    i2c driver so that decode-dimms.pl can work.

    Signed-off-by: Arthur Jones
    Signed-off-by: Doug Thompson
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Arthur Jones
     
  • If fuse filesystem doesn't define it's own lock operations, then allow the
    lock manager to work with fuse.

    Adding lockd support for remote locking is also possible, but more rarely
    used, so leave it till later.

    Signed-off-by: Miklos Szeredi
    Cc: "J. Bruce Fields"
    Cc: Trond Myklebust
    Cc: Matthew Wilcox
    Cc: David Teigland
    Cc: Christoph Hellwig
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Miklos Szeredi
     
  • Implement the get_parent export operation by sending a LOOKUP request with
    ".." as the name.

    Implement looking up an inode by node ID after it has been evicted from
    the cache. This is done by seding a LOOKUP request with "." as the name
    (for all file types, not just directories).

    The filesystem can set the FUSE_EXPORT_SUPPORT flag in the INIT reply, to
    indicate that it supports these special lookups.

    Thanks to John Muir for the original implementation of this feature.

    Signed-off-by: Miklos Szeredi
    Cc: "J. Bruce Fields"
    Cc: Trond Myklebust
    Cc: Matthew Wilcox
    Cc: David Teigland
    Cc: Christoph Hellwig
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Miklos Szeredi
     
  • Add a new helper function which sends a LOOKUP request with the supplied
    name. This will be used by the next patch to send special LOOKUP requests
    with "." and ".." as the name.

    Signed-off-by: Miklos Szeredi
    Cc: Christoph Hellwig
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Miklos Szeredi
     
  • Implement export_operations, to allow fuse filesystems to be exported to
    NFS. This feature has been in the out-of-tree fuse module, and is widely
    used and tested.

    It has not been originally merged into mainline, because doing the NFS
    export in userspace was thought to be a cleaner and more efficient way of
    doing it, than through the kernel.

    While that is true, it would also have involved a lot of duplicated effort
    at reimplementing NFS exporting (all the different versions of the
    protocol). This effort was unfortunately not undertaken by anyone, so we
    are left with doing it the easy but less efficient way.

    If this feature goes in, the out-of-tree fuse module can go away,
    which would have several advantages:

    - not having to maintain two versions
    - less confusion for users
    - no bugs due to kernel API changes

    Comment from hch:
    - Use the same fh_type values as XFS, since we use the same fh encoding.

    Signed-off-by: Miklos Szeredi
    Cc: Christoph Hellwig
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Miklos Szeredi
     
  • Use d_splice_alias() instead of d_add() in fuse lookup code, to allow NFS
    exporting.

    Signed-off-by: Miklos Szeredi
    Cc: Christoph Hellwig
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Miklos Szeredi
     
  • Allow filesystem's ->lock() method to call posix_lock_file() instead of
    posix_lock_file_wait(), and return FILE_LOCK_DEFERRED. This makes it
    possible to implement a such a ->lock() function, that works with the lock
    manager, which needs the call to be asynchronous.

    Now the vfs_lock_file() helper can be used, so this is a cleanup as well.

    Signed-off-by: Miklos Szeredi
    Cc: "J. Bruce Fields"
    Cc: Trond Myklebust
    Cc: Matthew Wilcox
    Cc: David Teigland
    Cc: Christoph Hellwig
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Miklos Szeredi
     
  • Extract common code into a function.

    Signed-off-by: Miklos Szeredi
    Cc: "J. Bruce Fields"
    Cc: Trond Myklebust
    Cc: Matthew Wilcox
    Cc: David Teigland
    Cc: Christoph Hellwig
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Miklos Szeredi
     
  • Use a special error value FILE_LOCK_DEFERRED to mean that a locking
    operation returned asynchronously. This is returned by

    posix_lock_file() for sleeping locks to mean that the lock has been
    queued on the block list, and will be woken up when it might become
    available and needs to be retried (either fl_lmops->fl_notify() is
    called or fl_wait is woken up).

    f_op->lock() to mean either the above, or that the filesystem will
    call back with fl_lmops->fl_grant() when the result of the locking
    operation is known. The filesystem can do this for sleeping as well
    as non-sleeping locks.

    This is to make sure, that return values of -EAGAIN and -EINPROGRESS by
    filesystems are not mistaken to mean an asynchronous locking.

    This also makes error handling in fs/locks.c and lockd/svclock.c slightly
    cleaner.

    Signed-off-by: Miklos Szeredi
    Cc: Trond Myklebust
    Cc: "J. Bruce Fields"
    Cc: Matthew Wilcox
    Cc: David Teigland
    Cc: Christoph Hellwig
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Miklos Szeredi
     
  • Fix nlm_fopen() to return NLM_FAILED (or NLM_LCK_DENIED_NOLOCKS) instead
    of NLM_LCK_DENIED. The latter means the lock request failed because of a
    conflicting lock (i.e. a temporary error), which is wrong in this case.

    Also fix the client to return ENOLCK instead of EAGAIN if a blocking lock
    request returns with NLM_LOCK_DENIED.

    Signed-off-by: Miklos Szeredi
    Cc: Trond Myklebust
    Cc: "J. Bruce Fields"
    Cc: Matthew Wilcox
    Cc: David Teigland
    Cc: Christoph Hellwig
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Miklos Szeredi
     
  • Cc: Shailabh Nagar
    Signed-off-by: Vegard Nossum
    Cc: Balbir Singh
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Vegard Nossum
     
  • Update document and make getdelays.c show delay accounting for memory reclaim.

    For making a distinction between "swapping in pages" and "memory reclaim"
    in getdelays.c, MEM is changed to SWAP.

    Signed-off-by: Keika Kobayashi
    Acked-by: Balbir Singh
    Cc: KOSAKI Motohiro
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Keika Kobayashi