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]
Date:   Mon, 10 Jul 2017 08:52:31 -0700
From:   Florian Fainelli <f.fainelli@...il.com>
To:     Gabriel C <nix.or.die@...il.com>
Cc:     LKML <linux-kernel@...r.kernel.org>,
        Linus Torvalds <torvalds@...ux-foundation.org>,
        Tomohiro Kusumi <tkusumi@...era.com>,
        Andrew Morton <akpm@...ux-foundation.org>,
        Ian Kent <raven@...maw.net>, Ingo Molnar <mingo@...nel.org>
Subject: Re: [PATCH] autofs: Revert wait_queue_t => wait_queue_entry_t rename

On 07/10/2017 07:01 AM, Gabriel C wrote:
> Hi,
> 
> 2017-07-10 6:40 GMT+02:00 Florian Fainelli <f.fainelli@...il.com>:
>> This reverts commit ac6424b981bce1c4bc55675c6ce11bfe1bbfa64f "("sched/wait:
>> Rename wait_queue_t => wait_queue_entry_t") as far as the autofs user API
>> structures are concerned since that would break user space build against such
>> kernel headers.
>>
>> Fixes: ac6424b981bc ("sched/wait: Rename wait_queue_t => wait_queue_entry_t")
>> Signed-off-by: Florian Fainelli <f.fainelli@...il.com>
>> ---
>>  include/uapi/linux/auto_fs.h  | 4 ++--
>>  include/uapi/linux/auto_fs4.h | 4 ++--
>>  2 files changed, 4 insertions(+), 4 deletions(-)
> 
> You need revert a lot more .. that won't even compile.

Right, sorry for the sloppy submission.

> 
> Looks like someone used some script to convert these :)
> 
> Something like this :
> 
> From 35d689b39286f94ded7609b5bed9ff0232958f9d Mon Sep 17 00:00:00 2001
> From: Gabriel Craciunescu <crazy@...galware.org>
> Date: Mon, 10 Jul 2017 15:48:57 +0200
> Subject: [PATCH] autofs: Revert wait_queue_t => wait_queue_entry_t rename
> 
> This reverts aufs parts of commit ac6424b981bce1c4bc55675c6ce11bfe1bbfa64f
> "("sched/wait: Rename wait_queue_t => wait_queue_entry_t") as far as the
> autofs user API structures are concerned since that would break user space
> build against such kernel headers.
> 
> Fixes: ac6424b981bc ("sched/wait: Rename wait_queue_t => wait_queue_entry_t")
> Signed-off-by: Gabriel Craciunescu <nix.or.die@...il.com>

Reported-by: Florian Fainelli <f.fainelli@...il.com>
Acked-by: Florian Fainelli <f.fainelli@...il.com>

Thanks!

> ---
>  Documentation/filesystems/autofs4.txt | 12 ++++++------
>  fs/autofs4/autofs_i.h                 |  2 +-
>  fs/autofs4/waitq.c                    | 18 +++++++++---------
>  include/uapi/linux/auto_fs.h          |  4 ++--
>  include/uapi/linux/auto_fs4.h         |  4 ++--
>  5 files changed, 20 insertions(+), 20 deletions(-)
> 
> diff --git a/Documentation/filesystems/autofs4.txt
> b/Documentation/filesystems/autofs4.txt
> index 8444dc3d57e8..f10dd590f69f 100644
> --- a/Documentation/filesystems/autofs4.txt
> +++ b/Documentation/filesystems/autofs4.txt
> @@ -316,7 +316,7 @@ For version 5, the format of the message is:
>          struct autofs_v5_packet {
>                  int proto_version;                /* Protocol version */
>                  int type;                        /* Type of packet */
> -                autofs_wqt_t wait_queue_entry_token;
> +                autofs_wqt_t wait_queue_token;
>                  __u32 dev;
>                  __u64 ino;
>                  __u32 uid;
> @@ -341,12 +341,12 @@ The pipe will be set to "packet mode"
> (equivalent to passing
>  `O_DIRECT`) to _pipe2(2)_ so that a read from the pipe will return at
>  most one packet, and any unread portion of a packet will be discarded.
> 
> -The `wait_queue_entry_token` is a unique number which can identify a
> +The `wait_queue_token` is a unique number which can identify a
>  particular request to be acknowledged.  When a message is sent over
>  the pipe the affected dentry is marked as either "active" or
>  "expiring" and other accesses to it block until the message is
>  acknowledged using one of the ioctls below and the relevant
> -`wait_queue_entry_token`.
> +`wait_queue_token`.
> 
>  Communicating with autofs: root directory ioctls
>  ------------------------------------------------
> @@ -358,7 +358,7 @@ capability, or must be the automount daemon.
>  The available ioctl commands are:
> 
>  - **AUTOFS_IOC_READY**: a notification has been handled.  The argument
> -    to the ioctl command is the "wait_queue_entry_token" number
> +    to the ioctl command is the "wait_queue_token" number
>      corresponding to the notification being acknowledged.
>  - **AUTOFS_IOC_FAIL**: similar to above, but indicates failure with
>      the error code `ENOENT`.
> @@ -382,14 +382,14 @@ The available ioctl commands are:
>          struct autofs_packet_expire_multi {
>                  int proto_version;              /* Protocol version */
>                  int type;                       /* Type of packet */
> -                autofs_wqt_t wait_queue_entry_token;
> +                autofs_wqt_t wait_queue_token;
>                  int len;
>                  char name[NAME_MAX+1];
>          };
> 
>       is required.  This is filled in with the name of something
>       that can be unmounted or removed.  If nothing can be expired,
> -     `errno` is set to `EAGAIN`.  Even though a `wait_queue_entry_token`
> +     `errno` is set to `EAGAIN`.  Even though a `wait_queue_token`
>       is present in the structure, no "wait queue" is established
>       and no acknowledgment is needed.
>  - **AUTOFS_IOC_EXPIRE_MULTI**:  This is similar to
> diff --git a/fs/autofs4/autofs_i.h b/fs/autofs4/autofs_i.h
> index 974f5346458a..beef981aa54f 100644
> --- a/fs/autofs4/autofs_i.h
> +++ b/fs/autofs4/autofs_i.h
> @@ -83,7 +83,7 @@ struct autofs_info {
>  struct autofs_wait_queue {
>   wait_queue_head_t queue;
>   struct autofs_wait_queue *next;
> - autofs_wqt_t wait_queue_entry_token;
> + autofs_wqt_t wait_queue_token;
>   /* We use the following to see what we are waiting for */
>   struct qstr name;
>   u32 dev;
> diff --git a/fs/autofs4/waitq.c b/fs/autofs4/waitq.c
> index 7071895b0678..24a58bf9ca72 100644
> --- a/fs/autofs4/waitq.c
> +++ b/fs/autofs4/waitq.c
> @@ -104,7 +104,7 @@ static void autofs4_notify_daemon(struct
> autofs_sb_info *sbi,
>   size_t pktsz;
> 
>   pr_debug("wait id = 0x%08lx, name = %.*s, type=%d\n",
> - (unsigned long) wq->wait_queue_entry_token,
> + (unsigned long) wq->wait_queue_token,
>   wq->name.len, wq->name.name, type);
> 
>   memset(&pkt, 0, sizeof(pkt)); /* For security reasons */
> @@ -120,7 +120,7 @@ static void autofs4_notify_daemon(struct
> autofs_sb_info *sbi,
> 
>   pktsz = sizeof(*mp);
> 
> - mp->wait_queue_entry_token = wq->wait_queue_entry_token;
> + mp->wait_queue_token = wq->wait_queue_token;
>   mp->len = wq->name.len;
>   memcpy(mp->name, wq->name.name, wq->name.len);
>   mp->name[wq->name.len] = '\0';
> @@ -133,7 +133,7 @@ static void autofs4_notify_daemon(struct
> autofs_sb_info *sbi,
> 
>   pktsz = sizeof(*ep);
> 
> - ep->wait_queue_entry_token = wq->wait_queue_entry_token;
> + ep->wait_queue_token = wq->wait_queue_token;
>   ep->len = wq->name.len;
>   memcpy(ep->name, wq->name.name, wq->name.len);
>   ep->name[wq->name.len] = '\0';
> @@ -153,7 +153,7 @@ static void autofs4_notify_daemon(struct
> autofs_sb_info *sbi,
> 
>   pktsz = sizeof(*packet);
> 
> - packet->wait_queue_entry_token = wq->wait_queue_entry_token;
> + packet->wait_queue_token = wq->wait_queue_token;
>   packet->len = wq->name.len;
>   memcpy(packet->name, wq->name.name, wq->name.len);
>   packet->name[wq->name.len] = '\0';
> @@ -428,7 +428,7 @@ int autofs4_wait(struct autofs_sb_info *sbi,
>   return -ENOMEM;
>   }
> 
> - wq->wait_queue_entry_token = autofs4_next_wait_queue;
> + wq->wait_queue_token = autofs4_next_wait_queue;
>   if (++autofs4_next_wait_queue == 0)
>   autofs4_next_wait_queue = 1;
>   wq->next = sbi->queues;
> @@ -461,7 +461,7 @@ int autofs4_wait(struct autofs_sb_info *sbi,
>   }
> 
>   pr_debug("new wait id = 0x%08lx, name = %.*s, nfy=%d\n",
> - (unsigned long) wq->wait_queue_entry_token, wq->name.len,
> + (unsigned long) wq->wait_queue_token, wq->name.len,
>   wq->name.name, notify);
> 
>   /*
> @@ -471,7 +471,7 @@ int autofs4_wait(struct autofs_sb_info *sbi,
>   } else {
>   wq->wait_ctr++;
>   pr_debug("existing wait id = 0x%08lx, name = %.*s, nfy=%d\n",
> - (unsigned long) wq->wait_queue_entry_token, wq->name.len,
> + (unsigned long) wq->wait_queue_token, wq->name.len,
>   wq->name.name, notify);
>   mutex_unlock(&sbi->wq_mutex);
>   kfree(qstr.name);
> @@ -550,13 +550,13 @@ int autofs4_wait(struct autofs_sb_info *sbi,
>  }
> 
> 
> -int autofs4_wait_release(struct autofs_sb_info *sbi, autofs_wqt_t
> wait_queue_entry_token, int status)
> +int autofs4_wait_release(struct autofs_sb_info *sbi, autofs_wqt_t
> wait_queue_token, int status)
>  {
>   struct autofs_wait_queue *wq, **wql;
> 
>   mutex_lock(&sbi->wq_mutex);
>   for (wql = &sbi->queues; (wq = *wql) != NULL; wql = &wq->next) {
> - if (wq->wait_queue_entry_token == wait_queue_entry_token)
> + if (wq->wait_queue_token == wait_queue_token)
>   break;
>   }
> 
> diff --git a/include/uapi/linux/auto_fs.h b/include/uapi/linux/auto_fs.h
> index 1953f8d6063b..aa63451ef20a 100644
> --- a/include/uapi/linux/auto_fs.h
> +++ b/include/uapi/linux/auto_fs.h
> @@ -26,7 +26,7 @@
>  #define AUTOFS_MIN_PROTO_VERSION AUTOFS_PROTO_VERSION
> 
>  /*
> - * The wait_queue_entry_token (autofs_wqt_t) is part of a structure
> which is passed
> + * The wait_queue_token (autofs_wqt_t) is part of a structure which is passed
>   * back to the kernel via ioctl from userspace. On architectures where 32- and
>   * 64-bit userspace binaries can be executed it's important that the size of
>   * autofs_wqt_t stays constant between 32- and 64-bit Linux kernels so that we
> @@ -49,7 +49,7 @@ struct autofs_packet_hdr {
> 
>  struct autofs_packet_missing {
>   struct autofs_packet_hdr hdr;
> - autofs_wqt_t wait_queue_entry_token;
> + autofs_wqt_t wait_queue_token;
>   int len;
>   char name[NAME_MAX+1];
>  };
> diff --git a/include/uapi/linux/auto_fs4.h b/include/uapi/linux/auto_fs4.h
> index 65b72d0222e7..7c6da423d54e 100644
> --- a/include/uapi/linux/auto_fs4.h
> +++ b/include/uapi/linux/auto_fs4.h
> @@ -108,7 +108,7 @@ enum autofs_notify {
>  /* v4 multi expire (via pipe) */
>  struct autofs_packet_expire_multi {
>   struct autofs_packet_hdr hdr;
> - autofs_wqt_t wait_queue_entry_token;
> + autofs_wqt_t wait_queue_token;
>   int len;
>   char name[NAME_MAX+1];
>  };
> @@ -123,7 +123,7 @@ union autofs_packet_union {
>  /* autofs v5 common packet struct */
>  struct autofs_v5_packet {
>   struct autofs_packet_hdr hdr;
> - autofs_wqt_t wait_queue_entry_token;
> + autofs_wqt_t wait_queue_token;
>   __u32 dev;
>   __u64 ino;
>   __u32 uid;
> 


-- 
Florian

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ