diff --git a/drivers/net/ethernet/nvidia/nvethernet/ether_callback_export.h b/drivers/net/ethernet/nvidia/nvethernet/ether_callback_export.h index 3a60154c..b585f083 100644 --- a/drivers/net/ethernet/nvidia/nvethernet/ether_callback_export.h +++ b/drivers/net/ethernet/nvidia/nvethernet/ether_callback_export.h @@ -473,6 +473,7 @@ irqreturn_t ether_vm_isr(int irq, void *data); * - SIOCGMIIREG: read register from the specified PHY. * - SIOCSMIIREG: set a register on the specified PHY. * - SIOCSHWTSTAMP: Configure hardware time stamping. + * - SIOCGHWTSTAMP: Get hardware time stamp configuration. * * @usage * - Allowed context for the API call diff --git a/drivers/net/ethernet/nvidia/nvethernet/ether_linux.c b/drivers/net/ethernet/nvidia/nvethernet/ether_linux.c index a9160be7..f571ed2b 100644 --- a/drivers/net/ethernet/nvidia/nvethernet/ether_linux.c +++ b/drivers/net/ethernet/nvidia/nvethernet/ether_linux.c @@ -4369,6 +4369,7 @@ int ether_ioctl(struct net_device *dev, struct ifreq *rq, int cmd) int ret = -EOPNOTSUPP; struct ether_priv_data *pdata; struct mii_ioctl_data *mii_data; + struct hwtstamp_config *config; if (!dev || !rq) { pr_err("%s: Invalid arg\n", __func__); @@ -4452,7 +4453,10 @@ int ether_ioctl(struct net_device *dev, struct ifreq *rq, int cmd) case SIOCSHWTSTAMP: ret = ether_handle_hwtstamp_ioctl(pdata, rq); break; - + case SIOCGHWTSTAMP: + config = &pdata->ptp_config; + ret = copy_to_user(rq->ifr_data, config, sizeof(*config)) ? -EFAULT : 0; + break; default: netdev_err(dev, "%s: Unsupported ioctl %d\n", __func__, cmd);