parent
9a09a2e40d
commit
a548e35422
@ -1 +1 @@
|
|||||||
SOURCES/synce4l-9564b5.tar.gz
|
SOURCES/synce4l-1.1.0.tar.gz
|
||||||
|
@ -1 +1 @@
|
|||||||
0ac4868f7b3121b7f8cb58ef5560c4b807a36edd SOURCES/synce4l-9564b5.tar.gz
|
b140fb69715e4d8d20fbd7ae763510b2a3986eec SOURCES/synce4l-1.1.0.tar.gz
|
||||||
|
@ -0,0 +1,24 @@
|
|||||||
|
commit b61dd54c1015692785a1766b15f7f5914f68df70
|
||||||
|
Author: Miroslav Lichvar <mlichvar@redhat.com>
|
||||||
|
Date: Wed Aug 7 14:14:32 2024 +0200
|
||||||
|
|
||||||
|
Initialize pin ID to -1
|
||||||
|
|
||||||
|
When creating the pin structure, initialize the pin ID to -1 to avoid
|
||||||
|
matching an existing pin with ID 0 (e.g. CVL-SDP22 on E810) when a
|
||||||
|
nonexistent pin is specified in the config.
|
||||||
|
|
||||||
|
Signed-off-by: Miroslav Lichvar <mlichvar@redhat.com>
|
||||||
|
|
||||||
|
diff --git a/dpll_mon.c b/dpll_mon.c
|
||||||
|
index 39659fe..36aa559 100644
|
||||||
|
--- a/dpll_mon.c
|
||||||
|
+++ b/dpll_mon.c
|
||||||
|
@@ -240,6 +240,7 @@ static struct dpll_mon_pin *pin_create(void)
|
||||||
|
}
|
||||||
|
pr_debug("%s %p", __func__, pin);
|
||||||
|
pin->parent_used_by = PARENT_NOT_USED;
|
||||||
|
+ pin->id = -1;
|
||||||
|
STAILQ_INIT(&pin->parents);
|
||||||
|
|
||||||
|
return pin;
|
@ -0,0 +1,43 @@
|
|||||||
|
commit 11319e050cde0657395d2656e2be4a629b53fb3b
|
||||||
|
Author: Miroslav Lichvar <mlichvar@redhat.com>
|
||||||
|
Date: Mon Aug 5 16:20:49 2024 +0200
|
||||||
|
|
||||||
|
Fix crash in dpll_rt_recv()
|
||||||
|
|
||||||
|
A crash was observed with E810 firmware 4.50 and kernel 6.11-rc1 in
|
||||||
|
dpll_rt_recv() trying to assign pin id to the pin which was removed by
|
||||||
|
remove_no_ifname_pin(). The pin is not a duplicate.
|
||||||
|
|
||||||
|
Add a third parameter to remove_no_ifname_pin() to avoid removing the
|
||||||
|
incorrect pin.
|
||||||
|
|
||||||
|
Signed-off-by: Miroslav Lichvar <mlichvar@redhat.com>
|
||||||
|
|
||||||
|
diff --git a/dpll_mon.c b/dpll_mon.c
|
||||||
|
index 06b4bce..39659fe 100644
|
||||||
|
--- a/dpll_mon.c
|
||||||
|
+++ b/dpll_mon.c
|
||||||
|
@@ -256,12 +256,12 @@ static void pin_destroy(struct dpll_mon_pin *pin)
|
||||||
|
free(pin);
|
||||||
|
}
|
||||||
|
|
||||||
|
-void remove_no_ifname_pin(struct dpll_mon *dm, uint32_t pin_id)
|
||||||
|
+void remove_no_ifname_pin(struct dpll_mon *dm, uint32_t pin_id, struct dpll_mon_pin *except)
|
||||||
|
{
|
||||||
|
struct dpll_mon_pin *pin;
|
||||||
|
|
||||||
|
STAILQ_FOREACH(pin, &dm->pins, list)
|
||||||
|
- if (pin && pin_id == pin->id && pin->ifname == NULL) {
|
||||||
|
+ if (pin && pin != except && pin_id == pin->id && pin->ifname == NULL) {
|
||||||
|
pr_debug_pin("removed duplicated pin", pin);
|
||||||
|
STAILQ_REMOVE(&dm->pins, pin, dpll_mon_pin, list);
|
||||||
|
pin_destroy(pin);
|
||||||
|
@@ -589,7 +589,7 @@ static int dpll_rt_recv(struct nl_msg *msg, void *arg)
|
||||||
|
goto unlock;
|
||||||
|
pin_id = nla_get_u32(an[DPLL_A_PIN_ID]);
|
||||||
|
if (pin) {
|
||||||
|
- remove_no_ifname_pin(dm, pin_id);
|
||||||
|
+ remove_no_ifname_pin(dm, pin_id, pin);
|
||||||
|
pin->id = pin_id;
|
||||||
|
pr_debug_pin("pin assigned id", pin);
|
||||||
|
} else {
|
@ -0,0 +1,133 @@
|
|||||||
|
commit 6edb7f5a974c8a80f68c7b82b1bde1c1b37b75bb
|
||||||
|
Author: Miroslav Lichvar <mlichvar@redhat.com>
|
||||||
|
Date: Wed Jun 5 12:55:29 2024 +0200
|
||||||
|
|
||||||
|
Change default smc_socket_path to /run/synce4l_socket
|
||||||
|
|
||||||
|
System services should use /run for sockets and other runtime files.
|
||||||
|
|
||||||
|
Signed-off-by: Miroslav Lichvar <mlichvar@redhat.com>
|
||||||
|
|
||||||
|
diff --git a/README.md b/README.md
|
||||||
|
index 87623a9..c1c1d73 100644
|
||||||
|
--- a/README.md
|
||||||
|
+++ b/README.md
|
||||||
|
@@ -125,7 +125,7 @@ related to a running synce4l instance.
|
||||||
|
| `logging_level` | `6` | `0-7` | Minimum log level required to appear in a log. |
|
||||||
|
| `message_tag` | None | string | Tag reported in a log. |
|
||||||
|
| `poll_interval_msec` | 20 | 0-500 | Sleep time between subsequent SyncE clock polls |
|
||||||
|
-| `smc_socket_path` | `/tmp/synce4l_socket` | string | Full path to socket file for external application communication |
|
||||||
|
+| `smc_socket_path` | `/run/synce4l_socket` | string | Full path to socket file for external application communication |
|
||||||
|
| `use_syslog` | `1` | `0`, `1` | Set to 1 if `syslog` should be used. |
|
||||||
|
| `verbose` | `0` | `0`, `1` | Set to 1 to log extra information. |
|
||||||
|
|
||||||
|
@@ -200,7 +200,7 @@ logging_level 7
|
||||||
|
use_syslog 0
|
||||||
|
verbose 1
|
||||||
|
message_tag [synce4l]
|
||||||
|
-smc_socket_path /tmp/synce4l_socket
|
||||||
|
+smc_socket_path /run/synce4l_socket
|
||||||
|
|
||||||
|
[<synce1>]
|
||||||
|
network_option 1
|
||||||
|
@@ -239,7 +239,7 @@ logging_level 7
|
||||||
|
use_syslog 0
|
||||||
|
verbose 1
|
||||||
|
message_tag [synce4l]
|
||||||
|
-smc_socket_path /tmp/synce4l_socket
|
||||||
|
+smc_socket_path /run/synce4l_socket
|
||||||
|
|
||||||
|
[<synce1>]
|
||||||
|
network_option 1
|
||||||
|
diff --git a/config.c b/config.c
|
||||||
|
index bb438a6..274c2d3 100644
|
||||||
|
--- a/config.c
|
||||||
|
+++ b/config.c
|
||||||
|
@@ -180,7 +180,7 @@ struct config_item config_tab_synce[] = {
|
||||||
|
GLOB_ITEM_STR("message_tag", NULL),
|
||||||
|
GLOB_ITEM_INT("poll_interval_msec", 20, CLOCK_POLL_INTERVAL_MIN,
|
||||||
|
CLOCK_POLL_INTERVAL_MAX),
|
||||||
|
- GLOB_ITEM_STR("smc_socket_path", "/tmp/synce4l_socket"),
|
||||||
|
+ GLOB_ITEM_STR("smc_socket_path", "/run/synce4l_socket"),
|
||||||
|
GLOB_ITEM_INT("use_syslog", 1, 0, 1),
|
||||||
|
GLOB_ITEM_STR("userDescription", ""),
|
||||||
|
GLOB_ITEM_INT("verbose", 0, 0, 1),
|
||||||
|
diff --git a/configs/synce4l.cfg b/configs/synce4l.cfg
|
||||||
|
index ca12e9f..de92bd1 100644
|
||||||
|
--- a/configs/synce4l.cfg
|
||||||
|
+++ b/configs/synce4l.cfg
|
||||||
|
@@ -7,7 +7,7 @@ logging_level 7
|
||||||
|
use_syslog 0
|
||||||
|
verbose 1
|
||||||
|
message_tag [synce4l]
|
||||||
|
-smc_socket_path /tmp/synce4l_socket
|
||||||
|
+smc_socket_path /run/synce4l_socket
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
diff --git a/configs/synce4l_dpll.cfg b/configs/synce4l_dpll.cfg
|
||||||
|
index b814266..db4bd88 100644
|
||||||
|
--- a/configs/synce4l_dpll.cfg
|
||||||
|
+++ b/configs/synce4l_dpll.cfg
|
||||||
|
@@ -7,7 +7,7 @@ logging_level 6
|
||||||
|
use_syslog 0
|
||||||
|
verbose 1
|
||||||
|
message_tag [synce4l]
|
||||||
|
-smc_socket_path /tmp/synce4l_socket
|
||||||
|
+smc_socket_path /run/synce4l_socket
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
|
||||||
|
commit 2f50c7a8b98d99220108abb0163696dcfed77635
|
||||||
|
Author: Miroslav Lichvar <mlichvar@redhat.com>
|
||||||
|
Date: Wed Jun 5 13:05:18 2024 +0200
|
||||||
|
|
||||||
|
Check smc_socket_path length
|
||||||
|
|
||||||
|
Exit with an error message if the configured socket path is too long to
|
||||||
|
be bound as a Unix domain socket.
|
||||||
|
|
||||||
|
Signed-off-by: Miroslav Lichvar <mlichvar@redhat.com>
|
||||||
|
|
||||||
|
diff --git a/synce_manager.c b/synce_manager.c
|
||||||
|
index 598ef7e..a42b823 100644
|
||||||
|
--- a/synce_manager.c
|
||||||
|
+++ b/synce_manager.c
|
||||||
|
@@ -256,6 +256,10 @@ static void *synce_manager_server_thread(void *arg)
|
||||||
|
exit(EXIT_FAILURE);
|
||||||
|
}
|
||||||
|
|
||||||
|
+ if (strlen(synce_clock_get_socket_path(clk)) >= sizeof(server.sun_path)) {
|
||||||
|
+ pr_err("%s smc_socket_path is too long", __func__);
|
||||||
|
+ exit(EXIT_FAILURE);
|
||||||
|
+ }
|
||||||
|
server.sun_family = AF_UNIX;
|
||||||
|
snprintf(server.sun_path, sizeof(server.sun_path), "%s",
|
||||||
|
synce_clock_get_socket_path(clk));
|
||||||
|
|
||||||
|
commit b5a9ad4f0aa1fb98e4ac060c91a08d82fe66e7d2
|
||||||
|
Author: Miroslav Lichvar <mlichvar@redhat.com>
|
||||||
|
Date: Wed Jun 5 13:07:04 2024 +0200
|
||||||
|
|
||||||
|
Unlink smc_socket_path before binding
|
||||||
|
|
||||||
|
Remove the Unix domain socket if it already exists (e.g. previous
|
||||||
|
synce4l instance didn't exit cleanly) to avoid failing in the bind()
|
||||||
|
call.
|
||||||
|
|
||||||
|
Signed-off-by: Miroslav Lichvar <mlichvar@redhat.com>
|
||||||
|
|
||||||
|
diff --git a/synce_manager.c b/synce_manager.c
|
||||||
|
index a42b823..6baf18c 100644
|
||||||
|
--- a/synce_manager.c
|
||||||
|
+++ b/synce_manager.c
|
||||||
|
@@ -264,6 +264,8 @@ static void *synce_manager_server_thread(void *arg)
|
||||||
|
snprintf(server.sun_path, sizeof(server.sun_path), "%s",
|
||||||
|
synce_clock_get_socket_path(clk));
|
||||||
|
|
||||||
|
+ unlink(server.sun_path);
|
||||||
|
+
|
||||||
|
if (bind(server_fd, (struct sockaddr *)&server, sizeof(server)) < 0) {
|
||||||
|
pr_err("%s Bind failed", __func__);
|
||||||
|
exit(EXIT_FAILURE);
|
@ -0,0 +1,26 @@
|
|||||||
|
commit f134a38219fc390405f488d5eaaa64e7957b29f3
|
||||||
|
Author: Miroslav Lichvar <mlichvar@redhat.com>
|
||||||
|
Date: Tue Aug 13 12:19:24 2024 +0200
|
||||||
|
|
||||||
|
Fix requested thread stack size
|
||||||
|
|
||||||
|
The pthread_attr_setstacksize() call requesting size of 0xffff fails on
|
||||||
|
systems with 64k pages. Request the maximum of 0xffff and
|
||||||
|
PTHREAD_STACK_MIN instead.
|
||||||
|
|
||||||
|
Signed-off-by: Miroslav Lichvar <mlichvar@redhat.com>
|
||||||
|
|
||||||
|
diff --git a/synce_thread_common.h b/synce_thread_common.h
|
||||||
|
index cf607ac..8db11d7 100644
|
||||||
|
--- a/synce_thread_common.h
|
||||||
|
+++ b/synce_thread_common.h
|
||||||
|
@@ -13,7 +13,8 @@
|
||||||
|
#define MSEC_TO_USEC(X) (X * 1000)
|
||||||
|
#define THREAD_STOP_SLEEP_USEC MSEC_TO_USEC(50)
|
||||||
|
#define THREAD_START_SLEEP_USEC MSEC_TO_USEC(20)
|
||||||
|
-#define SYNCE_THREAD_STACK_SIZE 0xffff
|
||||||
|
+#define SYNCE_THREAD_STACK_SIZE (0xffff > PTHREAD_STACK_MIN ? \
|
||||||
|
+ 0xffff : PTHREAD_STACK_MIN)
|
||||||
|
#define TASK_COMM_LEN 16
|
||||||
|
|
||||||
|
#endif /* HAVE_SYNCE_THREAD_COMMON_H */
|
@ -1,27 +0,0 @@
|
|||||||
[global]
|
|
||||||
logging_level 6
|
|
||||||
use_syslog 1
|
|
||||||
verbose 0
|
|
||||||
message_tag [synce4l]
|
|
||||||
|
|
||||||
[<synce1>]
|
|
||||||
input_mode line
|
|
||||||
network_option 1
|
|
||||||
external_input_QL 11
|
|
||||||
external_input_ext_QL 33
|
|
||||||
extended_tlv 1
|
|
||||||
recover_time 20
|
|
||||||
eec_get_state_cmd cat /sys/class/net/eth0/device/cgu_state
|
|
||||||
eec_holdover_value 4
|
|
||||||
eec_locked_ho_value 3
|
|
||||||
eec_locked_value 2
|
|
||||||
eec_freerun_value 1
|
|
||||||
eec_invalid_value 0
|
|
||||||
|
|
||||||
[eth0]
|
|
||||||
tx_heartbeat_msec 1000
|
|
||||||
rx_heartbeat_msec 500
|
|
||||||
recover_clock_enable_cmd echo 1 0 > /sys/class/net/eth0/device/phy/synce
|
|
||||||
recover_clock_disable_cmd echo 0 0 > /sys/class/net/eth0/device/phy/synce
|
|
||||||
allowed_qls 3,4,7
|
|
||||||
allowed_ext_qls 20,21
|
|
Loading…
Reference in new issue