All of lore.kernel.org
 help / color / mirror / Atom feed
From: Michael Forney <mforney@mforney.org>
To: Arnd Bergmann <arnd@arndb.de>
Cc: alsa-devel@alsa-project.org, Takashi Iwai <tiwai@suse.com>,
	Baolin Wang <baolin.wang@linaro.org>,
	y2038@lists.linaro.org, linux-kernel@vger.kernel.org,
	Mark Brown <broonie@kernel.org>,
	Baolin Wang <baolin.wang7@gmail.com>
Subject: Re: [alsa-devel] [PATCH v7 8/9] ALSA: add new 32-bit layout for snd_pcm_mmap_status/control
Date: Wed, 06 Oct 2021 10:49:17 -0700	[thread overview]
Message-ID: <29QBMJU8DE71E.2YZSH8IHT5HMH@mforney.org> (raw)
In-Reply-To: <20191211212025.1981822-9-arnd@arndb.de>

Arnd Bergmann <arnd@arndb.de> wrote:
> +#if defined(__BYTE_ORDER) ? __BYTE_ORDER == __BIG_ENDIAN : defined(__BIG_ENDIAN)
> +typedef char __pad_before_uframe[sizeof(__u64) - sizeof(snd_pcm_uframes_t)];
> +typedef char __pad_after_uframe[0];
> +#endif
> +
> +#if defined(__BYTE_ORDER) ? __BYTE_ORDER == __LITTLE_ENDIAN : defined(__LITTLE_ENDIAN)
> +typedef char __pad_before_uframe[0];
> +typedef char __pad_after_uframe[sizeof(__u64) - sizeof(snd_pcm_uframes_t)];
> +#endif
> +
> +struct __snd_pcm_mmap_status64 {
> +	__s32 state;			/* RO: state - SNDRV_PCM_STATE_XXXX */
> +	__u32 pad1;			/* Needed for 64 bit alignment */
> +	__pad_before_uframe __pad1;
> +	snd_pcm_uframes_t hw_ptr;	/* RO: hw ptr (0...boundary-1) */
> +	__pad_after_uframe __pad2;
> +	struct __snd_timespec64 tstamp;	/* Timestamp */
> +	__s32 suspended_state;		/* RO: suspended stream state */
> +	__u32 pad3;			/* Needed for 64 bit alignment */
> +	struct __snd_timespec64 audio_tstamp; /* sample counter or wall clock */
> +};
> +
> +struct __snd_pcm_mmap_control64 {
> +	__pad_before_uframe __pad1;
> +	snd_pcm_uframes_t appl_ptr;	 /* RW: appl ptr (0...boundary-1) */
> +	__pad_before_uframe __pad2;

I was looking through this header and happened to notice that this
padding is wrong. I believe it should be __pad_after_uframe here.

I'm not sure of the implications of this typo, but I suspect it
breaks something on 32-bit systems with 64-bit time (regardless of
the endianness, since it changes the offset of avail_min).

> +
> +	__pad_before_uframe __pad3;
> +	snd_pcm_uframes_t  avail_min;	 /* RW: min available frames for wakeup */
> +	__pad_after_uframe __pad4;
> +};

WARNING: multiple messages have this Message-ID (diff)
From: Michael Forney <mforney@mforney.org>
To: Arnd Bergmann <arnd@arndb.de>
Cc: alsa-devel@alsa-project.org, Baolin Wang <baolin.wang@linaro.org>,
	y2038@lists.linaro.org, linux-kernel@vger.kernel.org,
	Takashi Iwai <tiwai@suse.com>, Mark Brown <broonie@kernel.org>,
	Baolin Wang <baolin.wang7@gmail.com>
Subject: Re: [alsa-devel] [PATCH v7 8/9] ALSA: add new 32-bit layout for snd_pcm_mmap_status/control
Date: Wed, 06 Oct 2021 10:49:17 -0700	[thread overview]
Message-ID: <29QBMJU8DE71E.2YZSH8IHT5HMH@mforney.org> (raw)
In-Reply-To: <20191211212025.1981822-9-arnd@arndb.de>

Arnd Bergmann <arnd@arndb.de> wrote:
> +#if defined(__BYTE_ORDER) ? __BYTE_ORDER == __BIG_ENDIAN : defined(__BIG_ENDIAN)
> +typedef char __pad_before_uframe[sizeof(__u64) - sizeof(snd_pcm_uframes_t)];
> +typedef char __pad_after_uframe[0];
> +#endif
> +
> +#if defined(__BYTE_ORDER) ? __BYTE_ORDER == __LITTLE_ENDIAN : defined(__LITTLE_ENDIAN)
> +typedef char __pad_before_uframe[0];
> +typedef char __pad_after_uframe[sizeof(__u64) - sizeof(snd_pcm_uframes_t)];
> +#endif
> +
> +struct __snd_pcm_mmap_status64 {
> +	__s32 state;			/* RO: state - SNDRV_PCM_STATE_XXXX */
> +	__u32 pad1;			/* Needed for 64 bit alignment */
> +	__pad_before_uframe __pad1;
> +	snd_pcm_uframes_t hw_ptr;	/* RO: hw ptr (0...boundary-1) */
> +	__pad_after_uframe __pad2;
> +	struct __snd_timespec64 tstamp;	/* Timestamp */
> +	__s32 suspended_state;		/* RO: suspended stream state */
> +	__u32 pad3;			/* Needed for 64 bit alignment */
> +	struct __snd_timespec64 audio_tstamp; /* sample counter or wall clock */
> +};
> +
> +struct __snd_pcm_mmap_control64 {
> +	__pad_before_uframe __pad1;
> +	snd_pcm_uframes_t appl_ptr;	 /* RW: appl ptr (0...boundary-1) */
> +	__pad_before_uframe __pad2;

I was looking through this header and happened to notice that this
padding is wrong. I believe it should be __pad_after_uframe here.

I'm not sure of the implications of this typo, but I suspect it
breaks something on 32-bit systems with 64-bit time (regardless of
the endianness, since it changes the offset of avail_min).

> +
> +	__pad_before_uframe __pad3;
> +	snd_pcm_uframes_t  avail_min;	 /* RW: min available frames for wakeup */
> +	__pad_after_uframe __pad4;
> +};

  reply	other threads:[~2021-10-06 17:49 UTC|newest]

Thread overview: 94+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-12-11 21:20 [PATCH v7 0/8] Fix year 2038 issue for sound subsystem Arnd Bergmann
2019-12-11 21:20 ` [alsa-devel] " Arnd Bergmann
2019-12-11 21:20 ` [PATCH v7 1/9] ALSA: Replace timespec with timespec64 Arnd Bergmann
2019-12-11 21:20   ` [alsa-devel] " Arnd Bergmann
2019-12-11 21:20 ` [PATCH v7 2/9] ALSA: Avoid using timespec for struct snd_timer_status Arnd Bergmann
2019-12-11 21:20   ` [alsa-devel] " Arnd Bergmann
2019-12-11 21:20 ` [PATCH v7 3/9] ALSA: Avoid using timespec for struct snd_ctl_elem_value Arnd Bergmann
2019-12-11 21:20   ` [alsa-devel] " Arnd Bergmann
2019-12-11 21:20 ` [PATCH v7 4/9] ALSA: Avoid using timespec for struct snd_pcm_status Arnd Bergmann
2019-12-11 21:20   ` [alsa-devel] " Arnd Bergmann
2019-12-11 21:20 ` [PATCH v7 5/9] ALSA: Avoid using timespec for struct snd_rawmidi_status Arnd Bergmann
2019-12-11 21:20   ` [alsa-devel] " Arnd Bergmann
2019-12-11 21:20 ` [PATCH v7 6/9] ALSA: Avoid using timespec for struct snd_timer_tread Arnd Bergmann
2019-12-11 21:20   ` [alsa-devel] " Arnd Bergmann
2019-12-12  0:14   ` [Y2038] " Ben Hutchings
2019-12-12  0:14     ` [alsa-devel] " Ben Hutchings
2019-12-12  9:57     ` Arnd Bergmann
2019-12-12  9:57       ` [alsa-devel] " Arnd Bergmann
2019-12-12 14:27       ` Ben Hutchings
2019-12-12 14:27         ` [alsa-devel] " Ben Hutchings
2019-12-13 10:25         ` Arnd Bergmann
2019-12-13 10:25           ` [alsa-devel] " Arnd Bergmann
2019-12-11 21:20 ` [PATCH v7 7/9] ALSA: move snd_pcm_ioctl_sync_ptr_compat into pcm_native.c Arnd Bergmann
2019-12-11 21:20   ` [alsa-devel] " Arnd Bergmann
2019-12-11 21:20 ` [PATCH v7 8/9] ALSA: add new 32-bit layout for snd_pcm_mmap_status/control Arnd Bergmann
2019-12-11 21:20   ` [alsa-devel] " Arnd Bergmann
2021-10-06 17:49   ` Michael Forney [this message]
2021-10-06 17:49     ` Michael Forney
2021-10-07 10:52     ` Takashi Iwai
2021-10-07 10:52       ` Takashi Iwai
2021-10-07 11:48       ` Arnd Bergmann
2021-10-07 11:48         ` Arnd Bergmann
2021-10-07 12:43         ` Takashi Iwai
2021-10-07 12:43           ` Takashi Iwai
2021-10-07 13:02           ` Takashi Iwai
2021-10-07 13:02             ` Takashi Iwai
2021-10-07 13:11           ` Arnd Bergmann
2021-10-07 13:11             ` Arnd Bergmann
2021-10-07 15:33             ` Takashi Iwai
2021-10-07 15:33               ` Takashi Iwai
2021-10-07 16:06               ` [musl] " Rich Felker
2021-10-07 16:06                 ` Rich Felker
2021-10-07 16:18                 ` Takashi Iwai
2021-10-07 16:18                   ` Takashi Iwai
2021-10-07 16:51                   ` Rich Felker
2021-10-07 16:51                     ` Rich Felker
2021-10-08  8:43                     ` Takashi Iwai
2021-10-08  8:43                       ` Takashi Iwai
2021-10-08  8:44                       ` Takashi Iwai
2021-10-08  8:44                         ` Takashi Iwai
2021-10-08  9:24                       ` Arnd Bergmann
2021-10-08  9:24                         ` Arnd Bergmann
2021-10-08 11:11                         ` Takashi Iwai
2021-10-08 11:11                           ` Takashi Iwai
2021-10-08 11:45                           ` Arnd Bergmann
2021-10-08 11:45                             ` Arnd Bergmann
2021-10-08 11:53                             ` Takashi Iwai
2021-10-08 11:53                               ` Takashi Iwai
2021-10-08 12:13                               ` Arnd Bergmann
2021-10-08 12:13                                 ` Arnd Bergmann
2021-10-08 12:07                           ` Rich Felker
2021-10-08 12:07                             ` Rich Felker
2021-10-10  7:53                             ` Takashi Iwai
2021-10-10  7:53                               ` Takashi Iwai
2021-10-18 14:43                               ` Rich Felker
2021-10-18 14:43                                 ` Rich Felker
2021-10-18 14:58                                 ` Takashi Iwai
2021-10-18 14:58                                   ` Takashi Iwai
2021-10-18 15:08                                   ` Rich Felker
2021-10-18 15:08                                     ` Rich Felker
2021-10-18 15:26                                     ` Arnd Bergmann
2021-10-18 15:26                                       ` Arnd Bergmann
2021-10-18 20:42                                       ` Rich Felker
2021-10-18 20:42                                         ` Rich Felker
2021-10-19 14:16                                         ` Rich Felker
2021-10-19 14:16                                           ` Rich Felker
2021-10-19 14:23                                           ` Arnd Bergmann
2021-10-19 14:23                                             ` Arnd Bergmann
2021-10-08 12:06                         ` Rich Felker
2021-10-08 12:06                           ` Rich Felker
2021-10-08 12:37                           ` Arnd Bergmann
2021-10-08 12:37                             ` Arnd Bergmann
2021-10-08 17:20                             ` Rich Felker
2021-10-08 17:20                               ` Rich Felker
2019-12-11 21:20 ` [PATCH v7 9/9] ALSA: bump uapi version numbers Arnd Bergmann
2019-12-11 21:20   ` [alsa-devel] " Arnd Bergmann
2019-12-17 10:42 ` [PATCH v7 0/8] Fix year 2038 issue for sound subsystem Takashi Iwai
2019-12-17 10:42   ` [alsa-devel] " Takashi Iwai
2019-12-17 21:15   ` Arnd Bergmann
2019-12-17 21:15     ` [alsa-devel] " Arnd Bergmann
2019-12-17 21:16     ` [GIT PULL, v8] " Arnd Bergmann
2019-12-17 21:16       ` [alsa-devel] " Arnd Bergmann
2019-12-17 22:22     ` [PATCH v7 0/8] " Takashi Iwai
2019-12-17 22:22       ` [alsa-devel] " Takashi Iwai

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=29QBMJU8DE71E.2YZSH8IHT5HMH@mforney.org \
    --to=mforney@mforney.org \
    --cc=alsa-devel@alsa-project.org \
    --cc=arnd@arndb.de \
    --cc=baolin.wang7@gmail.com \
    --cc=baolin.wang@linaro.org \
    --cc=broonie@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=tiwai@suse.com \
    --cc=y2038@lists.linaro.org \
    /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.