static unsigned int max_vfs;
 module_param(max_vfs, uint, 0);
 MODULE_PARM_DESC(max_vfs,
-                "Maximum number of virtual functions to allocate per physical function - default is zero and maximum value is 63");
+                "Maximum number of virtual functions to allocate per physical function - default is zero and maximum value is 63. (Deprecated)");
 #endif /* CONFIG_PCI_IOV */
 
 static unsigned int allow_unsupported_sfp;
        hw->fc.disable_fc_autoneg = ixgbe_device_supports_autoneg_fc(hw);
 
 #ifdef CONFIG_PCI_IOV
+       if (max_vfs > 0)
+               e_dev_warn("Enabling SR-IOV VFs using the max_vfs module parameter is deprecated - please use the pci sysfs interface instead.\n");
+
        /* assign number of SR-IOV VFs */
-       if (hw->mac.type != ixgbe_mac_82598EB)
-               adapter->num_vfs = (max_vfs > 63) ? 0 : max_vfs;
+       if (hw->mac.type != ixgbe_mac_82598EB) {
+               if (max_vfs > 63) {
+                       adapter->num_vfs = 0;
+                       e_dev_warn("max_vfs parameter out of range. Not assigning any SR-IOV VFs\n");
+               } else {
+                       adapter->num_vfs = max_vfs;
+               }
+       }
+#endif /* CONFIG_PCI_IOV */
 
-#endif
        /* enable itr by default in dynamic mode */
        adapter->rx_itr_setting = 1;
        adapter->tx_itr_setting = 1;
 
        if (!pre_existing_vfs && !adapter->num_vfs)
                return;
 
-       if (!pre_existing_vfs)
-               dev_warn(&adapter->pdev->dev,
-                        "Enabling SR-IOV VFs using the module parameter is deprecated - please use the pci sysfs interface.\n");
-
        /* If there are pre-existing VFs then we have to force
         * use of that many - over ride any module parameter value.
         * This may result from the user unloading the PF driver