diff --git a/SOURCES/hdparm-9.54-dco_calc.patch b/SOURCES/hdparm-9.54-dco_calc.patch
new file mode 100644
index 0000000..3f1c659
--- /dev/null
+++ b/SOURCES/hdparm-9.54-dco_calc.patch
@@ -0,0 +1,12 @@
+diff --color -u hdparm-9.54.orig/identify.c hdparm-9.54/identify.c
+--- hdparm-9.54.orig/identify.c	2016-10-17 11:06:28.000000001 -0700
++++ hdparm-9.54/identify.c	2021-04-28 06:19:01.005819050 -0700
+@@ -1488,7 +1488,7 @@
+ 	else if (dco[2] & (1<<0)) printf(" udma0");
+ 	putchar('\n');
+ 
+-	lba = ((((__u64)dco[5]) << 32) | (dco[4] << 16) | dco[3]) + 1;
++	lba = ((((__u64)dco[5]) << 32) | ((__u64)dco[4] << 16) |(__u64)dco[3]) + 1U;
+ 	printf("\tReal max sectors: %llu\n", lba);
+ 
+ 	printf("\tATA command/feature sets:");
diff --git a/SPECS/hdparm.spec b/SPECS/hdparm.spec
index 8701e98..5abcd92 100644
--- a/SPECS/hdparm.spec
+++ b/SPECS/hdparm.spec
@@ -8,6 +8,7 @@ Source: https://downloads.sourceforge.net/%{name}/%{name}-%{version}.tar.gz
 Patch0: %{name}-9.43-ditch_dead_code.patch
 Patch1: %{name}-9.43-close_fd.patch
 Patch2: %{name}-9.43-get_geom.patch
+Patch3: %{name}-9.54-dco_calc.patch
 
 BuildRequires: gcc
 BuildRequires: make
@@ -37,6 +38,9 @@ install -c -m 644 hdparm.8 $RPM_BUILD_ROOT/%{_mandir}/man8
 %{_mandir}/man8/hdparm.8*
 
 %changelog
+* Tue May 18 2021 Justin Vreeland <jvreeland@twitter.com> - 9.58-2
+- add dco-calc.path
+
 * Tue Mar  2 2021 Justin Vreeland <jvreeland@twitter.com> - 9.58-1
 - Reset release to 1 for hyperscale sig