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] [day] [month] [year] [list]
Message-ID: <f54d34f8-05cd-4081-92a2-85df3f76a35b@csgroup.eu>
Date: Wed, 18 Dec 2024 09:48:36 +0100
From: Christophe Leroy <christophe.leroy@...roup.eu>
To: Petr Mladek <pmladek@...e.com>,
 Easwar Hariharan <eahariha@...ux.microsoft.com>
Cc: Andrew Morton <akpm@...ux-foundation.org>,
 Alexander Gordeev <agordeev@...ux.ibm.com>,
 Gerald Schaefer <gerald.schaefer@...ux.ibm.com>,
 Heiko Carstens <hca@...ux.ibm.com>, Vasily Gorbik <gor@...ux.ibm.com>,
 Christian Borntraeger <borntraeger@...ux.ibm.com>,
 Sven Schnelle <svens@...ux.ibm.com>, Josh Poimboeuf <jpoimboe@...nel.org>,
 Jiri Kosina <jikos@...nel.org>, Miroslav Benes <mbenes@...e.cz>,
 Joe Lawrence <joe.lawrence@...hat.com>, linux-s390@...r.kernel.org,
 linux-kernel@...r.kernel.org, live-patching@...r.kernel.org
Subject: Re: [PATCH v4 2/2] livepatch: Convert timeouts to secs_to_jiffies()



Le 18/12/2024 à 09:38, Petr Mladek a écrit :
> On Tue 2024-12-17 23:09:59, Easwar Hariharan wrote:
>> Commit b35108a51cf7 ("jiffies: Define secs_to_jiffies()") introduced
>> secs_to_jiffies(). As the value here is a multiple of 1000, use
>> secs_to_jiffies() instead of msecs_to_jiffies to avoid the multiplication.
>>
>> This is converted using scripts/coccinelle/misc/secs_to_jiffies.cocci with
>> the following Coccinelle rules:
>>
>> @@ constant C; @@
>>
>> - msecs_to_jiffies(C * 1000)
>> + secs_to_jiffies(C)
>>
>> @@ constant C; @@
>>
>> - msecs_to_jiffies(C * MSEC_PER_SEC)
>> + secs_to_jiffies(C)
>>
>> While here, replace the schedule_delayed_work() call with a 0 timeout
>> with an immediate schedule_work() call.
>>
>> --- a/samples/livepatch/livepatch-callbacks-busymod.c
>> +++ b/samples/livepatch/livepatch-callbacks-busymod.c
>> @@ -44,8 +44,7 @@ static void busymod_work_func(struct work_struct *work)
>>   static int livepatch_callbacks_mod_init(void)
>>   {
>>   	pr_info("%s\n", __func__);
>> -	schedule_delayed_work(&work,
>> -		msecs_to_jiffies(1000 * 0));
>> +	schedule_work(&work);
> 
> Is it safe to use schedule_work() for struct delayed_work?

Should be, but you are right it should then be a standard work not a 
delayed work.

So probably the easiest is to keep

	schedule_delayed_work(&work, 0)

And eventually changing it to a not delayed work could be a follow-up patch.

> 
> It might work in theory but I do not feel comfortable with it.
> Also I would expect a compiler warning.

__queue_delayed_work() does :

	if (!delay) {
		__queue_work(cpu, wq, &dwork->work);
		return;
	}


> 
> If you really want to use schedule_work() then please
> also define the structure with DECLARE_WORK()
> and use cancel_work_sync() in livepatch_callbacks_mod_exit().
> 
> Best Regards,
> Petr


Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ