[GIT PULL] Please pull RDMA subsystem changes
From: Jason Gunthorpe
Date: Wed Jun 06 2018 - 17:43:17 EST
Hi Linus,
Here are the RDMA patches for 4.18.
No merge conflicts this time, and as of this writing netdev's pull request has
not been merged so the merge diffstat shows a number of ethernet related files
from the various shared pull requests in the two trees.
There are a few more merge commits in this history than has been typical in
the past. Instead of choosing the net or RDMA tree to get certain patches,
Mellanox is now providing a 'shared branch' which is intended to carry all
commits to drivers/net/ethernet/mellanox/mlx5/core and is used to merge those
patches into both the net and rdma trees. This is expected to reduce the merge
conflicts by ensuring both trees have all commits related to mlx5/core and
related, and no rdma or netdev commit is left only in the others tree.
The following changes since commit 55ba49cbcef37053d973f9a45bc58818c333fe13:
RDMA/hns: Move the location for initializing tmp_len (2018-05-23 15:45:44 -0600)
are available in the Git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma.git tags/for-linus
for you to fetch changes up to c1191a19fecad92b73c25770a7f47174280ca564:
RDMA/mlx5: Update SPDX tags to show proper license (2018-06-05 14:04:20 -0600)
----------------------------------------------------------------
4.18 Merge window pull request
This has been a quiet cycle for RDMA, the big bulk is the usual smallish
driver updates and bug fixes. About four new uAPI related things. Not as much
Szykaller patches this time, the bugs it finds are getting harder to fix.
- More work cleaning up the RDMA CM code
- Usual driver bug fixes and cleanups for qedr, qib, hfi1, hns, i40iw, iw_cxgb4, mlx5, rxe
- Driver specific resource tracking and reporting via netlink
- Continued work for name space support from Parav
- MPLS support for the verbs flow steering uAPI
- A few tricky IPoIB fixes improving robustness
- HFI1 driver support for the '16B' management packet format
- Some auditing to not print kernel pointers via %llx or similar
- Mark the entire 'UCM' user-space interface as BROKEN with the intent to remove it
entirely. The user space side of this was long ago replaced with RDMA-CM and
syzkaller is finding bugs in the residual UCM interface nobody wishes to fix because
nobody uses it.
- Purge more bogus BUG_ON's from Leon
- 'flow counters' verbs uAPI
- T10 fixups for iser/isert, these are Acked by Martin but going through the RDMA
tree due to dependencies
----------------------------------------------------------------
Alex Estrin (3):
IB/hfi1: Complete check for locally terminated smp
IB/{hfi1, qib}: Add handling of kernel restart
IB/isert: Fix for lib/dma_debug check_sync warning
Ariel Levkovich (7):
IB/uverbs: Expose GRE flow spec to the user-kernel ABI header
IB/uverbs: Introduce a GRE steering match filter
IB/uverbs: Expose MPLS flow spec to the user-kernel ABI header
IB/uverbs: Introduce a MPLS steering match filter
IB/mlx5: Add support for GRE flow specification
IB/mlx5: Add support for MPLS flow specification
IB/mlx5: Expose MPLS related tunneling offloads
Arnd Bergmann (1):
iw_cxgb4: add INFINIBAND_ADDR_TRANS dependency
Ben Hutchings (1):
IB: Fix RDMA_RXE and INFINIBAND_RDMAVT dependencies for DMA_VIRT_OPS
Brian Welty (1):
IB/{hfi1, qib, rdmavt}: Move logic to allocate receive WQE into rdmavt
Christophe JAILLET (3):
net/mlx5: Vport, Use 'kvfree()' for memory allocated by 'kvzalloc()'
net/mlx5: Eswitch, Use 'kvfree()' for memory allocated by 'kvzalloc()'
IB/mlx5: Use 'kvfree()' for memory allocated by 'kvzalloc()'
Colin Ian King (4):
net/mlx5: remove some extraneous spaces in indentations
RDMA/qedr: fix spelling mistake: "failes" -> "fails"
net/mlx5: fix spelling mistake: "modfiy" -> "modify"
RDMA/qedr: fix spelling mistake: "adrresses" -> "addresses"
Cong Wang (1):
infiniband: fix a possible use-after-free bug
Don Hiatt (3):
IB/hfi1: Define 16B Management Packets
IB/hfi1: Add support for 16B Management Packets
IB/hfi1: Add 16B Management Packet trace support
Doug Ledford (7):
Merge branch 'k.o/for-rc' into k.o/wip/dl-for-next
Merge tag 'mlx5-updates-2018-05-07' of git://git.kernel.org/.../mellanox/linux into k.o/wip/dl-for-next
RDMA/hfi1: Fix build error with debugfs disabled
RDMA/uapi: Fix uapi breakage
RDMA/ipoib: Update paths on CLIENT_REREG/SM_CHANGE events
Merge branch 'wip/dl-ipoib' into wip/dl-for-next
RDMA/hns_roce: Don't check return value of zap_vma_ptes()
Erez Shitrit (1):
IB/mlx5: Fetch soft WQE's on fatal error state
Evgenii Smirnov (1):
RDMA/ipoib: drop skb on path record lookup failure
Idan Burstein (1):
IB/mlx5: posting klm/mtt list inline in the send queue for reg_wr
Jack Morgenstein (2):
IB/core: Make testing MR flags for writability a static inline function
IB/mlx4: Mark user MR as writable if actual virtual memory is writable
Jason Gunthorpe (8):
RDMA/rdma_cm: Remove process_req and timer sorting
RDMA/rdma_cm: Make rdma_addr_cancel into a fence
RDMA/rdma_cm: Delete rdma_addr_client
Merge tag 'mlx5-updates-2018-05-17' of git://git.kernel.org/.../mellanox/linux into for-next
Merge branch 'mr_fix' into git://git.kernel.org/.../rdma/rdma for-next
RDMA/core: Remove indirection through ib_cache_setup()
Merge branch 'mini_cqe' into git://git.kernel.org/.../rdma/rdma for-next
Merge tag 'verbs_flow_counters' of git://git.kernel.org/.../leon/linux-rdma.git into for-next
Jia-Ju Bai (3):
infiniband: i40iw: Replace GFP_ATOMIC with GFP_KERNEL in i40iw_add_mqh_4
infiniband: i40iw: Replace GFP_ATOMIC with GFP_KERNEL in i40iw_make_listen_node
infiniband: i40iw: Replace GFP_ATOMIC with GFP_KERNEL in i40iw_l2param_change
Kaike Wan (3):
IB/hfi1: Ensure VL index is within bounds
IB/hfi1: Remove unused variable
IB/hfi1: Rename exp_lock to exp_mutex
Kamenee Arumugam (1):
IB/Hfi1: Read CCE Revision register to verify the device is responsive
Leon Romanovsky (16):
net/mlx5: Decrease level of prints about non-existent MKEY
RDMA/hns: Drop local zgid in favor of core defined variable
RDMA/mlx5: Remove debug prints of VMA pointers
RDMA/ucm: Mark UCM interface as BROKEN
RDMA/mlx4: Catch FW<->SW misalignment without machine crash
RDMA/mlx4: Discard unknown SQP work requests
RDMA/cxgb3: Don't crash kernel just because IDR is full
RDMA/cm: Abort loop in case of CM dequeue
RDMA/cma: Ignore unknown event
RDMA/mad: Delete inaccessible BUG_ON
RDMA/mad: Convert BUG_ONs to error flows
RDMA/mlx5: Don't check return value of zap_vma_ptes()
RDMA/mlx4: Don't crash machine if zap_vma_ptes() fails
mm: Remove return value of zap_vma_ptes()
RDMA/restrack: Change SPDX tag to properly reflect license
RDMA/mlx5: Update SPDX tags to show proper license
Matan Barak (2):
IB/uverbs: Add an ib_uobject getter to ioctl() infrastructure
IB/core: Support passing uhw for create_flow
Max Gurtovoy (4):
IB/isert: fix T10-pi check mask setting
RDMA/core: introduce check masks for T10-PI offload
IB/iser: use T10-PI check mask definitions from core layer
IB/isert: use T10-PI check mask definitions from core layer
Michael J. Ruhl (4):
IB/hfi1: Return actual error value from program_rcvarray()
IB/hfi1: Return correct value for device state
IB/hfi1: Reorder incorrect send context disable
IB/hfi1: Set port number for errorinfo MAD response
Mike Marciniszyn (7):
IB/hfi1: Fix fault injection init/exit issues
IB/hfi1: Cleanup of exp_rcv
IB/{rdmavt,hfi1}: Change hrtimer add to use pinned version
IB/qib: Fix DMA api warning with debug kernel
IB/hfi1: Fix user context tail allocation for DMA_RTAIL
IB/hfi1: Add bypass register defines and replace blind constants
IB/hfi1: Fix comment on default hdr entry size
Mitko Haralanov (1):
IB/hfi1: Rework fault injection machinery
Moshe Shemesh (2):
net/mlx5: Refactor num of blocks in mailbox calculation
net/mlx5: Fix dump_command mailbox length printed
Or Gerlitz (1):
net/mlx5: Use flow counter pointer as input to the query function
Parav Pandit (9):
IB/core: Use CONFIG_SECURITY_INFINIBAND to compile out security code
IB/core: Make gid_table_reserve_default() return void
IB/core: Reuse gid_table_release_one() in table allocation failure
IB/cm: Avoid AV ah_attr overwriting during LAP message handling
IB/cm: Store and restore ah_attr during LAP msg processing
IB/cm: Store and restore ah_attr during CM message processing
IB/core: Remove duplicate declaration of gid_cache_wq
IB/core: Reduce the places that use zgid
IB/core: Introduce and use rdma_gid_table()
Rabie Loulou (1):
net/mlx5e: Explicitly set destination e-switch in FDB rules
Raed Salem (11):
net/mlx5: Export flow counter related API
IB/core: Introduce counters object and its create/destroy
IB/uverbs: Add create/destroy counters support
IB/core: Introduce counters read verb
IB/uverbs: Add read counters support
IB/core: Add support for flow counters
IB/uverbs: Add support for flow counters
IB/mlx5: Add counters create and destroy support
IB/mlx5: Add flow counters binding support
IB/mlx5: Add flow counters read support
IB/mlx5: Add counters read support
Roi Dayan (1):
net/mlx5: Add merged e-switch cap
Sebastian Andrzej Siewior (1):
IB/ipoib: replace local_irq_disable() with proper locking
Sebastian Sanchez (4):
IB/hfi1: Prevent LNI hang when LCB can't obtain lanes
IB/hfi1: Optimize kthread pointer locking when queuing CQ entries
IB/hfi1: Create common functions for affinity CPU mask operations
IB/{hfi1, rdmavt, qib}: Implement CQ completion vector support
Sergey Gorenko (1):
IB/iser: Do not reduce max_sectors
Shahar Klein (4):
net/mlx5: Properly handle a vport destination when setting FTE
net/mlx5: Add destination e-switch owner
net/mlx5: Add source e-switch owner
net/mlx5e: Explicitly set source e-switch in offloaded TC rules
Shiraz Saleem (1):
i40iw: Extend port reuse support for listeners
Souptick Joarder (2):
infiniband: hw: hfi1: Change return type to vm_fault_t
infiniband: hw: qib: Change return type to vm_fault_t
Steve Wise (12):
RDMA/nldev: Add explicit pad attribute
RDMA/nldev: add driver-specific resource tracking
RDMA/nldev: helper functions to add driver attributes
iw_cxgb4: dump detailed driver-specific QP information
iw_cxgb4: fix uninitialized variable warnings
RDMA/NLDEV: remove mr iova attribute
iw_cxgb4: remove wr_id attributes
iw_cxgb4: always set iw_cm_id.provider_data
RDMA/CMA: add rdma_iw_cm_id() and rdma_res_to_id() helpers
iw_cxgb4: provide detailed provider-specific CM_ID information
iw_cxgb4: provide detailed driver-specific CQ information
iw_cxgb4: provide detailed driver-specific MR information
Tariq Toukan (1):
net/mlx5: Cleanup unused field in Work Queue parameters
Wei Hu(Xavier) (6):
RDMA/hns: Modify uar allocation algorithm to avoid bitmap exhaust
RDMA/hns: Increase checking CMQ status timeout value
RDMA/hns: Add reset process for RoCE in hip08
RDMA/hns: Fix the illegal memory operation when cross page
RDMA/uverbs: Hoist the common process of disassociate_ucontext into ib core
RDMA/hns: Implement the disassociate_ucontext API
Yixian Liu (1):
RDMA/hns: Add 64KB page size support for hip08
Yonatan Cohen (3):
net/mlx5: Exposing a new mini-CQE format
IB/mlx5: Refactor CQE compression response
IB/mlx5: Introduce a new mini-CQE format
YueHaibing (2):
IB/cxgb4: use skb_put_zero()/__skb_put_zero
IB/hns: Use zeroing memory allocator instead of allocator/memset
Yuval Shaia (2):
IB/rxe: Change rxe_rcv to return void
IB/core: Remove redundant return
Zhu Yanjun (9):
IB/rxe: make the variable static
IB/rxe: avoid export symbols
IB/rxe: make rxe_release_udp_tunnel static
IB/rxe: optimize the function duplicate_request
IB/rxe: replace refcount_inc with skb_get
IB/rxe: change rxe_set_mtu function type to void
IB/rxe: remove unused function variable
IB/rxe: avoid calling WARN_ON_ONCE twice
IB/rxe: avoid unnecessary export
oulijun (1):
RDMA/hns: Rename the idx field of db
drivers/infiniband/Kconfig | 11 +
drivers/infiniband/core/Makefile | 9 +-
drivers/infiniband/core/addr.c | 172 +++----
drivers/infiniband/core/cache.c | 112 ++---
drivers/infiniband/core/cm.c | 62 ++-
drivers/infiniband/core/cma.c | 36 +-
drivers/infiniband/core/core_priv.h | 3 -
drivers/infiniband/core/device.c | 4 +-
drivers/infiniband/core/mad.c | 12 +-
drivers/infiniband/core/nldev.c | 122 ++++-
drivers/infiniband/core/restrack.c | 9 +-
drivers/infiniband/core/roce_gid_mgmt.c | 2 -
drivers/infiniband/core/security.c | 4 -
drivers/infiniband/core/ucma.c | 6 +-
drivers/infiniband/core/umem.c | 13 +-
drivers/infiniband/core/uverbs.h | 2 +
drivers/infiniband/core/uverbs_cmd.c | 111 ++++-
drivers/infiniband/core/uverbs_main.c | 42 +-
drivers/infiniband/core/uverbs_std_types.c | 3 +-
.../infiniband/core/uverbs_std_types_counters.c | 157 +++++++
drivers/infiniband/core/uverbs_std_types_cq.c | 23 +-
.../infiniband/core/uverbs_std_types_flow_action.c | 4 +-
drivers/infiniband/core/verbs.c | 2 +-
drivers/infiniband/hw/cxgb3/iwch.h | 1 -
drivers/infiniband/hw/cxgb4/Kconfig | 1 +
drivers/infiniband/hw/cxgb4/Makefile | 3 +-
drivers/infiniband/hw/cxgb4/cm.c | 1 +
drivers/infiniband/hw/cxgb4/iw_cxgb4.h | 5 +
drivers/infiniband/hw/cxgb4/provider.c | 8 +
drivers/infiniband/hw/cxgb4/qp.c | 9 +-
drivers/infiniband/hw/cxgb4/restrack.c | 501 ++++++++++++++++++++
drivers/infiniband/hw/hfi1/Makefile | 10 +-
drivers/infiniband/hw/hfi1/affinity.c | 497 ++++++++++++++++++--
drivers/infiniband/hw/hfi1/affinity.h | 10 +-
drivers/infiniband/hw/hfi1/chip.c | 82 ++--
drivers/infiniband/hw/hfi1/chip.h | 15 +-
drivers/infiniband/hw/hfi1/chip_registers.h | 13 +-
drivers/infiniband/hw/hfi1/debugfs.c | 292 +-----------
drivers/infiniband/hw/hfi1/debugfs.h | 102 ++--
drivers/infiniband/hw/hfi1/driver.c | 53 ++-
drivers/infiniband/hw/hfi1/exp_rcv.c | 39 +-
drivers/infiniband/hw/hfi1/exp_rcv.h | 24 +-
drivers/infiniband/hw/hfi1/fault.c | 375 +++++++++++++++
drivers/infiniband/hw/hfi1/fault.h | 109 +++++
drivers/infiniband/hw/hfi1/file_ops.c | 8 +-
drivers/infiniband/hw/hfi1/hfi.h | 61 ++-
drivers/infiniband/hw/hfi1/init.c | 47 +-
drivers/infiniband/hw/hfi1/mad.c | 37 +-
drivers/infiniband/hw/hfi1/pcie.c | 8 +
drivers/infiniband/hw/hfi1/pio.c | 44 +-
drivers/infiniband/hw/hfi1/rc.c | 10 +-
drivers/infiniband/hw/hfi1/ruc.c | 154 +------
drivers/infiniband/hw/hfi1/sdma.c | 12 +-
drivers/infiniband/hw/hfi1/trace.c | 43 +-
drivers/infiniband/hw/hfi1/trace_dbg.h | 3 +-
drivers/infiniband/hw/hfi1/trace_ibhdrs.h | 160 ++++---
drivers/infiniband/hw/hfi1/uc.c | 4 +-
drivers/infiniband/hw/hfi1/ud.c | 61 ++-
drivers/infiniband/hw/hfi1/user_exp_rcv.c | 11 +-
drivers/infiniband/hw/hfi1/user_sdma.h | 4 +-
drivers/infiniband/hw/hfi1/verbs.c | 45 +-
drivers/infiniband/hw/hfi1/verbs.h | 15 +-
drivers/infiniband/hw/hns/hns_roce_alloc.c | 8 +-
drivers/infiniband/hw/hns/hns_roce_cmd.c | 3 +
drivers/infiniband/hw/hns/hns_roce_device.h | 14 +
drivers/infiniband/hw/hns/hns_roce_hw_v2.c | 188 ++++++--
drivers/infiniband/hw/hns/hns_roce_hw_v2.h | 7 +-
drivers/infiniband/hw/hns/hns_roce_main.c | 76 ++-
drivers/infiniband/hw/hns/hns_roce_mr.c | 6 -
drivers/infiniband/hw/hns/hns_roce_pd.c | 10 +-
drivers/infiniband/hw/i40iw/i40iw_cm.c | 67 ++-
drivers/infiniband/hw/i40iw/i40iw_cm.h | 4 +-
drivers/infiniband/hw/i40iw/i40iw_hw.c | 34 +-
drivers/infiniband/hw/i40iw/i40iw_main.c | 2 +-
drivers/infiniband/hw/mlx4/mad.c | 1 -
drivers/infiniband/hw/mlx4/main.c | 60 +--
drivers/infiniband/hw/mlx4/mr.c | 50 +-
drivers/infiniband/hw/mlx4/qp.c | 2 +-
drivers/infiniband/hw/mlx5/cq.c | 59 ++-
drivers/infiniband/hw/mlx5/ib_rep.c | 2 +-
drivers/infiniband/hw/mlx5/ib_rep.h | 2 +-
drivers/infiniband/hw/mlx5/main.c | 511 ++++++++++++++++++---
drivers/infiniband/hw/mlx5/mlx5_ib.h | 36 ++
drivers/infiniband/hw/mlx5/qp.c | 43 +-
drivers/infiniband/hw/qedr/verbs.c | 4 +-
drivers/infiniband/hw/qib/qib.h | 4 +-
drivers/infiniband/hw/qib/qib_file_ops.c | 12 +-
drivers/infiniband/hw/qib/qib_init.c | 13 +
drivers/infiniband/hw/qib/qib_rc.c | 8 +-
drivers/infiniband/hw/qib/qib_ruc.c | 154 +------
drivers/infiniband/hw/qib/qib_uc.c | 4 +-
drivers/infiniband/hw/qib/qib_ud.c | 4 +-
drivers/infiniband/hw/qib/qib_user_pages.c | 20 +-
drivers/infiniband/hw/qib/qib_verbs.c | 6 +-
drivers/infiniband/hw/qib/qib_verbs.h | 2 -
drivers/infiniband/sw/rdmavt/Kconfig | 2 +-
drivers/infiniband/sw/rdmavt/cq.c | 74 ++-
drivers/infiniband/sw/rdmavt/cq.h | 6 +-
drivers/infiniband/sw/rdmavt/qp.c | 151 +++++-
drivers/infiniband/sw/rdmavt/trace_cq.h | 35 +-
drivers/infiniband/sw/rdmavt/vt.c | 35 +-
drivers/infiniband/sw/rxe/Kconfig | 1 +
drivers/infiniband/sw/rxe/rxe.c | 11 +-
drivers/infiniband/sw/rxe/rxe.h | 4 +-
drivers/infiniband/sw/rxe/rxe_comp.c | 10 +-
drivers/infiniband/sw/rxe/rxe_loc.h | 13 +-
drivers/infiniband/sw/rxe/rxe_mr.c | 13 +-
drivers/infiniband/sw/rxe/rxe_net.c | 18 +-
drivers/infiniband/sw/rxe/rxe_net.h | 3 -
drivers/infiniband/sw/rxe/rxe_recv.c | 7 +-
drivers/infiniband/sw/rxe/rxe_req.c | 2 +-
drivers/infiniband/sw/rxe/rxe_resp.c | 20 +-
drivers/infiniband/sw/rxe/rxe_verbs.c | 6 +-
drivers/infiniband/ulp/ipoib/ipoib.h | 2 +-
drivers/infiniband/ulp/ipoib/ipoib_main.c | 93 ++--
drivers/infiniband/ulp/ipoib/ipoib_multicast.c | 15 +-
drivers/infiniband/ulp/iser/iscsi_iser.c | 12 +-
drivers/infiniband/ulp/iser/iscsi_iser.h | 6 +-
drivers/infiniband/ulp/iser/iser_initiator.c | 2 +-
drivers/infiniband/ulp/iser/iser_memory.c | 4 +-
drivers/infiniband/ulp/iser/iser_verbs.c | 21 +-
drivers/infiniband/ulp/isert/ib_isert.c | 37 +-
drivers/net/ethernet/mellanox/mlx5/core/cmd.c | 28 +-
.../mellanox/mlx5/core/diag/fs_tracepoint.c | 2 +-
drivers/net/ethernet/mellanox/mlx5/core/en_arfs.c | 2 +-
drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 1 -
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c | 3 +
drivers/net/ethernet/mellanox/mlx5/core/eswitch.c | 17 +-
drivers/net/ethernet/mellanox/mlx5/core/eswitch.h | 2 +
.../ethernet/mellanox/mlx5/core/eswitch_offloads.c | 21 +-
drivers/net/ethernet/mellanox/mlx5/core/fs_cmd.c | 9 +
drivers/net/ethernet/mellanox/mlx5/core/fs_core.c | 26 +-
drivers/net/ethernet/mellanox/mlx5/core/fs_core.h | 4 +-
.../net/ethernet/mellanox/mlx5/core/fs_counters.c | 7 +-
drivers/net/ethernet/mellanox/mlx5/core/mr.c | 4 +-
drivers/net/ethernet/mellanox/mlx5/core/qp.c | 18 +-
drivers/net/ethernet/mellanox/mlx5/core/vport.c | 6 +-
drivers/net/ethernet/mellanox/mlx5/core/wq.h | 1 -
include/linux/mlx5/device.h | 12 +
include/linux/mlx5/fs.h | 10 +-
include/linux/mlx5/mlx5_ifc.h | 66 ++-
include/linux/mm.h | 8 +-
include/rdma/ib_addr.h | 20 +-
include/rdma/ib_cache.h | 1 +
include/rdma/ib_verbs.h | 102 +++-
include/rdma/rdma_cm.h | 3 +
include/rdma/rdma_vt.h | 7 +-
include/rdma/rdmavt_cq.h | 5 +-
include/rdma/rdmavt_qp.h | 1 +
include/rdma/restrack.h | 22 +-
include/rdma/uverbs_ioctl.h | 11 +
include/uapi/rdma/ib_user_ioctl_cmds.h | 21 +
include/uapi/rdma/ib_user_verbs.h | 63 +++
include/uapi/rdma/mlx5-abi.h | 30 +-
include/uapi/rdma/rdma_netlink.h | 30 +-
mm/memory.c | 7 +-
156 files changed, 4560 insertions(+), 1827 deletions(-)
create mode 100644 drivers/infiniband/core/uverbs_std_types_counters.c
create mode 100644 drivers/infiniband/hw/cxgb4/restrack.c
create mode 100644 drivers/infiniband/hw/hfi1/fault.c
create mode 100644 drivers/infiniband/hw/hfi1/fault.h
Attachment:
signature.asc
Description: PGP signature