- /* ip_input should handle a list of packets but does not yet */
- for (packet = packet_list; packet; packet = packet_list) {
- how_many++;
- packet_list = mbuf_nextpkt(packet);
- mbuf_setnextpkt(packet, NULL);
- ip_input(packet);
+ if (packet_list->m_nextpkt != NULL) {
+ ip_input_process_list(packet_list);
+ } else {
+ /*
+ * XXX remove this path if ip_input_process_list is proven
+ * to be stable and has minimum overhead on most platforms.
+ */
+ ip_input(packet_list);