mlxsw: spectrum: Initialize egress scheduling
[cascardo/linux.git] / include / linux / device.h
index 88192d0..002c597 100644 (file)
@@ -685,6 +685,18 @@ void __iomem *devm_ioremap_resource(struct device *dev, struct resource *res);
 int devm_add_action(struct device *dev, void (*action)(void *), void *data);
 void devm_remove_action(struct device *dev, void (*action)(void *), void *data);
 
+static inline int devm_add_action_or_reset(struct device *dev,
+                                          void (*action)(void *), void *data)
+{
+       int ret;
+
+       ret = devm_add_action(dev, action, data);
+       if (ret)
+               action(data);
+
+       return ret;
+}
+
 struct device_dma_parameters {
        /*
         * a low level driver may set these to teach IOMMU code about