All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jean Delvare <khali-PUYAD+kWke1g9hUCZPvPmw@public.gmane.org>
To: David Brownell <david-b-yBeKhBN/0LDR7s880joybQ@public.gmane.org>
Cc: i2c-GZX6beZjE8VD60Wz+7aTrA@public.gmane.org
Subject: Re: i2c-remove-redundant-i2c_client-list.patch
Date: Tue, 8 Jan 2008 20:57:42 +0100	[thread overview]
Message-ID: <20080108205742.7b7ceaf9@hyperion.delvare> (raw)
In-Reply-To: <200801081052.31413.david-b-yBeKhBN/0LDR7s880joybQ@public.gmane.org>

On Tue, 8 Jan 2008 10:52:31 -0800, David Brownell wrote:
> On Tuesday 08 January 2008, Jean Delvare wrote:
> > > Good point.  I didn't like this part much, and that function can
> > > have other uses.  I updated kobj_to_i2c_client() to use it too.
> >
> > I wouldn't change kobj_to_i2c_client(). Drivers using it already know
> > that their kobj is an i2c_client, so there's no need to check for that,
> > and the use cases I've seen are in runtime paths that should be fast, I
> > don't want to slow them down without a good reason.
> 
> Hmm, Mr. Grep says all the users of that are in drivers/i2c/chips ...
> basically mapping an eeprom binary attribute's kobj to the i2c_client
> of the base device.  I have to say that not only would I not call
> those "should be fast" paths (how often does anyone read eeproms??),

Sorry, I expressed myself incorrectly, I didn't mean to intend that
these were hot paths, just that this was run-time code and not
initialization code, which means that the speed matters a little more.
But the key argument here is that the current code is not broken so I
couldn't see the rationale for touching it.

> but I also have no problem using
> 
>         client = to_i2c_client(container_of(kobj, struct device, kobj));
> 
> instead of a fancy kobj_to_i2c_client() ... in fact, I would never
> have thought to look for any kobj_to_*() utilities.  Although Mr. Grep
> tellse me there are a few others floating around; back it out if you
> feel strongly about it.

I seem to remember that kobj_to_i2c_client() was originally declared
inside one of these drivers by the driver author and I suggested to
move it to i2c.h.

> > -       return device_for_each_child(&adapter->dev, &addr, i2cdev_check);
> > +       return i2c_for_each_client(adapter, &addr, i2cdev_check);
> >
> >		...
> > 
> > Admittedly it will slow down things a bit as each iteration of the loop
> > will have one additional level of indirection. This makes the calling
> > code somewhat simpler though. Whether it is worth the additional
> > runtime cost, I just don't know. What do you think?
> 
> My bias in such cases is towards interfaces that force less policy.
> So in this case that would be to expose i2_verify_client() instead
> of an i2c-specific iterator.  The fact that it's got lower callstack
> overhead is a bonus.  :)

OK, fine with me, I'll forget about it then.

-- 
Jean Delvare

  parent reply	other threads:[~2008-01-08 19:57 UTC|newest]

Thread overview: 39+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20071216052308.A0FB11668D7@adsl-69-226-248-13.dsl.pltn13.pacbell.net>
     [not found] ` <20071216052308.A0FB11668D7-ZcXrCSuhvln6VZ3dlLfH/g4gEjPzgfUyLrfjE7I9kuVHxeISYlDBzl6hYfS7NtTn@public.gmane.org>
2007-12-27 20:58   ` [patch 2.6.24-rc5-git] add i2c_new_dummy() utility Byron Bradley
     [not found]     ` <57e2b00712271258l6ea661ai2bfd6b9e099c71be-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2007-12-27 21:53       ` David Brownell
     [not found]         ` <200712271353.05857.david-b-yBeKhBN/0LDR7s880joybQ@public.gmane.org>
2007-12-27 22:09           ` Byron Bradley
     [not found]             ` <57e2b00712271409n6c98f76o45116cd92b01f396-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2007-12-27 23:06               ` David Brownell
     [not found]                 ` <200712271506.43069.david-b-yBeKhBN/0LDR7s880joybQ@public.gmane.org>
2007-12-27 23:37                   ` Byron Bradley
2007-12-27 23:59                   ` David Brownell
     [not found] ` <200712281230.17840.david-b@pacbell.net>
     [not found]   ` <57e2b00712281645y70f6ec74s57945dc53f113ec8@mail.gmail.com>
     [not found]     ` <57e2b00712281645y70f6ec74s57945dc53f113ec8-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2007-12-30  3:05       ` David Brownell
     [not found]         ` <200712291905.15160.david-b-yBeKhBN/0LDR7s880joybQ@public.gmane.org>
2008-01-04 22:16           ` Jean Delvare
     [not found]             ` <20080104231633.135f2875-ig7AzVSIIG7kN2dkZ6Wm7A@public.gmane.org>
2008-01-04 23:48               ` David Brownell
     [not found]                 ` <200801041548.54825.david-b-yBeKhBN/0LDR7s880joybQ@public.gmane.org>
2008-01-06  9:57                   ` Jean Delvare
2008-01-06 11:23           ` i2c-remove-redundant-i2c_client-list.patch Jean Delvare
     [not found]             ` <20080106122356.78556b8a-ig7AzVSIIG7kN2dkZ6Wm7A@public.gmane.org>
2008-01-06 19:30               ` i2c-remove-redundant-i2c_client-list.patch David Brownell
     [not found]                 ` <200801061130.31774.david-b-yBeKhBN/0LDR7s880joybQ@public.gmane.org>
2008-01-08 14:18                   ` i2c-remove-redundant-i2c_client-list.patch Jean Delvare
     [not found]                     ` <20080108151817.35e05c6c-ig7AzVSIIG7kN2dkZ6Wm7A@public.gmane.org>
2008-01-08 16:20                       ` i2c-remove-redundant-i2c_client-list.patch Jean Delvare
     [not found]                         ` <20080108172001.33de6afc-ig7AzVSIIG7kN2dkZ6Wm7A@public.gmane.org>
2008-01-08 19:12                           ` i2c-remove-redundant-i2c_client-list.patch David Brownell
     [not found]                             ` <200801081112.46972.david-b-yBeKhBN/0LDR7s880joybQ@public.gmane.org>
2008-01-08 20:50                               ` i2c-remove-redundant-i2c_client-list.patch Jean Delvare
     [not found]                                 ` <20080108215042.534e32fa-ig7AzVSIIG7kN2dkZ6Wm7A@public.gmane.org>
2008-01-08 21:44                                   ` i2c-remove-redundant-i2c_client-list.patch David Brownell
     [not found]                                     ` <200801081344.45544.david-b-yBeKhBN/0LDR7s880joybQ@public.gmane.org>
2008-01-08 22:04                                       ` i2c-remove-redundant-i2c_client-list.patch Greg KH
     [not found]                                         ` <20080108220445.GB3873-U8xfFu+wG4EAvxtiuMwx3w@public.gmane.org>
2008-01-08 22:27                                           ` i2c-remove-redundant-i2c_client-list.patch David Brownell
2008-01-09 13:29                                       ` i2c-remove-redundant-i2c_client-list.patch Jean Delvare
     [not found]                                         ` <20080109142906.23a55f5f-ig7AzVSIIG7kN2dkZ6Wm7A@public.gmane.org>
2008-01-09 16:19                                           ` i2c-remove-redundant-i2c_client-list.patch Jean Delvare
     [not found]                                             ` <20080109171934.4f894bdc-ig7AzVSIIG7kN2dkZ6Wm7A@public.gmane.org>
2008-01-09 21:21                                               ` i2c-remove-redundant-i2c_client-list.patch David Brownell
     [not found]                                                 ` <200801091321.29212.david-b-yBeKhBN/0LDR7s880joybQ@public.gmane.org>
2008-01-10 13:31                                                   ` i2c-remove-redundant-i2c_client-list.patch Jean Delvare
     [not found]                                                     ` <20080110143105.456ddaf0-ig7AzVSIIG7kN2dkZ6Wm7A@public.gmane.org>
2008-01-14 22:20                                                       ` i2c-remove-redundant-i2c_client-list.patch David Brownell
     [not found]                                                         ` <200801141420.49274.david-b-yBeKhBN/0LDR7s880joybQ@public.gmane.org>
2008-01-17 22:02                                                           ` i2c-remove-redundant-i2c_client-list.patch Jean Delvare
2008-01-18 10:14                                                           ` i2c-remove-redundant-i2c_client-list.patch Jean Delvare
     [not found]                                                             ` <20080118111401.7ffdccc5-ig7AzVSIIG7kN2dkZ6Wm7A@public.gmane.org>
2008-01-18 10:30                                                               ` i2c-remove-redundant-i2c_client-list.patch David Brownell
2008-01-14 22:42                                                       ` i2c-remove-redundant-i2c_client-list.patch David Brownell
2008-01-17 19:35                                                   ` i2c-remove-redundant-i2c_client-list.patch David Brownell
     [not found]                                                     ` <200801171135.45797.david-b-yBeKhBN/0LDR7s880joybQ@public.gmane.org>
2008-01-17 19:59                                                       ` i2c-remove-redundant-i2c_client-list.patch David Brownell
     [not found]                                                         ` <200801171159.00291.david-b-yBeKhBN/0LDR7s880joybQ@public.gmane.org>
2008-01-18  9:32                                                           ` i2c-remove-redundant-i2c_client-list.patch Jean Delvare
     [not found]                                                             ` <20080118103209.4b92ac76-ig7AzVSIIG7kN2dkZ6Wm7A@public.gmane.org>
2008-01-18 10:16                                                               ` i2c-remove-redundant-i2c_client-list.patch David Brownell
     [not found]                                                                 ` <200801180216.22363.david-b-yBeKhBN/0LDR7s880joybQ@public.gmane.org>
2008-01-18 12:10                                                                   ` i2c-remove-redundant-i2c_client-list.patch Jean Delvare
2008-01-08 18:52                       ` i2c-remove-redundant-i2c_client-list.patch David Brownell
     [not found]                         ` <200801081052.31413.david-b-yBeKhBN/0LDR7s880joybQ@public.gmane.org>
2008-01-08 19:57                           ` Jean Delvare [this message]
2008-01-09 16:09                       ` i2c-remove-redundant-i2c_client-list.patch Jean Delvare
2008-01-06 19:43               ` i2c-remove-redundant-i2c_client-list.patch David Brownell
     [not found]                 ` <200801061143.34020.david-b-yBeKhBN/0LDR7s880joybQ@public.gmane.org>
2008-01-08 14:21                   ` i2c-remove-redundant-i2c_client-list.patch Jean Delvare
2008-01-17 22:24           ` [patch 2.6.24-rc5-git] add i2c_new_dummy() utility David Brownell

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=20080108205742.7b7ceaf9@hyperion.delvare \
    --to=khali-puyad+kwke1g9huczpvpmw@public.gmane.org \
    --cc=david-b-yBeKhBN/0LDR7s880joybQ@public.gmane.org \
    --cc=i2c-GZX6beZjE8VD60Wz+7aTrA@public.gmane.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.