The commit is pushed to "branch-rh7-3.10.0-1160.108.1.vz7.221.x-ovz" and will 
appear at https://src.openvz.org/scm/ovz/vzkernel.git
after rh7-3.10.0-1160.108.1.vz7.221.2
------>
commit 5451bbb8bf28025c258e6029a76d1f26dfdef966
Author: Ido Schimmel <ido...@mellanox.com>
Date:   Fri Aug 23 18:47:21 2019 +0300

    ms/drop_monitor: Make timestamps y2038 safe
    
    Timestamps are currently communicated to user space as 'struct
    timespec', which is not considered y2038 safe since it uses a 32-bit
    signed value for seconds.
    
    Fix this while the API is still not part of any official kernel release
    by using 64-bit nanoseconds timestamps instead.
    
    mFixes: ca30707dee2b ("drop_monitor: Add packet alert mode")
    mFixes: 5e58109b1ea4 ("drop_monitor: Add support for packet alert mode for 
hardware drops")
    Signed-off-by: Ido Schimmel <ido...@mellanox.com>
    Acked-by: Neil Horman <nhor...@tuxdriver.com>
    Signed-off-by: David S. Miller <da...@davemloft.net>
    
    Backporting to vz7 kernel note:
     * net_dm_hw_*() hunks have been dropped, no Hardware Node functionality
       in vz7 kernel
    
    https://virtuozzo.atlassian.net/browse/PSBM-153598
    (cherry picked from commit bd1200b79510a68554890af2f48d92be6eb1daf8)
    Signed-off-by: Konstantin Khorenko <khore...@virtuozzo.com>
---
 include/uapi/linux/net_dropmon.h | 2 +-
 net/core/drop_monitor.c          | 7 +++----
 2 files changed, 4 insertions(+), 5 deletions(-)

diff --git a/include/uapi/linux/net_dropmon.h b/include/uapi/linux/net_dropmon.h
index 9823d47341c3..c00b874da97b 100644
--- a/include/uapi/linux/net_dropmon.h
+++ b/include/uapi/linux/net_dropmon.h
@@ -70,7 +70,7 @@ enum net_dm_attr {
        NET_DM_ATTR_PC,                         /* u64 */
        NET_DM_ATTR_SYMBOL,                     /* string */
        NET_DM_ATTR_IN_PORT,                    /* nested */
-       NET_DM_ATTR_TIMESTAMP,                  /* struct timespec */
+       NET_DM_ATTR_TIMESTAMP,                  /* u64 */
        NET_DM_ATTR_PROTO,                      /* u16 */
        NET_DM_ATTR_PAYLOAD,                    /* binary */
        NET_DM_ATTR_PAD,
diff --git a/net/core/drop_monitor.c b/net/core/drop_monitor.c
index 65ce1cadd348..30d6f8f6ccb8 100644
--- a/net/core/drop_monitor.c
+++ b/net/core/drop_monitor.c
@@ -332,7 +332,7 @@ static size_t net_dm_packet_report_size(size_t payload_len)
               /* NET_DM_ATTR_IN_PORT */
               net_dm_in_port_size() +
               /* NET_DM_ATTR_TIMESTAMP */
-              nla_total_size(sizeof(struct timespec)) +
+              nla_total_size(sizeof(u64)) +
               /* NET_DM_ATTR_PROTO */
               nla_total_size(sizeof(u16)) +
               /* NET_DM_ATTR_PAYLOAD */
@@ -366,7 +366,6 @@ static int net_dm_packet_report_fill(struct sk_buff *msg, 
struct sk_buff *skb,
        u64 pc = (u64)(uintptr_t) NET_DM_SKB_CB(skb)->pc;
        char buf[NET_DM_MAX_SYMBOL_LEN];
        struct nlattr *attr;
-       struct timespec ts;
        void *hdr;
        int rc;
 
@@ -386,8 +385,8 @@ static int net_dm_packet_report_fill(struct sk_buff *msg, 
struct sk_buff *skb,
        if (rc)
                goto nla_put_failure;
 
-       if (ktime_to_timespec_cond(skb->tstamp, &ts) &&
-           nla_put(msg, NET_DM_ATTR_TIMESTAMP, sizeof(ts), &ts))
+       if (nla_put_u64_64bit(msg, NET_DM_ATTR_TIMESTAMP,
+                             ktime_to_ns(skb->tstamp), NET_DM_ATTR_PAD))
                goto nla_put_failure;
 
        if (!payload_len)
_______________________________________________
Devel mailing list
Devel@openvz.org
https://lists.openvz.org/mailman/listinfo/devel

Reply via email to