From a05655eea646c010e40620bc298db26025d51d37 Mon Sep 17 00:00:00 2001 From: beveloper Date: Sun, 9 May 2004 21:20:56 +0000 Subject: [PATCH] Event thread sem can now be interrupted. em_start() is no longer called from within interrupt. git-svn-id: file:///srv/svn/repos/haiku/trunk/current@7481 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/add-ons/kernel/drivers/network/ipro1000/if_em.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/add-ons/kernel/drivers/network/ipro1000/if_em.c b/src/add-ons/kernel/drivers/network/ipro1000/if_em.c index 4a693baf59..d902af5482 100644 --- a/src/add-ons/kernel/drivers/network/ipro1000/if_em.c +++ b/src/add-ons/kernel/drivers/network/ipro1000/if_em.c @@ -500,7 +500,6 @@ stop_event_thread(struct adapter *adapter) * the packet is requeued. **********************************************************************/ -// can be called from within interrupt static void em_start(struct ifnet *ifp) { @@ -802,7 +801,7 @@ event_handler(void *cookie) int32 events; for (;;) { - if (acquire_sem_etc(adapter->event_sem, 1, B_CAN_INTERRUPT, 0) != B_OK) + if (acquire_sem_etc(adapter->event_sem, 1, B_CAN_INTERRUPT, 0) == B_BAD_SEM_ID) return 0; events = atomic_read(&adapter->event_flags); // read @@ -819,6 +818,7 @@ event_handler(void *cookie) if (events & EVENT_RESTART_TX) { TRACE("EVENT_RESTART_TX\n"); + PRINT("EVENT_RESTART_TX not implemented!\n"); // XXX not multithread save? // if (ifp->if_flags & IFF_RUNNING && ifp->if_snd.ifq_head != NULL) // em_start(ifp);