mirror of
https://github.com/genodelabs/genode.git
synced 2025-01-18 10:46:25 +00:00
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:
parent
b2947d2187
commit
15a379894a
@ -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();
|
||||
}
|
||||
|
||||
|
||||
|
@ -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();
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user