Received: by 2002:ab2:710b:0:b0:1ef:a325:1205 with SMTP id z11csp1675361lql; Wed, 13 Mar 2024 05:21:56 -0700 (PDT) X-Forwarded-Encrypted: i=3; AJvYcCX0FWehSdE69wNatoImZaK+ehQDUUnKpLTMNIbFTYbIOqWs6Y11rrZwVi0/yIDsAINVoPwVx1Yyv790/zu3TuQWETrP2htN9rltS6gLew== X-Google-Smtp-Source: AGHT+IGsMu0EKbZN6IkxouMb/0GkVeLz+qKjbrr+ugwZoBCGoVk3olAV5qW7d+77c7+rjb/4hGB7 X-Received: by 2002:a05:6359:65c9:b0:17b:f2d0:eac8 with SMTP id ym9-20020a05635965c900b0017bf2d0eac8mr17187484rwb.25.1710332515974; Wed, 13 Mar 2024 05:21:55 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1710332515; cv=pass; d=google.com; s=arc-20160816; b=pBFzKsVjHUJdygGx814QYhnORBvfeZIOVDo/8eEr1K9LoF9vb3K4VHN4rfJs2Jxowo Vdf0/suj4NikW8KTsXzCAFtwbua+kVYayd0O2NflBrjkCy9CIsGq1/VtHnM5YTX0jRwu wKsTRFhjUvnwlN20Av0BHBX+N6h/tgB2n/aFnjA1i+edDU+JeKqm273yjg6e6ZRUf41w s55DI+kwiHH8UMyr0Wwcd4eBu0hbpnpTFzAdKLe7IQlSaKICdUZ51T2tAEheYRvbv4fy EOwGOKPKPd9zvUwmVygr7i/lUkc5+lFuY9p13evkJ0Js9j+Rma8V6FOIXkINhI/kOdRI o3UQ== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:subject:cc:to:from:date:references :in-reply-to:message-id:mime-version:list-unsubscribe:list-subscribe :list-id:precedence:user-agent:feedback-id:dkim-signature; bh=0LO2G1p1vIGAtkUDra7OYjseduH1qj11lKXgnpe7N1o=; fh=c/7GJxCPP9Txjr9amKvxjhgl2mOrIk0vF/D7Xs5g3cw=; b=BV2TAAxbw0/C2KGxYwm8L9XkPUBY7YTYIripFzAO4NS4MnbGhCuMZky6FM5frbYSEk yheMKD56LPXm67uu8hoFwm0bIH0osWnTxMwSNYIz1qadbdRXRgKtuKxu6YoTMMrg6k5C XJDgYqpZVxMoT/h9bmgKebZN5zPFPr7ksJJ3cGhSdjbAilk3qOVXdmUD3DhAoyKgu2ut HSYxFLllP5Gvb9OXfvrv+HwKFIf+elqnjI6VeKRzL9cZDAYGD4ZxSp6gLMCJzb1eRwfo msyBK9a7jMlfN9+2+qvLaOwP/K5H9LCoi4dkiKBXOrkZD+2H8BGrPZJZWYeygrbSBjCP Zo6A==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=hD8VgH5h; arc=pass (i=1 dkim=pass dkdomain=kernel.org); spf=pass (google.com: domain of linux-kernel+bounces-101467-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-101467-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from sv.mirrors.kernel.org (sv.mirrors.kernel.org. [2604:1380:45e3:2400::1]) by mx.google.com with ESMTPS id x4-20020a63db44000000b005dc81a30772si8991661pgi.301.2024.03.13.05.21.55 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 13 Mar 2024 05:21:55 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel+bounces-101467-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) client-ip=2604:1380:45e3:2400::1; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=hD8VgH5h; arc=pass (i=1 dkim=pass dkdomain=kernel.org); spf=pass (google.com: domain of linux-kernel+bounces-101467-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-101467-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sv.mirrors.kernel.org (Postfix) with ESMTPS id 9FFB4284A01 for ; Wed, 13 Mar 2024 12:21:55 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id C3205405EB; Wed, 13 Mar 2024 12:21:50 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="hD8VgH5h" Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E54F03FE5B for ; Wed, 13 Mar 2024 12:21:49 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1710332510; cv=none; b=ZtNwEKehABPaKz+1GBETVlpJL5TzW7duFw4JpwPvkJ7F3QOmPUJvYXGpYT15Wa2D5TNlk/ZCx5O5X62q77h96V+R9MtFuFNWw2o5vIJCaf3/42e7YerXcwwkatNYYHkypQ/9rwzwCl1ZFZYN9Sox1Tm6OCJjzwP4JNJQ8goLzUk= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1710332510; c=relaxed/simple; bh=Fb3rj7gE/RiwbNWbqCnRjzqmXxJGi3L4HQ8qGvyMCAo=; h=MIME-Version:Message-Id:In-Reply-To:References:Date:From:To:Cc: Subject:Content-Type; b=W0cFmwwqLjxqCoZ3I0c7uUJfxJ+09PO1buGC3vIi2mvsKm8ZeVKozjnyMHTTtnniceJRiNwok6iqXXud8Z9isZSuveb9titN48l2eB4khB2IXqVasCYdjWlSpGUDK6e/5KA0wjgTYjUoZkuh/RiTt49RPQwN0Ev5paPM+ddb7o4= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=hD8VgH5h; arc=none smtp.client-ip=10.30.226.201 Received: by smtp.kernel.org (Postfix) with ESMTPSA id 1EDF1C433C7; Wed, 13 Mar 2024 12:21:49 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1710332509; bh=Fb3rj7gE/RiwbNWbqCnRjzqmXxJGi3L4HQ8qGvyMCAo=; h=In-Reply-To:References:Date:From:To:Cc:Subject:From; b=hD8VgH5hMQ7/x4I6LAIU9kcCxVCEBraQaJ6oGFmQNOrmZ93bZA6oKiuBIEyHpxF9C RikZUvAFDewKqTSbcbI+roz3eaOtaXJzLY6mSoGVCf8IGOZd/gffJotW/s4lxMjOkD 6mb9LkwB3gM01LZSd/lMSIIcNEL2OuWgySZCYni1Mx2bo2SJyDEaiW1oYj6ytVm7yZ d/4e5WUQpvkZBlTLGe1neAgziHpZDJz+pA82qzK2xhNL+ZqO01AOUIai0o2r4T+6WA OogJWVYL0DclxMfdCfwO2y+rsb17hl3xfgCDvyA20rmN8Pi/XuFzcCxm4jGBpZaf4H JqutKLV+yt05g== Received: from compute5.internal (compute5.nyi.internal [10.202.2.45]) by mailfauth.nyi.internal (Postfix) with ESMTP id 0267F1200043; Wed, 13 Mar 2024 08:21:47 -0400 (EDT) Received: from imap51 ([10.202.2.101]) by compute5.internal (MEProxy); Wed, 13 Mar 2024 08:21:48 -0400 X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvledrjeehgdefkecutefuodetggdotefrodftvf curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu uegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenuc fjughrpefofgggkfgjfhffhffvvefutgfgsehtqhertderreejnecuhfhrohhmpedftehr nhguuceuvghrghhmrghnnhdfuceorghrnhgusehkvghrnhgvlhdrohhrgheqnecuggftrf grthhtvghrnhepvddttdffjeefgeeggfelfefggefhheeffefftefggfelgeduveevtefh feejveeknecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomh eprghrnhguodhmvghsmhhtphgruhhthhhpvghrshhonhgrlhhithihqdduvdekhedujedt vdegqddvkeejtddtvdeigedqrghrnhgupeepkhgvrhhnvghlrdhorhhgsegrrhhnuggsrd guvg X-ME-Proxy: Feedback-ID: i36794607:Fastmail Received: by mailuser.nyi.internal (Postfix, from userid 501) id 5260EB6008D; Wed, 13 Mar 2024 08:21:47 -0400 (EDT) X-Mailer: MessagingEngine.com Webmail Interface User-Agent: Cyrus-JMAP/3.11.0-alpha0-251-g8332da0bf6-fm-20240305.001-g8332da0b Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: In-Reply-To: <1a12c8ed-0cb5-5650-24a2-84b021c444c3@huawei.com> References: <20240313084707.3292300-1-arnd@kernel.org> <4f945f4a-ac29-3ef7-9e15-123962f2a0e9@huawei.com> <1a12c8ed-0cb5-5650-24a2-84b021c444c3@huawei.com> Date: Wed, 13 Mar 2024 13:21:26 +0100 From: "Arnd Bergmann" To: "Zhihao Cheng" , "Arnd Bergmann" , "Richard Weinberger" , "Miquel Raynal" , "Vignesh Raghavendra" , "Daniel Golle" Cc: linux-mtd@lists.infradead.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH] mtd: ubi: avoid expensive do_div() on 32-bit machines Content-Type: text/plain;charset=utf-8 Content-Transfer-Encoding: quoted-printable On Wed, Mar 13, 2024, at 13:10, Zhihao Cheng wrote: > =E5=9C=A8 2024/3/13 19:53, Arnd Bergmann =E5=86=99=E9=81=93: >> On Wed, Mar 13, 2024, at 12:29, Zhihao Cheng wrote: >>=20 >> The way it usually goes is that someone adds an open-coded >> 64-bit division that causes a link failure, which prompts > I'm a little confused, what kind of link failure? Could you show an ex= ample? The open-coded 64-bit division without using do_div() shows up as x86_64-linux-ld: drivers/mtd/ubi/nvmem.o: in function `ubi_nvmem_reg_rea= d': nvmem.c:(.text+0x10a): undefined reference to `__umoddi3' x86_64-linux-ld: nvmem.c:(.text+0x11f): undefined reference to `__udivdi= 3' x86_64-linux-ld: drivers/mtd/ubi/nvmem.o: in function `ubi_nvmem_reg_rea= d.cold': nvmem.c:(.text.unlikely+0x2d): undefined reference to `__umoddi3' The idea is that gcc expects __umoddi3 to be provided by libgcc, but Linux intentionally leaves it out in order to catch accidental 64-bit divisions. Arnd