Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4157368e authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull arch/tile bug fixes from Chris Metcalf:
 "This includes Paul Gortmaker's change to fix the <asm/system.h>
  disintegration issues on tile, a fix to unbreak the tilepro ethernet
  driver, and a backlog of bugfix-only changes from internal Tilera
  development over the last few months.

  They have all been to LKML and on linux-next for the last few days.
  The EDAC change to MAINTAINERS is an oddity but discussion on the
  linux-edac list suggested I ask you to pull that change through my
  tree since they don't have a tree to pull edac changes from at the
  moment."

* 'stable' of git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile: (39 commits)
  drivers/net/ethernet/tile: fix netdev_alloc_skb() bombing
  MAINTAINERS: update EDAC information
  tilepro ethernet driver: fix a few minor issues
  tile-srom.c driver: minor code cleanup
  edac: say "TILEGx" not "TILEPro" for the tilegx edac driver
  arch/tile: avoid accidentally unmasking NMI-type interrupt accidentally
  arch/tile: remove bogus performance optimization
  arch/tile: return SIGBUS for addresses that are unaligned AND invalid
  arch/tile: fix finv_buffer_remote() for tilegx
  arch/tile: use atomic exchange in arch_write_unlock()
  arch/tile: stop mentioning the "kvm" subdirectory
  arch/tile: export the page_home() function.
  arch/tile: fix pointer cast in cacheflush.c
  arch/tile: fix single-stepping over swint1 instructions on tilegx
  arch/tile: implement panic_smp_self_stop()
  arch/tile: add "nop" after "nap" to help GX idle power draw
  arch/tile: use proper memparse() for "maxmem" options
  arch/tile: fix up locking in pgtable.c slightly
  arch/tile: don't leak kernel memory when we unload modules
  arch/tile: fix bug in delay_backoff()
  ...
parents 9479f0f8 00a62d4b
Loading
Loading
Loading
Loading
+11 −11
Original line number Diff line number Diff line
@@ -2450,17 +2450,17 @@ F: fs/ecryptfs/

EDAC-CORE
M:	Doug Thompson <dougthompson@xmission.com>
L:	bluesmoke-devel@lists.sourceforge.net (moderated for non-subscribers)
L:	linux-edac@vger.kernel.org
W:	bluesmoke.sourceforge.net
S:	Supported
F:	Documentation/edac.txt
F:	drivers/edac/edac_*
F:	drivers/edac/
F:	include/linux/edac.h

EDAC-AMD64
M:	Doug Thompson <dougthompson@xmission.com>
M:	Borislav Petkov <borislav.petkov@amd.com>
L:	bluesmoke-devel@lists.sourceforge.net (moderated for non-subscribers)
L:	linux-edac@vger.kernel.org
W:	bluesmoke.sourceforge.net
S:	Supported
F:	drivers/edac/amd64_edac*
@@ -2468,35 +2468,35 @@ F: drivers/edac/amd64_edac*
EDAC-E752X
M:	Mark Gross <mark.gross@intel.com>
M:	Doug Thompson <dougthompson@xmission.com>
L:	bluesmoke-devel@lists.sourceforge.net (moderated for non-subscribers)
L:	linux-edac@vger.kernel.org
W:	bluesmoke.sourceforge.net
S:	Maintained
F:	drivers/edac/e752x_edac.c

EDAC-E7XXX
M:	Doug Thompson <dougthompson@xmission.com>
L:	bluesmoke-devel@lists.sourceforge.net (moderated for non-subscribers)
L:	linux-edac@vger.kernel.org
W:	bluesmoke.sourceforge.net
S:	Maintained
F:	drivers/edac/e7xxx_edac.c

EDAC-I82443BXGX
M:	Tim Small <tim@buttersideup.com>
L:	bluesmoke-devel@lists.sourceforge.net (moderated for non-subscribers)
L:	linux-edac@vger.kernel.org
W:	bluesmoke.sourceforge.net
S:	Maintained
F:	drivers/edac/i82443bxgx_edac.c

EDAC-I3000
M:	Jason Uhlenkott <juhlenko@akamai.com>
L:	bluesmoke-devel@lists.sourceforge.net (moderated for non-subscribers)
L:	linux-edac@vger.kernel.org
W:	bluesmoke.sourceforge.net
S:	Maintained
F:	drivers/edac/i3000_edac.c

EDAC-I5000
M:	Doug Thompson <dougthompson@xmission.com>
L:	bluesmoke-devel@lists.sourceforge.net (moderated for non-subscribers)
L:	linux-edac@vger.kernel.org
W:	bluesmoke.sourceforge.net
S:	Maintained
F:	drivers/edac/i5000_edac.c
@@ -2525,21 +2525,21 @@ F: drivers/edac/i7core_edac.c
EDAC-I82975X
M:	Ranganathan Desikan <ravi@jetztechnologies.com>
M:	"Arvind R." <arvino55@gmail.com>
L:	bluesmoke-devel@lists.sourceforge.net (moderated for non-subscribers)
L:	linux-edac@vger.kernel.org
W:	bluesmoke.sourceforge.net
S:	Maintained
F:	drivers/edac/i82975x_edac.c

EDAC-PASEMI
M:	Egor Martovetsky <egor@pasemi.com>
L:	bluesmoke-devel@lists.sourceforge.net (moderated for non-subscribers)
L:	linux-edac@vger.kernel.org
W:	bluesmoke.sourceforge.net
S:	Maintained
F:	drivers/edac/pasemi_edac.c

EDAC-R82600
M:	Tim Small <tim@buttersideup.com>
L:	bluesmoke-devel@lists.sourceforge.net (moderated for non-subscribers)
L:	linux-edac@vger.kernel.org
W:	bluesmoke.sourceforge.net
S:	Maintained
F:	drivers/edac/r82600_edac.c
+6 −2
Original line number Diff line number Diff line
@@ -12,7 +12,7 @@ config TILE
	select GENERIC_PENDING_IRQ if SMP
	select GENERIC_IRQ_SHOW
	select SYS_HYPERVISOR
	select ARCH_HAVE_NMI_SAFE_CMPXCHG if !M386
	select ARCH_HAVE_NMI_SAFE_CMPXCHG

# FIXME: investigate whether we need/want these options.
#	select HAVE_IOREMAP_PROT
@@ -69,6 +69,9 @@ config ARCH_PHYS_ADDR_T_64BIT
config ARCH_DMA_ADDR_T_64BIT
	def_bool y

config NEED_DMA_MAP_STATE
	def_bool y

config LOCKDEP_SUPPORT
	def_bool y

@@ -118,7 +121,7 @@ config 64BIT

config ARCH_DEFCONFIG
	string
	default "arch/tile/configs/tile_defconfig" if !TILEGX
	default "arch/tile/configs/tilepro_defconfig" if !TILEGX
	default "arch/tile/configs/tilegx_defconfig" if TILEGX

source "init/Kconfig"
@@ -240,6 +243,7 @@ endchoice

config PAGE_OFFSET
	hex
	depends on !64BIT
	default 0xF0000000 if VMSPLIT_3_75G
	default 0xE0000000 if VMSPLIT_3_5G
	default 0xB0000000 if VMSPLIT_2_75G
+2 −3
Original line number Diff line number Diff line
@@ -30,7 +30,8 @@ ifneq ($(CONFIG_DEBUG_EXTRA_FLAGS),"")
KBUILD_CFLAGS   += $(CONFIG_DEBUG_EXTRA_FLAGS)
endif

LIBGCC_PATH     := $(shell $(CC) $(KBUILD_CFLAGS) -print-libgcc-file-name)
LIBGCC_PATH     := \
  $(shell $(CC) $(KBUILD_CFLAGS) $(KCFLAGS) -print-libgcc-file-name)

# Provide the path to use for "make defconfig".
KBUILD_DEFCONFIG := $(ARCH)_defconfig
@@ -53,8 +54,6 @@ libs-y += $(LIBGCC_PATH)
# See arch/tile/Kbuild for content of core part of the kernel
core-y		+= arch/tile/

core-$(CONFIG_KVM) += arch/tile/kvm/

ifdef TILERA_ROOT
INSTALL_PATH ?= $(TILERA_ROOT)/tile/boot
endif
+2 −2
Original line number Diff line number Diff line
@@ -60,8 +60,8 @@
	_concat4(SPR_IPI_EVENT_, CONFIG_KERNEL_PL,,)
#define SPR_IPI_EVENT_RESET_K \
	_concat4(SPR_IPI_EVENT_RESET_, CONFIG_KERNEL_PL,,)
#define SPR_IPI_MASK_SET_K \
	_concat4(SPR_IPI_MASK_SET_, CONFIG_KERNEL_PL,,)
#define SPR_IPI_EVENT_SET_K \
	_concat4(SPR_IPI_EVENT_SET_, CONFIG_KERNEL_PL,,)
#define INT_IPI_K \
	_concat4(INT_IPI_, CONFIG_KERNEL_PL,,)

+2 −48
Original line number Diff line number Diff line
@@ -17,6 +17,8 @@
#ifndef _ASM_TILE_ATOMIC_H
#define _ASM_TILE_ATOMIC_H

#include <asm/cmpxchg.h>

#ifndef __ASSEMBLY__

#include <linux/compiler.h>
@@ -121,54 +123,6 @@ static inline int atomic_read(const atomic_t *v)
 */
#define atomic_add_negative(i, v)	(atomic_add_return((i), (v)) < 0)

/* Nonexistent functions intended to cause link errors. */
extern unsigned long __xchg_called_with_bad_pointer(void);
extern unsigned long __cmpxchg_called_with_bad_pointer(void);

#define xchg(ptr, x)							\
	({								\
		typeof(*(ptr)) __x;					\
		switch (sizeof(*(ptr))) {				\
		case 4:							\
			__x = (typeof(__x))(typeof(__x-__x))atomic_xchg( \
				(atomic_t *)(ptr),			\
				(u32)(typeof((x)-(x)))(x));		\
			break;						\
		case 8:							\
			__x = (typeof(__x))(typeof(__x-__x))atomic64_xchg( \
				(atomic64_t *)(ptr),			\
				(u64)(typeof((x)-(x)))(x));		\
			break;						\
		default:						\
			__xchg_called_with_bad_pointer();		\
		}							\
		__x;							\
	})

#define cmpxchg(ptr, o, n)						\
	({								\
		typeof(*(ptr)) __x;					\
		switch (sizeof(*(ptr))) {				\
		case 4:							\
			__x = (typeof(__x))(typeof(__x-__x))atomic_cmpxchg( \
				(atomic_t *)(ptr),			\
				(u32)(typeof((o)-(o)))(o),		\
				(u32)(typeof((n)-(n)))(n));		\
			break;						\
		case 8:							\
			__x = (typeof(__x))(typeof(__x-__x))atomic64_cmpxchg( \
				(atomic64_t *)(ptr),			\
				(u64)(typeof((o)-(o)))(o),		\
				(u64)(typeof((n)-(n)))(n));		\
			break;						\
		default:						\
			__cmpxchg_called_with_bad_pointer();		\
		}							\
		__x;							\
	})

#define tas(ptr) (xchg((ptr), 1))

#endif /* __ASSEMBLY__ */

#ifndef __tilegx__
Loading