Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

cxl/test: Simplify fw_buf_checksum_show()

First, just use sha256() instead of a sequence of sha256_init(),
sha256_update(), and sha256_final(). The result is the same.

Second, use *phN instead of open-coding the conversion of bytes to hex.

Acked-by: Ard Biesheuvel <ardb@kernel.org>
Link: https://lore.kernel.org/r/20250630160645.3198-3-ebiggers@kernel.org
Signed-off-by: Eric Biggers <ebiggers@kernel.org>

+2 -19
+2 -19
tools/testing/cxl/test/mem.c
··· 1828 1828 { 1829 1829 struct cxl_mockmem_data *mdata = dev_get_drvdata(dev); 1830 1830 u8 hash[SHA256_DIGEST_SIZE]; 1831 - unsigned char *hstr, *hptr; 1832 - struct sha256_state sctx; 1833 - ssize_t written = 0; 1834 - int i; 1835 1831 1836 - sha256_init(&sctx); 1837 - sha256_update(&sctx, mdata->fw, mdata->fw_size); 1838 - sha256_final(&sctx, hash); 1832 + sha256(mdata->fw, mdata->fw_size, hash); 1839 1833 1840 - hstr = kzalloc((SHA256_DIGEST_SIZE * 2) + 1, GFP_KERNEL); 1841 - if (!hstr) 1842 - return -ENOMEM; 1843 - 1844 - hptr = hstr; 1845 - for (i = 0; i < SHA256_DIGEST_SIZE; i++) 1846 - hptr += sprintf(hptr, "%02x", hash[i]); 1847 - 1848 - written = sysfs_emit(buf, "%s\n", hstr); 1849 - 1850 - kfree(hstr); 1851 - return written; 1834 + return sysfs_emit(buf, "%*phN\n", SHA256_DIGEST_SIZE, hash); 1852 1835 } 1853 1836 1854 1837 static DEVICE_ATTR_RO(fw_buf_checksum);