i7core_edac: Fix ringbuffer maxsize
authorMauro Carvalho Chehab <mchehab@redhat.com>
Thu, 8 Oct 2009 16:11:08 +0000 (13:11 -0300)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Mon, 10 May 2010 14:49:31 +0000 (11:49 -0300)
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
drivers/edac/i7core_edac.c

index 59ec44175560811c72dbaa1c21c76dda3a2214c4..c2857f60ae6a04f436b17c62c54f72c3912d252d 100644 (file)
@@ -1631,14 +1631,14 @@ static void i7core_check_error(struct mem_ctl_info *mci)
         * loosing an error.
         */
        smp_rmb();
-       count = (pvt->mce_out + sizeof(mce_entry) - pvt->mce_in)
-               % sizeof(mce_entry);
+       count = (pvt->mce_out + MCE_LOG_LEN - pvt->mce_in)
+               % MCE_LOG_LEN;
        if (!count)
                return;
 
        m = pvt->mce_outentry;
-       if (pvt->mce_in + count > sizeof(mce_entry)) {
-               unsigned l = sizeof(mce_entry) - pvt->mce_in;
+       if (pvt->mce_in + count > MCE_LOG_LEN) {
+               unsigned l = MCE_LOG_LEN - pvt->mce_in;
 
                memcpy(m, &pvt->mce_entry[pvt->mce_in], sizeof(*m) * l);
                smp_wmb();
@@ -1702,7 +1702,7 @@ static int i7core_mce_check_error(void *priv, struct mce *mce)
                return 0;
 
        smp_rmb();
-       if ((pvt->mce_out + 1) % sizeof(mce_entry) == pvt->mce_in) {
+       if ((pvt->mce_out + 1) % MCE_LOG_LEN == pvt->mce_in) {
                smp_wmb();
                pvt->mce_overrun++;
                return 0;
@@ -1711,7 +1711,7 @@ static int i7core_mce_check_error(void *priv, struct mce *mce)
        /* Copy memory error at the ringbuffer */
        memcpy(&pvt->mce_entry[pvt->mce_out], mce, sizeof(*mce));
        smp_wmb();
-       pvt->mce_out = (pvt->mce_out + 1) % sizeof(mce_entry);
+       pvt->mce_out = (pvt->mce_out + 1) % MCE_LOG_LEN;
 
        /* Handle fatal errors immediately */
        if (mce->mcgstatus & 1)