24 Jul, 2018

1 commit


30 Jun, 2018

1 commit

  • The data transfer and CDC message headers differ in SMC-R and SMC-D.
    This patch adds support for the SMC-D data transfer to the existing SMC
    code. It consists of the following:

    * SMC-D CDC support
    * SMC-D tx support
    * SMC-D rx support

    The CDC header is stored at the beginning of the receive buffer. Thus, a
    rx_offset variable is added for the CDC header offset within the buffer
    (0 for SMC-R).

    Signed-off-by: Hans Wippel
    Signed-off-by: Ursula Braun
    Suggested-by: Thomas Richter
    Signed-off-by: David S. Miller

    Hans Wippel
     

24 May, 2018

1 commit


19 May, 2018

1 commit


18 May, 2018

1 commit

  • syzkaller found that following program crashes the host :

    {
    int fd = socket(AF_SMC, SOCK_STREAM, 0);
    int val = 1;

    listen(fd, 0);
    shutdown(fd, SHUT_RDWR);
    setsockopt(fd, 6, TCP_NODELAY, &val, 4);
    }

    Simply initialize conn.tx_work & conn.send_lock at socket creation,
    rather than deeper in the stack.

    ODEBUG: assert_init not available (active state 0) object type: timer_list hint: (null)
    WARNING: CPU: 1 PID: 13988 at lib/debugobjects.c:329 debug_print_object+0x16a/0x210 lib/debugobjects.c:326
    Kernel panic - not syncing: panic_on_warn set ...

    CPU: 1 PID: 13988 Comm: syz-executor0 Not tainted 4.17.0-rc4+ #46
    Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
    Call Trace:
    __dump_stack lib/dump_stack.c:77 [inline]
    dump_stack+0x1b9/0x294 lib/dump_stack.c:113
    panic+0x22f/0x4de kernel/panic.c:184
    __warn.cold.8+0x163/0x1b3 kernel/panic.c:536
    report_bug+0x252/0x2d0 lib/bug.c:186
    fixup_bug arch/x86/kernel/traps.c:178 [inline]
    do_error_trap+0x1de/0x490 arch/x86/kernel/traps.c:296
    do_invalid_op+0x1b/0x20 arch/x86/kernel/traps.c:315
    invalid_op+0x14/0x20 arch/x86/entry/entry_64.S:992
    RIP: 0010:debug_print_object+0x16a/0x210 lib/debugobjects.c:326
    RSP: 0018:ffff880197a37880 EFLAGS: 00010086
    RAX: 0000000000000061 RBX: 0000000000000005 RCX: ffffc90001ed0000
    RDX: 0000000000004aaf RSI: ffffffff8160f6f1 RDI: 0000000000000001
    RBP: ffff880197a378c0 R08: ffff8801aa7a0080 R09: ffffed003b5e3eb2
    R10: ffffed003b5e3eb2 R11: ffff8801daf1f597 R12: 0000000000000001
    R13: ffffffff88d96980 R14: ffffffff87fa19a0 R15: ffffffff81666ec0
    debug_object_assert_init+0x309/0x500 lib/debugobjects.c:692
    debug_timer_assert_init kernel/time/timer.c:724 [inline]
    debug_assert_init kernel/time/timer.c:776 [inline]
    del_timer+0x74/0x140 kernel/time/timer.c:1198
    try_to_grab_pending+0x439/0x9a0 kernel/workqueue.c:1223
    mod_delayed_work_on+0x91/0x250 kernel/workqueue.c:1592
    mod_delayed_work include/linux/workqueue.h:541 [inline]
    smc_setsockopt+0x387/0x6d0 net/smc/af_smc.c:1367
    __sys_setsockopt+0x1bd/0x390 net/socket.c:1903
    __do_sys_setsockopt net/socket.c:1914 [inline]
    __se_sys_setsockopt net/socket.c:1911 [inline]
    __x64_sys_setsockopt+0xbe/0x150 net/socket.c:1911
    do_syscall_64+0x1b1/0x800 arch/x86/entry/common.c:287
    entry_SYSCALL_64_after_hwframe+0x49/0xbe

    Fixes: 01d2f7e2cdd3 ("net/smc: sockopts TCP_NODELAY and TCP_CORK")
    Signed-off-by: Eric Dumazet
    Cc: Ursula Braun
    Cc: linux-s390@vger.kernel.org
    Reported-by: syzbot
    Signed-off-by: David S. Miller

    Eric Dumazet
     

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
     

10 Jan, 2017

2 commits