diff --git a/target/linux/generic-2.6/patches-2.6.32/651-swconfig-2.6.32-fix.patch b/target/linux/generic-2.6/patches-2.6.32/651-swconfig-2.6.32-fix.patch
new file mode 100644
index 0000000000000000000000000000000000000000..bc8f8fcff986f1eabf8e82820fd69168b660c771
--- /dev/null
+++ b/target/linux/generic-2.6/patches-2.6.32/651-swconfig-2.6.32-fix.patch
@@ -0,0 +1,29 @@
+--- a/drivers/net/phy/swconfig.c
++++ b/drivers/net/phy/swconfig.c
+@@ -335,7 +335,7 @@ swconfig_send_multipart(struct swconfig_
+ 			if (cb->close(cb, arg) < 0)
+ 				goto error;
+ 		}
+-		err = genlmsg_unicast(cb->msg, info->snd_pid);
++		err = genlmsg_reply(cb->msg, info);
+ 		cb->msg = NULL;
+ 		if (err < 0)
+ 			goto error;
+@@ -419,7 +419,7 @@ swconfig_list_attrs(struct sk_buff *skb,
+ 	if (!cb.msg)
+ 		return 0;
+ 
+-	return genlmsg_unicast(cb.msg, info->snd_pid);
++	return genlmsg_reply(cb.msg, info);
+ 
+ error:
+ 	if (cb.msg)
+@@ -728,7 +728,7 @@ swconfig_get_attr(struct sk_buff *skb, s
+ 		goto nla_put_failure;
+ 
+ 	swconfig_put_dev(dev);
+-	return genlmsg_unicast(msg, info->snd_pid);
++	return genlmsg_reply(msg, info);
+ 
+ nla_put_failure:
+ 	if (msg)