20 Oct, 2012

3 commits

  • Emit the magic string that indicates a module has a signature after the
    signature data instead of before it. This allows module_sig_check() to
    be made simpler and faster by the elimination of the search for the
    magic string. Instead we just need to do a single memcmp().

    This works because at the end of the signature data there is the
    fixed-length signature information block. This block then falls
    immediately prior to the magic number.

    From the contents of the information block, it is trivial to calculate
    the size of the signature data and thus the size of the actual module
    data.

    Signed-off-by: David Howells
    Signed-off-by: Linus Torvalds

    David Howells
     
  • Turn sign-file into perl and merge in x509keyid. The latter doesn't
    need to be a separate script as it doesn't actually need to work out the
    SHA1 sum of the X.509 certificate itself, since it can get that from the
    X.509 certificate.

    Signed-off-by: David Howells
    Signed-off-by: Linus Torvalds

    David Howells
     
  • Rusty had clearly not actually tested his module signing changes that I
    (trustingly) applied as commit e2a666d52b48 ("kbuild: sign the modules
    at install time"). That commit had multiple bugs:

    - using "${#VARIABLE}" to get the number of characters in a shell
    variable may look clever, but it's locale-dependent: it returns the
    number of *characters*, not bytes. And we do need bytes.

    So don't use "${#..}" expansion, do the stupid "wc -c" thing instead
    (where "c" stands for "bytes", not "characters", despite the letter.

    - Rusty had confused "siglen" and "signerlen", and his conversion
    didn't set "signerlen" at all, and incorrectly set "siglen" to the
    size of the signer, not the size of the signature.

    End result: the modified sign-file script did create something that
    superficially *looked* like a signature, but didn't actually work at
    all, and would fail the signature check. Oops.

    Tssk, tssk, Rusty.

    But Rusty was definitely right that this whole thing should be rewritten
    in perl by somebody who has the perl-fu to do so. That is not me,
    though - I'm just doing an emergency fix for the shell script.

    Cc: Rusty Russell
    Signed-off-by: Linus Torvalds

    Linus Torvalds
     

19 Oct, 2012

2 commits

  • Linus deleted the old code and put signing on the install command,
    I fixed it to extract the keyid and signer-name within sign-file
    and cleaned up that script now it always signs in-place.

    Some enthusiast should convert sign-key to perl and pull
    x509keyid into it.

    Signed-off-by: Rusty Russell
    Signed-off-by: Linus Torvalds

    Rusty Russell
     
  • Pull DeviceTree fixes from Rob Herring:
    "A handful of fixes:
    - a fix for dtc from upstream
    - sparse fixes in DeviceTree code
    - stub of_get_child_by_name for !OF builds"

    * tag 'dt-fixes-for-3.7' of git://sources.calxeda.com/kernel/linux:
    dtc: fix for_each_*() to skip first object if deleted
    of/platform: sparse fix
    of/irq: sparse fixes
    of/address: sparse fixes
    of: add stub of_get_child_by_name for non-OF builds

    Linus Torvalds
     

18 Oct, 2012

1 commit

  • The previous definition of for_each_*() would always include the very
    first object within the list, irrespective of whether it was marked
    deleted, since the deleted flag was not checked on the first object,
    but only on any "next" object.

    Fix for_each_*() to check the deleted flag in the loop body every
    iteration to correct this.

    (upstream dtc commit 1762ab42ef77db7ab2776d0d6cba3515150f518a)

    Signed-off-by: Stephen Warren
    Signed-off-by: Rob Herring

    Stephen Warren
     

17 Oct, 2012

1 commit


16 Oct, 2012

1 commit

  • Commit fe04ddf7c291 ("kbuild: Do not package /boot and /lib in make
    tar-pkg") accidentally reverted two previous kbuild commits. I don't
    know what I was thinking.

    This brings back changes made by commits 24cc7fb69a5b ("x86/kbuild:
    archscripts depends on scripts_basic") and c1c1a59e37da ("firmware: fix
    directory creation rule matching with make 3.80")

    Reported-by: Jan Beulich
    Cc:
    Signed-off-by: Michal Marek
    Signed-off-by: Linus Torvalds

    Michal Marek
     

15 Oct, 2012

1 commit

  • Pull module signing support from Rusty Russell:
    "module signing is the highlight, but it's an all-over David Howells frenzy..."

    Hmm "Magrathea: Glacier signing key". Somebody has been reading too much HHGTTG.

    * 'modules-next' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux: (37 commits)
    X.509: Fix indefinite length element skip error handling
    X.509: Convert some printk calls to pr_devel
    asymmetric keys: fix printk format warning
    MODSIGN: Fix 32-bit overflow in X.509 certificate validity date checking
    MODSIGN: Make mrproper should remove generated files.
    MODSIGN: Use utf8 strings in signer's name in autogenerated X.509 certs
    MODSIGN: Use the same digest for the autogen key sig as for the module sig
    MODSIGN: Sign modules during the build process
    MODSIGN: Provide a script for generating a key ID from an X.509 cert
    MODSIGN: Implement module signature checking
    MODSIGN: Provide module signing public keys to the kernel
    MODSIGN: Automatically generate module signing keys if missing
    MODSIGN: Provide Kconfig options
    MODSIGN: Provide gitignore and make clean rules for extra files
    MODSIGN: Add FIPS policy
    module: signature checking hook
    X.509: Add a crypto key parser for binary (DER) X.509 certificates
    MPILIB: Provide a function to read raw data into an MPI
    X.509: Add an ASN.1 decoder
    X.509: Add simple ASN.1 grammar compiler
    ...

    Linus Torvalds
     

12 Oct, 2012

4 commits

  • Pull kbuild misc changes from Michal Marek:
    "In the non-critical part of kbuild, I have
    - Some make coccicheck improvements and two new tests
    - Support for a cleaner html output in scripts/kernel-doc, named
    html5 (no, it does not play videos, yet)

    BTW, Randy wants to route further kernel-doc patches through the
    kbuild tree."

    * 'misc' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild:
    Update SmPL/Coccinelle section of MAINTAINERS
    coccicheck: Add the rep+ctxt mode
    scripts/coccinelle/tests/odd_ptr_err.cocci: semantic patch for IS_ERR/PTR_ERR inconsistency
    scripts/tags.sh: Add magic for pci access functions
    scripts/coccinelle: ptr_ret: Add ternary operator version
    scripts/kernel-doc: drop maintainer
    scripts/kernel-doc: added support for html5

    Linus Torvalds
     
  • Pull kconfig changes from Michal Marek:
    "kconfig in v3.7 is going to
    - initialize ncurses only once in menuconfig
    - be able to jump to a search result in menuconfig
    - change the misnomer oldnoconfig to a more meaningful name
    olddefconfig, keeping the old name as alias"

    * 'kconfig' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild:
    kconfig: replace 'oldnoconfig' with 'olddefconfig', and keep the old name as an alias
    menuconfig: Assign jump keys per-page instead of globally
    menuconfig: Do not open code textbox scroll up/down
    menuconfig: Add jump keys to search results
    menuconfig: Extend dialog_textbox so that it can return to a scrolled position
    menuconfig: Extend dialog_textbox so that it can exit on arbitrary keypresses
    menuconfig: Remove superfluous conditionnal
    kconfig: document oldnoconfig to what it really does in conf.c
    kconfig/mconf.c: revision of curses initialization.

    Linus Torvalds
     
  • Pull kbuild changes from Michal Marek:
    "The main part of kbuild for v3.7 contains:
    - Fix for scripts/Makefile.modpost to not choke on a '.ko' substring
    in the build directory path
    - Two warning fixes (modpost and main Makefile)
    - __compiletime_error works also with gcc 4.3
    - make tar{gz,bz2,xz}-pkg uses default compression settings instead
    of saving as many bytes as possible (this should actually be in the
    misc branch, I don't know why I applied it here)."

    * 'kbuild' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild:
    compiler-gcc4.h: correct verion check for __compiletime_error
    modpost: Permit .GCC.command.line sections
    Kbuild: use normal compression settings for tar*-pkg
    scripts/Makefile.modpost: error in finding modules from .mod files.
    kbuild: Remove useless warning while appending KCFLAGS

    Linus Torvalds
     
  • Allow .GCC.command.line sections in modules to prevent modpost warnings:
    WARNING: sound/usb/snd-usbmidi-lib.o (.GCC.command.line): unexpected non-allocatable section.
    Did you forget to use "ax"/"aw" in a .S file?
    Note that for example contains
    section definitions for use in .S files.

    Signed-off-by: Jonathan Kliegman
    Signed-off-by: Michal Marek

    Jonathan Kliegman
     

11 Oct, 2012

2 commits


10 Oct, 2012

2 commits

  • If CONFIG_MODULE_SIG is set, then this patch will cause all modules files to
    to have signatures added. The following steps will occur:

    (1) The module will be linked to foo.ko.unsigned instead of foo.ko

    (2) The module will be stripped using both "strip -x -g" and "eu-strip" to
    ensure minimal size for inclusion in an initramfs.

    (3) The signature will be generated on the stripped module.

    (4) The signature will be appended to the module, along with some information
    about the signature and a magic string that indicates the presence of the
    signature.

    Step (3) requires private and public keys to be available. By default these
    are expected to be found in files:

    signing_key.priv
    signing_key.x509

    in the base directory of the build. The first is the private key in PEM form
    and the second is the X.509 certificate in DER form as can be generated from
    openssl:

    openssl req \
    -new -x509 -outform PEM -out signing_key.x509 \
    -keyout signing_key.priv -nodes \
    -subj "/CN=H2G2/O=Magrathea/CN=Slartibartfast"

    If the secret key is not found then signing will be skipped and the unsigned
    module from (1) will just be copied to foo.ko.

    If signing occurs, lines like the following will be seen:

    LD [M] fs/foo/foo.ko.unsigned
    STRIP [M] fs/foo/foo.ko.stripped
    SIGN [M] fs/foo/foo.ko

    will appear in the build log. If the signature step will be skipped and the
    following will be seen:

    LD [M] fs/foo/foo.ko.unsigned
    STRIP [M] fs/foo/foo.ko.stripped
    NO SIGN [M] fs/foo/foo.ko

    NOTE! After the signature step, the signed module _must_not_ be passed through
    strip. The unstripped, unsigned module is still available at the name on the
    LD [M] line. This restriction may affect packaging tools (such as rpmbuild)
    and initramfs composition tools.

    Signed-off-by: David Howells
    Signed-off-by: Rusty Russell

    David Howells
     
  • Provide a script to parse an X.509 certificate and certain pieces of
    information from it in order to generate a key identifier to be included within
    a module signature.

    The script takes the Subject Name and extracts (if present) the
    organizationName (O), the commonName (CN) and the emailAddress and fabricates
    the signer's name from them:

    (1) If both O and CN exist, then the name will be "O: CN", unless:

    (a) CN is prefixed by O, in which case only CN is used.

    (b) CN and O share at least the first 7 characters, in which case only CN
    is used.

    (2) Otherwise, CN is used if present.

    (3) Otherwise, O is used if present.

    (4) Otherwise the emailAddress is used, if present.

    (5) Otherwise a blank name is used.

    The script emits a binary encoded identifier in the following form:

    - 2 BE bytes indicating the length of the signer's name.

    - 2 BE bytes indicating the length of the subject key identifier.

    - The characters of the signer's name.

    - The bytes of the subject key identifier.

    Signed-off-by: David Howells
    Signed-off-by: Rusty Russell

    David Howells
     

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
     

08 Oct, 2012

2 commits

  • Add a simple ASN.1 grammar compiler. This produces a bytecode output that can
    be fed to a decoder to inform the decoder how to interpret the ASN.1 stream it
    is trying to parse.

    Action functions can be specified in the grammar by interpolating:

    ({ foo })

    after a type, for example:

    SubjectPublicKeyInfo ::= SEQUENCE {
    algorithm AlgorithmIdentifier,
    subjectPublicKey BIT STRING ({ do_key_data })
    }

    The decoder is expected to call these after matching this type and parsing the
    contents if it is a constructed type.

    The grammar compiler does not currently support the SET type (though it does
    support SET OF) as I can't see a good way of tracking which members have been
    encountered yet without using up extra stack space.

    Currently, the grammar compiler will fail if more than 256 bytes of bytecode
    would be produced or more than 256 actions have been specified as it uses
    8-bit jump values and action indices to keep space usage down.

    Signed-off-by: David Howells
    Signed-off-by: Rusty Russell

    David Howells
     
  • Pull kbuild fixes from Michal Marek:
    "Here are two fixes I intended to send after v3.6-rc7, but failed to do
    so. So please pull them for v3.7-rc1 and they will be picked up by
    stable.

    The first one fixes gcc -x syntax in various build-time
    tests, which icecream and possible other gcc wrappers did not
    understand (and yes, icecream is going to be fixed as well).

    The second one fixes make tar-pkg so that unpacking the tarball does
    not replace the /lib -> /usr/lib symlink on recent Fedora releases."

    * 'rc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild:
    kbuild: Fix gcc -x syntax
    kbuild: Do not package /boot and /lib in make tar-pkg

    Linus Torvalds
     

06 Oct, 2012

8 commits

  • A section with the name "Example" (case-insensitive) has a special meaning
    to kernel-doc. These sections are output using mono-type fonts. However,
    leading whitespace is stripped, thus robbing a lot of meaning from this,
    as indented code examples will be mangled.

    This patch preserves the leading whitespace for "Example" sections. More
    accurately, it preserves it for all sections, but removes it later if the
    section isn't an "Example" section.

    Signed-off-by: Daniel Santos
    Cc: Randy Dunlap
    Cc: Michal Marek
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Daniel Santos
     
  • If you have a section named "Example" that contains an empty line,
    attempting to generate htmldocs give you the error:

    /path/Documentation/DocBook/kernel-api.xml:3455: parser error : Opening and ending tag mismatch: programlisting line 3449 and para

    ^
    /path/Documentation/DocBook/kernel-api.xml:3473: parser error : Opening and ending tag mismatch: para line 3467 and programlisting

    ^
    /path/Documentation/DocBook/kernel-api.xml:3678: parser error : Opening and ending tag mismatch: programlisting line 3672 and para

    ^
    /path/Documentation/DocBook/kernel-api.xml:3701: parser error : Opening and ending tag mismatch: para line 3690 and programlisting

    ^
    unable to parse
    /path/Documentation/DocBook/kernel-api.xml

    Essentially, the script attempts to close a with a
    closing tag for a block. This patch corrects the problem by
    simply not outputting anything extra when we're dumping pre-formatted
    text, since the empty line will be rendered correctly anyway.

    Signed-off-by: Daniel Santos
    Cc: Randy Dunlap
    Cc: Michal Marek
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Daniel Santos
     
  • Prior to this patch the following code breaks:

    /**
    * multiline_example - this breaks kernel-doc
    */
    #define multiline_example( \
    myparam)

    Producing this error:

    Error(somefile.h:983): cannot understand prototype: 'multiline_example( \ '

    This patch fixes the issue by appending all lines ending in a blackslash
    (optionally followed by whitespace), removing the backslash and any
    whitespace after it prior to appending (just like the C pre-processor
    would).

    This fixes a break in kerel-doc introduced by the additions to rbtree.h.

    Signed-off-by: Daniel Santos
    Cc: Randy Dunlap
    Cc: Michal Marek
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Daniel Santos
     
  • Fix macro name in checkpatch: s/PARAM/PARM/.

    Signed-off-by: Kees Cook
    Cc: Joe Perches
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Kees Cook
     
  • In an effort to get fewer checkpatch reviewer corrections, add a
    networking specific style test for the preferred networking comment style.

    /* The preferred style for block comments in
    * drivers/net/... and net/... is like this
    */

    These tests are only used in net/ and drivers/net/

    Tested with:

    $ cat drivers/net/t.c

    /* foo */

    /*
    * foo
    */

    /* foo
    */

    /* foo
    * bar */
    $ ./scripts/checkpatch.pl -f drivers/net/t.c
    WARNING: networking block comments don't use an empty /* line, use /* Comment...
    #4: FILE: net/t.c:4:
    +
    +/*

    WARNING: networking block comments put the trailing */ on a separate line
    #12: FILE: net/t.c:12:
    + * bar */

    total: 0 errors, 2 warnings, 12 lines checked

    Signed-off-by: Joe Perches
    Cc: "Allan, Bruce W"
    Cc: Andy Whitcroft
    Cc: David Miller
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joe Perches
     
  • Direct conversion of printk(KERN_... to pr_ isn't the
    preferred conversion when a struct net_device or struct device is
    available.

    Hint that using netdev_ or dev_ is preferred to using
    pr_. Add netdev_dbg and dev_dbg variants too.

    Miscellaneous whitespace neatening of a misplaced close brace.

    Signed-off-by: Joe Perches
    Cc: Andy Whitcroft
    Cc: Greg KH
    Cc: Dan Carpenter
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joe Perches
     
  • Check that a commit log doesn't contain UTF-8 when a mail header
    explicitly defines a different charset, like

    'Content-Type: text/plain; charset="us-ascii"'

    Signed-off-by: Pasi Savanainen
    Cc: Joe Perches
    Cc: Andy Whitcroft
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Pasi Savanainen
     
  • The call if_changed mechanism does not work when the command contains
    backslashes. This basically is an issue with lzo and bzip2 compressed
    kernels. The compressed binaries do not contain the uncompressed image
    size, so these use size_append to append the size. This results in
    backslashes in the executed command. With this if_changed always
    detects a change in the command and rebuilds the compressed image even
    if nothing has changed.

    Fix this by escaping backslashes in make-cmd

    Signed-off-by: Sascha Hauer
    Signed-off-by: Jan Luebbe
    Cc: Sam Ravnborg
    Cc: Bernhard Walle
    Cc: Michal Marek
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Sascha Hauer
     

04 Oct, 2012

3 commits

  • Suppress warnings for two informational sections (.xt.lit and .xt.prop)
    used by the Xtensa architecture.

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

    Max Filippov
     
  • Pull preparatory patches for user API disintegration from David Howells:
    "The patches herein prepare for the extraction of the Userspace API
    bits from the various header files named in the Kbuild files.

    New subdirectories are created under either include/uapi/ or
    arch/x/include/uapi/ that correspond to the subdirectory containing
    that file under include/ or arch/x/include/.

    The new subdirs under the uapi/ directory are populated with Kbuild
    files that mostly do nothing at this time. Further patches will
    disintegrate the headers in each original directory and fill in the
    Kbuild files as they do it.

    These patches also:

    (1) fix up #inclusions of "foo.h" rather than .

    (2) Remove some redundant #includes from the DRM code.

    (3) Make the kernel build infrastructure handle Kbuild files both in
    the old places and the new UAPI place that both specify headers
    to be exported.

    (4) Fix some kernel tools that #include kernel headers during their
    build.

    I have compile tested this with allyesconfig against x86_64,
    allmodconfig against i386 and a scattering of additional defconfigs of
    other arches. Prepared for main script

    Signed-off-by: David Howells
    Acked-by: Arnd Bergmann
    Acked-by: Thomas Gleixner
    Acked-by: Michael Kerrisk
    Acked-by: Paul E. McKenney
    Acked-by: Dave Jones
    Acked-by: H. Peter Anvin "

    * tag 'uapi-prep-20121002' of git://git.infradead.org/users/dhowells/linux-headers:
    UAPI: Plumb the UAPI Kbuilds into the user header installation and checking
    UAPI: x86: Differentiate the generated UAPI and internal headers
    UAPI: Remove the objhdr-y export list
    UAPI: Move linux/version.h
    UAPI: Set up uapi/asm/Kbuild.asm
    UAPI: x86: Fix insn_sanity build failure after UAPI split
    UAPI: x86: Fix the test_get_len tool
    UAPI: (Scripted) Set up UAPI Kbuild files
    UAPI: Partition the header include path sets and add uapi/ header directories
    UAPI: (Scripted) Convert #include "..." to #include in kernel system headers
    UAPI: (Scripted) Convert #include "..." to #include in drivers/gpu/
    UAPI: (Scripted) Remove redundant DRM UAPI header #inclusions from drivers/gpu/.
    UAPI: Refer to the DRM UAPI headers with and from certain headers only

    Linus Torvalds
     
  • Pull devicetree updates from Rob Herring:
    - Import of latest upstream device tree compiler (dtc)
    - New function of_get_child_by_name
    - Support for #size-cells of 0 and #addr-cells of >2
    - Couple of DT binding documentation updates

    Fix up trivial conflicts due to of_get_child_by_name() having been added
    next to the new of_get_next_available_child().

    * tag 'dt-for-3.7' of git://sources.calxeda.com/kernel/linux:
    MAINTAINERS: add scripts/dtc under Devicetree maintainers
    dtc: import latest upstream dtc
    dt: Document general interrupt controller bindings
    dt/s3c64xx/spi: Use of_get_child_by_name to get a named child
    dt: introduce of_get_child_by_name to get child node by name
    of: i2c: add support for wakeup-source property
    of/address: Handle #address-cells > 2 specially
    DT: export of_irq_to_resource_table()
    devicetree: serial: Add documentation for imx serial
    devicetree: pwm: mxs-pwm.txt: Fix reg field annotation
    of: Allow busses with #size-cells=0

    Linus Torvalds
     

03 Oct, 2012

3 commits

  • The correct syntax for gcc -x is "gcc -x assembler", not
    "gcc -xassembler". Even though the latter happens to work, the former
    is what is documented in the manual page and thus what gcc wrappers
    such as icecream do expect.

    This isn't a cosmetic change. The missing space prevents icecream from
    recognizing compilation tasks it can't handle, leading to silent kernel
    miscompilations.

    Besides me, credits go to Michael Matz and Dirk Mueller for
    investigating the miscompilation issue and tracking it down to this
    incorrect -x parameter syntax.

    Signed-off-by: Jean Delvare
    Acked-by: Ingo Molnar
    Cc: stable@vger.kernel.org
    Cc: Bernhard Walle
    Cc: Michal Marek
    Cc: Ralf Baechle
    Signed-off-by: Michal Marek

    Jean Delvare
     
  • Plumb the UAPI Kbuilds into the user header installation and checking system.
    As the headers are split the entries will be transferred across from the old
    Kbuild files to the UAPI Kbuild files.

    The changes made in this commit are:

    (1) Exported generated files (of which there are currently four) are moved to
    uapi/ directories under the appropriate generated/ directory, thus we
    get:

    include/generated/uapi/linux/version.h
    arch/x86/include/generated/uapi/asm/unistd_32.h
    arch/x86/include/generated/uapi/asm/unistd_64.h
    arch/x86/include/generated/uapi/asm/unistd_x32.h

    These paths were added to the build as -I flags in a previous patch.

    (2) scripts/Makefile.headersinst is now given the UAPI path to install from
    rather than the old path.

    It then determines the old path from that and includes that Kbuild also
    if it exists, thus permitting the headers to exist in either directory
    during the changeover.

    I also renamed the "install" variable to "installdir" as it refers to a
    directory not the install program.

    (3) scripts/headers_install.pl is altered to take a list of source file paths
    instead of just their names so that the makefile can tell it exactly
    where to find each file.

    For the moment, files can be obtained from one of four places for each
    output directory:

    .../include/uapi/foo/
    .../include/generated/uapi/foo/
    .../include/foo/
    .../include/generated/foo/

    The non-UAPI paths will be dropped later.

    Signed-off-by: David Howells
    Acked-by: Arnd Bergmann
    Acked-by: Thomas Gleixner
    Acked-by: Paul E. McKenney
    Acked-by: Dave Jones

    David Howells
     
  • Remove the objhdr-y export list as it is no longer used. genhdr-y should be
    used instead.

    Signed-off-by: David Howells
    Acked-by: Arnd Bergmann
    Acked-by: Thomas Gleixner
    Acked-by: Paul E. McKenney
    Acked-by: Dave Jones

    David Howells
     

02 Oct, 2012

6 commits

  • Pull staging tree update from Greg Kroah-Hartman:
    "Here is the big staging tree update for the 3.7-rc1 merge window.

    There are a few patches in here that are outside of the staging area,
    namely HID and IIO patches, but all of them have been acked by the
    relevant subsystem maintainers. The IIO stuff is still coming in
    through this tree as it hasn't entirely moved out of the staging tree,
    but is almost there.

    Other than that, there wa a ton of work on the comedi drivers to make
    them more readable and the correct style. Doing that removed a lot of
    code, but we added a new driver to the staging tree, so we didn't end
    up with a net reduction this time around:

    662 files changed, 51649 insertions(+), 26582 deletions(-)

    All of these patches have been in the linux-next tree already.

    Signed-off-by: Greg Kroah-Hartman "

    * tag 'staging-3.6' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging: (1094 commits)
    staging: comedi: jr3_pci: fix iomem dereference
    staging: comedi: drivers: use comedi_fc.h cmdtest helpers
    Staging: winbond: usb_free_urb(NULL) is safe
    Staging: winbond: checkpatch cleanup
    Staging: winbond: Removed undesired spaces, lines and tabs
    Staging: winbond: Typo corrections in comments
    Staging: winbond: Changed c99 comments to c89 comments
    staging: r8712u: Do not queue cloned skb
    staging: comedi: ni_mio_common: always lock in ni_ai_poll()
    staging: comedi: s626: add FIXME comment
    staging: comedi: s626: don't dereference insn->data
    staging: comedi: s526: fix if() check in s526_gpct_winsn()
    staging: comedi: s626: cleanup comments in s626_initialize()
    staging: comedi: s626: remove clear of kzalloc'ed data
    staging: comedi: s626: remove 'WDInterval' from private data
    staging: comedi: s626: remove 'ChargeEnabled' from private data
    staging: comedi: s626: remove 'IsBoardRevA' comment
    staging: comedi: s626: #if 0 out the "SAA7146 BUG WORKAROUND"
    staging: comedi: s626: remove 'allocatedBuf' from private data
    staging: comedi: s626: add final attach message
    ...

    Linus Torvalds
     
  • Pull s390 updates from Martin Schwidefsky:
    "The main new feature is machine support for System zEC12 including
    transactional memory, runtime instrumentation, support for scm block
    devices via eadm subchannels, and support for CEX4 crypto cards.

    In addition there are some nice improvements: bpf jit compiler, arch
    backend for cmpxchg_double, relative exception table entries, dasd
    partition detection independent from the dasd driver ioctls, and cpu
    cache information in /proc/cpuinfo and /sys/device/cpu.

    And last but not least a series of cleanup patches from Heiko."

    Fix up trivial add-add conflict in arch/s390/Kconfig due to commit
    b952741c8079 ("cputime: Generalize CONFIG_VIRT_CPU_ACCOUNTING")

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux: (76 commits)
    s390: update defconfig
    s390/jump label,nss: let shared kernel support depend on !JUMP_LABEL
    s390/disassembler: fix decoding of risblg instruction
    s390/bpf,jit: add support for BPF_S_ANC_ALU_XOR_X instruction
    s390/traps: move call to print_modules() out of show_regs()
    s390/mm: mark free_initrd_mem() as __init
    s390/dasd: check count address during online setting
    drivers/s390/char/monreader.c: fix error return code
    s390/cmpxchg,percpu: implement cmpxchg_double()
    s390/percpu: implement this_cpu_add_return()
    s390/percpu: implement this_cpu_xchg()
    s390/kexec: remove CONFIG_KEXEC
    s390/irq: use designated initializers for irq class array
    s390: add uninitialized_var() to suppress false positive compiler warnings
    s390/crashdump: move fill_cpu_elf_notes() prototype to header file
    s390/process: add missing header include
    s390/ptrace: add missing ifdef
    s390/ipl,decrompressor: disable branch profiling
    s390/perf_events: compile only for CONFIG_64BIT
    s390/tape: remove even more tape block leftovers
    ...

    Linus Torvalds
     
  • Pull perf update from Ingo Molnar:
    "Lots of changes in this cycle as well, with hundreds of commits from
    over 30 contributors. Most of the activity was on the tooling side.

    Higher level changes:

    - New 'perf kvm' analysis tool, from Xiao Guangrong.

    - New 'perf trace' system-wide tracing tool

    - uprobes fixes + cleanups from Oleg Nesterov.

    - Lots of patches to make perf build on Android out of box, from
    Irina Tirdea

    - Extend ftrace function tracing utility to be more dynamic for its
    users. It allows for data passing to the callback functions, as
    well as reading regs as if a breakpoint were to trigger at function
    entry.

    The main goal of this patch series was to allow kprobes to use
    ftrace as an optimized probe point when a probe is placed on an
    ftrace nop. With lots of help from Masami Hiramatsu, and going
    through lots of iterations, we finally came up with a good
    solution.

    - Add cpumask for uncore pmu, use it in 'stat', from Yan, Zheng.

    - Various tracing updates from Steve Rostedt

    - Clean up and improve 'perf sched' performance by elliminating lots
    of needless calls to libtraceevent.

    - Event group parsing support, from Jiri Olsa

    - UI/gtk refactorings and improvements from Namhyung Kim

    - Add support for non-tracepoint events in perf script python, from
    Feng Tang

    - Add --symbols to 'script', similar to the one in 'report', from
    Feng Tang.

    Infrastructure enhancements and fixes:

    - Convert the trace builtins to use the growing evsel/evlist
    tracepoint infrastructure, removing several open coded constructs
    like switch like series of strcmp to dispatch events, etc.
    Basically what had already been showcased in 'perf sched'.

    - Add evsel constructor for tracepoints, that uses libtraceevent just
    to parse the /format events file, use it in a new 'perf test' to
    make sure the libtraceevent format parsing regressions can be more
    readily caught.

    - Some strange errors were happening in some builds, but not on the
    next, reported by several people, problem was some parser related
    files, generated during the build, didn't had proper make deps, fix
    from Eric Sandeen.

    - Introduce struct and cache information about the environment where
    a perf.data file was captured, from Namhyung Kim.

    - Fix handling of unresolved samples when --symbols is used in
    'report', from Feng Tang.

    - Add union member access support to 'probe', from Hyeoncheol Lee.

    - Fixups to die() removal, from Namhyung Kim.

    - Render fixes for the TUI, from Namhyung Kim.

    - Don't enable annotation in non symbolic view, from Namhyung Kim.

    - Fix pipe mode in 'report', from Namhyung Kim.

    - Move related stats code from stat to util/, will be used by the
    'stat' kvm tool, from Xiao Guangrong.

    - Remove die()/exit() calls from several tools.

    - Resolve vdso callchains, from Jiri Olsa

    - Don't pass const char pointers to basename, so that we can
    unconditionally use libgen.h and thus avoid ifdef BIONIC lines,
    from David Ahern

    - Refactor hist formatting so that it can be reused with the GTK
    browser, From Namhyung Kim

    - Fix build for another rbtree.c change, from Adrian Hunter.

    - Make 'perf diff' command work with evsel hists, from Jiri Olsa.

    - Use the only field_sep var that is set up: symbol_conf.field_sep,
    fix from Jiri Olsa.

    - .gitignore compiled python binaries, from Namhyung Kim.

    - Get rid of die() in more libtraceevent places, from Namhyung Kim.

    - Rename libtraceevent 'private' struct member to 'priv' so that it
    works in C++, from Steven Rostedt

    - Remove lots of exit()/die() calls from tools so that the main perf
    exit routine can take place, from David Ahern

    - Fix x86 build on x86-64, from David Ahern.

    - {int,str,rb}list fixes from Suzuki K Poulose

    - perf.data header fixes from Namhyung Kim

    - Allow user to indicate objdump path, needed in cross environments,
    from Maciek Borzecki

    - Fix hardware cache event name generation, fix from Jiri Olsa

    - Add round trip test for sw, hw and cache event names, catching the
    problem Jiri fixed, after Jiri's patch, the test passes
    successfully.

    - Clean target should do clean for lib/traceevent too, fix from David
    Ahern

    - Check the right variable for allocation failure, fix from Namhyung
    Kim

    - Set up evsel->tp_format regardless of evsel->name being set
    already, fix from Namhyung Kim

    - Oprofile fixes from Robert Richter.

    - Remove perf_event_attr needless version inflation, from Jiri Olsa

    - Introduce libtraceevent strerror like error reporting facility,
    from Namhyung Kim

    - Add pmu mappings to perf.data header and use event names from cmd
    line, from Robert Richter

    - Fix include order for bison/flex-generated C files, from Ben
    Hutchings

    - Build fixes and documentation corrections from David Ahern

    - Assorted cleanups from Robert Richter

    - Let O= makes handle relative paths, from Steven Rostedt

    - perf script python fixes, from Feng Tang.

    - Initial bash completion support, from Frederic Weisbecker

    - Allow building without libelf, from Namhyung Kim.

    - Support DWARF CFI based unwind to have callchains when %bp based
    unwinding is not possible, from Jiri Olsa.

    - Symbol resolution fixes, while fixing support PPC64 files with an
    .opt ELF section was the end goal, several fixes for code that
    handles all architectures and cleanups are included, from Cody
    Schafer.

    - Assorted fixes for Documentation and build in 32 bit, from Robert
    Richter

    - Cache the libtraceevent event_format associated to each evsel
    early, so that we avoid relookups, i.e. calling pevent_find_event
    repeatedly when processing tracepoint events.

    [ This is to reduce the surface contact with libtraceevents and
    make clear what is that the perf tools needs from that lib: so
    far parsing the common and per event fields. ]

    - Don't stop the build if the audit libraries are not installed, fix
    from Namhyung Kim.

    - Fix bfd.h/libbfd detection with recent binutils, from Markus
    Trippelsdorf.

    - Improve warning message when libunwind devel packages not present,
    from Jiri Olsa"

    * 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (282 commits)
    perf trace: Add aliases for some syscalls
    perf probe: Print an enum type variable in "enum variable-name" format when showing accessible variables
    perf tools: Check libaudit availability for perf-trace builtin
    perf hists: Add missing period_* fields when collapsing a hist entry
    perf trace: New tool
    perf evsel: Export the event_format constructor
    perf evsel: Introduce rawptr() method
    perf tools: Use perf_evsel__newtp in the event parser
    perf evsel: The tracepoint constructor should store sys:name
    perf evlist: Introduce set_filter() method
    perf evlist: Renane set_filters method to apply_filters
    perf test: Add test to check we correctly parse and match syscall open parms
    perf evsel: Handle endianity in intval method
    perf evsel: Know if byte swap is needed
    perf tools: Allow handling a NULL cpu_map as meaning "all cpus"
    perf evsel: Improve tracepoint constructor setup
    tools lib traceevent: Fix error path on pevent_parse_event
    perf test: Fix build failure
    trace: Move trace event enable from fs_initcall to core_initcall
    tracing: Add an option for disabling markers
    ...

    Linus Torvalds
     
  • …it/rostedt/linux-kconfig

    Pull localmodconfig fixes from Steven Rostedt:
    "Bill Pemberton added some changes to make streamline-config.pl work
    again as a stand-alone tool (outside of make localmodconfig).

    Also, he added a couple of updates to make the code be more "Perl
    proper".

    Added last minute fix to localyesconfig, that was the same as
    localmodconfig since v3.2, due to a change in the makefiles."

    * tag 'localmodconfig-v3.7-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-kconfig:
    localmodconfig: Fix localyesconfig to set to 'y' not 'm'
    localmodconfig: Use my variable for loop in streamline_config.pl
    localmodconfig: Use 3 parameter open in streamline_config.pl
    localmodconfig: Rework find_config in streamline_config.pl
    localmodconfig: Set default value for ksource in streamline_config.pl

    Linus Torvalds
     
  • The kbuild target 'localyesconfig' has been same as 'localmodconfig'
    since the commit 50bce3e "kconfig/streamline_config.pl: merge
    local{mod,yes}config". The commit expects this script generates
    different configure depending on target, but it was not yet implemented.

    So I added code that sets to 'yes' when target is 'localyesconfig'.

    Link: http://lkml.kernel.org/r/1349101470-12243-1-git-send-email-yuta.and@gmail.com

    Cc: stable@vger.kernel.org # v3.2
    Cc: linux-kbuild@vger.kernel.org
    Signed-off-by: Yuta Ando
    Signed-off-by: Steven Rostedt

    Yuta Ando
     
  • This updates scripts/dtc to commit 317a5d9 "dtc: zero out new label
    objects" from git://git.jdl.com/software/dtc.git.

    This adds features such as:
    * /bits/ syntax for cell data.
    * Math expressions within cell data.
    * The ability to delete properties or nodes.
    * Support for #line directives in the input file, which allows the use of
    cpp on *.dts.
    * -i command-line option (/include/ path)
    * -W/-E command-line options for error/warning control.
    * Removal of spew to STDOUT containing the filename being compiled.
    * Many additions to the libfdt API.

    Signed-off-by: Stephen Warren
    Acked-by: Jon Loeliger
    Signed-off-by: Rob Herring

    Stephen Warren