public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Russell King <rmk+lkml@arm.linux.org.uk>
To: Takashi Iwai <tiwai@suse.de>
Cc: Jeff Garzik <jgarzik@pobox.com>,
	linux-kernel@vger.kernel.org,
	viro@parcelfarce.linux.theplanet.co.uk, perex@suse.cz,
	torvalds@osdl.org
Subject: Re: [RFC] ASLA design, depth of code review and lack thereof
Date: Mon, 7 Jun 2004 15:18:06 +0100	[thread overview]
Message-ID: <20040607151806.C28526@flint.arm.linux.org.uk> (raw)
In-Reply-To: <s5h7juj4gio.wl@alsa2.suse.de>; from tiwai@suse.de on Mon, Jun 07, 2004 at 03:57:51PM +0200

On Mon, Jun 07, 2004 at 03:57:51PM +0200, Takashi Iwai wrote:
> They're nice but they don't provide "cast checking", no?
> The main purpose of the magic_* stuffs in ALSA is to check the cast of
> the void pointer back to the original data type, which the compiler
> can't check.
> 
> Maybe we can implement only this "magic" check separetly and get rid
> of allocation checks, but I'm not sure whether it's worthy to do
> that.

I must ask the question: why is ALSA such a special case that it
needs this level of "magic" checking, when the rest of the kernel
has happily used void pointers to carry driver specific data around
for the last 10 years without serious incident or any major debugging
problems?

As long as objects are cleanly defined, and it is obvious what these
private driver specific pointers are for, then this "magic" become
unnecessary.  Take a look at the driver model for instance.

For instance, dev_set_drvdata() and dev_get_drvdata() provide access
to a clearly defined void pointer for drivers to use.  It is clear
that a device driver uses it to place its private data structure
there, and it is the only code which should be accessing that.

I guess though that the problem area for ALSA is the way the snd_pcm_t
private_data member magically appears in the snd_pcm_substream_t
private_data member behind the drivers back, so it's unclear who
actually owns the data in the private_data members.

-- 
Russell King
 Linux kernel    2.6 ARM Linux   - http://www.arm.linux.org.uk/
 maintainer of:  2.6 PCMCIA      - http://pcmcia.arm.linux.org.uk/
                 2.6 Serial core

  parent reply	other threads:[~2004-06-07 14:19 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-06-04 23:08 [RFC] ASLA design, depth of code review and lack thereof viro
2004-06-04 23:14 ` viro
2004-06-04 23:29 ` Linus Torvalds
2004-06-05  0:04   ` viro
2004-06-07 13:14     ` Takashi Iwai
2004-06-07 22:40       ` viro
2004-06-08 12:49         ` Takashi Iwai
2004-06-07 13:10   ` Takashi Iwai
2004-06-04 23:37 ` Jeff Garzik
2004-06-07 13:24   ` Takashi Iwai
2004-06-07 13:47     ` Jeff Garzik
2004-06-07 13:57       ` Takashi Iwai
2004-06-07 14:05         ` Jeff Garzik
2004-06-07 14:12           ` Takashi Iwai
2004-06-07 14:18         ` Russell King [this message]
2004-06-08 13:27           ` 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=20040607151806.C28526@flint.arm.linux.org.uk \
    --to=rmk+lkml@arm.linux.org.uk \
    --cc=jgarzik@pobox.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=perex@suse.cz \
    --cc=tiwai@suse.de \
    --cc=torvalds@osdl.org \
    --cc=viro@parcelfarce.linux.theplanet.co.uk \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox