02 Nov, 2017

1 commit

  • Many source files in the tree are missing licensing information, which
    makes it harder for compliance tools to determine the correct license.

    By default all files without license information are under the default
    license of the kernel, which is GPL version 2.

    Update the files which contain no license information with the 'GPL-2.0'
    SPDX license identifier. The SPDX identifier is a legally binding
    shorthand, which can be used instead of the full boiler plate text.

    This patch is based on work done by Thomas Gleixner and Kate Stewart and
    Philippe Ombredanne.

    How this work was done:

    Patches were generated and checked against linux-4.14-rc6 for a subset of
    the use cases:
    - file had no licensing information it it.
    - file was a */uapi/* one with no licensing information in it,
    - file was a */uapi/* one with existing licensing information,

    Further patches will be generated in subsequent months to fix up cases
    where non-standard license headers were used, and references to license
    had to be inferred by heuristics based on keywords.

    The analysis to determine which SPDX License Identifier to be applied to
    a file was done in a spreadsheet of side by side results from of the
    output of two independent scanners (ScanCode & Windriver) producing SPDX
    tag:value files created by Philippe Ombredanne. Philippe prepared the
    base worksheet, and did an initial spot review of a few 1000 files.

    The 4.13 kernel was the starting point of the analysis with 60,537 files
    assessed. Kate Stewart did a file by file comparison of the scanner
    results in the spreadsheet to determine which SPDX license identifier(s)
    to be applied to the file. She confirmed any determination that was not
    immediately clear with lawyers working with the Linux Foundation.

    Criteria used to select files for SPDX license identifier tagging was:
    - Files considered eligible had to be source code files.
    - Make and config files were included as candidates if they contained >5
    lines of source
    - File already had some variant of a license header in it (even if
    Reviewed-by: Philippe Ombredanne
    Reviewed-by: Thomas Gleixner
    Signed-off-by: Greg Kroah-Hartman

    Greg Kroah-Hartman
     

18 Mar, 2016

1 commit


19 Jul, 2014

1 commit


19 Dec, 2013

1 commit

  • E.g. landisk_defconfig, which has CONFIG_NTFS_FS=m:

    ERROR: "__ashrdi3" [fs/ntfs/ntfs.ko] undefined!

    For "lib-y", if no symbols in a compilation unit are referenced by other
    units, the compilation unit will not be included in vmlinux. This
    breaks modules that do reference those symbols.

    Use "obj-y" instead to fix this.

    http://kisskb.ellerman.id.au/kisskb/buildresult/8838077/

    This doesn't fix all cases. There are others, e.g. udivsi3.
    This is also not limited to sh, many architectures handle this in the
    same way.

    A simple solution is to unconditionally include all helper functions.
    A more complex solution is to make the choice of "lib-y" or "obj-y" depend
    on CONFIG_MODULES:

    obj-$(CONFIG_MODULES) += ...
    lib-y($CONFIG_MODULES) += ...

    Signed-off-by: Geert Uytterhoeven
    Cc: Paul Mundt
    Tested-by: Nobuhiro Iwamatsu
    Reviewed-by: Nobuhiro Iwamatsu
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Geert Uytterhoeven
     

14 Jan, 2013

1 commit


27 Jun, 2012

1 commit

  • The standard (see BSS_SECTION() in and
    ) symbol for the end of BSS is __bss_stop.
    This allows to remove all local declarations that have been added to
    several architectures just to please CONFIG_MTD_UCLINUX.

    Signed-off-by: Geert Uytterhoeven
    Acked-by: Paul Mundt
    Acked-by: Mike Frysinger
    Acked-by: Michal Simek
    Acked-by: Greg Ungerer

    Geert Uytterhoeven
     

15 Feb, 2011

1 commit


23 Sep, 2010

1 commit


24 May, 2010

1 commit


01 Mar, 2010

1 commit


24 Nov, 2009

1 commit


08 Sep, 2009

1 commit


01 Sep, 2009

1 commit


24 Aug, 2009

2 commits

  • Signed-off-by: Stuart Menefy
    Signed-off-by: Paul Mundt

    Stuart Menefy
     
  • The SH instruction set has several instructions which accept an 8 bit
    immediate operand. For logical instructions this operand is zero extended,
    for arithmetic instructions the operand is sign extended. After adding an
    option to the assembler to check this, it was found that several pieces
    of assembly code were assuming this behaviour, and in one case
    getting it wrong.

    So this patch explicitly sign extends any immediate operands, which makes
    it obvious what is happening, and fixes the one case which got it wrong.

    Signed-off-by: Stuart Menefy
    Signed-off-by: Paul Mundt

    Stuart Menefy
     

27 Jul, 2009

2 commits


11 Jul, 2009

5 commits

  • Presently the STACK_CHECK() code is called in to multiple times, although
    it's only necessary from the mcount entry. The code still attempts to
    treat the nop case as an ftrace path resulting in superfluous code flow
    for the case where ftrace is disabled. And finally, this also fixes up
    references to a few undefined symbols when FUNCTION_TRACER=n.

    Signed-off-by: Paul Mundt

    Paul Mundt
     
  • Presently the closest reference to function_trace_stop is within a
    CONFIG_STACK_DEBUG block. When this is turned off, the build bails out
    with a pcrel too far error. Reorder things a bit to handle the various
    combinations.

    Signed-off-by: Paul Mundt

    Paul Mundt
     
  • This adds a general CONFIG_MCOUNT in order to permit mcount generation
    without ftrace support. This is primarily for allowing platforms to
    enable aggressive stack overflow checking without having to enable ftrace
    support. Based on the sparc64 implementation.

    Signed-off-by: Paul Mundt

    Paul Mundt
     
  • Add both dynamic and static function graph tracer support for sh.

    Signed-off-by: Matt Fleming
    Signed-off-by: Paul Mundt

    Matt Fleming
     
  • Enable kernel stack checking code in both the dynamic ftrace and mcount
    code paths. Check the stack to see if it's overflowing and make sure
    that the stack pointer contains an address that's either in init_stack
    or after the bss.

    Signed-off-by: Matt Fleming
    Signed-off-by: Paul Mundt

    Matt Fleming
     

06 Jul, 2009

2 commits


29 Jan, 2009

1 commit

  • In rare circumstances csum_partial() can be called with data which is
    not 16 or 32 bit aligned. This is been observed with RPC calls for NFS
    file systems for example. Add support for handling this without resorting
    to the misaligned fixup code (which is why this hasn't been seen as a
    problem). This mimics the i386 version, which has had this support for
    some time.

    Signed-off-by: Stuart Menefy
    Signed-off-by: Paul Mundt

    Stuart Menefy
     

22 Dec, 2008

4 commits

  • We chan't share code for udivsi3 and udivsi3_i4, because they
    have a different clobber list. Copy udivsi3 from gcc-4.1.2.

    As shown in arch/sh/lib/udivsi3.S (and -Os.S),

    .global __udivsi3_i4i
    .global __udivsi3_i4
    .global __udivsi3
    __udivsi3_i4i:
    ...

    Three symbols are sharing one code, which is actually udivsi3_i4i.
    But, this results unwanted code with gcc 4.1.

    In gcc, these three are treated as pseudo instructions that have
    their own clobber list apart from the usual calling convention.

    According to sh's machine description. The clobber list is as
    follows:

    - udivsi3_i4i : t,r1,pr,mach,macl
    - udivsi3_i4 : t,r0,r1,r4,r5,pr,dr0,dr2,dr4
    - udivsi3 : t,r4,pr

    The caller of udivsi3 will be left with a broken r1 and mac*.

    gcc-4.1.x and older(at least to 3.4) generate udivsi3.
    ST's gcc-4.1.1 seems to be OK because it has _i4i.

    Signed-off-by: Takashi YOSHII
    Signed-off-by: Paul Mundt

    Takashi YOSHII
     
  • Needed by older compilers.

    Signed-off-by: Paul Mundt

    Paul Mundt
     
  • This moves in the necessary libgcc bits for SUPERH32 and drops the
    libgcc linking for the regular targets. This in turn allows us to rip
    out quite a few hacks both in sh_ksyms_32 and arch/sh/Makefile.

    Signed-off-by: Paul Mundt

    Paul Mundt
     
  • First cut at dynamic ftrace support.

    Signed-off-by: Matt Fleming
    Signed-off-by: Paul Mundt

    Matt Fleming
     

13 Nov, 2008

1 commit

  • The __copy_user function can corrupt the stack in the case of a
    non-trivial length of data, and either of the first two move instructions
    cause an exception. This is because the fixup for these two instructions
    is mapped to the no_pop case, but these instructions execute after the
    stack is pushed.

    This change creates an explicit NO_POP exception mapping macro, and uses
    it for the two instructions executed in the trivial case where no stack
    pushes occur.

    More information at ST Linux bugzilla:

    https://bugzilla.stlinux.com/show_bug.cgi?id=4824

    Signed-off-by: Dylan Reid
    Signed-off-by: Stuart Menefy
    Signed-off-by: Paul Mundt

    Stuart MENEFY
     

01 Oct, 2008

1 commit


08 Sep, 2008

1 commit


28 Jul, 2008

1 commit

  • EXPORT_SYMBOL's in lib-y considered harmful:

    ...
    MODPOST 1837 modules
    ERROR: "__raw_readsl" [drivers/ssb/ssb.ko] undefined!
    ERROR: "__raw_writesl" [drivers/ssb/ssb.ko] undefined!
    ERROR: "__raw_writesl" [drivers/net/smc91x.ko] undefined!
    ERROR: "__raw_readsl" [drivers/net/smc91x.ko] undefined!
    ERROR: "__raw_writesl" [drivers/net/3c59x.ko] undefined!
    ERROR: "__raw_readsl" [drivers/net/3c59x.ko] undefined!
    ...
    make[2]: *** [__modpost] Error 1

    Reported-by: Adrian Bunk
    Signed-off-by: Adrian Bunk
    Signed-off-by: Paul Mundt

    Adrian Bunk
     

16 May, 2008

1 commit


19 Apr, 2008

1 commit


28 Jan, 2008

4 commits


07 Nov, 2007

1 commit