diff --git a/hermit/drivers/net/mmnif.c b/hermit/drivers/net/mmnif.c index d91d58284..9dcb7276f 100644 --- a/hermit/drivers/net/mmnif.c +++ b/hermit/drivers/net/mmnif.c @@ -849,11 +849,16 @@ static void mmnif_irqhandler(struct state* s) mmnif = (mmnif_t *) mmnif_dev->state; if (!mmnif->check_in_progress) { +#if LWIP_TCPIP_CORE_LOCKING_INPUT + mmnif->check_in_progress = 1; + mmnif_rx(mmnif_dev); +#else if (tcpip_callback_with_block((tcpip_callback_fn) mmnif_rx, (void*) mmnif_dev, 0) == ERR_OK) { mmnif->check_in_progress = 1; } else { - DEBUGPRINTF("rckemacif_handler: unable to send a poll request to the tcpip thread\n"); + DEBUGPRINTF("mmnif_handler: unable to send a poll request to the tcpip thread\n"); } +#endif } } diff --git a/hermit/kernel/main.c b/hermit/kernel/main.c index c1860b191..d0cc85417 100644 --- a/hermit/kernel/main.c +++ b/hermit/kernel/main.c @@ -172,10 +172,16 @@ static int init_netifs(void) * - gw : the gateway wicht should be used * - mmnif_init : the initialization which has to be done in order to use our interface * - ip_input : tells him that he should use ip_input - * + */ +#if LWIP_TCPIP_CORE_LOCKING_INPUT + if ((err = netifapi_netif_add(&mmnif_netif, &ipaddr, &netmask, &gw, NULL, mmnif_init, tcpip_input)) != ERR_OK) +#else + /* * Note: Our drivers guarantee that the input function will be called in the context of the tcpip thread. - * => Therefore, we are able to use ip_input instead of tcpip_input */ + * => Therefore, we are able to use ip_input instead of tcpip_input + */ if ((err = netifapi_netif_add(&mmnif_netif, &ipaddr, &netmask, &gw, NULL, mmnif_init, ip_input)) != ERR_OK) +#endif { kprintf("Unable to add the intra network interface: err = %d\n", err); return -ENODEV; diff --git a/hermit/lwip b/hermit/lwip index 3a11d4209..12edcefed 160000 --- a/hermit/lwip +++ b/hermit/lwip @@ -1 +1 @@ -Subproject commit 3a11d42097b7008ffd1b3ceac1e414dcc74a2228 +Subproject commit 12edcefed1a4e30a91ff969b5aa4630b2f7c7651