Messages in this thread | | | Date | Thu, 13 Mar 2014 10:10:41 +0100 | From | Pavel Machek <> | Subject | Re: [PATCHv8 2/4] power_supply: Introduce generic psy charging driver |
| |
On Wed 2014-03-12 15:32:59, Linus Walleij wrote: > On Mon, Mar 10, 2014 at 5:33 AM, Jenny Tc <jenny.tc@intel.com> wrote: > > On Fri, Mar 07, 2014 at 09:25:20PM +0100, Pavel Machek wrote: > > >> > + /* sort based on priority. 0 has the highest priority */ > >> > + for (i = 0; i < cnt; ++i) > >> > + for (j = 0; j < cnt; ++j) > >> > + if (psy_prioirty(psy_lst[j]) > psy_prioirty(psy_lst[i])) > >> > + swap(psy_lst[j], psy_lst[i]); > >> > + > >> > >> WTF? Bubble sort in kernel? > > > > Yes, it's bubble sort. Since the number of power supply objects in real systems > > (max 4) are limited, I feel the complexity would be as same as any other > > sorting algorithms. Any suggestions? > > You already have a kernel quicksort implementation in lib/sort.c. > > Please restructure the code to make use of this as it is already > compiled into every kernel.
Actually.. I believe the code needs more surgery than that. It should not need those string lookups -- just attach data directly to struct psy. And yes, if sort remains, it needs to use library function, but I strongly believe sorting should not be neccessary here.
Pavel -- (english) http://www.livejournal.com/~pavelmachek (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
| |