Received: by 2002:ac0:a5a7:0:0:0:0:0 with SMTP id m36-v6csp3715680imm; Tue, 17 Jul 2018 09:08:30 -0700 (PDT) X-Google-Smtp-Source: AAOMgpcNAWnNaYO/DIj5Wd3fif0qb93tn+HGrZ0U3nqUsTQDdTDogUkdMF1umMtCyk6dQcnhso0z X-Received: by 2002:a62:5ec3:: with SMTP id s186-v6mr1298710pfb.129.1531843710347; Tue, 17 Jul 2018 09:08:30 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1531843710; cv=none; d=google.com; s=arc-20160816; b=ZUpDId8RwKRMSr1amkPPFyreX3PA7oxQbWN4D25nLZABh/Tiu9BARHDxgJQ5ihDKC4 9YVDOFuEDeoP/5vXwsgrHOoDd9rRmcoFJNmrZo3Mdk6s2qGIeKTRHH51evFlnu1kSPNF 9hxTX2i1vjtloB4bHJ+S9h8NMZqvjmCmKOXqBvr9CZKmvlGl2zZ/lrY8FrjFpG+zA6Ry QMcN4LGjzghyfJzO1HR9CCpR0kR187NFYQwdGN5tGADksOOp25bNUXap86tVCccF4yfP plneie4xiep7np3pQRjwoh39tWZzKJmWZ6oUPCIKFNHK7T2CqbvuvfVxlva8t/umG7qX +rqw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from:dkim-signature:arc-authentication-results; bh=5q0ex17ZBFO+2ndCuJj9ASTcRCtOVyAjmX0lwfZ2TOA=; b=qXB8+EF/m9AOk2hmuSh8qNk2YCizS1bzP3XpJda1IZNUxZvMbr3lDDnuufUW8FRdd4 fEqqFYezKT59uMbRVeS1mVirNblHBy8t8zx8OTUpUF3cK13qC+bJ6kfn47Xf+9JvRLx6 8FAuRUXhQSe2pfWE31kR4g6lCuaa+BODuJj9+2omVM0zjBf4WfS+4twGfGdinJmpCSJQ YBatwZVBKzsYsK8igqjWnfZ+3hmegdO/IEpUkAieuulk1kjcK5fql8j4cyoBP0nHpcAd ueA6y1d7VMKvXMzIbjxVbAi0Kxqwoj8RzJaCIWhr7JrxBsuO3D7VOfr5f25+Rwnl0Dia hokw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b="h/AwLRG3"; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id f17-v6si1106814pgv.383.2018.07.17.09.08.15; Tue, 17 Jul 2018 09:08:30 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b="h/AwLRG3"; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731235AbeGQQj6 (ORCPT + 99 others); Tue, 17 Jul 2018 12:39:58 -0400 Received: from mail.kernel.org ([198.145.29.99]:59720 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729719AbeGQQj6 (ORCPT ); Tue, 17 Jul 2018 12:39:58 -0400 Received: from localhost.localdomain (xdsl-188-155-58-14.adslplus.ch [188.155.58.14]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 13C9E20839; Tue, 17 Jul 2018 16:06:31 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1531843596; bh=xfvKK695zsJyU2U3lwkF4lOPj1ddnon0ptCk0Bd/kbk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=h/AwLRG3wCdExXcVsYEBObITVYPAalaETX1IUyW8+uXs9MVgLnAaj6g8ShvEMRDV5 I/3no4vxMdNIMw1WmHitGOSP0vQ7HnaCn77XLwOtcPhtDdoHivew/9r1eGNj4Cyxxd 8xQ8jw50kHdADF4j8BD6GVQV50yFKrQRhe9h6CME= From: Krzysztof Kozlowski To: Herbert Xu , "David S. Miller" , Maxime Coquelin , Alexandre Torgue , Tom Lendacky , Siva Reddy Kallam , Prashant Sreedharan , Michael Chan , Fugang Duan , Pantelis Antoniou , Vitaly Bordug , Jose Abreu , Larry Finger , Florian Schilhabel , Greg Kroah-Hartman , Thomas Gleixner , linux-kernel@vger.kernel.org, linux-crypto@vger.kernel.org, linux-arm-kernel@lists.infradead.org, netdev@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, devel@driverdev.osuosl.org Cc: Krzysztof Kozlowski Subject: [PATCH 1/6] lib/crc: Move polynomial definition to separate header Date: Tue, 17 Jul 2018 18:05:36 +0200 Message-Id: <20180717160541.3843-2-krzk@kernel.org> X-Mailer: git-send-email 2.14.1 In-Reply-To: <20180717160541.3843-1-krzk@kernel.org> References: <20180717160541.3843-1-krzk@kernel.org> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Allow other drivers and parts of kernel to use the same define for CRC32 polynomial, instead of duplicating it in many places. This code does not bring any functional changes, except moving existing code. Signed-off-by: Krzysztof Kozlowski --- include/linux/crc32poly.h | 20 ++++++++++++++++++++ lib/crc32.c | 1 + lib/crc32defs.h | 14 -------------- lib/gen_crc32table.c | 1 + 4 files changed, 22 insertions(+), 14 deletions(-) create mode 100644 include/linux/crc32poly.h diff --git a/include/linux/crc32poly.h b/include/linux/crc32poly.h new file mode 100644 index 000000000000..7ad5aa92d3c7 --- /dev/null +++ b/include/linux/crc32poly.h @@ -0,0 +1,20 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +#ifndef _LINUX_CRC32_POLY_H +#define _LINUX_CRC32_POLY_H + +/* + * There are multiple 16-bit CRC polynomials in common use, but this is + * *the* standard CRC-32 polynomial, first popularized by Ethernet. + * x^32+x^26+x^23+x^22+x^16+x^12+x^11+x^10+x^8+x^7+x^5+x^4+x^2+x^1+x^0 + */ +#define CRCPOLY_LE 0xedb88320 +#define CRCPOLY_BE 0x04c11db7 + +/* + * This is the CRC32c polynomial, as outlined by Castagnoli. + * x^32+x^28+x^27+x^26+x^25+x^23+x^22+x^20+x^19+x^18+x^14+x^13+x^11+x^10+x^9+ + * x^8+x^6+x^0 + */ +#define CRC32C_POLY_LE 0x82F63B78 + +#endif /* _LINUX_CRC32_POLY_H */ diff --git a/lib/crc32.c b/lib/crc32.c index 2ef20fe84b69..341c54cb4edf 100644 --- a/lib/crc32.c +++ b/lib/crc32.c @@ -27,6 +27,7 @@ /* see: Documentation/crc32.txt for a description of algorithms */ #include +#include #include #include #include diff --git a/lib/crc32defs.h b/lib/crc32defs.h index cb275a28a750..0c8fb5923e7e 100644 --- a/lib/crc32defs.h +++ b/lib/crc32defs.h @@ -1,18 +1,4 @@ /* SPDX-License-Identifier: GPL-2.0 */ -/* - * There are multiple 16-bit CRC polynomials in common use, but this is - * *the* standard CRC-32 polynomial, first popularized by Ethernet. - * x^32+x^26+x^23+x^22+x^16+x^12+x^11+x^10+x^8+x^7+x^5+x^4+x^2+x^1+x^0 - */ -#define CRCPOLY_LE 0xedb88320 -#define CRCPOLY_BE 0x04c11db7 - -/* - * This is the CRC32c polynomial, as outlined by Castagnoli. - * x^32+x^28+x^27+x^26+x^25+x^23+x^22+x^20+x^19+x^18+x^14+x^13+x^11+x^10+x^9+ - * x^8+x^6+x^0 - */ -#define CRC32C_POLY_LE 0x82F63B78 /* Try to choose an implementation variant via Kconfig */ #ifdef CONFIG_CRC32_SLICEBY8 diff --git a/lib/gen_crc32table.c b/lib/gen_crc32table.c index 8f26660ea10a..34c3bc826f45 100644 --- a/lib/gen_crc32table.c +++ b/lib/gen_crc32table.c @@ -1,5 +1,6 @@ // SPDX-License-Identifier: GPL-2.0 #include +#include "../include/linux/crc32poly.h" #include "../include/generated/autoconf.h" #include "crc32defs.h" #include -- 2.14.1