Kill off poll_interruptions(); it is lethal when we're acting as a PXE
authorMichael Brown <mcb30@etherboot.org>
Mon, 14 Aug 2006 22:29:51 +0000 (22:29 +0000)
committerMichael Brown <mcb30@etherboot.org>
Mon, 14 Aug 2006 22:29:51 +0000 (22:29 +0000)
stack or INT 13 emulator etc.

src/core/misc.c
src/core/nic.c
src/core/pcmcia.c
src/core/timer.c
src/drivers/net/e1000.c
src/drivers/net/tg3.c
src/include/etherboot.h

index d987f85..77b2265 100644 (file)
@@ -72,20 +72,6 @@ int32_t random(void)
        return seed;
 }
 
-/**************************************************************************
-POLL INTERRUPTIONS
-**************************************************************************/
-void poll_interruptions(void)
-{
-       int ch;
-       if ( ! as_main_program ) return;
-       /* If an interruption has occured restart etherboot */
-       if (iskey() && (ch = getchar(), (ch == K_ESC) || (ch == K_EOF) || (ch == K_INTR))) {
-               int state = (ch != K_INTR)? -1 : -3;
-               longjmp(restart_etherboot, state);
-       }
-}
-
 /**************************************************************************
 SLEEP
 **************************************************************************/
@@ -94,7 +80,6 @@ void sleep(int secs)
        unsigned long tmo;
 
        for (tmo = currticks()+secs*TICKS_PER_SEC; currticks() < tmo; ) {
-               poll_interruptions();
        }
 }
 
index 0382ced..1debd06 100644 (file)
@@ -883,11 +883,6 @@ int await_reply(reply_t reply, int ival, void *ptr, long timeout)
                if (result == 0) {
                        /* We don't have anything */
                
-                       /* Check for abort key only if the Rx queue is empty -
-                        * as long as we have something to process, don't
-                        * assume that something failed.  It is unlikely that
-                        * we have no processing time left between packets.  */
-                       poll_interruptions();
                        /* Do the timeout after at least a full queue walk.  */
                        if ((timeout == 0) || (currticks() > time)) {
                                break;
index b4facea..c15fe9c 100644 (file)
@@ -48,7 +48,6 @@ struct        driver_interact_t driver[] = {
 void   sleepticks(int numticks ) {
        u_int   tmo;
        for (tmo = currticks()+numticks; currticks() < tmo; ) {
-                poll_interruptions();
         }
        return;
 }
index d4d38ad..73dfa8b 100644 (file)
@@ -17,7 +17,6 @@ void mdelay(unsigned int msecs)
        unsigned int i;
        for(i = 0; i < msecs; i++) {
                udelay(1000);
-               poll_interruptions();
        }
 }
 
@@ -25,6 +24,5 @@ void waiton_timer2(unsigned int ticks)
 {
        load_timer2(ticks);
        while(timer2_running()) {
-               poll_interruptions();
        }
 }
index d89deb7..3ec7991 100644 (file)
@@ -3536,7 +3536,6 @@ e1000_transmit (struct nic *nic, const char *d,   /* Destination */
        E1000_WRITE_REG (&hw, TDT, tx_tail);
        while (!(txp->upper.data & E1000_TXD_STAT_DD)) {
                udelay(10);     /* give the nic a chance to write to the register */
-               poll_interruptions();
        }
        DEBUGFUNC("send end");
 }
index 6aad871..1901f68 100644 (file)
@@ -3153,7 +3153,6 @@ static void tg3_transmit(struct nic *nic, const char *dst_addr,
        while((tp->hw_status->idx[0].tx_consumer != entry) &&
                (tp->hw_status->idx[0].tx_consumer != PREV_TX(entry))) {
                mdelay(10);     /* give the nick a chance */
-               poll_interruptions();
                if (++i > 500) { /* timeout 5s for transmit */
                        printf("transmit timed out\n");
                        tg3_halt(tp);
index 10abef1..e5a1815 100644 (file)
@@ -222,7 +222,6 @@ extern int load_block P((unsigned char *, unsigned int, unsigned int, int ));
 extern void twiddle P((void));
 extern void sleep P((int secs));
 extern void interruptible_sleep P((int secs));
-extern void poll_interruptions P((void));
 extern int strcasecmp P((const char *a, const char *b));
 extern char *substr P((const char *a, const char *b));