Don't overrun the msix_data array by reading the (unused) link state
interrupt information.
Reported by: mav
Sponsored by: EMC / Isilon Storage Division
Differential D6489
ntb_hw(4): Only record the first three MSIX vectors cem on May 21 2016, 9:48 PM. Authored by Tags None Referenced Files
Subscribers
Details
Don't overrun the msix_data array by reading the (unused) link state Reported by: mav
Diff Detail
Event TimelineComment Actions The patch looks good to me, and alike change I've tried myself before fixed the kernel panic. On the other hand all this workaround stopped any interface traffic for me (without it traffic flows, but _very_ slowly), so can not really test it. Will investigate more. Comment Actions I'm just not sure why ntb_get_msix_info() needs argument to assert its value inside. Why not just remove it, doing fixed loop same as in other places? Comment Actions Wow, what panic did you hit? I'm surprised, I didn't run into it. Re: if_ntb, I'm sure that code is buggy. We don't use it at Isilon so I haven't spent much effort debugging it. For now, that would be fine. Most of the code tries to handle the hardware-reported number of registers generally rather than hardcoding, though. Comment Actions I am surprised you could not hit it. This bug overwrites ntb->peer_lapic_bar pointer with some garbage, that caused fault inside ntb_peer_db_set(). At least it happens so on FreeBSD 10 where I am trying to run this code.
That somewhat explains my thoughts about this code after day spent reading it. :( Comment Actions Ah, we don't use that routine.
:-) |