OSDN Git Service

mv88e6xxx: Reject requests to enable time stamping on both edges.
authorRichard Cochran <richardcochran@gmail.com>
Thu, 14 Nov 2019 18:45:03 +0000 (10:45 -0800)
committerDavid S. Miller <davem@davemloft.net>
Fri, 15 Nov 2019 20:48:32 +0000 (12:48 -0800)
This driver enables rising edge or falling edge, but not both, and so
this patch validates that the request contains only one of the two
edges.

Signed-off-by: Richard Cochran <richardcochran@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/dsa/mv88e6xxx/ptp.c

index 3b19859..d838c17 100644 (file)
@@ -280,6 +280,12 @@ static int mv88e6352_ptp_enable_extts(struct mv88e6xxx_chip *chip,
                                PTP_STRICT_FLAGS))
                return -EOPNOTSUPP;
 
+       /* Reject requests to enable time stamping on both edges. */
+       if ((rq->extts.flags & PTP_STRICT_FLAGS) &&
+           (rq->extts.flags & PTP_ENABLE_FEATURE) &&
+           (rq->extts.flags & PTP_EXTTS_EDGES) == PTP_EXTTS_EDGES)
+               return -EOPNOTSUPP;
+
        pin = ptp_find_pin(chip->ptp_clock, PTP_PF_EXTTS, rq->extts.index);
 
        if (pin < 0)