Adapted from the following patch (path and actual line number changes):

From daa9cf546ce7265645ced9592dd54c6b2fc04302 Mon Sep 17 00:00:00 2001
From: Kay Sievers <kay@vrfy.org>
Date: Thu, 5 Jul 2012 16:53:08 +0200
Subject: [PATCH] udev: ata_id - fixup all 8 not only 6 bytes of the fw_rev
 string

The last two digits are in the wrong order:
  $ hdparm -I /dev/sda | grep Revision
  4PC10362

  $ /lib/udev/ata_id -x /dev/sda | grep REVISION
  4PC10326

diff -Nur udev-182.orig/src/ata_id/ata_id.c udev-182/src/ata_id/ata_id.c
--- udev-182.orig/src/ata_id/ata_id.c	2012-03-13 19:00:51.220734316 -0500
+++ udev-182/src/ata_id/ata_id.c	2012-07-14 19:48:34.224478831 -0500
@@ -511,7 +511,7 @@
                  * use and copy it into the hd_driveid struct for convenience
                  */
                 disk_identify_fixup_string (identify,  10, 20); /* serial */
-                disk_identify_fixup_string (identify,  23,  6); /* fwrev */
+                disk_identify_fixup_string (identify,  23,  8); /* fwrev */
                 disk_identify_fixup_string (identify,  27, 40); /* model */
                 disk_identify_fixup_uint16 (identify,  0);      /* configuration */
                 disk_identify_fixup_uint16 (identify,  75);     /* queue depth */
