site_archiver@lists.apple.com Delivered-To: darwin-kernel@lists.apple.com On Mar 17, 2006, at 3:02 AM, Brian Doyle wrote: Vincent _______________________________________________ Do not post admin requests to the list. They will be ignored. Darwin-kernel mailing list (Darwin-kernel@lists.apple.com) Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/darwin-kernel/site_archiver%40lists.a... I'm wondering if someone with a bit more hardware experience with ethernet controllers would mind sanity checking this observation: The docs for ifnet_output_raw() in kpi_interface.h say that the (mbuf_t) packet passed to the routine will be freed in the event of an error. Looking through IONetworkController::outputPacket() and BCM440X::outputPacket() it looks like even if there *isn't* an error the packet will be freed (in the case of noErr on a real controller the packet is put onto the ethernet ring buffer and then freed after transmission during serviceTxInterrupt()). Am I interpreting the source correctly and should the docs for kpi_interface.h be updated to reflect this? What the doc means is that the mbuf will be free in all cases, even if ifnet_output_raw() is passed a bad parameter or another error happens before the mbuf gets to the driver. This email sent to site_archiver@lists.apple.com