ionic: Don't overwrite the cyclecounter bitmask
authorBrett Creeley <brett.creeley@amd.com>
Fri, 7 Apr 2023 18:45:39 +0000 (11:45 -0700)
committerDavid S. Miller <davem@davemloft.net>
Wed, 12 Apr 2023 08:36:25 +0000 (09:36 +0100)
The driver was incorrectly overwriting the cyclecounter bitmask,
which was truncating it and not aligning to the hardware mask value.
This isn't causing any issues, but it's wrong. Fix this by not
constraining the cyclecounter/hardware mask.

Luckily, this seems to cause no issues, which is why this change
doesn't have a fixes tag and isn't being sent to net. However, if
any transformations from time->cycles are needed in the future,
this change will be needed.

Suggested-by: Allen Hubbe <allen.hubbe@amd.com>
Signed-off-by: Brett Creeley <brett.creeley@amd.com>
Signed-off-by: Shannon Nelson <shannon.nelson@amd.com>
Reviewed-by: Simon Horman <simon.horman@corigine.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/pensando/ionic/ionic_phc.c

index eac2f0e3576e5ac0328cdbe561988fbe3d92d616..7505efdff8e95c305f747c4c6e52a7e49ac9c4d5 100644 (file)
@@ -579,11 +579,10 @@ void ionic_lif_alloc_phc(struct ionic_lif *lif)
        diff |= diff >> 16;
        diff |= diff >> 32;
 
-       /* constrain to the hardware bitmask, and use this as the bitmask */
+       /* constrain to the hardware bitmask */
        diff &= phc->cc.mask;
-       phc->cc.mask = diff;
 
-       /* the wrap period is now defined by diff (or phc->cc.mask)
+       /* the wrap period is now defined by diff
         *
         * we will update the time basis at about 1/4 the wrap period, so
         * should not see a difference of more than +/- diff/4.