**/
int i40e_ptp_set_ts_config(struct i40e_pf *pf, struct ifreq *ifr)
{
- struct hwtstamp_config *config = &pf->tstamp_config;
+ struct hwtstamp_config config;
int err;
- if (copy_from_user(config, ifr->ifr_data, sizeof(*config)))
+ if (copy_from_user(&config, ifr->ifr_data, sizeof(config)))
return -EFAULT;
- err = i40e_ptp_set_timestamp_mode(pf, config);
+ err = i40e_ptp_set_timestamp_mode(pf, &config);
if (err)
return err;
- return copy_to_user(ifr->ifr_data, config, sizeof(*config)) ?
+ /* save these settings for future reference */
+ pf->tstamp_config = config;
+
+ return copy_to_user(ifr->ifr_data, &config, sizeof(config)) ?
-EFAULT : 0;
}