All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Arve Hjønnevåg" <arve@android.com>
To: Pavel Machek <pavel@ucw.cz>
Cc: ncunningham@crca.org.au, u.luckas@road.de, swetland@google.com,
	linux-pm@lists.linux-foundation.org
Subject: Re: [PATCH 2/9] PM: suspend_block: Add driver to access suspend blockers from user-space
Date: Wed, 6 May 2009 18:31:36 -0700	[thread overview]
Message-ID: <d6200be20905061831o43df8558pdbc0b5284f8a8f20@mail.gmail.com> (raw)
In-Reply-To: <20090505201624.GH1379@ucw.cz>

On Tue, May 5, 2009 at 1:16 PM, Pavel Machek <pavel@ucw.cz> wrote:
> On Tue 2009-05-05 21:18:42, Arve Hj??nnev??g wrote:
>> Add a misc device, "suspend_blocker", that allows user-space processes
>> to block auto suspend. The device has ioctls to create a suspend_blocker,
>> and to block and unblock suspend. To delete the suspend_blocker, close
>> the device.
>>
>
>> +static int create_user_suspend_blocker(struct file *file, void __user *name,
>> +                              size_t name_len)
>> +{
>> +     struct user_suspend_blocker *bl;
>> +     if (file->private_data)
>> +             return -EBUSY;
>> +     bl = kzalloc(sizeof(*bl) + name_len + 1, GFP_KERNEL);
> ...
>> +static long user_suspend_blocker_ioctl(struct file *file, unsigned int cmd,
>> +                             unsigned long _arg)
>> +{
>> +     void __user *arg = (void __user *)_arg;
>> +     struct user_suspend_blocker *bl;
>> +     long ret;
>> +
>> +     mutex_lock(&ioctl_lock);
>> +     if ((cmd & ~IOCSIZE_MASK) == SUSPEND_BLOCKER_IOCTL_INIT(0)) {
>> +             ret = create_user_suspend_blocker(file, arg, _IOC_SIZE(cmd));
>> +             goto done;
>> +     }
>
> Wait a moment, wtf is this? Not one ioctl but one ioctl per length of
> string?!

This is not uncommon. _IOC encodes the size of the argument, and if
this is not a fixed size, then the raw ioctl number change based on
the size passed in. Look at input.h is you want other examples of
this.

-- 
Arve Hjønnevåg

  reply	other threads:[~2009-05-07  1:31 UTC|newest]

Thread overview: 64+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-05-06  4:18 [RFC][PATCH 0/9] Suspend block api (version 3) Arve Hjønnevåg
2009-05-06  4:18 ` [PATCH 1/9] PM: Add suspend block api Arve Hjønnevåg
2009-05-06  4:18   ` [PATCH 2/9] PM: suspend_block: Add driver to access suspend blockers from user-space Arve Hjønnevåg
2009-05-05 20:12     ` Pavel Machek
2009-05-07  1:42       ` Arve Hjønnevåg
2009-05-07 10:32         ` Pavel Machek
2009-05-08  0:43           ` Arve Hjønnevåg
2009-05-08 14:22             ` Rafael J. Wysocki
2009-05-09  0:38               ` Arve Hjønnevåg
2009-05-05 20:16     ` Pavel Machek
2009-05-07  1:31       ` Arve Hjønnevåg [this message]
2009-05-07 10:43         ` Pavel Machek
2009-05-06  4:18     ` [PATCH 3/9] PM: suspend_block: Abort task freezing if a suspend_blocker is active Arve Hjønnevåg
2009-05-05 19:57       ` Pavel Machek
2009-05-07  1:51         ` Arve Hjønnevåg
2009-05-07 10:41           ` Pavel Machek
2009-05-07 23:49             ` Arve Hjønnevåg
2009-05-08  1:06               ` Nigel Cunningham
2009-05-08  1:22                 ` Arve Hjønnevåg
2009-05-08  1:35                   ` Nigel Cunningham
2009-05-08 14:40                     ` Rafael J. Wysocki
2009-05-08 22:27                       ` Nigel Cunningham
2009-05-08 23:01                         ` Rafael J. Wysocki
2009-05-09  0:12                           ` Nigel Cunningham
2009-05-12 10:05                           ` Pavel Machek
2009-05-12 16:55                             ` Rafael J. Wysocki
2009-05-12 19:33                               ` Pavel Machek
2009-05-12 10:04               ` Pavel Machek
2009-05-08  0:22         ` Rafael J. Wysocki
2009-05-06  4:18       ` [PATCH 4/9] Input: Block suspend while event queue is not empty Arve Hjønnevåg
2009-05-05 20:02         ` Pavel Machek
2009-05-07  1:57           ` Arve Hjønnevåg
2009-05-06  4:18         ` [PATCH 5/9] PM: suspend_block: Switch to list of active and inactive suspend blockers Arve Hjønnevåg
2009-05-06  4:18           ` [PATCH 6/9] PM: suspend_block: Add debugfs file Arve Hjønnevåg
2009-05-06  4:18             ` [PATCH 7/9] PM: suspend_block: Add suspend_blocker stats Arve Hjønnevåg
2009-05-06  4:18               ` [PATCH 8/9] PM: suspend_block: Add timeout support Arve Hjønnevåg
2009-05-06  4:18                 ` [PATCH 9/9] PM: suspend_block: Add timeout support to user-space suspend_blockers Arve Hjønnevåg
2009-05-06 17:17 ` [RFC][PATCH 0/9] Suspend block api (version 3) Kevin Hilman
2009-05-07 22:42   ` Arve Hjønnevåg
2009-05-08 16:01     ` mark gross
2009-05-08 23:36     ` Kevin Hilman
2009-05-15 19:58     ` Pavel Machek
  -- strict thread matches above, loose matches on Subject: below --
2010-04-27 18:33 [linux-pm] [PATCH 2/9] PM: suspend_block: Add driver to access suspend blockers from user-space Alan Stern
2010-04-27 22:03 ` Rafael J. Wysocki
2010-04-27 22:03 ` [linux-pm] " Rafael J. Wysocki
2010-04-27 23:22   ` Arve Hjønnevåg
2010-04-27  4:04 [linux-pm] " Arve Hjønnevåg
2010-04-27 18:33 ` Alan Stern
2010-04-25 22:34 [linux-pm] " Arve Hjønnevåg
2010-04-26 19:25 ` Alan Stern
2010-04-27  4:04   ` Arve Hjønnevåg
2010-04-26 19:25 ` Alan Stern
2010-04-24  5:55 [linux-pm] " Pavel Machek
2010-04-24 14:44 ` Alan Stern
2010-04-25 22:34   ` Arve Hjønnevåg
2010-04-24 14:44 ` Alan Stern
2010-04-23  1:08 [PATCH 0/9] Suspend block api (version 4) Arve Hjønnevåg
2010-04-23  1:08 ` [PATCH 1/9] PM: Add suspend block api Arve Hjønnevåg
2010-04-23  1:08   ` [PATCH 2/9] PM: suspend_block: Add driver to access suspend blockers from user-space Arve Hjønnevåg
2010-04-23  1:08     ` Arve Hjønnevåg
2010-04-23  2:25     ` Matt Helsley
2010-04-23  2:25     ` [linux-pm] " Matt Helsley
2010-04-23  3:54       ` Arve Hjønnevåg
2010-04-23  4:38       ` Greg KH
2010-04-23  8:43     ` Pavel Machek
2010-04-23 16:43       ` [linux-pm] " Alan Stern
2010-04-24  3:20         ` Arve Hjønnevåg
2010-04-24  5:55           ` Pavel Machek
2010-04-24  3:20         ` Arve Hjønnevåg
2010-04-23 16:43       ` Alan Stern
2010-04-24  1:53       ` tytso
2010-04-24  5:39         ` Pavel Machek
2010-04-24  5:39         ` Pavel Machek
2010-04-24  1:53       ` tytso
2010-04-23  8:43     ` Pavel Machek
2009-04-30  3:09 [RFC][PATCH 0/9] Suspend block api (version 2) Arve Hjønnevåg
2009-04-30  3:10 ` [PATCH 1/9] PM: Add suspend block api Arve Hjønnevåg
2009-04-30  3:10   ` [PATCH 2/9] PM: suspend_block: Add driver to access suspend blockers from user-space Arve Hjønnevåg

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=d6200be20905061831o43df8558pdbc0b5284f8a8f20@mail.gmail.com \
    --to=arve@android.com \
    --cc=linux-pm@lists.linux-foundation.org \
    --cc=ncunningham@crca.org.au \
    --cc=pavel@ucw.cz \
    --cc=swetland@google.com \
    --cc=u.luckas@road.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.