Print this page
XXXX introduce drv_sectohz


 588 
 589         switch (ecc_type) {
 590         case CBNINTR_UE:
 591                 if (ecc_err->ecc_pg_ret == 1) {
 592                         (void) page_retire(ecc->flt_addr, PR_UE);
 593                 }
 594                 ecc_err->ecc_err_type = flt_to_error_type(ecc);
 595                 break;
 596 
 597         case CBNINTR_CE:
 598                 /*
 599                  * Setup timeout (if CE detected via interrupt) to
 600                  * re-enable CE interrupts if no more CEs are detected.
 601                  * This is to protect against CE storms.
 602                  */
 603                 if (ecc_ce_delayed &&
 604                     ecc_err->ecc_caller == PCI_ECC_CALL &&
 605                     ecc_err->ecc_p->ecc_to_id == 0) {
 606                         ecc_err->ecc_p->ecc_to_id = timeout(ecc_delayed_ce,
 607                             (void *)ecc_err->ecc_p,
 608                             drv_usectohz((clock_t)ecc_ce_delay_secs *
 609                             MICROSEC));
 610                 }
 611 
 612                 /* ecc_err_cexdiag returns nonzero to recirculate */
 613                 if (CE_XDIAG_EXT_ALG_APPLIED(ecc->flt_disp) &&
 614                     ecc_err_cexdiag(ecc_err, eqep))
 615                         return;
 616                 ecc_err->ecc_err_type = flt_to_error_type(ecc);
 617                 break;
 618         }
 619 
 620         ecc_ereport_post(pci_p->pci_dip, ecc_err);
 621 }
 622 
 623 static void
 624 ecc_delayed_ce(void *arg)
 625 {
 626         ecc_t *ecc_p = (ecc_t *)arg;
 627         pci_common_t *cmn_p;
 628         cb_t *cb_p;
 629 




 588 
 589         switch (ecc_type) {
 590         case CBNINTR_UE:
 591                 if (ecc_err->ecc_pg_ret == 1) {
 592                         (void) page_retire(ecc->flt_addr, PR_UE);
 593                 }
 594                 ecc_err->ecc_err_type = flt_to_error_type(ecc);
 595                 break;
 596 
 597         case CBNINTR_CE:
 598                 /*
 599                  * Setup timeout (if CE detected via interrupt) to
 600                  * re-enable CE interrupts if no more CEs are detected.
 601                  * This is to protect against CE storms.
 602                  */
 603                 if (ecc_ce_delayed &&
 604                     ecc_err->ecc_caller == PCI_ECC_CALL &&
 605                     ecc_err->ecc_p->ecc_to_id == 0) {
 606                         ecc_err->ecc_p->ecc_to_id = timeout(ecc_delayed_ce,
 607                             (void *)ecc_err->ecc_p,
 608                             drv_sectohz((clock_t)ecc_ce_delay_secs));

 609                 }
 610 
 611                 /* ecc_err_cexdiag returns nonzero to recirculate */
 612                 if (CE_XDIAG_EXT_ALG_APPLIED(ecc->flt_disp) &&
 613                     ecc_err_cexdiag(ecc_err, eqep))
 614                         return;
 615                 ecc_err->ecc_err_type = flt_to_error_type(ecc);
 616                 break;
 617         }
 618 
 619         ecc_ereport_post(pci_p->pci_dip, ecc_err);
 620 }
 621 
 622 static void
 623 ecc_delayed_ce(void *arg)
 624 {
 625         ecc_t *ecc_p = (ecc_t *)arg;
 626         pci_common_t *cmn_p;
 627         cb_t *cb_p;
 628