From patchwork Thu Oct 18 20:58:34 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: John Fastabend X-Patchwork-Id: 986283 Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="JMruYEE1"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 42bhH06T1gz9sCQ for ; Fri, 19 Oct 2018 07:58:52 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727174AbeJSFBk (ORCPT ); Fri, 19 Oct 2018 01:01:40 -0400 Received: from mail-io1-f68.google.com ([209.85.166.68]:39863 "EHLO mail-io1-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726454AbeJSFBk (ORCPT ); Fri, 19 Oct 2018 01:01:40 -0400 Received: by mail-io1-f68.google.com with SMTP id z16-v6so21845464iol.6 for ; Thu, 18 Oct 2018 13:58:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id; bh=ESUvG30xNpO8GkWXyDsWE7K2J/QE+flCvmI/N3boFqM=; b=JMruYEE1RJQ6r3zd6wjc/V+imMI7Ozv+qypGCYVg/tZnZBL/QPUjL8teUHWAr8OAp5 c0y1FOoB82GWF9ZTuwSevhfcNC4cv8VecBgLWt35uOrASod9KaLvTJNYO4WSEEAtU44V kD3gPVjcvNwZnSHDU+AgiUmiM78aFFuhQQ96HyIgoz6Tcx3L6JPLOwqNJgkroql12j0Z GrTdZfHJT9GnsAvTBYjJOAYw8fF3z3YSkdfXdFK3lxl/ZOBhksiDc34gqjekBt/6rpiv jlc/S3U9ZluPDB9spZuJeqQ/1N//0m0aeaKidZQ5IacSbC/mmV3LQjUsnvoeZ9V/JAz6 zREw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=ESUvG30xNpO8GkWXyDsWE7K2J/QE+flCvmI/N3boFqM=; b=OCGtW3e1cPnz+p9rSjZJc+d7IBIOlt0XBXma7SlJR7Tr8/zbGRKXlYsTYsN0WjGgIw JRr1YH4vr2DXaVcHpXUque5ImpzvfQN0UA1gHuAkv0wBGKnjG99v4JEKWLMTOHUbQzJj x+XzTJ6v+s2t/icZbiwT+sxlhyCxpwhgT24iEPKtuGVmlPiMhL+mXzmj+tSoyY2fDxiN CqaD0DLYfZM6d950ixtDKpYVyL9OhfVRJP9NMdp3ji37UvWQOag5taYrXrHl3DyFzK5P BPAqNVdVZXZkshhNkoWLZMwBbseukTIoPEFu7GAhl1gVACOCU+BhXRZ0CzLpp9mmgMof comw== X-Gm-Message-State: AGRZ1gLUUVmeX/6Xdj39+Xmh38Mnq65cgWKjfiQ1WUJvrEtkUz7SFvZ/ izOYjo4WetaTL/CX/eTd5hOVWtr2 X-Google-Smtp-Source: AJdET5c72vCWrRfkQdS3R3k3IGKcQ1AnUvmURHKu4JJgIe13smMK/i5LUuEQBlosQN025KawVBkIlg== X-Received: by 2002:a6b:ac03:: with SMTP id v3-v6mr1289141ioe.71.1539896329986; Thu, 18 Oct 2018 13:58:49 -0700 (PDT) Received: from localhost.localdomain ([184.63.162.180]) by smtp.gmail.com with ESMTPSA id j19-v6sm506110itj.31.2018.10.18.13.58.43 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Thu, 18 Oct 2018 13:58:49 -0700 (PDT) From: John Fastabend To: ast@kernel.org, daniel@iogearbox.net, eric.dumazet@gmail.com Cc: john.fastabend@gmail.com, netdev@vger.kernel.org Subject: [bpf-next v3 0/2] Fix kcm + sockmap by checking psock type Date: Thu, 18 Oct 2018 13:58:34 -0700 Message-Id: <1539896316-13403-1-git-send-email-john.fastabend@gmail.com> X-Mailer: git-send-email 1.9.1 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org We check if the sk_user_data (the psock in skmsg) is in fact a sockmap type to late, after we read the refcnt which is an error. This series moves the check up before reading refcnt and also adds a test to test_maps to test trying to add a KCM socket into a sockmap. While reviewig this code I also found an issue with KCM and kTLS where each uses sk_data_ready hooks and associated stream parser breaking expectations in kcm, ktls or both. But that fix will need to go to net. Thanks to Eric for reporting. v2: Fix up file +/- my scripts lost track of them v3: return EBUSY if refcnt is zero John Fastabend (2): bpf: skmsg, fix psock create on existing kcm/tls port bpf: test_maps add a test to catch kcm + sockmap include/linux/skmsg.h | 25 +++++++++--- net/core/sock_map.c | 11 +++--- tools/testing/selftests/bpf/Makefile | 2 +- tools/testing/selftests/bpf/sockmap_kcm.c | 14 +++++++ tools/testing/selftests/bpf/test_maps.c | 64 ++++++++++++++++++++++++++++++- 5 files changed, 103 insertions(+), 13 deletions(-) create mode 100644 tools/testing/selftests/bpf/sockmap_kcm.c