lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20150626064027.GA1511@localhost.localdomain>
Date:	Fri, 26 Jun 2015 08:40:27 +0200
From:	Richard Cochran <richardcochran@...il.com>
To:	Christopher Hall <christopher.s.hall@...el.com>
Cc:	netdev@...r.kernel.org, jacob.e.keller@...el.com,
	john.ronciak@...el.com, kevin.b.stanton@...el.com
Subject: Re: [PATCH] Added additional callback to ptp_clock_info:

On Thu, Jun 25, 2015 at 04:42:57PM -0700, Christopher Hall wrote:
> @@ -196,19 +196,31 @@ long ptp_ioctl(struct posix_clock *pc, unsigned int cmd, unsigned long arg)
>  			break;
>  		}
>  		pct = &sysoff->ts[0];
> -		for (i = 0; i < sysoff->n_samples; i++) {
> -			getnstimeofday64(&ts);
> +		if (ptp->info->getsynctime64 && sysoff->n_samples == 1) {
> +			ptp->info->getsynctime64(ptp->info, &ts, &systs);
> +			pct->sec = systs.tv_sec;
> +			pct->nsec = systs.tv_nsec;
> +			++pct;

Please use pct++ for the sake of consistency.

>  			pct->sec = ts.tv_sec;
>  			pct->nsec = ts.tv_nsec;
> -			pct++;
> -			ptp->info->gettime64(ptp->info, &ts);
> +			++pct;
> +			pct->sec = systs.tv_sec;
> +			pct->nsec = systs.tv_nsec;
> +		} else {
> +			for (i = 0; i < sysoff->n_samples; i++) {
> +				getnstimeofday64(&ts);
> +				pct->sec = ts.tv_sec;
> +				pct->nsec = ts.tv_nsec;
> +				pct++;
> +				ptp->info->gettime64(ptp->info, &ts);
> +				pct->sec = ts.tv_sec;
> +				pct->nsec = ts.tv_nsec;
> +				pct++;
> +			}
> +			getnstimeofday64(&ts);
>  			pct->sec = ts.tv_sec;
>  			pct->nsec = ts.tv_nsec;
> -			pct++;
>  		}
> -		getnstimeofday64(&ts);
> -		pct->sec = ts.tv_sec;
> -		pct->nsec = ts.tv_nsec;
>  		if (copy_to_user((void __user *)arg, sysoff, sizeof(*sysoff)))
>  			err = -EFAULT;
>  		break;
> diff --git a/include/linux/ptp_clock_kernel.h b/include/linux/ptp_clock_kernel.h
> index b8b7306..edff9a5 100644
> --- a/include/linux/ptp_clock_kernel.h
> +++ b/include/linux/ptp_clock_kernel.h
> @@ -105,6 +105,9 @@ struct ptp_clock_info {
>  	int (*adjfreq)(struct ptp_clock_info *ptp, s32 delta);
>  	int (*adjtime)(struct ptp_clock_info *ptp, s64 delta);
>  	int (*gettime64)(struct ptp_clock_info *ptp, struct timespec64 *ts);
> +	int (*getsynctime64)
> +		(struct ptp_clock_info *ptp, struct timespec64 *dev,
> +		 struct timespec64 *sys);

The struct's KernelDoc also needs updating.

>  	int (*settime64)(struct ptp_clock_info *p, const struct timespec64 *ts);
>  	int (*enable)(struct ptp_clock_info *ptp,
>  		      struct ptp_clock_request *request, int on);
> -- 
> 1.9.1

Thanks,
Richard
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ