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: <20160916072421.GA14160@localhost.localdomain>
Date:   Fri, 16 Sep 2016 09:24:22 +0200
From:   Richard Cochran <richardcochran@...il.com>
To:     Josh Triplett <josh@...htriplett.org>
Cc:     Nicolas Pitre <nicolas.pitre@...aro.org>,
        John Stultz <john.stultz@...aro.org>,
        Thomas Gleixner <tglx@...utronix.de>,
        lkml <linux-kernel@...r.kernel.org>
Subject: Re: [PATCH v3) posix-timers: make it configurable

On Thu, Sep 15, 2016 at 02:56:49PM -0700, Josh Triplett wrote:
> > I suspect there is more of a case for having net drivers _without_ ptp 
> > support.  This could be implemented with a ptp_clock_register() stub 
> > returning NULL when ptp is not configured.  I didn't look at most 
> > drivers but at least broadcom/tg3.c seems to be fine with such an 
> > approach.

(I wouldn't be suprised if some drivers fail to deal with NULL
gracefully, but those can always be fixed ;)

> > Alternatively, all those ethernet drivers currently selecting 
> > PTP_1588_CLOCK could be banned from the kernel config when POSIX_TIMERS 
> > is not selected.
> > 
> > What do people prefer?
> 
> If the stubs prove as simple as you suggest above (a static inline
> returning NULL), that sounds ideal.  If this would require a non-trivial
> amount of stub code, then preventing those drivers from building without
> POSIX_TIMERS seems preferable to that.

I agree that stubs are the better solution.  There are only five
functions that deal with 'struct ptp_clock' at all.  The stubs could
be:

static inline
struct ptp_clock *ptp_clock_register(struct ptp_clock_info *info,
				     struct device *parent) { return NULL; }

static inline
int ptp_clock_unregister(struct ptp_clock *ptp) { return -1; }

static inline
void ptp_clock_event(struct ptp_clock *ptp, struct ptp_clock_event *event) { }

static inline
int ptp_clock_index(struct ptp_clock *ptp) { return -1; }

static inline
int ptp_find_pin(struct ptp_clock *ptp,
		 enum ptp_pin_function func, unsigned int chan) { return -1; }

Thanks,
Richard

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ