diff --git a/net/core/ethtool.c b/net/core/ethtool.c
index 1edae46..d255209 100644
--- a/net/core/ethtool.c
+++ b/net/core/ethtool.c
@@ -188,6 +188,9 @@
 		rc = ops->get_sset_count(dev, ETH_SS_STATS);
 		if (rc >= 0)
 			info.n_stats = rc;
+		rc = ops->get_sset_count(dev, ETH_SS_PRIV_FLAGS);
+		if (rc >= 0)
+			info.n_priv_flags = rc;
 	} else {
 		/* code path for obsolete hooks */
 
@@ -881,6 +884,33 @@
 	return dev->ethtool_ops->set_flags(dev, edata.data);
 }
 
+static int ethtool_get_priv_flags(struct net_device *dev, char __user *useraddr)
+{
+	struct ethtool_value edata = { ETHTOOL_GPFLAGS };
+
+	if (!dev->ethtool_ops->get_priv_flags)
+		return -EOPNOTSUPP;
+
+	edata.data = dev->ethtool_ops->get_priv_flags(dev);
+
+	if (copy_to_user(useraddr, &edata, sizeof(edata)))
+		return -EFAULT;
+	return 0;
+}
+
+static int ethtool_set_priv_flags(struct net_device *dev, char __user *useraddr)
+{
+	struct ethtool_value edata;
+
+	if (!dev->ethtool_ops->set_priv_flags)
+		return -EOPNOTSUPP;
+
+	if (copy_from_user(&edata, useraddr, sizeof(edata)))
+		return -EFAULT;
+
+	return dev->ethtool_ops->set_priv_flags(dev, edata.data);
+}
+
 /* The main entry point in this file.  Called from net/core/dev.c */
 
 int dev_ethtool(struct ifreq *ifr)
@@ -915,6 +945,8 @@
 	case ETHTOOL_GPERMADDR:
 	case ETHTOOL_GUFO:
 	case ETHTOOL_GGSO:
+	case ETHTOOL_GFLAGS:
+	case ETHTOOL_GPFLAGS:
 		break;
 	default:
 		if (!capable(CAP_NET_ADMIN))
@@ -1039,6 +1071,12 @@
 	case ETHTOOL_SFLAGS:
 		rc = ethtool_set_flags(dev, useraddr);
 		break;
+	case ETHTOOL_GPFLAGS:
+		rc = ethtool_get_priv_flags(dev, useraddr);
+		break;
+	case ETHTOOL_SPFLAGS:
+		rc = ethtool_set_priv_flags(dev, useraddr);
+		break;
 	default:
 		rc = -EOPNOTSUPP;
 	}
