Page MenuHomeFreeBSD

D2041.id4171.diff
No OneTemporary

D2041.id4171.diff

Index: sys/dev/pci/pci_iov.c
===================================================================
--- sys/dev/pci/pci_iov.c
+++ sys/dev/pci/pci_iov.c
@@ -586,7 +586,7 @@
* VFs.
*/
if (nvlist_get_bool(iov_config, "passthrough"))
- device_set_devclass(vf, "ppt");
+ device_set_devclass_fixed(vf, "ppt");
vfinfo = device_get_ivars(vf);
Index: sys/kern/subr_bus.c
===================================================================
--- sys/kern/subr_bus.c
+++ sys/kern/subr_bus.c
@@ -2683,6 +2683,25 @@
}
/**
+ * @brief Set the devclass of a device and mark the devclass fixed.
+ * @see device_set_devclass()
+ */
+int
+device_set_devclass_fixed(device_t dev, const char *classname)
+{
+ int error;
+
+ if (classname == NULL)
+ return (EINVAL);
+
+ error = device_set_devclass(dev, classname);
+ if (error)
+ return (error);
+ dev->flags |= DF_FIXEDCLASS;
+ return (0);
+}
+
+/**
* @brief Set the driver of a device
*
* @retval 0 success
Index: sys/sys/bus.h
===================================================================
--- sys/sys/bus.h
+++ sys/sys/bus.h
@@ -522,6 +522,7 @@
void device_set_desc(device_t dev, const char* desc);
void device_set_desc_copy(device_t dev, const char* desc);
int device_set_devclass(device_t dev, const char *classname);
+int device_set_devclass_fixed(device_t dev, const char *classname);
int device_set_driver(device_t dev, driver_t *driver);
void device_set_flags(device_t dev, u_int32_t flags);
void device_set_softc(device_t dev, void *softc);

File Metadata

Mime Type
text/plain
Expires
Sun, Mar 29, 9:50 PM (16 h, 46 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
30556692
Default Alt Text
D2041.id4171.diff (1 KB)

Event Timeline