diff
+static void cleanup_and_free_pctldev(struct pinctrl_dev *pctldev)
+{
+	pinctrl_free_pindescs(pctldev, pctldev->desc->pins,
+			      pctldev->desc->npins);
+	mutex_destroy(&pctldev->mutex);
+	kfree(pctldev);
+}
+
 int pinctrl_enable(struct pinctrl_dev *pctldev)
 {
 	int error;
 
 	error = pinctrl_claim_hogs(pctldev);
 	if (error) {
 		dev_err(pctldev->dev, "could not claim hogs: %i\n",
 			error);
-		pinctrl_free_pindescs(pctldev, pctldev->desc->pins,
-				      pctldev->desc->npins);
-		mutex_destroy(&pctldev->mutex);
-		kfree(pctldev);
-
+		cleanup_and_free_pctldev(pctldev);
 		return error;
 	}
 	mutex_lock(&pinctrldev_list_mutex);
