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: <3E02ACE7-C86F-4FE0-A930-464F8E7D27E9@gmail.com>
Date: Wed, 07 Jan 2026 12:24:50 +0200
From: Sergey Ryazanov <ryazanov.s.a@...il.com>
To: Slark Xiao <slark_xiao@....com>
CC: loic.poulain@....qualcomm.com, johannes@...solutions.net,
 andrew+netdev@...n.ch, davem@...emloft.net, edumazet@...gle.com,
 kuba@...nel.org, pabeni@...hat.com, mani@...nel.org, netdev@...r.kernel.org,
 linux-kernel@...r.kernel.org, Daniele Palmas <dnlplm@...il.com>
Subject: Re:Re: [net-next v4 7/8] net: wwan: prevent premature device unregister when NMEA port is present

On January 7, 2026 9:29:24 AM, Slark Xiao <slark_xiao@....com> wrote:
>At 2026-01-07 09:06:05, "Sergey Ryazanov" <ryazanov.s.a@...il.com> wrote:
>>Hi Slark, Loic,
>>
>>sorry for late joining the discussion, please find a design question below.
>>
>>On 1/5/26 12:20, Slark Xiao wrote:
>>> From: Loic Poulain <loic.poulain@....qualcomm.com>
>>> 
>>> The WWAN core unregisters the device when it has no remaining WWAN ops
>>> or child devices. For NMEA port types, the child is registered under
>>> the GNSS class instead of WWAN, so the core incorrectly assumes there
>>> are no children and unregisters the WWAN device too early. This leads
>>> to a second unregister attempt after the NMEA device is removed.
>>> 
>>> To fix this issue, we register a virtual WWAN port device along the
>>> GNSS device, this ensures the WWAN device remains registered until
>>> all associated ports, including NMEA, are properly removed.
>>
>>wwan core assumes whole responsibility for managing a WWAN device. We 
>>already use wwan_create_dev()/wwan_remove_dev() everywhere. But, we are 
>>checking the reminding references in an implicit way using 
>>device_for_each_child() and registered OPS existence. Thus, we need this 
>>trick with a virtual child port.
>>
>>Does it make sense to switch to an explicit reference counting? We can 
>>introduce such counter to the wwan_device structure, and 
>>increment/decrement it on every wwan_create_dev()/wwan_remove_dev() 
>>call. So, we will do device_unregister() upon reference number becoming 
>>zero.
>>
>>If it sounds promising, I can send a RFC, let's say, tomorrow.
>
>The RFC only for this patch or the existing design? Since there is problem
>reported in https://patchwork.kernel.org/project/netdevbpf/patch/20260105102018.62731-3-slark_xiao@163.com/#26720828.
>
>Currently design:
>    minor = ida_alloc_range(&minors, 0, WWAN_MAX_MINORS - 1, GFP_KERNEL);
>    if (minor < 0)
>        return minor;
>
>    port->dev.class = &wwan_class;
>// when cdev is false, no devt was assigned. But wwan_port_destroy() use devt to free
>    if (cdev)
>        port->dev.devt = MKDEV(wwan_major, minor);
>
>We need to have a update based on this patch if we want to use this one in this serial.

The proposed idea for the WWAN device release will entirely substitute this patch. So, all these issues with the virtual stub port creation should gone as well.

--
Sergey

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ