From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-3.9 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 1C429C54FCB for ; Sat, 25 Apr 2020 17:29:21 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id DE00320700 for ; Sat, 25 Apr 2020 17:29:20 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lonelycoder.com header.i=@lonelycoder.com header.b="QAwk7HOu" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726177AbgDYR3U (ORCPT ); Sat, 25 Apr 2020 13:29:20 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40378 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1726145AbgDYR3U (ORCPT ); Sat, 25 Apr 2020 13:29:20 -0400 Received: from mail-il1-x12e.google.com (mail-il1-x12e.google.com [IPv6:2607:f8b0:4864:20::12e]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 018D5C09B04D for ; Sat, 25 Apr 2020 10:29:19 -0700 (PDT) Received: by mail-il1-x12e.google.com with SMTP id e8so12564098ilm.7 for ; Sat, 25 Apr 2020 10:29:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=lonelycoder.com; s=google; h=mime-version:from:date:message-id:subject:to; bh=W8PtJHuos4f7kE/zqDG6OHkG/lAdIycvdAHU7I6Bdno=; b=QAwk7HOufak0isMR0bjJqbvMbKHyAHp5rmb1AZZeIfyjmONJ2V0D8uD2dk+tv2MxGO 81ybYAC6sdDrRW/6YDk0UQpcZSJqHNAAzL5FXoqGwgLfOQ8XvEGsuX88O6c06rdoNudf voV7rmelAsRf8RZSUEeKli0puf7wNajWrwbzRG64X62ysj0PymVqdMZwgX33Zu8tpXQE tCZoYeZQu3VGJwyBn03svenk3eBovEqyUYpQ9IKz+jQ0i5GPsXfgmVBoLZu7QB98xXi4 KX4hHSAdp7L9ELMMqSJxYYo2sMfNqFgJwxa2etgT/fVPgpWiMkMv6bYmpJaoJQjQAwPg 5WRg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=W8PtJHuos4f7kE/zqDG6OHkG/lAdIycvdAHU7I6Bdno=; b=DA8bizpEe410rkNMd73XW/FPzxO6vsLN5NCNNol+wfgEpRyKhu+22DOuxgaXlf/HeA tNQMMz9IYO+9srkKxXUULEDDJewGHAdmjaRSw9pF5LOE43r4e58MUO/jH/bwO6vIubzX OBI4TlCl0htfiRqvxDfXE/0Zmb5RaHRUtI76NkKDGdYlP9b4Lh0hAIHforALQHppjKcl 02GaIOX1hFGET2VSp5M4XLqKEASfWG97/7Yvzig610tIJioHzT9wB1sL+Im6+57Pb7sp Vqjs2SuSFMMVRpD0eUDmEG5JFJoGjGKYiqCZfafH4cklfI+3B0vMUk1vH56E5WmoLv5z 0CUw== X-Gm-Message-State: AGi0PuZIkliRsPCWOwWCbiZ4G9sO2XE0pJ1tUnAdMWwgo38klgB982Zp crqNHUCnGOGSLrHKST7kc6PcfqZBPx4s1+ZOLvH/cf/r2zg= X-Google-Smtp-Source: APiQypKUEt9xF/24tAPEr9tI40zNE61VwJcz1azwPnHbzgJ7a7o4nnCN3OabPx9epXiZsMJgbnKzEDGrC33aDPXrhyY= X-Received: by 2002:a92:985d:: with SMTP id l90mr14575191ili.108.1587835758992; Sat, 25 Apr 2020 10:29:18 -0700 (PDT) MIME-Version: 1.0 From: Andreas Smas Date: Sat, 25 Apr 2020 10:29:08 -0700 Message-ID: Subject: io_uring, IORING_OP_RECVMSG and ancillary data To: axboe@kernel.dk, linux-fsdevel@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Sender: linux-fsdevel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-fsdevel@vger.kernel.org Hi, Tried to use io_uring with OP_RECVMSG with ancillary buffers (for my particular use case I'm using SO_TIMESTAMP for incoming UDP packets). These submissions fail with EINVAL due to the check in __sys_recvmsg_sock(). The following hack fixes the problem for me and I get valid timestamps back. Not suggesting this is the real fix as I'm not sure what the implications of this is. Any insight into this would be much appreciated. Thanks, Andreas diff --git a/net/socket.c b/net/socket.c index 2dd739fba866..689f41f4156e 100644 --- a/net/socket.c +++ b/net/socket.c @@ -2637,10 +2637,6 @@ long __sys_recvmsg_sock(struct socket *sock, struct msghdr *msg, struct user_msghdr __user *umsg, struct sockaddr __user *uaddr, unsigned int flags) { - /* disallow ancillary data requests from this path */ - if (msg->msg_control || msg->msg_controllen) - return -EINVAL; - return ____sys_recvmsg(sock, msg, umsg, uaddr, flags, 0); }