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.8 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED 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 D6108C35E00 for ; Tue, 25 Feb 2020 11:53:06 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id A675E22464 for ; Tue, 25 Feb 2020 11:53:06 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="u2PlcmDe" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org A675E22464 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=arm.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-mediatek-bounces+linux-mediatek=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:References: Message-ID:Subject:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=RtSan6c4F3x3ZGaW9R6a6UvZembeGkT3sE/qwXNikTY=; b=u2PlcmDePQOJtS Cz+t94z58I2iUOEkm6GbIYeCrw8CVgeVnPQWzWMFCraTlcp0PGWglv1nggTZgyR4tple8ZIz/cTA6 p1J2CXmcbIWhMJ+fyGT93PFo96aa1k6qOeiE7vRwn7SBDTHledIS9+uJ4Qa2adWImEdQzBKUdKkTl 8lTNpoBJjEciBPxEM48ef4TvSop7fCM2Kmn88y/aIVmqu7k+pDliQXoDdXmk1qhVbNOEYff290MBF PCcJJUx1t3Csl0de3Eh1Q9/xb/s4X7FD5vm9CMlQEY5xdHeT0uzFOXBOAn5lqvGdks8F+AMDcLYbd haLdA+IaipB5y7MZYLHg==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1j6Yln-0002Om-N8; Tue, 25 Feb 2020 11:52:59 +0000 Received: from foss.arm.com ([217.140.110.172]) by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1j6Yld-0002Fx-Ru; Tue, 25 Feb 2020 11:52:51 +0000 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 2AF2A1063; Tue, 25 Feb 2020 03:52:46 -0800 (PST) Received: from arrakis.emea.arm.com (arrakis.cambridge.arm.com [10.1.196.71]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id E589E3F6CF; Tue, 25 Feb 2020 03:52:43 -0800 (PST) Date: Tue, 25 Feb 2020 11:52:41 +0000 From: Catalin Marinas To: Macpaul Lin Subject: Re: [PATCH v3] usb: gadget: f_fs: try to fix AIO issue under ARM 64 bit TAGGED mode Message-ID: <20200225115241.GB2410978@arrakis.emea.arm.com> References: <1582472947-22471-1-git-send-email-macpaul.lin@mediatek.com> <1582627315-21123-1-git-send-email-macpaul.lin@mediatek.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <1582627315-21123-1-git-send-email-macpaul.lin@mediatek.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20200225_035249_946824_C8C746F6 X-CRM114-Status: GOOD ( 13.21 ) X-BeenThere: linux-mediatek@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Sasha Levin , Shen Jing , CC Hwang , Mediatek WSD Upstream , Jerry Zhang , andreyknvl@google.com, linux-usb@vger.kernel.org, Loda Chou , linux-kernel@vger.kernel.org, stable@vger.kernel.org, Andrzej Pietrasiewicz , John Stultz , Al Viro , Vincent Pelletier , Matthias Brugger , linux-mediatek@lists.infradead.org, linux-arm-kernel@lists.infradead.org Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "Linux-mediatek" Errors-To: linux-mediatek-bounces+linux-mediatek=archiver.kernel.org@lists.infradead.org On Tue, Feb 25, 2020 at 06:41:55PM +0800, Macpaul Lin wrote: > diff --git a/drivers/usb/gadget/function/f_fs.c b/drivers/usb/gadget/function/f_fs.c > index ce1d023..728c260 100644 > --- a/drivers/usb/gadget/function/f_fs.c > +++ b/drivers/usb/gadget/function/f_fs.c > @@ -35,6 +35,7 @@ > #include > #include > #include > +#include > > #include "u_fs.h" > #include "u_f.h" > @@ -826,6 +827,10 @@ static void ffs_user_copy_worker(struct work_struct *work) > if (io_data->read && ret > 0) { > mm_segment_t oldfs = get_fs(); > > +#if defined(CONFIG_ARM64) > + if (IS_ENABLED(CONFIG_ARM64_TAGGED_ADDR_ABI)) > + set_thread_flag(TIF_TAGGED_ADDR); > +#endif > set_fs(USER_DS); > use_mm(io_data->mm); > ret = ffs_copy_to_iter(io_data->buf, ret, &io_data->data); I really don't think that's the correct fix. The TIF_TAGGED_ADDR is a per-thread property and not really compatible with use_mm(). We've had tagged pointers in arm64 user-space since day 0 and access_ok() would have prevented them, so this config is not something new. For some reason, adb now passes them to the kernel (presumably because user-space makes more use of them). If you have strong reasons not to fix it in adb, the next best thing may be to untag the addresses in the usb gadget driver. -- Catalin _______________________________________________ Linux-mediatek mailing list Linux-mediatek@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-mediatek 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.8 required=3.0 tests=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 1F767C35DE1 for ; Tue, 25 Feb 2020 11:52:50 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 0096422464 for ; Tue, 25 Feb 2020 11:52:50 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730152AbgBYLwr (ORCPT ); Tue, 25 Feb 2020 06:52:47 -0500 Received: from foss.arm.com ([217.140.110.172]:49668 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729976AbgBYLwr (ORCPT ); Tue, 25 Feb 2020 06:52:47 -0500 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 2AF2A1063; Tue, 25 Feb 2020 03:52:46 -0800 (PST) Received: from arrakis.emea.arm.com (arrakis.cambridge.arm.com [10.1.196.71]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id E589E3F6CF; Tue, 25 Feb 2020 03:52:43 -0800 (PST) Date: Tue, 25 Feb 2020 11:52:41 +0000 From: Catalin Marinas To: Macpaul Lin Cc: Matthias Brugger , Shen Jing , Sasha Levin , John Stultz , Andrzej Pietrasiewicz , Vincent Pelletier , Jerry Zhang , linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org, Mediatek WSD Upstream , CC Hwang , Loda Chou , Al Viro , stable@vger.kernel.org, andreyknvl@google.com Subject: Re: [PATCH v3] usb: gadget: f_fs: try to fix AIO issue under ARM 64 bit TAGGED mode Message-ID: <20200225115241.GB2410978@arrakis.emea.arm.com> References: <1582472947-22471-1-git-send-email-macpaul.lin@mediatek.com> <1582627315-21123-1-git-send-email-macpaul.lin@mediatek.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1582627315-21123-1-git-send-email-macpaul.lin@mediatek.com> Sender: linux-usb-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-usb@vger.kernel.org On Tue, Feb 25, 2020 at 06:41:55PM +0800, Macpaul Lin wrote: > diff --git a/drivers/usb/gadget/function/f_fs.c b/drivers/usb/gadget/function/f_fs.c > index ce1d023..728c260 100644 > --- a/drivers/usb/gadget/function/f_fs.c > +++ b/drivers/usb/gadget/function/f_fs.c > @@ -35,6 +35,7 @@ > #include > #include > #include > +#include > > #include "u_fs.h" > #include "u_f.h" > @@ -826,6 +827,10 @@ static void ffs_user_copy_worker(struct work_struct *work) > if (io_data->read && ret > 0) { > mm_segment_t oldfs = get_fs(); > > +#if defined(CONFIG_ARM64) > + if (IS_ENABLED(CONFIG_ARM64_TAGGED_ADDR_ABI)) > + set_thread_flag(TIF_TAGGED_ADDR); > +#endif > set_fs(USER_DS); > use_mm(io_data->mm); > ret = ffs_copy_to_iter(io_data->buf, ret, &io_data->data); I really don't think that's the correct fix. The TIF_TAGGED_ADDR is a per-thread property and not really compatible with use_mm(). We've had tagged pointers in arm64 user-space since day 0 and access_ok() would have prevented them, so this config is not something new. For some reason, adb now passes them to the kernel (presumably because user-space makes more use of them). If you have strong reasons not to fix it in adb, the next best thing may be to untag the addresses in the usb gadget driver. -- Catalin 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.8 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED 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 ED85CC35DF5 for ; Tue, 25 Feb 2020 11:52:52 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id C0AAE21556 for ; Tue, 25 Feb 2020 11:52:52 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="iFfX3gXE" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org C0AAE21556 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=arm.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:References: Message-ID:Subject:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=m8uA7qZN2SGKEXAc2UKcxe571s/Khf0oYSvg48lCMlU=; b=iFfX3gXE/AWEIr YGOp7N/rHHDp8ZkBY3sMX3H2tDlbXoEaNpGJqKc8S+bEADc7Kb+Eeu06i/+gyCk54kFvnNGc09dCI CeASBv0o8Ki/k33xae9BtjQeg1MfdH+OSSOAyknphc6zOqR1VaIXyLCIEFQ3yh0Op6HuSUV0WdGOM 9NQOGxSC8KCs+ol5eo6Dq4rBZ/9QFmmJ8mAhz6ByUVuEStQTVj//CpazvHXAFrnoKYkrpum1SLLa3 Tda9P2FIVE11LKrfd7JTdxdljPFJpilWGjGBIPLDQKAEuqYtVqG8aqSl/POnh5rkNro3ZIwWT7pX5 De6B+fJUaDckgaCr0n/Q==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1j6Ylg-0002Gj-95; Tue, 25 Feb 2020 11:52:52 +0000 Received: from foss.arm.com ([217.140.110.172]) by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1j6Yld-0002Fx-Ru; Tue, 25 Feb 2020 11:52:51 +0000 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 2AF2A1063; Tue, 25 Feb 2020 03:52:46 -0800 (PST) Received: from arrakis.emea.arm.com (arrakis.cambridge.arm.com [10.1.196.71]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id E589E3F6CF; Tue, 25 Feb 2020 03:52:43 -0800 (PST) Date: Tue, 25 Feb 2020 11:52:41 +0000 From: Catalin Marinas To: Macpaul Lin Subject: Re: [PATCH v3] usb: gadget: f_fs: try to fix AIO issue under ARM 64 bit TAGGED mode Message-ID: <20200225115241.GB2410978@arrakis.emea.arm.com> References: <1582472947-22471-1-git-send-email-macpaul.lin@mediatek.com> <1582627315-21123-1-git-send-email-macpaul.lin@mediatek.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <1582627315-21123-1-git-send-email-macpaul.lin@mediatek.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20200225_035249_946824_C8C746F6 X-CRM114-Status: GOOD ( 13.21 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Sasha Levin , Shen Jing , CC Hwang , Mediatek WSD Upstream , Jerry Zhang , andreyknvl@google.com, linux-usb@vger.kernel.org, Loda Chou , linux-kernel@vger.kernel.org, stable@vger.kernel.org, Andrzej Pietrasiewicz , John Stultz , Al Viro , Vincent Pelletier , Matthias Brugger , linux-mediatek@lists.infradead.org, linux-arm-kernel@lists.infradead.org Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org On Tue, Feb 25, 2020 at 06:41:55PM +0800, Macpaul Lin wrote: > diff --git a/drivers/usb/gadget/function/f_fs.c b/drivers/usb/gadget/function/f_fs.c > index ce1d023..728c260 100644 > --- a/drivers/usb/gadget/function/f_fs.c > +++ b/drivers/usb/gadget/function/f_fs.c > @@ -35,6 +35,7 @@ > #include > #include > #include > +#include > > #include "u_fs.h" > #include "u_f.h" > @@ -826,6 +827,10 @@ static void ffs_user_copy_worker(struct work_struct *work) > if (io_data->read && ret > 0) { > mm_segment_t oldfs = get_fs(); > > +#if defined(CONFIG_ARM64) > + if (IS_ENABLED(CONFIG_ARM64_TAGGED_ADDR_ABI)) > + set_thread_flag(TIF_TAGGED_ADDR); > +#endif > set_fs(USER_DS); > use_mm(io_data->mm); > ret = ffs_copy_to_iter(io_data->buf, ret, &io_data->data); I really don't think that's the correct fix. The TIF_TAGGED_ADDR is a per-thread property and not really compatible with use_mm(). We've had tagged pointers in arm64 user-space since day 0 and access_ok() would have prevented them, so this config is not something new. For some reason, adb now passes them to the kernel (presumably because user-space makes more use of them). If you have strong reasons not to fix it in adb, the next best thing may be to untag the addresses in the usb gadget driver. -- Catalin _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel