Linux 4.18.20
From: Greg KH
Date: Wed Nov 21 2018 - 05:31:18 EST
I'm announcing the release of the 4.18.20 kernel.
All users of the 4.18 kernel series must upgrade.
Note, this is the LAST 4.18.y kernel release. 4.18 is now end-of-life,
please move to 4.19.y at this point in time.
The updated 4.18.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-4.18.y
and can be browsed at the normal kernel.org git web browser:
http://git.kernel.org/?p=linux/kernel/git/stable/linux-stable.git;a=summary
thanks,
greg k-h
------------
Makefile | 2
arch/alpha/include/asm/termios.h | 8 ++
arch/alpha/include/uapi/asm/ioctls.h | 5 +
arch/alpha/include/uapi/asm/termbits.h | 17 ++++
arch/arm/boot/dts/imx6ull-pinfunc.h | 18 +++--
arch/arm/configs/imx_v6_v7_defconfig | 1
arch/arm/mm/proc-v7.S | 2
arch/arm64/boot/dts/altera/socfpga_stratix10.dtsi | 9 ++
arch/arm64/boot/dts/altera/socfpga_stratix10_socdk.dts | 2
arch/mips/include/asm/mach-loongson64/irq.h | 2
arch/mips/kernel/crash.c | 3
arch/mips/kernel/machine_kexec.c | 3
arch/mips/loongson64/loongson-3/irq.c | 56 +---------------
arch/mips/pci/pci-legacy.c | 4 +
arch/powerpc/Makefile | 6 +
arch/powerpc/boot/crt0.S | 4 -
arch/powerpc/include/asm/mmu-8xx.h | 34 +--------
arch/powerpc/kernel/eeh.c | 5 +
arch/powerpc/kernel/head_8xx.S | 45 +++++++-----
arch/powerpc/kernel/module_64.c | 9 ++
arch/powerpc/kernel/traps.c | 9 ++
arch/powerpc/mm/8xx_mmu.c | 2
arch/powerpc/mm/dump_linuxpagetables.c | 12 ++-
arch/powerpc/mm/hugetlbpage.c | 3
arch/powerpc/mm/slice.c | 21 ++++--
arch/powerpc/mm/tlb_nohash.c | 3
arch/powerpc/platforms/powernv/memtrace.c | 21 ++++--
arch/x86/include/asm/mce.h | 2
arch/x86/kernel/cpu/mcheck/mce.c | 6 +
arch/x86/kernel/cpu/mshyperv.c | 11 +++
arch/x86/kernel/cpu/vmware.c | 2
arch/x86/um/shared/sysdep/ptrace_32.h | 10 --
arch/xtensa/boot/Makefile | 2
arch/xtensa/include/asm/processor.h | 6 +
arch/xtensa/kernel/head.S | 7 +-
arch/xtensa/kernel/vmlinux.lds.S | 1
block/blk-core.c | 5 -
crypto/crypto_user.c | 18 ++---
drivers/acpi/acpica/dsopcode.c | 4 -
drivers/acpi/nfit/core.c | 4 -
drivers/acpi/nfit/mce.c | 8 +-
drivers/ata/libata-core.c | 2
drivers/block/zram/zram_drv.c | 26 +------
drivers/cdrom/cdrom.c | 2
drivers/clk/at91/clk-pll.c | 3
drivers/clk/clk-s2mps11.c | 30 ++++++++
drivers/clk/hisilicon/reset.c | 5 -
drivers/clk/meson/axg.c | 13 +++
drivers/clk/meson/gxbb.c | 12 +++
drivers/clk/rockchip/clk-ddr.c | 4 -
drivers/clk/rockchip/clk-rk3328.c | 8 +-
drivers/clk/sunxi-ng/ccu-sun50i-h6.c | 8 +-
drivers/clocksource/i8253.c | 14 +++-
drivers/firmware/efi/libstub/fdt.c | 4 +
drivers/gpu/drm/amd/amdgpu/amdgpu_ids.c | 2
drivers/gpu/drm/amd/amdgpu/amdgpu_job.c | 1
drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.c | 1
drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 3
drivers/gpu/drm/amd/display/dc/core/dc.c | 19 ++++-
drivers/gpu/drm/amd/display/modules/color/color_gamma.c | 8 +-
drivers/gpu/drm/amd/powerplay/hwmgr/smu8_hwmgr.c | 5 +
drivers/gpu/drm/amd/powerplay/smumgr/ci_smumgr.c | 2
drivers/gpu/drm/amd/powerplay/smumgr/fiji_smumgr.c | 2
drivers/gpu/drm/amd/powerplay/smumgr/iceland_smumgr.c | 2
drivers/gpu/drm/amd/powerplay/smumgr/tonga_smumgr.c | 2
drivers/gpu/drm/amd/powerplay/smumgr/vegam_smumgr.c | 2
drivers/gpu/drm/drm_dp_mst_topology.c | 3
drivers/gpu/drm/drm_panel_orientation_quirks.c | 14 +++-
drivers/gpu/drm/etnaviv/etnaviv_sched.c | 2
drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_fbdev.c | 1
drivers/gpu/drm/i915/gvt/gtt.h | 1
drivers/gpu/drm/i915/i915_gem.c | 12 ---
drivers/gpu/drm/i915/i915_gem_execbuffer.c | 2
drivers/gpu/drm/i915/i915_gem_gtt.h | 30 ++++----
drivers/gpu/drm/i915/intel_audio.c | 17 ++++
drivers/gpu/drm/i915/intel_display.c | 42 +++++-------
drivers/gpu/drm/i915/intel_dp.c | 50 ++++++++++----
drivers/gpu/drm/i915/intel_dp_link_training.c | 26 ++-----
drivers/gpu/drm/i915/intel_dp_mst.c | 49 +++++++-------
drivers/gpu/drm/i915/intel_lpe_audio.c | 4 -
drivers/gpu/drm/i915/intel_lrc.c | 14 +++-
drivers/gpu/drm/i915/intel_ringbuffer.c | 38 ++++++++++
drivers/gpu/drm/msm/adreno/adreno_gpu.c | 5 -
drivers/gpu/drm/nouveau/dispnv50/disp.c | 14 +---
drivers/gpu/drm/nouveau/nouveau_backlight.c | 4 -
drivers/gpu/drm/omapdrm/omap_dmm_tiler.c | 11 +++
drivers/gpu/drm/rcar-du/rcar_du_kms.c | 14 +++-
drivers/gpu/drm/rockchip/rockchip_drm_drv.c | 6 +
drivers/hwmon/hwmon.c | 8 +-
drivers/input/touchscreen/wm97xx-core.c | 3
drivers/media/i2c/tvp5150.c | 14 ++--
drivers/media/pci/cx23885/altera-ci.c | 10 ++
drivers/media/platform/coda/coda-common.c | 3
drivers/mtd/devices/Kconfig | 2
drivers/mtd/spi-nor/cadence-quadspi.c | 2
drivers/net/bonding/bond_main.c | 4 -
drivers/of/of_numa.c | 9 ++
drivers/rtc/hctosys.c | 4 -
drivers/scsi/qla2xxx/qla_gs.c | 6 -
drivers/scsi/qla2xxx/qla_init.c | 23 +-----
drivers/scsi/qla2xxx/qla_iocb.c | 17 ----
drivers/scsi/qla2xxx/qla_mbx.c | 5 -
drivers/scsi/qla2xxx/qla_nvme.c | 5 -
drivers/scsi/qla2xxx/qla_target.c | 3
drivers/scsi/qla2xxx/tcm_qla2xxx.c | 4 -
drivers/scsi/scsi_lib.c | 8 ++
drivers/soc/ti/knav_qmss.h | 4 -
drivers/soc/ti/knav_qmss_acc.c | 10 +-
drivers/soc/ti/knav_qmss_queue.c | 22 ++++--
drivers/staging/iio/adc/ad7606.c | 7 +-
drivers/staging/most/video/video.c | 4 -
drivers/thermal/thermal_core.c | 3
drivers/tty/serial/sc16is7xx.c | 19 +++--
drivers/tty/serial/sh-sci.c | 4 -
drivers/tty/tty_baudrate.c | 4 -
drivers/tty/tty_io.c | 2
drivers/vhost/scsi.c | 4 -
drivers/video/fbdev/aty/mach64_accel.c | 28 +++-----
fs/9p/vfs_file.c | 16 ++++
fs/btrfs/disk-io.c | 12 +++
fs/btrfs/inode.c | 5 -
fs/btrfs/ioctl.c | 14 +++-
fs/ceph/inode.c | 8 +-
fs/configfs/symlink.c | 2
fs/ext4/inode.c | 5 -
fs/ext4/namei.c | 5 +
fs/ext4/resize.c | 28 ++++----
fs/ext4/super.c | 17 ++--
fs/ext4/xattr.c | 21 +++++-
fs/fuse/dev.c | 29 ++++++--
fs/fuse/file.c | 4 -
fs/gfs2/bmap.c | 14 ++--
fs/gfs2/rgrp.c | 3
fs/namespace.c | 28 +++++---
fs/nfs/nfs4state.c | 8 +-
fs/nfsd/nfs4proc.c | 3
fs/ocfs2/aops.c | 12 ++-
fs/ocfs2/cluster/masklog.h | 9 ++
fs/ocfs2/dir.c | 3
fs/overlayfs/dir.c | 9 ++
fs/overlayfs/namei.c | 4 -
fs/udf/super.c | 30 ++++----
fs/udf/udf_sb.h | 2
include/linux/ceph/libceph.h | 8 ++
include/linux/i8253.h | 1
include/linux/mtd/nand.h | 5 -
include/linux/nmi.h | 2
include/xen/xen-ops.h | 2
kernel/debug/kdb/kdb_bt.c | 4 -
kernel/debug/kdb/kdb_main.c | 14 ++--
kernel/debug/kdb/kdb_support.c | 12 +--
kernel/trace/trace_kprobe.c | 39 +++++++----
lib/ubsan.c | 3
mm/hugetlb.c | 23 +++++-
mm/memory_hotplug.c | 1
mm/mempolicy.c | 32 ++++++++-
mm/swapfile.c | 6 -
net/9p/protocol.c | 5 +
net/netfilter/nf_conntrack_core.c | 13 ++-
net/sunrpc/xdr.c | 5 -
security/selinux/hooks.c | 3
tools/perf/util/pmu.c | 2
tools/testing/selftests/powerpc/tm/tm-tmspr.c | 27 ++++---
163 files changed, 1075 insertions(+), 595 deletions(-)
Aaro Koskinen (1):
arm64: dts: stratix10: fix multicast filtering
Akshu Agrawal (1):
drm/amd/powerplay: Enable/Disable NBPSTATE on On/OFF of UVD
Alex Deucher (1):
drm/amdgpu: add missing CHIP_HAINAN in amdgpu_ucode_get_load_type
Alexandru Ardelean (1):
staging:iio:ad7606: fix voltage scales
Amir Goldstein (2):
ovl: fix error handling in ovl_verify_set_fh()
ovl: fix recursive oi->lock in ovl_link()
Andrea Arcangeli (1):
mm: thp: relax __GFP_THISNODE for MADV_HUGEPAGE mappings
Andreas Gruenbacher (2):
gfs2: Put bitmap buffers in put_super
gfs2: Fix metadata read-ahead during truncate (2)
Andrey Grodzovsky (1):
drm/amdgpu: Fix SDMA TO after GPU reset v3
Ard Biesheuvel (2):
ARM: 8809/1: proc-v7: fix Thumb annotation of cpu_v7_hvc_switch_mm
efi/arm/libstub: Pack FDT after populating it
Arnd Bergmann (2):
mtd: docg3: don't set conflicting BCH_CONST_PARAMS option
lib/ubsan.c: don't mark __ubsan_handle_builtin_unreachable as noreturn
Benjamin Coddington (1):
mnt: fix __detach_mounts infinite loop
Boris Brezillon (1):
mtd: nand: Fix nanddev_neraseblocks()
Breno Leitao (1):
powerpc/selftests: Wait all threads to join
Changwei Ge (1):
ocfs2: fix a misuse a of brelse after failing ocfs2_check_dir_entry
Chris Wilson (5):
drm/i915: Large page offsets for pread/pwrite
drm/i915: Compare user's 64b GTT offset even on 32b
drm/i915: Mark pin flags as u64
drm/i915/ringbuffer: Delay after EMIT_INVALIDATE for gen4/gen5
drm/i915/execlists: Force write serialisation into context image vs execution
Christian Hewitt (1):
clk: meson-gxbb: set fclk_div3 as CLK_IS_CRITICAL
Christophe JAILLET (1):
mtd: spi-nor: cadence-quadspi: Return error code in cqspi_direct_read_execute()
Christophe Leroy (6):
powerpc/traps: restore recoverability of machine_check interrupts
powerpc/mm: fix always true/false warning in slice.c
powerpc/mm: Don't report hugepage tables as memory leaks when using kmemleak
Revert "powerpc/8xx: Use L1 entry APG to handle _PAGE_ACCESSED for CONFIG_SWAP"
kdb: use correct pointer when 'btc' calls 'btt'
kdb: print real address of pointers instead of hashed addresses
Clint Taylor (1):
drm/i915/hdmi: Add HDMI 2.0 audio clock recovery N values
Colin Ian King (2):
drm/amdgpu/powerplay: fix missing break in switch statements
staging: most: video: fix registration of an empty comp core_component
Dan Williams (1):
acpi, nfit: Fix ARS overflow continuation
Daniel Axtens (1):
powerpc/nohash: fix undefined behaviour when testing page size support
Dengcheng Zhu (1):
MIPS: kexec: Mark CPU offline before disabling local IRQ
Dhinakaran Pandiyan (2):
drm/i915/dp: Fix link retraining comment in intel_dp_long_pulse()
drm/i915/dp: Restrict link retrain workaround to external monitors
Diego Viola (1):
libata: blacklist SAMSUNG MZ7TD256HAFV-000L9 SSD
Dmitry Osipenko (2):
thermal: core: Fix use-after-free in thermal_cooling_device_destroy_sysfs
hwmon: (core) Fix double-free in __hwmon_device_register()
Dominique Martinet (2):
9p locks: fix glock.client_id leak in do_lock
9p: clear dangling pointers in p9stat_free
Enric Balletbo i Serra (1):
clk: rockchip: Fix static checker warning in rockchip_ddrclk_get_parent call
Eric Biggers (1):
crypto: user - fix leaking uninitialized memory to userspace
Eric W. Biederman (3):
mount: Retest MNT_LOCKED in do_umount
mount: Don't allow copying MNT_UNBINDABLE|MNT_LOCKED mounts
mount: Prevent MNT_DETACH from disconnecting locked mounts
Fabio Estevam (1):
ARM: imx_v6_v7_defconfig: Select CONFIG_TMPFS_POSIX_ACL
Filipe Manana (2):
Btrfs: fix infinite loop on inode eviction after deduplication of eof block
Btrfs: fix data corruption due to cloning of eof block
Frank Sorenson (1):
sunrpc: correct the computation for page_ptr when truncating
Greg Edwards (1):
vhost/scsi: truncate T10 PI iov_iter to prot_bytes
Greg Kroah-Hartman (2):
Revert "ACPICA: AML interpreter: add region addresses in global list during initialization"
Linux 4.18.20
Guenter Roeck (1):
configfs: replace strncpy with memcpy
Gustavo A. R. Silva (1):
reset: hisilicon: fix potential NULL pointer dereference
H. Peter Anvin (1):
termios, tty/tty_baudrate.c: fix buffer overrun
H. Peter Anvin (Intel) (1):
arch/alpha, termios: implement BOTHER, IBSHIFT and termios2
Hans de Goede (1):
drm: panel-orientation-quirks: Add quirk for Acer One 10 (S1003)
Himanshu Madhani (2):
scsi: qla2xxx: Fix incorrect port speed being set for FC adapters
scsi: qla2xxx: Fix driver hang when FC-NVMe LUNs are configured
Huacai Chen (3):
MIPS/PCI: Call pcie_bus_configure_settings() to set MPS/MRRS
MIPS: Loongson-3: Fix CPU UART irq delivery problem
MIPS: Loongson-3: Fix BRIDGE irq delivery problem
Icenowy Zheng (1):
clk: sunxi-ng: h6: fix bus clocks' divider position
Ilya Dryomov (1):
libceph: bump CEPH_MSG_MAX_DATA_LEN
Jan Kara (1):
udf: Prevent write-unsupported filesystem to be remounted read-write
Jarod Wilson (1):
bonding/802.3ad: fix link_failure_count tracking
Jerome Brunet (1):
clk: meson: axg: mark fdiv2 and fdiv3 as critical
Joel Stanley (2):
powerpc/Makefile: Fix PPC_BOOK3S_64 ASFLAGS
powerpc/boot: Ensure _zimage_start is a weak symbol
Johan Hovold (1):
drm/msm: fix OF child-node lookup
John Garry (2):
drm/hisilicon: hibmc: Do not carry error code in HiBMC framebuffer pointer
of, numa: Validate some distance map rules
Kieran Bingham (1):
drm: rcar-du: Update Gen3 output limitations
Kirill Tkhai (2):
fuse: Fix use-after-free in fuse_dev_do_read()
fuse: Fix use-after-free in fuse_dev_do_write()
Krzysztof Kozlowski (1):
clk: s2mps11: Fix matching when built as module and DT node contains compatible
Lu Fengqi (1):
btrfs: fix pinned underflow after transaction aborted
Lucas Stach (2):
media: coda: don't overwrite h.264 profile_idc on decoder instance
drm/etnaviv: fix bogus fence complete check in timeout handler
Lukas Czerner (1):
fuse: fix use-after-free in fuse_direct_IO()
Lyude Paul (5):
drm/nouveau: Check backlight IDs are >= 0, not > 0
drm/nouveau: Fix nv50_mstc->best_encoder()
drm/i915: Don't unset intel_connector->mst_port
drm/i915: Skip vcpi allocation for MSTB ports that are gone
drm/i915: Fix possible race in intel_dp_add_mst_connector()
Maciej W. Rozycki (1):
rtc: hctosys: Add missing range error reporting
Manasi Navare (1):
drm/i915/dp: Link train Fallback on eDP only if fallback link BW can fit panel's native mode
Marc Zyngier (2):
soc: ti: QMSS: Fix usage of irq_set_affinity_hint
drm/rockchip: Allow driver to be shutdown on reboot/kexec
Marco Felsch (1):
media: tvp5150: fix width alignment during set_selection()
Masami Hiramatsu (1):
tracing/kprobes: Check the probe on unloaded module correctly
Mathieu Malaterre (1):
watchdog/core: Add missing prototypes for weak functions
Max Filippov (3):
xtensa: add NOTES section to the linker script
xtensa: make sure bFLT stack is 16 byte aligned
xtensa: fix boot parameters address translation
Michael Ellerman (1):
powerpc/mm: Fix page table dump to work on Radix
Michael Kelley (2):
x86/hyper-v: Enable PIT shutdown quirk
clockevents/drivers/i8253: Add support for PIT shutdown quirk
Michal Hocko (1):
memory_hotplug: cond_resched in __remove_pages
Mike Kravetz (1):
hugetlbfs: fix kernel BUG at fs/hugetlbfs/inode.c:444!
Miklos Szeredi (4):
ovl: check whiteout in ovl_create_over_whiteout()
fuse: fix blocked_waitq wakeup
fuse: set FR_SENT while locked
fuse: fix leaked notify reply
Mikulas Patocka (2):
mach64: fix display corruption on big endian machines
mach64: fix image corruption due to reading accelerator registers
Miles Chen (1):
tty: check name length in tty_find_polling_driver()
Minchan Kim (1):
zram: close udev startup race condition as default groups
Ming Lei (1):
SCSI: fix queue cleanup race before queue initialization is done
Nicholas Mc Guire (1):
media: pci: cx23885: handle adding to list failure
Nicholas Piggin (1):
powerpc/64/module: REL32 relocation range check
Ondrej Mosnacek (1):
selinux: check length properly in SCTP bind hook
Phil Elwell (1):
sc16is7xx: Fix for multi-channel stall
Quinn Tran (7):
scsi: qla2xxx: Fix process response queue for ISP26XX and above
scsi: qla2xxx: Remove stale debug trace message from tcm_qla2xxx
scsi: qla2xxx: shutdown chip if reset fail
scsi: qla2xxx: Fix duplicate switch database entries
scsi: qla2xxx: Fix re-using LoopID when handle is in use
scsi: qla2xxx: Fix NVMe session hang on unload
scsi: qla2xxx: Initialize port speed to avoid setting lower speed
Randy Dunlap (1):
Input: wm97xx-ts - fix exit path
Rashmica Gupta (1):
powerpc/memtrace: Remove memory in chunks
Rex Zhu (1):
drm/amdgpu: Fix typo in amdgpu_vmid_mgr_init
Richard Weinberger (1):
um: Drop own definition of PTRACE_SYSEMU/_SINGLESTEP
Robbie Ko (1):
Btrfs: fix cur_offset in the error case for nocow
Ronald Wahl (1):
clk: at91: Fix division by zero in PLL recalc_rate()
Sam Bobroff (1):
powerpc/eeh: Fix possible null deref in eeh_dump_dev_log()
Scott Mayhew (1):
nfsd: COPY and CLONE operations require the saved filehandle to be set
SivapiriyanKumarasamy (1):
drm/amd/display: fix gamma not being applied
Stanislav Lisovskiy (1):
drm/dp_mst: Check if primary mstb is null
Stefano Stabellini (1):
CONFIG_XEN_PV breaks xen_create_contiguous_region on ARM
Steven Rostedt (VMware) (1):
x86/cpu/vmware: Do not trace vmware_sched_clock()
Su Sung Chung (1):
drm/amd/display: fix bug of accessing invalid memory
Sébastien Szymanski (1):
ARM: dts: imx6ull: keep IMX6UL_ prefix for signals on both i.MX6UL and i.MX6ULL
Theodore Ts'o (2):
ext4: avoid possible double brelse() in add_new_gdb() on error path
ext4: fix possible leak of sbi->s_group_desc_leak in error path
Thomas Richter (1):
perf stat: Handle different PMU names with common prefix
Thor Thayer (1):
arm64: dts: stratix10: Support Ethernet Jumbo frame
Tomi Valkeinen (1):
drm/omap: fix memory barrier bug in DMM driver
Trond Myklebust (1):
NFSv4: Don't exit the state manager without clearing NFS4CLNT_MANAGER_RUNNING
Vasily Averin (16):
ext4: add missing brelse() update_backups()'s error path
ext4: add missing brelse() in set_flexbg_block_bitmap()'s error path
ext4: add missing brelse() add_new_gdb_meta_bg()'s error path
ext4: avoid potential extra brelse in setup_new_flex_group_blocks()
ext4: missing !bh check in ext4_xattr_inode_write()
ext4: fix possible inode leak in the retry loop of ext4_resize_fs()
ext4: avoid buffer leak on shutdown in ext4_mark_iloc_dirty()
ext4: avoid buffer leak in ext4_orphan_add() after prior errors
ext4: fix missing cleanup if ext4_alloc_flex_bg_array() fails while resizing
ext4: fix possible leak of s_journal_flag_rwsem in error path
ext4: fix buffer leak in ext4_xattr_get_block() on error path
ext4: release bs.bh before re-using in ext4_xattr_block_find()
ext4: fix buffer leak in ext4_xattr_move_to_block() on error path
ext4: fix buffer leak in ext4_expand_extra_isize_ea() on error path
ext4: fix buffer leak in __ext4_read_dirblock() on error path
mm/swapfile.c: use kvzalloc for swap_info_struct allocation
Vasily Khoruzhick (1):
netfilter: conntrack: fix calculation of next bucket number in early_drop
Ville Syrjälä (4):
drm/i915: Restore vblank interrupts earlier
drm/i915: Fix error handling for the NV12 fb dimensions check
drm/i915: Fix ilk+ watermarks when disabling pipes
drm/i915: Don't oops during modeset shutdown after lpe audio deinit
Vishal Verma (2):
acpi/nfit, x86/mce: Handle only uncorrectable machine checks
acpi/nfit, x86/mce: Validate a MCE's address before using it
Wengang Wang (1):
ocfs2: free up write context when direct IO failed
Yan, Zheng (1):
Revert "ceph: fix dentry leak in splice_dentry()"
Yoshihiro Shimoda (1):
serial: sh-sci: Fix could not remove dev_attr_rx_fifo_timeout
Young_X (1):
cdrom: fix improper type cast, which can leat to information leak.
Ziyuan Xu (1):
clk: rockchip: fix wrong mmc sample phase shift for rk3328
Attachment:
signature.asc
Description: PGP signature