lxip: Fix on OKL4

This has been broken for a while now. Use correct (global) signal transmission,
do not use local signal transmission, as signals seems to get lost.

Issue #1310
This commit is contained in:
Sebastian Sumpf 2015-01-19 15:51:55 +01:00 committed by Christian Helmuth
parent b2947d2187
commit 15a379894a
2 changed files with 6 additions and 8 deletions

View File

@ -88,21 +88,20 @@ void Net::Packet_handler::_ready_to_ack(unsigned num)
void Net::Packet_handler::_packet_avail(unsigned)
{
using namespace Net;
enum { MAX_PACKETS = 50 };
enum { MAX_PACKETS = 20 };
int count = 0;
while(Nic::n()->rx()->packet_avail() &&
Nic::n()->rx()->ready_to_ack() &&
++count < MAX_PACKETS) {
count++ < MAX_PACKETS)
{
Packet_descriptor p = Nic::n()->rx()->get_packet();
net_driver_rx(Net::Nic::n()->rx()->packet_content(p), p.size());
Nic::n()->rx()->acknowledge_packet(p);
}
if (count == MAX_PACKETS)
_sink_submit.submit(1);
//Genode::Signal_transmitter(_sink_submit).submit();
if (Nic::n()->rx()->packet_avail())
Genode::Signal_transmitter(_sink_submit).submit();
}

View File

@ -126,8 +126,7 @@ class Net::Socketcall : public Genode::Signal_dispatcher_base,
void _submit_and_block()
{
//_signal.submit(); /* global submit */
submit(1); /* local submit */
_signal.submit(); /* global submit */
_block.down();
}