Skip to contentSkip to conversation

Linux 3.0.2

DISCUSSION Greg KH 6 participants 8 messages Aug 16, 2011

lore
Share & tools
lore

Greg KH

author
#0 lore raw

I'm announcing the release of the 3.0.2 kernel.

All users of the 3.0 kernel series must upgrade.

The updated 3.0.y git tree can be found at:

        git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-3.0.y.git
and can be browsed at the normal kernel.org git web browser:
        http://git.kernel.org/?p=linux/kernel/git/stable/linux-3.0.y.git;a=summary

thanks,

greg k-h

------------

 Makefile                                        |    2 
 arch/cris/arch-v10/drivers/sync_serial.c        |    6 
 arch/cris/arch-v10/kernel/irq.c                 |    3 
 arch/cris/include/asm/thread_info.h             |    6 
 arch/parisc/include/asm/atomic.h                |    4 
 arch/parisc/include/asm/futex.h                 |   66 ++++
 arch/parisc/include/asm/unistd.h                |    3 
 arch/parisc/kernel/syscall_table.S              |    1 
 arch/powerpc/kernel/prom_init.c                 |    6 
 arch/powerpc/platforms/pseries/dtl.c            |    2 
 arch/powerpc/platforms/pseries/kexec.c          |   11 
 arch/powerpc/platforms/pseries/lpar.c           |    2 
 arch/powerpc/platforms/pseries/plpar_wrappers.h |    4 
 arch/sparc/include/asm/bitops_64.h              |   49 ---
 arch/sparc/include/asm/elf_64.h                 |   63 ++--
 arch/sparc/include/asm/hypervisor.h             |   14 +
 arch/sparc/include/asm/spitfire.h               |    1 
 arch/sparc/include/asm/tsb.h                    |   51 +--
 arch/sparc/include/asm/xor_64.h                 |    3 
 arch/sparc/kernel/cpu.c                         |    8 
 arch/sparc/kernel/cpumap.c                      |    1 
 arch/sparc/kernel/ds.c                          |   31 ++
 arch/sparc/kernel/entry.h                       |   14 +
 arch/sparc/kernel/head_64.S                     |   33 ++
 arch/sparc/kernel/hvapi.c                       |    7 
 arch/sparc/kernel/hvcalls.S                     |    7 
 arch/sparc/kernel/kernel.h                      |   15 +
 arch/sparc/kernel/ktlb.S                        |   24 -
 arch/sparc/kernel/mdesc.c                       |   30 +-
 arch/sparc/kernel/pcr.c                         |   11 
 arch/sparc/kernel/perf_event.c                  |    3 
 arch/sparc/kernel/setup_64.c                    |  186 +++++++++++++
 arch/sparc/kernel/sparc_ksyms_64.c              |   11 
 arch/sparc/kernel/sstate.c                      |    9 
 arch/sparc/kernel/unaligned_64.c                |   15 -
 arch/sparc/kernel/vmlinux.lds.S                 |   21 +
 arch/sparc/lib/Makefile                         |    4 
 arch/sparc/lib/NG2page.S                        |   61 ----
 arch/sparc/lib/NGpage.S                         |  114 +++++---
 arch/sparc/lib/ffs.S                            |   84 ++++++
 arch/sparc/lib/hweight.S                        |   51 +++
 arch/sparc/mm/init_64.c                         |   42 ++-
 arch/x86/xen/Makefile                           |    2 
 arch/x86/xen/enlighten.c                        |    8 
 arch/x86/xen/vga.c                              |   67 ++++
 arch/x86/xen/xen-ops.h                          |   11 
 crypto/md5.c                                    |   92 ------
 drivers/char/random.c                           |  334 ------------------------
 drivers/gpu/drm/drm_edid.c                      |   24 +
 drivers/gpu/drm/i915/i915_dma.c                 |    6 
 drivers/gpu/drm/i915/i915_irq.c                 |    3 
 drivers/gpu/drm/i915/intel_display.c            |    8 
 drivers/gpu/drm/i915/intel_panel.c              |    4 
 drivers/gpu/drm/i915/intel_ringbuffer.c         |    3 
 drivers/gpu/drm/radeon/radeon_connectors.c      |   54 +++
 drivers/gpu/drm/radeon/radeon_device.c          |    5 
 drivers/gpu/drm/radeon/radeon_display.c         |    9 
 drivers/gpu/drm/radeon/radeon_i2c.c             |   32 +-
 drivers/gpu/drm/radeon/radeon_mode.h            |    6 
 drivers/isdn/i4l/isdn_net.c                     |    3 
 drivers/net/Makefile                            |    1 
 drivers/net/bonding/bond_main.c                 |    6 
 drivers/net/bonding/bond_sysfs.c                |  133 +++++----
 drivers/net/e1000e/lib.c                        |    3 
 drivers/net/gianfar_ptp.c                       |    9 
 drivers/net/ifb.c                               |    2 
 drivers/net/macvlan.c                           |    2 
 drivers/net/niu.c                               |    4 
 drivers/net/phy/dp83640.c                       |    5 
 drivers/net/r8169.c                             |    1 
 drivers/net/sis190.c                            |   12 
 drivers/net/tun.c                               |    1 
 drivers/net/veth.c                              |    2 
 drivers/net/wan/hdlc_fr.c                       |    5 
 drivers/net/wireless/airo.c                     |    1 
 drivers/net/wireless/ath/ath9k/ar9002_hw.c      |    6 
 drivers/net/wireless/ath/ath9k/ar9003_eeprom.c  |    6 
 drivers/net/wireless/ath/ath9k/ar9003_hw.c      |    6 
 drivers/net/wireless/ath/ath9k/ar9003_phy.h     |    2 
 drivers/net/wireless/ath/ath9k/hw.c             |   11 
 drivers/net/wireless/ath/ath9k/hw.h             |    3 
 drivers/net/wireless/ath/ath9k/init.c           |    2 
 drivers/net/wireless/ath/ath9k/pci.c            |   27 +
 drivers/net/wireless/hostap/hostap_main.c       |    1 
 drivers/net/wireless/iwlegacy/iwl-3945.c        |    6 
 drivers/net/wireless/iwlegacy/iwl-4965.c        |    8 
 drivers/net/wireless/iwlwifi/iwl-5000.c         |    1 
 drivers/net/wireless/iwlwifi/iwl-core.h         |    2 
 drivers/net/wireless/iwlwifi/iwl-power.c        |    3 
 drivers/net/wireless/rt2x00/rt2800lib.c         |    3 
 drivers/net/wireless/rt2x00/rt2x00mac.c         |    5 
 drivers/net/wireless/rtlwifi/pci.c              |   20 -
 drivers/platform/x86/asus-wmi.c                 |   17 -
 drivers/scsi/mpt2sas/mpt2sas_base.c             |   65 +---
 drivers/scsi/mpt2sas/mpt2sas_base.h             |   53 +++
 drivers/scsi/mpt2sas/mpt2sas_ctl.c              |   10 
 drivers/scsi/mpt2sas/mpt2sas_debug.h            |    2 
 drivers/scsi/mpt2sas/mpt2sas_scsih.c            |   12 
 drivers/scsi/mpt2sas/mpt2sas_transport.c        |   24 -
 drivers/staging/ath6kl/os/linux/ar6000_drv.c    |    1 
 fs/cifs/cifsfs.c                                |    4 
 fs/cifs/inode.c                                 |   14 -
 fs/cifs/transport.c                             |    2 
 fs/ecryptfs/main.c                              |   23 +
 fs/ecryptfs/read_write.c                        |   18 -
 fs/ext3/namei.c                                 |    6 
 fs/ext4/namei.c                                 |    6 
 include/drm/drm_crtc.h                          |    1 
 include/drm/i915_drm.h                          |    2 
 include/linux/cryptohash.h                      |    5 
 include/linux/if.h                              |    2 
 include/linux/mm.h                              |   12 
 include/linux/random.h                          |   11 
 include/net/ipv6.h                              |   12 
 include/net/secure_seq.h                        |   20 +
 include/net/transp_v6.h                         |    2 
 include/xen/interface/xen.h                     |   39 ++
 kernel/futex.c                                  |   54 +++
 lib/Makefile                                    |    2 
 lib/md5.c                                       |   95 ++++++
 net/8021q/vlan_dev.c                            |    2 
 net/bluetooth/bnep/netdev.c                     |    1 
 net/core/Makefile                               |    2 
 net/core/link_watch.c                           |    2 
 net/core/pktgen.c                               |    8 
 net/core/secure_seq.c                           |  184 +++++++++++++
 net/dccp/ipv4.c                                 |    1 
 net/dccp/ipv6.c                                 |    9 
 net/ethernet/eth.c                              |    1 
 net/ipv4/devinet.c                              |   16 -
 net/ipv4/gre.c                                  |   21 -
 net/ipv4/icmp.c                                 |   14 -
 net/ipv4/igmp.c                                 |    2 
 net/ipv4/inet_hashtables.c                      |    1 
 net/ipv4/inetpeer.c                             |    1 
 net/ipv4/ip_output.c                            |    6 
 net/ipv4/ipmr.c                                 |    2 
 net/ipv4/netfilter/nf_nat_proto_common.c        |    1 
 net/ipv4/route.c                                |    6 
 net/ipv4/tcp_ipv4.c                             |    1 
 net/ipv6/af_inet6.c                             |    2 
 net/ipv6/inet6_hashtables.c                     |    1 
 net/ipv6/ip6_output.c                           |   40 ++
 net/ipv6/tcp_ipv6.c                             |    1 
 net/ipv6/udp.c                                  |    2 
 net/l2tp/l2tp_eth.c                             |    2 
 net/mac80211/iface.c                            |    1 
 net/netfilter/ipvs/ip_vs_ctl.c                  |    1 
 net/sched/sch_sfq.c                             |    7 
 net/socket.c                                    |   73 ++---
 net/xfrm/xfrm_algo.c                            |    4 
 sound/core/timer.c                              |    2 
 sound/soc/codecs/sgtl5000.c                     |  128 ++-------
 sound/usb/caiaq/input.c                         |    2 
 sound/usb/endpoint.c                            |    2 
 sound/usb/mixer.c                               |   25 -
 sound/usb/mixer.h                               |    1 
 157 files changed, 1966 insertions(+), 1172 deletions(-)

Adam Jackson (1):
drm/i915/pch: Fix integer math bugs in panel fitting

Alex Hacker (1):
ath9k: fix a misprint which leads to incorrect calibration

Andy Gospodarek (1):
bonding: fix string comparison errors

Anton Blanchard (5):
net: sendmmsg should only return an error if no messages were sent
net: Cap number of elements for sendmmsg powerpc/pseries: Fix kexec on recent firmware versions
powerpc: Fix device tree claim code
powerpc: pseries: Fix kexec on machines with more than 4TB of RAM

Bill Sommerfeld (1):
ipv4: Constrain UFO fragment sizes to multiples of 8 bytes

Bruce Allan (1):

      e1000e: alternate MAC address does not work on device id 0x1060

Carlos O'Donell (1):
Fix futex support

Chris Clayton (1):
Fix cdc-phonet build

Clemens Ladisch (1):
ALSA: snd-usb: Accept UAC2 FORMAT_TYPE descriptors with bLength > 6

Corentin Chary (2):
asus-wmi: fix hwmon/pwm1
asus-wmi: return proper value in store_cpufv()

Daniel Mack (2):
ALSA: snd-usb-caiaq: Fix keymap for RigKontrol3
ALSA: snd-usb: operate on given mixer interface only

David S. Miller (18):
crypto: Move md5_transform to lib/md5.c
net: Compute protocol sequence numbers and fragment IDs using MD5.
icmp: Fix regression in nexthop resolution during replies.
sparc: Don't leave sparc_pmu_type NULL on sun4v.
sparc: Add T3 sun4v cpu type and hypervisor group defines.
sparc: Don't do expensive hypervisor PCR write unless necessary.
sparc: Detect and handle UltraSPARC-T3 cpu types.
sparc: Sanitize cpu feature detection and reporting.
sparc: Minor tweaks to Niagara page copy/clear.
sparc: Use popc if possible for hweight routines.
sparc: Use hweight64() in popc emulation.
sparc: Add some missing hypervisor API groups.
sparc: Set reboot-cmd using reboot data hypervisor call if available.
sparc: Use popc when possible for ffs/__ffs/ffz.
sparc: Access kernel TSB using physical addressing when possible.
sparc: Size mondo queues more sanely.
sparc: Fix build with DEBUG_PAGEALLOC enabled.
sparc: Don't do hypervisor calls on non-sun4v in DS driver.

Eric Dumazet (2):
ipv6: make fragment identifications less predictable
sch_sfq: fix sfq_enqueue()

Eric Sandeen (2):
ext3: Properly count journal credits for long symlinks
ext4: Properly count journal credits for long symlinks

Felix Fietkau (1):
ath9k: initialize tx chainmask before testing channel tx power values

Greg Kroah-Hartman (1):

      Linux 3.0.2

James Bottomley (1):
wire up sendmmsg syscall

Jeff Layton (2):
cifs: cope with negative dentries in cifs_get_root
cifs: convert prefixpath delimiters in cifs_build_path_to_root

Jeremy Fitzhardinge (1):
xen: allow enable use of VGA console on dom0

Jesse Barnes (1):
drm/i915: load the LUT before pipe enable on ILK+

John David Anglin (1):
fix return type of __atomic64_add_return

John Johansen (1):
Ecryptfs: Add mount option to check uid of device being mounted = expect uid

Julia Lawall (2):
net: adjust array index
drivers/net/niu.c: adjust array index

Julian Anastasov (2):
ipv4: fix the reusing of routing cache entries
ipv4: use RT_TOS after some rt_tos conversions

Kashyap, Desai (1):
mpt2sas: Fixed Big Indian Issues on 32 bit PPC

Keith Packard (3):

      drm/i915: Initialize RCS ring status page address in intel_render_ring_init_dri
      drm/i915: Hold mode_config->mutex during hotplug processing
      drm/i915: Fixup for 'Hold mode_config->mutex during hotplug'

Klement Fish (1):
sis190: Rx filter init is needed for MAC address change.

Larry Finger (1):
rtlwifi: Fix kernel oops on ARM SOC

Lennart Sorensen (1):

      r8169: Add support for D-Link 530T rev C1 (Kernel Bug 38862)

Neil Horman (2):
net: add IFF_SKB_TX_SHARED flag to priv_flags
net: Audit drivers to identify those needing IFF_TX_SKB_SHARING cleared

Nicolai Krakowiak (1):
ALSA: snd-usb: avoid dividing by zero on invalid input

Ole Henrik Jahren (1):
drm/i915: Fix typo in DRM_I915_OVERLAY_PUT_IMAGE ioctl define

Pavel Shilovsky (1):
CIFS: Fix missing a decrement of inFlight value

Peter Zijlstra (1):
mm: Fix fixup_user_fault() for MMU=n

Rajkumar Manoharan (1):
ath9k_hw: Fix incorrect Tx control power in AR9003 template

Richard Cochran (2):
gianfar: fix fiper alignment after resetting the time
dp83640: increase receive time stamp buffer size

Shawn Bohrer (1):
futex: Fix regression with read only mappings

Simon Horman (1):
IPVS: Free resources on module removal

Stanislaw Gruszka (4):
rt2x00: rt2800: fix zeroing skb structure
rt2x00: fix usage of NULL queue
iwlegacy: set tx power after rxon_assoc
ath9k: skip ->config_pci_powersave() if PCIe port has ASPM disabled

Takashi Iwai (1):
ALSA: timer - Fix Oops at closing slave timer

Tetsuo Handa (1):
net: Fix security_socket_sendmsg() bypass problem.

Thomas Reim (4):
drm: Separate EDID Header Check from EDID Block Check
drm/radeon: Extended DDC Probing for Connectors with Improperly Wired DDC Lines (here: Asus M2A-VM HDMI) drm/radeon: Extended DDC Probing for ECS A740GM-M DVI-D Connector
drm/radeon: Log Subsystem Vendor and Device Information

Tushar Gohad (1):
xfrm: Fix key lengths for rfc3686(ctr(aes))

Tyler Hicks (1):
eCryptfs: Return error when lower file pointer is NULL

WANG Cong (4):
cris: fix a build error in kernel/fork.c
cris: fix a build error in sync_serial_open()
cris: fix the prototype of sync_serial_ioctl()
cris: add missing declaration of kgdb_init() and breakpoint()

Wey-Yi Guy (1):
iwlagn: 5000 do not support idle mode

Wolfram Sang (1):
ASoC: sgtl5000: fix cache handling

Zoltan Kiss (1):
IPv4: Send gratuitous ARP for secondary IP addresses also

stephen hemminger (1):
net: allow netif_carrier to be called safely from IRQ

[email protected] (1):
gre: fix improper error handling

author
#1 lore raw
Makefile +1 -1
index f124b18..794fa28 100644
@@ -1,6 +1,6 @@
 VERSION = 3
 PATCHLEVEL = 0
-SUBLEVEL = 1
+SUBLEVEL = 2
 EXTRAVERSION =
 NAME = Sneaky Weasel
 
arch/cris/arch-v10/drivers/sync_serial.c +3 -3
index 85026537..466af40 100644
@@ -158,7 +158,7 @@ static int sync_serial_open(struct inode *inode, struct file *file);
 static int sync_serial_release(struct inode *inode, struct file *file);
 static unsigned int sync_serial_poll(struct file *filp, poll_table *wait);
 
-static int sync_serial_ioctl(struct file *file,
+static long sync_serial_ioctl(struct file *file,
 	unsigned int cmd, unsigned long arg);
 static ssize_t sync_serial_write(struct file *file, const char *buf,
 	size_t count, loff_t *ppos);
@@ -625,11 +625,11 @@ static int sync_serial_open(struct inode *inode, struct file *file)
 			*R_IRQ_MASK1_SET = 1 << port->data_avail_bit;
 		DEBUG(printk(KERN_DEBUG "sser%d rec started\n", dev));
 	}
-	ret = 0;
+	err = 0;
 	
 out:
 	mutex_unlock(&sync_serial_mutex);
-	return ret;
+	return err;
 }
 
 static int sync_serial_release(struct inode *inode, struct file *file)
arch/cris/arch-v10/kernel/irq.c +3 -0
index 907cfb5..ba0e596 100644
@@ -20,6 +20,9 @@
 #define crisv10_mask_irq(irq_nr) (*R_VECT_MASK_CLR = 1 << (irq_nr));
 #define crisv10_unmask_irq(irq_nr) (*R_VECT_MASK_SET = 1 << (irq_nr));
 
+extern void kgdb_init(void);
+extern void breakpoint(void);
+
 /* don't use set_int_vector, it bypasses the linux interrupt handlers. it is
  * global just so that the kernel gdb can use it.
  */
arch/cris/include/asm/thread_info.h +3 -3
index 29b74a1..332f19c 100644
@@ -11,8 +11,6 @@
 
 #ifdef __KERNEL__
 
-#define __HAVE_ARCH_THREAD_INFO_ALLOCATOR
-
 #ifndef __ASSEMBLY__
 #include <asm/types.h>
 #include <asm/processor.h>
@@ -67,8 +65,10 @@ struct thread_info {
 
 #define init_thread_info	(init_thread_union.thread_info)
 
+#define __HAVE_ARCH_THREAD_INFO_ALLOCATOR
 /* thread information allocation */
-#define alloc_thread_info(tsk, node) ((struct thread_info *) __get_free_pages(GFP_KERNEL,1))
+#define alloc_thread_info_node(tsk, node)	\
+	((struct thread_info *) __get_free_pages(GFP_KERNEL, 1))
 #define free_thread_info(ti) free_pages((unsigned long) (ti), 1)
 
 #endif /* !__ASSEMBLY__ */
arch/parisc/include/asm/atomic.h +2 -2
index f819559..26fd114 100644
@@ -259,10 +259,10 @@ static __inline__ int atomic_add_unless(atomic_t *v, int a, int u)
 
 #define ATOMIC64_INIT(i) ((atomic64_t) { (i) })
 
-static __inline__ int
+static __inline__ s64
 __atomic64_add_return(s64 i, atomic64_t *v)
 {
-	int ret;
+	s64 ret;
 	unsigned long flags;
 	_atomic_spin_lock_irqsave(v, flags);
 
arch/parisc/include/asm/futex.h +60 -6

111 lines not on this page · raw message

arch/parisc/include/asm/unistd.h +2 -1
index 3392de3..d61de64 100644
@@ -821,8 +821,9 @@
 #define __NR_open_by_handle_at	(__NR_Linux + 326)
 #define __NR_syncfs		(__NR_Linux + 327)
 #define __NR_setns		(__NR_Linux + 328)
+#define __NR_sendmmsg		(__NR_Linux + 329)
 
-#define __NR_Linux_syscalls	(__NR_setns + 1)
+#define __NR_Linux_syscalls	(__NR_sendmmsg + 1)
 
 
 #define __IGNORE_select		/* newselect */
arch/parisc/kernel/syscall_table.S +1 -0
index 34a4f5a..e66366f 100644
@@ -427,6 +427,7 @@
 	ENTRY_COMP(open_by_handle_at)
 	ENTRY_SAME(syncfs)
 	ENTRY_SAME(setns)
+	ENTRY_COMP(sendmmsg)
 
 	/* Nothing yet */
 
arch/powerpc/kernel/prom_init.c +3 -3
index c016033..3b22142 100644
@@ -1020,7 +1020,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));
@@ -1834,7 +1834,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;
@@ -2053,7 +2053,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/dtl.c +1 -1
index e919007..0e86563 100644
@@ -181,7 +181,7 @@ static void dtl_stop(struct dtl *dtl)
 
 	lppaca_of(dtl->cpu).dtl_enable_mask = 0x0;
 
-	unregister_dtl(hwcpu, __pa(dtl->buf));
+	unregister_dtl(hwcpu);
 }
 
 static u64 dtl_current_index(struct dtl *dtl)
arch/powerpc/platforms/pseries/kexec.c +11 -0
index 54cf3a4..1118cb7 100644
@@ -26,6 +26,17 @@ static void pseries_kexec_cpu_down(int crash_shutdown, int secondary)
 	/* Don't risk a hypervisor call if we're crashing */
 	if (firmware_has_feature(FW_FEATURE_SPLPAR) && !crash_shutdown) {
 		unsigned long addr;
+		int ret;
+
+		if (get_lppaca()->dtl_enable_mask) {
+			ret = unregister_dtl(hard_smp_processor_id());
+			if (ret) {
+				pr_err("WARNING: DTL deregistration for cpu "
+				       "%d (hw %d) failed with %d\n",
+				       smp_processor_id(),
+				       hard_smp_processor_id(), ret);
+			}
+		}
 
 		addr = __pa(get_slb_shadow());
 		if (unregister_slb_shadow(hard_smp_processor_id(), addr))
arch/powerpc/platforms/pseries/lpar.c +1 -1
index 39e6e0a..ed96b37 100644
@@ -395,7 +395,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
arch/powerpc/platforms/pseries/plpar_wrappers.h +2 -2
index 4bf2120..a6921ae 100644
@@ -73,9 +73,9 @@ static inline long register_slb_shadow(unsigned long cpu, unsigned long vpa)
 	return vpa_call(0x3, cpu, vpa);
 }
 
-static inline long unregister_dtl(unsigned long cpu, unsigned long vpa)
+static inline long unregister_dtl(unsigned long cpu)
 {
-	return vpa_call(0x6, cpu, vpa);
+	return vpa_call(0x6, cpu, 0);
 }
 
 static inline long register_dtl(unsigned long cpu, unsigned long vpa)
arch/sparc/include/asm/bitops_64.h +8 -41

69 lines not on this page · raw message

arch/sparc/include/asm/elf_64.h +29 -34

75 lines not on this page · raw message

arch/sparc/include/asm/hypervisor.h +14 -0
index 7568640..015a761 100644
@@ -2927,6 +2927,13 @@ extern unsigned long sun4v_ncs_request(unsigned long request,
 #define HV_FAST_FIRE_GET_PERFREG	0x120
 #define HV_FAST_FIRE_SET_PERFREG	0x121
 
+#define HV_FAST_REBOOT_DATA_SET		0x172
+
+#ifndef __ASSEMBLY__
+extern unsigned long sun4v_reboot_data_set(unsigned long ra,
+					   unsigned long len);
+#endif
+
 /* Function numbers for HV_CORE_TRAP.  */
 #define HV_CORE_SET_VER			0x00
 #define HV_CORE_PUTCHAR			0x01
@@ -2940,16 +2947,23 @@ extern unsigned long sun4v_ncs_request(unsigned long request,
 #define HV_GRP_CORE			0x0001
 #define HV_GRP_INTR			0x0002
 #define HV_GRP_SOFT_STATE		0x0003
+#define HV_GRP_TM			0x0080
 #define HV_GRP_PCI			0x0100
 #define HV_GRP_LDOM			0x0101
 #define HV_GRP_SVC_CHAN			0x0102
 #define HV_GRP_NCS			0x0103
 #define HV_GRP_RNG			0x0104
+#define HV_GRP_PBOOT			0x0105
+#define HV_GRP_TPM			0x0107
+#define HV_GRP_SDIO			0x0108
+#define HV_GRP_SDIO_ERR			0x0109
+#define HV_GRP_REBOOT_DATA		0x0110
 #define HV_GRP_NIAG_PERF		0x0200
 #define HV_GRP_FIRE_PERF		0x0201
 #define HV_GRP_N2_CPU			0x0202
 #define HV_GRP_NIU			0x0204
 #define HV_GRP_VF_CPU			0x0205
+#define HV_GRP_KT_CPU			0x0209
 #define HV_GRP_DIAG			0x0300
 
 #ifndef __ASSEMBLY__
arch/sparc/include/asm/spitfire.h +1 -0
index f0d0c40..55a17c6 100644
@@ -42,6 +42,7 @@
 #define SUN4V_CHIP_INVALID	0x00
 #define SUN4V_CHIP_NIAGARA1	0x01
 #define SUN4V_CHIP_NIAGARA2	0x02
+#define SUN4V_CHIP_NIAGARA3	0x03
 #define SUN4V_CHIP_UNKNOWN	0xff
 
 #ifndef __ASSEMBLY__
arch/sparc/include/asm/tsb.h +24 -27

84 lines not on this page · raw message

arch/sparc/include/asm/xor_64.h +2 -1
index bee4bf4..9ed6ff6 100644
@@ -65,6 +65,7 @@ static struct xor_block_template xor_block_niagara = {
 #define XOR_SELECT_TEMPLATE(FASTEST) \
 	((tlb_type == hypervisor && \
 	  (sun4v_chip_type == SUN4V_CHIP_NIAGARA1 || \
-	   sun4v_chip_type == SUN4V_CHIP_NIAGARA2)) ? \
+	   sun4v_chip_type == SUN4V_CHIP_NIAGARA2 || \
+	   sun4v_chip_type == SUN4V_CHIP_NIAGARA3)) ? \
 	 &xor_block_niagara : \
 	 &xor_block_VIS)
arch/sparc/kernel/cpu.c +8 -0
index 138dbbc..9810fd8 100644
@@ -396,6 +396,7 @@ static int show_cpuinfo(struct seq_file *m, void *__unused)
 		   , cpu_data(0).clock_tick
 #endif
 		);
+	cpucap_info(m);
 #ifdef CONFIG_SMP
 	smp_bogo(m);
 #endif
@@ -474,11 +475,18 @@ static void __init sun4v_cpu_probe(void)
 		sparc_pmu_type = "niagara2";
 		break;
 
+	case SUN4V_CHIP_NIAGARA3:
+		sparc_cpu_type = "UltraSparc T3 (Niagara3)";
+		sparc_fpu_type = "UltraSparc T3 integrated FPU";
+		sparc_pmu_type = "niagara3";
+		break;
+
 	default:
 		printk(KERN_WARNING "CPU: Unknown sun4v cpu type [%s]\n",
 		       prom_cpu_compatible);
 		sparc_cpu_type = "Unknown SUN4V CPU";
 		sparc_fpu_type = "Unknown SUN4V FPU";
+		sparc_pmu_type = "Unknown SUN4V PMU";
 		break;
 	}
 }
arch/sparc/kernel/cpumap.c +1 -0
index d91fd78..4197e8d 100644
@@ -324,6 +324,7 @@ static int iterate_cpu(struct cpuinfo_tree *t, unsigned int root_index)
 	switch (sun4v_chip_type) {
 	case SUN4V_CHIP_NIAGARA1:
 	case SUN4V_CHIP_NIAGARA2:
+	case SUN4V_CHIP_NIAGARA3:
 		rover_inc_table = niagara_iterate_method;
 		break;
 	default:
arch/sparc/kernel/ds.c +29 -2
index dd1342c..7429b47 100644
@@ -15,12 +15,15 @@
 #include <linux/reboot.h>
 #include <linux/cpu.h>
 
+#include <asm/hypervisor.h>
 #include <asm/ldc.h>
 #include <asm/vio.h>
 #include <asm/mdesc.h>
 #include <asm/head.h>
 #include <asm/irq.h>
 
+#include "kernel.h"
+
 #define DRV_MODULE_NAME		"ds"
 #define PFX DRV_MODULE_NAME	": "
 #define DRV_MODULE_VERSION	"1.0"
@@ -828,18 +831,32 @@ void ldom_set_var(const char *var, const char *value)
 	}
 }
 
+static char full_boot_str[256] __attribute__((aligned(32)));
+static int reboot_data_supported;
+
 void ldom_reboot(const char *boot_command)
 {
 	/* Don't bother with any of this if the boot_command
 	 * is empty.
 	 */
 	if (boot_command && strlen(boot_command)) {
-		char full_boot_str[256];
+		unsigned long len;
 
 		strcpy(full_boot_str, "boot ");
 		strcpy(full_boot_str + strlen("boot "), boot_command);
+		len = strlen(full_boot_str);
 
-		ldom_set_var("reboot-command", full_boot_str);
+		if (reboot_data_supported) {
+			unsigned long ra = kimage_addr_to_ra(full_boot_str);
+			unsigned long hv_ret;
+
+			hv_ret = sun4v_reboot_data_set(ra, len);
+			if (hv_ret != HV_EOK)
+				pr_err("SUN4V: Unable to set reboot data "
+				       "hv_ret=%lu\n", hv_ret);
+		} else {
+			ldom_set_var("reboot-command", full_boot_str);
+		}
 	}
 	sun4v_mach_sir();
 }
@@ -1237,6 +1254,16 @@ static struct vio_driver ds_driver = {
 
 static int __init ds_init(void)
 {
+	unsigned long hv_ret, major, minor;
+
+	if (tlb_type == hypervisor) {
+		hv_ret = sun4v_get_version(HV_GRP_REBOOT_DATA, &major, &minor);
+		if (hv_ret == HV_EOK) {
+			pr_info("SUN4V: Reboot data supported (maj=%lu,min=%lu).\n",
+				major, minor);
+			reboot_data_supported = 1;
+		}
+	}
 	kthread_run(ds_thread, NULL, "kldomd");
 
 	return vio_register_driver(&ds_driver);
arch/sparc/kernel/entry.h +14 -0
index d1f1361..e27f8ea 100644
@@ -42,6 +42,20 @@ extern void fpsave(unsigned long *fpregs, unsigned long *fsr,
 extern void fpload(unsigned long *fpregs, unsigned long *fsr);
 
 #else /* CONFIG_SPARC32 */
+struct popc_3insn_patch_entry {
+	unsigned int	addr;
+	unsigned int	insns[3];
+};
+extern struct popc_3insn_patch_entry __popc_3insn_patch,
+	__popc_3insn_patch_end;
+
+struct popc_6insn_patch_entry {
+	unsigned int	addr;
+	unsigned int	insns[6];
+};
+extern struct popc_6insn_patch_entry __popc_6insn_patch,
+	__popc_6insn_patch_end;
+
 extern void __init per_cpu_patch(void);
 extern void __init sun4v_patch(void);
 extern void __init boot_cpu_id_too_large(int cpu);
arch/sparc/kernel/head_64.S +32 -1
index aa594c7..0cbab31 100644
@@ -132,6 +132,8 @@ prom_sun4v_name:
 	.asciz	"sun4v"
 prom_niagara_prefix:
 	.asciz	"SUNW,UltraSPARC-T"
+prom_sparc_prefix:
+	.asciz	"SPARC-T"
 	.align	4
 prom_root_compatible:
 	.skip	64
@@ -382,6 +384,22 @@ sun4v_chip_type:
 90:	ldub	[%g7], %g2
 	ldub	[%g1], %g4
 	cmp	%g2, %g4
+	bne,pn	%icc, 89f
+	 add	%g7, 1, %g7
+	subcc	%g3, 1, %g3
+	bne,pt	%xcc, 90b
+	 add	%g1, 1, %g1
+	ba,pt	%xcc, 91f
+	 nop
+
+89:	sethi	%hi(prom_cpu_compatible), %g1
+	or	%g1, %lo(prom_cpu_compatible), %g1
+	sethi	%hi(prom_sparc_prefix), %g7
+	or	%g7, %lo(prom_sparc_prefix), %g7
+	mov	7, %g3
+90:	ldub	[%g7], %g2
+	ldub	[%g1], %g4
+	cmp	%g2, %g4
 	bne,pn	%icc, 4f
 	 add	%g7, 1, %g7
 	subcc	%g3, 1, %g3
@@ -390,6 +408,15 @@ sun4v_chip_type:
 
 	sethi	%hi(prom_cpu_compatible), %g1
 	or	%g1, %lo(prom_cpu_compatible), %g1
+	ldub	[%g1 + 7], %g2
+	cmp	%g2, '3'
+	be,pt	%xcc, 5f
+	 mov	SUN4V_CHIP_NIAGARA3, %g4
+	ba,pt	%xcc, 4f
+	 nop
+
+91:	sethi	%hi(prom_cpu_compatible), %g1
+	or	%g1, %lo(prom_cpu_compatible), %g1
 	ldub	[%g1 + 17], %g2
 	cmp	%g2, '1'
 	be,pt	%xcc, 5f
@@ -397,6 +424,7 @@ sun4v_chip_type:
 	cmp	%g2, '2'
 	be,pt	%xcc, 5f
 	 mov	SUN4V_CHIP_NIAGARA2, %g4
+
 4:
 	mov	SUN4V_CHIP_UNKNOWN, %g4
 5:	sethi	%hi(sun4v_chip_type), %g2
@@ -514,6 +542,9 @@ niagara_tlb_fixup:
 	 cmp	%g1, SUN4V_CHIP_NIAGARA2
 	be,pt	%xcc, niagara2_patch
 	 nop
+	cmp	%g1, SUN4V_CHIP_NIAGARA3
+	be,pt	%xcc, niagara2_patch
+	 nop
 
 	call	generic_patch_copyops
 	 nop
@@ -528,7 +559,7 @@ niagara2_patch:
 	 nop
 	call	niagara_patch_bzero
 	 nop
-	call	niagara2_patch_pageops
+	call	niagara_patch_pageops
 	 nop
 
 	ba,a,pt	%xcc, 80f
arch/sparc/kernel/hvapi.c +7 -0
index 7c60afb..c2d055d 100644
@@ -28,16 +28,23 @@ static struct api_info api_table[] = {
 	{ .group = HV_GRP_CORE,		.flags = FLAG_PRE_API	},
 	{ .group = HV_GRP_INTR,					},
 	{ .group = HV_GRP_SOFT_STATE,				},
+	{ .group = HV_GRP_TM,					},
 	{ .group = HV_GRP_PCI,		.flags = FLAG_PRE_API	},
 	{ .group = HV_GRP_LDOM,					},
 	{ .group = HV_GRP_SVC_CHAN,	.flags = FLAG_PRE_API	},
 	{ .group = HV_GRP_NCS,		.flags = FLAG_PRE_API	},
 	{ .group = HV_GRP_RNG,					},
+	{ .group = HV_GRP_PBOOT,				},
+	{ .group = HV_GRP_TPM,					},
+	{ .group = HV_GRP_SDIO,					},
+	{ .group = HV_GRP_SDIO_ERR,				},
+	{ .group = HV_GRP_REBOOT_DATA,				},
 	{ .group = HV_GRP_NIAG_PERF,	.flags = FLAG_PRE_API	},
 	{ .group = HV_GRP_FIRE_PERF,				},
 	{ .group = HV_GRP_N2_CPU,				},
 	{ .group = HV_GRP_NIU,					},
 	{ .group = HV_GRP_VF_CPU,				},
+	{ .group = HV_GRP_KT_CPU,				},
 	{ .group = HV_GRP_DIAG,		.flags = FLAG_PRE_API	},
 };
 
arch/sparc/kernel/hvcalls.S +7 -0
index 8a5f35f..58d60de 100644
@@ -798,3 +798,10 @@ ENTRY(sun4v_niagara2_setperf)
 	retl
 	 nop
 ENDPROC(sun4v_niagara2_setperf)
+
+ENTRY(sun4v_reboot_data_set)
+	mov	HV_FAST_REBOOT_DATA_SET, %o5
+	ta	HV_FAST_TRAP
+	retl
+	 nop
+ENDPROC(sun4v_reboot_data_set)
arch/sparc/kernel/kernel.h +15 -0
index 6f6544c..fd6c36b 100644
@@ -4,12 +4,27 @@
 #include <linux/interrupt.h>
 
 #include <asm/traps.h>
+#include <asm/head.h>
+#include <asm/io.h>
 
 /* cpu.c */
 extern const char *sparc_pmu_type;
 extern unsigned int fsr_storage;
 extern int ncpus_probed;
 
+#ifdef CONFIG_SPARC64
+/* setup_64.c */
+struct seq_file;
+extern void cpucap_info(struct seq_file *);
+
+static inline unsigned long kimage_addr_to_ra(const char *p)
+{
+	unsigned long val = (unsigned long) p;
+
+	return kern_base + (val - KERNBASE);
+}
+#endif
+
 #ifdef CONFIG_SPARC32
 /* cpu.c */
 extern void cpu_probe(void);
arch/sparc/kernel/ktlb.S +12 -12
index 1d36147..79f3103 100644
@@ -47,16 +47,16 @@ kvmap_itlb_tsb_miss:
 kvmap_itlb_vmalloc_addr:
 	KERN_PGTABLE_WALK(%g4, %g5, %g2, kvmap_itlb_longpath)
 
-	KTSB_LOCK_TAG(%g1, %g2, %g7)
+	TSB_LOCK_TAG(%g1, %g2, %g7)
 
 	/* Load and check PTE.  */
 	ldxa		[%g5] ASI_PHYS_USE_EC, %g5
 	mov		1, %g7
 	sllx		%g7, TSB_TAG_INVALID_BIT, %g7
 	brgez,a,pn	%g5, kvmap_itlb_longpath
-	 KTSB_STORE(%g1, %g7)
+	 TSB_STORE(%g1, %g7)
 
-	KTSB_WRITE(%g1, %g5, %g6)
+	TSB_WRITE(%g1, %g5, %g6)
 
 	/* fallthrough to TLB load */
 
@@ -102,9 +102,9 @@ kvmap_itlb_longpath:
 kvmap_itlb_obp:
 	OBP_TRANS_LOOKUP(%g4, %g5, %g2, %g3, kvmap_itlb_longpath)
 
-	KTSB_LOCK_TAG(%g1, %g2, %g7)
+	TSB_LOCK_TAG(%g1, %g2, %g7)
 
-	KTSB_WRITE(%g1, %g5, %g6)
+	TSB_WRITE(%g1, %g5, %g6)
 
 	ba,pt		%xcc, kvmap_itlb_load
 	 nop
@@ -112,17 +112,17 @@ kvmap_itlb_obp:
 kvmap_dtlb_obp:
 	OBP_TRANS_LOOKUP(%g4, %g5, %g2, %g3, kvmap_dtlb_longpath)
 
-	KTSB_LOCK_TAG(%g1, %g2, %g7)
+	TSB_LOCK_TAG(%g1, %g2, %g7)
 
-	KTSB_WRITE(%g1, %g5, %g6)
+	TSB_WRITE(%g1, %g5, %g6)
 
 	ba,pt		%xcc, kvmap_dtlb_load
 	 nop
 
 	.align		32
 kvmap_dtlb_tsb4m_load:
-	KTSB_LOCK_TAG(%g1, %g2, %g7)
-	KTSB_WRITE(%g1, %g5, %g6)
+	TSB_LOCK_TAG(%g1, %g2, %g7)
+	TSB_WRITE(%g1, %g5, %g6)
 	ba,pt		%xcc, kvmap_dtlb_load
 	 nop
 
@@ -222,16 +222,16 @@ kvmap_linear_patch:
 kvmap_dtlb_vmalloc_addr:
 	KERN_PGTABLE_WALK(%g4, %g5, %g2, kvmap_dtlb_longpath)
 
-	KTSB_LOCK_TAG(%g1, %g2, %g7)
+	TSB_LOCK_TAG(%g1, %g2, %g7)
 
 	/* Load and check PTE.  */
 	ldxa		[%g5] ASI_PHYS_USE_EC, %g5
 	mov		1, %g7
 	sllx		%g7, TSB_TAG_INVALID_BIT, %g7
 	brgez,a,pn	%g5, kvmap_dtlb_longpath
-	 KTSB_STORE(%g1, %g7)
+	 TSB_STORE(%g1, %g7)
 
-	KTSB_WRITE(%g1, %g5, %g6)
+	TSB_WRITE(%g1, %g5, %g6)
 
 	/* fallthrough to TLB load */
 
arch/sparc/kernel/mdesc.c +23 -7
index 42f28c7..acaebb6 100644
@@ -508,6 +508,8 @@ const char *mdesc_node_name(struct mdesc_handle *hp, u64 node)
 }
 EXPORT_SYMBOL(mdesc_node_name);
 
+static u64 max_cpus = 64;
+
 static void __init report_platform_properties(void)
 {
 	struct mdesc_handle *hp = mdesc_grab();
@@ -543,8 +545,10 @@ static void __init report_platform_properties(void)
 	if (v)
 		printk("PLATFORM: watchdog-max-timeout [%llu ms]\n", *v);
 	v = mdesc_get_property(hp, pn, "max-cpus", NULL);
-	if (v)
-		printk("PLATFORM: max-cpus [%llu]\n", *v);
+	if (v) {
+		max_cpus = *v;
+		printk("PLATFORM: max-cpus [%llu]\n", max_cpus);
+	}
 
 #ifdef CONFIG_SMP
 	{
@@ -715,7 +719,7 @@ static void __cpuinit set_proc_ids(struct mdesc_handle *hp)
 }
 
 static void __cpuinit get_one_mondo_bits(const u64 *p, unsigned int *mask,
-					 unsigned char def)
+					 unsigned long def, unsigned long max)
 {
 	u64 val;
 
@@ -726,6 +730,9 @@ static void __cpuinit get_one_mondo_bits(const u64 *p, unsigned int *mask,
 	if (!val || val >= 64)
 		goto use_default;
 
+	if (val > max)
+		val = max;
+
 	*mask = ((1U << val) * 64U) - 1U;
 	return;
 
@@ -736,19 +743,28 @@ use_default:
 static void __cpuinit get_mondo_data(struct mdesc_handle *hp, u64 mp,
 				     struct trap_per_cpu *tb)
 {
+	static int printed;
 	const u64 *val;
 
 	val = mdesc_get_property(hp, mp, "q-cpu-mondo-#bits", NULL);
-	get_one_mondo_bits(val, &tb->cpu_mondo_qmask, 7);
+	get_one_mondo_bits(val, &tb->cpu_mondo_qmask, 7, ilog2(max_cpus * 2));
 
 	val = mdesc_get_property(hp, mp, "q-dev-mondo-#bits", NULL);
-	get_one_mondo_bits(val, &tb->dev_mondo_qmask, 7);
+	get_one_mondo_bits(val, &tb->dev_mondo_qmask, 7, 8);
 
 	val = mdesc_get_property(hp, mp, "q-resumable-#bits", NULL);
-	get_one_mondo_bits(val, &tb->resum_qmask, 6);
+	get_one_mondo_bits(val, &tb->resum_qmask, 6, 7);
 
 	val = mdesc_get_property(hp, mp, "q-nonresumable-#bits", NULL);
-	get_one_mondo_bits(val, &tb->nonresum_qmask, 2);
+	get_one_mondo_bits(val, &tb->nonresum_qmask, 2, 2);
+	if (!printed++) {
+		pr_info("SUN4V: Mondo queue sizes "
+			"[cpu(%u) dev(%u) r(%u) nr(%u)]\n",
+			tb->cpu_mondo_qmask + 1,
+			tb->dev_mondo_qmask + 1,
+			tb->resum_qmask + 1,
+			tb->nonresum_qmask + 1);
+	}
 }
 
 static void * __cpuinit mdesc_iterate_over_cpus(void *(*func)(struct mdesc_handle *, u64, int, void *), void *arg, cpumask_t *mask)
arch/sparc/kernel/pcr.c +9 -2
index 8ac23e6..343b0f9 100644
@@ -80,8 +80,11 @@ static void n2_pcr_write(u64 val)
 {
 	unsigned long ret;
 
-	ret = sun4v_niagara2_setperf(HV_N2_PERF_SPARC_CTL, val);
-	if (ret != HV_EOK)
+	if (val & PCR_N2_HTRACE) {
+		ret = sun4v_niagara2_setperf(HV_N2_PERF_SPARC_CTL, val);
+		if (ret != HV_EOK)
+			write_pcr(val);
+	} else
 		write_pcr(val);
 }
 
@@ -106,6 +109,10 @@ static int __init register_perf_hsvc(void)
 			perf_hsvc_group = HV_GRP_N2_CPU;
 			break;
 
+		case SUN4V_CHIP_NIAGARA3:
+			perf_hsvc_group = HV_GRP_KT_CPU;
+			break;
+
 		default:
 			return -ENODEV;
 		}
arch/sparc/kernel/perf_event.c +2 -1
index 2cb0e1c..6860d40 100644
@@ -1301,7 +1301,8 @@ static bool __init supported_pmu(void)
 		sparc_pmu = &niagara1_pmu;
 		return true;
 	}
-	if (!strcmp(sparc_pmu_type, "niagara2")) {
+	if (!strcmp(sparc_pmu_type, "niagara2") ||
+	    !strcmp(sparc_pmu_type, "niagara3")) {
 		sparc_pmu = &niagara2_pmu;
 		return true;
 	}
arch/sparc/kernel/setup_64.c +186 -0

216 lines not on this page · raw message

arch/sparc/kernel/sparc_ksyms_64.c +11 -0
index 372ad59..83b47ab 100644
@@ -8,6 +8,7 @@
 #include <linux/module.h>
 #include <linux/pci.h>
 #include <linux/init.h>
+#include <linux/bitops.h>
 
 #include <asm/system.h>
 #include <asm/cpudata.h>
@@ -38,5 +39,15 @@ EXPORT_SYMBOL(sun4v_niagara_setperf);
 EXPORT_SYMBOL(sun4v_niagara2_getperf);
 EXPORT_SYMBOL(sun4v_niagara2_setperf);
 
+/* from hweight.S */
+EXPORT_SYMBOL(__arch_hweight8);
+EXPORT_SYMBOL(__arch_hweight16);
+EXPORT_SYMBOL(__arch_hweight32);
+EXPORT_SYMBOL(__arch_hweight64);
+
+/* from ffs_ffz.S */
+EXPORT_SYMBOL(ffs);
+EXPORT_SYMBOL(__ffs);
+
 /* Exporting a symbol from /init/main.c */
 EXPORT_SYMBOL(saved_command_line);
arch/sparc/kernel/sstate.c +2 -7
index 8cdbe59..c59af54 100644
@@ -14,14 +14,9 @@
 #include <asm/head.h>
 #include <asm/io.h>
 
-static int hv_supports_soft_state;
-
-static unsigned long kimage_addr_to_ra(const char *p)
-{
-	unsigned long val = (unsigned long) p;
+#include "kernel.h"
 
-	return kern_base + (val - KERNBASE);
-}
+static int hv_supports_soft_state;
 
 static void do_set_sstate(unsigned long state, const char *msg)
 {
arch/sparc/kernel/unaligned_64.c +4 -11
index b2b019e..9043106 100644
@@ -22,6 +22,7 @@
 #include <linux/bitops.h>
 #include <linux/perf_event.h>
 #include <linux/ratelimit.h>
+#include <linux/bitops.h>
 #include <asm/fpumacro.h>
 
 enum direction {
@@ -373,16 +374,11 @@ asmlinkage void kernel_unaligned_trap(struct pt_regs *regs, unsigned int insn)
 	}
 }
 
-static char popc_helper[] = {
-0, 1, 1, 2, 1, 2, 2, 3,
-1, 2, 2, 3, 2, 3, 3, 4, 
-};
-
 int handle_popc(u32 insn, struct pt_regs *regs)
 {
-	u64 value;
-	int ret, i, rd = ((insn >> 25) & 0x1f);
 	int from_kernel = (regs->tstate & TSTATE_PRIV) != 0;
+	int ret, rd = ((insn >> 25) & 0x1f);
+	u64 value;
 	                        
 	perf_sw_event(PERF_COUNT_SW_EMULATION_FAULTS, 1, 0, regs, 0);
 	if (insn & 0x2000) {
@@ -392,10 +388,7 @@ int handle_popc(u32 insn, struct pt_regs *regs)
 		maybe_flush_windows(0, insn & 0x1f, rd, from_kernel);
 		value = fetch_reg(insn & 0x1f, regs);
 	}
-	for (ret = 0, i = 0; i < 16; i++) {
-		ret += popc_helper[value & 0xf];
-		value >>= 4;
-	}
+	ret = hweight64(value);
 	if (rd < 16) {
 		if (rd)
 			regs->u_regs[rd] = ret;
arch/sparc/kernel/vmlinux.lds.S +20 -1
index c022075..0e16056 100644
@@ -107,7 +107,26 @@ SECTIONS
 		*(.sun4v_2insn_patch)
 		__sun4v_2insn_patch_end = .;
 	}
-
+	.swapper_tsb_phys_patch : {
+		__swapper_tsb_phys_patch = .;
+		*(.swapper_tsb_phys_patch)
+		__swapper_tsb_phys_patch_end = .;
+	}
+	.swapper_4m_tsb_phys_patch : {
+		__swapper_4m_tsb_phys_patch = .;
+		*(.swapper_4m_tsb_phys_patch)
+		__swapper_4m_tsb_phys_patch_end = .;
+	}
+	.popc_3insn_patch : {
+		__popc_3insn_patch = .;
+		*(.popc_3insn_patch)
+		__popc_3insn_patch_end = .;
+	}
+	.popc_6insn_patch : {
+		__popc_6insn_patch = .;
+		*(.popc_6insn_patch)
+		__popc_6insn_patch_end = .;
+	}
 	PERCPU_SECTION(SMP_CACHE_BYTES)
 
 	. = ALIGN(PAGE_SIZE);
arch/sparc/lib/Makefile +2 -2
index 7f01b8f..a3fc437 100644
@@ -31,13 +31,13 @@ lib-$(CONFIG_SPARC64) += NGmemcpy.o NGcopy_from_user.o NGcopy_to_user.o
 lib-$(CONFIG_SPARC64) += NGpatch.o NGpage.o NGbzero.o
 
 lib-$(CONFIG_SPARC64) += NG2memcpy.o NG2copy_from_user.o NG2copy_to_user.o
-lib-$(CONFIG_SPARC64) +=  NG2patch.o NG2page.o
+lib-$(CONFIG_SPARC64) +=  NG2patch.o
 
 lib-$(CONFIG_SPARC64) += GENmemcpy.o GENcopy_from_user.o GENcopy_to_user.o
 lib-$(CONFIG_SPARC64) += GENpatch.o GENpage.o GENbzero.o
 
 lib-$(CONFIG_SPARC64) += copy_in_user.o user_fixup.o memmove.o
-lib-$(CONFIG_SPARC64) += mcount.o ipcsum.o xor.o
+lib-$(CONFIG_SPARC64) += mcount.o ipcsum.o xor.o hweight.o ffs.o
 
 obj-y                 += iomap.o
 obj-$(CONFIG_SPARC32) += atomic32.o
arch/sparc/lib/NG2page.S deleted +0 -61

61 lines not on this page · raw message

arch/sparc/lib/NGpage.S +75 -39

130 lines not on this page · raw message

arch/sparc/lib/ffs.S new file +84 -0

84 lines not on this page · raw message

arch/sparc/lib/hweight.S new file +51 -0

51 lines not on this page · raw message

arch/sparc/mm/init_64.c +41 -1

55 lines not on this page · raw message

arch/x86/xen/Makefile +1 -1
index 17c565d..a6575b9 100644
@@ -18,5 +18,5 @@ obj-y		:= enlighten.o setup.o multicalls.o mmu.o irq.o \
 obj-$(CONFIG_SMP)		+= smp.o
 obj-$(CONFIG_PARAVIRT_SPINLOCKS)+= spinlock.o
 obj-$(CONFIG_XEN_DEBUG_FS)	+= debugfs.o
-
+obj-$(CONFIG_XEN_DOM0)		+= vga.o
 obj-$(CONFIG_SWIOTLB_XEN)	+= pci-swiotlb-xen.o
arch/x86/xen/enlighten.c +8 -0
index 5525163..5325742 100644
@@ -1248,6 +1248,14 @@ asmlinkage void __init xen_start_kernel(void)
 		if (pci_xen)
 			x86_init.pci.arch_init = pci_xen_init;
 	} else {
+		const struct dom0_vga_console_info *info =
+			(void *)((char *)xen_start_info +
+				 xen_start_info->console.dom0.info_off);
+
+		xen_init_vga(info, xen_start_info->console.dom0.info_size);
+		xen_start_info->console.domU.mfn = 0;
+		xen_start_info->console.domU.evtchn = 0;
+
 		/* Make sure ACS will be enabled */
 		pci_request_acs();
 	}
arch/x86/xen/vga.c new file +67 -0

67 lines not on this page · raw message

arch/x86/xen/xen-ops.h +11 -0
index 97dfdc8..b095739 100644
@@ -88,6 +88,17 @@ static inline void xen_uninit_lock_cpu(int cpu)
 }
 #endif
 
+struct dom0_vga_console_info;
+
+#ifdef CONFIG_XEN_DOM0
+void __init xen_init_vga(const struct dom0_vga_console_info *, size_t size);
+#else
+static inline void __init xen_init_vga(const struct dom0_vga_console_info *info,
+				       size_t size)
+{
+}
+#endif
+
 /* Declare an asm function, along with symbols needed to make it
    inlineable */
 #define DECL_ASM(ret, name, ...)		\
crypto/md5.c +1 -91

100 lines not on this page · raw message

drivers/char/random.c +8 -326

355 lines not on this page · raw message

drivers/gpu/drm/drm_edid.c +18 -6
index 0929219..1bbb85b 100644
@@ -127,6 +127,23 @@ static const u8 edid_header[] = {
 	0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00
 };
 
+ /*
+ * Sanity check the header of the base EDID block.  Return 8 if the header
+ * is perfect, down to 0 if it's totally wrong.
+ */
+int drm_edid_header_is_valid(const u8 *raw_edid)
+{
+	int i, score = 0;
+
+	for (i = 0; i < sizeof(edid_header); i++)
+		if (raw_edid[i] == edid_header[i])
+			score++;
+
+	return score;
+}
+EXPORT_SYMBOL(drm_edid_header_is_valid);
+
+
 /*
  * Sanity check the EDID block (base or extension).  Return 0 if the block
  * doesn't check out, or 1 if it's valid.
@@ -139,12 +156,7 @@ drm_edid_block_valid(u8 *raw_edid)
 	struct edid *edid = (struct edid *)raw_edid;
 
 	if (raw_edid[0] == 0x00) {
-		int score = 0;
-
-		for (i = 0; i < sizeof(edid_header); i++)
-			if (raw_edid[i] == edid_header[i])
-				score++;
-
+		int score = drm_edid_header_is_valid(raw_edid);
 		if (score == 8) ;
 		else if (score >= 6) {
 			DRM_DEBUG("Fixing EDID header, your hardware may be failing\n");
drivers/gpu/drm/i915/i915_dma.c +2 -4
index 296fbd6..7eef6e1 100644
@@ -61,7 +61,6 @@ static void i915_write_hws_pga(struct drm_device *dev)
 static int i915_init_phys_hws(struct drm_device *dev)
 {
 	drm_i915_private_t *dev_priv = dev->dev_private;
-	struct intel_ring_buffer *ring = LP_RING(dev_priv);
 
 	/* Program Hardware Status Page */
 	dev_priv->status_page_dmah =
@@ -71,10 +70,9 @@ static int i915_init_phys_hws(struct drm_device *dev)
 		DRM_ERROR("Can not allocate hardware status page\n");
 		return -ENOMEM;
 	}
-	ring->status_page.page_addr =
-		(void __force __iomem *)dev_priv->status_page_dmah->vaddr;
 
-	memset_io(ring->status_page.page_addr, 0, PAGE_SIZE);
+	memset_io((void __force __iomem *)dev_priv->status_page_dmah->vaddr,
+		  0, PAGE_SIZE);
 
 	i915_write_hws_pga(dev);
 
drivers/gpu/drm/i915/i915_irq.c +3 -0
index 3b03f85..9b1d669 100644
@@ -306,12 +306,15 @@ static void i915_hotplug_work_func(struct work_struct *work)
 	struct drm_mode_config *mode_config = &dev->mode_config;
 	struct intel_encoder *encoder;
 
+	mutex_lock(&mode_config->mutex);
 	DRM_DEBUG_KMS("running encoder hotplug functions\n");
 
 	list_for_each_entry(encoder, &mode_config->encoder_list, base.head)
 		if (encoder->hot_plug)
 			encoder->hot_plug(encoder);
 
+	mutex_unlock(&mode_config->mutex);
+
 	/* Just fire off a uevent and let userspace tell us what to do */
 	drm_helper_hpd_irq_event(dev);
 }
drivers/gpu/drm/i915/intel_display.c +6 -2
index 0f1c799..5609c06 100644
@@ -2699,14 +2699,18 @@ static void ironlake_crtc_enable(struct drm_crtc *crtc)
 		I915_WRITE(PF_WIN_SZ(pipe), dev_priv->pch_pf_size);
 	}
 
+	/*
+	 * On ILK+ LUT must be loaded before the pipe is running but with
+	 * clocks enabled
+	 */
+	intel_crtc_load_lut(crtc);
+
 	intel_enable_pipe(dev_priv, pipe, is_pch_port);
 	intel_enable_plane(dev_priv, plane, pipe);
 
 	if (is_pch_port)
 		ironlake_pch_enable(crtc);
 
-	intel_crtc_load_lut(crtc);
-
 	mutex_lock(&dev->struct_mutex);
 	intel_update_fbc(dev);
 	mutex_unlock(&dev->struct_mutex);
drivers/gpu/drm/i915/intel_panel.c +4 -0
index a06ff07..05f500c 100644
@@ -83,11 +83,15 @@ intel_pch_panel_fitting(struct drm_device *dev,
 			u32 scaled_height = mode->hdisplay * adjusted_mode->vdisplay;
 			if (scaled_width > scaled_height) { /* pillar */
 				width = scaled_height / mode->vdisplay;
+				if (width & 1)
+				    	width++;
 				x = (adjusted_mode->hdisplay - width + 1) / 2;
 				y = 0;
 				height = adjusted_mode->vdisplay;
 			} else if (scaled_width < scaled_height) { /* letter */
 				height = scaled_width / mode->hdisplay;
+				if (height & 1)
+				    height++;
 				y = (adjusted_mode->vdisplay - height + 1) / 2;
 				x = 0;
 				width = adjusted_mode->hdisplay;
drivers/gpu/drm/i915/intel_ringbuffer.c +3 -0
index 95c4b14..1f61fc7 100644
@@ -1319,6 +1319,9 @@ int intel_render_ring_init_dri(struct drm_device *dev, u64 start, u32 size)
 		ring->get_seqno = pc_render_get_seqno;
 	}
 
+	if (!I915_NEED_GFX_HWS(dev))
+		ring->status_page.page_addr = dev_priv->status_page_dmah->vaddr;
+
 	ring->dev = dev;
 	INIT_LIST_HEAD(&ring->active_list);
 	INIT_LIST_HEAD(&ring->request_list);
drivers/gpu/drm/radeon/radeon_connectors.c +51 -3

90 lines not on this page · raw message

drivers/gpu/drm/radeon/radeon_device.c +3 -2
index 7cfaa7e..440e6ec 100644
@@ -704,8 +704,9 @@ int radeon_device_init(struct radeon_device *rdev,
 	rdev->gpu_lockup = false;
 	rdev->accel_working = false;
 
-	DRM_INFO("initializing kernel modesetting (%s 0x%04X:0x%04X).\n",
-		radeon_family_name[rdev->family], pdev->vendor, pdev->device);
+	DRM_INFO("initializing kernel modesetting (%s 0x%04X:0x%04X 0x%04X:0x%04X).\n",
+		radeon_family_name[rdev->family], pdev->vendor, pdev->device,
+		pdev->subsystem_vendor, pdev->subsystem_device);
 
 	/* mutex initialization are all done here so we
 	 * can recall function without having locking issues */
drivers/gpu/drm/radeon/radeon_display.c +9 -0
index 292f73f..ed085ce 100644
@@ -777,8 +777,17 @@ static int radeon_ddc_dump(struct drm_connector *connector)
 	if (!radeon_connector->ddc_bus)
 		return -1;
 	edid = drm_get_edid(connector, &radeon_connector->ddc_bus->adapter);
+	/* Log EDID retrieval status here. In particular with regard to
+	 * connectors with requires_extended_probe flag set, that will prevent
+	 * function radeon_dvi_detect() to fetch EDID on this connector,
+	 * as long as there is no valid EDID header found */
 	if (edid) {
+		DRM_INFO("Radeon display connector %s: Found valid EDID",
+				drm_get_connector_name(connector));
 		kfree(edid);
+	} else {
+		DRM_INFO("Radeon display connector %s: No monitor connected or invalid EDID",
+				drm_get_connector_name(connector));
 	}
 	return ret;
 }
drivers/gpu/drm/radeon/radeon_i2c.c +24 -8
index 781196d..6c111c1 100644
@@ -32,17 +32,17 @@
  * radeon_ddc_probe
  *
  */
-bool radeon_ddc_probe(struct radeon_connector *radeon_connector)
+bool radeon_ddc_probe(struct radeon_connector *radeon_connector, bool requires_extended_probe)
 {
-	u8 out_buf[] = { 0x0, 0x0};
-	u8 buf[2];
+	u8 out = 0x0;
+	u8 buf[8];
 	int ret;
 	struct i2c_msg msgs[] = {
 		{
 			.addr = 0x50,
 			.flags = 0,
 			.len = 1,
-			.buf = out_buf,
+			.buf = &out,
 		},
 		{
 			.addr = 0x50,
@@ -52,15 +52,31 @@ bool radeon_ddc_probe(struct radeon_connector *radeon_connector)
 		}
 	};
 
+	/* Read 8 bytes from i2c for extended probe of EDID header */
+	if (requires_extended_probe)
+		msgs[1].len = 8;
+
 	/* on hw with routers, select right port */
 	if (radeon_connector->router.ddc_valid)
 		radeon_router_select_ddc_port(radeon_connector);
 
 	ret = i2c_transfer(&radeon_connector->ddc_bus->adapter, msgs, 2);
-	if (ret == 2)
-		return true;
-
-	return false;
+	if (ret != 2)
+		/* Couldn't find an accessible DDC on this connector */
+		return false;
+	if (requires_extended_probe) {
+		/* Probe also for valid EDID header
+		 * EDID header starts with:
+		 * 0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00.
+		 * Only the first 6 bytes must be valid as
+		 * drm_edid_block_valid() can fix the last 2 bytes */
+		if (drm_edid_header_is_valid(buf) < 6) {
+			/* Couldn't find an accessible EDID on this
+			 * connector */
+			return false;
+		}
+	}
+	return true;
 }
 
 /* bit banging i2c */
drivers/gpu/drm/radeon/radeon_mode.h +5 -1
index 6df4e3c..d09031c 100644
@@ -438,6 +438,9 @@ struct radeon_connector {
 	struct radeon_i2c_chan *ddc_bus;
 	/* some systems have an hdmi and vga port with a shared ddc line */
 	bool shared_ddc;
+	/* for some Radeon chip families we apply an additional EDID header
+	   check as part of the DDC probe */
+	bool requires_extended_probe;
 	bool use_digital;
 	/* we need to mind the EDID between detect
 	   and get modes due to analog/digital/tvencoder */
@@ -514,7 +517,8 @@ extern void radeon_i2c_put_byte(struct radeon_i2c_chan *i2c,
 				u8 val);
 extern void radeon_router_select_ddc_port(struct radeon_connector *radeon_connector);
 extern void radeon_router_select_cd_port(struct radeon_connector *radeon_connector);
-extern bool radeon_ddc_probe(struct radeon_connector *radeon_connector);
+extern bool radeon_ddc_probe(struct radeon_connector *radeon_connector,
+			bool requires_extended_probe);
 extern int radeon_ddc_get_modes(struct radeon_connector *radeon_connector);
 
 extern struct drm_encoder *radeon_best_encoder(struct drm_connector *connector);
drivers/isdn/i4l/isdn_net.c +3 -0
index 9798811..b145b5a 100644
@@ -2531,6 +2531,9 @@ static void _isdn_setup(struct net_device *dev)
 
 	/* Setup the generic properties */
 	dev->flags = IFF_NOARP|IFF_POINTOPOINT;
+
+	/* isdn prepends a header in the tx path, can't share skbs */
+	dev->priv_flags &= ~IFF_TX_SKB_SHARING;
 	dev->header_ops = NULL;
 	dev->netdev_ops = &isdn_netdev_ops;
 
drivers/net/Makefile +1 -0
index 776a478..d5ce011 100644
@@ -283,6 +283,7 @@ obj-$(CONFIG_USB_HSO)		+= usb/
 obj-$(CONFIG_USB_USBNET)        += usb/
 obj-$(CONFIG_USB_ZD1201)        += usb/
 obj-$(CONFIG_USB_IPHETH)        += usb/
+obj-$(CONFIG_USB_CDC_PHONET)   += usb/
 
 obj-$(CONFIG_WLAN) += wireless/
 obj-$(CONFIG_NET_TULIP) += tulip/
drivers/net/bonding/bond_main.c +4 -2
index 63c22b0..9ea2f21 100644
@@ -1625,8 +1625,10 @@ int bond_enslave(struct net_device *bond_dev, struct net_device *slave_dev)
 
 			if (slave_dev->type != ARPHRD_ETHER)
 				bond_setup_by_slave(bond_dev, slave_dev);
-			else
+			else {
 				ether_setup(bond_dev);
+				bond_dev->priv_flags &= ~IFF_TX_SKB_SHARING;
+			}
 
 			netdev_bonding_change(bond_dev,
 					      NETDEV_POST_TYPE_CHANGE);
@@ -4398,7 +4400,7 @@ static void bond_setup(struct net_device *bond_dev)
 	bond_dev->tx_queue_len = 0;
 	bond_dev->flags |= IFF_MASTER|IFF_MULTICAST;
 	bond_dev->priv_flags |= IFF_BONDING;
-	bond_dev->priv_flags &= ~IFF_XMIT_DST_RELEASE;
+	bond_dev->priv_flags &= ~(IFF_XMIT_DST_RELEASE | IFF_TX_SKB_SHARING);
 
 	/* At first, we block adding VLANs. That's the only way to
 	 * prevent problems that occur when adding VLANs over an
drivers/net/bonding/bond_sysfs.c +71 -62

171 lines not on this page · raw message

drivers/net/e1000e/lib.c +2 -1
index dd8ab05..8d28602 100644
@@ -190,7 +190,8 @@ s32 e1000_check_alt_mac_addr_generic(struct e1000_hw *hw)
 	/* Check for LOM (vs. NIC) or one of two valid mezzanine cards */
 	if (!((nvm_data & NVM_COMPAT_LOM) ||
 	      (hw->adapter->pdev->device == E1000_DEV_ID_82571EB_SERDES_DUAL) ||
-	      (hw->adapter->pdev->device == E1000_DEV_ID_82571EB_SERDES_QUAD)))
+	      (hw->adapter->pdev->device == E1000_DEV_ID_82571EB_SERDES_QUAD) ||
+	      (hw->adapter->pdev->device == E1000_DEV_ID_82571EB_SERDES)))
 		goto out;
 
 	ret_val = e1000_read_nvm(hw, NVM_ALT_MAC_ADDR_PTR, 1,
drivers/net/gianfar_ptp.c +2 -7
index d8e1753..c413479 100644
@@ -193,14 +193,9 @@ static void set_alarm(struct etsects *etsects)
 /* Caller must hold etsects->lock. */
 static void set_fipers(struct etsects *etsects)
 {
-	u32 tmr_ctrl = gfar_read(&etsects->regs->tmr_ctrl);
-
-	gfar_write(&etsects->regs->tmr_ctrl,   tmr_ctrl & (~TE));
-	gfar_write(&etsects->regs->tmr_prsc,   etsects->tmr_prsc);
+	set_alarm(etsects);
 	gfar_write(&etsects->regs->tmr_fiper1, etsects->tmr_fiper1);
 	gfar_write(&etsects->regs->tmr_fiper2, etsects->tmr_fiper2);
-	set_alarm(etsects);
-	gfar_write(&etsects->regs->tmr_ctrl,   tmr_ctrl|TE);
 }
 
 /*
@@ -511,7 +506,7 @@ static int gianfar_ptp_probe(struct platform_device *dev)
 	gfar_write(&etsects->regs->tmr_fiper1, etsects->tmr_fiper1);
 	gfar_write(&etsects->regs->tmr_fiper2, etsects->tmr_fiper2);
 	set_alarm(etsects);
-	gfar_write(&etsects->regs->tmr_ctrl,   tmr_ctrl|FS|RTPE|TE);
+	gfar_write(&etsects->regs->tmr_ctrl,   tmr_ctrl|FS|RTPE|TE|FRD);
 
 	spin_unlock_irqrestore(&etsects->lock, flags);
 
drivers/net/ifb.c +1 -1
index 4fecaed..2b98461 100644
@@ -145,7 +145,7 @@ static void ifb_setup(struct net_device *dev)
 
 	dev->flags |= IFF_NOARP;
 	dev->flags &= ~IFF_MULTICAST;
-	dev->priv_flags &= ~IFF_XMIT_DST_RELEASE;
+	dev->priv_flags &= ~(IFF_XMIT_DST_RELEASE | IFF_TX_SKB_SHARING);
 	random_ether_addr(dev->dev_addr);
 }
 
drivers/net/macvlan.c +1 -1
index d6aeaa5..2f3c48d 100644
@@ -547,7 +547,7 @@ void macvlan_common_setup(struct net_device *dev)
 {
 	ether_setup(dev);
 
-	dev->priv_flags	       &= ~IFF_XMIT_DST_RELEASE;
+	dev->priv_flags	       &= ~(IFF_XMIT_DST_RELEASE | IFF_TX_SKB_SHARING);
 	dev->netdev_ops		= &macvlan_netdev_ops;
 	dev->destructor		= free_netdev;
 	dev->header_ops		= &macvlan_hard_header_ops,
drivers/net/niu.c +2 -2
index cc25bff..2f8c351 100644
@@ -9196,7 +9196,7 @@ static int __devinit niu_ldg_init(struct niu *np)
 
 	first_chan = 0;
 	for (i = 0; i < port; i++)
-		first_chan += parent->rxchan_per_port[port];
+		first_chan += parent->rxchan_per_port[i];
 	num_chan = parent->rxchan_per_port[port];
 
 	for (i = first_chan; i < (first_chan + num_chan); i++) {
@@ -9212,7 +9212,7 @@ static int __devinit niu_ldg_init(struct niu *np)
 
 	first_chan = 0;
 	for (i = 0; i < port; i++)
-		first_chan += parent->txchan_per_port[port];
+		first_chan += parent->txchan_per_port[i];
 	num_chan = parent->txchan_per_port[port];
 	for (i = first_chan; i < (first_chan + num_chan); i++) {
 		err = niu_ldg_assign_ldn(np, parent,
drivers/net/phy/dp83640.c +2 -3
index 2cd8dc5..cb6e0b4 100644
@@ -34,8 +34,7 @@
 #define PAGESEL		0x13
 #define LAYER4		0x02
 #define LAYER2		0x01
-#define MAX_RXTS	4
-#define MAX_TXTS	4
+#define MAX_RXTS	64
 #define N_EXT_TS	1
 #define PSF_PTPVER	2
 #define PSF_EVNT	0x4000
@@ -218,7 +217,7 @@ static void phy2rxts(struct phy_rxts *p, struct rxts *rxts)
 	rxts->seqid = p->seqid;
 	rxts->msgtype = (p->msgtype >> 12) & 0xf;
 	rxts->hash = p->msgtype & 0x0fff;
-	rxts->tmo = jiffies + HZ;
+	rxts->tmo = jiffies + 2;
 }
 
 static u64 phy2txts(struct phy_txts *p)
drivers/net/r8169.c +1 -0
index 5990621..5f838ef 100644
@@ -236,6 +236,7 @@ static DEFINE_PCI_DEVICE_TABLE(rtl8169_pci_tbl) = {
 	{ PCI_DEVICE(PCI_VENDOR_ID_REALTEK,	0x8168), 0, 0, RTL_CFG_1 },
 	{ PCI_DEVICE(PCI_VENDOR_ID_REALTEK,	0x8169), 0, 0, RTL_CFG_0 },
 	{ PCI_DEVICE(PCI_VENDOR_ID_DLINK,	0x4300), 0, 0, RTL_CFG_0 },
+	{ PCI_DEVICE(PCI_VENDOR_ID_DLINK,	0x4302), 0, 0, RTL_CFG_0 },
 	{ PCI_DEVICE(PCI_VENDOR_ID_AT,		0xc107), 0, 0, RTL_CFG_0 },
 	{ PCI_DEVICE(0x16ec,			0x0116), 0, 0, RTL_CFG_0 },
 	{ PCI_VENDOR_ID_LINKSYS,		0x1032,
drivers/net/sis190.c +11 -1
index b436e00..f6d26ab 100644
@@ -1824,6 +1824,16 @@ static int sis190_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
 		generic_mii_ioctl(&tp->mii_if, if_mii(ifr), cmd, NULL);
 }
 
+static int sis190_mac_addr(struct net_device  *dev, void *p)
+{
+	int rc;
+
+	rc = eth_mac_addr(dev, p);
+	if (!rc)
+		sis190_init_rxfilter(dev);
+	return rc;
+}
+
 static const struct net_device_ops sis190_netdev_ops = {
 	.ndo_open		= sis190_open,
 	.ndo_stop		= sis190_close,
@@ -1832,7 +1842,7 @@ static const struct net_device_ops sis190_netdev_ops = {
 	.ndo_tx_timeout		= sis190_tx_timeout,
 	.ndo_set_multicast_list = sis190_set_rx_mode,
 	.ndo_change_mtu		= eth_change_mtu,
-	.ndo_set_mac_address 	= eth_mac_addr,
+	.ndo_set_mac_address	= sis190_mac_addr,
 	.ndo_validate_addr	= eth_validate_addr,
 #ifdef CONFIG_NET_POLL_CONTROLLER
 	.ndo_poll_controller	 = sis190_netpoll,
drivers/net/tun.c +1 -0
index 5235f48..fb50e5a 100644
@@ -528,6 +528,7 @@ static void tun_net_init(struct net_device *dev)
 		dev->netdev_ops = &tap_netdev_ops;
 		/* Ethernet TAP Device */
 		ether_setup(dev);
+		dev->priv_flags &= ~IFF_TX_SKB_SHARING;
 
 		random_ether_addr(dev->dev_addr);
 
drivers/net/veth.c +2 -0
index 8461576..4bf7c6d 100644
@@ -262,6 +262,8 @@ static void veth_setup(struct net_device *dev)
 {
 	ether_setup(dev);
 
+	dev->priv_flags &= ~IFF_TX_SKB_SHARING;
+
 	dev->netdev_ops = &veth_netdev_ops;
 	dev->ethtool_ops = &veth_ethtool_ops;
 	dev->features |= NETIF_F_LLTX;
drivers/net/wan/hdlc_fr.c +3 -2
index fc433f2..13f9997 100644
@@ -1083,9 +1083,10 @@ static int fr_add_pvc(struct net_device *frad, unsigned int dlci, int type)
 
 	used = pvc_is_used(pvc);
 
-	if (type == ARPHRD_ETHER)
+	if (type == ARPHRD_ETHER) {
 		dev = alloc_netdev(0, "pvceth%d", ether_setup);
-	else
+		dev->priv_flags &= ~IFF_TX_SKB_SHARING;
+	} else
 		dev = alloc_netdev(0, "pvc%d", pvc_setup);
 
 	if (!dev) {
drivers/net/wireless/airo.c +1 -0
index 55cf71f..e1b3e3c 100644
@@ -2823,6 +2823,7 @@ static struct net_device *_init_airo_card( unsigned short irq, int port,
 	dev->wireless_data = &ai->wireless_data;
 	dev->irq = irq;
 	dev->base_addr = port;
+	dev->priv_flags &= ~IFF_TX_SKB_SHARING;
 
 	SET_NETDEV_DEV(dev, dmdev);
 
drivers/net/wireless/ath/ath9k/ar9002_hw.c +1 -5
index f344cc2..c32f9d1 100644
@@ -309,11 +309,7 @@ static void ar9002_hw_configpcipowersave(struct ath_hw *ah,
 	u8 i;
 	u32 val;
 
-	if (ah->is_pciexpress != true)
-		return;
-
-	/* Do not touch SerDes registers */
-	if (ah->config.pcie_powersave_enable == 2)
+	if (ah->is_pciexpress != true || ah->aspm_enabled != true)
 		return;
 
 	/* Nothing to do on restore for 11N */
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c +3 -3
index ff8150e..7e07f0f 100644
@@ -306,7 +306,7 @@ static const struct ar9300_eeprom ar9300_default = {
 		 { { CTL(60, 0), CTL(60, 1), CTL(60, 0), CTL(60, 0) } },
 		 { { CTL(60, 1), CTL(60, 0), CTL(60, 0), CTL(60, 1) } },
 
-		 { { CTL(60, 1), CTL(60, 0), CTL(0, 0), CTL(0, 0) } },
+		 { { CTL(60, 1), CTL(60, 0), CTL(60, 0), CTL(60, 0) } },
 		 { { CTL(60, 0), CTL(60, 1), CTL(60, 0), CTL(60, 0) } },
 		 { { CTL(60, 0), CTL(60, 1), CTL(60, 0), CTL(60, 0) } },
 
@@ -883,7 +883,7 @@ static const struct ar9300_eeprom ar9300_x113 = {
 		 { { CTL(60, 0), CTL(60, 1), CTL(60, 0), CTL(60, 0) } },
 		 { { CTL(60, 1), CTL(60, 0), CTL(60, 0), CTL(60, 1) } },
 
-		 { { CTL(60, 1), CTL(60, 0), CTL(0, 0), CTL(0, 0) } },
+		 { { CTL(60, 1), CTL(60, 0), CTL(60, 0), CTL(60, 0) } },
 		 { { CTL(60, 0), CTL(60, 1), CTL(60, 0), CTL(60, 0) } },
 		 { { CTL(60, 0), CTL(60, 1), CTL(60, 0), CTL(60, 0) } },
 
@@ -2039,7 +2039,7 @@ static const struct ar9300_eeprom ar9300_x112 = {
 		{ { CTL(60, 0), CTL(60, 1), CTL(60, 0), CTL(60, 0) } },
 		{ { CTL(60, 1), CTL(60, 0), CTL(60, 0), CTL(60, 1) } },
 
-		{ { CTL(60, 1), CTL(60, 0), CTL(0, 0), CTL(0, 0) } },
+		{ { CTL(60, 1), CTL(60, 0), CTL(60, 0), CTL(60, 0) } },
 		{ { CTL(60, 0), CTL(60, 1), CTL(60, 0), CTL(60, 0) } },
 		{ { CTL(60, 0), CTL(60, 1), CTL(60, 0), CTL(60, 0) } },
 
drivers/net/wireless/ath/ath9k/ar9003_hw.c +1 -5
index 392bf0f..7e02fb4 100644
@@ -351,11 +351,7 @@ static void ar9003_hw_configpcipowersave(struct ath_hw *ah,
 					 int restore,
 					 int power_off)
 {
-	if (ah->is_pciexpress != true)
-		return;
-
-	/* Do not touch SerDes registers */
-	if (ah->config.pcie_powersave_enable == 2)
+	if (ah->is_pciexpress != true || ah->aspm_enabled != true)
 		return;
 
 	/* Nothing to do on restore for 11N */
drivers/net/wireless/ath/ath9k/ar9003_phy.h +1 -1
index 443090d..efdbe98 100644
@@ -848,7 +848,7 @@
 #define AR_PHY_TPC_11_B1         (AR_SM1_BASE + 0x220)
 #define AR_PHY_PDADC_TAB_1       (AR_SM1_BASE + 0x240)
 #define AR_PHY_TX_IQCAL_STATUS_B1   (AR_SM1_BASE + 0x48c)
-#define AR_PHY_TX_IQCAL_CORR_COEFF_B1(_i)    (AR_SM_BASE + 0x450 + ((_i) << 2))
+#define AR_PHY_TX_IQCAL_CORR_COEFF_B1(_i)    (AR_SM1_BASE + 0x450 + ((_i) << 2))
 
 /*
  * Channel 2 Register Map
drivers/net/wireless/ath/ath9k/hw.c +9 -2
index 1be7c8b..03900ca 100644
@@ -299,6 +299,14 @@ static void ath9k_hw_disablepcie(struct ath_hw *ah)
 	REG_WRITE(ah, AR_PCIE_SERDES2, 0x00000000);
 }
 
+static void ath9k_hw_aspm_init(struct ath_hw *ah)
+{
+	struct ath_common *common = ath9k_hw_common(ah);
+
+	if (common->bus_ops->aspm_init)
+		common->bus_ops->aspm_init(common);
+}
+
 /* This should work for all families including legacy */
 static bool ath9k_hw_chip_test(struct ath_hw *ah)
 {
@@ -359,7 +367,6 @@ static void ath9k_hw_init_config(struct ath_hw *ah)
 	ah->config.additional_swba_backoff = 0;
 	ah->config.ack_6mb = 0x0;
 	ah->config.cwm_ignore_extcca = 0;
-	ah->config.pcie_powersave_enable = 0;
 	ah->config.pcie_clock_req = 0;
 	ah->config.pcie_waen = 0;
 	ah->config.analog_shiftreg = 1;
@@ -577,7 +584,7 @@ static int __ath9k_hw_init(struct ath_hw *ah)
 
 
 	if (ah->is_pciexpress)
-		ath9k_hw_configpcipowersave(ah, 0, 0);
+		ath9k_hw_aspm_init(ah);
 	else
 		ath9k_hw_disablepcie(ah);
 
drivers/net/wireless/ath/ath9k/hw.h +2 -1
index 4b157c5..939cc9d 100644
@@ -215,7 +215,6 @@ struct ath9k_ops_config {
 	int additional_swba_backoff;
 	int ack_6mb;
 	u32 cwm_ignore_extcca;
-	u8 pcie_powersave_enable;
 	bool pcieSerDesWrite;
 	u8 pcie_clock_req;
 	u32 pcie_waen;
@@ -671,6 +670,7 @@ struct ath_hw {
 
 	bool sw_mgmt_crypto;
 	bool is_pciexpress;
+	bool aspm_enabled;
 	bool is_monitoring;
 	bool need_an_top2_fixup;
 	u16 tx_trig_level;
@@ -870,6 +870,7 @@ struct ath_bus_ops {
 	bool (*eeprom_read)(struct ath_common *common, u32 off, u16 *data);
 	void (*bt_coex_prep)(struct ath_common *common);
 	void (*extn_synch_en)(struct ath_common *common);
+	void (*aspm_init)(struct ath_common *common);
 };
 
 static inline struct ath_common *ath9k_hw_common(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/init.c +2 -0
index 45c585a..5a9fd21 100644
@@ -665,8 +665,10 @@ static void ath9k_init_band_txpower(struct ath_softc *sc, int band)
 static void ath9k_init_txpower_limits(struct ath_softc *sc)
 {
 	struct ath_hw *ah = sc->sc_ah;
+	struct ath_common *common = ath9k_hw_common(sc->sc_ah);
[… more lines in the raw message]

Lines of this file are not shown. View the raw message.

drivers/net/wireless/ath/ath9k/pci.c +27 -0
index 3bad0b2..be4ea13 100644

Lines of this file are not shown. View the raw message.

drivers/net/wireless/hostap/hostap_main.c +1 -0
index d508482..89a116f 100644

Lines of this file are not shown. View the raw message.

drivers/net/wireless/iwlegacy/iwl-3945.c +5 -1
index d096dc2..dcc1552 100644

Lines of this file are not shown. View the raw message.

drivers/net/wireless/iwlegacy/iwl-4965.c +6 -2
index facc94e..0a1babb 100644

Lines of this file are not shown. View the raw message.

drivers/net/wireless/iwlwifi/iwl-5000.c +1 -0
index e816c27..f1c3f49 100644

Lines of this file are not shown. View the raw message.

drivers/net/wireless/iwlwifi/iwl-core.h +2 -0
index a54d416..b76996a 100644

Lines of this file are not shown. View the raw message.

drivers/net/wireless/iwlwifi/iwl-power.c +2 -1
index 595c930..4a05a6a 100644

Lines of this file are not shown. View the raw message.

drivers/net/wireless/rt2x00/rt2800lib.c +1 -2
index 2a6aa85..5a45228 100644

Lines of this file are not shown. View the raw message.

drivers/net/wireless/rt2x00/rt2x00mac.c +3 -2
index 93bec14..a76fdbe 100644

Lines of this file are not shown. View the raw message.

drivers/net/wireless/rtlwifi/pci.c +11 -9
index 254b64b..c872a23 100644

Lines of this file are not shown. View the raw message.

drivers/platform/x86/asus-wmi.c +11 -6
index 3c7857c..e1678b9 100644

Lines of this file are not shown. View the raw message.

drivers/scsi/mpt2sas/mpt2sas_base.c +25 -40

65 lines not on this page · raw message

drivers/scsi/mpt2sas/mpt2sas_base.h +50 -3

53 lines not on this page · raw message

drivers/scsi/mpt2sas/mpt2sas_ctl.c +5 -5
index 437c2d9..d1c3bba 100644

Lines of this file are not shown. View the raw message.

drivers/scsi/mpt2sas/mpt2sas_debug.h +1 -1
index 3dcddfe..9731f8e 100644

Lines of this file are not shown. View the raw message.

drivers/scsi/mpt2sas/mpt2sas_scsih.c +6 -6
index a7dbc68..e327a3c 100644

Lines of this file are not shown. View the raw message.

drivers/scsi/mpt2sas/mpt2sas_transport.c +9 -15
index cb1cdec..15c7980 100644

Lines of this file are not shown. View the raw message.

drivers/staging/ath6kl/os/linux/ar6000_drv.c +1 -0
index aa97efc..62487a7 100644

Lines of this file are not shown. View the raw message.

fs/cifs/cifsfs.c +4 -0
index bc4b12c..fc7e57b 100644

Lines of this file are not shown. View the raw message.

fs/cifs/inode.c +2 -12
index 9b018c8..a7b2dcd 100644

Lines of this file are not shown. View the raw message.

fs/cifs/transport.c +2 -0
index 147aa22..c1b9c4b 100644

Lines of this file are not shown. View the raw message.

fs/ecryptfs/main.c +21 -2
index 9f1bb74..b4a6bef 100644

Lines of this file are not shown. View the raw message.

fs/ecryptfs/read_write.c +10 -8
index 85d4309..3745f7c 100644

Lines of this file are not shown. View the raw message.

fs/ext3/namei.c +4 -2
index 34b6d9b..e5a7111 100644

Lines of this file are not shown. View the raw message.

fs/ext4/namei.c +4 -2
index b754b77..458a394 100644

Lines of this file are not shown. View the raw message.

include/drm/drm_crtc.h +1 -0
index 33d12f8..0ec3687 100644

Lines of this file are not shown. View the raw message.

include/drm/i915_drm.h +1 -1
index c4d6dbf..28c0d11 100644

Lines of this file are not shown. View the raw message.

include/linux/cryptohash.h +5 -0
index ec78a4b..d2984fb 100644

Lines of this file are not shown. View the raw message.

include/linux/if.h +2 -0
index 3bc63e6..03489ca 100644

Lines of this file are not shown. View the raw message.

include/linux/mm.h +10 -2
index 1036614..ec6e33d 100644

Lines of this file are not shown. View the raw message.

include/linux/random.h +0 -11
index fb7ab9d..d13059f 100644

Lines of this file are not shown. View the raw message.

include/net/ipv6.h +1 -11
index c033ed0..3b5ac1f 100644

Lines of this file are not shown. View the raw message.

include/net/secure_seq.h new file +20 -0
new file mode 100644
index 0000000..d97f689

Lines of this file are not shown. View the raw message.

include/net/transp_v6.h +2 -0
index 5271a74..45ce307 100644

Lines of this file are not shown. View the raw message.

include/xen/interface/xen.h +39 -0
index 70213b4..6acd9ce 100644

Lines of this file are not shown. View the raw message.

kernel/futex.c +42 -12

54 lines not on this page · raw message

lib/Makefile +1 -1
index 6b597fd..578414a 100644

Lines of this file are not shown. View the raw message.

lib/md5.c new file +95 -0

95 lines not on this page · raw message

net/8021q/vlan_dev.c +1 -1
index 6e82148..5b4f51d 100644

Lines of this file are not shown. View the raw message.

net/bluetooth/bnep/netdev.c +1 -0
index 8c100c9..d4f5dff 100644

Lines of this file are not shown. View the raw message.

net/core/Makefile +1 -1
index 8a04dd2..0d357b1 100644

Lines of this file are not shown. View the raw message.

net/core/link_watch.c +1 -1
index a7b3421..357bd4e 100644

Lines of this file are not shown. View the raw message.

net/core/pktgen.c +5 -3
index f76079c..e35a6fb 100644

Lines of this file are not shown. View the raw message.

net/core/secure_seq.c new file +184 -0

184 lines not on this page · raw message

net/dccp/ipv4.c +1 -0
index 8c36adf..332639b 100644

Lines of this file are not shown. View the raw message.

net/dccp/ipv6.c +2 -7
index 8dc4348..b74f761 100644

Lines of this file are not shown. View the raw message.

net/ethernet/eth.c +1 -0
index 44d2b42..2780e9b 100644

Lines of this file are not shown. View the raw message.

net/ipv4/devinet.c +8 -8
index 0d4a184..4155abc 100644

Lines of this file are not shown. View the raw message.

net/ipv4/gre.c +6 -15
index c6933f2..3e3f75d 100644

Lines of this file are not shown. View the raw message.

net/ipv4/icmp.c +8 -6
index 5395e45..23ef31b 100644

Lines of this file are not shown. View the raw message.

net/ipv4/igmp.c +1 -1
index f1d27f6..283c0a2 100644

Lines of this file are not shown. View the raw message.

net/ipv4/inet_hashtables.c +1 -0
index 3c0369a..984ec65 100644

Lines of this file are not shown. View the raw message.

net/ipv4/inetpeer.c +1 -0
index ce616d9..6877645 100644

Lines of this file are not shown. View the raw message.

net/ipv4/ip_output.c +3 -3
index 84f26e8..0c99db4 100644

Lines of this file are not shown. View the raw message.

net/ipv4/ipmr.c +1 -1
index 30a7763..f81af8d 100644

Lines of this file are not shown. View the raw message.

net/ipv4/netfilter/nf_nat_proto_common.c +1 -0
index 3e61faf..f52d41e 100644

Lines of this file are not shown. View the raw message.

net/ipv4/route.c +4 -2
index aa13ef1..cdabdbf 100644

Lines of this file are not shown. View the raw message.

net/ipv4/tcp_ipv4.c +1 -0
index 708dc20..b3e6956 100644

Lines of this file are not shown. View the raw message.

net/ipv6/af_inet6.c +2 -0
index 3b5669a..5591236 100644

Lines of this file are not shown. View the raw message.

net/ipv6/inet6_hashtables.c +1 -0
index b531972..73f1a00 100644

Lines of this file are not shown. View the raw message.

net/ipv6/ip6_output.c +35 -5
index 9d4b165..1661296 100644

Lines of this file are not shown. View the raw message.

net/ipv6/tcp_ipv6.c +1 -0
index 87551ca..7c43e86 100644

Lines of this file are not shown. View the raw message.

net/ipv6/udp.c +1 -1
index 328985c..29213b5 100644

Lines of this file are not shown. View the raw message.

net/l2tp/l2tp_eth.c +1 -1
index a8193f5..d2726a7 100644

Lines of this file are not shown. View the raw message.

net/mac80211/iface.c +1 -0
index dee30ae..895eec1 100644

Lines of this file are not shown. View the raw message.

net/netfilter/ipvs/ip_vs_ctl.c +1 -0
index 699c79a..a178cb3 100644

Lines of this file are not shown. View the raw message.

net/sched/sch_sfq.c +6 -1
index b6ea6af..69400e3 100644

Lines of this file are not shown. View the raw message.

net/socket.c +40 -33

73 lines not on this page · raw message

net/xfrm/xfrm_algo.c +2 -2
index 58064d9..791ab2e 100644

Lines of this file are not shown. View the raw message.

sound/core/timer.c +2 -0
index 7c1cbf0..950eed0 100644

Lines of this file are not shown. View the raw message.

sound/soc/codecs/sgtl5000.c +35 -93

128 lines not on this page · raw message

sound/usb/caiaq/input.c +1 -1
index 4432ef7..a213813 100644

Lines of this file are not shown. View the raw message.

sound/usb/endpoint.c +1 -1
index b0ef9f5..05842c8 100644

Lines of this file are not shown. View the raw message.

sound/usb/mixer.c +13 -12
index c22fa76..c04d7c7 100644

Lines of this file are not shown. View the raw message.

sound/usb/mixer.h +1 -0
index ae1a14d..81b2d8a 100644

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

Part of the diff is not shown here. View the raw message.

#2 lore raw

Makefile line 4

Quoted 11 lines
Makefile +1 -1
index f124b18..794fa28 100644
@@ -1,6 +1,6 @@
 VERSION = 3
 PATCHLEVEL = 0
-SUBLEVEL = 1
+SUBLEVEL = 2
 EXTRAVERSION =

Isn't it time we remove that EXTRAVERSION from the stable kernels now that they are using SUBLEVEL ?

Signature · 3 lines
Jesper Juhl <[email protected]>       http://www.chaosbits.net/
Don't top-post http://www.catb.org/jargon/html/T/top-post.html
Plain text mails only, please.
#3 lore raw
Quoted 14 lines · Jesper Juhl

Makefile line 4

Quoted 11 lines
Makefile +1 -1
index f124b18..794fa28 100644
@@ -1,6 +1,6 @@
 VERSION = 3
 PATCHLEVEL = 0
-SUBLEVEL = 1
+SUBLEVEL = 2
 EXTRAVERSION =

Isn't it time we remove that EXTRAVERSION from the stable kernels now that they are using SUBLEVEL ?

It can be left empty here, it's still used a lot when doing specific builds that need to embed a variant name (make bzImage modules EXTRAVERSION=xxx).

Regards,
Willy

#4 lore raw
Quoted 16 lines · Willy Tarreau
Quoted 14 lines · Jesper Juhl
Quoted 11 lines
Makefile +0 -0
index f124b18..794fa28 100644
@@ -1,6 +1,6 @@

 VERSION = 3
 PATCHLEVEL = 0

Makefile +1 -1
-SUBLEVEL = 1
+SUBLEVEL = 2

 EXTRAVERSION =

Isn't it time we remove that EXTRAVERSION from the stable kernels now that they are using SUBLEVEL ?

Quoted 2 lines

It can be left empty here, it's still used a lot when doing specific builds that need to embed a variant name (make bzImage modules EXTRAVERSION=xxx).

Distros still use it as well. We use it to add in the RPM release number.

josh

#5 lore raw
In reply to Greg KH
Quoted 9 lines · Greg KH

I'm announcing the release of the 3.0.2 kernel.

All users of the 3.0 kernel series must upgrade.

The updated 3.0.y git tree can be found at:

        git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-3.0.y.git
and can be browsed at the normal kernel.org git web browser:
        http://git.kernel.org/?p=linux/kernel/git/stable/linux-3.0.y.git;a=summary

Kernel.org still shows 3.0.1, although the gitweb link points to the correct place repository and I can see 3.0.2 there. Is this some side-effect of switching to the linux-3.0.y.git repository? (the -2.6 stable repo is at 3.0.1).

Best regards,
--Edwin

#6 lore raw
Quoted 12 lines · Török Edwin
Quoted 9 lines · Greg KH

I'm announcing the release of the 3.0.2 kernel.

All users of the 3.0 kernel series must upgrade.

The updated 3.0.y git tree can be found at:

        git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-3.0.y.git
and can be browsed at the normal kernel.org git web browser:
        http://git.kernel.org/?p=linux/kernel/git/stable/linux-3.0.y.git;a=summary
Quoted 2 lines

Kernel.org still shows 3.0.1, although the gitweb link points to the correct place repository and I can see 3.0.2 there.

There are already a gzip compressed tarball and patches in kernel.org/pub/linux/kernel/v3.0/, but no bzip2 compressed versions.

Quoted 2 lines

Is this some side-effect of switching to the linux-3.0.y.git repository? (the -2.6 stable repo is at 3.0.1).

I doubt that, since 3.0.1 had no such problems. And updated tarballs/patches for 2.6.3[23]-longterm haven't appeared at all yet, although those are in git as well. :-(

Cheers,
Sven

author
#7 lore raw
In reply to Török Edwin
Quoted 5 lines · Török Edwin
Quoted 4 lines · Greg KH

I'm announcing the release of the 3.0.2 kernel.

All users of the 3.0 kernel series must upgrade.

Quoted 8 lines
Quoted 5 lines

The updated 3.0.y git tree can be found at:

        git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-3.0.y.git
and can be browsed at the normal kernel.org git web browser:
        http://git.kernel.org/?p=linux/kernel/git/stable/linux-3.0.y.git;a=summary

Kernel.org still shows 3.0.1, although the gitweb link points to the correct place repository and I can see 3.0.2 there. Is this some side-effect of switching to the linux-3.0.y.git repository? (the -2.6 stable repo is at 3.0.1).

No, kernel.org is still having mirroring problems, please just give it some time, it will show up eventually.

greg k-h