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
| ||
|
Message-ID: <bebb44579ed8379a0d69a2f2793a70471b08ea91.camel@iki.fi> Date: Sat, 05 Jul 2025 23:39:58 +0300 From: Pauli Virtanen <pav@....fi> To: yang.li@...ogic.com, Marcel Holtmann <marcel@...tmann.org>, Johan Hedberg <johan.hedberg@...il.com>, Luiz Augusto von Dentz <luiz.dentz@...il.com>, "David S. Miller" <davem@...emloft.net>, Eric Dumazet <edumazet@...gle.com>, Jakub Kicinski <kuba@...nel.org>, Paolo Abeni <pabeni@...hat.com>, Simon Horman <horms@...nel.org> Cc: linux-bluetooth@...r.kernel.org, netdev@...r.kernel.org, linux-kernel@...r.kernel.org Subject: Re: [PATCH v3] Bluetooth: ISO: Support SCM_TIMESTAMPING for ISO TS Hi, pe, 2025-07-04 kello 13:36 +0800, Yang Li via B4 Relay kirjoitti: > From: Yang Li <yang.li@...ogic.com> > > User-space applications (e.g., PipeWire) depend on > ISO-formatted timestamps for precise audio sync. > > Signed-off-by: Yang Li <yang.li@...ogic.com> > --- > Changes in v3: > - Change to use hwtimestamp > - Link to v2: https://lore.kernel.org/r/20250702-iso_ts-v2-1-723d199c8068@amlogic.com > > Changes in v2: > - Support SOCK_RCVTSTAMPNS via CMSG for ISO sockets > - Link to v1: https://lore.kernel.org/r/20250429-iso_ts-v1-1-e586f30de6cb@amlogic.com > --- > net/bluetooth/iso.c | 10 +++++++++- > 1 file changed, 9 insertions(+), 1 deletion(-) > > diff --git a/net/bluetooth/iso.c b/net/bluetooth/iso.c > index fc22782cbeeb..67ff355167d8 100644 > --- a/net/bluetooth/iso.c > +++ b/net/bluetooth/iso.c > @@ -2301,13 +2301,21 @@ void iso_recv(struct hci_conn *hcon, struct sk_buff *skb, u16 flags) > if (ts) { > struct hci_iso_ts_data_hdr *hdr; > > - /* TODO: add timestamp to the packet? */ > hdr = skb_pull_data(skb, HCI_ISO_TS_DATA_HDR_SIZE); > if (!hdr) { > BT_ERR("Frame is too short (len %d)", skb->len); > goto drop; > } > > + /* The ISO ts is based on the controller’s clock domain, > + * so hardware timestamping (hwtimestamp) must be used. > + * Ref: Documentation/networking/timestamping.rst, > + * chapter 3.1 Hardware Timestamping. > + */ > + struct skb_shared_hwtstamps *hwts = skb_hwtstamps(skb); > + if (hwts) In addition to the moving variable on top, the null check is spurious as skb_hwtstamps is never NULL (driver/net/* do not check it either). Did you test this with SOF_TIMESTAMPING_RX_HARDWARE in userspace? Pipewire does not try to get HW timestamps right now. Would be good to also add some tests in bluez/tools/iso-tester.c although this needs some extension to the emulator/* to support timestamps properly. > + hwts->hwtstamp = us_to_ktime(le32_to_cpu(hdr->ts)); > + > len = __le16_to_cpu(hdr->slen); > } else { > struct hci_iso_data_hdr *hdr; > > --- > base-commit: 3bc46213b81278f3a9df0324768e152de71eb9fe > change-id: 20250421-iso_ts-c82a300ae784 > > Best regards, -- Pauli Virtanen
Powered by blists - more mailing lists