Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Kernel: Make sure the E1000 network adapter keeps receiving packets #6669

Merged
merged 5 commits into from
Apr 27, 2021

Conversation

gunnarbeutner
Copy link
Member

@gunnarbeutner gunnarbeutner commented Apr 26, 2021

Previously the E1000 network adapter would stop receiving further packets when an RX buffer overrun occurred. This was the case when connecting the adapter to a real network where enough broadcast traffic caused the buffer to be full before the kernel had a chance to clear the RX buffer.

This also updates the E1000 module to use macros instead of hard-coded magic values.

Further it adds logging for E1000 RX buffer overruns and avoids resetting the IRQ mask on each interrupt.

@gunnarbeutner
Copy link
Member Author

@supercomputer7 I was told you might be able to test this if you have some spare time. While this works just fine I wonder if it also works with real hardware.

Copy link
Member

@IdanHo IdanHo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@supercomputer7
Copy link
Member

@supercomputer7 I was told you might be able to test this if you have some spare time. While this works just fine I wonder if it also works with real hardware.

Me? Well, getting an Intel Ethernet card is still a goal I ought to achieve, so the answer unfortunately is that I can't test it right now. Nevertheless, the patch looks good. I might have a few points to indicate to fix, so everything will be marvelous :)

gunnarbeutner added a commit to gunnarbeutner/serenity that referenced this pull request Apr 26, 2021
This currently only supports Linux but I don't think anyone else
ran this yet because they'd have run into the E1000 bug I fixed
in SerenityOS#6669
gunnarbeutner added a commit to gunnarbeutner/serenity that referenced this pull request Apr 27, 2021
This currently only supports Linux but I don't think anyone else
ran this yet because they'd have run into the E1000 bug I fixed
in SerenityOS#6669
Previously the E1000 network adapter would stop receiving further
packets when an RX buffer overrun occurred. This was the case
when connecting the adapter to a real network where enough broadcast
traffic caused the buffer to be full before the kernel had a chance
to clear the RX buffer.
@awesomekling awesomekling merged commit bf703ee into SerenityOS:master Apr 27, 2021
awesomekling pushed a commit that referenced this pull request Apr 27, 2021
This currently only supports Linux but I don't think anyone else
ran this yet because they'd have run into the E1000 bug I fixed
in #6669
@gunnarbeutner gunnarbeutner deleted the e1000-fixes branch April 27, 2021 10:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants