<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/lib/Makefile, branch v3.2.38</title>
<subtitle>Linux kernel source tree</subtitle>
<id>https://git.amat.us/linux/atom/lib/Makefile?h=v3.2.38</id>
<link rel='self' href='https://git.amat.us/linux/atom/lib/Makefile?h=v3.2.38'/>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/'/>
<updated>2011-10-04T09:30:53Z</updated>
<entry>
<title>llist: Make some llist functions inline</title>
<updated>2011-10-04T09:30:53Z</updated>
<author>
<name>Huang Ying</name>
<email>ying.huang@intel.com</email>
</author>
<published>2011-09-08T06:00:42Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=1230db8e1543c0471dd165727d34647ab098cc1e'/>
<id>urn:sha1:1230db8e1543c0471dd165727d34647ab098cc1e</id>
<content type='text'>
Because llist code will be used in performance critical scheduler
code path, make llist_add() and llist_del_all() inline to avoid
function calling overhead and related 'glue' overhead.

Signed-off-by: Huang Ying &lt;ying.huang@intel.com&gt;
Acked-by: Mathieu Desnoyers &lt;mathieu.desnoyers@efficios.com&gt;
Signed-off-by: Peter Zijlstra &lt;a.p.zijlstra@chello.nl&gt;
Link: http://lkml.kernel.org/r/1315461646-1379-2-git-send-email-ying.huang@intel.com
Signed-off-by: Ingo Molnar &lt;mingo@elte.hu&gt;
</content>
</entry>
<entry>
<title>bitops: Move find_next_bit.o from lib-y to obj-y</title>
<updated>2011-08-30T17:12:05Z</updated>
<author>
<name>Geert Uytterhoeven</name>
<email>geert@linux-m68k.org</email>
</author>
<published>2011-08-30T13:17:03Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=bd823821e68e5de6d680cbbf1c8654c9c36674e1'/>
<id>urn:sha1:bd823821e68e5de6d680cbbf1c8654c9c36674e1</id>
<content type='text'>
If there are no builtin users of find_next_bit_le() and
find_next_zero_bit_le(), these functions are not present in the kernel
image, causing m68k allmodconfig to fail with:

  ERROR: "find_next_zero_bit_le" [fs/ufs/ufs.ko] undefined!
  ERROR: "find_next_bit_le" [fs/udf/udf.ko] undefined!
  ...

This started to happen after commit 171d809df189 ("m68k: merge mmu and
non-mmu bitops.h"), as m68k had its own inline versions before.

commit 63e424c84429 ("arch: remove CONFIG_GENERIC_FIND_{NEXT_BIT,
BIT_LE, LAST_BIT}") added find_last_bit.o to obj-y (so it's always
included), but find_next_bit.o to lib-y (so it gets removed by the
linker if there are no builtin users).

Signed-off-by: Geert Uytterhoeven &lt;geert@linux-m68k.org&gt;
Cc: Akinobu Mita &lt;akinobu.mita@gmail.com&gt;
Cc: Greg Ungerer &lt;gerg@uclinux.org&gt;
Cc: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>crypto: Move md5_transform to lib/md5.c</title>
<updated>2011-08-07T01:32:45Z</updated>
<author>
<name>David S. Miller</name>
<email>davem@davemloft.net</email>
</author>
<published>2011-08-04T02:45:10Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=bc0b96b54a21246e377122d54569eef71cec535f'/>
<id>urn:sha1:bc0b96b54a21246e377122d54569eef71cec535f</id>
<content type='text'>
We are going to use this for TCP/IP sequence number and fragment ID
generation.

Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>Merge branch 'apei' into apei-release</title>
<updated>2011-08-03T15:30:42Z</updated>
<author>
<name>Len Brown</name>
<email>len.brown@intel.com</email>
</author>
<published>2011-08-03T15:30:42Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=d0e323b47057f4492b8fa22345f38d80a469bf8d'/>
<id>urn:sha1:d0e323b47057f4492b8fa22345f38d80a469bf8d</id>
<content type='text'>
Some trivial conflicts due to other various merges
adding to the end of common lists sooner than this one.

	arch/ia64/Kconfig
	arch/powerpc/Kconfig
	arch/x86/Kconfig
	lib/Kconfig
	lib/Makefile

Signed-off-by: Len Brown &lt;len.brown@intel.com&gt;
</content>
</entry>
<entry>
<title>lib, Add lock-less NULL terminated single list</title>
<updated>2011-08-03T15:15:56Z</updated>
<author>
<name>Huang Ying</name>
<email>ying.huang@intel.com</email>
</author>
<published>2011-07-13T05:14:23Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=f49f23abf3dd786ddcac1c1e7db3c2013b07413f'/>
<id>urn:sha1:f49f23abf3dd786ddcac1c1e7db3c2013b07413f</id>
<content type='text'>
Cmpxchg is used to implement adding new entry to the list, deleting
all entries from the list, deleting first entry of the list and some
other operations.

Because this is a single list, so the tail can not be accessed in O(1).

If there are multiple producers and multiple consumers, llist_add can
be used in producers and llist_del_all can be used in consumers.  They
can work simultaneously without lock.  But llist_del_first can not be
used here.  Because llist_del_first depends on list-&gt;first-&gt;next does
not changed if list-&gt;first is not changed during its operation, but
llist_del_first, llist_add, llist_add (or llist_del_all, llist_add,
llist_add) sequence in another consumer may violate that.

If there are multiple producers and one consumer, llist_add can be
used in producers and llist_del_all or llist_del_first can be used in
the consumer.

This can be summarized as follow:

           |   add    | del_first |  del_all
 add       |    -     |     -     |     -
 del_first |          |     L     |     L
 del_all   |          |           |     -

Where "-" stands for no lock is needed, while "L" stands for lock is
needed.

The list entries deleted via llist_del_all can be traversed with
traversing function such as llist_for_each etc.  But the list entries
can not be traversed safely before deleted from the list.  The order
of deleted entries is from the newest to the oldest added one.  If you
want to traverse from the oldest to the newest, you must reverse the
order by yourself before traversing.

The basic atomic operation of this list is cmpxchg on long.  On
architectures that don't have NMI-safe cmpxchg implementation, the
list can NOT be used in NMI handler.  So code uses the list in NMI
handler should depend on CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG.

Signed-off-by: Huang Ying &lt;ying.huang@intel.com&gt;
Reviewed-by: Andi Kleen &lt;ak@linux.intel.com&gt;
Reviewed-by: Mathieu Desnoyers &lt;mathieu.desnoyers@efficios.com&gt;
Cc: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Len Brown &lt;len.brown@intel.com&gt;
</content>
</entry>
<entry>
<title>Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6 into for-davem</title>
<updated>2011-06-08T17:44:21Z</updated>
<author>
<name>John W. Linville</name>
<email>linville@tuxdriver.com</email>
</author>
<published>2011-06-08T17:44:21Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=c0c33addcba2ce753b4e2746db99feaae2f82a85'/>
<id>urn:sha1:c0c33addcba2ce753b4e2746db99feaae2f82a85</id>
<content type='text'>
</content>
</entry>
<entry>
<title>lib: cordic: add library module providing cordic angle calculation</title>
<updated>2011-06-03T19:01:07Z</updated>
<author>
<name>Arend van Spriel</name>
<email>arend@broadcom.com</email>
</author>
<published>2011-05-31T09:22:16Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=10f8113ecb76eea72f96c7cfb72d7fed7c282565'/>
<id>urn:sha1:10f8113ecb76eea72f96c7cfb72d7fed7c282565</id>
<content type='text'>
The brcm80211 driver in the staging tree has a cordic function to
determine cosine and sine for a given angle. Feedback received from
John Linville suggested that these kind of functions should be made
available to others as a library function in the kernel tree. The
b43 driver also has a cordic angle calculation implemented.

Cc: linux-kernel@vger.kernel.org
Cc: linux-wireless@vger.kernel.org
Cc: "John W. Linville" &lt;linville@tuxdriver.com&gt;
Cc: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;
Cc: Dan Carpenter &lt;error27@gmail.com&gt;
Cc: Randy Dunlap &lt;rdunlap@xenotime.net&gt;
Cc: Larry Finger &lt;Larry.Finger@lwfinger.net&gt;
Reviewed-by: Roland Vossen &lt;rvossen@broadcom.com&gt;
Reviewed-by: Henry Ptasinski &lt;henryp@broadcom.com&gt;
Reviewed-by: Franky (Zhenhui) Lin &lt;frankyl@broadcom.com&gt;
Signed-off-by: Arend van Spriel &lt;arend@broadcom.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</content>
</entry>
<entry>
<title>lib: crc8: add new library module providing crc8 algorithm</title>
<updated>2011-06-03T19:01:06Z</updated>
<author>
<name>Arend van Spriel</name>
<email>arend@broadcom.com</email>
</author>
<published>2011-05-31T09:22:15Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=7150962d637cf38617924f7f72ea00612283eb89'/>
<id>urn:sha1:7150962d637cf38617924f7f72ea00612283eb89</id>
<content type='text'>
The brcm80211 driver in staging tree uses a crc8 function. Based on
feedback from John Linville to move this to lib directory, the linux
source has been searched. Although there is currently only one other
kernel driver using this algorithm (ie. drivers/ssb) we are providing
this as a library function for others to use.

Cc: linux-kernel@vger.kernel.org
Cc: linux-wireless@vger.kernel.org
Cc: Dan Carpenter &lt;error27@gmail.com&gt;
Cc: George Spelvin &lt;linux@horizon.com&gt;
Cc: Randy Dunlap &lt;rdunlap@xenotime.net&gt;
Reviewed-by: Henry Ptasinski &lt;henryp@broadcom.com&gt;
Reviewed-by: Roland Vossen &lt;rvossen@broadcom.com&gt;
Reviewed-by: "Franky (Zhenhui) Lin" &lt;frankyl@broadcom.com&gt;
Signed-off-by: Arend van Spriel &lt;arend@broadcom.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</content>
</entry>
<entry>
<title>arch: remove CONFIG_GENERIC_FIND_{NEXT_BIT,BIT_LE,LAST_BIT}</title>
<updated>2011-05-27T00:12:38Z</updated>
<author>
<name>Akinobu Mita</name>
<email>akinobu.mita@gmail.com</email>
</author>
<published>2011-05-26T23:26:10Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=63e424c84429903c92a0f1e9654c31ccaf6694d0'/>
<id>urn:sha1:63e424c84429903c92a0f1e9654c31ccaf6694d0</id>
<content type='text'>
By the previous style change, CONFIG_GENERIC_FIND_NEXT_BIT,
CONFIG_GENERIC_FIND_BIT_LE, and CONFIG_GENERIC_FIND_LAST_BIT are not used
to test for existence of find bitops anymore.

Signed-off-by: Akinobu Mita &lt;akinobu.mita@gmail.com&gt;
Acked-by: Greg Ungerer &lt;gerg@uclinux.org&gt;
Cc: Arnd Bergmann &lt;arnd@arndb.de&gt;
Cc: Russell King &lt;linux@arm.linux.org.uk&gt;
Cc: Martin Schwidefsky &lt;schwidefsky@de.ibm.com&gt;
Cc: Heiko Carstens &lt;heiko.carstens@de.ibm.com&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>lib: Add generic binary search function to the kernel.</title>
<updated>2011-05-19T07:25:27Z</updated>
<author>
<name>Tim Abbott</name>
<email>tabbott@ksplice.com</email>
</author>
<published>2011-04-14T18:00:19Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=1a94dc35bc5c166d89913dc01a49d27a3c21a455'/>
<id>urn:sha1:1a94dc35bc5c166d89913dc01a49d27a3c21a455</id>
<content type='text'>
There a large number hand-coded binary searches in the kernel (run
"git grep search | grep binary" to find many of them).  Since in my
experience, hand-coding binary searches can be error-prone, it seems
worth cleaning this up by providing a generic binary search function.

This generic binary search implementation comes from Ksplice.  It has
the same basic API as the C library bsearch() function.  Ksplice uses
it in half a dozen places with 4 different comparison functions, and I
think our code is substantially cleaner because of this.

Signed-off-by: Tim Abbott &lt;tabbott@ksplice.com&gt;
Extra-bikeshedding-by: Alan Jenkins &lt;alan-jenkins@tuffmail.co.uk&gt;
Extra-bikeshedding-by: André Goddard Rosa &lt;andre.goddard@gmail.com&gt;
Extra-bikeshedding-by: Rusty Russell &lt;rusty@rustcorp.com.au&gt;
Signed-off-by: Rusty Russell &lt;rusty@rustcorp.com.au&gt;
Signed-off-by: Alessio Igor Bogani &lt;abogani@kernel.org&gt;
Signed-off-by: Rusty Russell &lt;rusty@rustcorp.com.au&gt;
</content>
</entry>
</feed>
