From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932445AbbJ0OGc (ORCPT ); Tue, 27 Oct 2015 10:06:32 -0400 Received: from mx1.redhat.com ([209.132.183.28]:50665 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932125AbbJ0OGb (ORCPT ); Tue, 27 Oct 2015 10:06:31 -0400 From: Vitaly Kuznetsov To: Andrew Morton Cc: Rasmus Villemoes , Andy Shevchenko , Ulf Hansson , James Bottomley , Kees Cook , linux-kernel@vger.kernel.org Subject: [PATCH v2 0/3] lib/string_helpers: fix precision issues and introduce tests Date: Tue, 27 Oct 2015 15:06:24 +0100 Message-Id: <1445954787-18104-1-git-send-email-vkuznets@redhat.com> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Linux always lies about your storage size when it has 4k sectors and its size is big enough. E.g. a device with 8192 4k sectors will be reported as "32.7 MB/32 MiB" while "33.5 MB/32 MiB" is expected. This series is supposed to fix the issue by fixing calculation precision in string_get_size() for all possible inputs. PATCH 1/3 is a preparatory change, PATCH 2/3 re-factors string_get_size() fixing the issue, PATCH 3/3 introduces tests for string_get_size(). PATCH 3/3 was previously sent as part of "lib/string_helpers.c: fix infinite loop in string_get_size()" series but it is still not merged upstream. In this submission I improve it and add additional tests to it. Changes since v1: - Patch2: do not rename 'i' to 'order' [Andy Shevchenko] - Patch2: check against blk_size == 0 [Rasmus Villemoes] - Patch3: make test_string_get_size_one() check both STRING_UNITS_2 and STRING_UNITS_10 in one shot [Rasmus Villemoes] - Patch3: test U64_MAX instead of some-very-big-number. Vitaly Kuznetsov (3): lib/string_helpers: change blk_size to u32 for string_get_size() interface lib/string_helpers.c: don't lose precision in string_get_size() lib/test-string_helpers.c: add string_get_size() tests include/linux/string_helpers.h | 2 +- lib/string_helpers.c | 39 ++++++++++++++++++---------- lib/test-string_helpers.c | 58 ++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 84 insertions(+), 15 deletions(-) -- 2.4.3