|
@@ -658,6 +658,21 @@ static int intelxl_admin_link ( struct net_device *netdev ) {
|
658
|
658
|
return 0;
|
659
|
659
|
}
|
660
|
660
|
|
|
661
|
+/**
|
|
662
|
+ * Handle virtual function event (when VF driver is not present)
|
|
663
|
+ *
|
|
664
|
+ * @v netdev Network device
|
|
665
|
+ * @v evt Admin queue event descriptor
|
|
666
|
+ * @v buf Admin queue event data buffer
|
|
667
|
+ */
|
|
668
|
+__weak void
|
|
669
|
+intelxlvf_admin_event ( struct net_device *netdev __unused,
|
|
670
|
+ struct intelxl_admin_descriptor *evt __unused,
|
|
671
|
+ union intelxl_admin_buffer *buf __unused ) {
|
|
672
|
+
|
|
673
|
+ /* Nothing to do */
|
|
674
|
+}
|
|
675
|
+
|
661
|
676
|
/**
|
662
|
677
|
* Refill admin event queue
|
663
|
678
|
*
|
|
@@ -711,6 +726,9 @@ static void intelxl_poll_admin ( struct net_device *netdev ) {
|
711
|
726
|
case cpu_to_le16 ( INTELXL_ADMIN_LINK ):
|
712
|
727
|
intelxl_admin_link ( netdev );
|
713
|
728
|
break;
|
|
729
|
+ case cpu_to_le16 ( INTELXL_ADMIN_SEND_TO_VF ):
|
|
730
|
+ intelxlvf_admin_event ( netdev, evt, buf );
|
|
731
|
+ break;
|
714
|
732
|
default:
|
715
|
733
|
DBGC ( intelxl, "INTELXL %p admin event %#x "
|
716
|
734
|
"unrecognised opcode %#04x\n", intelxl,
|