+ } else if (hpaddr->hper1&HP_WLE) {
+ printf("hp%d is write locked\n", dkunit(bp));
+ bp->b_flags |= B_ERROR;
+ } else if (++mi->mi_tab.b_errcnt > 27 ||
+ mbasr & MBASR_HARD ||
+ hpaddr->hper1 & HPER1_HARD ||
+ hpaddr->hper2 & HPER2_HARD) {
+ harderr(bp);
+ printf("hp%d mbasr=%b er1=%b er2=%b\n",
+ dkunit(bp), mbasr, mbasr_bits,
+ hpaddr->hper1, HPER1_BITS,
+ hpaddr->hper2, HPER2_BITS);
+ bp->b_flags |= B_ERROR;
+#ifdef notdef
+ } else if (hpaddr->hper2&HP_SSE) {
+ hpecc(mi, 1);
+ return (MBD_RESTARTED);
+#endif
+ } else if ((hpaddr->hper1&(HP_DCK|HP_ECH)) == HP_DCK) {
+ if (hpecc(mi, 0))
+ return (MBD_RESTARTED);
+ /* else done */
+ } else
+ retry = 1;
+ hpaddr->hpcs1 = HP_DCLR|HP_GO;
+ if ((mi->mi_tab.b_errcnt&07) == 4) {
+ hpaddr->hpcs1 = HP_RECAL|HP_GO;
+ /* SHOULD SET AN INTERRUPT AND RETURN */
+ /* AND HANDLE ALA rk.c OR up.c */
+ while (hpaddr->hpds & HP_PIP)
+ ;
+ mbclrattn(mi);