From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-wm1-f66.google.com (mail-wm1-f66.google.com [209.85.128.66]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 143AE31ED62 for ; Tue, 23 Dec 2025 08:40:38 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.66 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1766479240; cv=none; b=LHKUqRrJjqz1GwTJIZtarq6QZ6qSrtTJEfOHec6l2WoXkHQqyxx8k5QQ9wJo9z+VAx9WGcKXYQxBWvj/HoOMaXkj4/EsME3do1+sYoNCAvVJN1psd+ob7e/BYNxELMbKPKQ24nVxwlGr0FQK4G/UDVhSVxeS9IncOUIzGGBrBzo= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1766479240; c=relaxed/simple; bh=wrmq4RenFXzbX3r+9dnxq68WYSe7YlZUwq3pD+h3bX4=; h=Date:From:To:Cc:Subject:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=Uy4RhGgwE/59uwNYNDV7RUxfxonzhM6G6rx9JwDUnjo153OR4USkDAyS6u/vvkiDSQxaQkYZfFE4VWsMoeWVpTRR+YHPLMEqGjRA/yWW1CIvRB9o3uo4uO0RrO03ULLh8LUqchRC37ttJmLnPf5gKGxv5QjyfuugLMBiVvE3bFk= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=HVCLiS3+; arc=none smtp.client-ip=209.85.128.66 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="HVCLiS3+" Received: by mail-wm1-f66.google.com with SMTP id 5b1f17b1804b1-477ba2c1ca2so47852215e9.2 for ; Tue, 23 Dec 2025 00:40:38 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1766479237; x=1767084037; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:subject:cc:to:from:date:from:to:cc:subject:date :message-id:reply-to; bh=qUwtgrMapZPA5zIKs3/MUFaPRl4dU3pm9b/uTBHe6g4=; b=HVCLiS3++41fZNlJ20zlGkOeaMvSxC3AEpBNwuk79fRZNAp3XHZvGyGbp427rKSziO w8KG28vPMvTFoLjNS4PFhn0KfshL+Ovx5400bv9ZmIRZKujkLCWANCBoOa2VHcfsuvJN kQsXdAPELfw9vJK/irvhgHbJ1W/bhrGSwO1na/haiz20OMPaDoDlB4RzGp1S5vW1rXDM +bs/Cl6Ll6VYBIatd2xbtuyw/VbSTzmGdyDAfbIOCK+0eTW++EBUwTWNwe27OXC06/Us UC+IN0fMnZYOHeUKB8O55hoiJMI3RHkc9baErOAWaujFSA9PHgoyNekozKix6TAHqcG+ TmdA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1766479237; x=1767084037; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:subject:cc:to:from:date:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=qUwtgrMapZPA5zIKs3/MUFaPRl4dU3pm9b/uTBHe6g4=; b=gerHAIc0EOfubG/upvWRmWsTWCDcKPTOTaInoL25yzND4jdGYZkiskg9Uypt6XlIvK o+xosYKv/mDvzVtFbrAsV/zi5r4nZIWLs49xYGoFy59liBMSSy41jcCPlyhaO1AjrYTf yj74hLl668rR5nMWnqgh753yEyhVt9lsA+xHaLo+G2zZcPatI3tYJruKMSy/fGzRNedR eAYHj1vqavEst/9iHsN2nJPiAKGwaEhyL82hyqdFsSfneCJe0rE8CT4NAFIWKc/e+BOj 2l/QKVN+LBSmJQXCAfpNogmJaA0AvpCx0rY7KF2Td4cXdkRVBcvybji4EECZebnKKmky 4xaQ== X-Forwarded-Encrypted: i=1; AJvYcCUTF4295j7YJsnC2kYagkHdoQax4pWCXzeCI9FfvgGeeZvptyDV7Qf401smlHuJKi7gS4VXTG9BE2RkM2k=@vger.kernel.org X-Gm-Message-State: AOJu0YySjRzc16C4FLuVUXdNEhJvxqPEg4JkAVTpQDZmAPLrA+MWP+yz cn2PFWqpGvXFXbB6r/9n/SiFahbJi0M3evQzfzkZYD23UchgfdNokK5c X-Gm-Gg: AY/fxX5jfvoPbCYvbHrin9EcalTuCDFyYbwg03AkgflMFMz4YGztVM/FU2Nd3U8UVca /0Gv22lbOYmhDmo7L7uDF9k1WGgd8gg1JNNuMSxyF5hTaXAyWjRqiFslxs/pMt9SFAf53COIEb3 a+9JQ6C7/nWWbXzweobvA7Y79GsKvDSd0MF+p2jhNeDz2odEY6C+6XQYCu1NzirBnhBxYDFuRjb E4qpf3XhOVvAFDAaXXtmykAgt+KklREzWeb/OW2KlUmZPXmZEh4iAOmXtjydhIJu0GBNh84N/8D 9TZNlzCU/iNnfpjcuHcftCHIDxoYgJqa+wgH6kqND3SL+EUdGyFiDOAWpZogoU808PRiTU0e6W2 DHFltt5joWlDIUUT0bATqdYd3lNZ8DqxaMBhieZTtoj4gJ9TfUWUtk3GwYOZZOt6n9TaRUu2cUc ltTmFKV1PXqBdzQPUBG0SEaTBREfIEE5hUPRRqEGWn2qXog+j26pc= X-Google-Smtp-Source: AGHT+IEpteUBeVyvK/GkVobHH5hYn/GMx0SLjKyrRDaOqelnxJtOqBWZOo0NwrW+rNFfDjpy5x73Jw== X-Received: by 2002:a05:600c:5246:b0:477:54cd:2030 with SMTP id 5b1f17b1804b1-47d1957f707mr151767255e9.21.1766479237056; Tue, 23 Dec 2025 00:40:37 -0800 (PST) Received: from pumpkin (host-2-103-239-165.as13285.net. [2.103.239.165]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-4324ea2278dsm26831637f8f.18.2025.12.23.00.40.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 23 Dec 2025 00:40:36 -0800 (PST) Date: Tue, 23 Dec 2025 08:40:35 +0000 From: David Laight To: Li Wang Cc: Andrew Morton , linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org, David Hildenbrand , Mark Brown , Shuah Khan , Waiman Long Subject: Re: [PATCH v3 1/3] selftests/mm/write_to_hugetlbfs: parse -s as size_t Message-ID: <20251223084035.67ba1b76@pumpkin> In-Reply-To: References: <20251221122639.3168038-1-liwang@redhat.com> <20251221122639.3168038-2-liwang@redhat.com> <20251221221052.3b769fc2@pumpkin> <20251222094828.2783d9e5@pumpkin> <20251222180509.b12684e112195ac3f7ee9389@linux-foundation.org> X-Mailer: Claws Mail 4.1.1 (GTK 3.24.38; arm-unknown-linux-gnueabihf) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit On Tue, 23 Dec 2025 10:41:22 +0800 Li Wang wrote: > Andrew Morton wrote: > > > > > It is best to use strtoul() and check the 'end' character is '\0'. > > > > > > Hmm, that sounds like we need to go back to the patch V1 [1] method. > > > But I am not sure, @Andrew Morton, do you think so? > > > > > > --- a/tools/testing/selftests/mm/write_to_hugetlbfs.c > > > +++ b/tools/testing/selftests/mm/write_to_hugetlbfs.c > > > @@ -86,10 +86,17 @@ int main(int argc, char **argv) > > > while ((c = getopt(argc, argv, "s:p:m:owlrn")) != -1) { > > > switch (c) { > > > case 's': > > > - if (sscanf(optarg, "%zu", &size) != 1) { > > > - perror("Invalid -s."); > > > + char *end = NULL; Initialiser not needed. > > > + unsigned long tmp = strtoul(optarg, &end, 10); > > > + if (errno || end == optarg || *end != '\0') { I doubt that use of errno is correct. Library functions that set errno on error don't set it to zero. The only test needed there is *end != '\'. (end == optarg will be picked up by size == 0 later - if that is actually needed to stop things breaking.) > > > + perror("Invalid -s size"); > > > exit_usage(); > > > } > > > + if (tmp == 0) { No point checking for zero before the assigning the 'unsigned long' to 'size_t'. So the result of strtoul() can just be just assigned to 'size'. (Ignoring the fact that size_t will be unsigned long.) > > > + perror("size not found"); > > > + exit_usage(); > > > + } > > > + size = (size_t)tmp; > > > break; > > > case 'p': > > > > Geeze guys, it's just a selftest. > > > > hp2:/usr/src/linux-6.19-rc1> grep -r scanf tools/testing/selftests | wc -l > > 177 > > > > if your command line breaks the selftest, fix your command line? > > Yes, I am ok with sscanf() :-). What was wrong with atoi() ? Or, at most, strtoul() with a check that *end == 0. David > > In fact, write_to hugetlbfs currently only accepts arguments from > charge_reserved_hugetlb.sh, and the way the '-s' is used is not > very diverse. > > -- > Regards, > Li Wang >