Linux 2.6.32.45
Subsystems (11)
I'm announcing the release of the 2.6.32.45 kernel.
All users of the 2.6.32 series must upgrade.
The updated 2.6.32.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/longterm/linux-2.6.32.y.git
and can be browsed at the normal kernel.org git web browser:
http://git.kernel.org/?p=linux/kernel/git/longterm/linux-2.6.32.y.git;a=summarythanks,
greg k-h
------------
Makefile | 2 arch/powerpc/kernel/prom_init.c | 6 arch/powerpc/platforms/pseries/lpar.c | 2 crypto/md5.c | 92 -------- drivers/char/random.c | 334 ------------------------------- include/linux/cryptohash.h | 5 include/linux/random.h | 11 - include/net/secure_seq.h | 20 + lib/Makefile | 2 lib/md5.c | 95 ++++++++ net/core/Makefile | 2 net/core/secure_seq.c | 184 +++++++++++++++++ net/dccp/ipv4.c | 1 net/dccp/ipv6.c | 9 net/ipv4/inet_hashtables.c | 1 net/ipv4/inetpeer.c | 1 net/ipv4/netfilter/nf_nat_proto_common.c | 1 net/ipv4/route.c | 1 net/ipv4/tcp_ipv4.c | 1 net/ipv6/inet6_hashtables.c | 1 net/ipv6/tcp_ipv6.c | 1 sound/core/timer.c | 2 sound/usb/caiaq/input.c | 2 23 files changed, 333 insertions(+), 443 deletions(-)
Anton Blanchard (2):
powerpc: Fix device tree claim code
powerpc: pseries: Fix kexec on machines with more than 4TB of RAM
Daniel Mack (1):
ALSA: snd-usb-caiaq: Fix keymap for RigKontrol3
David S. Miller (2):
crypto: Move md5_transform to lib/md5.c
net: Compute protocol sequence numbers and fragment IDs using MD5.
Greg Kroah-Hartman (1):
Linux 2.6.32.45
Takashi Iwai (1):
ALSA: timer - Fix Oops at closing slave timer
Makefile +1 -1
@@ -1,7 +1,7 @@ VERSION = 2 PATCHLEVEL = 6 SUBLEVEL = 32 -EXTRAVERSION = .44 +EXTRAVERSION = .45 NAME = Man-Eating Seals of Antiquity # *DOCUMENTATION*
arch/powerpc/kernel/prom_init.c +3 -3
@@ -890,7 +890,7 @@ static unsigned long __init alloc_up(unsigned long size, unsigned long align) }if (addr ==0 )return 0 ; -RELOC (alloc_bottom) = addr; +RELOC (alloc_bottom) = addr + size;prom_debug (" -> %x\n" , addr);prom_debug (" alloc_bottom : %x\n" ,RELOC (alloc_bottom));
@@ -1704,7 +1704,7 @@ static void __init *make_room(unsigned long *mem_start, unsigned long *mem_end, chunk =alloc_up (room,0 );if (chunk ==0 )prom_panic ("No memory for flatten_device_tree (claim failed)" ); - *mem_end =RELOC (alloc_top); + *mem_end = chunk + room; } ret = (void *)*mem_start;
@@ -1923,7 +1923,7 @@ static void __init flatten_device_tree(void) mem_start = (unsigned long )alloc_up (room,PAGE_SIZE );if (mem_start ==0 )prom_panic ("Can't allocate initial device-tree chunk\n" ); - mem_end =RELOC (alloc_top); + mem_end = mem_start + room;/* Get root of tree */ root =call_prom ("peer" ,1 ,1 , (phandle )0 );
arch/powerpc/platforms/pseries/lpar.c +1 -1
@@ -371,7 +371,7 @@ static void pSeries_lpar_hptab_clear(void)unsigned long ptel; } ptes[4 ];long lpar_rc; -int i, j; +unsigned long i, j;/* Read in batches of 4, * invalidate only valid entries not in the VRMA
crypto/md5.c +1 -91
110 lines not on this page · raw message
drivers/char/random.c +8 -326
355 lines not on this page · raw message
include/linux/cryptohash.h +5 -0
@@ -7,6 +7,11 @@void sha_init (__u32 *buf);void sha_transform (__u32 *digest,const char *data,__u32 *W ); +#define MD5_DIGEST_WORDS 4 +#define MD5_MESSAGE_BYTES 64 + +void md5_transform (__u32 *hash,__u32 const *in); +__u32 half_md4_transform (__u32 buf[4 ],__u32 const in[8 ]);#endif
include/linux/random.h +0 -11
@@ -53,17 +53,6 @@ extern void add_interrupt_randomness(int irq);extern void get_random_bytes (void *buf,int nbytes);void generate_random_uuid (unsigned char uuid_out[16 ]); -extern __u32 secure_ip_id (__be32 daddr); -extern u32 secure_ipv4_port_ephemeral (__be32 saddr,__be32 daddr,__be16 dport); -extern u32 secure_ipv6_port_ephemeral (const __be32 *saddr,const __be32 *daddr, -__be16 dport); -extern __u32 secure_tcp_sequence_number (__be32 saddr,__be32 daddr, -__be16 sport,__be16 dport); -extern __u32 secure_tcpv6_sequence_number (__be32 *saddr,__be32 *daddr, -__be16 sport,__be16 dport); -extern u64 secure_dccp_sequence_number (__be32 saddr,__be32 daddr, -__be16 sport,__be16 dport); -#ifndef MODULE extern const struct file_operations random_fops, urandom_fops;#endif
include/net/secure_seq.h new file +20 -0
@@ -0,0 +1,20 @@ +#ifndef _NET_SECURE_SEQ +#define _NET_SECURE_SEQ + +#include <linux/types.h> + +extern __u32 secure_ip_id (__be32 daddr); +extern __u32 secure_ipv6_id (const __be32 daddr[4 ]); +extern u32 secure_ipv4_port_ephemeral (__be32 saddr,__be32 daddr,__be16 dport); +extern u32 secure_ipv6_port_ephemeral (const __be32 *saddr,const __be32 *daddr, +__be16 dport); +extern __u32 secure_tcp_sequence_number (__be32 saddr,__be32 daddr, +__be16 sport,__be16 dport); +extern __u32 secure_tcpv6_sequence_number (__be32 *saddr,__be32 *daddr, +__be16 sport,__be16 dport); +extern u64 secure_dccp_sequence_number (__be32 saddr,__be32 daddr, +__be16 sport,__be16 dport); +extern u64 secure_dccpv6_sequence_number (__be32 *saddr,__be32 *daddr, +__be16 sport,__be16 dport); + +#endif /* _NET_SECURE_SEQ */
lib/Makefile +1 -1
@@ -10,7 +10,7 @@ endif lib-y := ctype.o string.o vsprintf.o cmdline.o \ rbtree.o radix-tree.o dump_stack.o \ idr.o int_sqrt.o extable.o prio_tree.o \ - sha1.o irq_regs.o reciprocal_div.o argv_split.o \ + sha1.o md5.o irq_regs.o reciprocal_div.o argv_split.o \ proportions.o prio_heap.o ratelimit.o show_mem.o \ is_single_threaded.o plist.o decompress.o flex_array.o
lib/md5.c new file +95 -0
95 lines not on this page · raw message
net/core/Makefile +1 -1
@@ -3,7 +3,7 @@ # obj-y := sock.o request_sock.o skbuff.o iovec.o datagram.o stream.o scm.o \ - gen_stats.o gen_estimator.o net_namespace.o + gen_stats.o gen_estimator.o net_namespace.o secure_seq.o obj-$(CONFIG_SYSCTL) += sysctl_net_core.o obj-$(CONFIG_HAS_DMA) += skb_dma_map.o
net/core/secure_seq.c new file +184 -0
184 lines not on this page · raw message
net/dccp/ipv4.c +1 -0
@@ -25,6 +25,7 @@#include <net/timewait_sock.h> #include <net/tcp_states.h> #include <net/xfrm.h> +#include <net/secure_seq.h> #include "ackvec.h" #include "ccid.h"
net/dccp/ipv6.c +2 -7
@@ -28,6 +28,7 @@#include <net/transp_v6.h> #include <net/ip6_checksum.h> #include <net/xfrm.h> +#include <net/secure_seq.h> #include "dccp.h" #include "ipv6.h"
@@ -69,13 +70,7 @@ static inline void dccp_v6_send_check(struct sock *sk, int unused_value, dh->dccph_checksum =dccp_v6_csum_finish (skb, &np->saddr, &np->daddr); } -static inline __u32 secure_dccpv6_sequence_number (__be32 *saddr,__be32 *daddr, -__be16 sport,__be16 dport ) -{ -return secure_tcpv6_sequence_number (saddr, daddr, sport, dport); -} - -static inline __u32 dccp_v6_init_sequence (struct sk_buff *skb) +static inline __u64 dccp_v6_init_sequence (struct sk_buff *skb) { return secure_dccpv6_sequence_number(ipv6_hdr(skb)->daddr.s6_addr32, ipv6_hdr(skb)->saddr.s6_addr32,
net/ipv4/inet_hashtables.c +1 -0
@@ -21,6 +21,7 @@#include <net/inet_connection_sock.h> #include <net/inet_hashtables.h> +#include <net/secure_seq.h> #include <net/ip.h> /*
net/ipv4/inetpeer.c +1 -0
@@ -19,6 +19,7 @@#include <linux/net.h> #include <net/ip.h> #include <net/inetpeer.h> +#include <net/secure_seq.h> /* * Theory of operations.
net/ipv4/netfilter/nf_nat_proto_common.c +1 -0
@@ -12,6 +12,7 @@#include <linux/ip.h> #include <linux/netfilter.h> +#include <net/secure_seq.h> #include <net/netfilter/nf_nat.h> #include <net/netfilter/nf_nat_core.h> #include <net/netfilter/nf_nat_rule.h>
net/ipv4/route.c +1 -0
@@ -107,6 +107,7 @@#ifdef CONFIG_SYSCTL #include <linux/sysctl.h> #endif +#include <net/secure_seq.h> #define RT_FL_TOS (oldflp) \ ((u32)(oldflp->fl4_tos & (IPTOS_RT_MASK | RTO_ONLINK)))
net/ipv4/tcp_ipv4.c +1 -0
@@ -71,6 +71,7 @@#include <net/timewait_sock.h> #include <net/xfrm.h> #include <net/netdma.h> +#include <net/secure_seq.h> #include <linux/inet.h> #include <linux/ipv6.h>
net/ipv6/inet6_hashtables.c +1 -0
@@ -20,6 +20,7 @@#include <net/inet_connection_sock.h> #include <net/inet_hashtables.h> #include <net/inet6_hashtables.h> +#include <net/secure_seq.h> #include <net/ip.h> void __inet6_hash (struct sock *sk)
net/ipv6/tcp_ipv6.c +1 -0
@@ -60,6 +60,7 @@#include <net/timewait_sock.h> #include <net/netdma.h> #include <net/inet_common.h> +#include <net/secure_seq.h> #include <asm/uaccess.h>
sound/core/timer.c +2 -0
@@ -530,6 +530,8 @@ int snd_timer_stop(struct snd_timer_instance *timeri)if (err <0 )return err; timer = timeri->timer; +if (!timer) +return -EINVAL ;spin_lock_irqsave (&timer->lock, flags); timeri->cticks = timeri->ticks; timeri->pticks =0 ;
sound/usb/caiaq/input.c +1 -1
@@ -28,7 +28,7 @@ static unsigned short keycode_ak1[] = { KEY_C, KEY_B, KEY_A };static unsigned short keycode_rk2[] = {KEY_1 ,KEY_2 ,KEY_3 ,KEY_4 ,KEY_5 ,KEY_6 ,KEY_7 };static unsigned short keycode_rk3[] = {KEY_1 ,KEY_2 ,KEY_3 ,KEY_4 , -KEY_5 ,KEY_6 ,KEY_7 ,KEY_5 ,KEY_6 }; +KEY_5 ,KEY_6 ,KEY_7 ,KEY_8 ,KEY_9 };static unsigned short keycode_kore[] = {KEY_FN_F1 ,/* "menu" */