PR: 254419
Details
Diff Detail
- Repository
- rS FreeBSD src repository - subversion
- Lint
Lint Passed - Unit
No Test Coverage - Build Status
Buildable 37991 Build 34880: arc lint + arc unit
Event Timeline
I see a call in ipfw, I guess that needs to be updated too. Seems time to introduce a new subroutine to handle this.
sys/netpfil/pf/pf.c | ||
---|---|---|
5595 | I believe this treatment isn't needed when we're only checksumming a protocol header. |
sys/netpfil/pf/pf.c | ||
---|---|---|
5873 | These seem a bit tricky. mb_unmapped_to_ext() frees the chain upon failure, but this function and its callers can't really do that. We are also assuming in general that the first mbuf in the chain is preserved, otherwise mb_unmapped_to_ext() would invalidate some pointers in its callers. |
sys/netpfil/pf/pf.c | ||
---|---|---|
5873 | It's tempting to 'fix' this by calling mb_unmapped_to_ext() in pf_check_in()/pf_check_out(), so that we restore the assumption that it's safe to access packet data. Is there a straightforward way of asserting that an mbuf is or is not unmapped? Just adding an assertion here would at least make future debugging easier. |
sys/netpfil/pf/pf.c | ||
---|---|---|
5873 | You have to check the entire chain to see if any mbufs in the chain have M_EXTPG set in m_flags. However, it might be nice to have some kind of M_ASSERTMAPPED(m) wrapper for that the way we have a M_ASSERTPKTHDR() macro. |
It seems we have first report about panic in the related code: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=255164