All of lore.kernel.org
 help / color / mirror / Atom feed
* [GIT] Sparc
@ 2010-03-29 20:11 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2010-03-29 20:11 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Please pull to get these Sparc fixes, thanks!

The following changes since commit b72c40949b0f04728f2993a1434598d3bad094ea:
  Linus Torvalds (1):
        Merge branch 'for-linus' of git://git.kernel.org/.../jbarnes/pci-2.6

are available in the git repository at:

  master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6.git master

David S. Miller (1):
      sparc64: Properly truncate pt_regs framepointer in perf callback.

Julia Lawall (1):
      arch/sparc/kernel: Use set_cpus_allowed_ptr

Rob Landley (1):
      sparc: Fix use of uid16_t and gid16_t in asm/stat.h

 arch/sparc/include/asm/stat.h    |    4 ++--
 arch/sparc/kernel/perf_event.c   |    2 +-
 arch/sparc/kernel/sysfs.c        |    4 ++--
 arch/sparc/kernel/us2e_cpufreq.c |    8 ++++----
 arch/sparc/kernel/us3_cpufreq.c  |    8 ++++----
 5 files changed, 13 insertions(+), 13 deletions(-)


^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2010-03-29 20:11 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2010-03-29 20:11 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Please pull to get these Sparc fixes, thanks!

The following changes since commit b72c40949b0f04728f2993a1434598d3bad094ea:
  Linus Torvalds (1):
        Merge branch 'for-linus' of git://git.kernel.org/.../jbarnes/pci-2.6

are available in the git repository at:

  master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6.git master

David S. Miller (1):
      sparc64: Properly truncate pt_regs framepointer in perf callback.

Julia Lawall (1):
      arch/sparc/kernel: Use set_cpus_allowed_ptr

Rob Landley (1):
      sparc: Fix use of uid16_t and gid16_t in asm/stat.h

 arch/sparc/include/asm/stat.h    |    4 ++--
 arch/sparc/kernel/perf_event.c   |    2 +-
 arch/sparc/kernel/sysfs.c        |    4 ++--
 arch/sparc/kernel/us2e_cpufreq.c |    8 ++++----
 arch/sparc/kernel/us3_cpufreq.c  |    8 ++++----
 5 files changed, 13 insertions(+), 13 deletions(-)


^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2010-04-04  8:15 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2010-04-04  8:15 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Please pull to get these sparc fixes.

Thanks a lot!

The following changes since commit 5e11611a5d22252f3f9c169a3c9377eac0c32033:
  Linus Torvalds (1):
        Merge master.kernel.org:/home/rmk/linux-2.6-arm

are available in the git repository at:

  master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6.git master

Ben Hutchings (1):
      sparc64: Fix array size reported by vmemmap_populate()

David S. Miller (5):
      sparc: Fix regset register window handling.
      Merge branch 'master' of /home/davem/src/GIT/linux-2.6/
      sparc64: Update defconfig.
      sparc64: Implement perf_arch_fetch_caller_regs
      sunxvr500: Ignore secondary output PCI devices.

Julia Lawall (1):
      drivers/serial/sunsu.c: Correct use after free

 arch/sparc/configs/sparc64_defconfig |   28 +++++++-----
 arch/sparc/kernel/helpers.S          |   75 ++++++++++++++++++++++++++++++++++
 arch/sparc/kernel/ptrace_32.c        |    4 ++
 arch/sparc/kernel/ptrace_64.c        |    4 ++
 arch/sparc/mm/init_64.c              |    2 +-
 drivers/serial/sunsu.c               |    4 +-
 drivers/video/sunxvr500.c            |   24 ++++++++---
 7 files changed, 120 insertions(+), 21 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2010-04-04  8:15 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2010-04-04  8:15 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Please pull to get these sparc fixes.

Thanks a lot!

The following changes since commit 5e11611a5d22252f3f9c169a3c9377eac0c32033:
  Linus Torvalds (1):
        Merge master.kernel.org:/home/rmk/linux-2.6-arm

are available in the git repository at:

  master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6.git master

Ben Hutchings (1):
      sparc64: Fix array size reported by vmemmap_populate()

David S. Miller (5):
      sparc: Fix regset register window handling.
      Merge branch 'master' of /home/davem/src/GIT/linux-2.6/
      sparc64: Update defconfig.
      sparc64: Implement perf_arch_fetch_caller_regs
      sunxvr500: Ignore secondary output PCI devices.

Julia Lawall (1):
      drivers/serial/sunsu.c: Correct use after free

 arch/sparc/configs/sparc64_defconfig |   28 +++++++-----
 arch/sparc/kernel/helpers.S          |   75 ++++++++++++++++++++++++++++++++++
 arch/sparc/kernel/ptrace_32.c        |    4 ++
 arch/sparc/kernel/ptrace_64.c        |    4 ++
 arch/sparc/mm/init_64.c              |    2 +-
 drivers/serial/sunsu.c               |    4 +-
 drivers/video/sunxvr500.c            |   24 ++++++++---
 7 files changed, 120 insertions(+), 21 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2010-04-13 11:43 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2010-04-13 11:43 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


I've spent the last week or so getting ftrace et al. working
again on sparc64.  The NMI scheme I use there was causing all
sorts of issues, but luckily the final fix was very simple.

While I was here debugging this stuff I added function graph
tracer support, as well as support for kmemleak.  Kmemleak
even found a bug :-)

All combinations of features seems to work (perf top with tracers,
lockdep, and kmemleak all enabled for example) and wow is this stuff
super-useful :-)

I merged in your tree to resolve a conflict in lib/Kconfig.debug
since Microblaze added kmemleak support recently too.

Please pull, thanks a lot!

The following changes since commit 0d0fb0f9c5fddef4a10242fe3337f00f528a3099:
  Linus Torvalds (1):
        Linux 2.6.34-rc4

are available in the git repository at:

  master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6.git master

David S. Miller (14):
      sparc64: Use kstack_valid() in die_if_kernel().
      sparc64: Adjust __raw_local_irq_save() to cooperate in NMIs.
      sparc64: Add HAVE_FUNCTION_TRACE_MCOUNT_TEST and tidy up.
      sparc64: Kill CONFIG_STACK_DEBUG code.
      sparc64: Kill unnecessary static on local var in ftrace_call_replace().
      sparc64: Remove profiling from some low-level bits.
      sparc64: Use a seperate counter for timer interrupts and NMI checks, like x86.
      sparc64: Give a stack frame to the ftrace call sites.
      sparc64: Add function graph tracer support.
      sparc64: Support kmemleak.
      sparc64: Add kmemleak annotation to sun4v_build_virq()
      sparc64: Fix memory leak in pci_register_iommu_region().
      Merge branch 'master' of /home/davem/src/GIT/linux-2.6/
      sparc64: Add some more commentary to __raw_local_irq_save()

 arch/sparc/Kconfig                   |    3 +
 arch/sparc/Kconfig.debug             |    5 +-
 arch/sparc/include/asm/cpudata_64.h  |    2 +-
 arch/sparc/include/asm/irqflags_64.h |   23 ++++-
 arch/sparc/kernel/Makefile           |   10 ++-
 arch/sparc/kernel/ftrace.c           |   60 +++++++++++++-
 arch/sparc/kernel/irq_64.c           |   11 ++-
 arch/sparc/kernel/kgdb_64.c          |    3 +-
 arch/sparc/kernel/nmi.c              |    3 +-
 arch/sparc/kernel/pci_common.c       |   11 ++-
 arch/sparc/kernel/pcr.c              |    3 +-
 arch/sparc/kernel/smp_64.c           |   11 ++-
 arch/sparc/kernel/time_64.c          |    4 +-
 arch/sparc/kernel/traps_64.c         |   26 +-----
 arch/sparc/kernel/vmlinux.lds.S      |    5 +
 arch/sparc/lib/mcount.S              |  159 +++++++++++++++------------------
 lib/Kconfig.debug                    |    2 +-
 17 files changed, 206 insertions(+), 135 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2010-04-13 11:43 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2010-04-13 11:43 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


I've spent the last week or so getting ftrace et al. working
again on sparc64.  The NMI scheme I use there was causing all
sorts of issues, but luckily the final fix was very simple.

While I was here debugging this stuff I added function graph
tracer support, as well as support for kmemleak.  Kmemleak
even found a bug :-)

All combinations of features seems to work (perf top with tracers,
lockdep, and kmemleak all enabled for example) and wow is this stuff
super-useful :-)

I merged in your tree to resolve a conflict in lib/Kconfig.debug
since Microblaze added kmemleak support recently too.

Please pull, thanks a lot!

The following changes since commit 0d0fb0f9c5fddef4a10242fe3337f00f528a3099:
  Linus Torvalds (1):
        Linux 2.6.34-rc4

are available in the git repository at:

  master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6.git master

David S. Miller (14):
      sparc64: Use kstack_valid() in die_if_kernel().
      sparc64: Adjust __raw_local_irq_save() to cooperate in NMIs.
      sparc64: Add HAVE_FUNCTION_TRACE_MCOUNT_TEST and tidy up.
      sparc64: Kill CONFIG_STACK_DEBUG code.
      sparc64: Kill unnecessary static on local var in ftrace_call_replace().
      sparc64: Remove profiling from some low-level bits.
      sparc64: Use a seperate counter for timer interrupts and NMI checks, like x86.
      sparc64: Give a stack frame to the ftrace call sites.
      sparc64: Add function graph tracer support.
      sparc64: Support kmemleak.
      sparc64: Add kmemleak annotation to sun4v_build_virq()
      sparc64: Fix memory leak in pci_register_iommu_region().
      Merge branch 'master' of /home/davem/src/GIT/linux-2.6/
      sparc64: Add some more commentary to __raw_local_irq_save()

 arch/sparc/Kconfig                   |    3 +
 arch/sparc/Kconfig.debug             |    5 +-
 arch/sparc/include/asm/cpudata_64.h  |    2 +-
 arch/sparc/include/asm/irqflags_64.h |   23 ++++-
 arch/sparc/kernel/Makefile           |   10 ++-
 arch/sparc/kernel/ftrace.c           |   60 +++++++++++++-
 arch/sparc/kernel/irq_64.c           |   11 ++-
 arch/sparc/kernel/kgdb_64.c          |    3 +-
 arch/sparc/kernel/nmi.c              |    3 +-
 arch/sparc/kernel/pci_common.c       |   11 ++-
 arch/sparc/kernel/pcr.c              |    3 +-
 arch/sparc/kernel/smp_64.c           |   11 ++-
 arch/sparc/kernel/time_64.c          |    4 +-
 arch/sparc/kernel/traps_64.c         |   26 +-----
 arch/sparc/kernel/vmlinux.lds.S      |    5 +
 arch/sparc/lib/mcount.S              |  159 +++++++++++++++------------------
 lib/Kconfig.debug                    |    2 +-
 17 files changed, 206 insertions(+), 135 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2010-05-19 19:50 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2010-05-19 19:50 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Just a few small things, and explicitly set ARCH_SLAB_MINALIGN like we
always should have.

Please pull, thanks!

The following changes since commit 024a6b95181f2df6090975c8a293499d24bf8b28:
  Linus Torvalds (1):
        Merge branch 'davinci-for-linus' of git://git.kernel.org/.../khilman/linux-davinci

are available in the git repository at:

  master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6.git master

David S. Miller (3):
      sparc64: Show stack backtrace from show_regs() just like other platforms.
      sparc64: Fix stack dumping and tracing when function graph is enabled.
      sparc: Define ARCH_SLAB_MINALIGN

Jan Blunck (1):
      drivers/sbus/char/flash.c: flash_read should update ppos instead of file->f_pos

 arch/sparc/include/asm/cache.h |    2 ++
 arch/sparc/kernel/perf_event.c |   14 ++++++++++++++
 arch/sparc/kernel/process_64.c |    1 +
 arch/sparc/kernel/stacktrace.c |   23 ++++++++++++++++++++++-
 arch/sparc/kernel/traps_64.c   |   14 ++++++++++++++
 drivers/sbus/char/flash.c      |    6 +++---
 6 files changed, 56 insertions(+), 4 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2010-05-19 19:50 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2010-05-19 19:50 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Just a few small things, and explicitly set ARCH_SLAB_MINALIGN like we
always should have.

Please pull, thanks!

The following changes since commit 024a6b95181f2df6090975c8a293499d24bf8b28:
  Linus Torvalds (1):
        Merge branch 'davinci-for-linus' of git://git.kernel.org/.../khilman/linux-davinci

are available in the git repository at:

  master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6.git master

David S. Miller (3):
      sparc64: Show stack backtrace from show_regs() just like other platforms.
      sparc64: Fix stack dumping and tracing when function graph is enabled.
      sparc: Define ARCH_SLAB_MINALIGN

Jan Blunck (1):
      drivers/sbus/char/flash.c: flash_read should update ppos instead of file->f_pos

 arch/sparc/include/asm/cache.h |    2 ++
 arch/sparc/kernel/perf_event.c |   14 ++++++++++++++
 arch/sparc/kernel/process_64.c |    1 +
 arch/sparc/kernel/stacktrace.c |   23 ++++++++++++++++++++++-
 arch/sparc/kernel/traps_64.c   |   14 ++++++++++++++
 drivers/sbus/char/flash.c      |    6 +++---
 6 files changed, 56 insertions(+), 4 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] SPARC
  2010-03-29 20:11 ` David Miller
@ 2010-07-21  4:25 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2010-07-21  4:25 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Couple sparc fixes that have piled up over the past few week:

1) L1_CACHE_ALIGN macro unnecessary, from FUJITA Tomonori

2) _FP_FROM_INT() math-emu off-by-one bug that hits sparc and
   other math-emu using platforms.  From Mikael Pettersson.

3) Add missing DWARF register lookup to perf.

4) When console= is explicitly specified for a serial console,
   don't try to override with firmware provided settings.

5) Use after free in sunsu driver.

6) maybe_change_configuration() perf event code uses wrong %pcr
   setting, notices by Peter Z.

7) Fix build failure in some configs, from Dongdong Deng.

Please pull, thanks a lot!

The following changes since commit e0959371b4aaddb9b986019d5cfef93f9801d0ff:

  Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client (2010-07-20 16:27:58 -0700)

are available in the git repository at:

  master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6.git master

David S. Miller (8):
      sparc32: Kill none_mask, it's bogus.
      sunserial: Don't call add_preferred_console() when console= is specified.
      sunsu: Fix use after free in su_remove().
      sparc64: Update defconfig.
      sparc64: Fix maybe_change_configuration() PCR setting.
      Merge branch 'master' of /home/davem/src/GIT/linux-2.6/
      MAINTAINERS: Add SBUS driver path to sparc entry.
      perf: Add DWARF register lookup for sparc

Dongdong Deng (1):
      sparc64: fix the build error due to smp_kgdb_capture_client()

FUJITA Tomonori (1):
      sparc: remove homegrown L1_CACHE_ALIGN macro

Joe Perches (1):
      drivers/sbus: Remove unnecessary casts of private_data

Julia Lawall (1):
      arch/sparc/kernel: Eliminate what looks like a NULL pointer dereference

Mikael Pettersson (1):
      math-emu: correct test for downshifting fraction in _FP_FROM_INT()

 MAINTAINERS                             |    1 +
 arch/sparc/configs/sparc64_defconfig    |   49 ++++++++++++++++++++++---------
 arch/sparc/include/asm/cache.h          |    1 -
 arch/sparc/include/asm/pgtable_32.h     |    5 +--
 arch/sparc/kernel/perf_event.c          |    1 +
 arch/sparc/kernel/sun4d_irq.c           |    2 +-
 arch/sparc/kernel/ttable.S              |    2 +-
 arch/sparc/mm/srmmu.c                   |    2 -
 arch/sparc/mm/sun4c.c                   |    3 --
 drivers/sbus/char/openprom.c            |    4 +-
 drivers/serial/suncore.c                |    4 ++-
 drivers/serial/sunsu.c                  |   13 ++++++--
 include/math-emu/op-common.h            |    2 +-
 tools/perf/arch/sparc/Makefile          |    4 ++
 tools/perf/arch/sparc/util/dwarf-regs.c |   43 +++++++++++++++++++++++++++
 15 files changed, 103 insertions(+), 33 deletions(-)
 create mode 100644 tools/perf/arch/sparc/Makefile
 create mode 100644 tools/perf/arch/sparc/util/dwarf-regs.c

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] SPARC
@ 2010-07-21  4:25 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2010-07-21  4:25 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Couple sparc fixes that have piled up over the past few week:

1) L1_CACHE_ALIGN macro unnecessary, from FUJITA Tomonori

2) _FP_FROM_INT() math-emu off-by-one bug that hits sparc and
   other math-emu using platforms.  From Mikael Pettersson.

3) Add missing DWARF register lookup to perf.

4) When console= is explicitly specified for a serial console,
   don't try to override with firmware provided settings.

5) Use after free in sunsu driver.

6) maybe_change_configuration() perf event code uses wrong %pcr
   setting, notices by Peter Z.

7) Fix build failure in some configs, from Dongdong Deng.

Please pull, thanks a lot!

The following changes since commit e0959371b4aaddb9b986019d5cfef93f9801d0ff:

  Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client (2010-07-20 16:27:58 -0700)

are available in the git repository at:

  master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6.git master

David S. Miller (8):
      sparc32: Kill none_mask, it's bogus.
      sunserial: Don't call add_preferred_console() when console= is specified.
      sunsu: Fix use after free in su_remove().
      sparc64: Update defconfig.
      sparc64: Fix maybe_change_configuration() PCR setting.
      Merge branch 'master' of /home/davem/src/GIT/linux-2.6/
      MAINTAINERS: Add SBUS driver path to sparc entry.
      perf: Add DWARF register lookup for sparc

Dongdong Deng (1):
      sparc64: fix the build error due to smp_kgdb_capture_client()

FUJITA Tomonori (1):
      sparc: remove homegrown L1_CACHE_ALIGN macro

Joe Perches (1):
      drivers/sbus: Remove unnecessary casts of private_data

Julia Lawall (1):
      arch/sparc/kernel: Eliminate what looks like a NULL pointer dereference

Mikael Pettersson (1):
      math-emu: correct test for downshifting fraction in _FP_FROM_INT()

 MAINTAINERS                             |    1 +
 arch/sparc/configs/sparc64_defconfig    |   49 ++++++++++++++++++++++---------
 arch/sparc/include/asm/cache.h          |    1 -
 arch/sparc/include/asm/pgtable_32.h     |    5 +--
 arch/sparc/kernel/perf_event.c          |    1 +
 arch/sparc/kernel/sun4d_irq.c           |    2 +-
 arch/sparc/kernel/ttable.S              |    2 +-
 arch/sparc/mm/srmmu.c                   |    2 -
 arch/sparc/mm/sun4c.c                   |    3 --
 drivers/sbus/char/openprom.c            |    4 +-
 drivers/serial/suncore.c                |    4 ++-
 drivers/serial/sunsu.c                  |   13 ++++++--
 include/math-emu/op-common.h            |    2 +-
 tools/perf/arch/sparc/Makefile          |    4 ++
 tools/perf/arch/sparc/util/dwarf-regs.c |   43 +++++++++++++++++++++++++++
 15 files changed, 103 insertions(+), 33 deletions(-)
 create mode 100644 tools/perf/arch/sparc/Makefile
 create mode 100644 tools/perf/arch/sparc/util/dwarf-regs.c

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2010-08-05  0:21 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2010-08-05  0:21 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


1) Convert BKL --> mutex in SBUS drivers, from Arnd Bergmann.

2) Should use GFP_KERNEL in sparc32 SBUS init code, from Julia
   Lawall.

3) MAINTAINERS tweak

Please pull, thanks a lot!

The following changes since commit 3cfc2c42c1cbc8e238bb9c0612c0df4565e3a8b4:

  Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial (2010-08-04 15:31:02 -0700)

are available in the git repository at:

  master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6.git master

Arnd Bergmann (1):
      sbus: autoconvert trivial BKL users to private mutex

David S. Miller (1):
      MAINTAINERS: Add trailing slash to SBUS path.

Julia Lawall (1):
      arch/sparc/mm: Use GFP_KERNEL

 MAINTAINERS                     |    2 +-
 arch/sparc/mm/iommu.c           |    2 +-
 drivers/sbus/char/display7seg.c |    8 ++++----
 drivers/sbus/char/envctrl.c     |    2 --
 drivers/sbus/char/flash.c       |   15 ++++++++-------
 drivers/sbus/char/openprom.c    |   15 ++++++++-------
 drivers/sbus/char/uctrl.c       |    7 ++++---
 7 files changed, 26 insertions(+), 25 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2010-08-05  0:21 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2010-08-05  0:21 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


1) Convert BKL --> mutex in SBUS drivers, from Arnd Bergmann.

2) Should use GFP_KERNEL in sparc32 SBUS init code, from Julia
   Lawall.

3) MAINTAINERS tweak

Please pull, thanks a lot!

The following changes since commit 3cfc2c42c1cbc8e238bb9c0612c0df4565e3a8b4:

  Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial (2010-08-04 15:31:02 -0700)

are available in the git repository at:

  master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6.git master

Arnd Bergmann (1):
      sbus: autoconvert trivial BKL users to private mutex

David S. Miller (1):
      MAINTAINERS: Add trailing slash to SBUS path.

Julia Lawall (1):
      arch/sparc/mm: Use GFP_KERNEL

 MAINTAINERS                     |    2 +-
 arch/sparc/mm/iommu.c           |    2 +-
 drivers/sbus/char/display7seg.c |    8 ++++----
 drivers/sbus/char/envctrl.c     |    2 --
 drivers/sbus/char/flash.c       |   15 ++++++++-------
 drivers/sbus/char/openprom.c    |   15 ++++++++-------
 drivers/sbus/char/uctrl.c       |    7 ++++---
 7 files changed, 26 insertions(+), 25 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2010-08-09 10:28 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2010-08-09 10:28 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Just some misc sparc64 bits:

1) Add missing ID to sparc64 parport support.

2) Sync sparc64's perf_arch_get_caller_regs() with recent changes.

3) Toss user-copy check code, it never worked properly on sparc for
   whatever reason and just adds warning noise to the logs.

Please pull, thanks a lot!

The following changes since commit 45d7f32c7a43cbb9592886d38190e379e2eb2226:

  Merge git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile (2010-08-08 10:10:11 -0700)

are available in the git repository at:

  master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6.git master

David S. Miller (4):
      sparc64: Add missing ID to parport probing code.
      sparc64: Fix perf_arch_get_caller_regs().
      sparc: Kill user copy check code.
      sparc64: Update defconfig.

 arch/sparc/Kconfig.debug             |   14 ------
 arch/sparc/configs/sparc64_defconfig |   67 +++++++++++++++++-------------
 arch/sparc/include/asm/parport.h     |    4 ++
 arch/sparc/include/asm/perf_event.h  |   25 +++++++++--
 arch/sparc/include/asm/uaccess_32.h  |   15 -------
 arch/sparc/include/asm/uaccess_64.h  |   23 ++--------
 arch/sparc/kernel/helpers.S          |   75 ----------------------------------
 7 files changed, 68 insertions(+), 155 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2010-08-09 10:28 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2010-08-09 10:28 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Just some misc sparc64 bits:

1) Add missing ID to sparc64 parport support.

2) Sync sparc64's perf_arch_get_caller_regs() with recent changes.

3) Toss user-copy check code, it never worked properly on sparc for
   whatever reason and just adds warning noise to the logs.

Please pull, thanks a lot!

The following changes since commit 45d7f32c7a43cbb9592886d38190e379e2eb2226:

  Merge git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile (2010-08-08 10:10:11 -0700)

are available in the git repository at:

  master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6.git master

David S. Miller (4):
      sparc64: Add missing ID to parport probing code.
      sparc64: Fix perf_arch_get_caller_regs().
      sparc: Kill user copy check code.
      sparc64: Update defconfig.

 arch/sparc/Kconfig.debug             |   14 ------
 arch/sparc/configs/sparc64_defconfig |   67 +++++++++++++++++-------------
 arch/sparc/include/asm/parport.h     |    4 ++
 arch/sparc/include/asm/perf_event.h  |   25 +++++++++--
 arch/sparc/include/asm/uaccess_32.h  |   15 -------
 arch/sparc/include/asm/uaccess_64.h  |   23 ++--------
 arch/sparc/kernel/helpers.S          |   75 ----------------------------------
 7 files changed, 68 insertions(+), 155 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2010-08-18  1:03 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2010-08-18  1:03 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Among other things, this fixes the rwsem signedness issue we
were discussing earlier today.

Add entries for the new 2.6.36 system calls.

Make console=tty* on the kernel command line work properly
for serial consoles.

Please pull, thanks a lot!

The following changes since commit da5cabf80e2433131bf0ed8993abc0f7ea618c73:

  Linux 2.6.36-rc1 (2010-08-15 17:41:37 -0700)

are available in the git repository at:
  master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6.git master

David S. Miller (5):
      sparc: Really fix "console=" for serial consoles.
      Merge branch 'master' of git://git.kernel.org/.../torvalds/linux-2.6
      sparc: Hook up new fanotify and prlimit64 syscalls.
      sparc64: Fix rwsem constant bug leading to hangs.
      sparc64: Fix atomic64_t routine return values.

 arch/sparc/include/asm/atomic_64.h   |    6 +++---
 arch/sparc/include/asm/fb.h          |    4 ++++
 arch/sparc/include/asm/rwsem-const.h |    2 +-
 arch/sparc/include/asm/unistd.h      |    5 ++++-
 arch/sparc/kernel/sys32.S            |    9 +++++++++
 arch/sparc/kernel/systbls_32.S       |    3 ++-
 arch/sparc/kernel/systbls_64.S       |    6 ++++--
 drivers/serial/suncore.c             |   15 +++++++++------
 8 files changed, 36 insertions(+), 14 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2010-08-18  1:03 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2010-08-18  1:03 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Among other things, this fixes the rwsem signedness issue we
were discussing earlier today.

Add entries for the new 2.6.36 system calls.

Make console=tty* on the kernel command line work properly
for serial consoles.

Please pull, thanks a lot!

The following changes since commit da5cabf80e2433131bf0ed8993abc0f7ea618c73:

  Linux 2.6.36-rc1 (2010-08-15 17:41:37 -0700)

are available in the git repository at:
  master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6.git master

David S. Miller (5):
      sparc: Really fix "console=" for serial consoles.
      Merge branch 'master' of git://git.kernel.org/.../torvalds/linux-2.6
      sparc: Hook up new fanotify and prlimit64 syscalls.
      sparc64: Fix rwsem constant bug leading to hangs.
      sparc64: Fix atomic64_t routine return values.

 arch/sparc/include/asm/atomic_64.h   |    6 +++---
 arch/sparc/include/asm/fb.h          |    4 ++++
 arch/sparc/include/asm/rwsem-const.h |    2 +-
 arch/sparc/include/asm/unistd.h      |    5 ++++-
 arch/sparc/kernel/sys32.S            |    9 +++++++++
 arch/sparc/kernel/systbls_32.S       |    3 ++-
 arch/sparc/kernel/systbls_64.S       |    6 ++++--
 drivers/serial/suncore.c             |   15 +++++++++------
 8 files changed, 36 insertions(+), 14 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] Sparc
  2010-08-18  1:03 ` David Miller
@ 2010-08-18  1:31   ` Linus Torvalds
  -1 siblings, 0 replies; 548+ messages in thread
From: Linus Torvalds @ 2010-08-18  1:31 UTC (permalink / raw)
  To: David Miller; +Cc: akpm, sparclinux, linux-kernel

On Tue, Aug 17, 2010 at 6:03 PM, David Miller <davem@davemloft.net> wrote:
>
> Among other things, this fixes the rwsem signedness issue we
> were discussing earlier today.

Your commit message is missing the C rules for hex constants. It says

  "hex constants are unsigned unless explicitly casted or negated."

and that's not true.

The rule is that hex constants are signed _except_ if they don't fit
in a signed.

So with a 32-bit 'int', 0x123 is signed, but 0x80000000 is unsigned.

So the reason (-0x00010000) is signed is _not_ because of the
negation, but simply because 0x00010000 fits in a signed int. So for
example, the constant (-0xf0000000) is still unsigned, despite the
negation.

So to make something signed, you need to either cast it, make sure it
fits in a signed int, use the 'l' postfix (which also makes it long,
of course), or use a decimal representation. So

   #define X 4294901760

is a _signed_ constant with same value as 0xffff0000 (but it's "signed
long", because the rules for decimal numbers and hex numbers are
different: a decimal number is always signed and because it doesn't
fit in 'int' it will extend to 'long'. A hex number is first done as
unsigned, and only extended to long if it doesn't fit in that.

To make things _really_ confused, sometimes the types actually depend
on whether you're compiling with the c90 standards. A decimal constant
is _always_ signed in traditional C - it goes from 'int' to 'long',
and stays 'long' even if it doesn't fit (ie with a 32-bit long,
2147483648 is of type 'long' even though it doesn't fit in 'long' and
is negative). But in c90, it does from 'int' to 'long' to 'unsigned
long'.

Or maybe it was the other way around. I forget.

Confused yet?

The basic rule becomes: never _ever_ overflow 'int' in a constant,
without specifying the exact type you want. That way you avoid all the
subtle cases.

                     Linus

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] Sparc
@ 2010-08-18  1:31   ` Linus Torvalds
  0 siblings, 0 replies; 548+ messages in thread
From: Linus Torvalds @ 2010-08-18  1:31 UTC (permalink / raw)
  To: David Miller; +Cc: akpm, sparclinux, linux-kernel

On Tue, Aug 17, 2010 at 6:03 PM, David Miller <davem@davemloft.net> wrote:
>
> Among other things, this fixes the rwsem signedness issue we
> were discussing earlier today.

Your commit message is missing the C rules for hex constants. It says

  "hex constants are unsigned unless explicitly casted or negated."

and that's not true.

The rule is that hex constants are signed _except_ if they don't fit
in a signed.

So with a 32-bit 'int', 0x123 is signed, but 0x80000000 is unsigned.

So the reason (-0x00010000) is signed is _not_ because of the
negation, but simply because 0x00010000 fits in a signed int. So for
example, the constant (-0xf0000000) is still unsigned, despite the
negation.

So to make something signed, you need to either cast it, make sure it
fits in a signed int, use the 'l' postfix (which also makes it long,
of course), or use a decimal representation. So

   #define X 4294901760

is a _signed_ constant with same value as 0xffff0000 (but it's "signed
long", because the rules for decimal numbers and hex numbers are
different: a decimal number is always signed and because it doesn't
fit in 'int' it will extend to 'long'. A hex number is first done as
unsigned, and only extended to long if it doesn't fit in that.

To make things _really_ confused, sometimes the types actually depend
on whether you're compiling with the c90 standards. A decimal constant
is _always_ signed in traditional C - it goes from 'int' to 'long',
and stays 'long' even if it doesn't fit (ie with a 32-bit long,
2147483648 is of type 'long' even though it doesn't fit in 'long' and
is negative). But in c90, it does from 'int' to 'long' to 'unsigned
long'.

Or maybe it was the other way around. I forget.

Confused yet?

The basic rule becomes: never _ever_ overflow 'int' in a constant,
without specifying the exact type you want. That way you avoid all the
subtle cases.

                     Linus

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] Sparc
  2010-08-18  1:31   ` Linus Torvalds
@ 2010-08-18  1:59     ` Linus Torvalds
  -1 siblings, 0 replies; 548+ messages in thread
From: Linus Torvalds @ 2010-08-18  1:59 UTC (permalink / raw)
  To: David Miller; +Cc: akpm, sparclinux, linux-kernel

Oh,
 I noticed another thing:

In commit 86fa04b8742ac681d470786f55e2403ada0075b2 you fix the return
type, but you still have the wrong _argument_ type:

  extern void atomic64_add(int, atomic64_t *);
  extern void atomic64_sub(int, atomic64_t *);
  extern long atomic64_add_ret(int, atomic64_t *);
  extern long atomic64_sub_ret(int, atomic64_t *);

note how if somebody does

   atomic64_add(0x100000000ull, &x)

sparc64 will get it wrong, because it will only take the low 32 bits
of the first argument, and add zero to the 64-bit counter.

Which is definitely not what the code intended, I think.

I merged your pull request, but you've got some fixing up to do,
methinks. I also really think you need to make your rwsem's use 64-bit
values on sparc64, because otherwise you can overflow the mmap_sem by
having more than 65536 threads doing page-faults (on 32-bit, having
more than 2**16 threads in one process is unlikely to work for other
reasons, like just pure stack usage, so we don't really care about the
32-bit case)

                         Linus

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] Sparc
@ 2010-08-18  1:59     ` Linus Torvalds
  0 siblings, 0 replies; 548+ messages in thread
From: Linus Torvalds @ 2010-08-18  1:59 UTC (permalink / raw)
  To: David Miller; +Cc: akpm, sparclinux, linux-kernel

Oh,
 I noticed another thing:

In commit 86fa04b8742ac681d470786f55e2403ada0075b2 you fix the return
type, but you still have the wrong _argument_ type:

  extern void atomic64_add(int, atomic64_t *);
  extern void atomic64_sub(int, atomic64_t *);
  extern long atomic64_add_ret(int, atomic64_t *);
  extern long atomic64_sub_ret(int, atomic64_t *);

note how if somebody does

   atomic64_add(0x100000000ull, &x)

sparc64 will get it wrong, because it will only take the low 32 bits
of the first argument, and add zero to the 64-bit counter.

Which is definitely not what the code intended, I think.

I merged your pull request, but you've got some fixing up to do,
methinks. I also really think you need to make your rwsem's use 64-bit
values on sparc64, because otherwise you can overflow the mmap_sem by
having more than 65536 threads doing page-faults (on 32-bit, having
more than 2**16 threads in one process is unlikely to work for other
reasons, like just pure stack usage, so we don't really care about the
32-bit case)

                         Linus

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] Sparc
  2010-08-18  1:31   ` Linus Torvalds
@ 2010-08-18  2:12     ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2010-08-18  2:12 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel

From: Linus Torvalds <torvalds@linux-foundation.org>
Date: Tue, 17 Aug 2010 18:31:50 -0700

> Confused yet?

Beyond...

> The basic rule becomes: never _ever_ overflow 'int' in a constant,
> without specifying the exact type you want. That way you avoid all the
> subtle cases.

That's easier to understand.

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] Sparc
@ 2010-08-18  2:12     ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2010-08-18  2:12 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel

From: Linus Torvalds <torvalds@linux-foundation.org>
Date: Tue, 17 Aug 2010 18:31:50 -0700

> Confused yet?

Beyond...

> The basic rule becomes: never _ever_ overflow 'int' in a constant,
> without specifying the exact type you want. That way you avoid all the
> subtle cases.

That's easier to understand.

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] Sparc
  2010-08-18  1:59     ` Linus Torvalds
@ 2010-08-18  2:14       ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2010-08-18  2:14 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel, paulus, benh

From: Linus Torvalds <torvalds@linux-foundation.org>
Date: Tue, 17 Aug 2010 18:59:17 -0700

> In commit 86fa04b8742ac681d470786f55e2403ada0075b2 you fix the return
> type, but you still have the wrong _argument_ type:
> 
>   extern void atomic64_add(int, atomic64_t *);
>   extern void atomic64_sub(int, atomic64_t *);
>   extern long atomic64_add_ret(int, atomic64_t *);
>   extern long atomic64_sub_ret(int, atomic64_t *);

Thanks, I'll fix that up.

> I merged your pull request, but you've got some fixing up to do,
> methinks. I also really think you need to make your rwsem's use 64-bit
> values on sparc64, because otherwise you can overflow the mmap_sem by
> having more than 65536 threads doing page-faults (on 32-bit, having
> more than 2**16 threads in one process is unlikely to work for other
> reasons, like just pure stack usage, so we don't really care about the
> 32-bit case)

I have a patch to do this already, just need to test it.

You should bug the powerpc folks too :-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] Sparc
@ 2010-08-18  2:14       ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2010-08-18  2:14 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel, paulus, benh

From: Linus Torvalds <torvalds@linux-foundation.org>
Date: Tue, 17 Aug 2010 18:59:17 -0700

> In commit 86fa04b8742ac681d470786f55e2403ada0075b2 you fix the return
> type, but you still have the wrong _argument_ type:
> 
>   extern void atomic64_add(int, atomic64_t *);
>   extern void atomic64_sub(int, atomic64_t *);
>   extern long atomic64_add_ret(int, atomic64_t *);
>   extern long atomic64_sub_ret(int, atomic64_t *);

Thanks, I'll fix that up.

> I merged your pull request, but you've got some fixing up to do,
> methinks. I also really think you need to make your rwsem's use 64-bit
> values on sparc64, because otherwise you can overflow the mmap_sem by
> having more than 65536 threads doing page-faults (on 32-bit, having
> more than 2**16 threads in one process is unlikely to work for other
> reasons, like just pure stack usage, so we don't really care about the
> 32-bit case)

I have a patch to do this already, just need to test it.

You should bug the powerpc folks too :-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] Sparc
  2010-08-18  2:12     ` David Miller
@ 2010-08-18  2:50       ` Al Viro
  -1 siblings, 0 replies; 548+ messages in thread
From: Al Viro @ 2010-08-18  2:50 UTC (permalink / raw)
  To: David Miller; +Cc: torvalds, akpm, sparclinux, linux-kernel

On Tue, Aug 17, 2010 at 07:12:45PM -0700, David Miller wrote:
> From: Linus Torvalds <torvalds@linux-foundation.org>
> Date: Tue, 17 Aug 2010 18:31:50 -0700
> 
> > Confused yet?
> 
> Beyond...
> 
> > The basic rule becomes: never _ever_ overflow 'int' in a constant,
> > without specifying the exact type you want. That way you avoid all the
> > subtle cases.
> 
> That's easier to understand.

Actually, it's not that complicated:

1) base and suffices choose the possible types.
2) order of types is always the same: int -> unsigned -> long -> unsigned
long -> long long -> unsigned long long
3) we always choose the first type the value would fit into
4) L in suffix == "at least long"
5) LL in suffix == "at least long long"
6) U in suffix == "unsigned"
7) without U in suffix, base 10 == "signed"

That's it.  C90 differs from C99 only in one thing - long long (and LL) isn't
there.  The subtle mess Linus has mentioned is C90 gccism: gcc has allowed
unsigned long for decimal constants, as the last resort.  I.e. if you had
a plain decimal constant that wouldn't fit into long but would fit into
unsigned long, gcc generated a warning and treated it as unsigned long.
C90 would reject the damn thing.  _Bad_ extension, since in C99 the same
constant would be a legitimate signed long long.

But yes, "use the suffix when unsure" is a damn good idea, _especially_ since
the sizeof(long) actually varies between the targets we care about.

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] Sparc
@ 2010-08-18  2:50       ` Al Viro
  0 siblings, 0 replies; 548+ messages in thread
From: Al Viro @ 2010-08-18  2:50 UTC (permalink / raw)
  To: David Miller; +Cc: torvalds, akpm, sparclinux, linux-kernel

On Tue, Aug 17, 2010 at 07:12:45PM -0700, David Miller wrote:
> From: Linus Torvalds <torvalds@linux-foundation.org>
> Date: Tue, 17 Aug 2010 18:31:50 -0700
> 
> > Confused yet?
> 
> Beyond...
> 
> > The basic rule becomes: never _ever_ overflow 'int' in a constant,
> > without specifying the exact type you want. That way you avoid all the
> > subtle cases.
> 
> That's easier to understand.

Actually, it's not that complicated:

1) base and suffices choose the possible types.
2) order of types is always the same: int -> unsigned -> long -> unsigned
long -> long long -> unsigned long long
3) we always choose the first type the value would fit into
4) L in suffix = "at least long"
5) LL in suffix = "at least long long"
6) U in suffix = "unsigned"
7) without U in suffix, base 10 = "signed"

That's it.  C90 differs from C99 only in one thing - long long (and LL) isn't
there.  The subtle mess Linus has mentioned is C90 gccism: gcc has allowed
unsigned long for decimal constants, as the last resort.  I.e. if you had
a plain decimal constant that wouldn't fit into long but would fit into
unsigned long, gcc generated a warning and treated it as unsigned long.
C90 would reject the damn thing.  _Bad_ extension, since in C99 the same
constant would be a legitimate signed long long.

But yes, "use the suffix when unsure" is a damn good idea, _especially_ since
the sizeof(long) actually varies between the targets we care about.

^ permalink raw reply	[flat|nested] 548+ messages in thread

* 64-bit ppc rwsem (was: Re: [GIT] Sparc)
  2010-08-18  2:14       ` David Miller
  (?)
@ 2010-08-18  4:38         ` Benjamin Herrenschmidt
  -1 siblings, 0 replies; 548+ messages in thread
From: Benjamin Herrenschmidt @ 2010-08-18  4:38 UTC (permalink / raw)
  To: David Miller
  Cc: torvalds, akpm, sparclinux, linux-kernel, paulus, linuxppc-dev

On Tue, 2010-08-17 at 19:14 -0700, David Miller wrote:

> > I merged your pull request, but you've got some fixing up to do,
> > methinks. I also really think you need to make your rwsem's use 64-bit
> > values on sparc64, because otherwise you can overflow the mmap_sem by
> > having more than 65536 threads doing page-faults (on 32-bit, having
> > more than 2**16 threads in one process is unlikely to work for other
> > reasons, like just pure stack usage, so we don't really care about the
> > 32-bit case)
> 
> I have a patch to do this already, just need to test it.
> 
> You should bug the powerpc folks too :-)

32K threads :-) you guys are nuts !

Here's an untested patch for the folks on linuxppc-dev to look at, I'll
review my own stuff & test tomorrow.

Cheers,
Ben.

powerpc: Make rwsem use "long" types on 64-bit platforms

This should avoid overflow of the mmap_sem when playing with insane
number of threads.

Not-signed-off-by-yet.

diff --git a/arch/powerpc/include/asm/rwsem.h b/arch/powerpc/include/asm/rwsem.h
index 24cd928..ca64a98 100644
--- a/arch/powerpc/include/asm/rwsem.h
+++ b/arch/powerpc/include/asm/rwsem.h
@@ -21,15 +21,20 @@
 /*
  * the semaphore definition
  */
-struct rw_semaphore {
-	/* XXX this should be able to be an atomic_t  -- paulus */
-	signed int		count;
-#define RWSEM_UNLOCKED_VALUE		0x00000000
-#define RWSEM_ACTIVE_BIAS		0x00000001
-#define RWSEM_ACTIVE_MASK		0x0000ffff
-#define RWSEM_WAITING_BIAS		(-0x00010000)
+#ifdef CONFIG_PPC64
+# define RWSEM_ACTIVE_MASK		0xffffffffL
+#else
+# define RWSEM_ACTIVE_MASK		0x0000ffffL
+#endif
+
+#define RWSEM_UNLOCKED_VALUE		0x00000000L
+#define RWSEM_ACTIVE_BIAS		0x00000001L
+#define RWSEM_WAITING_BIAS		(-RWSEM_ACTIVE_MASK-1)
 #define RWSEM_ACTIVE_READ_BIAS		RWSEM_ACTIVE_BIAS
 #define RWSEM_ACTIVE_WRITE_BIAS		(RWSEM_WAITING_BIAS + RWSEM_ACTIVE_BIAS)
+
+struct rw_semaphore {
+	atomic_long_t		count;
 	spinlock_t		wait_lock;
 	struct list_head	wait_list;
 #ifdef CONFIG_DEBUG_LOCK_ALLOC
@@ -43,9 +48,13 @@ struct rw_semaphore {
 # define __RWSEM_DEP_MAP_INIT(lockname)
 #endif
 
-#define __RWSEM_INITIALIZER(name) \
-	{ RWSEM_UNLOCKED_VALUE, __SPIN_LOCK_UNLOCKED((name).wait_lock), \
-	  LIST_HEAD_INIT((name).wait_list) __RWSEM_DEP_MAP_INIT(name) }
+#define __RWSEM_INITIALIZER(name)				\
+{								\
+	ATOMIC_LONG_INIT(RWSEM_UNLOCKED_VALUE),			\
+	__SPIN_LOCK_UNLOCKED((name).wait_lock),			\
+	LIST_HEAD_INIT((name).wait_list)			\
+	__RWSEM_DEP_MAP_INIT(name)				\
+}
 
 #define DECLARE_RWSEM(name)		\
 	struct rw_semaphore name = __RWSEM_INITIALIZER(name)
@@ -70,16 +79,16 @@ extern void __init_rwsem(struct rw_semaphore *sem, const char *name,
  */
 static inline void __down_read(struct rw_semaphore *sem)
 {
-	if (unlikely(atomic_inc_return((atomic_t *)(&sem->count)) <= 0))
+	if (unlikely(atomic_long_inc_return(&sem->count) <= 0))
 		rwsem_down_read_failed(sem);
 }
 
 static inline int __down_read_trylock(struct rw_semaphore *sem)
 {
-	int tmp;
+	long tmp;
 
-	while ((tmp = sem->count) >= 0) {
-		if (tmp == cmpxchg(&sem->count, tmp,
+	while ((tmp = atomic_long_read(&sem->count)) >= 0) {
+		if (tmp == cmpxchg((long *)&sem->count, tmp,
 				   tmp + RWSEM_ACTIVE_READ_BIAS)) {
 			return 1;
 		}
@@ -92,10 +101,10 @@ static inline int __down_read_trylock(struct rw_semaphore *sem)
  */
 static inline void __down_write_nested(struct rw_semaphore *sem, int subclass)
 {
-	int tmp;
+	long tmp;
 
-	tmp = atomic_add_return(RWSEM_ACTIVE_WRITE_BIAS,
-				(atomic_t *)(&sem->count));
+	tmp = atomic_long_add_return(RWSEM_ACTIVE_WRITE_BIAS,
+				     &sem->count);
 	if (unlikely(tmp != RWSEM_ACTIVE_WRITE_BIAS))
 		rwsem_down_write_failed(sem);
 }
@@ -107,9 +116,9 @@ static inline void __down_write(struct rw_semaphore *sem)
 
 static inline int __down_write_trylock(struct rw_semaphore *sem)
 {
-	int tmp;
+	long tmp;
 
-	tmp = cmpxchg(&sem->count, RWSEM_UNLOCKED_VALUE,
+	tmp = cmpxchg((long *)&sem->count, RWSEM_UNLOCKED_VALUE,
 		      RWSEM_ACTIVE_WRITE_BIAS);
 	return tmp == RWSEM_UNLOCKED_VALUE;
 }
@@ -119,9 +128,9 @@ static inline int __down_write_trylock(struct rw_semaphore *sem)
  */
 static inline void __up_read(struct rw_semaphore *sem)
 {
-	int tmp;
+	long tmp;
 
-	tmp = atomic_dec_return((atomic_t *)(&sem->count));
+	tmp = atomic_long_dec_return(&sem->count);
 	if (unlikely(tmp < -1 && (tmp & RWSEM_ACTIVE_MASK) == 0))
 		rwsem_wake(sem);
 }
@@ -131,17 +140,17 @@ static inline void __up_read(struct rw_semaphore *sem)
  */
 static inline void __up_write(struct rw_semaphore *sem)
 {
-	if (unlikely(atomic_sub_return(RWSEM_ACTIVE_WRITE_BIAS,
-			      (atomic_t *)(&sem->count)) < 0))
+	if (unlikely(atomic_long_sub_return(RWSEM_ACTIVE_WRITE_BIAS,
+					    &sem->count) < 0))
 		rwsem_wake(sem);
 }
 
 /*
  * implement atomic add functionality
  */
-static inline void rwsem_atomic_add(int delta, struct rw_semaphore *sem)
+static inline void rwsem_atomic_add(long delta, struct rw_semaphore *sem)
 {
-	atomic_add(delta, (atomic_t *)(&sem->count));
+	atomic_long_add(delta, &sem->count);
 }
 
 /*
@@ -149,9 +158,9 @@ static inline void rwsem_atomic_add(int delta, struct rw_semaphore *sem)
  */
 static inline void __downgrade_write(struct rw_semaphore *sem)
 {
-	int tmp;
+	long tmp;
 
-	tmp = atomic_add_return(-RWSEM_WAITING_BIAS, (atomic_t *)(&sem->count));
+	tmp = atomic_long_add_return(-RWSEM_WAITING_BIAS, &sem->count);
 	if (tmp < 0)
 		rwsem_downgrade_wake(sem);
 }
@@ -159,14 +168,14 @@ static inline void __downgrade_write(struct rw_semaphore *sem)
 /*
  * implement exchange and add functionality
  */
-static inline int rwsem_atomic_update(int delta, struct rw_semaphore *sem)
+static inline long rwsem_atomic_update(long delta, struct rw_semaphore *sem)
 {
-	return atomic_add_return(delta, (atomic_t *)(&sem->count));
+	return atomic_long_add_return(delta, &sem->count);
 }
 
 static inline int rwsem_is_locked(struct rw_semaphore *sem)
 {
-	return (sem->count != 0);
+	return atomic_long_read(&sem->count) != 0;
 }
 
 #endif	/* __KERNEL__ */



^ permalink raw reply related	[flat|nested] 548+ messages in thread

* 64-bit ppc rwsem (was: Re: [GIT] Sparc)
@ 2010-08-18  4:38         ` Benjamin Herrenschmidt
  0 siblings, 0 replies; 548+ messages in thread
From: Benjamin Herrenschmidt @ 2010-08-18  4:38 UTC (permalink / raw)
  To: David Miller
  Cc: torvalds, paulus, linux-kernel, sparclinux, akpm, linuxppc-dev

On Tue, 2010-08-17 at 19:14 -0700, David Miller wrote:

> > I merged your pull request, but you've got some fixing up to do,
> > methinks. I also really think you need to make your rwsem's use 64-bit
> > values on sparc64, because otherwise you can overflow the mmap_sem by
> > having more than 65536 threads doing page-faults (on 32-bit, having
> > more than 2**16 threads in one process is unlikely to work for other
> > reasons, like just pure stack usage, so we don't really care about the
> > 32-bit case)
> 
> I have a patch to do this already, just need to test it.
> 
> You should bug the powerpc folks too :-)

32K threads :-) you guys are nuts !

Here's an untested patch for the folks on linuxppc-dev to look at, I'll
review my own stuff & test tomorrow.

Cheers,
Ben.

powerpc: Make rwsem use "long" types on 64-bit platforms

This should avoid overflow of the mmap_sem when playing with insane
number of threads.

Not-signed-off-by-yet.

diff --git a/arch/powerpc/include/asm/rwsem.h b/arch/powerpc/include/asm/rwsem.h
index 24cd928..ca64a98 100644
--- a/arch/powerpc/include/asm/rwsem.h
+++ b/arch/powerpc/include/asm/rwsem.h
@@ -21,15 +21,20 @@
 /*
  * the semaphore definition
  */
-struct rw_semaphore {
-	/* XXX this should be able to be an atomic_t  -- paulus */
-	signed int		count;
-#define RWSEM_UNLOCKED_VALUE		0x00000000
-#define RWSEM_ACTIVE_BIAS		0x00000001
-#define RWSEM_ACTIVE_MASK		0x0000ffff
-#define RWSEM_WAITING_BIAS		(-0x00010000)
+#ifdef CONFIG_PPC64
+# define RWSEM_ACTIVE_MASK		0xffffffffL
+#else
+# define RWSEM_ACTIVE_MASK		0x0000ffffL
+#endif
+
+#define RWSEM_UNLOCKED_VALUE		0x00000000L
+#define RWSEM_ACTIVE_BIAS		0x00000001L
+#define RWSEM_WAITING_BIAS		(-RWSEM_ACTIVE_MASK-1)
 #define RWSEM_ACTIVE_READ_BIAS		RWSEM_ACTIVE_BIAS
 #define RWSEM_ACTIVE_WRITE_BIAS		(RWSEM_WAITING_BIAS + RWSEM_ACTIVE_BIAS)
+
+struct rw_semaphore {
+	atomic_long_t		count;
 	spinlock_t		wait_lock;
 	struct list_head	wait_list;
 #ifdef CONFIG_DEBUG_LOCK_ALLOC
@@ -43,9 +48,13 @@ struct rw_semaphore {
 # define __RWSEM_DEP_MAP_INIT(lockname)
 #endif
 
-#define __RWSEM_INITIALIZER(name) \
-	{ RWSEM_UNLOCKED_VALUE, __SPIN_LOCK_UNLOCKED((name).wait_lock), \
-	  LIST_HEAD_INIT((name).wait_list) __RWSEM_DEP_MAP_INIT(name) }
+#define __RWSEM_INITIALIZER(name)				\
+{								\
+	ATOMIC_LONG_INIT(RWSEM_UNLOCKED_VALUE),			\
+	__SPIN_LOCK_UNLOCKED((name).wait_lock),			\
+	LIST_HEAD_INIT((name).wait_list)			\
+	__RWSEM_DEP_MAP_INIT(name)				\
+}
 
 #define DECLARE_RWSEM(name)		\
 	struct rw_semaphore name = __RWSEM_INITIALIZER(name)
@@ -70,16 +79,16 @@ extern void __init_rwsem(struct rw_semaphore *sem, const char *name,
  */
 static inline void __down_read(struct rw_semaphore *sem)
 {
-	if (unlikely(atomic_inc_return((atomic_t *)(&sem->count)) <= 0))
+	if (unlikely(atomic_long_inc_return(&sem->count) <= 0))
 		rwsem_down_read_failed(sem);
 }
 
 static inline int __down_read_trylock(struct rw_semaphore *sem)
 {
-	int tmp;
+	long tmp;
 
-	while ((tmp = sem->count) >= 0) {
-		if (tmp = cmpxchg(&sem->count, tmp,
+	while ((tmp = atomic_long_read(&sem->count)) >= 0) {
+		if (tmp = cmpxchg((long *)&sem->count, tmp,
 				   tmp + RWSEM_ACTIVE_READ_BIAS)) {
 			return 1;
 		}
@@ -92,10 +101,10 @@ static inline int __down_read_trylock(struct rw_semaphore *sem)
  */
 static inline void __down_write_nested(struct rw_semaphore *sem, int subclass)
 {
-	int tmp;
+	long tmp;
 
-	tmp = atomic_add_return(RWSEM_ACTIVE_WRITE_BIAS,
-				(atomic_t *)(&sem->count));
+	tmp = atomic_long_add_return(RWSEM_ACTIVE_WRITE_BIAS,
+				     &sem->count);
 	if (unlikely(tmp != RWSEM_ACTIVE_WRITE_BIAS))
 		rwsem_down_write_failed(sem);
 }
@@ -107,9 +116,9 @@ static inline void __down_write(struct rw_semaphore *sem)
 
 static inline int __down_write_trylock(struct rw_semaphore *sem)
 {
-	int tmp;
+	long tmp;
 
-	tmp = cmpxchg(&sem->count, RWSEM_UNLOCKED_VALUE,
+	tmp = cmpxchg((long *)&sem->count, RWSEM_UNLOCKED_VALUE,
 		      RWSEM_ACTIVE_WRITE_BIAS);
 	return tmp = RWSEM_UNLOCKED_VALUE;
 }
@@ -119,9 +128,9 @@ static inline int __down_write_trylock(struct rw_semaphore *sem)
  */
 static inline void __up_read(struct rw_semaphore *sem)
 {
-	int tmp;
+	long tmp;
 
-	tmp = atomic_dec_return((atomic_t *)(&sem->count));
+	tmp = atomic_long_dec_return(&sem->count);
 	if (unlikely(tmp < -1 && (tmp & RWSEM_ACTIVE_MASK) = 0))
 		rwsem_wake(sem);
 }
@@ -131,17 +140,17 @@ static inline void __up_read(struct rw_semaphore *sem)
  */
 static inline void __up_write(struct rw_semaphore *sem)
 {
-	if (unlikely(atomic_sub_return(RWSEM_ACTIVE_WRITE_BIAS,
-			      (atomic_t *)(&sem->count)) < 0))
+	if (unlikely(atomic_long_sub_return(RWSEM_ACTIVE_WRITE_BIAS,
+					    &sem->count) < 0))
 		rwsem_wake(sem);
 }
 
 /*
  * implement atomic add functionality
  */
-static inline void rwsem_atomic_add(int delta, struct rw_semaphore *sem)
+static inline void rwsem_atomic_add(long delta, struct rw_semaphore *sem)
 {
-	atomic_add(delta, (atomic_t *)(&sem->count));
+	atomic_long_add(delta, &sem->count);
 }
 
 /*
@@ -149,9 +158,9 @@ static inline void rwsem_atomic_add(int delta, struct rw_semaphore *sem)
  */
 static inline void __downgrade_write(struct rw_semaphore *sem)
 {
-	int tmp;
+	long tmp;
 
-	tmp = atomic_add_return(-RWSEM_WAITING_BIAS, (atomic_t *)(&sem->count));
+	tmp = atomic_long_add_return(-RWSEM_WAITING_BIAS, &sem->count);
 	if (tmp < 0)
 		rwsem_downgrade_wake(sem);
 }
@@ -159,14 +168,14 @@ static inline void __downgrade_write(struct rw_semaphore *sem)
 /*
  * implement exchange and add functionality
  */
-static inline int rwsem_atomic_update(int delta, struct rw_semaphore *sem)
+static inline long rwsem_atomic_update(long delta, struct rw_semaphore *sem)
 {
-	return atomic_add_return(delta, (atomic_t *)(&sem->count));
+	return atomic_long_add_return(delta, &sem->count);
 }
 
 static inline int rwsem_is_locked(struct rw_semaphore *sem)
 {
-	return (sem->count != 0);
+	return atomic_long_read(&sem->count) != 0;
 }
 
 #endif	/* __KERNEL__ */



^ permalink raw reply related	[flat|nested] 548+ messages in thread

* 64-bit ppc rwsem (was: Re: [GIT] Sparc)
@ 2010-08-18  4:38         ` Benjamin Herrenschmidt
  0 siblings, 0 replies; 548+ messages in thread
From: Benjamin Herrenschmidt @ 2010-08-18  4:38 UTC (permalink / raw)
  To: David Miller
  Cc: torvalds, paulus, linux-kernel, sparclinux, akpm, linuxppc-dev

On Tue, 2010-08-17 at 19:14 -0700, David Miller wrote:

> > I merged your pull request, but you've got some fixing up to do,
> > methinks. I also really think you need to make your rwsem's use 64-bit
> > values on sparc64, because otherwise you can overflow the mmap_sem by
> > having more than 65536 threads doing page-faults (on 32-bit, having
> > more than 2**16 threads in one process is unlikely to work for other
> > reasons, like just pure stack usage, so we don't really care about the
> > 32-bit case)
> 
> I have a patch to do this already, just need to test it.
> 
> You should bug the powerpc folks too :-)

32K threads :-) you guys are nuts !

Here's an untested patch for the folks on linuxppc-dev to look at, I'll
review my own stuff & test tomorrow.

Cheers,
Ben.

powerpc: Make rwsem use "long" types on 64-bit platforms

This should avoid overflow of the mmap_sem when playing with insane
number of threads.

Not-signed-off-by-yet.

diff --git a/arch/powerpc/include/asm/rwsem.h b/arch/powerpc/include/asm/rwsem.h
index 24cd928..ca64a98 100644
--- a/arch/powerpc/include/asm/rwsem.h
+++ b/arch/powerpc/include/asm/rwsem.h
@@ -21,15 +21,20 @@
 /*
  * the semaphore definition
  */
-struct rw_semaphore {
-	/* XXX this should be able to be an atomic_t  -- paulus */
-	signed int		count;
-#define RWSEM_UNLOCKED_VALUE		0x00000000
-#define RWSEM_ACTIVE_BIAS		0x00000001
-#define RWSEM_ACTIVE_MASK		0x0000ffff
-#define RWSEM_WAITING_BIAS		(-0x00010000)
+#ifdef CONFIG_PPC64
+# define RWSEM_ACTIVE_MASK		0xffffffffL
+#else
+# define RWSEM_ACTIVE_MASK		0x0000ffffL
+#endif
+
+#define RWSEM_UNLOCKED_VALUE		0x00000000L
+#define RWSEM_ACTIVE_BIAS		0x00000001L
+#define RWSEM_WAITING_BIAS		(-RWSEM_ACTIVE_MASK-1)
 #define RWSEM_ACTIVE_READ_BIAS		RWSEM_ACTIVE_BIAS
 #define RWSEM_ACTIVE_WRITE_BIAS		(RWSEM_WAITING_BIAS + RWSEM_ACTIVE_BIAS)
+
+struct rw_semaphore {
+	atomic_long_t		count;
 	spinlock_t		wait_lock;
 	struct list_head	wait_list;
 #ifdef CONFIG_DEBUG_LOCK_ALLOC
@@ -43,9 +48,13 @@ struct rw_semaphore {
 # define __RWSEM_DEP_MAP_INIT(lockname)
 #endif
 
-#define __RWSEM_INITIALIZER(name) \
-	{ RWSEM_UNLOCKED_VALUE, __SPIN_LOCK_UNLOCKED((name).wait_lock), \
-	  LIST_HEAD_INIT((name).wait_list) __RWSEM_DEP_MAP_INIT(name) }
+#define __RWSEM_INITIALIZER(name)				\
+{								\
+	ATOMIC_LONG_INIT(RWSEM_UNLOCKED_VALUE),			\
+	__SPIN_LOCK_UNLOCKED((name).wait_lock),			\
+	LIST_HEAD_INIT((name).wait_list)			\
+	__RWSEM_DEP_MAP_INIT(name)				\
+}
 
 #define DECLARE_RWSEM(name)		\
 	struct rw_semaphore name = __RWSEM_INITIALIZER(name)
@@ -70,16 +79,16 @@ extern void __init_rwsem(struct rw_semaphore *sem, const char *name,
  */
 static inline void __down_read(struct rw_semaphore *sem)
 {
-	if (unlikely(atomic_inc_return((atomic_t *)(&sem->count)) <= 0))
+	if (unlikely(atomic_long_inc_return(&sem->count) <= 0))
 		rwsem_down_read_failed(sem);
 }
 
 static inline int __down_read_trylock(struct rw_semaphore *sem)
 {
-	int tmp;
+	long tmp;
 
-	while ((tmp = sem->count) >= 0) {
-		if (tmp == cmpxchg(&sem->count, tmp,
+	while ((tmp = atomic_long_read(&sem->count)) >= 0) {
+		if (tmp == cmpxchg((long *)&sem->count, tmp,
 				   tmp + RWSEM_ACTIVE_READ_BIAS)) {
 			return 1;
 		}
@@ -92,10 +101,10 @@ static inline int __down_read_trylock(struct rw_semaphore *sem)
  */
 static inline void __down_write_nested(struct rw_semaphore *sem, int subclass)
 {
-	int tmp;
+	long tmp;
 
-	tmp = atomic_add_return(RWSEM_ACTIVE_WRITE_BIAS,
-				(atomic_t *)(&sem->count));
+	tmp = atomic_long_add_return(RWSEM_ACTIVE_WRITE_BIAS,
+				     &sem->count);
 	if (unlikely(tmp != RWSEM_ACTIVE_WRITE_BIAS))
 		rwsem_down_write_failed(sem);
 }
@@ -107,9 +116,9 @@ static inline void __down_write(struct rw_semaphore *sem)
 
 static inline int __down_write_trylock(struct rw_semaphore *sem)
 {
-	int tmp;
+	long tmp;
 
-	tmp = cmpxchg(&sem->count, RWSEM_UNLOCKED_VALUE,
+	tmp = cmpxchg((long *)&sem->count, RWSEM_UNLOCKED_VALUE,
 		      RWSEM_ACTIVE_WRITE_BIAS);
 	return tmp == RWSEM_UNLOCKED_VALUE;
 }
@@ -119,9 +128,9 @@ static inline int __down_write_trylock(struct rw_semaphore *sem)
  */
 static inline void __up_read(struct rw_semaphore *sem)
 {
-	int tmp;
+	long tmp;
 
-	tmp = atomic_dec_return((atomic_t *)(&sem->count));
+	tmp = atomic_long_dec_return(&sem->count);
 	if (unlikely(tmp < -1 && (tmp & RWSEM_ACTIVE_MASK) == 0))
 		rwsem_wake(sem);
 }
@@ -131,17 +140,17 @@ static inline void __up_read(struct rw_semaphore *sem)
  */
 static inline void __up_write(struct rw_semaphore *sem)
 {
-	if (unlikely(atomic_sub_return(RWSEM_ACTIVE_WRITE_BIAS,
-			      (atomic_t *)(&sem->count)) < 0))
+	if (unlikely(atomic_long_sub_return(RWSEM_ACTIVE_WRITE_BIAS,
+					    &sem->count) < 0))
 		rwsem_wake(sem);
 }
 
 /*
  * implement atomic add functionality
  */
-static inline void rwsem_atomic_add(int delta, struct rw_semaphore *sem)
+static inline void rwsem_atomic_add(long delta, struct rw_semaphore *sem)
 {
-	atomic_add(delta, (atomic_t *)(&sem->count));
+	atomic_long_add(delta, &sem->count);
 }
 
 /*
@@ -149,9 +158,9 @@ static inline void rwsem_atomic_add(int delta, struct rw_semaphore *sem)
  */
 static inline void __downgrade_write(struct rw_semaphore *sem)
 {
-	int tmp;
+	long tmp;
 
-	tmp = atomic_add_return(-RWSEM_WAITING_BIAS, (atomic_t *)(&sem->count));
+	tmp = atomic_long_add_return(-RWSEM_WAITING_BIAS, &sem->count);
 	if (tmp < 0)
 		rwsem_downgrade_wake(sem);
 }
@@ -159,14 +168,14 @@ static inline void __downgrade_write(struct rw_semaphore *sem)
 /*
  * implement exchange and add functionality
  */
-static inline int rwsem_atomic_update(int delta, struct rw_semaphore *sem)
+static inline long rwsem_atomic_update(long delta, struct rw_semaphore *sem)
 {
-	return atomic_add_return(delta, (atomic_t *)(&sem->count));
+	return atomic_long_add_return(delta, &sem->count);
 }
 
 static inline int rwsem_is_locked(struct rw_semaphore *sem)
 {
-	return (sem->count != 0);
+	return atomic_long_read(&sem->count) != 0;
 }
 
 #endif	/* __KERNEL__ */

^ permalink raw reply related	[flat|nested] 548+ messages in thread

* Re: 64-bit ppc rwsem (was: Re: [GIT] Sparc)
  2010-08-18  4:38         ` Benjamin Herrenschmidt
  (?)
@ 2010-08-18  5:03           ` Benjamin Herrenschmidt
  -1 siblings, 0 replies; 548+ messages in thread
From: Benjamin Herrenschmidt @ 2010-08-18  5:03 UTC (permalink / raw)
  To: David Miller
  Cc: torvalds, akpm, sparclinux, linux-kernel, paulus, linuxppc-dev

On Wed, 2010-08-18 at 14:38 +1000, Benjamin Herrenschmidt wrote:
> 
> Here's an untested patch for the folks on linuxppc-dev to look at,
> I'll
> review my own stuff & test tomorrow. 

Allright, gcc's being a pain, and atomics are a struct so we can't that
easily assign.

I tried various tricks but so far they didn't work. I'll have another
look tomorrow, but I may end up having to keep all the crap typecasts.

Cheers,
Ben.



^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: 64-bit ppc rwsem (was: Re: [GIT] Sparc)
@ 2010-08-18  5:03           ` Benjamin Herrenschmidt
  0 siblings, 0 replies; 548+ messages in thread
From: Benjamin Herrenschmidt @ 2010-08-18  5:03 UTC (permalink / raw)
  To: David Miller
  Cc: torvalds, paulus, linux-kernel, sparclinux, akpm, linuxppc-dev

On Wed, 2010-08-18 at 14:38 +1000, Benjamin Herrenschmidt wrote:
> 
> Here's an untested patch for the folks on linuxppc-dev to look at,
> I'll
> review my own stuff & test tomorrow. 

Allright, gcc's being a pain, and atomics are a struct so we can't that
easily assign.

I tried various tricks but so far they didn't work. I'll have another
look tomorrow, but I may end up having to keep all the crap typecasts.

Cheers,
Ben.



^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: 64-bit ppc rwsem (was: Re: [GIT] Sparc)
@ 2010-08-18  5:03           ` Benjamin Herrenschmidt
  0 siblings, 0 replies; 548+ messages in thread
From: Benjamin Herrenschmidt @ 2010-08-18  5:03 UTC (permalink / raw)
  To: David Miller
  Cc: torvalds, paulus, linux-kernel, sparclinux, akpm, linuxppc-dev

On Wed, 2010-08-18 at 14:38 +1000, Benjamin Herrenschmidt wrote:
> 
> Here's an untested patch for the folks on linuxppc-dev to look at,
> I'll
> review my own stuff & test tomorrow. 

Allright, gcc's being a pain, and atomics are a struct so we can't that
easily assign.

I tried various tricks but so far they didn't work. I'll have another
look tomorrow, but I may end up having to keep all the crap typecasts.

Cheers,
Ben.

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: 64-bit ppc rwsem
  2010-08-18  5:03           ` Benjamin Herrenschmidt
  (?)
@ 2010-08-18  5:28             ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2010-08-18  5:28 UTC (permalink / raw)
  To: benh; +Cc: torvalds, akpm, sparclinux, linux-kernel, paulus, linuxppc-dev

From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Date: Wed, 18 Aug 2010 15:03:23 +1000

> I tried various tricks but so far they didn't work. I'll have another
> look tomorrow, but I may end up having to keep all the crap typecasts.

The casts are pretty much unavoidable.

Here's what I'm going to end up using on sparc64:

--------------------
sparc64: Make rwsems 64-bit.

Basically tip-off the powerpc code, use a 64-bit type and atomic64_t
interfaces for the implementation.

This gets us off of the by-hand asm code I wrote, which frankly I
think probably ruins I-cache hit rates.

The idea was the keep the call chains less deep, but anything taking
the rw-semaphores probably is also calling other stuff and therefore
already has allocated a stack-frame.  So no real stack frame savings
ever.

Ben H. has posted patches to make powerpc use 64-bit too and with some
abstractions we can probably use a shared header file somewhere.

Signed-off-by: David S. Miller <davem@davemloft.net>
---
 arch/sparc/include/asm/rwsem-const.h |   12 ---
 arch/sparc/include/asm/rwsem.h       |  120 +++++++++++++++++++++----
 arch/sparc/lib/Makefile              |    2 +-
 arch/sparc/lib/rwsem_64.S            |  163 ----------------------------------
 4 files changed, 104 insertions(+), 193 deletions(-)
 delete mode 100644 arch/sparc/include/asm/rwsem-const.h
 delete mode 100644 arch/sparc/lib/rwsem_64.S

diff --git a/arch/sparc/include/asm/rwsem-const.h b/arch/sparc/include/asm/rwsem-const.h
deleted file mode 100644
index e4c61a1..0000000
--- a/arch/sparc/include/asm/rwsem-const.h
+++ /dev/null
@@ -1,12 +0,0 @@
-/* rwsem-const.h: RW semaphore counter constants.  */
-#ifndef _SPARC64_RWSEM_CONST_H
-#define _SPARC64_RWSEM_CONST_H
-
-#define RWSEM_UNLOCKED_VALUE		0x00000000
-#define RWSEM_ACTIVE_BIAS		0x00000001
-#define RWSEM_ACTIVE_MASK		0x0000ffff
-#define RWSEM_WAITING_BIAS		(-0x00010000)
-#define RWSEM_ACTIVE_READ_BIAS		RWSEM_ACTIVE_BIAS
-#define RWSEM_ACTIVE_WRITE_BIAS		(RWSEM_WAITING_BIAS + RWSEM_ACTIVE_BIAS)
-
-#endif /* _SPARC64_RWSEM_CONST_H */
diff --git a/arch/sparc/include/asm/rwsem.h b/arch/sparc/include/asm/rwsem.h
index 6e56210..a2b4302 100644
--- a/arch/sparc/include/asm/rwsem.h
+++ b/arch/sparc/include/asm/rwsem.h
@@ -15,16 +15,21 @@
 
 #include <linux/list.h>
 #include <linux/spinlock.h>
-#include <asm/rwsem-const.h>
 
 struct rwsem_waiter;
 
 struct rw_semaphore {
-	signed int count;
-	spinlock_t		wait_lock;
-	struct list_head	wait_list;
+	signed long			count;
+#define RWSEM_UNLOCKED_VALUE		0x00000000L
+#define RWSEM_ACTIVE_BIAS		0x00000001L
+#define RWSEM_ACTIVE_MASK		0xffffffffL
+#define RWSEM_WAITING_BIAS		(-RWSEM_ACTIVE_MASK-1)
+#define RWSEM_ACTIVE_READ_BIAS		RWSEM_ACTIVE_BIAS
+#define RWSEM_ACTIVE_WRITE_BIAS		(RWSEM_WAITING_BIAS + RWSEM_ACTIVE_BIAS)
+	spinlock_t			wait_lock;
+	struct list_head		wait_list;
 #ifdef CONFIG_DEBUG_LOCK_ALLOC
-	struct lockdep_map	dep_map;
+	struct lockdep_map		dep_map;
 #endif
 };
 
@@ -41,6 +46,11 @@ struct rw_semaphore {
 #define DECLARE_RWSEM(name) \
 	struct rw_semaphore name = __RWSEM_INITIALIZER(name)
 
+extern struct rw_semaphore *rwsem_down_read_failed(struct rw_semaphore *sem);
+extern struct rw_semaphore *rwsem_down_write_failed(struct rw_semaphore *sem);
+extern struct rw_semaphore *rwsem_wake(struct rw_semaphore *sem);
+extern struct rw_semaphore *rwsem_downgrade_wake(struct rw_semaphore *sem);
+
 extern void __init_rwsem(struct rw_semaphore *sem, const char *name,
 			 struct lock_class_key *key);
 
@@ -51,27 +61,103 @@ do {								\
 	__init_rwsem((sem), #sem, &__key);			\
 } while (0)
 
-extern void __down_read(struct rw_semaphore *sem);
-extern int __down_read_trylock(struct rw_semaphore *sem);
-extern void __down_write(struct rw_semaphore *sem);
-extern int __down_write_trylock(struct rw_semaphore *sem);
-extern void __up_read(struct rw_semaphore *sem);
-extern void __up_write(struct rw_semaphore *sem);
-extern void __downgrade_write(struct rw_semaphore *sem);
+/*
+ * lock for reading
+ */
+static inline void __down_read(struct rw_semaphore *sem)
+{
+	if (unlikely(atomic64_inc_return((atomic64_t *)(&sem->count)) <= 0L))
+		rwsem_down_read_failed(sem);
+}
+
+static inline int __down_read_trylock(struct rw_semaphore *sem)
+{
+	long tmp;
+
+	while ((tmp = sem->count) >= 0L) {
+		if (tmp == cmpxchg(&sem->count, tmp,
+				   tmp + RWSEM_ACTIVE_READ_BIAS)) {
+			return 1;
+		}
+	}
+	return 0;
+}
 
+/*
+ * lock for writing
+ */
 static inline void __down_write_nested(struct rw_semaphore *sem, int subclass)
 {
-	__down_write(sem);
+	long tmp;
+
+	tmp = atomic64_add_return(RWSEM_ACTIVE_WRITE_BIAS,
+				  (atomic64_t *)(&sem->count));
+	if (unlikely(tmp != RWSEM_ACTIVE_WRITE_BIAS))
+		rwsem_down_write_failed(sem);
 }
 
-static inline int rwsem_atomic_update(int delta, struct rw_semaphore *sem)
+static inline void __down_write(struct rw_semaphore *sem)
 {
-	return atomic_add_return(delta, (atomic_t *)(&sem->count));
+	__down_write_nested(sem, 0);
+}
+
+static inline int __down_write_trylock(struct rw_semaphore *sem)
+{
+	long tmp;
+
+	tmp = cmpxchg(&sem->count, RWSEM_UNLOCKED_VALUE,
+		      RWSEM_ACTIVE_WRITE_BIAS);
+	return tmp == RWSEM_UNLOCKED_VALUE;
 }
 
-static inline void rwsem_atomic_add(int delta, struct rw_semaphore *sem)
+/*
+ * unlock after reading
+ */
+static inline void __up_read(struct rw_semaphore *sem)
+{
+	long tmp;
+
+	tmp = atomic64_dec_return((atomic64_t *)(&sem->count));
+	if (unlikely(tmp < -1L && (tmp & RWSEM_ACTIVE_MASK) == 0L))
+		rwsem_wake(sem);
+}
+
+/*
+ * unlock after writing
+ */
+static inline void __up_write(struct rw_semaphore *sem)
+{
+	if (unlikely(atomic64_sub_return(RWSEM_ACTIVE_WRITE_BIAS,
+					 (atomic64_t *)(&sem->count)) < 0L))
+		rwsem_wake(sem);
+}
+
+/*
+ * implement atomic add functionality
+ */
+static inline void rwsem_atomic_add(long delta, struct rw_semaphore *sem)
+{
+	atomic64_add(delta, (atomic64_t *)(&sem->count));
+}
+
+/*
+ * downgrade write lock to read lock
+ */
+static inline void __downgrade_write(struct rw_semaphore *sem)
+{
+	long tmp;
+
+	tmp = atomic64_add_return(-RWSEM_WAITING_BIAS, (atomic64_t *)(&sem->count));
+	if (tmp < 0L)
+		rwsem_downgrade_wake(sem);
+}
+
+/*
+ * implement exchange and add functionality
+ */
+static inline long rwsem_atomic_update(long delta, struct rw_semaphore *sem)
 {
-	atomic_add(delta, (atomic_t *)(&sem->count));
+	return atomic64_add_return(delta, (atomic64_t *)(&sem->count));
 }
 
 static inline int rwsem_is_locked(struct rw_semaphore *sem)
diff --git a/arch/sparc/lib/Makefile b/arch/sparc/lib/Makefile
index c4b5e03..fa4c3ea 100644
--- a/arch/sparc/lib/Makefile
+++ b/arch/sparc/lib/Makefile
@@ -15,7 +15,7 @@ lib-$(CONFIG_SPARC32) += divdi3.o udivdi3.o
 lib-$(CONFIG_SPARC32) += copy_user.o locks.o
 lib-y                 += atomic_$(BITS).o
 lib-$(CONFIG_SPARC32) += lshrdi3.o ashldi3.o
-lib-y                 += rwsem_$(BITS).o
+lib-$(CONFIG_SPARC32) += rwsem_$(BITS).o
 lib-$(CONFIG_SPARC32) += muldi3.o bitext.o cmpdi2.o
 
 lib-$(CONFIG_SPARC64) += copy_page.o clear_page.o bzero.o
diff --git a/arch/sparc/lib/rwsem_64.S b/arch/sparc/lib/rwsem_64.S
deleted file mode 100644
index 91a7d29..0000000
--- a/arch/sparc/lib/rwsem_64.S
+++ /dev/null
@@ -1,163 +0,0 @@
-/* rwsem.S: RW semaphore assembler.
- *
- * Written by David S. Miller (davem@redhat.com), 2001.
- * Derived from asm-i386/rwsem.h
- */
-
-#include <asm/rwsem-const.h>
-
-	.section	.sched.text, "ax"
-
-	.globl		__down_read
-__down_read:
-1:	lduw		[%o0], %g1
-	add		%g1, 1, %g7
-	cas		[%o0], %g1, %g7
-	cmp		%g1, %g7
-	bne,pn		%icc, 1b
-	 add		%g7, 1, %g7
-	cmp		%g7, 0
-	bl,pn		%icc, 3f
-	 nop
-2:
-	retl
-	 nop
-3:
-	save		%sp, -192, %sp
-	call		rwsem_down_read_failed
-	 mov		%i0, %o0
-	ret
-	 restore
-	.size		__down_read, .-__down_read
-
-	.globl		__down_read_trylock
-__down_read_trylock:
-1:	lduw		[%o0], %g1
-	add		%g1, 1, %g7
-	cmp		%g7, 0
-	bl,pn		%icc, 2f
-	 mov		0, %o1
-	cas		[%o0], %g1, %g7
-	cmp		%g1, %g7
-	bne,pn		%icc, 1b
-	 mov		1, %o1
-2:	retl
-	 mov		%o1, %o0
-	.size		__down_read_trylock, .-__down_read_trylock
-
-	.globl		__down_write
-__down_write:
-	sethi		%hi(RWSEM_ACTIVE_WRITE_BIAS), %g1
-	or		%g1, %lo(RWSEM_ACTIVE_WRITE_BIAS), %g1
-1:
-	lduw		[%o0], %g3
-	add		%g3, %g1, %g7
-	cas		[%o0], %g3, %g7
-	cmp		%g3, %g7
-	bne,pn		%icc, 1b
-	 cmp		%g7, 0
-	bne,pn		%icc, 3f
-	 nop
-2:	retl
-	 nop
-3:
-	save		%sp, -192, %sp
-	call		rwsem_down_write_failed
-	 mov		%i0, %o0
-	ret
-	 restore
-	.size		__down_write, .-__down_write
-
-	.globl		__down_write_trylock
-__down_write_trylock:
-	sethi		%hi(RWSEM_ACTIVE_WRITE_BIAS), %g1
-	or		%g1, %lo(RWSEM_ACTIVE_WRITE_BIAS), %g1
-1:
-	lduw		[%o0], %g3
-	cmp		%g3, 0
-	bne,pn		%icc, 2f
-	 mov		0, %o1
-	add		%g3, %g1, %g7
-	cas		[%o0], %g3, %g7
-	cmp		%g3, %g7
-	bne,pn		%icc, 1b
-	 mov		1, %o1
-2:	retl
-	 mov		%o1, %o0
-	.size		__down_write_trylock, .-__down_write_trylock
-
-	.globl		__up_read
-__up_read:
-1:
-	lduw		[%o0], %g1
-	sub		%g1, 1, %g7
-	cas		[%o0], %g1, %g7
-	cmp		%g1, %g7
-	bne,pn		%icc, 1b
-	 cmp		%g7, 0
-	bl,pn		%icc, 3f
-	 nop
-2:	retl
-	 nop
-3:	sethi		%hi(RWSEM_ACTIVE_MASK), %g1
-	sub		%g7, 1, %g7
-	or		%g1, %lo(RWSEM_ACTIVE_MASK), %g1
-	andcc		%g7, %g1, %g0
-	bne,pn		%icc, 2b
-	 nop
-	save		%sp, -192, %sp
-	call		rwsem_wake
-	 mov		%i0, %o0
-	ret
-	 restore
-	.size		__up_read, .-__up_read
-
-	.globl		__up_write
-__up_write:
-	sethi		%hi(RWSEM_ACTIVE_WRITE_BIAS), %g1
-	or		%g1, %lo(RWSEM_ACTIVE_WRITE_BIAS), %g1
-1:
-	lduw		[%o0], %g3
-	sub		%g3, %g1, %g7
-	cas		[%o0], %g3, %g7
-	cmp		%g3, %g7
-	bne,pn		%icc, 1b
-	 sub		%g7, %g1, %g7
-	cmp		%g7, 0
-	bl,pn		%icc, 3f
-	 nop
-2:
-	retl
-	 nop
-3:
-	save		%sp, -192, %sp
-	call		rwsem_wake
-	 mov		%i0, %o0
-	ret
-	 restore
-	.size		__up_write, .-__up_write
-
-	.globl		__downgrade_write
-__downgrade_write:
-	sethi		%hi(RWSEM_WAITING_BIAS), %g1
-	or		%g1, %lo(RWSEM_WAITING_BIAS), %g1
-1:
-	lduw		[%o0], %g3
-	sub		%g3, %g1, %g7
-	cas		[%o0], %g3, %g7
-	cmp		%g3, %g7
-	bne,pn		%icc, 1b
-	 sub		%g7, %g1, %g7
-	cmp		%g7, 0
-	bl,pn		%icc, 3f
-	 nop
-2:
-	retl
-	 nop
-3:
-	save		%sp, -192, %sp
-	call		rwsem_downgrade_wake
-	 mov		%i0, %o0
-	ret
-	 restore
-	.size		__downgrade_write, .-__downgrade_write
-- 
1.7.2.1


^ permalink raw reply related	[flat|nested] 548+ messages in thread

* Re: 64-bit ppc rwsem
@ 2010-08-18  5:28             ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2010-08-18  5:28 UTC (permalink / raw)
  To: benh; +Cc: torvalds, paulus, linux-kernel, sparclinux, akpm, linuxppc-dev

From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Date: Wed, 18 Aug 2010 15:03:23 +1000

> I tried various tricks but so far they didn't work. I'll have another
> look tomorrow, but I may end up having to keep all the crap typecasts.

The casts are pretty much unavoidable.

Here's what I'm going to end up using on sparc64:

--------------------
sparc64: Make rwsems 64-bit.

Basically tip-off the powerpc code, use a 64-bit type and atomic64_t
interfaces for the implementation.

This gets us off of the by-hand asm code I wrote, which frankly I
think probably ruins I-cache hit rates.

The idea was the keep the call chains less deep, but anything taking
the rw-semaphores probably is also calling other stuff and therefore
already has allocated a stack-frame.  So no real stack frame savings
ever.

Ben H. has posted patches to make powerpc use 64-bit too and with some
abstractions we can probably use a shared header file somewhere.

Signed-off-by: David S. Miller <davem@davemloft.net>
---
 arch/sparc/include/asm/rwsem-const.h |   12 ---
 arch/sparc/include/asm/rwsem.h       |  120 +++++++++++++++++++++----
 arch/sparc/lib/Makefile              |    2 +-
 arch/sparc/lib/rwsem_64.S            |  163 ----------------------------------
 4 files changed, 104 insertions(+), 193 deletions(-)
 delete mode 100644 arch/sparc/include/asm/rwsem-const.h
 delete mode 100644 arch/sparc/lib/rwsem_64.S

diff --git a/arch/sparc/include/asm/rwsem-const.h b/arch/sparc/include/asm/rwsem-const.h
deleted file mode 100644
index e4c61a1..0000000
--- a/arch/sparc/include/asm/rwsem-const.h
+++ /dev/null
@@ -1,12 +0,0 @@
-/* rwsem-const.h: RW semaphore counter constants.  */
-#ifndef _SPARC64_RWSEM_CONST_H
-#define _SPARC64_RWSEM_CONST_H
-
-#define RWSEM_UNLOCKED_VALUE		0x00000000
-#define RWSEM_ACTIVE_BIAS		0x00000001
-#define RWSEM_ACTIVE_MASK		0x0000ffff
-#define RWSEM_WAITING_BIAS		(-0x00010000)
-#define RWSEM_ACTIVE_READ_BIAS		RWSEM_ACTIVE_BIAS
-#define RWSEM_ACTIVE_WRITE_BIAS		(RWSEM_WAITING_BIAS + RWSEM_ACTIVE_BIAS)
-
-#endif /* _SPARC64_RWSEM_CONST_H */
diff --git a/arch/sparc/include/asm/rwsem.h b/arch/sparc/include/asm/rwsem.h
index 6e56210..a2b4302 100644
--- a/arch/sparc/include/asm/rwsem.h
+++ b/arch/sparc/include/asm/rwsem.h
@@ -15,16 +15,21 @@
 
 #include <linux/list.h>
 #include <linux/spinlock.h>
-#include <asm/rwsem-const.h>
 
 struct rwsem_waiter;
 
 struct rw_semaphore {
-	signed int count;
-	spinlock_t		wait_lock;
-	struct list_head	wait_list;
+	signed long			count;
+#define RWSEM_UNLOCKED_VALUE		0x00000000L
+#define RWSEM_ACTIVE_BIAS		0x00000001L
+#define RWSEM_ACTIVE_MASK		0xffffffffL
+#define RWSEM_WAITING_BIAS		(-RWSEM_ACTIVE_MASK-1)
+#define RWSEM_ACTIVE_READ_BIAS		RWSEM_ACTIVE_BIAS
+#define RWSEM_ACTIVE_WRITE_BIAS		(RWSEM_WAITING_BIAS + RWSEM_ACTIVE_BIAS)
+	spinlock_t			wait_lock;
+	struct list_head		wait_list;
 #ifdef CONFIG_DEBUG_LOCK_ALLOC
-	struct lockdep_map	dep_map;
+	struct lockdep_map		dep_map;
 #endif
 };
 
@@ -41,6 +46,11 @@ struct rw_semaphore {
 #define DECLARE_RWSEM(name) \
 	struct rw_semaphore name = __RWSEM_INITIALIZER(name)
 
+extern struct rw_semaphore *rwsem_down_read_failed(struct rw_semaphore *sem);
+extern struct rw_semaphore *rwsem_down_write_failed(struct rw_semaphore *sem);
+extern struct rw_semaphore *rwsem_wake(struct rw_semaphore *sem);
+extern struct rw_semaphore *rwsem_downgrade_wake(struct rw_semaphore *sem);
+
 extern void __init_rwsem(struct rw_semaphore *sem, const char *name,
 			 struct lock_class_key *key);
 
@@ -51,27 +61,103 @@ do {								\
 	__init_rwsem((sem), #sem, &__key);			\
 } while (0)
 
-extern void __down_read(struct rw_semaphore *sem);
-extern int __down_read_trylock(struct rw_semaphore *sem);
-extern void __down_write(struct rw_semaphore *sem);
-extern int __down_write_trylock(struct rw_semaphore *sem);
-extern void __up_read(struct rw_semaphore *sem);
-extern void __up_write(struct rw_semaphore *sem);
-extern void __downgrade_write(struct rw_semaphore *sem);
+/*
+ * lock for reading
+ */
+static inline void __down_read(struct rw_semaphore *sem)
+{
+	if (unlikely(atomic64_inc_return((atomic64_t *)(&sem->count)) <= 0L))
+		rwsem_down_read_failed(sem);
+}
+
+static inline int __down_read_trylock(struct rw_semaphore *sem)
+{
+	long tmp;
+
+	while ((tmp = sem->count) >= 0L) {
+		if (tmp = cmpxchg(&sem->count, tmp,
+				   tmp + RWSEM_ACTIVE_READ_BIAS)) {
+			return 1;
+		}
+	}
+	return 0;
+}
 
+/*
+ * lock for writing
+ */
 static inline void __down_write_nested(struct rw_semaphore *sem, int subclass)
 {
-	__down_write(sem);
+	long tmp;
+
+	tmp = atomic64_add_return(RWSEM_ACTIVE_WRITE_BIAS,
+				  (atomic64_t *)(&sem->count));
+	if (unlikely(tmp != RWSEM_ACTIVE_WRITE_BIAS))
+		rwsem_down_write_failed(sem);
 }
 
-static inline int rwsem_atomic_update(int delta, struct rw_semaphore *sem)
+static inline void __down_write(struct rw_semaphore *sem)
 {
-	return atomic_add_return(delta, (atomic_t *)(&sem->count));
+	__down_write_nested(sem, 0);
+}
+
+static inline int __down_write_trylock(struct rw_semaphore *sem)
+{
+	long tmp;
+
+	tmp = cmpxchg(&sem->count, RWSEM_UNLOCKED_VALUE,
+		      RWSEM_ACTIVE_WRITE_BIAS);
+	return tmp = RWSEM_UNLOCKED_VALUE;
 }
 
-static inline void rwsem_atomic_add(int delta, struct rw_semaphore *sem)
+/*
+ * unlock after reading
+ */
+static inline void __up_read(struct rw_semaphore *sem)
+{
+	long tmp;
+
+	tmp = atomic64_dec_return((atomic64_t *)(&sem->count));
+	if (unlikely(tmp < -1L && (tmp & RWSEM_ACTIVE_MASK) = 0L))
+		rwsem_wake(sem);
+}
+
+/*
+ * unlock after writing
+ */
+static inline void __up_write(struct rw_semaphore *sem)
+{
+	if (unlikely(atomic64_sub_return(RWSEM_ACTIVE_WRITE_BIAS,
+					 (atomic64_t *)(&sem->count)) < 0L))
+		rwsem_wake(sem);
+}
+
+/*
+ * implement atomic add functionality
+ */
+static inline void rwsem_atomic_add(long delta, struct rw_semaphore *sem)
+{
+	atomic64_add(delta, (atomic64_t *)(&sem->count));
+}
+
+/*
+ * downgrade write lock to read lock
+ */
+static inline void __downgrade_write(struct rw_semaphore *sem)
+{
+	long tmp;
+
+	tmp = atomic64_add_return(-RWSEM_WAITING_BIAS, (atomic64_t *)(&sem->count));
+	if (tmp < 0L)
+		rwsem_downgrade_wake(sem);
+}
+
+/*
+ * implement exchange and add functionality
+ */
+static inline long rwsem_atomic_update(long delta, struct rw_semaphore *sem)
 {
-	atomic_add(delta, (atomic_t *)(&sem->count));
+	return atomic64_add_return(delta, (atomic64_t *)(&sem->count));
 }
 
 static inline int rwsem_is_locked(struct rw_semaphore *sem)
diff --git a/arch/sparc/lib/Makefile b/arch/sparc/lib/Makefile
index c4b5e03..fa4c3ea 100644
--- a/arch/sparc/lib/Makefile
+++ b/arch/sparc/lib/Makefile
@@ -15,7 +15,7 @@ lib-$(CONFIG_SPARC32) += divdi3.o udivdi3.o
 lib-$(CONFIG_SPARC32) += copy_user.o locks.o
 lib-y                 += atomic_$(BITS).o
 lib-$(CONFIG_SPARC32) += lshrdi3.o ashldi3.o
-lib-y                 += rwsem_$(BITS).o
+lib-$(CONFIG_SPARC32) += rwsem_$(BITS).o
 lib-$(CONFIG_SPARC32) += muldi3.o bitext.o cmpdi2.o
 
 lib-$(CONFIG_SPARC64) += copy_page.o clear_page.o bzero.o
diff --git a/arch/sparc/lib/rwsem_64.S b/arch/sparc/lib/rwsem_64.S
deleted file mode 100644
index 91a7d29..0000000
--- a/arch/sparc/lib/rwsem_64.S
+++ /dev/null
@@ -1,163 +0,0 @@
-/* rwsem.S: RW semaphore assembler.
- *
- * Written by David S. Miller (davem@redhat.com), 2001.
- * Derived from asm-i386/rwsem.h
- */
-
-#include <asm/rwsem-const.h>
-
-	.section	.sched.text, "ax"
-
-	.globl		__down_read
-__down_read:
-1:	lduw		[%o0], %g1
-	add		%g1, 1, %g7
-	cas		[%o0], %g1, %g7
-	cmp		%g1, %g7
-	bne,pn		%icc, 1b
-	 add		%g7, 1, %g7
-	cmp		%g7, 0
-	bl,pn		%icc, 3f
-	 nop
-2:
-	retl
-	 nop
-3:
-	save		%sp, -192, %sp
-	call		rwsem_down_read_failed
-	 mov		%i0, %o0
-	ret
-	 restore
-	.size		__down_read, .-__down_read
-
-	.globl		__down_read_trylock
-__down_read_trylock:
-1:	lduw		[%o0], %g1
-	add		%g1, 1, %g7
-	cmp		%g7, 0
-	bl,pn		%icc, 2f
-	 mov		0, %o1
-	cas		[%o0], %g1, %g7
-	cmp		%g1, %g7
-	bne,pn		%icc, 1b
-	 mov		1, %o1
-2:	retl
-	 mov		%o1, %o0
-	.size		__down_read_trylock, .-__down_read_trylock
-
-	.globl		__down_write
-__down_write:
-	sethi		%hi(RWSEM_ACTIVE_WRITE_BIAS), %g1
-	or		%g1, %lo(RWSEM_ACTIVE_WRITE_BIAS), %g1
-1:
-	lduw		[%o0], %g3
-	add		%g3, %g1, %g7
-	cas		[%o0], %g3, %g7
-	cmp		%g3, %g7
-	bne,pn		%icc, 1b
-	 cmp		%g7, 0
-	bne,pn		%icc, 3f
-	 nop
-2:	retl
-	 nop
-3:
-	save		%sp, -192, %sp
-	call		rwsem_down_write_failed
-	 mov		%i0, %o0
-	ret
-	 restore
-	.size		__down_write, .-__down_write
-
-	.globl		__down_write_trylock
-__down_write_trylock:
-	sethi		%hi(RWSEM_ACTIVE_WRITE_BIAS), %g1
-	or		%g1, %lo(RWSEM_ACTIVE_WRITE_BIAS), %g1
-1:
-	lduw		[%o0], %g3
-	cmp		%g3, 0
-	bne,pn		%icc, 2f
-	 mov		0, %o1
-	add		%g3, %g1, %g7
-	cas		[%o0], %g3, %g7
-	cmp		%g3, %g7
-	bne,pn		%icc, 1b
-	 mov		1, %o1
-2:	retl
-	 mov		%o1, %o0
-	.size		__down_write_trylock, .-__down_write_trylock
-
-	.globl		__up_read
-__up_read:
-1:
-	lduw		[%o0], %g1
-	sub		%g1, 1, %g7
-	cas		[%o0], %g1, %g7
-	cmp		%g1, %g7
-	bne,pn		%icc, 1b
-	 cmp		%g7, 0
-	bl,pn		%icc, 3f
-	 nop
-2:	retl
-	 nop
-3:	sethi		%hi(RWSEM_ACTIVE_MASK), %g1
-	sub		%g7, 1, %g7
-	or		%g1, %lo(RWSEM_ACTIVE_MASK), %g1
-	andcc		%g7, %g1, %g0
-	bne,pn		%icc, 2b
-	 nop
-	save		%sp, -192, %sp
-	call		rwsem_wake
-	 mov		%i0, %o0
-	ret
-	 restore
-	.size		__up_read, .-__up_read
-
-	.globl		__up_write
-__up_write:
-	sethi		%hi(RWSEM_ACTIVE_WRITE_BIAS), %g1
-	or		%g1, %lo(RWSEM_ACTIVE_WRITE_BIAS), %g1
-1:
-	lduw		[%o0], %g3
-	sub		%g3, %g1, %g7
-	cas		[%o0], %g3, %g7
-	cmp		%g3, %g7
-	bne,pn		%icc, 1b
-	 sub		%g7, %g1, %g7
-	cmp		%g7, 0
-	bl,pn		%icc, 3f
-	 nop
-2:
-	retl
-	 nop
-3:
-	save		%sp, -192, %sp
-	call		rwsem_wake
-	 mov		%i0, %o0
-	ret
-	 restore
-	.size		__up_write, .-__up_write
-
-	.globl		__downgrade_write
-__downgrade_write:
-	sethi		%hi(RWSEM_WAITING_BIAS), %g1
-	or		%g1, %lo(RWSEM_WAITING_BIAS), %g1
-1:
-	lduw		[%o0], %g3
-	sub		%g3, %g1, %g7
-	cas		[%o0], %g3, %g7
-	cmp		%g3, %g7
-	bne,pn		%icc, 1b
-	 sub		%g7, %g1, %g7
-	cmp		%g7, 0
-	bl,pn		%icc, 3f
-	 nop
-2:
-	retl
-	 nop
-3:
-	save		%sp, -192, %sp
-	call		rwsem_downgrade_wake
-	 mov		%i0, %o0
-	ret
-	 restore
-	.size		__downgrade_write, .-__downgrade_write
-- 
1.7.2.1


^ permalink raw reply related	[flat|nested] 548+ messages in thread

* Re: 64-bit ppc rwsem
@ 2010-08-18  5:28             ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2010-08-18  5:28 UTC (permalink / raw)
  To: benh; +Cc: torvalds, paulus, linux-kernel, sparclinux, akpm, linuxppc-dev

From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Date: Wed, 18 Aug 2010 15:03:23 +1000

> I tried various tricks but so far they didn't work. I'll have another
> look tomorrow, but I may end up having to keep all the crap typecasts.

The casts are pretty much unavoidable.

Here's what I'm going to end up using on sparc64:

--------------------
sparc64: Make rwsems 64-bit.

Basically tip-off the powerpc code, use a 64-bit type and atomic64_t
interfaces for the implementation.

This gets us off of the by-hand asm code I wrote, which frankly I
think probably ruins I-cache hit rates.

The idea was the keep the call chains less deep, but anything taking
the rw-semaphores probably is also calling other stuff and therefore
already has allocated a stack-frame.  So no real stack frame savings
ever.

Ben H. has posted patches to make powerpc use 64-bit too and with some
abstractions we can probably use a shared header file somewhere.

Signed-off-by: David S. Miller <davem@davemloft.net>
---
 arch/sparc/include/asm/rwsem-const.h |   12 ---
 arch/sparc/include/asm/rwsem.h       |  120 +++++++++++++++++++++----
 arch/sparc/lib/Makefile              |    2 +-
 arch/sparc/lib/rwsem_64.S            |  163 ----------------------------------
 4 files changed, 104 insertions(+), 193 deletions(-)
 delete mode 100644 arch/sparc/include/asm/rwsem-const.h
 delete mode 100644 arch/sparc/lib/rwsem_64.S

diff --git a/arch/sparc/include/asm/rwsem-const.h b/arch/sparc/include/asm/rwsem-const.h
deleted file mode 100644
index e4c61a1..0000000
--- a/arch/sparc/include/asm/rwsem-const.h
+++ /dev/null
@@ -1,12 +0,0 @@
-/* rwsem-const.h: RW semaphore counter constants.  */
-#ifndef _SPARC64_RWSEM_CONST_H
-#define _SPARC64_RWSEM_CONST_H
-
-#define RWSEM_UNLOCKED_VALUE		0x00000000
-#define RWSEM_ACTIVE_BIAS		0x00000001
-#define RWSEM_ACTIVE_MASK		0x0000ffff
-#define RWSEM_WAITING_BIAS		(-0x00010000)
-#define RWSEM_ACTIVE_READ_BIAS		RWSEM_ACTIVE_BIAS
-#define RWSEM_ACTIVE_WRITE_BIAS		(RWSEM_WAITING_BIAS + RWSEM_ACTIVE_BIAS)
-
-#endif /* _SPARC64_RWSEM_CONST_H */
diff --git a/arch/sparc/include/asm/rwsem.h b/arch/sparc/include/asm/rwsem.h
index 6e56210..a2b4302 100644
--- a/arch/sparc/include/asm/rwsem.h
+++ b/arch/sparc/include/asm/rwsem.h
@@ -15,16 +15,21 @@
 
 #include <linux/list.h>
 #include <linux/spinlock.h>
-#include <asm/rwsem-const.h>
 
 struct rwsem_waiter;
 
 struct rw_semaphore {
-	signed int count;
-	spinlock_t		wait_lock;
-	struct list_head	wait_list;
+	signed long			count;
+#define RWSEM_UNLOCKED_VALUE		0x00000000L
+#define RWSEM_ACTIVE_BIAS		0x00000001L
+#define RWSEM_ACTIVE_MASK		0xffffffffL
+#define RWSEM_WAITING_BIAS		(-RWSEM_ACTIVE_MASK-1)
+#define RWSEM_ACTIVE_READ_BIAS		RWSEM_ACTIVE_BIAS
+#define RWSEM_ACTIVE_WRITE_BIAS		(RWSEM_WAITING_BIAS + RWSEM_ACTIVE_BIAS)
+	spinlock_t			wait_lock;
+	struct list_head		wait_list;
 #ifdef CONFIG_DEBUG_LOCK_ALLOC
-	struct lockdep_map	dep_map;
+	struct lockdep_map		dep_map;
 #endif
 };
 
@@ -41,6 +46,11 @@ struct rw_semaphore {
 #define DECLARE_RWSEM(name) \
 	struct rw_semaphore name = __RWSEM_INITIALIZER(name)
 
+extern struct rw_semaphore *rwsem_down_read_failed(struct rw_semaphore *sem);
+extern struct rw_semaphore *rwsem_down_write_failed(struct rw_semaphore *sem);
+extern struct rw_semaphore *rwsem_wake(struct rw_semaphore *sem);
+extern struct rw_semaphore *rwsem_downgrade_wake(struct rw_semaphore *sem);
+
 extern void __init_rwsem(struct rw_semaphore *sem, const char *name,
 			 struct lock_class_key *key);
 
@@ -51,27 +61,103 @@ do {								\
 	__init_rwsem((sem), #sem, &__key);			\
 } while (0)
 
-extern void __down_read(struct rw_semaphore *sem);
-extern int __down_read_trylock(struct rw_semaphore *sem);
-extern void __down_write(struct rw_semaphore *sem);
-extern int __down_write_trylock(struct rw_semaphore *sem);
-extern void __up_read(struct rw_semaphore *sem);
-extern void __up_write(struct rw_semaphore *sem);
-extern void __downgrade_write(struct rw_semaphore *sem);
+/*
+ * lock for reading
+ */
+static inline void __down_read(struct rw_semaphore *sem)
+{
+	if (unlikely(atomic64_inc_return((atomic64_t *)(&sem->count)) <= 0L))
+		rwsem_down_read_failed(sem);
+}
+
+static inline int __down_read_trylock(struct rw_semaphore *sem)
+{
+	long tmp;
+
+	while ((tmp = sem->count) >= 0L) {
+		if (tmp == cmpxchg(&sem->count, tmp,
+				   tmp + RWSEM_ACTIVE_READ_BIAS)) {
+			return 1;
+		}
+	}
+	return 0;
+}
 
+/*
+ * lock for writing
+ */
 static inline void __down_write_nested(struct rw_semaphore *sem, int subclass)
 {
-	__down_write(sem);
+	long tmp;
+
+	tmp = atomic64_add_return(RWSEM_ACTIVE_WRITE_BIAS,
+				  (atomic64_t *)(&sem->count));
+	if (unlikely(tmp != RWSEM_ACTIVE_WRITE_BIAS))
+		rwsem_down_write_failed(sem);
 }
 
-static inline int rwsem_atomic_update(int delta, struct rw_semaphore *sem)
+static inline void __down_write(struct rw_semaphore *sem)
 {
-	return atomic_add_return(delta, (atomic_t *)(&sem->count));
+	__down_write_nested(sem, 0);
+}
+
+static inline int __down_write_trylock(struct rw_semaphore *sem)
+{
+	long tmp;
+
+	tmp = cmpxchg(&sem->count, RWSEM_UNLOCKED_VALUE,
+		      RWSEM_ACTIVE_WRITE_BIAS);
+	return tmp == RWSEM_UNLOCKED_VALUE;
 }
 
-static inline void rwsem_atomic_add(int delta, struct rw_semaphore *sem)
+/*
+ * unlock after reading
+ */
+static inline void __up_read(struct rw_semaphore *sem)
+{
+	long tmp;
+
+	tmp = atomic64_dec_return((atomic64_t *)(&sem->count));
+	if (unlikely(tmp < -1L && (tmp & RWSEM_ACTIVE_MASK) == 0L))
+		rwsem_wake(sem);
+}
+
+/*
+ * unlock after writing
+ */
+static inline void __up_write(struct rw_semaphore *sem)
+{
+	if (unlikely(atomic64_sub_return(RWSEM_ACTIVE_WRITE_BIAS,
+					 (atomic64_t *)(&sem->count)) < 0L))
+		rwsem_wake(sem);
+}
+
+/*
+ * implement atomic add functionality
+ */
+static inline void rwsem_atomic_add(long delta, struct rw_semaphore *sem)
+{
+	atomic64_add(delta, (atomic64_t *)(&sem->count));
+}
+
+/*
+ * downgrade write lock to read lock
+ */
+static inline void __downgrade_write(struct rw_semaphore *sem)
+{
+	long tmp;
+
+	tmp = atomic64_add_return(-RWSEM_WAITING_BIAS, (atomic64_t *)(&sem->count));
+	if (tmp < 0L)
+		rwsem_downgrade_wake(sem);
+}
+
+/*
+ * implement exchange and add functionality
+ */
+static inline long rwsem_atomic_update(long delta, struct rw_semaphore *sem)
 {
-	atomic_add(delta, (atomic_t *)(&sem->count));
+	return atomic64_add_return(delta, (atomic64_t *)(&sem->count));
 }
 
 static inline int rwsem_is_locked(struct rw_semaphore *sem)
diff --git a/arch/sparc/lib/Makefile b/arch/sparc/lib/Makefile
index c4b5e03..fa4c3ea 100644
--- a/arch/sparc/lib/Makefile
+++ b/arch/sparc/lib/Makefile
@@ -15,7 +15,7 @@ lib-$(CONFIG_SPARC32) += divdi3.o udivdi3.o
 lib-$(CONFIG_SPARC32) += copy_user.o locks.o
 lib-y                 += atomic_$(BITS).o
 lib-$(CONFIG_SPARC32) += lshrdi3.o ashldi3.o
-lib-y                 += rwsem_$(BITS).o
+lib-$(CONFIG_SPARC32) += rwsem_$(BITS).o
 lib-$(CONFIG_SPARC32) += muldi3.o bitext.o cmpdi2.o
 
 lib-$(CONFIG_SPARC64) += copy_page.o clear_page.o bzero.o
diff --git a/arch/sparc/lib/rwsem_64.S b/arch/sparc/lib/rwsem_64.S
deleted file mode 100644
index 91a7d29..0000000
--- a/arch/sparc/lib/rwsem_64.S
+++ /dev/null
@@ -1,163 +0,0 @@
-/* rwsem.S: RW semaphore assembler.
- *
- * Written by David S. Miller (davem@redhat.com), 2001.
- * Derived from asm-i386/rwsem.h
- */
-
-#include <asm/rwsem-const.h>
-
-	.section	.sched.text, "ax"
-
-	.globl		__down_read
-__down_read:
-1:	lduw		[%o0], %g1
-	add		%g1, 1, %g7
-	cas		[%o0], %g1, %g7
-	cmp		%g1, %g7
-	bne,pn		%icc, 1b
-	 add		%g7, 1, %g7
-	cmp		%g7, 0
-	bl,pn		%icc, 3f
-	 nop
-2:
-	retl
-	 nop
-3:
-	save		%sp, -192, %sp
-	call		rwsem_down_read_failed
-	 mov		%i0, %o0
-	ret
-	 restore
-	.size		__down_read, .-__down_read
-
-	.globl		__down_read_trylock
-__down_read_trylock:
-1:	lduw		[%o0], %g1
-	add		%g1, 1, %g7
-	cmp		%g7, 0
-	bl,pn		%icc, 2f
-	 mov		0, %o1
-	cas		[%o0], %g1, %g7
-	cmp		%g1, %g7
-	bne,pn		%icc, 1b
-	 mov		1, %o1
-2:	retl
-	 mov		%o1, %o0
-	.size		__down_read_trylock, .-__down_read_trylock
-
-	.globl		__down_write
-__down_write:
-	sethi		%hi(RWSEM_ACTIVE_WRITE_BIAS), %g1
-	or		%g1, %lo(RWSEM_ACTIVE_WRITE_BIAS), %g1
-1:
-	lduw		[%o0], %g3
-	add		%g3, %g1, %g7
-	cas		[%o0], %g3, %g7
-	cmp		%g3, %g7
-	bne,pn		%icc, 1b
-	 cmp		%g7, 0
-	bne,pn		%icc, 3f
-	 nop
-2:	retl
-	 nop
-3:
-	save		%sp, -192, %sp
-	call		rwsem_down_write_failed
-	 mov		%i0, %o0
-	ret
-	 restore
-	.size		__down_write, .-__down_write
-
-	.globl		__down_write_trylock
-__down_write_trylock:
-	sethi		%hi(RWSEM_ACTIVE_WRITE_BIAS), %g1
-	or		%g1, %lo(RWSEM_ACTIVE_WRITE_BIAS), %g1
-1:
-	lduw		[%o0], %g3
-	cmp		%g3, 0
-	bne,pn		%icc, 2f
-	 mov		0, %o1
-	add		%g3, %g1, %g7
-	cas		[%o0], %g3, %g7
-	cmp		%g3, %g7
-	bne,pn		%icc, 1b
-	 mov		1, %o1
-2:	retl
-	 mov		%o1, %o0
-	.size		__down_write_trylock, .-__down_write_trylock
-
-	.globl		__up_read
-__up_read:
-1:
-	lduw		[%o0], %g1
-	sub		%g1, 1, %g7
-	cas		[%o0], %g1, %g7
-	cmp		%g1, %g7
-	bne,pn		%icc, 1b
-	 cmp		%g7, 0
-	bl,pn		%icc, 3f
-	 nop
-2:	retl
-	 nop
-3:	sethi		%hi(RWSEM_ACTIVE_MASK), %g1
-	sub		%g7, 1, %g7
-	or		%g1, %lo(RWSEM_ACTIVE_MASK), %g1
-	andcc		%g7, %g1, %g0
-	bne,pn		%icc, 2b
-	 nop
-	save		%sp, -192, %sp
-	call		rwsem_wake
-	 mov		%i0, %o0
-	ret
-	 restore
-	.size		__up_read, .-__up_read
-
-	.globl		__up_write
-__up_write:
-	sethi		%hi(RWSEM_ACTIVE_WRITE_BIAS), %g1
-	or		%g1, %lo(RWSEM_ACTIVE_WRITE_BIAS), %g1
-1:
-	lduw		[%o0], %g3
-	sub		%g3, %g1, %g7
-	cas		[%o0], %g3, %g7
-	cmp		%g3, %g7
-	bne,pn		%icc, 1b
-	 sub		%g7, %g1, %g7
-	cmp		%g7, 0
-	bl,pn		%icc, 3f
-	 nop
-2:
-	retl
-	 nop
-3:
-	save		%sp, -192, %sp
-	call		rwsem_wake
-	 mov		%i0, %o0
-	ret
-	 restore
-	.size		__up_write, .-__up_write
-
-	.globl		__downgrade_write
-__downgrade_write:
-	sethi		%hi(RWSEM_WAITING_BIAS), %g1
-	or		%g1, %lo(RWSEM_WAITING_BIAS), %g1
-1:
-	lduw		[%o0], %g3
-	sub		%g3, %g1, %g7
-	cas		[%o0], %g3, %g7
-	cmp		%g3, %g7
-	bne,pn		%icc, 1b
-	 sub		%g7, %g1, %g7
-	cmp		%g7, 0
-	bl,pn		%icc, 3f
-	 nop
-2:
-	retl
-	 nop
-3:
-	save		%sp, -192, %sp
-	call		rwsem_downgrade_wake
-	 mov		%i0, %o0
-	ret
-	 restore
-	.size		__downgrade_write, .-__downgrade_write
-- 
1.7.2.1

^ permalink raw reply related	[flat|nested] 548+ messages in thread

* Re: 64-bit ppc rwsem
  2010-08-18  5:28             ` David Miller
  (?)
@ 2010-08-18  5:39               ` Sam Ravnborg
  -1 siblings, 0 replies; 548+ messages in thread
From: Sam Ravnborg @ 2010-08-18  5:39 UTC (permalink / raw)
  To: David Miller
  Cc: benh, torvalds, akpm, sparclinux, linux-kernel, paulus, linuxppc-dev

> diff --git a/arch/sparc/lib/Makefile b/arch/sparc/lib/Makefile
> index c4b5e03..fa4c3ea 100644
> --- a/arch/sparc/lib/Makefile
> +++ b/arch/sparc/lib/Makefile
> @@ -15,7 +15,7 @@ lib-$(CONFIG_SPARC32) += divdi3.o udivdi3.o
>  lib-$(CONFIG_SPARC32) += copy_user.o locks.o
>  lib-y                 += atomic_$(BITS).o
>  lib-$(CONFIG_SPARC32) += lshrdi3.o ashldi3.o
> -lib-y                 += rwsem_$(BITS).o
> +lib-$(CONFIG_SPARC32) += rwsem_$(BITS).o

You could write this explicit as:

> +lib-$(CONFIG_SPARC32) += rwsem_32.o

As rwsem_64 is gone now.

	Sam

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: 64-bit ppc rwsem
@ 2010-08-18  5:39               ` Sam Ravnborg
  0 siblings, 0 replies; 548+ messages in thread
From: Sam Ravnborg @ 2010-08-18  5:39 UTC (permalink / raw)
  To: David Miller
  Cc: linuxppc-dev, paulus, linux-kernel, sparclinux, akpm, torvalds

> diff --git a/arch/sparc/lib/Makefile b/arch/sparc/lib/Makefile
> index c4b5e03..fa4c3ea 100644
> --- a/arch/sparc/lib/Makefile
> +++ b/arch/sparc/lib/Makefile
> @@ -15,7 +15,7 @@ lib-$(CONFIG_SPARC32) += divdi3.o udivdi3.o
>  lib-$(CONFIG_SPARC32) += copy_user.o locks.o
>  lib-y                 += atomic_$(BITS).o
>  lib-$(CONFIG_SPARC32) += lshrdi3.o ashldi3.o
> -lib-y                 += rwsem_$(BITS).o
> +lib-$(CONFIG_SPARC32) += rwsem_$(BITS).o

You could write this explicit as:

> +lib-$(CONFIG_SPARC32) += rwsem_32.o

As rwsem_64 is gone now.

	Sam

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: 64-bit ppc rwsem
@ 2010-08-18  5:39               ` Sam Ravnborg
  0 siblings, 0 replies; 548+ messages in thread
From: Sam Ravnborg @ 2010-08-18  5:39 UTC (permalink / raw)
  To: David Miller
  Cc: linuxppc-dev, paulus, linux-kernel, sparclinux, akpm, torvalds

> diff --git a/arch/sparc/lib/Makefile b/arch/sparc/lib/Makefile
> index c4b5e03..fa4c3ea 100644
> --- a/arch/sparc/lib/Makefile
> +++ b/arch/sparc/lib/Makefile
> @@ -15,7 +15,7 @@ lib-$(CONFIG_SPARC32) += divdi3.o udivdi3.o
>  lib-$(CONFIG_SPARC32) += copy_user.o locks.o
>  lib-y                 += atomic_$(BITS).o
>  lib-$(CONFIG_SPARC32) += lshrdi3.o ashldi3.o
> -lib-y                 += rwsem_$(BITS).o
> +lib-$(CONFIG_SPARC32) += rwsem_$(BITS).o

You could write this explicit as:

> +lib-$(CONFIG_SPARC32) += rwsem_32.o

As rwsem_64 is gone now.

	Sam

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: 64-bit ppc rwsem
  2010-08-18  5:39               ` Sam Ravnborg
  (?)
@ 2010-08-18  5:48                 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2010-08-18  5:48 UTC (permalink / raw)
  To: sam; +Cc: benh, torvalds, akpm, sparclinux, linux-kernel, paulus, linuxppc-dev

From: Sam Ravnborg <sam@ravnborg.org>
Date: Wed, 18 Aug 2010 07:39:55 +0200

>> @@ -15,7 +15,7 @@ lib-$(CONFIG_SPARC32) += divdi3.o udivdi3.o
>>  lib-$(CONFIG_SPARC32) += copy_user.o locks.o
>>  lib-y                 += atomic_$(BITS).o
>>  lib-$(CONFIG_SPARC32) += lshrdi3.o ashldi3.o
>> -lib-y                 += rwsem_$(BITS).o
>> +lib-$(CONFIG_SPARC32) += rwsem_$(BITS).o
> 
> You could write this explicit as:
> 
>> +lib-$(CONFIG_SPARC32) += rwsem_32.o
> 
> As rwsem_64 is gone now.

Sure, I'll make that change, thanks Sam.

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: 64-bit ppc rwsem
@ 2010-08-18  5:48                 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2010-08-18  5:48 UTC (permalink / raw)
  To: sam; +Cc: linuxppc-dev, paulus, linux-kernel, sparclinux, akpm, torvalds

From: Sam Ravnborg <sam@ravnborg.org>
Date: Wed, 18 Aug 2010 07:39:55 +0200

>> @@ -15,7 +15,7 @@ lib-$(CONFIG_SPARC32) += divdi3.o udivdi3.o
>>  lib-$(CONFIG_SPARC32) += copy_user.o locks.o
>>  lib-y                 += atomic_$(BITS).o
>>  lib-$(CONFIG_SPARC32) += lshrdi3.o ashldi3.o
>> -lib-y                 += rwsem_$(BITS).o
>> +lib-$(CONFIG_SPARC32) += rwsem_$(BITS).o
> 
> You could write this explicit as:
> 
>> +lib-$(CONFIG_SPARC32) += rwsem_32.o
> 
> As rwsem_64 is gone now.

Sure, I'll make that change, thanks Sam.

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: 64-bit ppc rwsem
@ 2010-08-18  5:48                 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2010-08-18  5:48 UTC (permalink / raw)
  To: sam; +Cc: linuxppc-dev, paulus, linux-kernel, sparclinux, akpm, torvalds

From: Sam Ravnborg <sam@ravnborg.org>
Date: Wed, 18 Aug 2010 07:39:55 +0200

>> @@ -15,7 +15,7 @@ lib-$(CONFIG_SPARC32) += divdi3.o udivdi3.o
>>  lib-$(CONFIG_SPARC32) += copy_user.o locks.o
>>  lib-y                 += atomic_$(BITS).o
>>  lib-$(CONFIG_SPARC32) += lshrdi3.o ashldi3.o
>> -lib-y                 += rwsem_$(BITS).o
>> +lib-$(CONFIG_SPARC32) += rwsem_$(BITS).o
> 
> You could write this explicit as:
> 
>> +lib-$(CONFIG_SPARC32) += rwsem_32.o
> 
> As rwsem_64 is gone now.

Sure, I'll make that change, thanks Sam.

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: 64-bit ppc rwsem
  2010-08-18  5:28             ` David Miller
  (?)
@ 2010-08-19  5:23               ` Benjamin Herrenschmidt
  -1 siblings, 0 replies; 548+ messages in thread
From: Benjamin Herrenschmidt @ 2010-08-19  5:23 UTC (permalink / raw)
  To: David Miller
  Cc: torvalds, akpm, sparclinux, linux-kernel, paulus, linuxppc-dev

On Tue, 2010-08-17 at 22:28 -0700, David Miller wrote:
> From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
> Date: Wed, 18 Aug 2010 15:03:23 +1000
> 
> > I tried various tricks but so far they didn't work. I'll have another
> > look tomorrow, but I may end up having to keep all the crap typecasts.
> 
> The casts are pretty much unavoidable.
> 
> Here's what I'm going to end up using on sparc64:

Similar here, but using atomic_long_t instead so it works for 32-bit too
for me. I suppose we could make that part common indeed.

What about asm-generic/rwsem-atomic.h  or rwsem-cmpxchg.h ?

Below is my current patch, seems to boot fine here so far.

Cheers,
Ben

Subject: [PATCH] powerpc: Make rwsem use "long" type

This makes the 64-bit kernel use 64-bit signed integers for the counter
(effectively supporting 32-bit of active count in the semaphore), thus
avoiding things like overflow of the mmap_sem if you use a really crazy
number of threads

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
---
 arch/powerpc/include/asm/rwsem.h |   64 ++++++++++++++++++++++----------------
 1 files changed, 37 insertions(+), 27 deletions(-)

diff --git a/arch/powerpc/include/asm/rwsem.h b/arch/powerpc/include/asm/rwsem.h
index 24cd928..8447d89 100644
--- a/arch/powerpc/include/asm/rwsem.h
+++ b/arch/powerpc/include/asm/rwsem.h
@@ -21,15 +21,20 @@
 /*
  * the semaphore definition
  */
-struct rw_semaphore {
-	/* XXX this should be able to be an atomic_t  -- paulus */
-	signed int		count;
-#define RWSEM_UNLOCKED_VALUE		0x00000000
-#define RWSEM_ACTIVE_BIAS		0x00000001
-#define RWSEM_ACTIVE_MASK		0x0000ffff
-#define RWSEM_WAITING_BIAS		(-0x00010000)
+#ifdef CONFIG_PPC64
+# define RWSEM_ACTIVE_MASK		0xffffffffL
+#else
+# define RWSEM_ACTIVE_MASK		0x0000ffffL
+#endif
+
+#define RWSEM_UNLOCKED_VALUE		0x00000000L
+#define RWSEM_ACTIVE_BIAS		0x00000001L
+#define RWSEM_WAITING_BIAS		(-RWSEM_ACTIVE_MASK-1)
 #define RWSEM_ACTIVE_READ_BIAS		RWSEM_ACTIVE_BIAS
 #define RWSEM_ACTIVE_WRITE_BIAS		(RWSEM_WAITING_BIAS + RWSEM_ACTIVE_BIAS)
+
+struct rw_semaphore {
+	long			count;
 	spinlock_t		wait_lock;
 	struct list_head	wait_list;
 #ifdef CONFIG_DEBUG_LOCK_ALLOC
@@ -43,9 +48,13 @@ struct rw_semaphore {
 # define __RWSEM_DEP_MAP_INIT(lockname)
 #endif
 
-#define __RWSEM_INITIALIZER(name) \
-	{ RWSEM_UNLOCKED_VALUE, __SPIN_LOCK_UNLOCKED((name).wait_lock), \
-	  LIST_HEAD_INIT((name).wait_list) __RWSEM_DEP_MAP_INIT(name) }
+#define __RWSEM_INITIALIZER(name)				\
+{								\
+	RWSEM_UNLOCKED_VALUE,					\
+	__SPIN_LOCK_UNLOCKED((name).wait_lock),			\
+	LIST_HEAD_INIT((name).wait_list)			\
+	__RWSEM_DEP_MAP_INIT(name)				\
+}
 
 #define DECLARE_RWSEM(name)		\
 	struct rw_semaphore name = __RWSEM_INITIALIZER(name)
@@ -70,13 +79,13 @@ extern void __init_rwsem(struct rw_semaphore *sem, const char *name,
  */
 static inline void __down_read(struct rw_semaphore *sem)
 {
-	if (unlikely(atomic_inc_return((atomic_t *)(&sem->count)) <= 0))
+	if (unlikely(atomic_long_inc_return((atomic_long_t *)&sem->count) <= 0))
 		rwsem_down_read_failed(sem);
 }
 
 static inline int __down_read_trylock(struct rw_semaphore *sem)
 {
-	int tmp;
+	long tmp;
 
 	while ((tmp = sem->count) >= 0) {
 		if (tmp == cmpxchg(&sem->count, tmp,
@@ -92,10 +101,10 @@ static inline int __down_read_trylock(struct rw_semaphore *sem)
  */
 static inline void __down_write_nested(struct rw_semaphore *sem, int subclass)
 {
-	int tmp;
+	long tmp;
 
-	tmp = atomic_add_return(RWSEM_ACTIVE_WRITE_BIAS,
-				(atomic_t *)(&sem->count));
+	tmp = atomic_long_add_return(RWSEM_ACTIVE_WRITE_BIAS,
+				     (atomic_long_t *)&sem->count);
 	if (unlikely(tmp != RWSEM_ACTIVE_WRITE_BIAS))
 		rwsem_down_write_failed(sem);
 }
@@ -107,7 +116,7 @@ static inline void __down_write(struct rw_semaphore *sem)
 
 static inline int __down_write_trylock(struct rw_semaphore *sem)
 {
-	int tmp;
+	long tmp;
 
 	tmp = cmpxchg(&sem->count, RWSEM_UNLOCKED_VALUE,
 		      RWSEM_ACTIVE_WRITE_BIAS);
@@ -119,9 +128,9 @@ static inline int __down_write_trylock(struct rw_semaphore *sem)
  */
 static inline void __up_read(struct rw_semaphore *sem)
 {
-	int tmp;
+	long tmp;
 
-	tmp = atomic_dec_return((atomic_t *)(&sem->count));
+	tmp = atomic_long_dec_return((atomic_long_t *)&sem->count);
 	if (unlikely(tmp < -1 && (tmp & RWSEM_ACTIVE_MASK) == 0))
 		rwsem_wake(sem);
 }
@@ -131,17 +140,17 @@ static inline void __up_read(struct rw_semaphore *sem)
  */
 static inline void __up_write(struct rw_semaphore *sem)
 {
-	if (unlikely(atomic_sub_return(RWSEM_ACTIVE_WRITE_BIAS,
-			      (atomic_t *)(&sem->count)) < 0))
+	if (unlikely(atomic_long_sub_return(RWSEM_ACTIVE_WRITE_BIAS,
+				 (atomic_long_t *)&sem->count) < 0))
 		rwsem_wake(sem);
 }
 
 /*
  * implement atomic add functionality
  */
-static inline void rwsem_atomic_add(int delta, struct rw_semaphore *sem)
+static inline void rwsem_atomic_add(long delta, struct rw_semaphore *sem)
 {
-	atomic_add(delta, (atomic_t *)(&sem->count));
+	atomic_long_add(delta, (atomic_long_t *)&sem->count);
 }
 
 /*
@@ -149,9 +158,10 @@ static inline void rwsem_atomic_add(int delta, struct rw_semaphore *sem)
  */
 static inline void __downgrade_write(struct rw_semaphore *sem)
 {
-	int tmp;
+	long tmp;
 
-	tmp = atomic_add_return(-RWSEM_WAITING_BIAS, (atomic_t *)(&sem->count));
+	tmp = atomic_long_add_return(-RWSEM_WAITING_BIAS,
+				     (atomic_long_t *)&sem->count);
 	if (tmp < 0)
 		rwsem_downgrade_wake(sem);
 }
@@ -159,14 +169,14 @@ static inline void __downgrade_write(struct rw_semaphore *sem)
 /*
  * implement exchange and add functionality
  */
-static inline int rwsem_atomic_update(int delta, struct rw_semaphore *sem)
+static inline long rwsem_atomic_update(long delta, struct rw_semaphore *sem)
 {
-	return atomic_add_return(delta, (atomic_t *)(&sem->count));
+	return atomic_long_add_return(delta, (atomic_long_t *)&sem->count);
 }
 
 static inline int rwsem_is_locked(struct rw_semaphore *sem)
 {
-	return (sem->count != 0);
+	return sem->count != 0;
 }
 
 #endif	/* __KERNEL__ */



^ permalink raw reply related	[flat|nested] 548+ messages in thread

* Re: 64-bit ppc rwsem
@ 2010-08-19  5:23               ` Benjamin Herrenschmidt
  0 siblings, 0 replies; 548+ messages in thread
From: Benjamin Herrenschmidt @ 2010-08-19  5:23 UTC (permalink / raw)
  To: David Miller
  Cc: torvalds, paulus, linux-kernel, sparclinux, akpm, linuxppc-dev

On Tue, 2010-08-17 at 22:28 -0700, David Miller wrote:
> From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
> Date: Wed, 18 Aug 2010 15:03:23 +1000
> 
> > I tried various tricks but so far they didn't work. I'll have another
> > look tomorrow, but I may end up having to keep all the crap typecasts.
> 
> The casts are pretty much unavoidable.
> 
> Here's what I'm going to end up using on sparc64:

Similar here, but using atomic_long_t instead so it works for 32-bit too
for me. I suppose we could make that part common indeed.

What about asm-generic/rwsem-atomic.h  or rwsem-cmpxchg.h ?

Below is my current patch, seems to boot fine here so far.

Cheers,
Ben

Subject: [PATCH] powerpc: Make rwsem use "long" type

This makes the 64-bit kernel use 64-bit signed integers for the counter
(effectively supporting 32-bit of active count in the semaphore), thus
avoiding things like overflow of the mmap_sem if you use a really crazy
number of threads

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
---
 arch/powerpc/include/asm/rwsem.h |   64 ++++++++++++++++++++++----------------
 1 files changed, 37 insertions(+), 27 deletions(-)

diff --git a/arch/powerpc/include/asm/rwsem.h b/arch/powerpc/include/asm/rwsem.h
index 24cd928..8447d89 100644
--- a/arch/powerpc/include/asm/rwsem.h
+++ b/arch/powerpc/include/asm/rwsem.h
@@ -21,15 +21,20 @@
 /*
  * the semaphore definition
  */
-struct rw_semaphore {
-	/* XXX this should be able to be an atomic_t  -- paulus */
-	signed int		count;
-#define RWSEM_UNLOCKED_VALUE		0x00000000
-#define RWSEM_ACTIVE_BIAS		0x00000001
-#define RWSEM_ACTIVE_MASK		0x0000ffff
-#define RWSEM_WAITING_BIAS		(-0x00010000)
+#ifdef CONFIG_PPC64
+# define RWSEM_ACTIVE_MASK		0xffffffffL
+#else
+# define RWSEM_ACTIVE_MASK		0x0000ffffL
+#endif
+
+#define RWSEM_UNLOCKED_VALUE		0x00000000L
+#define RWSEM_ACTIVE_BIAS		0x00000001L
+#define RWSEM_WAITING_BIAS		(-RWSEM_ACTIVE_MASK-1)
 #define RWSEM_ACTIVE_READ_BIAS		RWSEM_ACTIVE_BIAS
 #define RWSEM_ACTIVE_WRITE_BIAS		(RWSEM_WAITING_BIAS + RWSEM_ACTIVE_BIAS)
+
+struct rw_semaphore {
+	long			count;
 	spinlock_t		wait_lock;
 	struct list_head	wait_list;
 #ifdef CONFIG_DEBUG_LOCK_ALLOC
@@ -43,9 +48,13 @@ struct rw_semaphore {
 # define __RWSEM_DEP_MAP_INIT(lockname)
 #endif
 
-#define __RWSEM_INITIALIZER(name) \
-	{ RWSEM_UNLOCKED_VALUE, __SPIN_LOCK_UNLOCKED((name).wait_lock), \
-	  LIST_HEAD_INIT((name).wait_list) __RWSEM_DEP_MAP_INIT(name) }
+#define __RWSEM_INITIALIZER(name)				\
+{								\
+	RWSEM_UNLOCKED_VALUE,					\
+	__SPIN_LOCK_UNLOCKED((name).wait_lock),			\
+	LIST_HEAD_INIT((name).wait_list)			\
+	__RWSEM_DEP_MAP_INIT(name)				\
+}
 
 #define DECLARE_RWSEM(name)		\
 	struct rw_semaphore name = __RWSEM_INITIALIZER(name)
@@ -70,13 +79,13 @@ extern void __init_rwsem(struct rw_semaphore *sem, const char *name,
  */
 static inline void __down_read(struct rw_semaphore *sem)
 {
-	if (unlikely(atomic_inc_return((atomic_t *)(&sem->count)) <= 0))
+	if (unlikely(atomic_long_inc_return((atomic_long_t *)&sem->count) <= 0))
 		rwsem_down_read_failed(sem);
 }
 
 static inline int __down_read_trylock(struct rw_semaphore *sem)
 {
-	int tmp;
+	long tmp;
 
 	while ((tmp = sem->count) >= 0) {
 		if (tmp = cmpxchg(&sem->count, tmp,
@@ -92,10 +101,10 @@ static inline int __down_read_trylock(struct rw_semaphore *sem)
  */
 static inline void __down_write_nested(struct rw_semaphore *sem, int subclass)
 {
-	int tmp;
+	long tmp;
 
-	tmp = atomic_add_return(RWSEM_ACTIVE_WRITE_BIAS,
-				(atomic_t *)(&sem->count));
+	tmp = atomic_long_add_return(RWSEM_ACTIVE_WRITE_BIAS,
+				     (atomic_long_t *)&sem->count);
 	if (unlikely(tmp != RWSEM_ACTIVE_WRITE_BIAS))
 		rwsem_down_write_failed(sem);
 }
@@ -107,7 +116,7 @@ static inline void __down_write(struct rw_semaphore *sem)
 
 static inline int __down_write_trylock(struct rw_semaphore *sem)
 {
-	int tmp;
+	long tmp;
 
 	tmp = cmpxchg(&sem->count, RWSEM_UNLOCKED_VALUE,
 		      RWSEM_ACTIVE_WRITE_BIAS);
@@ -119,9 +128,9 @@ static inline int __down_write_trylock(struct rw_semaphore *sem)
  */
 static inline void __up_read(struct rw_semaphore *sem)
 {
-	int tmp;
+	long tmp;
 
-	tmp = atomic_dec_return((atomic_t *)(&sem->count));
+	tmp = atomic_long_dec_return((atomic_long_t *)&sem->count);
 	if (unlikely(tmp < -1 && (tmp & RWSEM_ACTIVE_MASK) = 0))
 		rwsem_wake(sem);
 }
@@ -131,17 +140,17 @@ static inline void __up_read(struct rw_semaphore *sem)
  */
 static inline void __up_write(struct rw_semaphore *sem)
 {
-	if (unlikely(atomic_sub_return(RWSEM_ACTIVE_WRITE_BIAS,
-			      (atomic_t *)(&sem->count)) < 0))
+	if (unlikely(atomic_long_sub_return(RWSEM_ACTIVE_WRITE_BIAS,
+				 (atomic_long_t *)&sem->count) < 0))
 		rwsem_wake(sem);
 }
 
 /*
  * implement atomic add functionality
  */
-static inline void rwsem_atomic_add(int delta, struct rw_semaphore *sem)
+static inline void rwsem_atomic_add(long delta, struct rw_semaphore *sem)
 {
-	atomic_add(delta, (atomic_t *)(&sem->count));
+	atomic_long_add(delta, (atomic_long_t *)&sem->count);
 }
 
 /*
@@ -149,9 +158,10 @@ static inline void rwsem_atomic_add(int delta, struct rw_semaphore *sem)
  */
 static inline void __downgrade_write(struct rw_semaphore *sem)
 {
-	int tmp;
+	long tmp;
 
-	tmp = atomic_add_return(-RWSEM_WAITING_BIAS, (atomic_t *)(&sem->count));
+	tmp = atomic_long_add_return(-RWSEM_WAITING_BIAS,
+				     (atomic_long_t *)&sem->count);
 	if (tmp < 0)
 		rwsem_downgrade_wake(sem);
 }
@@ -159,14 +169,14 @@ static inline void __downgrade_write(struct rw_semaphore *sem)
 /*
  * implement exchange and add functionality
  */
-static inline int rwsem_atomic_update(int delta, struct rw_semaphore *sem)
+static inline long rwsem_atomic_update(long delta, struct rw_semaphore *sem)
 {
-	return atomic_add_return(delta, (atomic_t *)(&sem->count));
+	return atomic_long_add_return(delta, (atomic_long_t *)&sem->count);
 }
 
 static inline int rwsem_is_locked(struct rw_semaphore *sem)
 {
-	return (sem->count != 0);
+	return sem->count != 0;
 }
 
 #endif	/* __KERNEL__ */



^ permalink raw reply related	[flat|nested] 548+ messages in thread

* Re: 64-bit ppc rwsem
@ 2010-08-19  5:23               ` Benjamin Herrenschmidt
  0 siblings, 0 replies; 548+ messages in thread
From: Benjamin Herrenschmidt @ 2010-08-19  5:23 UTC (permalink / raw)
  To: David Miller
  Cc: torvalds, paulus, linux-kernel, sparclinux, akpm, linuxppc-dev

On Tue, 2010-08-17 at 22:28 -0700, David Miller wrote:
> From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
> Date: Wed, 18 Aug 2010 15:03:23 +1000
> 
> > I tried various tricks but so far they didn't work. I'll have another
> > look tomorrow, but I may end up having to keep all the crap typecasts.
> 
> The casts are pretty much unavoidable.
> 
> Here's what I'm going to end up using on sparc64:

Similar here, but using atomic_long_t instead so it works for 32-bit too
for me. I suppose we could make that part common indeed.

What about asm-generic/rwsem-atomic.h  or rwsem-cmpxchg.h ?

Below is my current patch, seems to boot fine here so far.

Cheers,
Ben

Subject: [PATCH] powerpc: Make rwsem use "long" type

This makes the 64-bit kernel use 64-bit signed integers for the counter
(effectively supporting 32-bit of active count in the semaphore), thus
avoiding things like overflow of the mmap_sem if you use a really crazy
number of threads

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
---
 arch/powerpc/include/asm/rwsem.h |   64 ++++++++++++++++++++++----------------
 1 files changed, 37 insertions(+), 27 deletions(-)

diff --git a/arch/powerpc/include/asm/rwsem.h b/arch/powerpc/include/asm/rwsem.h
index 24cd928..8447d89 100644
--- a/arch/powerpc/include/asm/rwsem.h
+++ b/arch/powerpc/include/asm/rwsem.h
@@ -21,15 +21,20 @@
 /*
  * the semaphore definition
  */
-struct rw_semaphore {
-	/* XXX this should be able to be an atomic_t  -- paulus */
-	signed int		count;
-#define RWSEM_UNLOCKED_VALUE		0x00000000
-#define RWSEM_ACTIVE_BIAS		0x00000001
-#define RWSEM_ACTIVE_MASK		0x0000ffff
-#define RWSEM_WAITING_BIAS		(-0x00010000)
+#ifdef CONFIG_PPC64
+# define RWSEM_ACTIVE_MASK		0xffffffffL
+#else
+# define RWSEM_ACTIVE_MASK		0x0000ffffL
+#endif
+
+#define RWSEM_UNLOCKED_VALUE		0x00000000L
+#define RWSEM_ACTIVE_BIAS		0x00000001L
+#define RWSEM_WAITING_BIAS		(-RWSEM_ACTIVE_MASK-1)
 #define RWSEM_ACTIVE_READ_BIAS		RWSEM_ACTIVE_BIAS
 #define RWSEM_ACTIVE_WRITE_BIAS		(RWSEM_WAITING_BIAS + RWSEM_ACTIVE_BIAS)
+
+struct rw_semaphore {
+	long			count;
 	spinlock_t		wait_lock;
 	struct list_head	wait_list;
 #ifdef CONFIG_DEBUG_LOCK_ALLOC
@@ -43,9 +48,13 @@ struct rw_semaphore {
 # define __RWSEM_DEP_MAP_INIT(lockname)
 #endif
 
-#define __RWSEM_INITIALIZER(name) \
-	{ RWSEM_UNLOCKED_VALUE, __SPIN_LOCK_UNLOCKED((name).wait_lock), \
-	  LIST_HEAD_INIT((name).wait_list) __RWSEM_DEP_MAP_INIT(name) }
+#define __RWSEM_INITIALIZER(name)				\
+{								\
+	RWSEM_UNLOCKED_VALUE,					\
+	__SPIN_LOCK_UNLOCKED((name).wait_lock),			\
+	LIST_HEAD_INIT((name).wait_list)			\
+	__RWSEM_DEP_MAP_INIT(name)				\
+}
 
 #define DECLARE_RWSEM(name)		\
 	struct rw_semaphore name = __RWSEM_INITIALIZER(name)
@@ -70,13 +79,13 @@ extern void __init_rwsem(struct rw_semaphore *sem, const char *name,
  */
 static inline void __down_read(struct rw_semaphore *sem)
 {
-	if (unlikely(atomic_inc_return((atomic_t *)(&sem->count)) <= 0))
+	if (unlikely(atomic_long_inc_return((atomic_long_t *)&sem->count) <= 0))
 		rwsem_down_read_failed(sem);
 }
 
 static inline int __down_read_trylock(struct rw_semaphore *sem)
 {
-	int tmp;
+	long tmp;
 
 	while ((tmp = sem->count) >= 0) {
 		if (tmp == cmpxchg(&sem->count, tmp,
@@ -92,10 +101,10 @@ static inline int __down_read_trylock(struct rw_semaphore *sem)
  */
 static inline void __down_write_nested(struct rw_semaphore *sem, int subclass)
 {
-	int tmp;
+	long tmp;
 
-	tmp = atomic_add_return(RWSEM_ACTIVE_WRITE_BIAS,
-				(atomic_t *)(&sem->count));
+	tmp = atomic_long_add_return(RWSEM_ACTIVE_WRITE_BIAS,
+				     (atomic_long_t *)&sem->count);
 	if (unlikely(tmp != RWSEM_ACTIVE_WRITE_BIAS))
 		rwsem_down_write_failed(sem);
 }
@@ -107,7 +116,7 @@ static inline void __down_write(struct rw_semaphore *sem)
 
 static inline int __down_write_trylock(struct rw_semaphore *sem)
 {
-	int tmp;
+	long tmp;
 
 	tmp = cmpxchg(&sem->count, RWSEM_UNLOCKED_VALUE,
 		      RWSEM_ACTIVE_WRITE_BIAS);
@@ -119,9 +128,9 @@ static inline int __down_write_trylock(struct rw_semaphore *sem)
  */
 static inline void __up_read(struct rw_semaphore *sem)
 {
-	int tmp;
+	long tmp;
 
-	tmp = atomic_dec_return((atomic_t *)(&sem->count));
+	tmp = atomic_long_dec_return((atomic_long_t *)&sem->count);
 	if (unlikely(tmp < -1 && (tmp & RWSEM_ACTIVE_MASK) == 0))
 		rwsem_wake(sem);
 }
@@ -131,17 +140,17 @@ static inline void __up_read(struct rw_semaphore *sem)
  */
 static inline void __up_write(struct rw_semaphore *sem)
 {
-	if (unlikely(atomic_sub_return(RWSEM_ACTIVE_WRITE_BIAS,
-			      (atomic_t *)(&sem->count)) < 0))
+	if (unlikely(atomic_long_sub_return(RWSEM_ACTIVE_WRITE_BIAS,
+				 (atomic_long_t *)&sem->count) < 0))
 		rwsem_wake(sem);
 }
 
 /*
  * implement atomic add functionality
  */
-static inline void rwsem_atomic_add(int delta, struct rw_semaphore *sem)
+static inline void rwsem_atomic_add(long delta, struct rw_semaphore *sem)
 {
-	atomic_add(delta, (atomic_t *)(&sem->count));
+	atomic_long_add(delta, (atomic_long_t *)&sem->count);
 }
 
 /*
@@ -149,9 +158,10 @@ static inline void rwsem_atomic_add(int delta, struct rw_semaphore *sem)
  */
 static inline void __downgrade_write(struct rw_semaphore *sem)
 {
-	int tmp;
+	long tmp;
 
-	tmp = atomic_add_return(-RWSEM_WAITING_BIAS, (atomic_t *)(&sem->count));
+	tmp = atomic_long_add_return(-RWSEM_WAITING_BIAS,
+				     (atomic_long_t *)&sem->count);
 	if (tmp < 0)
 		rwsem_downgrade_wake(sem);
 }
@@ -159,14 +169,14 @@ static inline void __downgrade_write(struct rw_semaphore *sem)
 /*
  * implement exchange and add functionality
  */
-static inline int rwsem_atomic_update(int delta, struct rw_semaphore *sem)
+static inline long rwsem_atomic_update(long delta, struct rw_semaphore *sem)
 {
-	return atomic_add_return(delta, (atomic_t *)(&sem->count));
+	return atomic_long_add_return(delta, (atomic_long_t *)&sem->count);
 }
 
 static inline int rwsem_is_locked(struct rw_semaphore *sem)
 {
-	return (sem->count != 0);
+	return sem->count != 0;
 }
 
 #endif	/* __KERNEL__ */

^ permalink raw reply related	[flat|nested] 548+ messages in thread

* Re: 64-bit ppc rwsem
  2010-08-19  5:23               ` Benjamin Herrenschmidt
  (?)
@ 2010-08-19  5:29                 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2010-08-19  5:29 UTC (permalink / raw)
  To: benh; +Cc: torvalds, akpm, sparclinux, linux-kernel, paulus, linuxppc-dev

From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Date: Thu, 19 Aug 2010 15:23:23 +1000

> Similar here, but using atomic_long_t instead so it works for 32-bit too
> for me. I suppose we could make that part common indeed.
> 
> What about asm-generic/rwsem-atomic.h  or rwsem-cmpxchg.h ?

Using rwsem-cmpxchg.h sounds best I guess.

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: 64-bit ppc rwsem
@ 2010-08-19  5:29                 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2010-08-19  5:29 UTC (permalink / raw)
  To: benh; +Cc: torvalds, paulus, linux-kernel, sparclinux, akpm, linuxppc-dev

From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Date: Thu, 19 Aug 2010 15:23:23 +1000

> Similar here, but using atomic_long_t instead so it works for 32-bit too
> for me. I suppose we could make that part common indeed.
> 
> What about asm-generic/rwsem-atomic.h  or rwsem-cmpxchg.h ?

Using rwsem-cmpxchg.h sounds best I guess.

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: 64-bit ppc rwsem
@ 2010-08-19  5:29                 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2010-08-19  5:29 UTC (permalink / raw)
  To: benh; +Cc: torvalds, paulus, linux-kernel, sparclinux, akpm, linuxppc-dev

From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Date: Thu, 19 Aug 2010 15:23:23 +1000

> Similar here, but using atomic_long_t instead so it works for 32-bit too
> for me. I suppose we could make that part common indeed.
> 
> What about asm-generic/rwsem-atomic.h  or rwsem-cmpxchg.h ?

Using rwsem-cmpxchg.h sounds best I guess.

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: 64-bit ppc rwsem
  2010-08-19  5:29                 ` David Miller
  (?)
@ 2010-08-19 10:24                   ` Benjamin Herrenschmidt
  -1 siblings, 0 replies; 548+ messages in thread
From: Benjamin Herrenschmidt @ 2010-08-19 10:24 UTC (permalink / raw)
  To: David Miller
  Cc: torvalds, akpm, sparclinux, linux-kernel, paulus, linuxppc-dev

On Wed, 2010-08-18 at 22:29 -0700, David Miller wrote:
> From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
> Date: Thu, 19 Aug 2010 15:23:23 +1000
> 
> > Similar here, but using atomic_long_t instead so it works for 32-bit too
> > for me. I suppose we could make that part common indeed.
> > 
> > What about asm-generic/rwsem-atomic.h  or rwsem-cmpxchg.h ?
> 
> Using rwsem-cmpxchg.h sounds best I guess.

Ok, I'll send a new patch tomorrow that does that.

Cheers,
Ben.



^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: 64-bit ppc rwsem
@ 2010-08-19 10:24                   ` Benjamin Herrenschmidt
  0 siblings, 0 replies; 548+ messages in thread
From: Benjamin Herrenschmidt @ 2010-08-19 10:24 UTC (permalink / raw)
  To: David Miller
  Cc: torvalds, paulus, linux-kernel, sparclinux, akpm, linuxppc-dev

On Wed, 2010-08-18 at 22:29 -0700, David Miller wrote:
> From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
> Date: Thu, 19 Aug 2010 15:23:23 +1000
> 
> > Similar here, but using atomic_long_t instead so it works for 32-bit too
> > for me. I suppose we could make that part common indeed.
> > 
> > What about asm-generic/rwsem-atomic.h  or rwsem-cmpxchg.h ?
> 
> Using rwsem-cmpxchg.h sounds best I guess.

Ok, I'll send a new patch tomorrow that does that.

Cheers,
Ben.



^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: 64-bit ppc rwsem
@ 2010-08-19 10:24                   ` Benjamin Herrenschmidt
  0 siblings, 0 replies; 548+ messages in thread
From: Benjamin Herrenschmidt @ 2010-08-19 10:24 UTC (permalink / raw)
  To: David Miller
  Cc: torvalds, paulus, linux-kernel, sparclinux, akpm, linuxppc-dev

On Wed, 2010-08-18 at 22:29 -0700, David Miller wrote:
> From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
> Date: Thu, 19 Aug 2010 15:23:23 +1000
> 
> > Similar here, but using atomic_long_t instead so it works for 32-bit too
> > for me. I suppose we could make that part common indeed.
> > 
> > What about asm-generic/rwsem-atomic.h  or rwsem-cmpxchg.h ?
> 
> Using rwsem-cmpxchg.h sounds best I guess.

Ok, I'll send a new patch tomorrow that does that.

Cheers,
Ben.

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [PATCH 1/2] powerpc: Make rwsem use "long" type
  2010-08-19  5:29                 ` David Miller
  (?)
@ 2010-08-20  5:14                   ` Benjamin Herrenschmidt
  -1 siblings, 0 replies; 548+ messages in thread
From: Benjamin Herrenschmidt @ 2010-08-20  5:14 UTC (permalink / raw)
  To: torvalds
  Cc: akpm, sparclinux, linux-kernel, paulus, linuxppc-dev, David Miller

This makes the 64-bit kernel use 64-bit signed integers for the counter
(effectively supporting 32-bit of active count in the semaphore), thus
avoiding things like overflow of the mmap_sem if you use a really crazy
number of threads

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
---
 arch/powerpc/include/asm/rwsem.h |   64 ++++++++++++++++++++++----------------
 1 files changed, 37 insertions(+), 27 deletions(-)

diff --git a/arch/powerpc/include/asm/rwsem.h b/arch/powerpc/include/asm/rwsem.h
index 24cd928..8447d89 100644
--- a/arch/powerpc/include/asm/rwsem.h
+++ b/arch/powerpc/include/asm/rwsem.h
@@ -21,15 +21,20 @@
 /*
  * the semaphore definition
  */
-struct rw_semaphore {
-	/* XXX this should be able to be an atomic_t  -- paulus */
-	signed int		count;
-#define RWSEM_UNLOCKED_VALUE		0x00000000
-#define RWSEM_ACTIVE_BIAS		0x00000001
-#define RWSEM_ACTIVE_MASK		0x0000ffff
-#define RWSEM_WAITING_BIAS		(-0x00010000)
+#ifdef CONFIG_PPC64
+# define RWSEM_ACTIVE_MASK		0xffffffffL
+#else
+# define RWSEM_ACTIVE_MASK		0x0000ffffL
+#endif
+
+#define RWSEM_UNLOCKED_VALUE		0x00000000L
+#define RWSEM_ACTIVE_BIAS		0x00000001L
+#define RWSEM_WAITING_BIAS		(-RWSEM_ACTIVE_MASK-1)
 #define RWSEM_ACTIVE_READ_BIAS		RWSEM_ACTIVE_BIAS
 #define RWSEM_ACTIVE_WRITE_BIAS		(RWSEM_WAITING_BIAS + RWSEM_ACTIVE_BIAS)
+
+struct rw_semaphore {
+	long			count;
 	spinlock_t		wait_lock;
 	struct list_head	wait_list;
 #ifdef CONFIG_DEBUG_LOCK_ALLOC
@@ -43,9 +48,13 @@ struct rw_semaphore {
 # define __RWSEM_DEP_MAP_INIT(lockname)
 #endif
 
-#define __RWSEM_INITIALIZER(name) \
-	{ RWSEM_UNLOCKED_VALUE, __SPIN_LOCK_UNLOCKED((name).wait_lock), \
-	  LIST_HEAD_INIT((name).wait_list) __RWSEM_DEP_MAP_INIT(name) }
+#define __RWSEM_INITIALIZER(name)				\
+{								\
+	RWSEM_UNLOCKED_VALUE,					\
+	__SPIN_LOCK_UNLOCKED((name).wait_lock),			\
+	LIST_HEAD_INIT((name).wait_list)			\
+	__RWSEM_DEP_MAP_INIT(name)				\
+}
 
 #define DECLARE_RWSEM(name)		\
 	struct rw_semaphore name = __RWSEM_INITIALIZER(name)
@@ -70,13 +79,13 @@ extern void __init_rwsem(struct rw_semaphore *sem, const char *name,
  */
 static inline void __down_read(struct rw_semaphore *sem)
 {
-	if (unlikely(atomic_inc_return((atomic_t *)(&sem->count)) <= 0))
+	if (unlikely(atomic_long_inc_return((atomic_long_t *)&sem->count) <= 0))
 		rwsem_down_read_failed(sem);
 }
 
 static inline int __down_read_trylock(struct rw_semaphore *sem)
 {
-	int tmp;
+	long tmp;
 
 	while ((tmp = sem->count) >= 0) {
 		if (tmp == cmpxchg(&sem->count, tmp,
@@ -92,10 +101,10 @@ static inline int __down_read_trylock(struct rw_semaphore *sem)
  */
 static inline void __down_write_nested(struct rw_semaphore *sem, int subclass)
 {
-	int tmp;
+	long tmp;
 
-	tmp = atomic_add_return(RWSEM_ACTIVE_WRITE_BIAS,
-				(atomic_t *)(&sem->count));
+	tmp = atomic_long_add_return(RWSEM_ACTIVE_WRITE_BIAS,
+				     (atomic_long_t *)&sem->count);
 	if (unlikely(tmp != RWSEM_ACTIVE_WRITE_BIAS))
 		rwsem_down_write_failed(sem);
 }
@@ -107,7 +116,7 @@ static inline void __down_write(struct rw_semaphore *sem)
 
 static inline int __down_write_trylock(struct rw_semaphore *sem)
 {
-	int tmp;
+	long tmp;
 
 	tmp = cmpxchg(&sem->count, RWSEM_UNLOCKED_VALUE,
 		      RWSEM_ACTIVE_WRITE_BIAS);
@@ -119,9 +128,9 @@ static inline int __down_write_trylock(struct rw_semaphore *sem)
  */
 static inline void __up_read(struct rw_semaphore *sem)
 {
-	int tmp;
+	long tmp;
 
-	tmp = atomic_dec_return((atomic_t *)(&sem->count));
+	tmp = atomic_long_dec_return((atomic_long_t *)&sem->count);
 	if (unlikely(tmp < -1 && (tmp & RWSEM_ACTIVE_MASK) == 0))
 		rwsem_wake(sem);
 }
@@ -131,17 +140,17 @@ static inline void __up_read(struct rw_semaphore *sem)
  */
 static inline void __up_write(struct rw_semaphore *sem)
 {
-	if (unlikely(atomic_sub_return(RWSEM_ACTIVE_WRITE_BIAS,
-			      (atomic_t *)(&sem->count)) < 0))
+	if (unlikely(atomic_long_sub_return(RWSEM_ACTIVE_WRITE_BIAS,
+				 (atomic_long_t *)&sem->count) < 0))
 		rwsem_wake(sem);
 }
 
 /*
  * implement atomic add functionality
  */
-static inline void rwsem_atomic_add(int delta, struct rw_semaphore *sem)
+static inline void rwsem_atomic_add(long delta, struct rw_semaphore *sem)
 {
-	atomic_add(delta, (atomic_t *)(&sem->count));
+	atomic_long_add(delta, (atomic_long_t *)&sem->count);
 }
 
 /*
@@ -149,9 +158,10 @@ static inline void rwsem_atomic_add(int delta, struct rw_semaphore *sem)
  */
 static inline void __downgrade_write(struct rw_semaphore *sem)
 {
-	int tmp;
+	long tmp;
 
-	tmp = atomic_add_return(-RWSEM_WAITING_BIAS, (atomic_t *)(&sem->count));
+	tmp = atomic_long_add_return(-RWSEM_WAITING_BIAS,
+				     (atomic_long_t *)&sem->count);
 	if (tmp < 0)
 		rwsem_downgrade_wake(sem);
 }
@@ -159,14 +169,14 @@ static inline void __downgrade_write(struct rw_semaphore *sem)
 /*
  * implement exchange and add functionality
  */
-static inline int rwsem_atomic_update(int delta, struct rw_semaphore *sem)
+static inline long rwsem_atomic_update(long delta, struct rw_semaphore *sem)
 {
-	return atomic_add_return(delta, (atomic_t *)(&sem->count));
+	return atomic_long_add_return(delta, (atomic_long_t *)&sem->count);
 }
 
 static inline int rwsem_is_locked(struct rw_semaphore *sem)
 {
-	return (sem->count != 0);
+	return sem->count != 0;
 }
 
 #endif	/* __KERNEL__ */



^ permalink raw reply related	[flat|nested] 548+ messages in thread

* [PATCH 2/2] rwsem: Move powerpc atomic-long based implementation to asm-generic
  2010-08-19  5:29                 ` David Miller
  (?)
@ 2010-08-20  5:14                   ` Benjamin Herrenschmidt
  -1 siblings, 0 replies; 548+ messages in thread
From: Benjamin Herrenschmidt @ 2010-08-20  5:14 UTC (permalink / raw)
  To: Linus Torvalds
  Cc: akpm, sparclinux, linux-kernel, paulus, linuxppc-dev, David Miller

Other architectures who support cmpxchg and atomic_long can
use that directly.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
---
 arch/powerpc/include/asm/rwsem.h    |  184 +----------------------------------
 include/asm-generic/rwsem-cmpxchg.h |  183 ++++++++++++++++++++++++++++++++++
 2 files changed, 184 insertions(+), 183 deletions(-)
 create mode 100644 include/asm-generic/rwsem-cmpxchg.h

diff --git a/arch/powerpc/include/asm/rwsem.h b/arch/powerpc/include/asm/rwsem.h
index 8447d89..1237ad6 100644
--- a/arch/powerpc/include/asm/rwsem.h
+++ b/arch/powerpc/include/asm/rwsem.h
@@ -1,183 +1 @@
-#ifndef _ASM_POWERPC_RWSEM_H
-#define _ASM_POWERPC_RWSEM_H
-
-#ifndef _LINUX_RWSEM_H
-#error "Please don't include <asm/rwsem.h> directly, use <linux/rwsem.h> instead."
-#endif
-
-#ifdef __KERNEL__
-
-/*
- * R/W semaphores for PPC using the stuff in lib/rwsem.c.
- * Adapted largely from include/asm-i386/rwsem.h
- * by Paul Mackerras <paulus@samba.org>.
- */
-
-#include <linux/list.h>
-#include <linux/spinlock.h>
-#include <asm/atomic.h>
-#include <asm/system.h>
-
-/*
- * the semaphore definition
- */
-#ifdef CONFIG_PPC64
-# define RWSEM_ACTIVE_MASK		0xffffffffL
-#else
-# define RWSEM_ACTIVE_MASK		0x0000ffffL
-#endif
-
-#define RWSEM_UNLOCKED_VALUE		0x00000000L
-#define RWSEM_ACTIVE_BIAS		0x00000001L
-#define RWSEM_WAITING_BIAS		(-RWSEM_ACTIVE_MASK-1)
-#define RWSEM_ACTIVE_READ_BIAS		RWSEM_ACTIVE_BIAS
-#define RWSEM_ACTIVE_WRITE_BIAS		(RWSEM_WAITING_BIAS + RWSEM_ACTIVE_BIAS)
-
-struct rw_semaphore {
-	long			count;
-	spinlock_t		wait_lock;
-	struct list_head	wait_list;
-#ifdef CONFIG_DEBUG_LOCK_ALLOC
-	struct lockdep_map	dep_map;
-#endif
-};
-
-#ifdef CONFIG_DEBUG_LOCK_ALLOC
-# define __RWSEM_DEP_MAP_INIT(lockname) , .dep_map = { .name = #lockname }
-#else
-# define __RWSEM_DEP_MAP_INIT(lockname)
-#endif
-
-#define __RWSEM_INITIALIZER(name)				\
-{								\
-	RWSEM_UNLOCKED_VALUE,					\
-	__SPIN_LOCK_UNLOCKED((name).wait_lock),			\
-	LIST_HEAD_INIT((name).wait_list)			\
-	__RWSEM_DEP_MAP_INIT(name)				\
-}
-
-#define DECLARE_RWSEM(name)		\
-	struct rw_semaphore name = __RWSEM_INITIALIZER(name)
-
-extern struct rw_semaphore *rwsem_down_read_failed(struct rw_semaphore *sem);
-extern struct rw_semaphore *rwsem_down_write_failed(struct rw_semaphore *sem);
-extern struct rw_semaphore *rwsem_wake(struct rw_semaphore *sem);
-extern struct rw_semaphore *rwsem_downgrade_wake(struct rw_semaphore *sem);
-
-extern void __init_rwsem(struct rw_semaphore *sem, const char *name,
-			 struct lock_class_key *key);
-
-#define init_rwsem(sem)					\
-	do {						\
-		static struct lock_class_key __key;	\
-							\
-		__init_rwsem((sem), #sem, &__key);	\
-	} while (0)
-
-/*
- * lock for reading
- */
-static inline void __down_read(struct rw_semaphore *sem)
-{
-	if (unlikely(atomic_long_inc_return((atomic_long_t *)&sem->count) <= 0))
-		rwsem_down_read_failed(sem);
-}
-
-static inline int __down_read_trylock(struct rw_semaphore *sem)
-{
-	long tmp;
-
-	while ((tmp = sem->count) >= 0) {
-		if (tmp == cmpxchg(&sem->count, tmp,
-				   tmp + RWSEM_ACTIVE_READ_BIAS)) {
-			return 1;
-		}
-	}
-	return 0;
-}
-
-/*
- * lock for writing
- */
-static inline void __down_write_nested(struct rw_semaphore *sem, int subclass)
-{
-	long tmp;
-
-	tmp = atomic_long_add_return(RWSEM_ACTIVE_WRITE_BIAS,
-				     (atomic_long_t *)&sem->count);
-	if (unlikely(tmp != RWSEM_ACTIVE_WRITE_BIAS))
-		rwsem_down_write_failed(sem);
-}
-
-static inline void __down_write(struct rw_semaphore *sem)
-{
-	__down_write_nested(sem, 0);
-}
-
-static inline int __down_write_trylock(struct rw_semaphore *sem)
-{
-	long tmp;
-
-	tmp = cmpxchg(&sem->count, RWSEM_UNLOCKED_VALUE,
-		      RWSEM_ACTIVE_WRITE_BIAS);
-	return tmp == RWSEM_UNLOCKED_VALUE;
-}
-
-/*
- * unlock after reading
- */
-static inline void __up_read(struct rw_semaphore *sem)
-{
-	long tmp;
-
-	tmp = atomic_long_dec_return((atomic_long_t *)&sem->count);
-	if (unlikely(tmp < -1 && (tmp & RWSEM_ACTIVE_MASK) == 0))
-		rwsem_wake(sem);
-}
-
-/*
- * unlock after writing
- */
-static inline void __up_write(struct rw_semaphore *sem)
-{
-	if (unlikely(atomic_long_sub_return(RWSEM_ACTIVE_WRITE_BIAS,
-				 (atomic_long_t *)&sem->count) < 0))
-		rwsem_wake(sem);
-}
-
-/*
- * implement atomic add functionality
- */
-static inline void rwsem_atomic_add(long delta, struct rw_semaphore *sem)
-{
-	atomic_long_add(delta, (atomic_long_t *)&sem->count);
-}
-
-/*
- * downgrade write lock to read lock
- */
-static inline void __downgrade_write(struct rw_semaphore *sem)
-{
-	long tmp;
-
-	tmp = atomic_long_add_return(-RWSEM_WAITING_BIAS,
-				     (atomic_long_t *)&sem->count);
-	if (tmp < 0)
-		rwsem_downgrade_wake(sem);
-}
-
-/*
- * implement exchange and add functionality
- */
-static inline long rwsem_atomic_update(long delta, struct rw_semaphore *sem)
-{
-	return atomic_long_add_return(delta, (atomic_long_t *)&sem->count);
-}
-
-static inline int rwsem_is_locked(struct rw_semaphore *sem)
-{
-	return sem->count != 0;
-}
-
-#endif	/* __KERNEL__ */
-#endif	/* _ASM_POWERPC_RWSEM_H */
+#include <asm-generic/rwsem-cmpxchg.h>
diff --git a/include/asm-generic/rwsem-cmpxchg.h b/include/asm-generic/rwsem-cmpxchg.h
new file mode 100644
index 0000000..2b1c859
--- /dev/null
+++ b/include/asm-generic/rwsem-cmpxchg.h
@@ -0,0 +1,183 @@
+#ifndef _RWSEM_CMPXCHG_H
+#define _RWSEM_CMPXCHG_H
+
+#ifndef _LINUX_RWSEM_H
+#error "Please don't include <asm/rwsem.h> directly, use <linux/rwsem.h> instead."
+#endif
+
+#ifdef __KERNEL__
+
+/*
+ * Generic R/W semaphores the stuff in lib/rwsem.c.
+ * Adapted largely from include/asm-i386/rwsem.h
+ * by Paul Mackerras <paulus@samba.org>.
+ */
+
+#include <linux/list.h>
+#include <linux/spinlock.h>
+#include <asm/atomic.h>
+#include <asm/system.h>
+
+/*
+ * the semaphore definition
+ */
+#if BITS_PER_LONG == 64
+# define RWSEM_ACTIVE_MASK		0xffffffffL
+#else
+# define RWSEM_ACTIVE_MASK		0x0000ffffL
+#endif
+
+#define RWSEM_UNLOCKED_VALUE		0x00000000L
+#define RWSEM_ACTIVE_BIAS		0x00000001L
+#define RWSEM_WAITING_BIAS		(-RWSEM_ACTIVE_MASK-1)
+#define RWSEM_ACTIVE_READ_BIAS		RWSEM_ACTIVE_BIAS
+#define RWSEM_ACTIVE_WRITE_BIAS		(RWSEM_WAITING_BIAS + RWSEM_ACTIVE_BIAS)
+
+struct rw_semaphore {
+	long			count;
+	spinlock_t		wait_lock;
+	struct list_head	wait_list;
+#ifdef CONFIG_DEBUG_LOCK_ALLOC
+	struct lockdep_map	dep_map;
+#endif
+};
+
+#ifdef CONFIG_DEBUG_LOCK_ALLOC
+# define __RWSEM_DEP_MAP_INIT(lockname) , .dep_map = { .name = #lockname }
+#else
+# define __RWSEM_DEP_MAP_INIT(lockname)
+#endif
+
+#define __RWSEM_INITIALIZER(name)				\
+{								\
+	RWSEM_UNLOCKED_VALUE,					\
+	__SPIN_LOCK_UNLOCKED((name).wait_lock),			\
+	LIST_HEAD_INIT((name).wait_list)			\
+	__RWSEM_DEP_MAP_INIT(name)				\
+}
+
+#define DECLARE_RWSEM(name)		\
+	struct rw_semaphore name = __RWSEM_INITIALIZER(name)
+
+extern struct rw_semaphore *rwsem_down_read_failed(struct rw_semaphore *sem);
+extern struct rw_semaphore *rwsem_down_write_failed(struct rw_semaphore *sem);
+extern struct rw_semaphore *rwsem_wake(struct rw_semaphore *sem);
+extern struct rw_semaphore *rwsem_downgrade_wake(struct rw_semaphore *sem);
+
+extern void __init_rwsem(struct rw_semaphore *sem, const char *name,
+			 struct lock_class_key *key);
+
+#define init_rwsem(sem)					\
+	do {						\
+		static struct lock_class_key __key;	\
+							\
+		__init_rwsem((sem), #sem, &__key);	\
+	} while (0)
+
+/*
+ * lock for reading
+ */
+static inline void __down_read(struct rw_semaphore *sem)
+{
+	if (unlikely(atomic_long_inc_return((atomic_long_t *)&sem->count) <= 0))
+		rwsem_down_read_failed(sem);
+}
+
+static inline int __down_read_trylock(struct rw_semaphore *sem)
+{
+	long tmp;
+
+	while ((tmp = sem->count) >= 0) {
+		if (tmp == cmpxchg(&sem->count, tmp,
+				   tmp + RWSEM_ACTIVE_READ_BIAS)) {
+			return 1;
+		}
+	}
+	return 0;
+}
+
+/*
+ * lock for writing
+ */
+static inline void __down_write_nested(struct rw_semaphore *sem, int subclass)
+{
+	long tmp;
+
+	tmp = atomic_long_add_return(RWSEM_ACTIVE_WRITE_BIAS,
+				     (atomic_long_t *)&sem->count);
+	if (unlikely(tmp != RWSEM_ACTIVE_WRITE_BIAS))
+		rwsem_down_write_failed(sem);
+}
+
+static inline void __down_write(struct rw_semaphore *sem)
+{
+	__down_write_nested(sem, 0);
+}
+
+static inline int __down_write_trylock(struct rw_semaphore *sem)
+{
+	long tmp;
+
+	tmp = cmpxchg(&sem->count, RWSEM_UNLOCKED_VALUE,
+		      RWSEM_ACTIVE_WRITE_BIAS);
+	return tmp == RWSEM_UNLOCKED_VALUE;
+}
+
+/*
+ * unlock after reading
+ */
+static inline void __up_read(struct rw_semaphore *sem)
+{
+	long tmp;
+
+	tmp = atomic_long_dec_return((atomic_long_t *)&sem->count);
+	if (unlikely(tmp < -1 && (tmp & RWSEM_ACTIVE_MASK) == 0))
+		rwsem_wake(sem);
+}
+
+/*
+ * unlock after writing
+ */
+static inline void __up_write(struct rw_semaphore *sem)
+{
+	if (unlikely(atomic_long_sub_return(RWSEM_ACTIVE_WRITE_BIAS,
+				 (atomic_long_t *)&sem->count) < 0))
+		rwsem_wake(sem);
+}
+
+/*
+ * implement atomic add functionality
+ */
+static inline void rwsem_atomic_add(long delta, struct rw_semaphore *sem)
+{
+	atomic_long_add(delta, (atomic_long_t *)&sem->count);
+}
+
+/*
+ * downgrade write lock to read lock
+ */
+static inline void __downgrade_write(struct rw_semaphore *sem)
+{
+	long tmp;
+
+	tmp = atomic_long_add_return(-RWSEM_WAITING_BIAS,
+				     (atomic_long_t *)&sem->count);
+	if (tmp < 0)
+		rwsem_downgrade_wake(sem);
+}
+
+/*
+ * implement exchange and add functionality
+ */
+static inline long rwsem_atomic_update(long delta, struct rw_semaphore *sem)
+{
+	return atomic_long_add_return(delta, (atomic_long_t *)&sem->count);
+}
+
+static inline int rwsem_is_locked(struct rw_semaphore *sem)
+{
+	return sem->count != 0;
+}
+
+#endif	/* __KERNEL__ */
+#endif	/* _RWSEM_CMPXCHG_H */



^ permalink raw reply related	[flat|nested] 548+ messages in thread

* [PATCH 1/2] powerpc: Make rwsem use "long" type
@ 2010-08-20  5:14                   ` Benjamin Herrenschmidt
  0 siblings, 0 replies; 548+ messages in thread
From: Benjamin Herrenschmidt @ 2010-08-20  5:14 UTC (permalink / raw)
  To: torvalds
  Cc: paulus, linux-kernel, sparclinux, akpm, linuxppc-dev, David Miller

This makes the 64-bit kernel use 64-bit signed integers for the counter
(effectively supporting 32-bit of active count in the semaphore), thus
avoiding things like overflow of the mmap_sem if you use a really crazy
number of threads

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
---
 arch/powerpc/include/asm/rwsem.h |   64 ++++++++++++++++++++++----------------
 1 files changed, 37 insertions(+), 27 deletions(-)

diff --git a/arch/powerpc/include/asm/rwsem.h b/arch/powerpc/include/asm/rwsem.h
index 24cd928..8447d89 100644
--- a/arch/powerpc/include/asm/rwsem.h
+++ b/arch/powerpc/include/asm/rwsem.h
@@ -21,15 +21,20 @@
 /*
  * the semaphore definition
  */
-struct rw_semaphore {
-	/* XXX this should be able to be an atomic_t  -- paulus */
-	signed int		count;
-#define RWSEM_UNLOCKED_VALUE		0x00000000
-#define RWSEM_ACTIVE_BIAS		0x00000001
-#define RWSEM_ACTIVE_MASK		0x0000ffff
-#define RWSEM_WAITING_BIAS		(-0x00010000)
+#ifdef CONFIG_PPC64
+# define RWSEM_ACTIVE_MASK		0xffffffffL
+#else
+# define RWSEM_ACTIVE_MASK		0x0000ffffL
+#endif
+
+#define RWSEM_UNLOCKED_VALUE		0x00000000L
+#define RWSEM_ACTIVE_BIAS		0x00000001L
+#define RWSEM_WAITING_BIAS		(-RWSEM_ACTIVE_MASK-1)
 #define RWSEM_ACTIVE_READ_BIAS		RWSEM_ACTIVE_BIAS
 #define RWSEM_ACTIVE_WRITE_BIAS		(RWSEM_WAITING_BIAS + RWSEM_ACTIVE_BIAS)
+
+struct rw_semaphore {
+	long			count;
 	spinlock_t		wait_lock;
 	struct list_head	wait_list;
 #ifdef CONFIG_DEBUG_LOCK_ALLOC
@@ -43,9 +48,13 @@ struct rw_semaphore {
 # define __RWSEM_DEP_MAP_INIT(lockname)
 #endif
 
-#define __RWSEM_INITIALIZER(name) \
-	{ RWSEM_UNLOCKED_VALUE, __SPIN_LOCK_UNLOCKED((name).wait_lock), \
-	  LIST_HEAD_INIT((name).wait_list) __RWSEM_DEP_MAP_INIT(name) }
+#define __RWSEM_INITIALIZER(name)				\
+{								\
+	RWSEM_UNLOCKED_VALUE,					\
+	__SPIN_LOCK_UNLOCKED((name).wait_lock),			\
+	LIST_HEAD_INIT((name).wait_list)			\
+	__RWSEM_DEP_MAP_INIT(name)				\
+}
 
 #define DECLARE_RWSEM(name)		\
 	struct rw_semaphore name = __RWSEM_INITIALIZER(name)
@@ -70,13 +79,13 @@ extern void __init_rwsem(struct rw_semaphore *sem, const char *name,
  */
 static inline void __down_read(struct rw_semaphore *sem)
 {
-	if (unlikely(atomic_inc_return((atomic_t *)(&sem->count)) <= 0))
+	if (unlikely(atomic_long_inc_return((atomic_long_t *)&sem->count) <= 0))
 		rwsem_down_read_failed(sem);
 }
 
 static inline int __down_read_trylock(struct rw_semaphore *sem)
 {
-	int tmp;
+	long tmp;
 
 	while ((tmp = sem->count) >= 0) {
 		if (tmp = cmpxchg(&sem->count, tmp,
@@ -92,10 +101,10 @@ static inline int __down_read_trylock(struct rw_semaphore *sem)
  */
 static inline void __down_write_nested(struct rw_semaphore *sem, int subclass)
 {
-	int tmp;
+	long tmp;
 
-	tmp = atomic_add_return(RWSEM_ACTIVE_WRITE_BIAS,
-				(atomic_t *)(&sem->count));
+	tmp = atomic_long_add_return(RWSEM_ACTIVE_WRITE_BIAS,
+				     (atomic_long_t *)&sem->count);
 	if (unlikely(tmp != RWSEM_ACTIVE_WRITE_BIAS))
 		rwsem_down_write_failed(sem);
 }
@@ -107,7 +116,7 @@ static inline void __down_write(struct rw_semaphore *sem)
 
 static inline int __down_write_trylock(struct rw_semaphore *sem)
 {
-	int tmp;
+	long tmp;
 
 	tmp = cmpxchg(&sem->count, RWSEM_UNLOCKED_VALUE,
 		      RWSEM_ACTIVE_WRITE_BIAS);
@@ -119,9 +128,9 @@ static inline int __down_write_trylock(struct rw_semaphore *sem)
  */
 static inline void __up_read(struct rw_semaphore *sem)
 {
-	int tmp;
+	long tmp;
 
-	tmp = atomic_dec_return((atomic_t *)(&sem->count));
+	tmp = atomic_long_dec_return((atomic_long_t *)&sem->count);
 	if (unlikely(tmp < -1 && (tmp & RWSEM_ACTIVE_MASK) = 0))
 		rwsem_wake(sem);
 }
@@ -131,17 +140,17 @@ static inline void __up_read(struct rw_semaphore *sem)
  */
 static inline void __up_write(struct rw_semaphore *sem)
 {
-	if (unlikely(atomic_sub_return(RWSEM_ACTIVE_WRITE_BIAS,
-			      (atomic_t *)(&sem->count)) < 0))
+	if (unlikely(atomic_long_sub_return(RWSEM_ACTIVE_WRITE_BIAS,
+				 (atomic_long_t *)&sem->count) < 0))
 		rwsem_wake(sem);
 }
 
 /*
  * implement atomic add functionality
  */
-static inline void rwsem_atomic_add(int delta, struct rw_semaphore *sem)
+static inline void rwsem_atomic_add(long delta, struct rw_semaphore *sem)
 {
-	atomic_add(delta, (atomic_t *)(&sem->count));
+	atomic_long_add(delta, (atomic_long_t *)&sem->count);
 }
 
 /*
@@ -149,9 +158,10 @@ static inline void rwsem_atomic_add(int delta, struct rw_semaphore *sem)
  */
 static inline void __downgrade_write(struct rw_semaphore *sem)
 {
-	int tmp;
+	long tmp;
 
-	tmp = atomic_add_return(-RWSEM_WAITING_BIAS, (atomic_t *)(&sem->count));
+	tmp = atomic_long_add_return(-RWSEM_WAITING_BIAS,
+				     (atomic_long_t *)&sem->count);
 	if (tmp < 0)
 		rwsem_downgrade_wake(sem);
 }
@@ -159,14 +169,14 @@ static inline void __downgrade_write(struct rw_semaphore *sem)
 /*
  * implement exchange and add functionality
  */
-static inline int rwsem_atomic_update(int delta, struct rw_semaphore *sem)
+static inline long rwsem_atomic_update(long delta, struct rw_semaphore *sem)
 {
-	return atomic_add_return(delta, (atomic_t *)(&sem->count));
+	return atomic_long_add_return(delta, (atomic_long_t *)&sem->count);
 }
 
 static inline int rwsem_is_locked(struct rw_semaphore *sem)
 {
-	return (sem->count != 0);
+	return sem->count != 0;
 }
 
 #endif	/* __KERNEL__ */



^ permalink raw reply related	[flat|nested] 548+ messages in thread

* [PATCH 2/2] rwsem: Move powerpc atomic-long based implementation
@ 2010-08-20  5:14                   ` Benjamin Herrenschmidt
  0 siblings, 0 replies; 548+ messages in thread
From: Benjamin Herrenschmidt @ 2010-08-20  5:14 UTC (permalink / raw)
  To: Linus Torvalds
  Cc: paulus, linux-kernel, sparclinux, akpm, linuxppc-dev, David Miller

Other architectures who support cmpxchg and atomic_long can
use that directly.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
---
 arch/powerpc/include/asm/rwsem.h    |  184 +----------------------------------
 include/asm-generic/rwsem-cmpxchg.h |  183 ++++++++++++++++++++++++++++++++++
 2 files changed, 184 insertions(+), 183 deletions(-)
 create mode 100644 include/asm-generic/rwsem-cmpxchg.h

diff --git a/arch/powerpc/include/asm/rwsem.h b/arch/powerpc/include/asm/rwsem.h
index 8447d89..1237ad6 100644
--- a/arch/powerpc/include/asm/rwsem.h
+++ b/arch/powerpc/include/asm/rwsem.h
@@ -1,183 +1 @@
-#ifndef _ASM_POWERPC_RWSEM_H
-#define _ASM_POWERPC_RWSEM_H
-
-#ifndef _LINUX_RWSEM_H
-#error "Please don't include <asm/rwsem.h> directly, use <linux/rwsem.h> instead."
-#endif
-
-#ifdef __KERNEL__
-
-/*
- * R/W semaphores for PPC using the stuff in lib/rwsem.c.
- * Adapted largely from include/asm-i386/rwsem.h
- * by Paul Mackerras <paulus@samba.org>.
- */
-
-#include <linux/list.h>
-#include <linux/spinlock.h>
-#include <asm/atomic.h>
-#include <asm/system.h>
-
-/*
- * the semaphore definition
- */
-#ifdef CONFIG_PPC64
-# define RWSEM_ACTIVE_MASK		0xffffffffL
-#else
-# define RWSEM_ACTIVE_MASK		0x0000ffffL
-#endif
-
-#define RWSEM_UNLOCKED_VALUE		0x00000000L
-#define RWSEM_ACTIVE_BIAS		0x00000001L
-#define RWSEM_WAITING_BIAS		(-RWSEM_ACTIVE_MASK-1)
-#define RWSEM_ACTIVE_READ_BIAS		RWSEM_ACTIVE_BIAS
-#define RWSEM_ACTIVE_WRITE_BIAS		(RWSEM_WAITING_BIAS + RWSEM_ACTIVE_BIAS)
-
-struct rw_semaphore {
-	long			count;
-	spinlock_t		wait_lock;
-	struct list_head	wait_list;
-#ifdef CONFIG_DEBUG_LOCK_ALLOC
-	struct lockdep_map	dep_map;
-#endif
-};
-
-#ifdef CONFIG_DEBUG_LOCK_ALLOC
-# define __RWSEM_DEP_MAP_INIT(lockname) , .dep_map = { .name = #lockname }
-#else
-# define __RWSEM_DEP_MAP_INIT(lockname)
-#endif
-
-#define __RWSEM_INITIALIZER(name)				\
-{								\
-	RWSEM_UNLOCKED_VALUE,					\
-	__SPIN_LOCK_UNLOCKED((name).wait_lock),			\
-	LIST_HEAD_INIT((name).wait_list)			\
-	__RWSEM_DEP_MAP_INIT(name)				\
-}
-
-#define DECLARE_RWSEM(name)		\
-	struct rw_semaphore name = __RWSEM_INITIALIZER(name)
-
-extern struct rw_semaphore *rwsem_down_read_failed(struct rw_semaphore *sem);
-extern struct rw_semaphore *rwsem_down_write_failed(struct rw_semaphore *sem);
-extern struct rw_semaphore *rwsem_wake(struct rw_semaphore *sem);
-extern struct rw_semaphore *rwsem_downgrade_wake(struct rw_semaphore *sem);
-
-extern void __init_rwsem(struct rw_semaphore *sem, const char *name,
-			 struct lock_class_key *key);
-
-#define init_rwsem(sem)					\
-	do {						\
-		static struct lock_class_key __key;	\
-							\
-		__init_rwsem((sem), #sem, &__key);	\
-	} while (0)
-
-/*
- * lock for reading
- */
-static inline void __down_read(struct rw_semaphore *sem)
-{
-	if (unlikely(atomic_long_inc_return((atomic_long_t *)&sem->count) <= 0))
-		rwsem_down_read_failed(sem);
-}
-
-static inline int __down_read_trylock(struct rw_semaphore *sem)
-{
-	long tmp;
-
-	while ((tmp = sem->count) >= 0) {
-		if (tmp = cmpxchg(&sem->count, tmp,
-				   tmp + RWSEM_ACTIVE_READ_BIAS)) {
-			return 1;
-		}
-	}
-	return 0;
-}
-
-/*
- * lock for writing
- */
-static inline void __down_write_nested(struct rw_semaphore *sem, int subclass)
-{
-	long tmp;
-
-	tmp = atomic_long_add_return(RWSEM_ACTIVE_WRITE_BIAS,
-				     (atomic_long_t *)&sem->count);
-	if (unlikely(tmp != RWSEM_ACTIVE_WRITE_BIAS))
-		rwsem_down_write_failed(sem);
-}
-
-static inline void __down_write(struct rw_semaphore *sem)
-{
-	__down_write_nested(sem, 0);
-}
-
-static inline int __down_write_trylock(struct rw_semaphore *sem)
-{
-	long tmp;
-
-	tmp = cmpxchg(&sem->count, RWSEM_UNLOCKED_VALUE,
-		      RWSEM_ACTIVE_WRITE_BIAS);
-	return tmp = RWSEM_UNLOCKED_VALUE;
-}
-
-/*
- * unlock after reading
- */
-static inline void __up_read(struct rw_semaphore *sem)
-{
-	long tmp;
-
-	tmp = atomic_long_dec_return((atomic_long_t *)&sem->count);
-	if (unlikely(tmp < -1 && (tmp & RWSEM_ACTIVE_MASK) = 0))
-		rwsem_wake(sem);
-}
-
-/*
- * unlock after writing
- */
-static inline void __up_write(struct rw_semaphore *sem)
-{
-	if (unlikely(atomic_long_sub_return(RWSEM_ACTIVE_WRITE_BIAS,
-				 (atomic_long_t *)&sem->count) < 0))
-		rwsem_wake(sem);
-}
-
-/*
- * implement atomic add functionality
- */
-static inline void rwsem_atomic_add(long delta, struct rw_semaphore *sem)
-{
-	atomic_long_add(delta, (atomic_long_t *)&sem->count);
-}
-
-/*
- * downgrade write lock to read lock
- */
-static inline void __downgrade_write(struct rw_semaphore *sem)
-{
-	long tmp;
-
-	tmp = atomic_long_add_return(-RWSEM_WAITING_BIAS,
-				     (atomic_long_t *)&sem->count);
-	if (tmp < 0)
-		rwsem_downgrade_wake(sem);
-}
-
-/*
- * implement exchange and add functionality
- */
-static inline long rwsem_atomic_update(long delta, struct rw_semaphore *sem)
-{
-	return atomic_long_add_return(delta, (atomic_long_t *)&sem->count);
-}
-
-static inline int rwsem_is_locked(struct rw_semaphore *sem)
-{
-	return sem->count != 0;
-}
-
-#endif	/* __KERNEL__ */
-#endif	/* _ASM_POWERPC_RWSEM_H */
+#include <asm-generic/rwsem-cmpxchg.h>
diff --git a/include/asm-generic/rwsem-cmpxchg.h b/include/asm-generic/rwsem-cmpxchg.h
new file mode 100644
index 0000000..2b1c859
--- /dev/null
+++ b/include/asm-generic/rwsem-cmpxchg.h
@@ -0,0 +1,183 @@
+#ifndef _RWSEM_CMPXCHG_H
+#define _RWSEM_CMPXCHG_H
+
+#ifndef _LINUX_RWSEM_H
+#error "Please don't include <asm/rwsem.h> directly, use <linux/rwsem.h> instead."
+#endif
+
+#ifdef __KERNEL__
+
+/*
+ * Generic R/W semaphores the stuff in lib/rwsem.c.
+ * Adapted largely from include/asm-i386/rwsem.h
+ * by Paul Mackerras <paulus@samba.org>.
+ */
+
+#include <linux/list.h>
+#include <linux/spinlock.h>
+#include <asm/atomic.h>
+#include <asm/system.h>
+
+/*
+ * the semaphore definition
+ */
+#if BITS_PER_LONG = 64
+# define RWSEM_ACTIVE_MASK		0xffffffffL
+#else
+# define RWSEM_ACTIVE_MASK		0x0000ffffL
+#endif
+
+#define RWSEM_UNLOCKED_VALUE		0x00000000L
+#define RWSEM_ACTIVE_BIAS		0x00000001L
+#define RWSEM_WAITING_BIAS		(-RWSEM_ACTIVE_MASK-1)
+#define RWSEM_ACTIVE_READ_BIAS		RWSEM_ACTIVE_BIAS
+#define RWSEM_ACTIVE_WRITE_BIAS		(RWSEM_WAITING_BIAS + RWSEM_ACTIVE_BIAS)
+
+struct rw_semaphore {
+	long			count;
+	spinlock_t		wait_lock;
+	struct list_head	wait_list;
+#ifdef CONFIG_DEBUG_LOCK_ALLOC
+	struct lockdep_map	dep_map;
+#endif
+};
+
+#ifdef CONFIG_DEBUG_LOCK_ALLOC
+# define __RWSEM_DEP_MAP_INIT(lockname) , .dep_map = { .name = #lockname }
+#else
+# define __RWSEM_DEP_MAP_INIT(lockname)
+#endif
+
+#define __RWSEM_INITIALIZER(name)				\
+{								\
+	RWSEM_UNLOCKED_VALUE,					\
+	__SPIN_LOCK_UNLOCKED((name).wait_lock),			\
+	LIST_HEAD_INIT((name).wait_list)			\
+	__RWSEM_DEP_MAP_INIT(name)				\
+}
+
+#define DECLARE_RWSEM(name)		\
+	struct rw_semaphore name = __RWSEM_INITIALIZER(name)
+
+extern struct rw_semaphore *rwsem_down_read_failed(struct rw_semaphore *sem);
+extern struct rw_semaphore *rwsem_down_write_failed(struct rw_semaphore *sem);
+extern struct rw_semaphore *rwsem_wake(struct rw_semaphore *sem);
+extern struct rw_semaphore *rwsem_downgrade_wake(struct rw_semaphore *sem);
+
+extern void __init_rwsem(struct rw_semaphore *sem, const char *name,
+			 struct lock_class_key *key);
+
+#define init_rwsem(sem)					\
+	do {						\
+		static struct lock_class_key __key;	\
+							\
+		__init_rwsem((sem), #sem, &__key);	\
+	} while (0)
+
+/*
+ * lock for reading
+ */
+static inline void __down_read(struct rw_semaphore *sem)
+{
+	if (unlikely(atomic_long_inc_return((atomic_long_t *)&sem->count) <= 0))
+		rwsem_down_read_failed(sem);
+}
+
+static inline int __down_read_trylock(struct rw_semaphore *sem)
+{
+	long tmp;
+
+	while ((tmp = sem->count) >= 0) {
+		if (tmp = cmpxchg(&sem->count, tmp,
+				   tmp + RWSEM_ACTIVE_READ_BIAS)) {
+			return 1;
+		}
+	}
+	return 0;
+}
+
+/*
+ * lock for writing
+ */
+static inline void __down_write_nested(struct rw_semaphore *sem, int subclass)
+{
+	long tmp;
+
+	tmp = atomic_long_add_return(RWSEM_ACTIVE_WRITE_BIAS,
+				     (atomic_long_t *)&sem->count);
+	if (unlikely(tmp != RWSEM_ACTIVE_WRITE_BIAS))
+		rwsem_down_write_failed(sem);
+}
+
+static inline void __down_write(struct rw_semaphore *sem)
+{
+	__down_write_nested(sem, 0);
+}
+
+static inline int __down_write_trylock(struct rw_semaphore *sem)
+{
+	long tmp;
+
+	tmp = cmpxchg(&sem->count, RWSEM_UNLOCKED_VALUE,
+		      RWSEM_ACTIVE_WRITE_BIAS);
+	return tmp = RWSEM_UNLOCKED_VALUE;
+}
+
+/*
+ * unlock after reading
+ */
+static inline void __up_read(struct rw_semaphore *sem)
+{
+	long tmp;
+
+	tmp = atomic_long_dec_return((atomic_long_t *)&sem->count);
+	if (unlikely(tmp < -1 && (tmp & RWSEM_ACTIVE_MASK) = 0))
+		rwsem_wake(sem);
+}
+
+/*
+ * unlock after writing
+ */
+static inline void __up_write(struct rw_semaphore *sem)
+{
+	if (unlikely(atomic_long_sub_return(RWSEM_ACTIVE_WRITE_BIAS,
+				 (atomic_long_t *)&sem->count) < 0))
+		rwsem_wake(sem);
+}
+
+/*
+ * implement atomic add functionality
+ */
+static inline void rwsem_atomic_add(long delta, struct rw_semaphore *sem)
+{
+	atomic_long_add(delta, (atomic_long_t *)&sem->count);
+}
+
+/*
+ * downgrade write lock to read lock
+ */
+static inline void __downgrade_write(struct rw_semaphore *sem)
+{
+	long tmp;
+
+	tmp = atomic_long_add_return(-RWSEM_WAITING_BIAS,
+				     (atomic_long_t *)&sem->count);
+	if (tmp < 0)
+		rwsem_downgrade_wake(sem);
+}
+
+/*
+ * implement exchange and add functionality
+ */
+static inline long rwsem_atomic_update(long delta, struct rw_semaphore *sem)
+{
+	return atomic_long_add_return(delta, (atomic_long_t *)&sem->count);
+}
+
+static inline int rwsem_is_locked(struct rw_semaphore *sem)
+{
+	return sem->count != 0;
+}
+
+#endif	/* __KERNEL__ */
+#endif	/* _RWSEM_CMPXCHG_H */



^ permalink raw reply related	[flat|nested] 548+ messages in thread

* [PATCH 1/2] powerpc: Make rwsem use "long" type
@ 2010-08-20  5:14                   ` Benjamin Herrenschmidt
  0 siblings, 0 replies; 548+ messages in thread
From: Benjamin Herrenschmidt @ 2010-08-20  5:14 UTC (permalink / raw)
  To: torvalds
  Cc: paulus, linux-kernel, sparclinux, akpm, linuxppc-dev, David Miller

This makes the 64-bit kernel use 64-bit signed integers for the counter
(effectively supporting 32-bit of active count in the semaphore), thus
avoiding things like overflow of the mmap_sem if you use a really crazy
number of threads

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
---
 arch/powerpc/include/asm/rwsem.h |   64 ++++++++++++++++++++++----------------
 1 files changed, 37 insertions(+), 27 deletions(-)

diff --git a/arch/powerpc/include/asm/rwsem.h b/arch/powerpc/include/asm/rwsem.h
index 24cd928..8447d89 100644
--- a/arch/powerpc/include/asm/rwsem.h
+++ b/arch/powerpc/include/asm/rwsem.h
@@ -21,15 +21,20 @@
 /*
  * the semaphore definition
  */
-struct rw_semaphore {
-	/* XXX this should be able to be an atomic_t  -- paulus */
-	signed int		count;
-#define RWSEM_UNLOCKED_VALUE		0x00000000
-#define RWSEM_ACTIVE_BIAS		0x00000001
-#define RWSEM_ACTIVE_MASK		0x0000ffff
-#define RWSEM_WAITING_BIAS		(-0x00010000)
+#ifdef CONFIG_PPC64
+# define RWSEM_ACTIVE_MASK		0xffffffffL
+#else
+# define RWSEM_ACTIVE_MASK		0x0000ffffL
+#endif
+
+#define RWSEM_UNLOCKED_VALUE		0x00000000L
+#define RWSEM_ACTIVE_BIAS		0x00000001L
+#define RWSEM_WAITING_BIAS		(-RWSEM_ACTIVE_MASK-1)
 #define RWSEM_ACTIVE_READ_BIAS		RWSEM_ACTIVE_BIAS
 #define RWSEM_ACTIVE_WRITE_BIAS		(RWSEM_WAITING_BIAS + RWSEM_ACTIVE_BIAS)
+
+struct rw_semaphore {
+	long			count;
 	spinlock_t		wait_lock;
 	struct list_head	wait_list;
 #ifdef CONFIG_DEBUG_LOCK_ALLOC
@@ -43,9 +48,13 @@ struct rw_semaphore {
 # define __RWSEM_DEP_MAP_INIT(lockname)
 #endif
 
-#define __RWSEM_INITIALIZER(name) \
-	{ RWSEM_UNLOCKED_VALUE, __SPIN_LOCK_UNLOCKED((name).wait_lock), \
-	  LIST_HEAD_INIT((name).wait_list) __RWSEM_DEP_MAP_INIT(name) }
+#define __RWSEM_INITIALIZER(name)				\
+{								\
+	RWSEM_UNLOCKED_VALUE,					\
+	__SPIN_LOCK_UNLOCKED((name).wait_lock),			\
+	LIST_HEAD_INIT((name).wait_list)			\
+	__RWSEM_DEP_MAP_INIT(name)				\
+}
 
 #define DECLARE_RWSEM(name)		\
 	struct rw_semaphore name = __RWSEM_INITIALIZER(name)
@@ -70,13 +79,13 @@ extern void __init_rwsem(struct rw_semaphore *sem, const char *name,
  */
 static inline void __down_read(struct rw_semaphore *sem)
 {
-	if (unlikely(atomic_inc_return((atomic_t *)(&sem->count)) <= 0))
+	if (unlikely(atomic_long_inc_return((atomic_long_t *)&sem->count) <= 0))
 		rwsem_down_read_failed(sem);
 }
 
 static inline int __down_read_trylock(struct rw_semaphore *sem)
 {
-	int tmp;
+	long tmp;
 
 	while ((tmp = sem->count) >= 0) {
 		if (tmp == cmpxchg(&sem->count, tmp,
@@ -92,10 +101,10 @@ static inline int __down_read_trylock(struct rw_semaphore *sem)
  */
 static inline void __down_write_nested(struct rw_semaphore *sem, int subclass)
 {
-	int tmp;
+	long tmp;
 
-	tmp = atomic_add_return(RWSEM_ACTIVE_WRITE_BIAS,
-				(atomic_t *)(&sem->count));
+	tmp = atomic_long_add_return(RWSEM_ACTIVE_WRITE_BIAS,
+				     (atomic_long_t *)&sem->count);
 	if (unlikely(tmp != RWSEM_ACTIVE_WRITE_BIAS))
 		rwsem_down_write_failed(sem);
 }
@@ -107,7 +116,7 @@ static inline void __down_write(struct rw_semaphore *sem)
 
 static inline int __down_write_trylock(struct rw_semaphore *sem)
 {
-	int tmp;
+	long tmp;
 
 	tmp = cmpxchg(&sem->count, RWSEM_UNLOCKED_VALUE,
 		      RWSEM_ACTIVE_WRITE_BIAS);
@@ -119,9 +128,9 @@ static inline int __down_write_trylock(struct rw_semaphore *sem)
  */
 static inline void __up_read(struct rw_semaphore *sem)
 {
-	int tmp;
+	long tmp;
 
-	tmp = atomic_dec_return((atomic_t *)(&sem->count));
+	tmp = atomic_long_dec_return((atomic_long_t *)&sem->count);
 	if (unlikely(tmp < -1 && (tmp & RWSEM_ACTIVE_MASK) == 0))
 		rwsem_wake(sem);
 }
@@ -131,17 +140,17 @@ static inline void __up_read(struct rw_semaphore *sem)
  */
 static inline void __up_write(struct rw_semaphore *sem)
 {
-	if (unlikely(atomic_sub_return(RWSEM_ACTIVE_WRITE_BIAS,
-			      (atomic_t *)(&sem->count)) < 0))
+	if (unlikely(atomic_long_sub_return(RWSEM_ACTIVE_WRITE_BIAS,
+				 (atomic_long_t *)&sem->count) < 0))
 		rwsem_wake(sem);
 }
 
 /*
  * implement atomic add functionality
  */
-static inline void rwsem_atomic_add(int delta, struct rw_semaphore *sem)
+static inline void rwsem_atomic_add(long delta, struct rw_semaphore *sem)
 {
-	atomic_add(delta, (atomic_t *)(&sem->count));
+	atomic_long_add(delta, (atomic_long_t *)&sem->count);
 }
 
 /*
@@ -149,9 +158,10 @@ static inline void rwsem_atomic_add(int delta, struct rw_semaphore *sem)
  */
 static inline void __downgrade_write(struct rw_semaphore *sem)
 {
-	int tmp;
+	long tmp;
 
-	tmp = atomic_add_return(-RWSEM_WAITING_BIAS, (atomic_t *)(&sem->count));
+	tmp = atomic_long_add_return(-RWSEM_WAITING_BIAS,
+				     (atomic_long_t *)&sem->count);
 	if (tmp < 0)
 		rwsem_downgrade_wake(sem);
 }
@@ -159,14 +169,14 @@ static inline void __downgrade_write(struct rw_semaphore *sem)
 /*
  * implement exchange and add functionality
  */
-static inline int rwsem_atomic_update(int delta, struct rw_semaphore *sem)
+static inline long rwsem_atomic_update(long delta, struct rw_semaphore *sem)
 {
-	return atomic_add_return(delta, (atomic_t *)(&sem->count));
+	return atomic_long_add_return(delta, (atomic_long_t *)&sem->count);
 }
 
 static inline int rwsem_is_locked(struct rw_semaphore *sem)
 {
-	return (sem->count != 0);
+	return sem->count != 0;
 }
 
 #endif	/* __KERNEL__ */

^ permalink raw reply related	[flat|nested] 548+ messages in thread

* [PATCH 2/2] rwsem: Move powerpc atomic-long based implementation to asm-generic
@ 2010-08-20  5:14                   ` Benjamin Herrenschmidt
  0 siblings, 0 replies; 548+ messages in thread
From: Benjamin Herrenschmidt @ 2010-08-20  5:14 UTC (permalink / raw)
  To: Linus Torvalds
  Cc: paulus, linux-kernel, sparclinux, akpm, linuxppc-dev, David Miller

Other architectures who support cmpxchg and atomic_long can
use that directly.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
---
 arch/powerpc/include/asm/rwsem.h    |  184 +----------------------------------
 include/asm-generic/rwsem-cmpxchg.h |  183 ++++++++++++++++++++++++++++++++++
 2 files changed, 184 insertions(+), 183 deletions(-)
 create mode 100644 include/asm-generic/rwsem-cmpxchg.h

diff --git a/arch/powerpc/include/asm/rwsem.h b/arch/powerpc/include/asm/rwsem.h
index 8447d89..1237ad6 100644
--- a/arch/powerpc/include/asm/rwsem.h
+++ b/arch/powerpc/include/asm/rwsem.h
@@ -1,183 +1 @@
-#ifndef _ASM_POWERPC_RWSEM_H
-#define _ASM_POWERPC_RWSEM_H
-
-#ifndef _LINUX_RWSEM_H
-#error "Please don't include <asm/rwsem.h> directly, use <linux/rwsem.h> instead."
-#endif
-
-#ifdef __KERNEL__
-
-/*
- * R/W semaphores for PPC using the stuff in lib/rwsem.c.
- * Adapted largely from include/asm-i386/rwsem.h
- * by Paul Mackerras <paulus@samba.org>.
- */
-
-#include <linux/list.h>
-#include <linux/spinlock.h>
-#include <asm/atomic.h>
-#include <asm/system.h>
-
-/*
- * the semaphore definition
- */
-#ifdef CONFIG_PPC64
-# define RWSEM_ACTIVE_MASK		0xffffffffL
-#else
-# define RWSEM_ACTIVE_MASK		0x0000ffffL
-#endif
-
-#define RWSEM_UNLOCKED_VALUE		0x00000000L
-#define RWSEM_ACTIVE_BIAS		0x00000001L
-#define RWSEM_WAITING_BIAS		(-RWSEM_ACTIVE_MASK-1)
-#define RWSEM_ACTIVE_READ_BIAS		RWSEM_ACTIVE_BIAS
-#define RWSEM_ACTIVE_WRITE_BIAS		(RWSEM_WAITING_BIAS + RWSEM_ACTIVE_BIAS)
-
-struct rw_semaphore {
-	long			count;
-	spinlock_t		wait_lock;
-	struct list_head	wait_list;
-#ifdef CONFIG_DEBUG_LOCK_ALLOC
-	struct lockdep_map	dep_map;
-#endif
-};
-
-#ifdef CONFIG_DEBUG_LOCK_ALLOC
-# define __RWSEM_DEP_MAP_INIT(lockname) , .dep_map = { .name = #lockname }
-#else
-# define __RWSEM_DEP_MAP_INIT(lockname)
-#endif
-
-#define __RWSEM_INITIALIZER(name)				\
-{								\
-	RWSEM_UNLOCKED_VALUE,					\
-	__SPIN_LOCK_UNLOCKED((name).wait_lock),			\
-	LIST_HEAD_INIT((name).wait_list)			\
-	__RWSEM_DEP_MAP_INIT(name)				\
-}
-
-#define DECLARE_RWSEM(name)		\
-	struct rw_semaphore name = __RWSEM_INITIALIZER(name)
-
-extern struct rw_semaphore *rwsem_down_read_failed(struct rw_semaphore *sem);
-extern struct rw_semaphore *rwsem_down_write_failed(struct rw_semaphore *sem);
-extern struct rw_semaphore *rwsem_wake(struct rw_semaphore *sem);
-extern struct rw_semaphore *rwsem_downgrade_wake(struct rw_semaphore *sem);
-
-extern void __init_rwsem(struct rw_semaphore *sem, const char *name,
-			 struct lock_class_key *key);
-
-#define init_rwsem(sem)					\
-	do {						\
-		static struct lock_class_key __key;	\
-							\
-		__init_rwsem((sem), #sem, &__key);	\
-	} while (0)
-
-/*
- * lock for reading
- */
-static inline void __down_read(struct rw_semaphore *sem)
-{
-	if (unlikely(atomic_long_inc_return((atomic_long_t *)&sem->count) <= 0))
-		rwsem_down_read_failed(sem);
-}
-
-static inline int __down_read_trylock(struct rw_semaphore *sem)
-{
-	long tmp;
-
-	while ((tmp = sem->count) >= 0) {
-		if (tmp == cmpxchg(&sem->count, tmp,
-				   tmp + RWSEM_ACTIVE_READ_BIAS)) {
-			return 1;
-		}
-	}
-	return 0;
-}
-
-/*
- * lock for writing
- */
-static inline void __down_write_nested(struct rw_semaphore *sem, int subclass)
-{
-	long tmp;
-
-	tmp = atomic_long_add_return(RWSEM_ACTIVE_WRITE_BIAS,
-				     (atomic_long_t *)&sem->count);
-	if (unlikely(tmp != RWSEM_ACTIVE_WRITE_BIAS))
-		rwsem_down_write_failed(sem);
-}
-
-static inline void __down_write(struct rw_semaphore *sem)
-{
-	__down_write_nested(sem, 0);
-}
-
-static inline int __down_write_trylock(struct rw_semaphore *sem)
-{
-	long tmp;
-
-	tmp = cmpxchg(&sem->count, RWSEM_UNLOCKED_VALUE,
-		      RWSEM_ACTIVE_WRITE_BIAS);
-	return tmp == RWSEM_UNLOCKED_VALUE;
-}
-
-/*
- * unlock after reading
- */
-static inline void __up_read(struct rw_semaphore *sem)
-{
-	long tmp;
-
-	tmp = atomic_long_dec_return((atomic_long_t *)&sem->count);
-	if (unlikely(tmp < -1 && (tmp & RWSEM_ACTIVE_MASK) == 0))
-		rwsem_wake(sem);
-}
-
-/*
- * unlock after writing
- */
-static inline void __up_write(struct rw_semaphore *sem)
-{
-	if (unlikely(atomic_long_sub_return(RWSEM_ACTIVE_WRITE_BIAS,
-				 (atomic_long_t *)&sem->count) < 0))
-		rwsem_wake(sem);
-}
-
-/*
- * implement atomic add functionality
- */
-static inline void rwsem_atomic_add(long delta, struct rw_semaphore *sem)
-{
-	atomic_long_add(delta, (atomic_long_t *)&sem->count);
-}
-
-/*
- * downgrade write lock to read lock
- */
-static inline void __downgrade_write(struct rw_semaphore *sem)
-{
-	long tmp;
-
-	tmp = atomic_long_add_return(-RWSEM_WAITING_BIAS,
-				     (atomic_long_t *)&sem->count);
-	if (tmp < 0)
-		rwsem_downgrade_wake(sem);
-}
-
-/*
- * implement exchange and add functionality
- */
-static inline long rwsem_atomic_update(long delta, struct rw_semaphore *sem)
-{
-	return atomic_long_add_return(delta, (atomic_long_t *)&sem->count);
-}
-
-static inline int rwsem_is_locked(struct rw_semaphore *sem)
-{
-	return sem->count != 0;
-}
-
-#endif	/* __KERNEL__ */
-#endif	/* _ASM_POWERPC_RWSEM_H */
+#include <asm-generic/rwsem-cmpxchg.h>
diff --git a/include/asm-generic/rwsem-cmpxchg.h b/include/asm-generic/rwsem-cmpxchg.h
new file mode 100644
index 0000000..2b1c859
--- /dev/null
+++ b/include/asm-generic/rwsem-cmpxchg.h
@@ -0,0 +1,183 @@
+#ifndef _RWSEM_CMPXCHG_H
+#define _RWSEM_CMPXCHG_H
+
+#ifndef _LINUX_RWSEM_H
+#error "Please don't include <asm/rwsem.h> directly, use <linux/rwsem.h> instead."
+#endif
+
+#ifdef __KERNEL__
+
+/*
+ * Generic R/W semaphores the stuff in lib/rwsem.c.
+ * Adapted largely from include/asm-i386/rwsem.h
+ * by Paul Mackerras <paulus@samba.org>.
+ */
+
+#include <linux/list.h>
+#include <linux/spinlock.h>
+#include <asm/atomic.h>
+#include <asm/system.h>
+
+/*
+ * the semaphore definition
+ */
+#if BITS_PER_LONG == 64
+# define RWSEM_ACTIVE_MASK		0xffffffffL
+#else
+# define RWSEM_ACTIVE_MASK		0x0000ffffL
+#endif
+
+#define RWSEM_UNLOCKED_VALUE		0x00000000L
+#define RWSEM_ACTIVE_BIAS		0x00000001L
+#define RWSEM_WAITING_BIAS		(-RWSEM_ACTIVE_MASK-1)
+#define RWSEM_ACTIVE_READ_BIAS		RWSEM_ACTIVE_BIAS
+#define RWSEM_ACTIVE_WRITE_BIAS		(RWSEM_WAITING_BIAS + RWSEM_ACTIVE_BIAS)
+
+struct rw_semaphore {
+	long			count;
+	spinlock_t		wait_lock;
+	struct list_head	wait_list;
+#ifdef CONFIG_DEBUG_LOCK_ALLOC
+	struct lockdep_map	dep_map;
+#endif
+};
+
+#ifdef CONFIG_DEBUG_LOCK_ALLOC
+# define __RWSEM_DEP_MAP_INIT(lockname) , .dep_map = { .name = #lockname }
+#else
+# define __RWSEM_DEP_MAP_INIT(lockname)
+#endif
+
+#define __RWSEM_INITIALIZER(name)				\
+{								\
+	RWSEM_UNLOCKED_VALUE,					\
+	__SPIN_LOCK_UNLOCKED((name).wait_lock),			\
+	LIST_HEAD_INIT((name).wait_list)			\
+	__RWSEM_DEP_MAP_INIT(name)				\
+}
+
+#define DECLARE_RWSEM(name)		\
+	struct rw_semaphore name = __RWSEM_INITIALIZER(name)
+
+extern struct rw_semaphore *rwsem_down_read_failed(struct rw_semaphore *sem);
+extern struct rw_semaphore *rwsem_down_write_failed(struct rw_semaphore *sem);
+extern struct rw_semaphore *rwsem_wake(struct rw_semaphore *sem);
+extern struct rw_semaphore *rwsem_downgrade_wake(struct rw_semaphore *sem);
+
+extern void __init_rwsem(struct rw_semaphore *sem, const char *name,
+			 struct lock_class_key *key);
+
+#define init_rwsem(sem)					\
+	do {						\
+		static struct lock_class_key __key;	\
+							\
+		__init_rwsem((sem), #sem, &__key);	\
+	} while (0)
+
+/*
+ * lock for reading
+ */
+static inline void __down_read(struct rw_semaphore *sem)
+{
+	if (unlikely(atomic_long_inc_return((atomic_long_t *)&sem->count) <= 0))
+		rwsem_down_read_failed(sem);
+}
+
+static inline int __down_read_trylock(struct rw_semaphore *sem)
+{
+	long tmp;
+
+	while ((tmp = sem->count) >= 0) {
+		if (tmp == cmpxchg(&sem->count, tmp,
+				   tmp + RWSEM_ACTIVE_READ_BIAS)) {
+			return 1;
+		}
+	}
+	return 0;
+}
+
+/*
+ * lock for writing
+ */
+static inline void __down_write_nested(struct rw_semaphore *sem, int subclass)
+{
+	long tmp;
+
+	tmp = atomic_long_add_return(RWSEM_ACTIVE_WRITE_BIAS,
+				     (atomic_long_t *)&sem->count);
+	if (unlikely(tmp != RWSEM_ACTIVE_WRITE_BIAS))
+		rwsem_down_write_failed(sem);
+}
+
+static inline void __down_write(struct rw_semaphore *sem)
+{
+	__down_write_nested(sem, 0);
+}
+
+static inline int __down_write_trylock(struct rw_semaphore *sem)
+{
+	long tmp;
+
+	tmp = cmpxchg(&sem->count, RWSEM_UNLOCKED_VALUE,
+		      RWSEM_ACTIVE_WRITE_BIAS);
+	return tmp == RWSEM_UNLOCKED_VALUE;
+}
+
+/*
+ * unlock after reading
+ */
+static inline void __up_read(struct rw_semaphore *sem)
+{
+	long tmp;
+
+	tmp = atomic_long_dec_return((atomic_long_t *)&sem->count);
+	if (unlikely(tmp < -1 && (tmp & RWSEM_ACTIVE_MASK) == 0))
+		rwsem_wake(sem);
+}
+
+/*
+ * unlock after writing
+ */
+static inline void __up_write(struct rw_semaphore *sem)
+{
+	if (unlikely(atomic_long_sub_return(RWSEM_ACTIVE_WRITE_BIAS,
+				 (atomic_long_t *)&sem->count) < 0))
+		rwsem_wake(sem);
+}
+
+/*
+ * implement atomic add functionality
+ */
+static inline void rwsem_atomic_add(long delta, struct rw_semaphore *sem)
+{
+	atomic_long_add(delta, (atomic_long_t *)&sem->count);
+}
+
+/*
+ * downgrade write lock to read lock
+ */
+static inline void __downgrade_write(struct rw_semaphore *sem)
+{
+	long tmp;
+
+	tmp = atomic_long_add_return(-RWSEM_WAITING_BIAS,
+				     (atomic_long_t *)&sem->count);
+	if (tmp < 0)
+		rwsem_downgrade_wake(sem);
+}
+
+/*
+ * implement exchange and add functionality
+ */
+static inline long rwsem_atomic_update(long delta, struct rw_semaphore *sem)
+{
+	return atomic_long_add_return(delta, (atomic_long_t *)&sem->count);
+}
+
+static inline int rwsem_is_locked(struct rw_semaphore *sem)
+{
+	return sem->count != 0;
+}
+
+#endif	/* __KERNEL__ */
+#endif	/* _RWSEM_CMPXCHG_H */

^ permalink raw reply related	[flat|nested] 548+ messages in thread

* Re: [PATCH 2/2] rwsem: Move powerpc atomic-long based implementation to asm-generic
  2010-08-20  5:14                   ` [PATCH 2/2] rwsem: Move powerpc atomic-long based implementation Benjamin Herrenschmidt
  (?)
@ 2010-08-20  6:43                     ` Sam Ravnborg
  -1 siblings, 0 replies; 548+ messages in thread
From: Sam Ravnborg @ 2010-08-20  6:43 UTC (permalink / raw)
  To: Benjamin Herrenschmidt
  Cc: Linus Torvalds, akpm, sparclinux, linux-kernel, paulus,
	linuxppc-dev, David Miller

> diff --git a/include/asm-generic/rwsem-cmpxchg.h b/include/asm-generic/rwsem-cmpxchg.h
> new file mode 100644
> index 0000000..2b1c859
> --- /dev/null
> +++ b/include/asm-generic/rwsem-cmpxchg.h
> @@ -0,0 +1,183 @@
> +#ifndef _RWSEM_CMPXCHG_H
> +#define _RWSEM_CMPXCHG_H
> +
> +#ifndef _LINUX_RWSEM_H
> +#error "Please don't include <asm/rwsem.h> directly, use <linux/rwsem.h> instead."
> +#endif
> +
> +#ifdef __KERNEL__

#ifdef __KERNEL__ is only relevant for exported headers.
For kernel only headers like this is does not make sense,
but it does not harm.

	Sam

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [PATCH 2/2] rwsem: Move powerpc atomic-long based
@ 2010-08-20  6:43                     ` Sam Ravnborg
  0 siblings, 0 replies; 548+ messages in thread
From: Sam Ravnborg @ 2010-08-20  6:43 UTC (permalink / raw)
  To: Benjamin Herrenschmidt
  Cc: Linus Torvalds, paulus, linux-kernel, sparclinux, akpm,
	linuxppc-dev, David Miller

> diff --git a/include/asm-generic/rwsem-cmpxchg.h b/include/asm-generic/rwsem-cmpxchg.h
> new file mode 100644
> index 0000000..2b1c859
> --- /dev/null
> +++ b/include/asm-generic/rwsem-cmpxchg.h
> @@ -0,0 +1,183 @@
> +#ifndef _RWSEM_CMPXCHG_H
> +#define _RWSEM_CMPXCHG_H
> +
> +#ifndef _LINUX_RWSEM_H
> +#error "Please don't include <asm/rwsem.h> directly, use <linux/rwsem.h> instead."
> +#endif
> +
> +#ifdef __KERNEL__

#ifdef __KERNEL__ is only relevant for exported headers.
For kernel only headers like this is does not make sense,
but it does not harm.

	Sam

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [PATCH 2/2] rwsem: Move powerpc atomic-long based implementation to asm-generic
@ 2010-08-20  6:43                     ` Sam Ravnborg
  0 siblings, 0 replies; 548+ messages in thread
From: Sam Ravnborg @ 2010-08-20  6:43 UTC (permalink / raw)
  To: Benjamin Herrenschmidt
  Cc: Linus Torvalds, paulus, linux-kernel, sparclinux, akpm,
	linuxppc-dev, David Miller

> diff --git a/include/asm-generic/rwsem-cmpxchg.h b/include/asm-generic/rwsem-cmpxchg.h
> new file mode 100644
> index 0000000..2b1c859
> --- /dev/null
> +++ b/include/asm-generic/rwsem-cmpxchg.h
> @@ -0,0 +1,183 @@
> +#ifndef _RWSEM_CMPXCHG_H
> +#define _RWSEM_CMPXCHG_H
> +
> +#ifndef _LINUX_RWSEM_H
> +#error "Please don't include <asm/rwsem.h> directly, use <linux/rwsem.h> instead."
> +#endif
> +
> +#ifdef __KERNEL__

#ifdef __KERNEL__ is only relevant for exported headers.
For kernel only headers like this is does not make sense,
but it does not harm.

	Sam

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [PATCH 2/2] rwsem: Move powerpc atomic-long based implementation to asm-generic
  2010-08-20  5:14                   ` [PATCH 2/2] rwsem: Move powerpc atomic-long based implementation Benjamin Herrenschmidt
  (?)
@ 2010-08-23  4:39                     ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2010-08-23  4:39 UTC (permalink / raw)
  To: benh; +Cc: torvalds, akpm, sparclinux, linux-kernel, paulus, linuxppc-dev

From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Date: Fri, 20 Aug 2010 15:14:55 +1000

> Other architectures who support cmpxchg and atomic_long can
> use that directly.
> 
> Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>

Acked-by: David S. Miller <davem@davemloft.net>

I'll move sparc64 over to this once it hits Linus's tree.

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [PATCH 2/2] rwsem: Move powerpc atomic-long based
@ 2010-08-23  4:39                     ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2010-08-23  4:39 UTC (permalink / raw)
  To: benh; +Cc: torvalds, paulus, linux-kernel, sparclinux, akpm, linuxppc-dev

From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Date: Fri, 20 Aug 2010 15:14:55 +1000

> Other architectures who support cmpxchg and atomic_long can
> use that directly.
> 
> Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>

Acked-by: David S. Miller <davem@davemloft.net>

I'll move sparc64 over to this once it hits Linus's tree.

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [PATCH 2/2] rwsem: Move powerpc atomic-long based implementation to asm-generic
@ 2010-08-23  4:39                     ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2010-08-23  4:39 UTC (permalink / raw)
  To: benh; +Cc: torvalds, paulus, linux-kernel, sparclinux, akpm, linuxppc-dev

From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Date: Fri, 20 Aug 2010 15:14:55 +1000

> Other architectures who support cmpxchg and atomic_long can
> use that directly.
> 
> Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>

Acked-by: David S. Miller <davem@davemloft.net>

I'll move sparc64 over to this once it hits Linus's tree.

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: 64-bit ppc rwsem
  2010-08-19  5:29                 ` David Miller
  (?)
@ 2010-08-23 13:44                   ` Arnd Bergmann
  -1 siblings, 0 replies; 548+ messages in thread
From: Arnd Bergmann @ 2010-08-23 13:44 UTC (permalink / raw)
  To: linuxppc-dev
  Cc: David Miller, benh, torvalds, paulus, linux-kernel, sparclinux, akpm

On Thursday 19 August 2010, David Miller wrote:
> From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
> Date: Thu, 19 Aug 2010 15:23:23 +1000
> 
> > Similar here, but using atomic_long_t instead so it works for 32-bit too
> > for me. I suppose we could make that part common indeed.
> > 
> > What about asm-generic/rwsem-atomic.h  or rwsem-cmpxchg.h ?
> 
> Using rwsem-cmpxchg.h sounds best I guess.

The implementation looks good for asm-generic, but there is now an asymmetry
between the spinlock and the atomic_long_t based version.

Maybe we can make them both do the same thing, either of

1. create include/linux/rwsem-cmpxchg.h and add an
   #elif defined(CONFIG_RWSEM_GENERIC_ATOMIC) to include/linux/rwsem.h

2. move include/linux/rwsem-spinlock.h to include/asm-generic/ and
   include that from all architectures that want the spinlock based version.

Further comments:

* Alpha has an optimization for the uniprocessor case, where the atomic
instructions get turned into nonatomic additions. The spinlock based
version uses no locks on UP but disables interrupts for reasons I don't
understand (nothing running at interrupt time should try to access an rwsem).
Should the generic version do the same as Alpha?

* Is there any architecture that would still benefit from having a separate
rwsem implementation? AFAICT all the remaining ones are just variations of
the same concept of using cmpxchg (or xadd in case of x86), which is what
atomics typically end up doing anyway.

	Arnd

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: 64-bit ppc rwsem
@ 2010-08-23 13:44                   ` Arnd Bergmann
  0 siblings, 0 replies; 548+ messages in thread
From: Arnd Bergmann @ 2010-08-23 13:44 UTC (permalink / raw)
  To: linuxppc-dev
  Cc: paulus, linux-kernel, sparclinux, akpm, torvalds, David Miller

On Thursday 19 August 2010, David Miller wrote:
> From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
> Date: Thu, 19 Aug 2010 15:23:23 +1000
> 
> > Similar here, but using atomic_long_t instead so it works for 32-bit too
> > for me. I suppose we could make that part common indeed.
> > 
> > What about asm-generic/rwsem-atomic.h  or rwsem-cmpxchg.h ?
> 
> Using rwsem-cmpxchg.h sounds best I guess.

The implementation looks good for asm-generic, but there is now an asymmetry
between the spinlock and the atomic_long_t based version.

Maybe we can make them both do the same thing, either of

1. create include/linux/rwsem-cmpxchg.h and add an
   #elif defined(CONFIG_RWSEM_GENERIC_ATOMIC) to include/linux/rwsem.h

2. move include/linux/rwsem-spinlock.h to include/asm-generic/ and
   include that from all architectures that want the spinlock based version.

Further comments:

* Alpha has an optimization for the uniprocessor case, where the atomic
instructions get turned into nonatomic additions. The spinlock based
version uses no locks on UP but disables interrupts for reasons I don't
understand (nothing running at interrupt time should try to access an rwsem).
Should the generic version do the same as Alpha?

* Is there any architecture that would still benefit from having a separate
rwsem implementation? AFAICT all the remaining ones are just variations of
the same concept of using cmpxchg (or xadd in case of x86), which is what
atomics typically end up doing anyway.

	Arnd

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: 64-bit ppc rwsem
@ 2010-08-23 13:44                   ` Arnd Bergmann
  0 siblings, 0 replies; 548+ messages in thread
From: Arnd Bergmann @ 2010-08-23 13:44 UTC (permalink / raw)
  To: linuxppc-dev
  Cc: paulus, linux-kernel, sparclinux, akpm, torvalds, David Miller

On Thursday 19 August 2010, David Miller wrote:
> From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
> Date: Thu, 19 Aug 2010 15:23:23 +1000
> 
> > Similar here, but using atomic_long_t instead so it works for 32-bit too
> > for me. I suppose we could make that part common indeed.
> > 
> > What about asm-generic/rwsem-atomic.h  or rwsem-cmpxchg.h ?
> 
> Using rwsem-cmpxchg.h sounds best I guess.

The implementation looks good for asm-generic, but there is now an asymmetry
between the spinlock and the atomic_long_t based version.

Maybe we can make them both do the same thing, either of

1. create include/linux/rwsem-cmpxchg.h and add an
   #elif defined(CONFIG_RWSEM_GENERIC_ATOMIC) to include/linux/rwsem.h

2. move include/linux/rwsem-spinlock.h to include/asm-generic/ and
   include that from all architectures that want the spinlock based version.

Further comments:

* Alpha has an optimization for the uniprocessor case, where the atomic
instructions get turned into nonatomic additions. The spinlock based
version uses no locks on UP but disables interrupts for reasons I don't
understand (nothing running at interrupt time should try to access an rwsem).
Should the generic version do the same as Alpha?

* Is there any architecture that would still benefit from having a separate
rwsem implementation? AFAICT all the remaining ones are just variations of
the same concept of using cmpxchg (or xadd in case of x86), which is what
atomics typically end up doing anyway.

	Arnd

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: 64-bit ppc rwsem
  2010-08-23 13:44                   ` Arnd Bergmann
  (?)
@ 2010-08-23 22:01                     ` Benjamin Herrenschmidt
  -1 siblings, 0 replies; 548+ messages in thread
From: Benjamin Herrenschmidt @ 2010-08-23 22:01 UTC (permalink / raw)
  To: Arnd Bergmann
  Cc: linuxppc-dev, David Miller, torvalds, paulus, linux-kernel,
	sparclinux, akpm

On Mon, 2010-08-23 at 15:44 +0200, Arnd Bergmann wrote:
> 
> * Alpha has an optimization for the uniprocessor case, where the atomic
> instructions get turned into nonatomic additions. The spinlock based
> version uses no locks on UP but disables interrupts for reasons I don't
> understand (nothing running at interrupt time should try to access an rwsem).
> Should the generic version do the same as Alpha?

I've seen drivers in the past do trylocks at interrupt time ... tho I
agree it sucks.

> * Is there any architecture that would still benefit from having a separate
> rwsem implementation? AFAICT all the remaining ones are just variations of
> the same concept of using cmpxchg (or xadd in case of x86), which is what
> atomics typically end up doing anyway.

It depends how sensitive rwsems are. 

The "generic" variant based on atomic's and cmpxchg on powerpc is
sub-optimal in the sense that it has stronger memory barriers that would
be necessary (atomic_inc_return for example has both acquire and
release).

But that vs. one more pile of inline asm, we decided it wasn't hot
enough a spot for us to care back then.

Cheers,
Ben.


^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: 64-bit ppc rwsem
@ 2010-08-23 22:01                     ` Benjamin Herrenschmidt
  0 siblings, 0 replies; 548+ messages in thread
From: Benjamin Herrenschmidt @ 2010-08-23 22:01 UTC (permalink / raw)
  To: Arnd Bergmann
  Cc: linuxppc-dev, paulus, linux-kernel, sparclinux, akpm, torvalds,
	David Miller

On Mon, 2010-08-23 at 15:44 +0200, Arnd Bergmann wrote:
> 
> * Alpha has an optimization for the uniprocessor case, where the atomic
> instructions get turned into nonatomic additions. The spinlock based
> version uses no locks on UP but disables interrupts for reasons I don't
> understand (nothing running at interrupt time should try to access an rwsem).
> Should the generic version do the same as Alpha?

I've seen drivers in the past do trylocks at interrupt time ... tho I
agree it sucks.

> * Is there any architecture that would still benefit from having a separate
> rwsem implementation? AFAICT all the remaining ones are just variations of
> the same concept of using cmpxchg (or xadd in case of x86), which is what
> atomics typically end up doing anyway.

It depends how sensitive rwsems are. 

The "generic" variant based on atomic's and cmpxchg on powerpc is
sub-optimal in the sense that it has stronger memory barriers that would
be necessary (atomic_inc_return for example has both acquire and
release).

But that vs. one more pile of inline asm, we decided it wasn't hot
enough a spot for us to care back then.

Cheers,
Ben.


^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: 64-bit ppc rwsem
@ 2010-08-23 22:01                     ` Benjamin Herrenschmidt
  0 siblings, 0 replies; 548+ messages in thread
From: Benjamin Herrenschmidt @ 2010-08-23 22:01 UTC (permalink / raw)
  To: Arnd Bergmann
  Cc: linuxppc-dev, paulus, linux-kernel, sparclinux, akpm, torvalds,
	David Miller

On Mon, 2010-08-23 at 15:44 +0200, Arnd Bergmann wrote:
> 
> * Alpha has an optimization for the uniprocessor case, where the atomic
> instructions get turned into nonatomic additions. The spinlock based
> version uses no locks on UP but disables interrupts for reasons I don't
> understand (nothing running at interrupt time should try to access an rwsem).
> Should the generic version do the same as Alpha?

I've seen drivers in the past do trylocks at interrupt time ... tho I
agree it sucks.

> * Is there any architecture that would still benefit from having a separate
> rwsem implementation? AFAICT all the remaining ones are just variations of
> the same concept of using cmpxchg (or xadd in case of x86), which is what
> atomics typically end up doing anyway.

It depends how sensitive rwsems are. 

The "generic" variant based on atomic's and cmpxchg on powerpc is
sub-optimal in the sense that it has stronger memory barriers that would
be necessary (atomic_inc_return for example has both acquire and
release).

But that vs. one more pile of inline asm, we decided it wasn't hot
enough a spot for us to care back then.

Cheers,
Ben.

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: 64-bit ppc rwsem
  2010-08-23 22:01                     ` Benjamin Herrenschmidt
  (?)
@ 2010-08-23 22:18                       ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2010-08-23 22:18 UTC (permalink / raw)
  To: benh; +Cc: arnd, linuxppc-dev, torvalds, paulus, linux-kernel, sparclinux, akpm

From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Date: Tue, 24 Aug 2010 08:01:25 +1000

> On Mon, 2010-08-23 at 15:44 +0200, Arnd Bergmann wrote:
>> 
>> * Alpha has an optimization for the uniprocessor case, where the atomic
>> instructions get turned into nonatomic additions. The spinlock based
>> version uses no locks on UP but disables interrupts for reasons I don't
>> understand (nothing running at interrupt time should try to access an rwsem).
>> Should the generic version do the same as Alpha?
> 
> I've seen drivers in the past do trylocks at interrupt time ... tho I
> agree it sucks.

Recently there was a thread where this was declared absolutely illegal.

Maybe it was allowed, or sort-of worked before, and that's why it's
accounted for with IRQ disables in some implementations.  I don't
know.

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: 64-bit ppc rwsem
@ 2010-08-23 22:18                       ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2010-08-23 22:18 UTC (permalink / raw)
  To: benh; +Cc: arnd, linuxppc-dev, paulus, linux-kernel, sparclinux, akpm, torvalds

From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Date: Tue, 24 Aug 2010 08:01:25 +1000

> On Mon, 2010-08-23 at 15:44 +0200, Arnd Bergmann wrote:
>> 
>> * Alpha has an optimization for the uniprocessor case, where the atomic
>> instructions get turned into nonatomic additions. The spinlock based
>> version uses no locks on UP but disables interrupts for reasons I don't
>> understand (nothing running at interrupt time should try to access an rwsem).
>> Should the generic version do the same as Alpha?
> 
> I've seen drivers in the past do trylocks at interrupt time ... tho I
> agree it sucks.

Recently there was a thread where this was declared absolutely illegal.

Maybe it was allowed, or sort-of worked before, and that's why it's
accounted for with IRQ disables in some implementations.  I don't
know.

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: 64-bit ppc rwsem
@ 2010-08-23 22:18                       ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2010-08-23 22:18 UTC (permalink / raw)
  To: benh; +Cc: arnd, linuxppc-dev, paulus, linux-kernel, sparclinux, akpm, torvalds

From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Date: Tue, 24 Aug 2010 08:01:25 +1000

> On Mon, 2010-08-23 at 15:44 +0200, Arnd Bergmann wrote:
>> 
>> * Alpha has an optimization for the uniprocessor case, where the atomic
>> instructions get turned into nonatomic additions. The spinlock based
>> version uses no locks on UP but disables interrupts for reasons I don't
>> understand (nothing running at interrupt time should try to access an rwsem).
>> Should the generic version do the same as Alpha?
> 
> I've seen drivers in the past do trylocks at interrupt time ... tho I
> agree it sucks.

Recently there was a thread where this was declared absolutely illegal.

Maybe it was allowed, or sort-of worked before, and that's why it's
accounted for with IRQ disables in some implementations.  I don't
know.

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: 64-bit ppc rwsem
  2010-08-23 22:18                       ` David Miller
  (?)
@ 2010-08-24  1:31                         ` Benjamin Herrenschmidt
  -1 siblings, 0 replies; 548+ messages in thread
From: Benjamin Herrenschmidt @ 2010-08-24  1:31 UTC (permalink / raw)
  To: David Miller
  Cc: arnd, linuxppc-dev, torvalds, paulus, linux-kernel, sparclinux, akpm

On Mon, 2010-08-23 at 15:18 -0700, David Miller wrote:
> > I've seen drivers in the past do trylocks at interrupt time ... tho
> I
> > agree it sucks.
> 
> Recently there was a thread where this was declared absolutely
> illegal.
> 
> Maybe it was allowed, or sort-of worked before, and that's why it's
> accounted for with IRQ disables in some implementations.  I don't
> know. 

Ok, I'm happy to say it's a big no-no then.

Arnd, do you want to take over the moving to asm-generic and take care
of the spinlock case as well ? I can send Linus the first patch that
changes powerpc to use atomic_long now along with a few other things I
have pending, then you can pickup from there. Or do you want me to
continue pushing my patch as-is and we can look at cleaning up the
spinlock case separately ?

Cheers,
Ben.


^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: 64-bit ppc rwsem
@ 2010-08-24  1:31                         ` Benjamin Herrenschmidt
  0 siblings, 0 replies; 548+ messages in thread
From: Benjamin Herrenschmidt @ 2010-08-24  1:31 UTC (permalink / raw)
  To: David Miller
  Cc: arnd, linuxppc-dev, paulus, linux-kernel, sparclinux, akpm, torvalds

On Mon, 2010-08-23 at 15:18 -0700, David Miller wrote:
> > I've seen drivers in the past do trylocks at interrupt time ... tho
> I
> > agree it sucks.
> 
> Recently there was a thread where this was declared absolutely
> illegal.
> 
> Maybe it was allowed, or sort-of worked before, and that's why it's
> accounted for with IRQ disables in some implementations.  I don't
> know. 

Ok, I'm happy to say it's a big no-no then.

Arnd, do you want to take over the moving to asm-generic and take care
of the spinlock case as well ? I can send Linus the first patch that
changes powerpc to use atomic_long now along with a few other things I
have pending, then you can pickup from there. Or do you want me to
continue pushing my patch as-is and we can look at cleaning up the
spinlock case separately ?

Cheers,
Ben.


^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: 64-bit ppc rwsem
@ 2010-08-24  1:31                         ` Benjamin Herrenschmidt
  0 siblings, 0 replies; 548+ messages in thread
From: Benjamin Herrenschmidt @ 2010-08-24  1:31 UTC (permalink / raw)
  To: David Miller
  Cc: arnd, linuxppc-dev, paulus, linux-kernel, sparclinux, akpm, torvalds

On Mon, 2010-08-23 at 15:18 -0700, David Miller wrote:
> > I've seen drivers in the past do trylocks at interrupt time ... tho
> I
> > agree it sucks.
> 
> Recently there was a thread where this was declared absolutely
> illegal.
> 
> Maybe it was allowed, or sort-of worked before, and that's why it's
> accounted for with IRQ disables in some implementations.  I don't
> know. 

Ok, I'm happy to say it's a big no-no then.

Arnd, do you want to take over the moving to asm-generic and take care
of the spinlock case as well ? I can send Linus the first patch that
changes powerpc to use atomic_long now along with a few other things I
have pending, then you can pickup from there. Or do you want me to
continue pushing my patch as-is and we can look at cleaning up the
spinlock case separately ?

Cheers,
Ben.

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [PATCH 2/2] rwsem: Move powerpc atomic-long based implementation to asm-generic
  2010-08-20  6:43                     ` [PATCH 2/2] rwsem: Move powerpc atomic-long based Sam Ravnborg
  (?)
@ 2010-08-24  1:32                       ` Benjamin Herrenschmidt
  -1 siblings, 0 replies; 548+ messages in thread
From: Benjamin Herrenschmidt @ 2010-08-24  1:32 UTC (permalink / raw)
  To: Sam Ravnborg
  Cc: Linus Torvalds, akpm, sparclinux, linux-kernel, paulus,
	linuxppc-dev, David Miller

On Fri, 2010-08-20 at 08:43 +0200, Sam Ravnborg wrote:
> > diff --git a/include/asm-generic/rwsem-cmpxchg.h b/include/asm-generic/rwsem-cmpxchg.h
> > new file mode 100644
> > index 0000000..2b1c859
> > --- /dev/null
> > +++ b/include/asm-generic/rwsem-cmpxchg.h
> > @@ -0,0 +1,183 @@
> > +#ifndef _RWSEM_CMPXCHG_H
> > +#define _RWSEM_CMPXCHG_H
> > +
> > +#ifndef _LINUX_RWSEM_H
> > +#error "Please don't include <asm/rwsem.h> directly, use <linux/rwsem.h> instead."
> > +#endif
> > +
> > +#ifdef __KERNEL__
> 
> #ifdef __KERNEL__ is only relevant for exported headers.
> For kernel only headers like this is does not make sense,
> but it does not harm.

Well, it was there in the first place, I think we've carried around
forever, but as you say, it doesn't really harm.

Ben.



^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [PATCH 2/2] rwsem: Move powerpc atomic-long based
@ 2010-08-24  1:32                       ` Benjamin Herrenschmidt
  0 siblings, 0 replies; 548+ messages in thread
From: Benjamin Herrenschmidt @ 2010-08-24  1:32 UTC (permalink / raw)
  To: Sam Ravnborg
  Cc: Linus Torvalds, paulus, linux-kernel, sparclinux, akpm,
	linuxppc-dev, David Miller

On Fri, 2010-08-20 at 08:43 +0200, Sam Ravnborg wrote:
> > diff --git a/include/asm-generic/rwsem-cmpxchg.h b/include/asm-generic/rwsem-cmpxchg.h
> > new file mode 100644
> > index 0000000..2b1c859
> > --- /dev/null
> > +++ b/include/asm-generic/rwsem-cmpxchg.h
> > @@ -0,0 +1,183 @@
> > +#ifndef _RWSEM_CMPXCHG_H
> > +#define _RWSEM_CMPXCHG_H
> > +
> > +#ifndef _LINUX_RWSEM_H
> > +#error "Please don't include <asm/rwsem.h> directly, use <linux/rwsem.h> instead."
> > +#endif
> > +
> > +#ifdef __KERNEL__
> 
> #ifdef __KERNEL__ is only relevant for exported headers.
> For kernel only headers like this is does not make sense,
> but it does not harm.

Well, it was there in the first place, I think we've carried around
forever, but as you say, it doesn't really harm.

Ben.



^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [PATCH 2/2] rwsem: Move powerpc atomic-long based implementation to asm-generic
@ 2010-08-24  1:32                       ` Benjamin Herrenschmidt
  0 siblings, 0 replies; 548+ messages in thread
From: Benjamin Herrenschmidt @ 2010-08-24  1:32 UTC (permalink / raw)
  To: Sam Ravnborg
  Cc: Linus Torvalds, paulus, linux-kernel, sparclinux, akpm,
	linuxppc-dev, David Miller

On Fri, 2010-08-20 at 08:43 +0200, Sam Ravnborg wrote:
> > diff --git a/include/asm-generic/rwsem-cmpxchg.h b/include/asm-generic/rwsem-cmpxchg.h
> > new file mode 100644
> > index 0000000..2b1c859
> > --- /dev/null
> > +++ b/include/asm-generic/rwsem-cmpxchg.h
> > @@ -0,0 +1,183 @@
> > +#ifndef _RWSEM_CMPXCHG_H
> > +#define _RWSEM_CMPXCHG_H
> > +
> > +#ifndef _LINUX_RWSEM_H
> > +#error "Please don't include <asm/rwsem.h> directly, use <linux/rwsem.h> instead."
> > +#endif
> > +
> > +#ifdef __KERNEL__
> 
> #ifdef __KERNEL__ is only relevant for exported headers.
> For kernel only headers like this is does not make sense,
> but it does not harm.

Well, it was there in the first place, I think we've carried around
forever, but as you say, it doesn't really harm.

Ben.

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [PATCH 1/2] powerpc: Make rwsem use "long" type
  2010-08-20  5:14                   ` Benjamin Herrenschmidt
  (?)
@ 2010-08-24  1:37                     ` Timur Tabi
  -1 siblings, 0 replies; 548+ messages in thread
From: Timur Tabi @ 2010-08-24  1:37 UTC (permalink / raw)
  To: Benjamin Herrenschmidt
  Cc: torvalds, akpm, sparclinux, linux-kernel, paulus, linuxppc-dev,
	David Miller

On Fri, Aug 20, 2010 at 12:14 AM, Benjamin Herrenschmidt
<benh@kernel.crashing.org> wrote:

>  static inline int rwsem_is_locked(struct rw_semaphore *sem)
>  {
> -       return (sem->count != 0);
> +       return sem->count != 0;
>  }

Does this change make the code do anything different?

-- 
Timur Tabi
Linux kernel developer at Freescale

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [PATCH 1/2] powerpc: Make rwsem use "long" type
@ 2010-08-24  1:37                     ` Timur Tabi
  0 siblings, 0 replies; 548+ messages in thread
From: Timur Tabi @ 2010-08-24  1:37 UTC (permalink / raw)
  To: Benjamin Herrenschmidt
  Cc: torvalds, paulus, linux-kernel, sparclinux, akpm, linuxppc-dev,
	David Miller

On Fri, Aug 20, 2010 at 12:14 AM, Benjamin Herrenschmidt
<benh@kernel.crashing.org> wrote:

>  static inline int rwsem_is_locked(struct rw_semaphore *sem)
>  {
> -       return (sem->count != 0);
> +       return sem->count != 0;
>  }

Does this change make the code do anything different?

-- 
Timur Tabi
Linux kernel developer at Freescale

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [PATCH 1/2] powerpc: Make rwsem use "long" type
@ 2010-08-24  1:37                     ` Timur Tabi
  0 siblings, 0 replies; 548+ messages in thread
From: Timur Tabi @ 2010-08-24  1:37 UTC (permalink / raw)
  To: Benjamin Herrenschmidt
  Cc: torvalds, paulus, linux-kernel, sparclinux, akpm, linuxppc-dev,
	David Miller

On Fri, Aug 20, 2010 at 12:14 AM, Benjamin Herrenschmidt
<benh@kernel.crashing.org> wrote:

> =A0static inline int rwsem_is_locked(struct rw_semaphore *sem)
> =A0{
> - =A0 =A0 =A0 return (sem->count !=3D 0);
> + =A0 =A0 =A0 return sem->count !=3D 0;
> =A0}

Does this change make the code do anything different?

--=20
Timur Tabi
Linux kernel developer at Freescale

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2010-08-24  9:02 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2010-08-24  9:02 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


A few sparc64 bug fixes and proper 64-bit rwsem support as you
suggested.

1) Fetching large device properties from openfirmware spams all
   over the kernel data section, based upon a report by Meelis
   Roos.  The fix is to just use the caller's buffers directly
   instead of this unnecessary 3k bounce buffer business.

2) The atomic64_t interface 'long' cases I missed.

3) Lock loop backoff didn't really NOP out correctly on UP.

4) Perf control register writes would write the register
   twice by mistake due to a missing delay slot nop.  Fix
   from Mikulas Patocka.

Please pull, thanks a lot!

The following changes since commit d1b113bb028999e82a8528e1484be8c23fb5a7d9:

  Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6 (2010-08-23 18:30:30 -0700)

are available in the git repository at:

  master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6.git master

David S. Miller (4):
      sparc64: Really fix atomic64_t interface types.
      sparc64: Make rwsems 64-bit.
      sparc64: Make lock backoff really a NOP on UP builds.
      sparc64: Get rid of indirect p1275 PROM call buffer.

Mikulas Patocka (2):
      sparc64: simple microoptimizations for atomic functions
      sparc64: Fill a missing delay slot.

 arch/sparc/include/asm/atomic_64.h   |    8 +-
 arch/sparc/include/asm/backoff.h     |   11 +-
 arch/sparc/include/asm/oplib_64.h    |   27 +---
 arch/sparc/include/asm/rwsem-const.h |   12 --
 arch/sparc/include/asm/rwsem.h       |  120 +++++++++++--
 arch/sparc/include/asm/system_64.h   |    1 +
 arch/sparc/lib/Makefile              |    2 +-
 arch/sparc/lib/atomic_64.S           |   36 ++---
 arch/sparc/lib/bitops.S              |   12 +-
 arch/sparc/lib/rwsem_64.S            |  163 ------------------
 arch/sparc/prom/cif.S                |   16 +-
 arch/sparc/prom/console_64.c         |   48 ++++--
 arch/sparc/prom/devops_64.c          |   36 ++++-
 arch/sparc/prom/misc_64.c            |  314 ++++++++++++++++++++++++----------
 arch/sparc/prom/p1275.c              |  102 +-----------
 arch/sparc/prom/tree_64.c            |  210 +++++++++++++++++------
 16 files changed, 595 insertions(+), 523 deletions(-)
 delete mode 100644 arch/sparc/include/asm/rwsem-const.h
 delete mode 100644 arch/sparc/lib/rwsem_64.S

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2010-08-24  9:02 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2010-08-24  9:02 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


A few sparc64 bug fixes and proper 64-bit rwsem support as you
suggested.

1) Fetching large device properties from openfirmware spams all
   over the kernel data section, based upon a report by Meelis
   Roos.  The fix is to just use the caller's buffers directly
   instead of this unnecessary 3k bounce buffer business.

2) The atomic64_t interface 'long' cases I missed.

3) Lock loop backoff didn't really NOP out correctly on UP.

4) Perf control register writes would write the register
   twice by mistake due to a missing delay slot nop.  Fix
   from Mikulas Patocka.

Please pull, thanks a lot!

The following changes since commit d1b113bb028999e82a8528e1484be8c23fb5a7d9:

  Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6 (2010-08-23 18:30:30 -0700)

are available in the git repository at:

  master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6.git master

David S. Miller (4):
      sparc64: Really fix atomic64_t interface types.
      sparc64: Make rwsems 64-bit.
      sparc64: Make lock backoff really a NOP on UP builds.
      sparc64: Get rid of indirect p1275 PROM call buffer.

Mikulas Patocka (2):
      sparc64: simple microoptimizations for atomic functions
      sparc64: Fill a missing delay slot.

 arch/sparc/include/asm/atomic_64.h   |    8 +-
 arch/sparc/include/asm/backoff.h     |   11 +-
 arch/sparc/include/asm/oplib_64.h    |   27 +---
 arch/sparc/include/asm/rwsem-const.h |   12 --
 arch/sparc/include/asm/rwsem.h       |  120 +++++++++++--
 arch/sparc/include/asm/system_64.h   |    1 +
 arch/sparc/lib/Makefile              |    2 +-
 arch/sparc/lib/atomic_64.S           |   36 ++---
 arch/sparc/lib/bitops.S              |   12 +-
 arch/sparc/lib/rwsem_64.S            |  163 ------------------
 arch/sparc/prom/cif.S                |   16 +-
 arch/sparc/prom/console_64.c         |   48 ++++--
 arch/sparc/prom/devops_64.c          |   36 ++++-
 arch/sparc/prom/misc_64.c            |  314 ++++++++++++++++++++++++----------
 arch/sparc/prom/p1275.c              |  102 +-----------
 arch/sparc/prom/tree_64.c            |  210 +++++++++++++++++------
 16 files changed, 595 insertions(+), 523 deletions(-)
 delete mode 100644 arch/sparc/include/asm/rwsem-const.h
 delete mode 100644 arch/sparc/lib/rwsem_64.S

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: 64-bit ppc rwsem
  2010-08-24  1:31                         ` Benjamin Herrenschmidt
  (?)
@ 2010-08-24 12:06                           ` Arnd Bergmann
  -1 siblings, 0 replies; 548+ messages in thread
From: Arnd Bergmann @ 2010-08-24 12:06 UTC (permalink / raw)
  To: Benjamin Herrenschmidt
  Cc: David Miller, linuxppc-dev, torvalds, paulus, linux-kernel,
	sparclinux, akpm

On Tuesday 24 August 2010, Benjamin Herrenschmidt wrote:
> On Mon, 2010-08-23 at 15:18 -0700, David Miller wrote:
> > > I've seen drivers in the past do trylocks at interrupt time ... tho
> > I
> > > agree it sucks.
> > 
> > Recently there was a thread where this was declared absolutely
> > illegal.
> > 
> > Maybe it was allowed, or sort-of worked before, and that's why it's
> > accounted for with IRQ disables in some implementations.  I don't
> > know. 
> 
> Ok, I'm happy to say it's a big no-no then.
> 
> Arnd, do you want to take over the moving to asm-generic and take care
> of the spinlock case as well ? I can send Linus the first patch that
> changes powerpc to use atomic_long now along with a few other things I
> have pending, then you can pickup from there. Or do you want me to
> continue pushing my patch as-is and we can look at cleaning up the
> spinlock case separately ?

I'm currently doing too many things at once, please push in your existing
patch for now, we can continue from there.

For the asm-generic patch:
Acked-by: Arnd Bergmann <arnd@arndb.de>

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: 64-bit ppc rwsem
@ 2010-08-24 12:06                           ` Arnd Bergmann
  0 siblings, 0 replies; 548+ messages in thread
From: Arnd Bergmann @ 2010-08-24 12:06 UTC (permalink / raw)
  To: Benjamin Herrenschmidt
  Cc: linuxppc-dev, paulus, linux-kernel, sparclinux, akpm, torvalds,
	David Miller

On Tuesday 24 August 2010, Benjamin Herrenschmidt wrote:
> On Mon, 2010-08-23 at 15:18 -0700, David Miller wrote:
> > > I've seen drivers in the past do trylocks at interrupt time ... tho
> > I
> > > agree it sucks.
> > 
> > Recently there was a thread where this was declared absolutely
> > illegal.
> > 
> > Maybe it was allowed, or sort-of worked before, and that's why it's
> > accounted for with IRQ disables in some implementations.  I don't
> > know. 
> 
> Ok, I'm happy to say it's a big no-no then.
> 
> Arnd, do you want to take over the moving to asm-generic and take care
> of the spinlock case as well ? I can send Linus the first patch that
> changes powerpc to use atomic_long now along with a few other things I
> have pending, then you can pickup from there. Or do you want me to
> continue pushing my patch as-is and we can look at cleaning up the
> spinlock case separately ?

I'm currently doing too many things at once, please push in your existing
patch for now, we can continue from there.

For the asm-generic patch:
Acked-by: Arnd Bergmann <arnd@arndb.de>

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: 64-bit ppc rwsem
@ 2010-08-24 12:06                           ` Arnd Bergmann
  0 siblings, 0 replies; 548+ messages in thread
From: Arnd Bergmann @ 2010-08-24 12:06 UTC (permalink / raw)
  To: Benjamin Herrenschmidt
  Cc: linuxppc-dev, paulus, linux-kernel, sparclinux, akpm, torvalds,
	David Miller

On Tuesday 24 August 2010, Benjamin Herrenschmidt wrote:
> On Mon, 2010-08-23 at 15:18 -0700, David Miller wrote:
> > > I've seen drivers in the past do trylocks at interrupt time ... tho
> > I
> > > agree it sucks.
> > 
> > Recently there was a thread where this was declared absolutely
> > illegal.
> > 
> > Maybe it was allowed, or sort-of worked before, and that's why it's
> > accounted for with IRQ disables in some implementations.  I don't
> > know. 
> 
> Ok, I'm happy to say it's a big no-no then.
> 
> Arnd, do you want to take over the moving to asm-generic and take care
> of the spinlock case as well ? I can send Linus the first patch that
> changes powerpc to use atomic_long now along with a few other things I
> have pending, then you can pickup from there. Or do you want me to
> continue pushing my patch as-is and we can look at cleaning up the
> spinlock case separately ?

I'm currently doing too many things at once, please push in your existing
patch for now, we can continue from there.

For the asm-generic patch:
Acked-by: Arnd Bergmann <arnd@arndb.de>

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2010-09-11  4:25 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2010-09-11  4:25 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


This just kills off those completely bogus BKL uses in
the sparc code that were discussed the other day.

Please pull, thanks a lot!

The following changes since commit 3e6dce76d99b328716b43929b9195adfee1de00c:

  Merge branch 'drm-intel-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/ickle/drm-intel (2010-09-10 18:19:43 -0700)

are available in the git repository at:

  master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6.git master

David S. Miller (1):
      sparc: Kill all BKL usage.

 arch/sparc/kernel/sys_sparc_32.c |    2 --
 arch/sparc/kernel/unaligned_32.c |    3 +--
 arch/sparc/kernel/windows.c      |    2 --
 3 files changed, 1 insertions(+), 6 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2010-09-11  4:25 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2010-09-11  4:25 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


This just kills off those completely bogus BKL uses in
the sparc code that were discussed the other day.

Please pull, thanks a lot!

The following changes since commit 3e6dce76d99b328716b43929b9195adfee1de00c:

  Merge branch 'drm-intel-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/ickle/drm-intel (2010-09-10 18:19:43 -0700)

are available in the git repository at:

  master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6.git master

David S. Miller (1):
      sparc: Kill all BKL usage.

 arch/sparc/kernel/sys_sparc_32.c |    2 --
 arch/sparc/kernel/unaligned_32.c |    3 +--
 arch/sparc/kernel/windows.c      |    2 --
 3 files changed, 1 insertions(+), 6 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2010-09-22 18:10 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2010-09-22 18:10 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Al Viro has been auditing signal handling in various architectures,
and he found some sparc bugs along the way.

Those he found are fixed here, as well as a short patch to add
raw perf event support.

Please pull, thanks a lot!

The following changes since commit 2422084a94fcd5038406261b331672a13c92c050:

  Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mattst88/alpha-2.6 (2010-09-19 11:09:23 -0700)

are available in the git repository at:

  master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6.git master

David S. Miller (4):
      sparc64: Support RAW perf events.
      sparc64: Fix race in signal instruction flushing.
      sparc: Don't mask signal when we can't setup signal frame.
      sparc: Prevent no-handler signal syscall restart recursion.

 arch/sparc/kernel/perf_event.c |   14 +++-
 arch/sparc/kernel/signal32.c   |  161 ++++++++++++++++++++++++----------------
 arch/sparc/kernel/signal_32.c  |   55 +++++++++-----
 arch/sparc/kernel/signal_64.c  |   45 +++++++----
 4 files changed, 171 insertions(+), 104 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2010-09-22 18:10 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2010-09-22 18:10 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Al Viro has been auditing signal handling in various architectures,
and he found some sparc bugs along the way.

Those he found are fixed here, as well as a short patch to add
raw perf event support.

Please pull, thanks a lot!

The following changes since commit 2422084a94fcd5038406261b331672a13c92c050:

  Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mattst88/alpha-2.6 (2010-09-19 11:09:23 -0700)

are available in the git repository at:

  master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6.git master

David S. Miller (4):
      sparc64: Support RAW perf events.
      sparc64: Fix race in signal instruction flushing.
      sparc: Don't mask signal when we can't setup signal frame.
      sparc: Prevent no-handler signal syscall restart recursion.

 arch/sparc/kernel/perf_event.c |   14 +++-
 arch/sparc/kernel/signal32.c   |  161 ++++++++++++++++++++++++----------------
 arch/sparc/kernel/signal_32.c  |   55 +++++++++-----
 arch/sparc/kernel/signal_64.c  |   45 +++++++----
 4 files changed, 171 insertions(+), 104 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] Sparc
  2010-09-22 18:10 ` David Miller
@ 2010-09-22 18:32   ` Al Viro
  -1 siblings, 0 replies; 548+ messages in thread
From: Al Viro @ 2010-09-22 18:32 UTC (permalink / raw)
  To: David Miller; +Cc: torvalds, akpm, sparclinux, linux-kernel

On Wed, Sep 22, 2010 at 11:10:19AM -0700, David Miller wrote:
> 
> Al Viro has been auditing signal handling in various architectures,
> and he found some sparc bugs along the way.
> 
> Those he found are fixed here, as well as a short patch to add
> raw perf event support.

Actually, there's one more problem; I have a tentative fix for sparc64,
but not for sparc32 (yet).

Basically, sparc is unlike all other architectures in this respect:
normally, after do_signal() has handled a signal the syscall exit
glue loops back, rechecks if we need to be rescheduled, if we need
to deal with more signals, etc.  As the result, we build all sigframes
at once.  sparc (and, until recently, alpha) normally calls do_signal()
only once; sparc64 _may_ call it twice, but that's it.  sparc32 may
call it up to three times if we had userland window spill on entry.

That has unpleasant results - for starters, delivery of SIGSEGV upon
failure to set sigframe up is delayed unpredictably; we will take it
only when we trap again.  Moreover, sigsuspend() has inconsistent
behaviour in case when we have several pending signals unmasked by
new mask.  E.g. if we do the following on anything but sparc
	block signals 1 and 2
	set handlers for both
	get signals 1 and 2 sent to you
	sigsuspend(&emptyset)
we'll get both handlers run.  On sparc we'll get only one of them, except
that if we get an IRQ while running in its handler, we'll get both run...

What happens is that sparc (and alpha until it got fixed) sets up one sigframe
and happily buggers off to userland; the first handler runs until we hit
a trap.  If that trap happens to be the call of sigreturn() in the end of
handler, the first thing it'll do will be restoring the original sigmask.
Anything else will leave sigmask alone, see that we have another pending
signal and handle it...

Anyway, the sparc64 part of fix follows; I'm still digging through the
sparc32 side of things.  Dave, could you take a look at that and ACK or NAK
it?

diff --git a/arch/sparc/kernel/rtrap_64.S b/arch/sparc/kernel/rtrap_64.S
index 090b9e9..77f1b95 100644
--- a/arch/sparc/kernel/rtrap_64.S
+++ b/arch/sparc/kernel/rtrap_64.S
@@ -34,37 +34,9 @@ __handle_preemption:
 __handle_user_windows:
 		call			fault_in_user_windows
 		 wrpr			%g0, RTRAP_PSTATE, %pstate
-		wrpr			%g0, RTRAP_PSTATE_IRQOFF, %pstate
-		/* Redo sched+sig checks */
-		ldx			[%g6 + TI_FLAGS], %l0
-		andcc			%l0, _TIF_NEED_RESCHED, %g0
-
-		be,pt			%xcc, 1f
-		 nop
-		call			schedule
-		 wrpr			%g0, RTRAP_PSTATE, %pstate
-		wrpr			%g0, RTRAP_PSTATE_IRQOFF, %pstate
-		ldx			[%g6 + TI_FLAGS], %l0
-
-1:		andcc			%l0, _TIF_DO_NOTIFY_RESUME_MASK, %g0
-		be,pt			%xcc, __handle_user_windows_continue
-		 nop
-		mov			%l5, %o1
-		add			%sp, PTREGS_OFF, %o0
-		mov			%l0, %o2
-
-		call			do_notify_resume
-		 wrpr			%g0, RTRAP_PSTATE, %pstate
-		wrpr			%g0, RTRAP_PSTATE_IRQOFF, %pstate
-		/* Signal delivery can modify pt_regs tstate, so we must
-		 * reload it.
-		 */
-		ldx			[%sp + PTREGS_OFF + PT_V9_TSTATE], %l1
-		sethi			%hi(0xf << 20), %l4
-		and			%l1, %l4, %l4
-		ba,pt			%xcc, __handle_user_windows_continue
+		ba,pt			%xcc, __handle_preemption_continue
+		 wrpr			%g0, RTRAP_PSTATE_IRQOFF, %pstate
 
-		 andn			%l1, %l4, %l1
 __handle_userfpu:
 		rd			%fprs, %l5
 		andcc			%l5, FPRS_FEF, %g0
@@ -87,7 +59,7 @@ __handle_signal:
 		ldx			[%sp + PTREGS_OFF + PT_V9_TSTATE], %l1
 		sethi			%hi(0xf << 20), %l4
 		and			%l1, %l4, %l4
-		ba,pt			%xcc, __handle_signal_continue
+		ba,pt			%xcc, __handle_preemption_continue
 		 andn			%l1, %l4, %l1
 
 		/* When returning from a NMI (%pil==15) interrupt we want to
@@ -177,11 +149,9 @@ __handle_preemption_continue:
 		bne,pn			%xcc, __handle_preemption
 		 andcc			%l0, _TIF_DO_NOTIFY_RESUME_MASK, %g0
 		bne,pn			%xcc, __handle_signal
-__handle_signal_continue:
 		 ldub			[%g6 + TI_WSAVED], %o2
 		brnz,pn			%o2, __handle_user_windows
 		 nop
-__handle_user_windows_continue:
 		sethi			%hi(TSTATE_PEF), %o0
 		andcc			%l1, %o0, %g0
 

^ permalink raw reply related	[flat|nested] 548+ messages in thread

* Re: [GIT] Sparc
@ 2010-09-22 18:32   ` Al Viro
  0 siblings, 0 replies; 548+ messages in thread
From: Al Viro @ 2010-09-22 18:32 UTC (permalink / raw)
  To: David Miller; +Cc: torvalds, akpm, sparclinux, linux-kernel

On Wed, Sep 22, 2010 at 11:10:19AM -0700, David Miller wrote:
> 
> Al Viro has been auditing signal handling in various architectures,
> and he found some sparc bugs along the way.
> 
> Those he found are fixed here, as well as a short patch to add
> raw perf event support.

Actually, there's one more problem; I have a tentative fix for sparc64,
but not for sparc32 (yet).

Basically, sparc is unlike all other architectures in this respect:
normally, after do_signal() has handled a signal the syscall exit
glue loops back, rechecks if we need to be rescheduled, if we need
to deal with more signals, etc.  As the result, we build all sigframes
at once.  sparc (and, until recently, alpha) normally calls do_signal()
only once; sparc64 _may_ call it twice, but that's it.  sparc32 may
call it up to three times if we had userland window spill on entry.

That has unpleasant results - for starters, delivery of SIGSEGV upon
failure to set sigframe up is delayed unpredictably; we will take it
only when we trap again.  Moreover, sigsuspend() has inconsistent
behaviour in case when we have several pending signals unmasked by
new mask.  E.g. if we do the following on anything but sparc
	block signals 1 and 2
	set handlers for both
	get signals 1 and 2 sent to you
	sigsuspend(&emptyset)
we'll get both handlers run.  On sparc we'll get only one of them, except
that if we get an IRQ while running in its handler, we'll get both run...

What happens is that sparc (and alpha until it got fixed) sets up one sigframe
and happily buggers off to userland; the first handler runs until we hit
a trap.  If that trap happens to be the call of sigreturn() in the end of
handler, the first thing it'll do will be restoring the original sigmask.
Anything else will leave sigmask alone, see that we have another pending
signal and handle it...

Anyway, the sparc64 part of fix follows; I'm still digging through the
sparc32 side of things.  Dave, could you take a look at that and ACK or NAK
it?

diff --git a/arch/sparc/kernel/rtrap_64.S b/arch/sparc/kernel/rtrap_64.S
index 090b9e9..77f1b95 100644
--- a/arch/sparc/kernel/rtrap_64.S
+++ b/arch/sparc/kernel/rtrap_64.S
@@ -34,37 +34,9 @@ __handle_preemption:
 __handle_user_windows:
 		call			fault_in_user_windows
 		 wrpr			%g0, RTRAP_PSTATE, %pstate
-		wrpr			%g0, RTRAP_PSTATE_IRQOFF, %pstate
-		/* Redo sched+sig checks */
-		ldx			[%g6 + TI_FLAGS], %l0
-		andcc			%l0, _TIF_NEED_RESCHED, %g0
-
-		be,pt			%xcc, 1f
-		 nop
-		call			schedule
-		 wrpr			%g0, RTRAP_PSTATE, %pstate
-		wrpr			%g0, RTRAP_PSTATE_IRQOFF, %pstate
-		ldx			[%g6 + TI_FLAGS], %l0
-
-1:		andcc			%l0, _TIF_DO_NOTIFY_RESUME_MASK, %g0
-		be,pt			%xcc, __handle_user_windows_continue
-		 nop
-		mov			%l5, %o1
-		add			%sp, PTREGS_OFF, %o0
-		mov			%l0, %o2
-
-		call			do_notify_resume
-		 wrpr			%g0, RTRAP_PSTATE, %pstate
-		wrpr			%g0, RTRAP_PSTATE_IRQOFF, %pstate
-		/* Signal delivery can modify pt_regs tstate, so we must
-		 * reload it.
-		 */
-		ldx			[%sp + PTREGS_OFF + PT_V9_TSTATE], %l1
-		sethi			%hi(0xf << 20), %l4
-		and			%l1, %l4, %l4
-		ba,pt			%xcc, __handle_user_windows_continue
+		ba,pt			%xcc, __handle_preemption_continue
+		 wrpr			%g0, RTRAP_PSTATE_IRQOFF, %pstate
 
-		 andn			%l1, %l4, %l1
 __handle_userfpu:
 		rd			%fprs, %l5
 		andcc			%l5, FPRS_FEF, %g0
@@ -87,7 +59,7 @@ __handle_signal:
 		ldx			[%sp + PTREGS_OFF + PT_V9_TSTATE], %l1
 		sethi			%hi(0xf << 20), %l4
 		and			%l1, %l4, %l4
-		ba,pt			%xcc, __handle_signal_continue
+		ba,pt			%xcc, __handle_preemption_continue
 		 andn			%l1, %l4, %l1
 
 		/* When returning from a NMI (%pil=15) interrupt we want to
@@ -177,11 +149,9 @@ __handle_preemption_continue:
 		bne,pn			%xcc, __handle_preemption
 		 andcc			%l0, _TIF_DO_NOTIFY_RESUME_MASK, %g0
 		bne,pn			%xcc, __handle_signal
-__handle_signal_continue:
 		 ldub			[%g6 + TI_WSAVED], %o2
 		brnz,pn			%o2, __handle_user_windows
 		 nop
-__handle_user_windows_continue:
 		sethi			%hi(TSTATE_PEF), %o0
 		andcc			%l1, %o0, %g0
 

^ permalink raw reply related	[flat|nested] 548+ messages in thread

* Re: [GIT] Sparc
  2010-09-22 18:32   ` Al Viro
@ 2010-09-22 18:46     ` Linus Torvalds
  -1 siblings, 0 replies; 548+ messages in thread
From: Linus Torvalds @ 2010-09-22 18:46 UTC (permalink / raw)
  To: Al Viro; +Cc: David Miller, akpm, sparclinux, linux-kernel

On Wed, Sep 22, 2010 at 11:32 AM, Al Viro <viro@zeniv.linux.org.uk> wrote:
>
> That has unpleasant results - for starters, delivery of SIGSEGV upon
> failure to set sigframe up is delayed unpredictably; we will take it
> only when we trap again.

I think this whole argument is a total red herring.

It's a bug in next_signal() if we allow this to happen. We need to
enqueue those synchronous signals first, and NO AMOUNT OF SIGNAL
QUEUEING will ever change that.

The fact is, even if you queue up all the signals at once, you need to
queue up the synchronous ones first. Otherwise their instruction
pointer information etc will simply be bogus. It's that simple. Your
argument about queuing up one, two, or more signals is bogus, for the
simple reason that it doesn't matter: whether you queue or not is
irrelevant, since the "innermost" one in the queue always has to be
the SIGSEGV.

Whether we queue other signals on top of that (and they get executed
first, since it's a stack) doesn't matter. That's a timing issue, and
the program acts as if those asynchronous signals happened before the
trap. But that's fine. All that matters is that the actual synchronous
signal has the register contents of the time of the synchronous trap,
ie it gets enqueued first.

It's why we have that "if (x & SYNCHRONOUS_MASK)" in next_signal().
It's not pretty, it's not perfect, but it's required.

                  Linus

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] Sparc
@ 2010-09-22 18:46     ` Linus Torvalds
  0 siblings, 0 replies; 548+ messages in thread
From: Linus Torvalds @ 2010-09-22 18:46 UTC (permalink / raw)
  To: Al Viro; +Cc: David Miller, akpm, sparclinux, linux-kernel

On Wed, Sep 22, 2010 at 11:32 AM, Al Viro <viro@zeniv.linux.org.uk> wrote:
>
> That has unpleasant results - for starters, delivery of SIGSEGV upon
> failure to set sigframe up is delayed unpredictably; we will take it
> only when we trap again.

I think this whole argument is a total red herring.

It's a bug in next_signal() if we allow this to happen. We need to
enqueue those synchronous signals first, and NO AMOUNT OF SIGNAL
QUEUEING will ever change that.

The fact is, even if you queue up all the signals at once, you need to
queue up the synchronous ones first. Otherwise their instruction
pointer information etc will simply be bogus. It's that simple. Your
argument about queuing up one, two, or more signals is bogus, for the
simple reason that it doesn't matter: whether you queue or not is
irrelevant, since the "innermost" one in the queue always has to be
the SIGSEGV.

Whether we queue other signals on top of that (and they get executed
first, since it's a stack) doesn't matter. That's a timing issue, and
the program acts as if those asynchronous signals happened before the
trap. But that's fine. All that matters is that the actual synchronous
signal has the register contents of the time of the synchronous trap,
ie it gets enqueued first.

It's why we have that "if (x & SYNCHRONOUS_MASK)" in next_signal().
It's not pretty, it's not perfect, but it's required.

                  Linus

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] Sparc
  2010-09-22 18:46     ` Linus Torvalds
@ 2010-09-22 18:53       ` Al Viro
  -1 siblings, 0 replies; 548+ messages in thread
From: Al Viro @ 2010-09-22 18:53 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: David Miller, akpm, sparclinux, linux-kernel

On Wed, Sep 22, 2010 at 11:46:27AM -0700, Linus Torvalds wrote:
> On Wed, Sep 22, 2010 at 11:32 AM, Al Viro <viro@zeniv.linux.org.uk> wrote:
> >
> > That has unpleasant results - for starters, delivery of SIGSEGV upon
> > failure to set sigframe up is delayed unpredictably; we will take it
> > only when we trap again.
> 
> I think this whole argument is a total red herring.
> 
> It's a bug in next_signal() if we allow this to happen. We need to
> enqueue those synchronous signals first, and NO AMOUNT OF SIGNAL
> QUEUEING will ever change that.
> 
> The fact is, even if you queue up all the signals at once, you need to
> queue up the synchronous ones first. Otherwise their instruction
> pointer information etc will simply be bogus. It's that simple. Your
> argument about queuing up one, two, or more signals is bogus, for the
> simple reason that it doesn't matter: whether you queue or not is
> irrelevant, since the "innermost" one in the queue always has to be
> the SIGSEGV.
> 
> Whether we queue other signals on top of that (and they get executed
> first, since it's a stack) doesn't matter. That's a timing issue, and
> the program acts as if those asynchronous signals happened before the
> trap. But that's fine. All that matters is that the actual synchronous
> signal has the register contents of the time of the synchronous trap,
> ie it gets enqueued first.
> 
> It's why we have that "if (x & SYNCHRONOUS_MASK)" in next_signal().
> It's not pretty, it's not perfect, but it's required.

Um, no.  You've *already* called get_signal_to_deliver().  There had been
no SIGSEGV in sight.  You happily went on to set a sigframe for e.g.
SIGHUP, but ran out of stack.  At that point you get force_sigsegv()
from handle_signal().  _NOW_ you have a pending SIGSEGV; whether you'll
be able to handle it (e.g. if your SIGSEGV handler is set to run on
altstack) or not, you won't get to it until you call get_signal_to_deliver()
again.  Which requires do_signal() to run.

Sure, it will be the first one to be picked, but we need to try and pick
_something_ to get it.

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] Sparc
@ 2010-09-22 18:53       ` Al Viro
  0 siblings, 0 replies; 548+ messages in thread
From: Al Viro @ 2010-09-22 18:53 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: David Miller, akpm, sparclinux, linux-kernel

On Wed, Sep 22, 2010 at 11:46:27AM -0700, Linus Torvalds wrote:
> On Wed, Sep 22, 2010 at 11:32 AM, Al Viro <viro@zeniv.linux.org.uk> wrote:
> >
> > That has unpleasant results - for starters, delivery of SIGSEGV upon
> > failure to set sigframe up is delayed unpredictably; we will take it
> > only when we trap again.
> 
> I think this whole argument is a total red herring.
> 
> It's a bug in next_signal() if we allow this to happen. We need to
> enqueue those synchronous signals first, and NO AMOUNT OF SIGNAL
> QUEUEING will ever change that.
> 
> The fact is, even if you queue up all the signals at once, you need to
> queue up the synchronous ones first. Otherwise their instruction
> pointer information etc will simply be bogus. It's that simple. Your
> argument about queuing up one, two, or more signals is bogus, for the
> simple reason that it doesn't matter: whether you queue or not is
> irrelevant, since the "innermost" one in the queue always has to be
> the SIGSEGV.
> 
> Whether we queue other signals on top of that (and they get executed
> first, since it's a stack) doesn't matter. That's a timing issue, and
> the program acts as if those asynchronous signals happened before the
> trap. But that's fine. All that matters is that the actual synchronous
> signal has the register contents of the time of the synchronous trap,
> ie it gets enqueued first.
> 
> It's why we have that "if (x & SYNCHRONOUS_MASK)" in next_signal().
> It's not pretty, it's not perfect, but it's required.

Um, no.  You've *already* called get_signal_to_deliver().  There had been
no SIGSEGV in sight.  You happily went on to set a sigframe for e.g.
SIGHUP, but ran out of stack.  At that point you get force_sigsegv()
from handle_signal().  _NOW_ you have a pending SIGSEGV; whether you'll
be able to handle it (e.g. if your SIGSEGV handler is set to run on
altstack) or not, you won't get to it until you call get_signal_to_deliver()
again.  Which requires do_signal() to run.

Sure, it will be the first one to be picked, but we need to try and pick
_something_ to get it.

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] Sparc
  2010-09-22 18:53       ` Al Viro
@ 2010-09-22 19:04         ` Al Viro
  -1 siblings, 0 replies; 548+ messages in thread
From: Al Viro @ 2010-09-22 19:04 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: David Miller, akpm, sparclinux, linux-kernel

On Wed, Sep 22, 2010 at 07:53:28PM +0100, Al Viro wrote:

> Um, no.  You've *already* called get_signal_to_deliver().  There had been
> no SIGSEGV in sight.  You happily went on to set a sigframe for e.g.
> SIGHUP, but ran out of stack.  At that point you get force_sigsegv()
> from handle_signal().  _NOW_ you have a pending SIGSEGV; whether you'll
> be able to handle it (e.g. if your SIGSEGV handler is set to run on
> altstack) or not, you won't get to it until you call get_signal_to_deliver()
> again.  Which requires do_signal() to run.
> 
> Sure, it will be the first one to be picked, but we need to try and pick
> _something_ to get it.

PS: on something like x86 that'll happen before we return to userland,
since the glue on syscall exit does that:

int_signal:
        testl $_TIF_DO_NOTIFY_MASK,%edx
        jz 1f
        movq %rsp,%rdi          # &ptregs -> arg1
        xorl %esi,%esi          # oldset -> arg2
        call do_notify_resume
1:      movl $_TIF_WORK_MASK,%edi
int_restore_rest:
        RESTORE_REST
        DISABLE_INTERRUPTS(CLBR_NONE)
        TRACE_IRQS_OFF
        jmp int_with_check

and int_with_check leads back to int_signal if _TIF_SIGPENDING is still set.

That kind of looping happens on everything except sparc and that's exactly
the difference I'm talking about.  On sparc the sucker manages to escape
to userland with SIGSEGV still pending.  Try it and you'll see - simple
signal(SIGHUP, something) + munmap a little bit under your %sp +
raise(SIGHUP), then look at the resulting coredump...  On sparc you'll
get that SIGSEGV later; in fact, putting write(1, "ouch\n", 5); after
that raise() has a good chance of saying ouch before it dumps core.

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] Sparc
@ 2010-09-22 19:04         ` Al Viro
  0 siblings, 0 replies; 548+ messages in thread
From: Al Viro @ 2010-09-22 19:04 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: David Miller, akpm, sparclinux, linux-kernel

On Wed, Sep 22, 2010 at 07:53:28PM +0100, Al Viro wrote:

> Um, no.  You've *already* called get_signal_to_deliver().  There had been
> no SIGSEGV in sight.  You happily went on to set a sigframe for e.g.
> SIGHUP, but ran out of stack.  At that point you get force_sigsegv()
> from handle_signal().  _NOW_ you have a pending SIGSEGV; whether you'll
> be able to handle it (e.g. if your SIGSEGV handler is set to run on
> altstack) or not, you won't get to it until you call get_signal_to_deliver()
> again.  Which requires do_signal() to run.
> 
> Sure, it will be the first one to be picked, but we need to try and pick
> _something_ to get it.

PS: on something like x86 that'll happen before we return to userland,
since the glue on syscall exit does that:

int_signal:
        testl $_TIF_DO_NOTIFY_MASK,%edx
        jz 1f
        movq %rsp,%rdi          # &ptregs -> arg1
        xorl %esi,%esi          # oldset -> arg2
        call do_notify_resume
1:      movl $_TIF_WORK_MASK,%edi
int_restore_rest:
        RESTORE_REST
        DISABLE_INTERRUPTS(CLBR_NONE)
        TRACE_IRQS_OFF
        jmp int_with_check

and int_with_check leads back to int_signal if _TIF_SIGPENDING is still set.

That kind of looping happens on everything except sparc and that's exactly
the difference I'm talking about.  On sparc the sucker manages to escape
to userland with SIGSEGV still pending.  Try it and you'll see - simple
signal(SIGHUP, something) + munmap a little bit under your %sp +
raise(SIGHUP), then look at the resulting coredump...  On sparc you'll
get that SIGSEGV later; in fact, putting write(1, "ouch\n", 5); after
that raise() has a good chance of saying ouch before it dumps core.

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] Sparc
  2010-09-22 18:53       ` Al Viro
@ 2010-09-22 19:08         ` Linus Torvalds
  -1 siblings, 0 replies; 548+ messages in thread
From: Linus Torvalds @ 2010-09-22 19:08 UTC (permalink / raw)
  To: Al Viro; +Cc: David Miller, akpm, sparclinux, linux-kernel

On Wed, Sep 22, 2010 at 11:53 AM, Al Viro <viro@zeniv.linux.org.uk> wrote:
>
> Um, no.  You've *already* called get_signal_to_deliver().  There had been
> no SIGSEGV in sight.  You happily went on to set a sigframe for e.g.
> SIGHUP, but ran out of stack.  At that point you get force_sigsegv()
> from handle_signal().  _NOW_ you have a pending SIGSEGV

Ahh. Ok. Different case from the one I thought you were worried about.
And yeah, I guess that one does require us to mess with the low-level
asm code (although I do wonder if we could not make the whole
do_notify_resume + reschedule code be generic C code - it's a lot of
duplicated subtle asm as it is).

                   Linus

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] Sparc
@ 2010-09-22 19:08         ` Linus Torvalds
  0 siblings, 0 replies; 548+ messages in thread
From: Linus Torvalds @ 2010-09-22 19:08 UTC (permalink / raw)
  To: Al Viro; +Cc: David Miller, akpm, sparclinux, linux-kernel

On Wed, Sep 22, 2010 at 11:53 AM, Al Viro <viro@zeniv.linux.org.uk> wrote:
>
> Um, no.  You've *already* called get_signal_to_deliver().  There had been
> no SIGSEGV in sight.  You happily went on to set a sigframe for e.g.
> SIGHUP, but ran out of stack.  At that point you get force_sigsegv()
> from handle_signal().  _NOW_ you have a pending SIGSEGV

Ahh. Ok. Different case from the one I thought you were worried about.
And yeah, I guess that one does require us to mess with the low-level
asm code (although I do wonder if we could not make the whole
do_notify_resume + reschedule code be generic C code - it's a lot of
duplicated subtle asm as it is).

                   Linus

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] Sparc
  2010-09-22 19:08         ` Linus Torvalds
@ 2010-09-22 19:53           ` Al Viro
  -1 siblings, 0 replies; 548+ messages in thread
From: Al Viro @ 2010-09-22 19:53 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: David Miller, akpm, sparclinux, linux-kernel

On Wed, Sep 22, 2010 at 12:08:53PM -0700, Linus Torvalds wrote:
> On Wed, Sep 22, 2010 at 11:53 AM, Al Viro <viro@zeniv.linux.org.uk> wrote:
> >
> > Um, no. ?You've *already* called get_signal_to_deliver(). ?There had been
> > no SIGSEGV in sight. ?You happily went on to set a sigframe for e.g.
> > SIGHUP, but ran out of stack. ?At that point you get force_sigsegv()
> > from handle_signal(). ?_NOW_ you have a pending SIGSEGV
> 
> Ahh. Ok. Different case from the one I thought you were worried about.
> And yeah, I guess that one does require us to mess with the low-level
> asm code (although I do wonder if we could not make the whole
> do_notify_resume + reschedule code be generic C code - it's a lot of
> duplicated subtle asm as it is).

Worse than just that...  Note that on sparc you need to deal with
fault_in_user_windows(), which can also trigger signals.  So much
for merging it cross-architecture, even if we ignore the differences
between the ways we pass data required for restart to do_signal().
Note that e.g. on alpha we pass _two_ values - one for overwritten
v0 (syscall number), another for overwritten a3 (error flag), etc.

Worse, quite a few targets do not save all registers on syscall entry.
Callee-saved stuff doesn't have to be in pt_regs.  Except that you
want *all* of them saved on stack when it's time to fill sigframes.
And once you've entered a C function you can't guarantee that compiler
hasn't already modified them; sure, they'll be restored on return, but
that doesn't help you to get to their values.  So you get switch_stack
built on stack around calling do_notify_resume() on those.  And you
really want to avoid doing that if you've got no signals - remember,
we hit that on exit from irqs as well, so it's one hell of a hot path.
For processors with big flat register file it can get very ugly.

There is a lot of ugly almost-duplication in there, no arguments about that.
Asm glue is actually not the worst part...

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] Sparc
@ 2010-09-22 19:53           ` Al Viro
  0 siblings, 0 replies; 548+ messages in thread
From: Al Viro @ 2010-09-22 19:53 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: David Miller, akpm, sparclinux, linux-kernel

On Wed, Sep 22, 2010 at 12:08:53PM -0700, Linus Torvalds wrote:
> On Wed, Sep 22, 2010 at 11:53 AM, Al Viro <viro@zeniv.linux.org.uk> wrote:
> >
> > Um, no. ?You've *already* called get_signal_to_deliver(). ?There had been
> > no SIGSEGV in sight. ?You happily went on to set a sigframe for e.g.
> > SIGHUP, but ran out of stack. ?At that point you get force_sigsegv()
> > from handle_signal(). ?_NOW_ you have a pending SIGSEGV
> 
> Ahh. Ok. Different case from the one I thought you were worried about.
> And yeah, I guess that one does require us to mess with the low-level
> asm code (although I do wonder if we could not make the whole
> do_notify_resume + reschedule code be generic C code - it's a lot of
> duplicated subtle asm as it is).

Worse than just that...  Note that on sparc you need to deal with
fault_in_user_windows(), which can also trigger signals.  So much
for merging it cross-architecture, even if we ignore the differences
between the ways we pass data required for restart to do_signal().
Note that e.g. on alpha we pass _two_ values - one for overwritten
v0 (syscall number), another for overwritten a3 (error flag), etc.

Worse, quite a few targets do not save all registers on syscall entry.
Callee-saved stuff doesn't have to be in pt_regs.  Except that you
want *all* of them saved on stack when it's time to fill sigframes.
And once you've entered a C function you can't guarantee that compiler
hasn't already modified them; sure, they'll be restored on return, but
that doesn't help you to get to their values.  So you get switch_stack
built on stack around calling do_notify_resume() on those.  And you
really want to avoid doing that if you've got no signals - remember,
we hit that on exit from irqs as well, so it's one hell of a hot path.
For processors with big flat register file it can get very ugly.

There is a lot of ugly almost-duplication in there, no arguments about that.
Asm glue is actually not the worst part...

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] Sparc
  2010-09-22 19:53           ` Al Viro
@ 2010-09-22 20:43             ` Al Viro
  -1 siblings, 0 replies; 548+ messages in thread
From: Al Viro @ 2010-09-22 20:43 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: David Miller, akpm, sparclinux, linux-kernel

On Wed, Sep 22, 2010 at 08:53:49PM +0100, Al Viro wrote:
> On Wed, Sep 22, 2010 at 12:08:53PM -0700, Linus Torvalds wrote:
> > On Wed, Sep 22, 2010 at 11:53 AM, Al Viro <viro@zeniv.linux.org.uk> wrote:
> > >
> > > Um, no. ?You've *already* called get_signal_to_deliver(). ?There had been
> > > no SIGSEGV in sight. ?You happily went on to set a sigframe for e.g.
> > > SIGHUP, but ran out of stack. ?At that point you get force_sigsegv()
> > > from handle_signal(). ?_NOW_ you have a pending SIGSEGV
> > 
> > Ahh. Ok. Different case from the one I thought you were worried about.
> > And yeah, I guess that one does require us to mess with the low-level
> > asm code (although I do wonder if we could not make the whole
> > do_notify_resume + reschedule code be generic C code - it's a lot of
> > duplicated subtle asm as it is).
> 
> Worse than just that...  Note that on sparc you need to deal with
> fault_in_user_windows(), which can also trigger signals.

	Actually, I wonder why don't we do the following:
1) check wsaved first, do fault_in_user_windows() if needed (and probably do
Something Cruel(tm) if we fail copy_to_user() in there)
2) in a loop check if we need to reschedule / if we need to handle signals
3) don't bother with wsaved checks in setup_frame() variants at all -
wsaved can't grow back at that point; we also can use flush_user_windows()
instead of full synchronize_user_stack() in there.

It's definitely a separate patch, but it looks like it might be worth
doing...  Comments?

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] Sparc
@ 2010-09-22 20:43             ` Al Viro
  0 siblings, 0 replies; 548+ messages in thread
From: Al Viro @ 2010-09-22 20:43 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: David Miller, akpm, sparclinux, linux-kernel

On Wed, Sep 22, 2010 at 08:53:49PM +0100, Al Viro wrote:
> On Wed, Sep 22, 2010 at 12:08:53PM -0700, Linus Torvalds wrote:
> > On Wed, Sep 22, 2010 at 11:53 AM, Al Viro <viro@zeniv.linux.org.uk> wrote:
> > >
> > > Um, no. ?You've *already* called get_signal_to_deliver(). ?There had been
> > > no SIGSEGV in sight. ?You happily went on to set a sigframe for e.g.
> > > SIGHUP, but ran out of stack. ?At that point you get force_sigsegv()
> > > from handle_signal(). ?_NOW_ you have a pending SIGSEGV
> > 
> > Ahh. Ok. Different case from the one I thought you were worried about.
> > And yeah, I guess that one does require us to mess with the low-level
> > asm code (although I do wonder if we could not make the whole
> > do_notify_resume + reschedule code be generic C code - it's a lot of
> > duplicated subtle asm as it is).
> 
> Worse than just that...  Note that on sparc you need to deal with
> fault_in_user_windows(), which can also trigger signals.

	Actually, I wonder why don't we do the following:
1) check wsaved first, do fault_in_user_windows() if needed (and probably do
Something Cruel(tm) if we fail copy_to_user() in there)
2) in a loop check if we need to reschedule / if we need to handle signals
3) don't bother with wsaved checks in setup_frame() variants at all -
wsaved can't grow back at that point; we also can use flush_user_windows()
instead of full synchronize_user_stack() in there.

It's definitely a separate patch, but it looks like it might be worth
doing...  Comments?

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] Sparc
  2010-09-22 20:43             ` Al Viro
@ 2010-09-22 21:15               ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2010-09-22 21:15 UTC (permalink / raw)
  To: viro; +Cc: torvalds, akpm, sparclinux, linux-kernel

From: Al Viro <viro@ZenIV.linux.org.uk>
Date: Wed, 22 Sep 2010 21:43:24 +0100

> 	Actually, I wonder why don't we do the following:
> 1) check wsaved first, do fault_in_user_windows() if needed (and probably do
> Something Cruel(tm) if we fail copy_to_user() in there)
> 2) in a loop check if we need to reschedule / if we need to handle signals
> 3) don't bother with wsaved checks in setup_frame() variants at all -
> wsaved can't grow back at that point; we also can use flush_user_windows()
> instead of full synchronize_user_stack() in there.
> 
> It's definitely a separate patch, but it looks like it might be worth
> doing...  Comments?

Ok, let me think about this.

I think there are two things:

1) I think I originally intended to allow the signal dispatch to
   succeed even if we had windows we couldn't fault in.

   The idea is that the wsaved windows would be put into the signal
   frame.

   This never was implemented, however...

2) It would be nice to, in this case, still be able to let the debugger
   have a look.

   And part of "having a look" would mean letting it see the registers
   from the windows we couldn't save onto the stack.

   Otherwise GDB is just going to try and access the stack pages we
   were unable to.

Making #2 work could be done with an implementation of #1, since GDB
would need to be able to fetch the values easily from somewhere and
the signal frame storage we create for #1 would be as good as any.

I can't see much utility for a user signal handler for #1, however,
other than getting an accurate stack backtrace to emit a crash log
message or similar.

Alternatively, #2 could be implemented using a special ptrace getregs
call created specifically to fetch the windowed registers.  And
the regset implementation of that could be used for dumping them
into core files as well, and this specifically I've been meaning to
do at some point.

Again, let me think about this some more.

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] Sparc
@ 2010-09-22 21:15               ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2010-09-22 21:15 UTC (permalink / raw)
  To: viro; +Cc: torvalds, akpm, sparclinux, linux-kernel

From: Al Viro <viro@ZenIV.linux.org.uk>
Date: Wed, 22 Sep 2010 21:43:24 +0100

> 	Actually, I wonder why don't we do the following:
> 1) check wsaved first, do fault_in_user_windows() if needed (and probably do
> Something Cruel(tm) if we fail copy_to_user() in there)
> 2) in a loop check if we need to reschedule / if we need to handle signals
> 3) don't bother with wsaved checks in setup_frame() variants at all -
> wsaved can't grow back at that point; we also can use flush_user_windows()
> instead of full synchronize_user_stack() in there.
> 
> It's definitely a separate patch, but it looks like it might be worth
> doing...  Comments?

Ok, let me think about this.

I think there are two things:

1) I think I originally intended to allow the signal dispatch to
   succeed even if we had windows we couldn't fault in.

   The idea is that the wsaved windows would be put into the signal
   frame.

   This never was implemented, however...

2) It would be nice to, in this case, still be able to let the debugger
   have a look.

   And part of "having a look" would mean letting it see the registers
   from the windows we couldn't save onto the stack.

   Otherwise GDB is just going to try and access the stack pages we
   were unable to.

Making #2 work could be done with an implementation of #1, since GDB
would need to be able to fetch the values easily from somewhere and
the signal frame storage we create for #1 would be as good as any.

I can't see much utility for a user signal handler for #1, however,
other than getting an accurate stack backtrace to emit a crash log
message or similar.

Alternatively, #2 could be implemented using a special ptrace getregs
call created specifically to fetch the windowed registers.  And
the regset implementation of that could be used for dumping them
into core files as well, and this specifically I've been meaning to
do at some point.

Again, let me think about this some more.

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] Sparc
  2010-09-22 21:15               ` David Miller
@ 2010-09-22 23:12                 ` Al Viro
  -1 siblings, 0 replies; 548+ messages in thread
From: Al Viro @ 2010-09-22 23:12 UTC (permalink / raw)
  To: David Miller; +Cc: torvalds, akpm, sparclinux, linux-kernel

On Wed, Sep 22, 2010 at 02:15:14PM -0700, David Miller wrote:

> Alternatively, #2 could be implemented using a special ptrace getregs
> call created specifically to fetch the windowed registers.  And
> the regset implementation of that could be used for dumping them
> into core files as well, and this specifically I've been meaning to
> do at some point.
> 
> Again, let me think about this some more.

OK... sparc32 question: just what the !@#!@# happens if sun4c_rett_stackchk
find (%fp & 7) != 0?  We go to ret_trap_user_stack_is_bolixed, which
tries to page in the underlying page.  OK, suppose it's already there and
readable; we return without doing anything - and go to signal_p.  Which finds
itself with nothing to do, and %fp is *still* buggered.  Spin ad infinitum?
srmmu_rett_stackchk will do the same, BTW...

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] Sparc
@ 2010-09-22 23:12                 ` Al Viro
  0 siblings, 0 replies; 548+ messages in thread
From: Al Viro @ 2010-09-22 23:12 UTC (permalink / raw)
  To: David Miller; +Cc: torvalds, akpm, sparclinux, linux-kernel

On Wed, Sep 22, 2010 at 02:15:14PM -0700, David Miller wrote:

> Alternatively, #2 could be implemented using a special ptrace getregs
> call created specifically to fetch the windowed registers.  And
> the regset implementation of that could be used for dumping them
> into core files as well, and this specifically I've been meaning to
> do at some point.
> 
> Again, let me think about this some more.

OK... sparc32 question: just what the !@#!@# happens if sun4c_rett_stackchk
find (%fp & 7) != 0?  We go to ret_trap_user_stack_is_bolixed, which
tries to page in the underlying page.  OK, suppose it's already there and
readable; we return without doing anything - and go to signal_p.  Which finds
itself with nothing to do, and %fp is *still* buggered.  Spin ad infinitum?
srmmu_rett_stackchk will do the same, BTW...

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] Sparc
  2010-09-22 21:15               ` David Miller
@ 2010-09-23  0:27                 ` Al Viro
  -1 siblings, 0 replies; 548+ messages in thread
From: Al Viro @ 2010-09-23  0:27 UTC (permalink / raw)
  To: David Miller; +Cc: torvalds, akpm, sparclinux, linux-kernel

Dave, are you OK with the following patch?  That should cover both sparc32
and sparc64...

Subject: [PATCH] sparc: keep calling do_signal() as long as pending signals remain

Analog of what commit 494486a1d2697f2153199b6501ab5b4d6e15a2bb had done
to alpha (another architecture with similar bug).

One note: in rtrap_32.S part clr %l6 has been a rudiment of left after
commit 28e6103665301ce60634e8a77f0b657c6cc099de (sparc: Fix debugger syscall
restart interactions) has killed %l6 use in there.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
---
 arch/sparc/kernel/rtrap_32.S |    6 +++---
 arch/sparc/kernel/rtrap_64.S |   36 +++---------------------------------
 2 files changed, 6 insertions(+), 36 deletions(-)

diff --git a/arch/sparc/kernel/rtrap_32.S b/arch/sparc/kernel/rtrap_32.S
index 4da2e1f..5f5f74c 100644
--- a/arch/sparc/kernel/rtrap_32.S
+++ b/arch/sparc/kernel/rtrap_32.S
@@ -78,9 +78,9 @@ signal_p:
 	call	do_notify_resume
 	 add	%sp, STACKFRAME_SZ, %o0	! pt_regs ptr
 
-	/* Fall through. */
-	ld	[%sp + STACKFRAME_SZ + PT_PSR], %t_psr
-	clr	%l6
+	b	signal_p
+	 ld	[%curptr + TI_FLAGS], %g2
+
 ret_trap_continue:
 	sethi	%hi(PSR_SYSCALL), %g1
 	andn	%t_psr, %g1, %t_psr
diff --git a/arch/sparc/kernel/rtrap_64.S b/arch/sparc/kernel/rtrap_64.S
index 090b9e9..77f1b95 100644
--- a/arch/sparc/kernel/rtrap_64.S
+++ b/arch/sparc/kernel/rtrap_64.S
@@ -34,37 +34,9 @@ __handle_preemption:
 __handle_user_windows:
 		call			fault_in_user_windows
 		 wrpr			%g0, RTRAP_PSTATE, %pstate
-		wrpr			%g0, RTRAP_PSTATE_IRQOFF, %pstate
-		/* Redo sched+sig checks */
-		ldx			[%g6 + TI_FLAGS], %l0
-		andcc			%l0, _TIF_NEED_RESCHED, %g0
-
-		be,pt			%xcc, 1f
-		 nop
-		call			schedule
-		 wrpr			%g0, RTRAP_PSTATE, %pstate
-		wrpr			%g0, RTRAP_PSTATE_IRQOFF, %pstate
-		ldx			[%g6 + TI_FLAGS], %l0
-
-1:		andcc			%l0, _TIF_DO_NOTIFY_RESUME_MASK, %g0
-		be,pt			%xcc, __handle_user_windows_continue
-		 nop
-		mov			%l5, %o1
-		add			%sp, PTREGS_OFF, %o0
-		mov			%l0, %o2
-
-		call			do_notify_resume
-		 wrpr			%g0, RTRAP_PSTATE, %pstate
-		wrpr			%g0, RTRAP_PSTATE_IRQOFF, %pstate
-		/* Signal delivery can modify pt_regs tstate, so we must
-		 * reload it.
-		 */
-		ldx			[%sp + PTREGS_OFF + PT_V9_TSTATE], %l1
-		sethi			%hi(0xf << 20), %l4
-		and			%l1, %l4, %l4
-		ba,pt			%xcc, __handle_user_windows_continue
+		ba,pt			%xcc, __handle_preemption_continue
+		 wrpr			%g0, RTRAP_PSTATE_IRQOFF, %pstate
 
-		 andn			%l1, %l4, %l1
 __handle_userfpu:
 		rd			%fprs, %l5
 		andcc			%l5, FPRS_FEF, %g0
@@ -87,7 +59,7 @@ __handle_signal:
 		ldx			[%sp + PTREGS_OFF + PT_V9_TSTATE], %l1
 		sethi			%hi(0xf << 20), %l4
 		and			%l1, %l4, %l4
-		ba,pt			%xcc, __handle_signal_continue
+		ba,pt			%xcc, __handle_preemption_continue
 		 andn			%l1, %l4, %l1
 
 		/* When returning from a NMI (%pil==15) interrupt we want to
@@ -177,11 +149,9 @@ __handle_preemption_continue:
 		bne,pn			%xcc, __handle_preemption
 		 andcc			%l0, _TIF_DO_NOTIFY_RESUME_MASK, %g0
 		bne,pn			%xcc, __handle_signal
-__handle_signal_continue:
 		 ldub			[%g6 + TI_WSAVED], %o2
 		brnz,pn			%o2, __handle_user_windows
 		 nop
-__handle_user_windows_continue:
 		sethi			%hi(TSTATE_PEF), %o0
 		andcc			%l1, %o0, %g0
 
-- 
1.5.6.5


^ permalink raw reply related	[flat|nested] 548+ messages in thread

* Re: [GIT] Sparc
@ 2010-09-23  0:27                 ` Al Viro
  0 siblings, 0 replies; 548+ messages in thread
From: Al Viro @ 2010-09-23  0:27 UTC (permalink / raw)
  To: David Miller; +Cc: torvalds, akpm, sparclinux, linux-kernel

Dave, are you OK with the following patch?  That should cover both sparc32
and sparc64...

Subject: [PATCH] sparc: keep calling do_signal() as long as pending signals remain

Analog of what commit 494486a1d2697f2153199b6501ab5b4d6e15a2bb had done
to alpha (another architecture with similar bug).

One note: in rtrap_32.S part clr %l6 has been a rudiment of left after
commit 28e6103665301ce60634e8a77f0b657c6cc099de (sparc: Fix debugger syscall
restart interactions) has killed %l6 use in there.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
---
 arch/sparc/kernel/rtrap_32.S |    6 +++---
 arch/sparc/kernel/rtrap_64.S |   36 +++---------------------------------
 2 files changed, 6 insertions(+), 36 deletions(-)

diff --git a/arch/sparc/kernel/rtrap_32.S b/arch/sparc/kernel/rtrap_32.S
index 4da2e1f..5f5f74c 100644
--- a/arch/sparc/kernel/rtrap_32.S
+++ b/arch/sparc/kernel/rtrap_32.S
@@ -78,9 +78,9 @@ signal_p:
 	call	do_notify_resume
 	 add	%sp, STACKFRAME_SZ, %o0	! pt_regs ptr
 
-	/* Fall through. */
-	ld	[%sp + STACKFRAME_SZ + PT_PSR], %t_psr
-	clr	%l6
+	b	signal_p
+	 ld	[%curptr + TI_FLAGS], %g2
+
 ret_trap_continue:
 	sethi	%hi(PSR_SYSCALL), %g1
 	andn	%t_psr, %g1, %t_psr
diff --git a/arch/sparc/kernel/rtrap_64.S b/arch/sparc/kernel/rtrap_64.S
index 090b9e9..77f1b95 100644
--- a/arch/sparc/kernel/rtrap_64.S
+++ b/arch/sparc/kernel/rtrap_64.S
@@ -34,37 +34,9 @@ __handle_preemption:
 __handle_user_windows:
 		call			fault_in_user_windows
 		 wrpr			%g0, RTRAP_PSTATE, %pstate
-		wrpr			%g0, RTRAP_PSTATE_IRQOFF, %pstate
-		/* Redo sched+sig checks */
-		ldx			[%g6 + TI_FLAGS], %l0
-		andcc			%l0, _TIF_NEED_RESCHED, %g0
-
-		be,pt			%xcc, 1f
-		 nop
-		call			schedule
-		 wrpr			%g0, RTRAP_PSTATE, %pstate
-		wrpr			%g0, RTRAP_PSTATE_IRQOFF, %pstate
-		ldx			[%g6 + TI_FLAGS], %l0
-
-1:		andcc			%l0, _TIF_DO_NOTIFY_RESUME_MASK, %g0
-		be,pt			%xcc, __handle_user_windows_continue
-		 nop
-		mov			%l5, %o1
-		add			%sp, PTREGS_OFF, %o0
-		mov			%l0, %o2
-
-		call			do_notify_resume
-		 wrpr			%g0, RTRAP_PSTATE, %pstate
-		wrpr			%g0, RTRAP_PSTATE_IRQOFF, %pstate
-		/* Signal delivery can modify pt_regs tstate, so we must
-		 * reload it.
-		 */
-		ldx			[%sp + PTREGS_OFF + PT_V9_TSTATE], %l1
-		sethi			%hi(0xf << 20), %l4
-		and			%l1, %l4, %l4
-		ba,pt			%xcc, __handle_user_windows_continue
+		ba,pt			%xcc, __handle_preemption_continue
+		 wrpr			%g0, RTRAP_PSTATE_IRQOFF, %pstate
 
-		 andn			%l1, %l4, %l1
 __handle_userfpu:
 		rd			%fprs, %l5
 		andcc			%l5, FPRS_FEF, %g0
@@ -87,7 +59,7 @@ __handle_signal:
 		ldx			[%sp + PTREGS_OFF + PT_V9_TSTATE], %l1
 		sethi			%hi(0xf << 20), %l4
 		and			%l1, %l4, %l4
-		ba,pt			%xcc, __handle_signal_continue
+		ba,pt			%xcc, __handle_preemption_continue
 		 andn			%l1, %l4, %l1
 
 		/* When returning from a NMI (%pil=15) interrupt we want to
@@ -177,11 +149,9 @@ __handle_preemption_continue:
 		bne,pn			%xcc, __handle_preemption
 		 andcc			%l0, _TIF_DO_NOTIFY_RESUME_MASK, %g0
 		bne,pn			%xcc, __handle_signal
-__handle_signal_continue:
 		 ldub			[%g6 + TI_WSAVED], %o2
 		brnz,pn			%o2, __handle_user_windows
 		 nop
-__handle_user_windows_continue:
 		sethi			%hi(TSTATE_PEF), %o0
 		andcc			%l1, %o0, %g0
 
-- 
1.5.6.5


^ permalink raw reply related	[flat|nested] 548+ messages in thread

* Re: [GIT] Sparc
  2010-09-22 19:08         ` Linus Torvalds
@ 2010-09-23  4:59           ` Al Viro
  -1 siblings, 0 replies; 548+ messages in thread
From: Al Viro @ 2010-09-23  4:59 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: David Miller, akpm, sparclinux, linux-kernel

On Wed, Sep 22, 2010 at 12:08:53PM -0700, Linus Torvalds wrote:
> On Wed, Sep 22, 2010 at 11:53 AM, Al Viro <viro@zeniv.linux.org.uk> wrote:
> >
> > Um, no. ?You've *already* called get_signal_to_deliver(). ?There had been
> > no SIGSEGV in sight. ?You happily went on to set a sigframe for e.g.
> > SIGHUP, but ran out of stack. ?At that point you get force_sigsegv()
> > from handle_signal(). ?_NOW_ you have a pending SIGSEGV
> 
> Ahh. Ok. Different case from the one I thought you were worried about.
> And yeah, I guess that one does require us to mess with the low-level
> asm code (although I do wonder if we could not make the whole
> do_notify_resume + reschedule code be generic C code - it's a lot of
> duplicated subtle asm as it is).

BTW, there's an interesting idea in s390 implementation (and I have to say
that I'm bloody impressed by them - it's the only architecture besides x86
where I haven't found serious holes in signal handling yet; there are QOI
issues, but that's it so far).  What they do with syscall restarts is unusual
and they might have a good point there.

1) They deal with restart immediately on the entry to do_signal(); if
restarts are not suppressed and if the error is one of the restart-worthy
ones, they do what should be done for no-handler case.

2) They store the pre-restart address, post-restart address and error.  Then
they call get_signal_to_deliver().  Of course, it may return us a positive
signal number.  In that case they may need to discard the restart they'd
done.  And they do it, but only if the address has remained equal to
post-restart one.

3) They ignore ERESTART_RESTARTBLOCK if the address has changed.  Actually,
I suspect that they might need to clear the ->restart_block.fn in that case,
but I haven't done analysis of that yet.

They do have a reason for doing it that way and it's worth considering on
other platforms.  Think what happens if we are getting traced.  We'll be
stopped and tracer will be notified.  Normally it'll tell us to continue
execution, possibly with a different signal *AND* with a different userland
address to return to.  Suppose we've got a different return address set
for us (e.g. with PTRACE_POKEUSR).  Should we ever shift it back by what
hopefully is a size of syscall insn?

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] Sparc
@ 2010-09-23  4:59           ` Al Viro
  0 siblings, 0 replies; 548+ messages in thread
From: Al Viro @ 2010-09-23  4:59 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: David Miller, akpm, sparclinux, linux-kernel

On Wed, Sep 22, 2010 at 12:08:53PM -0700, Linus Torvalds wrote:
> On Wed, Sep 22, 2010 at 11:53 AM, Al Viro <viro@zeniv.linux.org.uk> wrote:
> >
> > Um, no. ?You've *already* called get_signal_to_deliver(). ?There had been
> > no SIGSEGV in sight. ?You happily went on to set a sigframe for e.g.
> > SIGHUP, but ran out of stack. ?At that point you get force_sigsegv()
> > from handle_signal(). ?_NOW_ you have a pending SIGSEGV
> 
> Ahh. Ok. Different case from the one I thought you were worried about.
> And yeah, I guess that one does require us to mess with the low-level
> asm code (although I do wonder if we could not make the whole
> do_notify_resume + reschedule code be generic C code - it's a lot of
> duplicated subtle asm as it is).

BTW, there's an interesting idea in s390 implementation (and I have to say
that I'm bloody impressed by them - it's the only architecture besides x86
where I haven't found serious holes in signal handling yet; there are QOI
issues, but that's it so far).  What they do with syscall restarts is unusual
and they might have a good point there.

1) They deal with restart immediately on the entry to do_signal(); if
restarts are not suppressed and if the error is one of the restart-worthy
ones, they do what should be done for no-handler case.

2) They store the pre-restart address, post-restart address and error.  Then
they call get_signal_to_deliver().  Of course, it may return us a positive
signal number.  In that case they may need to discard the restart they'd
done.  And they do it, but only if the address has remained equal to
post-restart one.

3) They ignore ERESTART_RESTARTBLOCK if the address has changed.  Actually,
I suspect that they might need to clear the ->restart_block.fn in that case,
but I haven't done analysis of that yet.

They do have a reason for doing it that way and it's worth considering on
other platforms.  Think what happens if we are getting traced.  We'll be
stopped and tracer will be notified.  Normally it'll tell us to continue
execution, possibly with a different signal *AND* with a different userland
address to return to.  Suppose we've got a different return address set
for us (e.g. with PTRACE_POKEUSR).  Should we ever shift it back by what
hopefully is a size of syscall insn?

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] Sparc
  2010-09-22 23:12                 ` Al Viro
@ 2010-09-24  4:48                   ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2010-09-24  4:48 UTC (permalink / raw)
  To: viro; +Cc: torvalds, akpm, sparclinux, linux-kernel

From: Al Viro <viro@ZenIV.linux.org.uk>
Date: Thu, 23 Sep 2010 00:12:19 +0100

> OK... sparc32 question: just what the !@#!@# happens if sun4c_rett_stackchk
> find (%fp & 7) != 0?  We go to ret_trap_user_stack_is_bolixed, which
> tries to page in the underlying page.  OK, suppose it's already there and
> readable; we return without doing anything - and go to signal_p.  Which finds
> itself with nothing to do, and %fp is *still* buggered.  Spin ad infinitum?
> srmmu_rett_stackchk will do the same, BTW...

That's a bug.

Likely all of the window_*_fault() routines should force a SIGILL when
the stack is mis-aligned.

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] Sparc
@ 2010-09-24  4:48                   ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2010-09-24  4:48 UTC (permalink / raw)
  To: viro; +Cc: torvalds, akpm, sparclinux, linux-kernel

From: Al Viro <viro@ZenIV.linux.org.uk>
Date: Thu, 23 Sep 2010 00:12:19 +0100

> OK... sparc32 question: just what the !@#!@# happens if sun4c_rett_stackchk
> find (%fp & 7) != 0?  We go to ret_trap_user_stack_is_bolixed, which
> tries to page in the underlying page.  OK, suppose it's already there and
> readable; we return without doing anything - and go to signal_p.  Which finds
> itself with nothing to do, and %fp is *still* buggered.  Spin ad infinitum?
> srmmu_rett_stackchk will do the same, BTW...

That's a bug.

Likely all of the window_*_fault() routines should force a SIGILL when
the stack is mis-aligned.

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] Sparc
  2010-09-23  0:27                 ` Al Viro
@ 2010-09-24  4:53                   ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2010-09-24  4:53 UTC (permalink / raw)
  To: viro; +Cc: torvalds, akpm, sparclinux, linux-kernel

From: Al Viro <viro@ZenIV.linux.org.uk>
Date: Thu, 23 Sep 2010 01:27:57 +0100

> Dave, are you OK with the following patch?  That should cover both sparc32
> and sparc64...
> 
> Subject: [PATCH] sparc: keep calling do_signal() as long as pending signals remain

Looks great, I'll apply this and give it some of my own testing.

I'll also take care of that unaligned stack pointer issue on sparc32.

Thanks!

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] Sparc
@ 2010-09-24  4:53                   ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2010-09-24  4:53 UTC (permalink / raw)
  To: viro; +Cc: torvalds, akpm, sparclinux, linux-kernel

From: Al Viro <viro@ZenIV.linux.org.uk>
Date: Thu, 23 Sep 2010 01:27:57 +0100

> Dave, are you OK with the following patch?  That should cover both sparc32
> and sparc64...
> 
> Subject: [PATCH] sparc: keep calling do_signal() as long as pending signals remain

Looks great, I'll apply this and give it some of my own testing.

I'll also take care of that unaligned stack pointer issue on sparc32.

Thanks!

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] Sparc
  2010-09-23  4:59           ` Al Viro
@ 2010-09-24  5:01             ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2010-09-24  5:01 UTC (permalink / raw)
  To: viro; +Cc: torvalds, akpm, sparclinux, linux-kernel

From: Al Viro <viro@ZenIV.linux.org.uk>
Date: Thu, 23 Sep 2010 05:59:22 +0100

> They do have a reason for doing it that way and it's worth considering on
> other platforms.  Think what happens if we are getting traced.  We'll be
> stopped and tracer will be notified.  Normally it'll tell us to continue
> execution, possibly with a different signal *AND* with a different userland
> address to return to.  Suppose we've got a different return address set
> for us (e.g. with PTRACE_POKEUSR).  Should we ever shift it back by what
> hopefully is a size of syscall insn?

These "tracer changing the program counter" issues are why on sparc we
have this software state bit in the %tstate/%psr we report via regsets
(and thus via ptrace) to debuggers which tells if we are inside of a
syscall or not.

GDB uses this to know whether the kernel signal handling is going to
modify the program counter or not when the inferior continues.

If GDB ever writes the program counter of the inferior, it clears
this "in-syscall" bit, and this short-circuits the restart syscall
logic in the signal dispatch code.

This is what the GDB code looks like:

static void
sparc_linux_write_pc (struct regcache *regcache, CORE_ADDR pc)
{
  struct gdbarch_tdep *tdep = gdbarch_tdep (get_regcache_arch (regcache));
  ULONGEST psr;

  regcache_cooked_write_unsigned (regcache, tdep->pc_regnum, pc);
  regcache_cooked_write_unsigned (regcache, tdep->npc_regnum, pc + 4);

  /* Clear the "in syscall" bit to prevent the kernel from
     messing with the PCs we just installed, if we happen to be
     within an interrupted system call that the kernel wants to
     restart.

     Note that after we return from the dummy call, the PSR et al.
     registers will be automatically restored, and the kernel
     continues to restart the system call at this point.  */
  regcache_cooked_read_unsigned (regcache, SPARC32_PSR_REGNUM, &psr);
  psr &= ~PSR_SYSCALL;
  regcache_cooked_write_unsigned (regcache, SPARC32_PSR_REGNUM, psr);
}

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] Sparc
@ 2010-09-24  5:01             ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2010-09-24  5:01 UTC (permalink / raw)
  To: viro; +Cc: torvalds, akpm, sparclinux, linux-kernel

From: Al Viro <viro@ZenIV.linux.org.uk>
Date: Thu, 23 Sep 2010 05:59:22 +0100

> They do have a reason for doing it that way and it's worth considering on
> other platforms.  Think what happens if we are getting traced.  We'll be
> stopped and tracer will be notified.  Normally it'll tell us to continue
> execution, possibly with a different signal *AND* with a different userland
> address to return to.  Suppose we've got a different return address set
> for us (e.g. with PTRACE_POKEUSR).  Should we ever shift it back by what
> hopefully is a size of syscall insn?

These "tracer changing the program counter" issues are why on sparc we
have this software state bit in the %tstate/%psr we report via regsets
(and thus via ptrace) to debuggers which tells if we are inside of a
syscall or not.

GDB uses this to know whether the kernel signal handling is going to
modify the program counter or not when the inferior continues.

If GDB ever writes the program counter of the inferior, it clears
this "in-syscall" bit, and this short-circuits the restart syscall
logic in the signal dispatch code.

This is what the GDB code looks like:

static void
sparc_linux_write_pc (struct regcache *regcache, CORE_ADDR pc)
{
  struct gdbarch_tdep *tdep = gdbarch_tdep (get_regcache_arch (regcache));
  ULONGEST psr;

  regcache_cooked_write_unsigned (regcache, tdep->pc_regnum, pc);
  regcache_cooked_write_unsigned (regcache, tdep->npc_regnum, pc + 4);

  /* Clear the "in syscall" bit to prevent the kernel from
     messing with the PCs we just installed, if we happen to be
     within an interrupted system call that the kernel wants to
     restart.

     Note that after we return from the dummy call, the PSR et al.
     registers will be automatically restored, and the kernel
     continues to restart the system call at this point.  */
  regcache_cooked_read_unsigned (regcache, SPARC32_PSR_REGNUM, &psr);
  psr &= ~PSR_SYSCALL;
  regcache_cooked_write_unsigned (regcache, SPARC32_PSR_REGNUM, psr);
}

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2010-10-29  3:46 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2010-10-29  3:46 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Some left over signal fixes from Al, please some build
fixups for LEON and other configurations from Namhyung
Kim.

Please pull, thanks!

The following changes since commit b18cae4224bde7e5a332c19bc99247b2098ea232:

  Merge branch 'for-next' of git://android.git.kernel.org/kernel/tegra (2010-10-25 18:42:06 -0700)

are available in the git repository at:

  master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6.git master

Al Viro (1):
      sparc: keep calling do_signal() as long as pending signals remain

Daniel Hellstrom (1):
      sparc: Fixed random SPARC/LEON SMP CPU Stuck problem.

David S. Miller (1):
      sparc32: Fix unaligned stack handling on trap return.

Namhyung Kim (4):
      sparc: don't #include asm/system.h in asm/jump_label.h
      sparc32: remove CONFIG_HAVE_PERF_EVENTS option
      sparc32: fix build failure on CONFIG_SPARC_LEON
      kbuild: add ARCH=sparc32 target

 Makefile                            |    3 ++
 arch/sparc/Kconfig                  |    3 --
 arch/sparc/include/asm/jump_label.h |    1 -
 arch/sparc/kernel/irq_32.c          |    4 +-
 arch/sparc/kernel/leon_smp.c        |    4 +-
 arch/sparc/kernel/rtrap_32.S        |    6 ++--
 arch/sparc/kernel/rtrap_64.S        |   36 ++--------------------------------
 arch/sparc/mm/fault_32.c            |   12 +++++++++++
 8 files changed, 25 insertions(+), 44 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2010-10-29  3:46 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2010-10-29  3:46 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Some left over signal fixes from Al, please some build
fixups for LEON and other configurations from Namhyung
Kim.

Please pull, thanks!

The following changes since commit b18cae4224bde7e5a332c19bc99247b2098ea232:

  Merge branch 'for-next' of git://android.git.kernel.org/kernel/tegra (2010-10-25 18:42:06 -0700)

are available in the git repository at:

  master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6.git master

Al Viro (1):
      sparc: keep calling do_signal() as long as pending signals remain

Daniel Hellstrom (1):
      sparc: Fixed random SPARC/LEON SMP CPU Stuck problem.

David S. Miller (1):
      sparc32: Fix unaligned stack handling on trap return.

Namhyung Kim (4):
      sparc: don't #include asm/system.h in asm/jump_label.h
      sparc32: remove CONFIG_HAVE_PERF_EVENTS option
      sparc32: fix build failure on CONFIG_SPARC_LEON
      kbuild: add ARCH=sparc32 target

 Makefile                            |    3 ++
 arch/sparc/Kconfig                  |    3 --
 arch/sparc/include/asm/jump_label.h |    1 -
 arch/sparc/kernel/irq_32.c          |    4 +-
 arch/sparc/kernel/leon_smp.c        |    4 +-
 arch/sparc/kernel/rtrap_32.S        |    6 ++--
 arch/sparc/kernel/rtrap_64.S        |   36 ++--------------------------------
 arch/sparc/mm/fault_32.c            |   12 +++++++++++
 8 files changed, 25 insertions(+), 44 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2010-12-14 20:11 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2010-12-14 20:11 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


This fixes two bugs.

First a fix from Daniel Hellstrom that eliminates a hard-coded HZ
constant in the LEON code.

Second, fix a regression in sparc64 firmware calls.

Some kinds of firmware calls are not safe to pass buffer addresses
over 4GB, they really aren't 64-bit safe universally especially on
older sparc64 systems.

So I fixed this in two steps:

1) Remove firmware interfaces unused by the kernel right now, which is
   safer than trying to recode them to use bounce buffers or similar.

2) Add a bounce buffer for PROM console writes to ensure that the
   buffer restrictions are met.

Tested successfully by the original bug reporter.

Please pull, thanks a lot!

The following changes since commit 6313e3c21743cc88bb5bd8aa72948ee1e83937b6:

  Merge branches 'x86-fixes-for-linus', 'perf-fixes-for-linus' and 'sched-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip (2010-12-08 06:40:59 -0800)

are available in the git repository at:

  master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6.git master

Daniel Hellstrom (1):
      SPARC/LEON: removed constant timer initialization as if HZ=100, now it reflects the value of HZ

David S. Miller (9):
      sparc64: Delete prom_puts() unused.
      sparc: Remove prom_pathtoinode()
      sparc: Kill prom devops_{32,64}.c
      sparc64: Unexport prom_service_exists().
      sparc64: Delete prom_setcallback().
      sparc: Do not export prom_nb{get,put}char().
      sparc: Pass buffer pointer all the way down to prom_{get,put}char().
      sparc: Delete prom_*getchar().
      sparc: Write to prom console using indirect buffer.

 arch/sparc/include/asm/openprom.h |    2 +-
 arch/sparc/include/asm/oplib_32.h |   35 +--------------
 arch/sparc/include/asm/oplib_64.h |   46 +-------------------
 arch/sparc/kernel/leon_kernel.c   |    4 +-
 arch/sparc/prom/Makefile          |    1 -
 arch/sparc/prom/console_32.c      |   65 +++++----------------------
 arch/sparc/prom/console_64.c      |   81 ++++++----------------------------
 arch/sparc/prom/devops_32.c       |   87 -------------------------------------
 arch/sparc/prom/devops_64.c       |   67 ----------------------------
 arch/sparc/prom/misc_64.c         |   16 +------
 arch/sparc/prom/printf.c          |   35 ++++++++++++---
 arch/sparc/prom/tree_32.c         |   16 -------
 arch/sparc/prom/tree_64.c         |   18 --------
 13 files changed, 64 insertions(+), 409 deletions(-)
 delete mode 100644 arch/sparc/prom/devops_32.c
 delete mode 100644 arch/sparc/prom/devops_64.c

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2010-12-14 20:11 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2010-12-14 20:11 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


This fixes two bugs.

First a fix from Daniel Hellstrom that eliminates a hard-coded HZ
constant in the LEON code.

Second, fix a regression in sparc64 firmware calls.

Some kinds of firmware calls are not safe to pass buffer addresses
over 4GB, they really aren't 64-bit safe universally especially on
older sparc64 systems.

So I fixed this in two steps:

1) Remove firmware interfaces unused by the kernel right now, which is
   safer than trying to recode them to use bounce buffers or similar.

2) Add a bounce buffer for PROM console writes to ensure that the
   buffer restrictions are met.

Tested successfully by the original bug reporter.

Please pull, thanks a lot!

The following changes since commit 6313e3c21743cc88bb5bd8aa72948ee1e83937b6:

  Merge branches 'x86-fixes-for-linus', 'perf-fixes-for-linus' and 'sched-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip (2010-12-08 06:40:59 -0800)

are available in the git repository at:

  master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6.git master

Daniel Hellstrom (1):
      SPARC/LEON: removed constant timer initialization as if HZ\x100, now it reflects the value of HZ

David S. Miller (9):
      sparc64: Delete prom_puts() unused.
      sparc: Remove prom_pathtoinode()
      sparc: Kill prom devops_{32,64}.c
      sparc64: Unexport prom_service_exists().
      sparc64: Delete prom_setcallback().
      sparc: Do not export prom_nb{get,put}char().
      sparc: Pass buffer pointer all the way down to prom_{get,put}char().
      sparc: Delete prom_*getchar().
      sparc: Write to prom console using indirect buffer.

 arch/sparc/include/asm/openprom.h |    2 +-
 arch/sparc/include/asm/oplib_32.h |   35 +--------------
 arch/sparc/include/asm/oplib_64.h |   46 +-------------------
 arch/sparc/kernel/leon_kernel.c   |    4 +-
 arch/sparc/prom/Makefile          |    1 -
 arch/sparc/prom/console_32.c      |   65 +++++----------------------
 arch/sparc/prom/console_64.c      |   81 ++++++----------------------------
 arch/sparc/prom/devops_32.c       |   87 -------------------------------------
 arch/sparc/prom/devops_64.c       |   67 ----------------------------
 arch/sparc/prom/misc_64.c         |   16 +------
 arch/sparc/prom/printf.c          |   35 ++++++++++++---
 arch/sparc/prom/tree_32.c         |   16 -------
 arch/sparc/prom/tree_64.c         |   18 --------
 13 files changed, 64 insertions(+), 409 deletions(-)
 delete mode 100644 arch/sparc/prom/devops_32.c
 delete mode 100644 arch/sparc/prom/devops_64.c

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2011-01-06 22:48 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2011-01-06 22:48 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Not a whole lot here, mainly:

1) sparc 32-bit LEON updates from Daniel Hellstrom.

2) PROM cleanups and consolidation of the 32-bit and 64-bit
   piggyback programs into one unified code base, from Sam
   Ravnborg.

3) An atyfb on sparc bootup regression fix, which will be sent
   to -stable.

Please pull, thanks a lot.

The following changes since commit cb600d2f83c854ec3d6660063e4466431999489b:

  Merge branch 'x86-mm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip (2011-01-06 11:12:17 -0800)

are available in the git repository at:

  master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-next-2.6.git master

Daniel Hellstrom (7):
      SPARC/LEON: find IRQCTRL and Timer via OF-Tree, instead of hardcoded.
      SPARC/LEON: added support for IRQAMP IRQ Controller
      LEON: added raw AMBA vendor/device number to find TIMER, IRQCTRL
      SPARC/LEON: added support for selecting Timer Core and Timer within core
      SPARC/LEON: avoid AMBAPP name duplicates in openprom fs when REG is missing
      APBUART: added raw AMBA vendor/device number to match against.
      Added support for ampopts in APBUART driver. Used in AMP systems.

David S. Miller (3):
      Merge master.kernel.org:/.../davem/sparc-2.6
      sparc: Eliminate prom_stdin.
      atyfb: Fix bootup hangs on sparc64.

Julian Calaby (1):
      sparc: prom: Sanitize return value from prom_nbputchar()

Sam Ravnborg (15):
      sparc: drop prom/devmap.c
      sparc: drop prom/palloc.c
      sparc: remove unused prom cpu functions
      sparc: remove unused prom tree functions
      sparc: fix sparse warnings in arch/sparc/prom for 32 bit build
      sparc: refactor piggy_32.c
      sparc: use trapbase in setup_arch
      sparc: use _start for the start entry (like 64 bit does)
      sparc: additional comments to piggyback_32.c
      sparc: remove obsolete ELF support in piggyback_32.c
      sparc: add $BITS to piggyback arguments
      sparc: fix tftpboot.img for sparc64 on little-endian host
      sparc: rename piggyback_32 to piggyback
      sparc: unify strip command in boot/Makefile
      sparc: update copyright in piggyback.c

 arch/sparc/boot/Makefile           |   28 ++---
 arch/sparc/boot/piggyback.c        |  272 ++++++++++++++++++++++++++++++++++++
 arch/sparc/boot/piggyback_32.c     |  137 ------------------
 arch/sparc/boot/piggyback_64.c     |  110 ---------------
 arch/sparc/include/asm/leon.h      |   12 ++
 arch/sparc/include/asm/leon_amba.h |    6 +-
 arch/sparc/include/asm/openprom.h  |    2 +-
 arch/sparc/include/asm/oplib_32.h  |   83 +----------
 arch/sparc/include/asm/oplib_64.h  |   50 +------
 arch/sparc/kernel/head_32.S        |    3 +-
 arch/sparc/kernel/leon_kernel.c    |  114 +++++++++++++---
 arch/sparc/kernel/prom_32.c        |   27 +++-
 arch/sparc/kernel/setup_32.c       |    3 +-
 arch/sparc/mm/sun4c.c              |    8 +-
 arch/sparc/prom/Makefile           |    3 -
 arch/sparc/prom/bootstr_32.c       |    3 +-
 arch/sparc/prom/console_32.c       |   68 ++-------
 arch/sparc/prom/console_64.c       |   83 ++---------
 arch/sparc/prom/devmap.c           |   53 -------
 arch/sparc/prom/devops_32.c        |   87 ------------
 arch/sparc/prom/devops_64.c        |   67 ---------
 arch/sparc/prom/init_64.c          |    3 +-
 arch/sparc/prom/misc_32.c          |    2 +-
 arch/sparc/prom/misc_64.c          |   16 +--
 arch/sparc/prom/mp.c               |   78 ----------
 arch/sparc/prom/palloc.c           |   43 ------
 arch/sparc/prom/printf.c           |   35 ++++-
 arch/sparc/prom/ranges.c           |    6 +-
 arch/sparc/prom/tree_32.c          |   66 +--------
 arch/sparc/prom/tree_64.c          |   18 ---
 drivers/serial/apbuart.c           |    8 +-
 drivers/video/aty/atyfb_base.c     |   27 +---
 32 files changed, 514 insertions(+), 1007 deletions(-)
 create mode 100644 arch/sparc/boot/piggyback.c
 delete mode 100644 arch/sparc/boot/piggyback_32.c
 delete mode 100644 arch/sparc/boot/piggyback_64.c
 delete mode 100644 arch/sparc/prom/devmap.c
 delete mode 100644 arch/sparc/prom/devops_32.c
 delete mode 100644 arch/sparc/prom/devops_64.c
 delete mode 100644 arch/sparc/prom/palloc.c

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2011-01-06 22:48 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2011-01-06 22:48 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Not a whole lot here, mainly:

1) sparc 32-bit LEON updates from Daniel Hellstrom.

2) PROM cleanups and consolidation of the 32-bit and 64-bit
   piggyback programs into one unified code base, from Sam
   Ravnborg.

3) An atyfb on sparc bootup regression fix, which will be sent
   to -stable.

Please pull, thanks a lot.

The following changes since commit cb600d2f83c854ec3d6660063e4466431999489b:

  Merge branch 'x86-mm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip (2011-01-06 11:12:17 -0800)

are available in the git repository at:

  master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-next-2.6.git master

Daniel Hellstrom (7):
      SPARC/LEON: find IRQCTRL and Timer via OF-Tree, instead of hardcoded.
      SPARC/LEON: added support for IRQAMP IRQ Controller
      LEON: added raw AMBA vendor/device number to find TIMER, IRQCTRL
      SPARC/LEON: added support for selecting Timer Core and Timer within core
      SPARC/LEON: avoid AMBAPP name duplicates in openprom fs when REG is missing
      APBUART: added raw AMBA vendor/device number to match against.
      Added support for ampopts in APBUART driver. Used in AMP systems.

David S. Miller (3):
      Merge master.kernel.org:/.../davem/sparc-2.6
      sparc: Eliminate prom_stdin.
      atyfb: Fix bootup hangs on sparc64.

Julian Calaby (1):
      sparc: prom: Sanitize return value from prom_nbputchar()

Sam Ravnborg (15):
      sparc: drop prom/devmap.c
      sparc: drop prom/palloc.c
      sparc: remove unused prom cpu functions
      sparc: remove unused prom tree functions
      sparc: fix sparse warnings in arch/sparc/prom for 32 bit build
      sparc: refactor piggy_32.c
      sparc: use trapbase in setup_arch
      sparc: use _start for the start entry (like 64 bit does)
      sparc: additional comments to piggyback_32.c
      sparc: remove obsolete ELF support in piggyback_32.c
      sparc: add $BITS to piggyback arguments
      sparc: fix tftpboot.img for sparc64 on little-endian host
      sparc: rename piggyback_32 to piggyback
      sparc: unify strip command in boot/Makefile
      sparc: update copyright in piggyback.c

 arch/sparc/boot/Makefile           |   28 ++---
 arch/sparc/boot/piggyback.c        |  272 ++++++++++++++++++++++++++++++++++++
 arch/sparc/boot/piggyback_32.c     |  137 ------------------
 arch/sparc/boot/piggyback_64.c     |  110 ---------------
 arch/sparc/include/asm/leon.h      |   12 ++
 arch/sparc/include/asm/leon_amba.h |    6 +-
 arch/sparc/include/asm/openprom.h  |    2 +-
 arch/sparc/include/asm/oplib_32.h  |   83 +----------
 arch/sparc/include/asm/oplib_64.h  |   50 +------
 arch/sparc/kernel/head_32.S        |    3 +-
 arch/sparc/kernel/leon_kernel.c    |  114 +++++++++++++---
 arch/sparc/kernel/prom_32.c        |   27 +++-
 arch/sparc/kernel/setup_32.c       |    3 +-
 arch/sparc/mm/sun4c.c              |    8 +-
 arch/sparc/prom/Makefile           |    3 -
 arch/sparc/prom/bootstr_32.c       |    3 +-
 arch/sparc/prom/console_32.c       |   68 ++-------
 arch/sparc/prom/console_64.c       |   83 ++---------
 arch/sparc/prom/devmap.c           |   53 -------
 arch/sparc/prom/devops_32.c        |   87 ------------
 arch/sparc/prom/devops_64.c        |   67 ---------
 arch/sparc/prom/init_64.c          |    3 +-
 arch/sparc/prom/misc_32.c          |    2 +-
 arch/sparc/prom/misc_64.c          |   16 +--
 arch/sparc/prom/mp.c               |   78 ----------
 arch/sparc/prom/palloc.c           |   43 ------
 arch/sparc/prom/printf.c           |   35 ++++-
 arch/sparc/prom/ranges.c           |    6 +-
 arch/sparc/prom/tree_32.c          |   66 +--------
 arch/sparc/prom/tree_64.c          |   18 ---
 drivers/serial/apbuart.c           |    8 +-
 drivers/video/aty/atyfb_base.c     |   27 +---
 32 files changed, 514 insertions(+), 1007 deletions(-)
 create mode 100644 arch/sparc/boot/piggyback.c
 delete mode 100644 arch/sparc/boot/piggyback_32.c
 delete mode 100644 arch/sparc/boot/piggyback_64.c
 delete mode 100644 arch/sparc/prom/devmap.c
 delete mode 100644 arch/sparc/prom/devops_32.c
 delete mode 100644 arch/sparc/prom/devops_64.c
 delete mode 100644 arch/sparc/prom/palloc.c

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2011-01-12  0:26 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2011-01-12  0:26 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


This fixes a bootup regression caused by some recent perf NMI changes.

Please pull, thanks a lot!

The following changes since commit 7bc4a4ce68f8c6d064ea949446852e996526f692:

  Merge branch 'for-linus-merged' of git://oss.sgi.com/xfs/xfs (2011-01-11 11:42:06 -0800)

are available in the git repository at:

  master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6.git master

David S. Miller (1):
      sparc64: Fix bootup regression due to perf init ordering.

 arch/sparc/kernel/cpu.c |    2 +-
 arch/sparc/kernel/pcr.c |    2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2011-01-12  0:26 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2011-01-12  0:26 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


This fixes a bootup regression caused by some recent perf NMI changes.

Please pull, thanks a lot!

The following changes since commit 7bc4a4ce68f8c6d064ea949446852e996526f692:

  Merge branch 'for-linus-merged' of git://oss.sgi.com/xfs/xfs (2011-01-11 11:42:06 -0800)

are available in the git repository at:

  master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6.git master

David S. Miller (1):
      sparc64: Fix bootup regression due to perf init ordering.

 arch/sparc/kernel/cpu.c |    2 +-
 arch/sparc/kernel/pcr.c |    2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2011-02-17 21:34 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2011-02-17 21:34 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Some small fixups:

1) Get perf working again.

2) sparc32 iommu code scans wrong range of bits in bitmap, from Akinobu Mita.

3) sparc32 unaligned access trap handler regression fix, from Daniel Hellstrom.

Please pull, thanks a lot!

The following changes since commit ee715087024b91a6ceb85ba2d02f6c35d354a48c:

  Merge branch 'for-2.6.38' of git://linux-nfs.org/~bfields/linux (2011-02-16 21:53:41 -0800)

are available in the git repository at:

  master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6.git master

Akinobu Mita (2):
      sparc: use bitmap_set()
      sparc: fix size argument to find_next_zero_bit()

Daniel Hellstrom (1):
      sparc32: unaligned memory access (MNA) trap handler bug

David S. Miller (1):
      sparc64: Fix NMI startup bug which also breaks perf.

 arch/sparc/include/asm/pcr.h   |    2 ++
 arch/sparc/kernel/iommu.c      |    5 ++---
 arch/sparc/kernel/pcr.c        |    2 --
 arch/sparc/kernel/smp_64.c     |    2 ++
 arch/sparc/kernel/una_asm_32.S |    4 ++--
 arch/sparc/lib/bitext.c        |    5 ++---
 6 files changed, 10 insertions(+), 10 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2011-02-17 21:34 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2011-02-17 21:34 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Some small fixups:

1) Get perf working again.

2) sparc32 iommu code scans wrong range of bits in bitmap, from Akinobu Mita.

3) sparc32 unaligned access trap handler regression fix, from Daniel Hellstrom.

Please pull, thanks a lot!

The following changes since commit ee715087024b91a6ceb85ba2d02f6c35d354a48c:

  Merge branch 'for-2.6.38' of git://linux-nfs.org/~bfields/linux (2011-02-16 21:53:41 -0800)

are available in the git repository at:

  master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6.git master

Akinobu Mita (2):
      sparc: use bitmap_set()
      sparc: fix size argument to find_next_zero_bit()

Daniel Hellstrom (1):
      sparc32: unaligned memory access (MNA) trap handler bug

David S. Miller (1):
      sparc64: Fix NMI startup bug which also breaks perf.

 arch/sparc/include/asm/pcr.h   |    2 ++
 arch/sparc/kernel/iommu.c      |    5 ++---
 arch/sparc/kernel/pcr.c        |    2 --
 arch/sparc/kernel/smp_64.c     |    2 ++
 arch/sparc/kernel/una_asm_32.S |    4 ++--
 arch/sparc/lib/bitext.c        |    5 ++---
 6 files changed, 10 insertions(+), 10 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2011-03-17  3:06 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2011-03-17  3:06 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Several small fixes, and a series of cleanups to the IRQ
handling code of sparc32 to get us ready for a full generic
IRQ conversion.

Please pull, thanks a lot!

The following changes since commit 4c5811bf463b0ef82fabbd1708f8bb2d753aeb18:

  Merge branch 'devicetree/next' of git://git.secretlab.ca/git/linux-2.6 (2011-03-16 17:28:10 -0700)

are available in the git repository at:

  master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-next-2.6.git master

Ben Hutchings (1):
      sparc: Fix .size directive for do_int_load

Daniel Hellstrom (3):
      sparc32: added U-Boot build target: uImage
      SPARC/LEON: power down instruction different of different LEONs
      sparc32/leon: FPU-FSR only available when FPU present

David S. Miller (3):
      sparc64: Sharpen address space randomization calculations.
      sparc64: Fix build errors with gcc-4.6.0
      sparc32: Fix might-be-used-uninitialized warning in do_sparc_fault().

John Stultz (1):
      sparc: convert to clocksource_register_hz/khz

Kristoffer Glembo (6):
      sparc: Replace open coded page alignment with PAGE_ALIGN macro.
      sparc: Add pci32_unmap_page.
      sparc/leon: Add LEON dma_ops.
      sparc/leon: Make mmu_inval_dma_area flush dcache for LEONs without snooping enabled.
      sparc: Make mmu_inval_dma_area take void * instead of unsigned long to minimize casts.
      sparc: Fix sbus_alloc_coherent error handling.

Sam Ravnborg (19):
      sparc64: fix direct access to irq_desc
      sparc: in handler_irq() rename irq parameter to pil
      sparc64: all pointers to irq_handler_data renamed to handler_data
      sparc64: use {get,set}_irq_data for handler_data
      sparc64: use up-to-data genirq functions
      sparc64: rename virt_irq => irq - I
      sparc64: rename virt_irq => irq - II
      sparc32: remove tick14.c
      sparc32: add irq + smp declarations to headers
      sparc32,sun4c: irq file cleanup
      sparc32,sun4m: irq, smp files cleanup
      sparc32,sun4d: irq, smp files cleanup
      sparc32,sun4d: drop unused code in sun4d_distribute_irqs()
      sparc32, sun4d: add comment in empty statement in sun4d_request_irq()
      sparc32: irq_32.c cleanup
      sparc32: fix build with leon or floppy enabled
      sparc32: introduce sparc_irq_config
      sparc32: introduce build_device_irq
      sparc32,sun4m: percpu and global register definitions moved to irq.h

 arch/sparc/Kconfig                 |   34 ++++
 arch/sparc/Makefile                |    3 +-
 arch/sparc/boot/Makefile           |   31 ++++
 arch/sparc/include/asm/irq_64.h    |   18 +-
 arch/sparc/include/asm/leon.h      |    3 -
 arch/sparc/include/asm/leon_amba.h |    6 +
 arch/sparc/include/asm/mmu_32.h    |    3 +
 arch/sparc/include/asm/smp_32.h    |    6 +
 arch/sparc/kernel/Makefile         |    2 +-
 arch/sparc/kernel/cpu.c            |    2 +-
 arch/sparc/kernel/entry.h          |    4 +-
 arch/sparc/kernel/iommu.c          |    3 -
 arch/sparc/kernel/ioport.c         |  108 +++++++-----
 arch/sparc/kernel/irq.h            |   42 ++++-
 arch/sparc/kernel/irq_32.c         |  260 +++++++++++++-----------------
 arch/sparc/kernel/irq_64.c         |  312 ++++++++++++++++++------------------
 arch/sparc/kernel/kernel.h         |   49 ++++++
 arch/sparc/kernel/ldc.c            |   28 ++--
 arch/sparc/kernel/leon_kernel.c    |   11 +-
 arch/sparc/kernel/leon_pmc.c       |   82 ++++++++++
 arch/sparc/kernel/leon_smp.c       |   36 ++---
 arch/sparc/kernel/of_device_32.c   |   59 +------
 arch/sparc/kernel/pci.c            |   11 +-
 arch/sparc/kernel/pci_common.c     |   11 +-
 arch/sparc/kernel/pci_fire.c       |   10 +-
 arch/sparc/kernel/pci_impl.h       |    4 +-
 arch/sparc/kernel/pci_msi.c        |   44 +++---
 arch/sparc/kernel/pci_schizo.c     |    4 +-
 arch/sparc/kernel/pci_sun4v.c      |    9 +-
 arch/sparc/kernel/pcr.c            |    2 +-
 arch/sparc/kernel/prom_irqtrans.c  |   16 +-
 arch/sparc/kernel/ptrace_64.c      |    3 +-
 arch/sparc/kernel/setup_32.c       |   19 +--
 arch/sparc/kernel/smp_64.c         |   11 +-
 arch/sparc/kernel/sun4c_irq.c      |   85 ++++++-----
 arch/sparc/kernel/sun4d_irq.c      |  298 +++++++++++++++++++---------------
 arch/sparc/kernel/sun4d_smp.c      |  176 ++++++++-------------
 arch/sparc/kernel/sun4m_irq.c      |  202 +++++++++++------------
 arch/sparc/kernel/sun4m_smp.c      |   91 +++--------
 arch/sparc/kernel/sys_sparc_64.c   |   21 ++-
 arch/sparc/kernel/tick14.c         |   39 -----
 arch/sparc/kernel/time_32.c        |    2 +-
 arch/sparc/kernel/time_64.c        |    4 +-
 arch/sparc/kernel/traps_64.c       |    3 +-
 arch/sparc/kernel/una_asm_64.S     |    2 +-
 arch/sparc/mm/fault_32.c           |    3 +-
 arch/sparc/prom/misc_32.c          |    4 -
 47 files changed, 1117 insertions(+), 1059 deletions(-)
 create mode 100644 arch/sparc/kernel/leon_pmc.c
 delete mode 100644 arch/sparc/kernel/tick14.c

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2011-03-17  3:06 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2011-03-17  3:06 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Several small fixes, and a series of cleanups to the IRQ
handling code of sparc32 to get us ready for a full generic
IRQ conversion.

Please pull, thanks a lot!

The following changes since commit 4c5811bf463b0ef82fabbd1708f8bb2d753aeb18:

  Merge branch 'devicetree/next' of git://git.secretlab.ca/git/linux-2.6 (2011-03-16 17:28:10 -0700)

are available in the git repository at:

  master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-next-2.6.git master

Ben Hutchings (1):
      sparc: Fix .size directive for do_int_load

Daniel Hellstrom (3):
      sparc32: added U-Boot build target: uImage
      SPARC/LEON: power down instruction different of different LEONs
      sparc32/leon: FPU-FSR only available when FPU present

David S. Miller (3):
      sparc64: Sharpen address space randomization calculations.
      sparc64: Fix build errors with gcc-4.6.0
      sparc32: Fix might-be-used-uninitialized warning in do_sparc_fault().

John Stultz (1):
      sparc: convert to clocksource_register_hz/khz

Kristoffer Glembo (6):
      sparc: Replace open coded page alignment with PAGE_ALIGN macro.
      sparc: Add pci32_unmap_page.
      sparc/leon: Add LEON dma_ops.
      sparc/leon: Make mmu_inval_dma_area flush dcache for LEONs without snooping enabled.
      sparc: Make mmu_inval_dma_area take void * instead of unsigned long to minimize casts.
      sparc: Fix sbus_alloc_coherent error handling.

Sam Ravnborg (19):
      sparc64: fix direct access to irq_desc
      sparc: in handler_irq() rename irq parameter to pil
      sparc64: all pointers to irq_handler_data renamed to handler_data
      sparc64: use {get,set}_irq_data for handler_data
      sparc64: use up-to-data genirq functions
      sparc64: rename virt_irq => irq - I
      sparc64: rename virt_irq => irq - II
      sparc32: remove tick14.c
      sparc32: add irq + smp declarations to headers
      sparc32,sun4c: irq file cleanup
      sparc32,sun4m: irq, smp files cleanup
      sparc32,sun4d: irq, smp files cleanup
      sparc32,sun4d: drop unused code in sun4d_distribute_irqs()
      sparc32, sun4d: add comment in empty statement in sun4d_request_irq()
      sparc32: irq_32.c cleanup
      sparc32: fix build with leon or floppy enabled
      sparc32: introduce sparc_irq_config
      sparc32: introduce build_device_irq
      sparc32,sun4m: percpu and global register definitions moved to irq.h

 arch/sparc/Kconfig                 |   34 ++++
 arch/sparc/Makefile                |    3 +-
 arch/sparc/boot/Makefile           |   31 ++++
 arch/sparc/include/asm/irq_64.h    |   18 +-
 arch/sparc/include/asm/leon.h      |    3 -
 arch/sparc/include/asm/leon_amba.h |    6 +
 arch/sparc/include/asm/mmu_32.h    |    3 +
 arch/sparc/include/asm/smp_32.h    |    6 +
 arch/sparc/kernel/Makefile         |    2 +-
 arch/sparc/kernel/cpu.c            |    2 +-
 arch/sparc/kernel/entry.h          |    4 +-
 arch/sparc/kernel/iommu.c          |    3 -
 arch/sparc/kernel/ioport.c         |  108 +++++++-----
 arch/sparc/kernel/irq.h            |   42 ++++-
 arch/sparc/kernel/irq_32.c         |  260 +++++++++++++-----------------
 arch/sparc/kernel/irq_64.c         |  312 ++++++++++++++++++------------------
 arch/sparc/kernel/kernel.h         |   49 ++++++
 arch/sparc/kernel/ldc.c            |   28 ++--
 arch/sparc/kernel/leon_kernel.c    |   11 +-
 arch/sparc/kernel/leon_pmc.c       |   82 ++++++++++
 arch/sparc/kernel/leon_smp.c       |   36 ++---
 arch/sparc/kernel/of_device_32.c   |   59 +------
 arch/sparc/kernel/pci.c            |   11 +-
 arch/sparc/kernel/pci_common.c     |   11 +-
 arch/sparc/kernel/pci_fire.c       |   10 +-
 arch/sparc/kernel/pci_impl.h       |    4 +-
 arch/sparc/kernel/pci_msi.c        |   44 +++---
 arch/sparc/kernel/pci_schizo.c     |    4 +-
 arch/sparc/kernel/pci_sun4v.c      |    9 +-
 arch/sparc/kernel/pcr.c            |    2 +-
 arch/sparc/kernel/prom_irqtrans.c  |   16 +-
 arch/sparc/kernel/ptrace_64.c      |    3 +-
 arch/sparc/kernel/setup_32.c       |   19 +--
 arch/sparc/kernel/smp_64.c         |   11 +-
 arch/sparc/kernel/sun4c_irq.c      |   85 ++++++-----
 arch/sparc/kernel/sun4d_irq.c      |  298 +++++++++++++++++++---------------
 arch/sparc/kernel/sun4d_smp.c      |  176 ++++++++-------------
 arch/sparc/kernel/sun4m_irq.c      |  202 +++++++++++------------
 arch/sparc/kernel/sun4m_smp.c      |   91 +++--------
 arch/sparc/kernel/sys_sparc_64.c   |   21 ++-
 arch/sparc/kernel/tick14.c         |   39 -----
 arch/sparc/kernel/time_32.c        |    2 +-
 arch/sparc/kernel/time_64.c        |    4 +-
 arch/sparc/kernel/traps_64.c       |    3 +-
 arch/sparc/kernel/una_asm_64.S     |    2 +-
 arch/sparc/mm/fault_32.c           |    3 +-
 arch/sparc/prom/misc_32.c          |    4 -
 47 files changed, 1117 insertions(+), 1059 deletions(-)
 create mode 100644 arch/sparc/kernel/leon_pmc.c
 delete mode 100644 arch/sparc/kernel/tick14.c

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2011-03-21  2:51 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2011-03-21  2:51 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


1) Flesh out some missing OF layer interfaces to fix allmodconfig
   build.

2) Hook up new system calls.

Please pull, thanks a lot!

The following changes since commit a44f99c7efdb88fa41128065c9a9445c19894e34:

  Merge branch 'trivial' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild-2.6 (2011-03-20 18:14:55 -0700)

are available in the git repository at:

  master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6.git master

David S. Miller (4):
      sparc: Provide NO_IRQ definition.
      sparc: Implement of_address_to_resource().
      sparc: Implement of_iomap().
      sparc: Add {open_by,name_to}_handle_at and clock_adjtime syscalls.

 arch/sparc/include/asm/irq_32.h      |    3 +++
 arch/sparc/include/asm/irq_64.h      |    2 ++
 arch/sparc/include/asm/unistd.h      |    5 ++++-
 arch/sparc/kernel/of_device_common.c |   27 +++++++++++++++++++++++++++
 arch/sparc/kernel/systbls_32.S       |    2 +-
 arch/sparc/kernel/systbls_64.S       |    4 ++--
 6 files changed, 39 insertions(+), 4 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2011-03-21  2:51 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2011-03-21  2:51 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


1) Flesh out some missing OF layer interfaces to fix allmodconfig
   build.

2) Hook up new system calls.

Please pull, thanks a lot!

The following changes since commit a44f99c7efdb88fa41128065c9a9445c19894e34:

  Merge branch 'trivial' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild-2.6 (2011-03-20 18:14:55 -0700)

are available in the git repository at:

  master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6.git master

David S. Miller (4):
      sparc: Provide NO_IRQ definition.
      sparc: Implement of_address_to_resource().
      sparc: Implement of_iomap().
      sparc: Add {open_by,name_to}_handle_at and clock_adjtime syscalls.

 arch/sparc/include/asm/irq_32.h      |    3 +++
 arch/sparc/include/asm/irq_64.h      |    2 ++
 arch/sparc/include/asm/unistd.h      |    5 ++++-
 arch/sparc/kernel/of_device_common.c |   27 +++++++++++++++++++++++++++
 arch/sparc/kernel/systbls_32.S       |    2 +-
 arch/sparc/kernel/systbls_64.S       |    4 ++--
 6 files changed, 39 insertions(+), 4 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2011-03-25 21:05 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2011-03-25 21:05 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Please pull to get this RTC probing bug fix.

Thanks!

The following changes since commit 40471856f2e38e9bfa8d605295e8234421110dd6:

  Merge branch 'nfs-for-2.6.39' of git://git.linux-nfs.org/projects/trondmy/nfs-2.6 (2011-03-25 10:03:28 -0700)

are available in the git repository at:

  master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6.git master

Kjetil Oftedal (1):
      sparc32: Fix multiple RTC detections on SUN4D

 arch/sparc/kernel/time_32.c |    4 ++++
 1 files changed, 4 insertions(+), 0 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2011-03-25 21:05 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2011-03-25 21:05 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Please pull to get this RTC probing bug fix.

Thanks!

The following changes since commit 40471856f2e38e9bfa8d605295e8234421110dd6:

  Merge branch 'nfs-for-2.6.39' of git://git.linux-nfs.org/projects/trondmy/nfs-2.6 (2011-03-25 10:03:28 -0700)

are available in the git repository at:

  master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6.git master

Kjetil Oftedal (1):
      sparc32: Fix multiple RTC detections on SUN4D

 arch/sparc/kernel/time_32.c |    4 ++++
 1 files changed, 4 insertions(+), 0 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2011-04-01  6:33 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2011-04-01  6:33 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


1) Fix section mismatch errors on sparc64.  These were all legitimate
   and were resulting in freed memory being referenced after boot.

2) Hook up sys_syncfs

3) apbuart LEON driver fixes from Daniel Hellstrom.

Please pull, thanks a lot!

The following changes since commit ecb78ab6f30106ab72a575a25b1cdfd1633b7ca2:

  Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6 (2011-03-30 12:22:15 -0700)

are available in the git repository at:

  master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6.git master

Daniel Hellstrom (2):
      sparc32, leon: APBUART driver must use archdata to get IRQ number
      sparc32,leon: Fixed APBUART frequency detection

David S. Miller (3):
      sparc: Hook up syncfs system call.
      sparc64: Fix section mis-match errors.
      apbuart: Depend upon sparc.

Tkhai Kirill (1):
      sparc32: Pass task_struct to schedule_tail() in ret_from_fork

 arch/sparc/include/asm/unistd.h |    3 ++-
 arch/sparc/kernel/auxio_64.c    |    2 +-
 arch/sparc/kernel/central.c     |    4 ++--
 arch/sparc/kernel/ds.c          |    2 +-
 arch/sparc/kernel/entry.S       |    2 +-
 arch/sparc/kernel/mdesc.c       |    2 +-
 arch/sparc/kernel/pci_fire.c    |    2 +-
 arch/sparc/kernel/pci_psycho.c  |    2 +-
 arch/sparc/kernel/pci_sabre.c   |    2 +-
 arch/sparc/kernel/pci_schizo.c  |    2 +-
 arch/sparc/kernel/pci_sun4v.c   |    2 +-
 arch/sparc/kernel/power.c       |    2 +-
 arch/sparc/kernel/systbls_32.S  |    2 +-
 arch/sparc/kernel/systbls_64.S  |    2 ++
 arch/sparc/kernel/time_64.c     |    6 +++---
 drivers/tty/serial/Kconfig      |    2 +-
 drivers/tty/serial/apbuart.c    |   34 +++++++++++-----------------------
 17 files changed, 32 insertions(+), 41 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2011-04-01  6:33 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2011-04-01  6:33 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


1) Fix section mismatch errors on sparc64.  These were all legitimate
   and were resulting in freed memory being referenced after boot.

2) Hook up sys_syncfs

3) apbuart LEON driver fixes from Daniel Hellstrom.

Please pull, thanks a lot!

The following changes since commit ecb78ab6f30106ab72a575a25b1cdfd1633b7ca2:

  Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6 (2011-03-30 12:22:15 -0700)

are available in the git repository at:

  master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6.git master

Daniel Hellstrom (2):
      sparc32, leon: APBUART driver must use archdata to get IRQ number
      sparc32,leon: Fixed APBUART frequency detection

David S. Miller (3):
      sparc: Hook up syncfs system call.
      sparc64: Fix section mis-match errors.
      apbuart: Depend upon sparc.

Tkhai Kirill (1):
      sparc32: Pass task_struct to schedule_tail() in ret_from_fork

 arch/sparc/include/asm/unistd.h |    3 ++-
 arch/sparc/kernel/auxio_64.c    |    2 +-
 arch/sparc/kernel/central.c     |    4 ++--
 arch/sparc/kernel/ds.c          |    2 +-
 arch/sparc/kernel/entry.S       |    2 +-
 arch/sparc/kernel/mdesc.c       |    2 +-
 arch/sparc/kernel/pci_fire.c    |    2 +-
 arch/sparc/kernel/pci_psycho.c  |    2 +-
 arch/sparc/kernel/pci_sabre.c   |    2 +-
 arch/sparc/kernel/pci_schizo.c  |    2 +-
 arch/sparc/kernel/pci_sun4v.c   |    2 +-
 arch/sparc/kernel/power.c       |    2 +-
 arch/sparc/kernel/systbls_32.S  |    2 +-
 arch/sparc/kernel/systbls_64.S  |    2 ++
 arch/sparc/kernel/time_64.c     |    6 +++---
 drivers/tty/serial/Kconfig      |    2 +-
 drivers/tty/serial/apbuart.c    |   34 +++++++++++-----------------------
 17 files changed, 32 insertions(+), 41 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2011-05-12  4:42 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2011-05-12  4:42 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Three sparc32 bug fixes here:

1) Correct unaligned pointer determination in sparc32 checksumming asm
   code, from Tkhai Kirill.

2) Sparc5 bootup busted because of incorrect CPU ID probing, fix from
   Sam Ravnborg.

3) Bad __init markings cause references to freed up memory after bootup,
   also from Sam Ravnborg.

Please pull, thanks a lot!

The following changes since commit 3568bd9720b4a775f28a718fcbb462ce2f386988:

  Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client (2011-05-11 19:13:34 -0700)

are available in the git repository at:

  master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6.git master

Sam Ravnborg (2):
      sparc32: fix section mismatch warnings in apc, pmc and time_32
      sparc32: fix sparcstation 5 boot

Tkhai Kirill (1):
      sparc32: Fixed unaligned memory copying in function __csum_partial_copy_sparc_generic

 arch/sparc/kernel/apc.c      |    2 +-
 arch/sparc/kernel/pmc.c      |    2 +-
 arch/sparc/kernel/smp_32.c   |   10 +++++++---
 arch/sparc/kernel/time_32.c  |    2 +-
 arch/sparc/lib/checksum_32.S |   12 +++++++++---
 5 files changed, 19 insertions(+), 9 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2011-05-12  4:42 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2011-05-12  4:42 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Three sparc32 bug fixes here:

1) Correct unaligned pointer determination in sparc32 checksumming asm
   code, from Tkhai Kirill.

2) Sparc5 bootup busted because of incorrect CPU ID probing, fix from
   Sam Ravnborg.

3) Bad __init markings cause references to freed up memory after bootup,
   also from Sam Ravnborg.

Please pull, thanks a lot!

The following changes since commit 3568bd9720b4a775f28a718fcbb462ce2f386988:

  Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client (2011-05-11 19:13:34 -0700)

are available in the git repository at:

  master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6.git master

Sam Ravnborg (2):
      sparc32: fix section mismatch warnings in apc, pmc and time_32
      sparc32: fix sparcstation 5 boot

Tkhai Kirill (1):
      sparc32: Fixed unaligned memory copying in function __csum_partial_copy_sparc_generic

 arch/sparc/kernel/apc.c      |    2 +-
 arch/sparc/kernel/pmc.c      |    2 +-
 arch/sparc/kernel/smp_32.c   |   10 +++++++---
 arch/sparc/kernel/time_32.c  |    2 +-
 arch/sparc/lib/checksum_32.S |   12 +++++++++---
 5 files changed, 19 insertions(+), 9 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2011-05-23  4:52 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2011-05-23  4:52 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Sparc32 enters the modern age thanks to Sam Ravnborg and
Daniel Hellstrom.

Sparc32 now supports genirq, and it now properly generates
IPIs.

Plus some LEON updates from Daniel Hellstrom as well.

Please pull, thanks a lot!

The following changes since commit 71a8638480eb8fb6cfabe2ee9ca3fbc6e3453a14:

  Merge branch 'viafb-next' of git://github.com/schandinat/linux-2.6 (2011-05-22 12:39:58 -0700)

are available in the git repository at:

  master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-next-2.6.git master

Daniel Hellstrom (17):
      sparc32, leon: must protect IRQ controller register with spinlock
      sparc32,leon: add support for extended interrupt controller
      sparc32,leon: per-cpu ticker use genirq per-cpu handler
      sparc32,leon: cleaned away code from the LEON2 days
      sparc32, leon: code cleanup of timer/IRQ controller initialization
      sparc32,leon: implement genirq CPU affinity
      sparc32: removed unused code, implemented by generic code
      sparc32: always define boot_cpu_id
      sparc32,leon: operate on boot-cpu IRQ controller registers
      sparc32,leon: don't rely on bootloader to mask IRQs
      sparc32,leon: added some SMP comments
      sparc32,leon: SMP power down implementation
      sparc32: implement SMP IPIs using the generic functions
      sparc32,leon: Implemented SMP IPIs for LEON CPU
      sparc32, sun4m: Implemented SMP IPIs support for SUN4M machines
      sparc32, sun4d: Implemented SMP IPIs support for SUN4D machines
      SCHED_TTWU_QUEUE is not longer needed since sparc32 now implements IPI

David S. Miller (2):
      Merge branch 'master' of master.kernel.org:/.../davem/sparc-2.6
      Merge commit '317f394160e9beb97d19a84c39b7e5eb3d7815a8'

Jan Andersson (1):
      sparc: add {read,write}*_be routines

KOSAKI Motohiro (1):
      sparc: convert old cpumask API into new one

Kristoffer Glembo (1):
      sparc32,leon: Remove unnecessary page_address calls in LEON DMA API.

Sam Ravnborg (8):
      sparc32,sun4d: rename sbus_tid to board_to_cpu in irq support
      sparc32: cleanup code for pci init
      sparc32: genirq support
      sparc: consolidate show_cpuinfo in cpu.c
      sparc32: probe for cpu info only during startup
      sparc32: always register a PROM based early console
      sparc32: avoid build warning at mm/percpu.c:1647
      sparc32: fix build, fix missing cpu_relax declaration

 arch/alpha/kernel/smp.c              |    3 +-
 arch/arm/kernel/smp.c                |    5 +-
 arch/blackfin/mach-common/smp.c      |    3 +
 arch/cris/arch-v32/kernel/smp.c      |   13 +-
 arch/ia64/kernel/irq_ia64.c          |    2 +
 arch/ia64/xen/irq_xen.c              |   10 +-
 arch/m32r/kernel/smp.c               |    4 +-
 arch/mips/cavium-octeon/smp.c        |    2 +
 arch/mips/kernel/smtc.c              |    2 +-
 arch/mips/mti-malta/malta-int.c      |    2 +
 arch/mips/pmc-sierra/yosemite/smp.c  |    4 +
 arch/mips/sgi-ip27/ip27-irq.c        |    2 +
 arch/mips/sibyte/bcm1480/smp.c       |    7 +-
 arch/mips/sibyte/sb1250/smp.c        |    7 +-
 arch/mn10300/kernel/smp.c            |    5 +-
 arch/parisc/kernel/smp.c             |    5 +-
 arch/powerpc/kernel/smp.c            |    4 +-
 arch/s390/kernel/smp.c               |    6 +-
 arch/sh/kernel/smp.c                 |    2 +
 arch/sparc/Kconfig                   |    7 +-
 arch/sparc/include/asm/cpudata_32.h  |    5 +
 arch/sparc/include/asm/floppy_32.h   |   40 ++-
 arch/sparc/include/asm/io.h          |   13 +
 arch/sparc/include/asm/irq_32.h      |    6 +-
 arch/sparc/include/asm/leon.h        |   41 +--
 arch/sparc/include/asm/pcic.h        |   12 +-
 arch/sparc/include/asm/pgtable_32.h  |    6 +-
 arch/sparc/include/asm/pgtable_64.h  |    3 +
 arch/sparc/include/asm/setup.h       |   12 +
 arch/sparc/include/asm/smp_32.h      |   37 +-
 arch/sparc/include/asm/smp_64.h      |    4 +
 arch/sparc/include/asm/spinlock_32.h |    1 +
 arch/sparc/include/asm/system_32.h   |    5 -
 arch/sparc/include/asm/system_64.h   |    4 -
 arch/sparc/include/asm/winmacro.h    |    9 +
 arch/sparc/kernel/Makefile           |    4 -
 arch/sparc/kernel/cpu.c              |  139 +++++++-
 arch/sparc/kernel/cpumap.c           |    4 +-
 arch/sparc/kernel/devices.c          |    4 +-
 arch/sparc/kernel/ds.c               |   14 +-
 arch/sparc/kernel/entry.S            |   41 ++-
 arch/sparc/kernel/head_32.S          |   51 ++--
 arch/sparc/kernel/ioport.c           |   42 +--
 arch/sparc/kernel/irq.h              |   51 ++--
 arch/sparc/kernel/irq_32.c           |  513 +++++++---------------------
 arch/sparc/kernel/irq_64.c           |    6 +-
 arch/sparc/kernel/kernel.h           |    5 +-
 arch/sparc/kernel/leon_kernel.c      |  365 +++++++++++++-------
 arch/sparc/kernel/leon_smp.c         |  148 +++++++--
 arch/sparc/kernel/mdesc.c            |    2 +-
 arch/sparc/kernel/of_device_64.c     |    3 +-
 arch/sparc/kernel/pci_msi.c          |    3 +-
 arch/sparc/kernel/pcic.c             |   83 +++--
 arch/sparc/kernel/perf_event.c       |    1 +
 arch/sparc/kernel/process_32.c       |   12 +-
 arch/sparc/kernel/prom_32.c          |    1 -
 arch/sparc/kernel/setup_32.c         |   87 +----
 arch/sparc/kernel/setup_64.c         |   78 -----
 arch/sparc/kernel/smp_32.c           |  105 ++++--
 arch/sparc/kernel/smp_64.c           |   59 ++--
 arch/sparc/kernel/sun4c_irq.c        |  150 +++++----
 arch/sparc/kernel/sun4d_irq.c        |  494 ++++++++++-----------------
 arch/sparc/kernel/sun4d_smp.c        |   93 +++++-
 arch/sparc/kernel/sun4m_irq.c        |  179 ++++++-----
 arch/sparc/kernel/sun4m_smp.c        |   51 ++-
 arch/sparc/kernel/sysfs.c            |    3 +-
 arch/sparc/kernel/time_32.c          |   10 +-
 arch/sparc/kernel/us2e_cpufreq.c     |    4 +-
 arch/sparc/kernel/us3_cpufreq.c      |    4 +-
 arch/sparc/lib/Makefile              |    1 -
 arch/sparc/lib/rwsem_32.S            |  204 -----------
 arch/sparc/mm/init_64.c              |   14 +-
 arch/tile/kernel/smp.c               |    6 +-
 arch/um/kernel/smp.c                 |    2 +-
 arch/x86/kernel/smp.c                |    5 +-
 arch/x86/xen/smp.c                   |    5 +-
 include/linux/mutex.h                |    2 +-
 include/linux/sched.h                |   24 +-
 kernel/mutex-debug.c                 |    2 +-
 kernel/mutex-debug.h                 |    2 +-
 kernel/mutex.c                       |    2 +-
 kernel/mutex.h                       |    2 +-
 kernel/sched.c                       |  627 +++++++++++++++++++---------------
 kernel/sched_debug.c                 |    2 +-
 kernel/sched_fair.c                  |   28 ++-
 kernel/sched_features.h              |    6 +
 kernel/sched_idletask.c              |    2 +-
 kernel/sched_rt.c                    |   54 ++--
 kernel/sched_stoptask.c              |    5 +-
 89 files changed, 2046 insertions(+), 2051 deletions(-)
 delete mode 100644 arch/sparc/lib/rwsem_32.S

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2011-05-23  4:52 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2011-05-23  4:52 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Sparc32 enters the modern age thanks to Sam Ravnborg and
Daniel Hellstrom.

Sparc32 now supports genirq, and it now properly generates
IPIs.

Plus some LEON updates from Daniel Hellstrom as well.

Please pull, thanks a lot!

The following changes since commit 71a8638480eb8fb6cfabe2ee9ca3fbc6e3453a14:

  Merge branch 'viafb-next' of git://github.com/schandinat/linux-2.6 (2011-05-22 12:39:58 -0700)

are available in the git repository at:

  master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-next-2.6.git master

Daniel Hellstrom (17):
      sparc32, leon: must protect IRQ controller register with spinlock
      sparc32,leon: add support for extended interrupt controller
      sparc32,leon: per-cpu ticker use genirq per-cpu handler
      sparc32,leon: cleaned away code from the LEON2 days
      sparc32, leon: code cleanup of timer/IRQ controller initialization
      sparc32,leon: implement genirq CPU affinity
      sparc32: removed unused code, implemented by generic code
      sparc32: always define boot_cpu_id
      sparc32,leon: operate on boot-cpu IRQ controller registers
      sparc32,leon: don't rely on bootloader to mask IRQs
      sparc32,leon: added some SMP comments
      sparc32,leon: SMP power down implementation
      sparc32: implement SMP IPIs using the generic functions
      sparc32,leon: Implemented SMP IPIs for LEON CPU
      sparc32, sun4m: Implemented SMP IPIs support for SUN4M machines
      sparc32, sun4d: Implemented SMP IPIs support for SUN4D machines
      SCHED_TTWU_QUEUE is not longer needed since sparc32 now implements IPI

David S. Miller (2):
      Merge branch 'master' of master.kernel.org:/.../davem/sparc-2.6
      Merge commit '317f394160e9beb97d19a84c39b7e5eb3d7815a8'

Jan Andersson (1):
      sparc: add {read,write}*_be routines

KOSAKI Motohiro (1):
      sparc: convert old cpumask API into new one

Kristoffer Glembo (1):
      sparc32,leon: Remove unnecessary page_address calls in LEON DMA API.

Sam Ravnborg (8):
      sparc32,sun4d: rename sbus_tid to board_to_cpu in irq support
      sparc32: cleanup code for pci init
      sparc32: genirq support
      sparc: consolidate show_cpuinfo in cpu.c
      sparc32: probe for cpu info only during startup
      sparc32: always register a PROM based early console
      sparc32: avoid build warning at mm/percpu.c:1647
      sparc32: fix build, fix missing cpu_relax declaration

 arch/alpha/kernel/smp.c              |    3 +-
 arch/arm/kernel/smp.c                |    5 +-
 arch/blackfin/mach-common/smp.c      |    3 +
 arch/cris/arch-v32/kernel/smp.c      |   13 +-
 arch/ia64/kernel/irq_ia64.c          |    2 +
 arch/ia64/xen/irq_xen.c              |   10 +-
 arch/m32r/kernel/smp.c               |    4 +-
 arch/mips/cavium-octeon/smp.c        |    2 +
 arch/mips/kernel/smtc.c              |    2 +-
 arch/mips/mti-malta/malta-int.c      |    2 +
 arch/mips/pmc-sierra/yosemite/smp.c  |    4 +
 arch/mips/sgi-ip27/ip27-irq.c        |    2 +
 arch/mips/sibyte/bcm1480/smp.c       |    7 +-
 arch/mips/sibyte/sb1250/smp.c        |    7 +-
 arch/mn10300/kernel/smp.c            |    5 +-
 arch/parisc/kernel/smp.c             |    5 +-
 arch/powerpc/kernel/smp.c            |    4 +-
 arch/s390/kernel/smp.c               |    6 +-
 arch/sh/kernel/smp.c                 |    2 +
 arch/sparc/Kconfig                   |    7 +-
 arch/sparc/include/asm/cpudata_32.h  |    5 +
 arch/sparc/include/asm/floppy_32.h   |   40 ++-
 arch/sparc/include/asm/io.h          |   13 +
 arch/sparc/include/asm/irq_32.h      |    6 +-
 arch/sparc/include/asm/leon.h        |   41 +--
 arch/sparc/include/asm/pcic.h        |   12 +-
 arch/sparc/include/asm/pgtable_32.h  |    6 +-
 arch/sparc/include/asm/pgtable_64.h  |    3 +
 arch/sparc/include/asm/setup.h       |   12 +
 arch/sparc/include/asm/smp_32.h      |   37 +-
 arch/sparc/include/asm/smp_64.h      |    4 +
 arch/sparc/include/asm/spinlock_32.h |    1 +
 arch/sparc/include/asm/system_32.h   |    5 -
 arch/sparc/include/asm/system_64.h   |    4 -
 arch/sparc/include/asm/winmacro.h    |    9 +
 arch/sparc/kernel/Makefile           |    4 -
 arch/sparc/kernel/cpu.c              |  139 +++++++-
 arch/sparc/kernel/cpumap.c           |    4 +-
 arch/sparc/kernel/devices.c          |    4 +-
 arch/sparc/kernel/ds.c               |   14 +-
 arch/sparc/kernel/entry.S            |   41 ++-
 arch/sparc/kernel/head_32.S          |   51 ++--
 arch/sparc/kernel/ioport.c           |   42 +--
 arch/sparc/kernel/irq.h              |   51 ++--
 arch/sparc/kernel/irq_32.c           |  513 +++++++---------------------
 arch/sparc/kernel/irq_64.c           |    6 +-
 arch/sparc/kernel/kernel.h           |    5 +-
 arch/sparc/kernel/leon_kernel.c      |  365 +++++++++++++-------
 arch/sparc/kernel/leon_smp.c         |  148 +++++++--
 arch/sparc/kernel/mdesc.c            |    2 +-
 arch/sparc/kernel/of_device_64.c     |    3 +-
 arch/sparc/kernel/pci_msi.c          |    3 +-
 arch/sparc/kernel/pcic.c             |   83 +++--
 arch/sparc/kernel/perf_event.c       |    1 +
 arch/sparc/kernel/process_32.c       |   12 +-
 arch/sparc/kernel/prom_32.c          |    1 -
 arch/sparc/kernel/setup_32.c         |   87 +----
 arch/sparc/kernel/setup_64.c         |   78 -----
 arch/sparc/kernel/smp_32.c           |  105 ++++--
 arch/sparc/kernel/smp_64.c           |   59 ++--
 arch/sparc/kernel/sun4c_irq.c        |  150 +++++----
 arch/sparc/kernel/sun4d_irq.c        |  494 ++++++++++-----------------
 arch/sparc/kernel/sun4d_smp.c        |   93 +++++-
 arch/sparc/kernel/sun4m_irq.c        |  179 ++++++-----
 arch/sparc/kernel/sun4m_smp.c        |   51 ++-
 arch/sparc/kernel/sysfs.c            |    3 +-
 arch/sparc/kernel/time_32.c          |   10 +-
 arch/sparc/kernel/us2e_cpufreq.c     |    4 +-
 arch/sparc/kernel/us3_cpufreq.c      |    4 +-
 arch/sparc/lib/Makefile              |    1 -
 arch/sparc/lib/rwsem_32.S            |  204 -----------
 arch/sparc/mm/init_64.c              |   14 +-
 arch/tile/kernel/smp.c               |    6 +-
 arch/um/kernel/smp.c                 |    2 +-
 arch/x86/kernel/smp.c                |    5 +-
 arch/x86/xen/smp.c                   |    5 +-
 include/linux/mutex.h                |    2 +-
 include/linux/sched.h                |   24 +-
 kernel/mutex-debug.c                 |    2 +-
 kernel/mutex-debug.h                 |    2 +-
 kernel/mutex.c                       |    2 +-
 kernel/mutex.h                       |    2 +-
 kernel/sched.c                       |  627 +++++++++++++++++++---------------
 kernel/sched_debug.c                 |    2 +-
 kernel/sched_fair.c                  |   28 ++-
 kernel/sched_features.h              |    6 +
 kernel/sched_idletask.c              |    2 +-
 kernel/sched_rt.c                    |   54 ++--
 kernel/sched_stoptask.c              |    5 +-
 89 files changed, 2046 insertions(+), 2051 deletions(-)
 delete mode 100644 arch/sparc/lib/rwsem_32.S

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2011-06-09 23:14 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2011-06-09 23:14 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


1) Fix sun4d regressions added by genirq conversion, from
   Kjetil Oftedal.

2) In the fix for sparc32 IPIs, the traphandler tests interrupt
   numbers with an off-by-one errors.  From Daniel Hellstrom.

3) Reinstate LEON irq intialization, mistekenly removed during
   genirc conversion.  From Daniel Hellstrom.

4) Add PCI support for LEON.  Also from Daniel Hellstrom.

Please pull, thanks a lot!

The following changes since commit dfb863a714b81848504d3b73ca0ecae90b91cbc0:

  Merge branch 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc (2011-06-09 13:50:25 -0700)

are available in the git repository at:

  master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6.git master

Daniel Hellstrom (5):
      sparc32: added CONFIG_PCIC_PCI Kconfig setting
      sparc32,leon: added LEON-common low-level PCI routines
      sparc32,leon: add GRPCI2 PCI Host driver
      sparc32, sun4m: bugfix in SMP IPI traphandler
      sparc32, leon: bugfix in LEON SMP interrupt init

David S. Miller (1):
      sparc: PCIC_PCI needs SPARC32 dependency

Geert Uytterhoeven (1):
      sparc: Do not select GENERIC_HARDIRQS_NO_DEPRECATED

Joe Perches (1):
      sparc: Remove unnecessary semicolons

oftedal (3):
      Restructure sun4d_build_device_irq so that timer interrupts can be allocated
      Do not skip interrupt sources in sun4d interrupt handler and acknowledge interrupts correctly
      Add support for allocating irqs for bootbus devices

 arch/sparc/Kconfig                  |   18 +-
 arch/sparc/include/asm/floppy_32.h  |    8 +-
 arch/sparc/include/asm/floppy_64.h  |    4 +-
 arch/sparc/include/asm/leon.h       |    3 +
 arch/sparc/include/asm/leon_pci.h   |   21 +
 arch/sparc/include/asm/pci_32.h     |   24 +
 arch/sparc/include/asm/pcic.h       |    2 +-
 arch/sparc/include/asm/system_32.h  |    2 +-
 arch/sparc/include/asm/system_64.h  |    2 +-
 arch/sparc/kernel/Makefile          |    4 +-
 arch/sparc/kernel/apc.c             |    2 +-
 arch/sparc/kernel/auxio_32.c        |    2 +-
 arch/sparc/kernel/chmc.c            |    2 +-
 arch/sparc/kernel/entry.S           |    8 +-
 arch/sparc/kernel/leon_kernel.c     |   31 ++
 arch/sparc/kernel/leon_pci.c        |  253 ++++++++++
 arch/sparc/kernel/leon_pci_grpci2.c |  897 +++++++++++++++++++++++++++++++++++
 arch/sparc/kernel/module.c          |    2 +-
 arch/sparc/kernel/pci_common.c      |    4 +-
 arch/sparc/kernel/pci_schizo.c      |    6 +-
 arch/sparc/kernel/prom_irqtrans.c   |    2 +-
 arch/sparc/kernel/psycho_common.c   |    2 +-
 arch/sparc/kernel/sbus.c            |    4 +-
 arch/sparc/kernel/setup_32.c        |    2 +-
 arch/sparc/kernel/setup_64.c        |    2 +-
 arch/sparc/kernel/smp_32.c          |    6 +-
 arch/sparc/kernel/sun4d_irq.c       |  126 ++++--
 arch/sparc/kernel/sys_sparc32.c     |    2 +-
 arch/sparc/kernel/sys_sparc_64.c    |    6 +-
 arch/sparc/kernel/time_64.c         |    2 +-
 arch/sparc/kernel/traps_64.c        |    2 +-
 arch/sparc/kernel/unaligned_64.c    |    6 +-
 arch/sparc/kernel/us2e_cpufreq.c    |    6 +-
 arch/sparc/kernel/us3_cpufreq.c     |    4 +-
 arch/sparc/kernel/viohs.c           |    2 +-
 arch/sparc/kernel/visemul.c         |   14 +-
 arch/sparc/mm/fault_32.c            |    2 +-
 arch/sparc/mm/init_32.c             |    2 +-
 arch/sparc/mm/init_64.c             |    6 +-
 arch/sparc/mm/srmmu.c               |    4 +-
 arch/sparc/mm/sun4c.c               |    8 +-
 arch/sparc/mm/tsb.c                 |    6 +-
 arch/sparc/prom/console_32.c        |    2 +-
 arch/sparc/prom/init_32.c           |    2 +-
 arch/sparc/prom/mp.c                |    2 +-
 drivers/pci/Makefile                |    1 +
 46 files changed, 1401 insertions(+), 117 deletions(-)
 create mode 100644 arch/sparc/include/asm/leon_pci.h
 create mode 100644 arch/sparc/kernel/leon_pci.c
 create mode 100644 arch/sparc/kernel/leon_pci_grpci2.c

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2011-06-09 23:14 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2011-06-09 23:14 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


1) Fix sun4d regressions added by genirq conversion, from
   Kjetil Oftedal.

2) In the fix for sparc32 IPIs, the traphandler tests interrupt
   numbers with an off-by-one errors.  From Daniel Hellstrom.

3) Reinstate LEON irq intialization, mistekenly removed during
   genirc conversion.  From Daniel Hellstrom.

4) Add PCI support for LEON.  Also from Daniel Hellstrom.

Please pull, thanks a lot!

The following changes since commit dfb863a714b81848504d3b73ca0ecae90b91cbc0:

  Merge branch 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc (2011-06-09 13:50:25 -0700)

are available in the git repository at:

  master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6.git master

Daniel Hellstrom (5):
      sparc32: added CONFIG_PCIC_PCI Kconfig setting
      sparc32,leon: added LEON-common low-level PCI routines
      sparc32,leon: add GRPCI2 PCI Host driver
      sparc32, sun4m: bugfix in SMP IPI traphandler
      sparc32, leon: bugfix in LEON SMP interrupt init

David S. Miller (1):
      sparc: PCIC_PCI needs SPARC32 dependency

Geert Uytterhoeven (1):
      sparc: Do not select GENERIC_HARDIRQS_NO_DEPRECATED

Joe Perches (1):
      sparc: Remove unnecessary semicolons

oftedal (3):
      Restructure sun4d_build_device_irq so that timer interrupts can be allocated
      Do not skip interrupt sources in sun4d interrupt handler and acknowledge interrupts correctly
      Add support for allocating irqs for bootbus devices

 arch/sparc/Kconfig                  |   18 +-
 arch/sparc/include/asm/floppy_32.h  |    8 +-
 arch/sparc/include/asm/floppy_64.h  |    4 +-
 arch/sparc/include/asm/leon.h       |    3 +
 arch/sparc/include/asm/leon_pci.h   |   21 +
 arch/sparc/include/asm/pci_32.h     |   24 +
 arch/sparc/include/asm/pcic.h       |    2 +-
 arch/sparc/include/asm/system_32.h  |    2 +-
 arch/sparc/include/asm/system_64.h  |    2 +-
 arch/sparc/kernel/Makefile          |    4 +-
 arch/sparc/kernel/apc.c             |    2 +-
 arch/sparc/kernel/auxio_32.c        |    2 +-
 arch/sparc/kernel/chmc.c            |    2 +-
 arch/sparc/kernel/entry.S           |    8 +-
 arch/sparc/kernel/leon_kernel.c     |   31 ++
 arch/sparc/kernel/leon_pci.c        |  253 ++++++++++
 arch/sparc/kernel/leon_pci_grpci2.c |  897 +++++++++++++++++++++++++++++++++++
 arch/sparc/kernel/module.c          |    2 +-
 arch/sparc/kernel/pci_common.c      |    4 +-
 arch/sparc/kernel/pci_schizo.c      |    6 +-
 arch/sparc/kernel/prom_irqtrans.c   |    2 +-
 arch/sparc/kernel/psycho_common.c   |    2 +-
 arch/sparc/kernel/sbus.c            |    4 +-
 arch/sparc/kernel/setup_32.c        |    2 +-
 arch/sparc/kernel/setup_64.c        |    2 +-
 arch/sparc/kernel/smp_32.c          |    6 +-
 arch/sparc/kernel/sun4d_irq.c       |  126 ++++--
 arch/sparc/kernel/sys_sparc32.c     |    2 +-
 arch/sparc/kernel/sys_sparc_64.c    |    6 +-
 arch/sparc/kernel/time_64.c         |    2 +-
 arch/sparc/kernel/traps_64.c        |    2 +-
 arch/sparc/kernel/unaligned_64.c    |    6 +-
 arch/sparc/kernel/us2e_cpufreq.c    |    6 +-
 arch/sparc/kernel/us3_cpufreq.c     |    4 +-
 arch/sparc/kernel/viohs.c           |    2 +-
 arch/sparc/kernel/visemul.c         |   14 +-
 arch/sparc/mm/fault_32.c            |    2 +-
 arch/sparc/mm/init_32.c             |    2 +-
 arch/sparc/mm/init_64.c             |    6 +-
 arch/sparc/mm/srmmu.c               |    4 +-
 arch/sparc/mm/sun4c.c               |    8 +-
 arch/sparc/mm/tsb.c                 |    6 +-
 arch/sparc/prom/console_32.c        |    2 +-
 arch/sparc/prom/init_32.c           |    2 +-
 arch/sparc/prom/mp.c                |    2 +-
 drivers/pci/Makefile                |    1 +
 46 files changed, 1401 insertions(+), 117 deletions(-)
 create mode 100644 arch/sparc/include/asm/leon_pci.h
 create mode 100644 arch/sparc/kernel/leon_pci.c
 create mode 100644 arch/sparc/kernel/leon_pci_grpci2.c

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2011-07-16 17:48 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2011-07-16 17:48 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Please pull, to get these Sparc bug fixes.

Thanks!

The following changes since commit 1765a367a3b5d5e9692949b0c5ec933eff2c0701:

  Merge branch 'gpio/merge' of git://git.secretlab.ca/git/linux-2.6 (2011-07-15 18:03:30 -0700)

are available in the git repository at:

  master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6.git master

Matthias Rosenfelder (1):
      sparc32,leon: Added __init declaration to leon_flush_needed()

Steven Rostedt (1):
      sparc/irqs: Do not trace arch_local_{*,irq_*} functions

Will Simoneau (1):
      sparc: sun4m SMP: fix wrong shift instruction in IPI handler

 arch/sparc/include/asm/irqflags_32.h |    8 ++++----
 arch/sparc/include/asm/irqflags_64.h |   14 +++++++-------
 arch/sparc/kernel/entry.S            |    2 +-
 arch/sparc/mm/leon_mm.c              |    2 +-
 4 files changed, 13 insertions(+), 13 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2011-07-16 17:48 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2011-07-16 17:48 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Please pull, to get these Sparc bug fixes.

Thanks!

The following changes since commit 1765a367a3b5d5e9692949b0c5ec933eff2c0701:

  Merge branch 'gpio/merge' of git://git.secretlab.ca/git/linux-2.6 (2011-07-15 18:03:30 -0700)

are available in the git repository at:

  master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6.git master

Matthias Rosenfelder (1):
      sparc32,leon: Added __init declaration to leon_flush_needed()

Steven Rostedt (1):
      sparc/irqs: Do not trace arch_local_{*,irq_*} functions

Will Simoneau (1):
      sparc: sun4m SMP: fix wrong shift instruction in IPI handler

 arch/sparc/include/asm/irqflags_32.h |    8 ++++----
 arch/sparc/include/asm/irqflags_64.h |   14 +++++++-------
 arch/sparc/kernel/entry.S            |    2 +-
 arch/sparc/mm/leon_mm.c              |    2 +-
 4 files changed, 13 insertions(+), 13 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2011-07-28  8:46 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2011-07-28  8:46 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Just enablement for Niagara-T3 cpus now that I have one to play with.

Please pull, thanks a lot.

The following changes since commit 95b6886526bb510b8370b625a49bc0ab3b8ff10f:

  Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/security-testing-2.6 (2011-07-27 19:26:38 -0700)

are available in the git repository at:

  master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc.git master

David S. Miller (6):
      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.
      n2rng: Attach on Niagara-T3.
      n2_crypto: Attach on Niagara-T3.

 arch/sparc/include/asm/elf_64.h     |    6 ++++--
 arch/sparc/include/asm/hypervisor.h |    1 +
 arch/sparc/include/asm/spitfire.h   |    1 +
 arch/sparc/include/asm/xor_64.h     |    3 ++-
 arch/sparc/kernel/cpu.c             |    7 +++++++
 arch/sparc/kernel/cpumap.c          |    1 +
 arch/sparc/kernel/head_64.S         |   31 +++++++++++++++++++++++++++++++
 arch/sparc/kernel/hvapi.c           |    1 +
 arch/sparc/kernel/pcr.c             |   11 +++++++++--
 arch/sparc/kernel/perf_event.c      |    3 ++-
 drivers/char/hw_random/n2-drv.c     |   29 +++++++++++++++++------------
 drivers/char/hw_random/n2rng.h      |    2 +-
 drivers/crypto/n2_core.c            |   33 ++++++++++++++++++---------------
 13 files changed, 95 insertions(+), 34 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2011-07-28  8:46 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2011-07-28  8:46 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Just enablement for Niagara-T3 cpus now that I have one to play with.

Please pull, thanks a lot.

The following changes since commit 95b6886526bb510b8370b625a49bc0ab3b8ff10f:

  Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/security-testing-2.6 (2011-07-27 19:26:38 -0700)

are available in the git repository at:

  master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc.git master

David S. Miller (6):
      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.
      n2rng: Attach on Niagara-T3.
      n2_crypto: Attach on Niagara-T3.

 arch/sparc/include/asm/elf_64.h     |    6 ++++--
 arch/sparc/include/asm/hypervisor.h |    1 +
 arch/sparc/include/asm/spitfire.h   |    1 +
 arch/sparc/include/asm/xor_64.h     |    3 ++-
 arch/sparc/kernel/cpu.c             |    7 +++++++
 arch/sparc/kernel/cpumap.c          |    1 +
 arch/sparc/kernel/head_64.S         |   31 +++++++++++++++++++++++++++++++
 arch/sparc/kernel/hvapi.c           |    1 +
 arch/sparc/kernel/pcr.c             |   11 +++++++++--
 arch/sparc/kernel/perf_event.c      |    3 ++-
 drivers/char/hw_random/n2-drv.c     |   29 +++++++++++++++++------------
 drivers/char/hw_random/n2rng.h      |    2 +-
 drivers/crypto/n2_core.c            |   33 ++++++++++++++++++---------------
 13 files changed, 95 insertions(+), 34 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] Sparc
  2011-07-28  8:46 ` David Miller
@ 2011-07-28 10:08   ` Anca Emanuel
  -1 siblings, 0 replies; 548+ messages in thread
From: Anca Emanuel @ 2011-07-28 10:08 UTC (permalink / raw)
  To: David Miller; +Cc: torvalds, akpm, sparclinux, linux-kernel

https://plus.google.com/101384639386588513837/posts/gMTHsvprF3L

Congratulations.

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] Sparc
@ 2011-07-28 10:08   ` Anca Emanuel
  0 siblings, 0 replies; 548+ messages in thread
From: Anca Emanuel @ 2011-07-28 10:08 UTC (permalink / raw)
  To: David Miller; +Cc: torvalds, akpm, sparclinux, linux-kernel

https://plus.google.com/101384639386588513837/posts/gMTHsvprF3L

Congratulations.

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2011-08-05 11:25 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2011-08-05 11:25 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Just a few more Niagara T3 refinements as well as several
bug fixes, including:

1) On sun4v we need to access the TSB using physical addresses otherwise
   we can read/write different data than what the hypervisor and/or
   the hardware TSB walker does.

2) sparc32 __atomic_add_unless return value needs correction, from
   Josip Rodin.

3) Sun4v cpu mondo queue sizes could be way too large, and we'd fail
   to allocate them because the page allocation order would exceed
   MAX_ORDER.  Set a sane cap to fix the problem.

4) Sam Ravnborg's patch to use kbuild-generic.

5) Use the hypervisor interface to set the 'reboot-cmd' variable so
   that rebooting into the correct image works even if the service
   processor is dead or in degraded mode.

Please pull, thanks a lot!

The following changes since commit 140d0b2108faebc77c6523296e211e509cb9f5f9:

  Do 'shm_init_ns()' in an early pure_initcall (2011-08-04 19:35:59 -1000)

are available in the git repository at:
  master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc.git master

David S. Miller (9):
      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.

Josip Rodin (1):
      sparc: Fix __atomic_add_unless() return value.

Sam Ravnborg (1):
      sparc: use kbuild-generic support for true asm-generic header files

 arch/sparc/include/asm/Kbuild       |    5 +
 arch/sparc/include/asm/bitops_64.h  |   49 ++--------
 arch/sparc/include/asm/div64.h      |    1 -
 arch/sparc/include/asm/elf_64.h     |   65 ++++++-------
 arch/sparc/include/asm/hypervisor.h |   13 +++
 arch/sparc/include/asm/irq_regs.h   |    1 -
 arch/sparc/include/asm/local.h      |    6 -
 arch/sparc/include/asm/local64.h    |    1 -
 arch/sparc/include/asm/tsb.h        |   51 +++++-----
 arch/sparc/kernel/cpu.c             |    1 +
 arch/sparc/kernel/ds.c              |   30 +++++-
 arch/sparc/kernel/entry.h           |   14 +++
 arch/sparc/kernel/head_64.S         |    2 +-
 arch/sparc/kernel/hvapi.c           |    6 +
 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/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/atomic32.c           |    2 +-
 arch/sparc/lib/ffs.S                |   84 ++++++++++++++++
 arch/sparc/lib/hweight.S            |   51 ++++++++++
 arch/sparc/mm/init_64.c             |   40 +++++++-
 30 files changed, 661 insertions(+), 258 deletions(-)
 delete mode 100644 arch/sparc/include/asm/div64.h
 delete mode 100644 arch/sparc/include/asm/irq_regs.h
 delete mode 100644 arch/sparc/include/asm/local.h
 delete mode 100644 arch/sparc/include/asm/local64.h
 delete mode 100644 arch/sparc/lib/NG2page.S
 create mode 100644 arch/sparc/lib/ffs.S
 create mode 100644 arch/sparc/lib/hweight.S

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2011-08-05 11:25 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2011-08-05 11:25 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Just a few more Niagara T3 refinements as well as several
bug fixes, including:

1) On sun4v we need to access the TSB using physical addresses otherwise
   we can read/write different data than what the hypervisor and/or
   the hardware TSB walker does.

2) sparc32 __atomic_add_unless return value needs correction, from
   Josip Rodin.

3) Sun4v cpu mondo queue sizes could be way too large, and we'd fail
   to allocate them because the page allocation order would exceed
   MAX_ORDER.  Set a sane cap to fix the problem.

4) Sam Ravnborg's patch to use kbuild-generic.

5) Use the hypervisor interface to set the 'reboot-cmd' variable so
   that rebooting into the correct image works even if the service
   processor is dead or in degraded mode.

Please pull, thanks a lot!

The following changes since commit 140d0b2108faebc77c6523296e211e509cb9f5f9:

  Do 'shm_init_ns()' in an early pure_initcall (2011-08-04 19:35:59 -1000)

are available in the git repository at:
  master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc.git master

David S. Miller (9):
      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.

Josip Rodin (1):
      sparc: Fix __atomic_add_unless() return value.

Sam Ravnborg (1):
      sparc: use kbuild-generic support for true asm-generic header files

 arch/sparc/include/asm/Kbuild       |    5 +
 arch/sparc/include/asm/bitops_64.h  |   49 ++--------
 arch/sparc/include/asm/div64.h      |    1 -
 arch/sparc/include/asm/elf_64.h     |   65 ++++++-------
 arch/sparc/include/asm/hypervisor.h |   13 +++
 arch/sparc/include/asm/irq_regs.h   |    1 -
 arch/sparc/include/asm/local.h      |    6 -
 arch/sparc/include/asm/local64.h    |    1 -
 arch/sparc/include/asm/tsb.h        |   51 +++++-----
 arch/sparc/kernel/cpu.c             |    1 +
 arch/sparc/kernel/ds.c              |   30 +++++-
 arch/sparc/kernel/entry.h           |   14 +++
 arch/sparc/kernel/head_64.S         |    2 +-
 arch/sparc/kernel/hvapi.c           |    6 +
 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/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/atomic32.c           |    2 +-
 arch/sparc/lib/ffs.S                |   84 ++++++++++++++++
 arch/sparc/lib/hweight.S            |   51 ++++++++++
 arch/sparc/mm/init_64.c             |   40 +++++++-
 30 files changed, 661 insertions(+), 258 deletions(-)
 delete mode 100644 arch/sparc/include/asm/div64.h
 delete mode 100644 arch/sparc/include/asm/irq_regs.h
 delete mode 100644 arch/sparc/include/asm/local.h
 delete mode 100644 arch/sparc/include/asm/local64.h
 delete mode 100644 arch/sparc/lib/NG2page.S
 create mode 100644 arch/sparc/lib/ffs.S
 create mode 100644 arch/sparc/lib/hweight.S

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2011-08-07 22:48 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2011-08-07 22:48 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Please pull to get this build fix, thanks!

The following changes since commit 4d4487140d34c1b9b321889d2d209321b0da6643:

  arm: remove "optimized" SHA1 routines (2011-08-07 14:07:03 -0700)

are available in the git repository at:
  master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc.git master

David S. Miller (1):
      sparc: Fix build with DEBUG_PAGEALLOC enabled.

 arch/sparc/mm/init_64.c |    6 ++++--
 1 files changed, 4 insertions(+), 2 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2011-08-07 22:48 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2011-08-07 22:48 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Please pull to get this build fix, thanks!

The following changes since commit 4d4487140d34c1b9b321889d2d209321b0da6643:

  arm: remove "optimized" SHA1 routines (2011-08-07 14:07:03 -0700)

are available in the git repository at:
  master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc.git master

David S. Miller (1):
      sparc: Fix build with DEBUG_PAGEALLOC enabled.

 arch/sparc/mm/init_64.c |    6 ++++--
 1 files changed, 4 insertions(+), 2 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2011-08-12  1:08 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2011-08-12  1:08 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Please pull to get this Sparc bug fix, thanks!

The following changes since commit 068ef739127af1faf6f342b56d41ceea89f76c75:

  Merge branch 'fixes' of master.kernel.org:/home/rmk/linux-2.6-arm (2011-08-10 17:37:17 -0700)

are available in the git repository at:

  master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc.git master

David S. Miller (1):
      sparc: Don't do hypervisor calls on non-sun4v in DS driver.

 arch/sparc/kernel/ds.c |   13 +++++++------
 1 files changed, 7 insertions(+), 6 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2011-08-12  1:08 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2011-08-12  1:08 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Please pull to get this Sparc bug fix, thanks!

The following changes since commit 068ef739127af1faf6f342b56d41ceea89f76c75:

  Merge branch 'fixes' of master.kernel.org:/home/rmk/linux-2.6-arm (2011-08-10 17:37:17 -0700)

are available in the git repository at:

  master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc.git master

David S. Miller (1):
      sparc: Don't do hypervisor calls on non-sun4v in DS driver.

 arch/sparc/kernel/ds.c |   13 +++++++------
 1 files changed, 7 insertions(+), 6 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2011-08-15 22:47 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2011-08-15 22:47 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Please pull to get these sparc changes, thanks!

1) sparc32 unlock needs to use inline asm to avoid compiler
   reordering.  From Mikael Pettersson.

2) Sparc should use the C based recordmcount, thanks to Steven Rostedt
   for the tip.

The following changes since commit 2f6a123821a7feaba7cee787ef0f21d2354d1730:

  Merge git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-for-linus (2011-08-15 08:46:11 -0700)

are available in the git repository at:

  master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc.git master

David S. Miller (1):
      sparc64: Set HAVE_C_RECORDMCOUNT

Mikael Pettersson (2):
      sparc64: remove unnecessary macros from spinlock_64.h
      sparc32: unbreak arch_write_unlock()

 arch/sparc/Kconfig                   |    1 +
 arch/sparc/include/asm/spinlock_32.h |   11 +++++++++--
 arch/sparc/include/asm/spinlock_64.h |    6 ------
 3 files changed, 10 insertions(+), 8 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2011-08-15 22:47 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2011-08-15 22:47 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Please pull to get these sparc changes, thanks!

1) sparc32 unlock needs to use inline asm to avoid compiler
   reordering.  From Mikael Pettersson.

2) Sparc should use the C based recordmcount, thanks to Steven Rostedt
   for the tip.

The following changes since commit 2f6a123821a7feaba7cee787ef0f21d2354d1730:

  Merge git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-for-linus (2011-08-15 08:46:11 -0700)

are available in the git repository at:

  master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc.git master

David S. Miller (1):
      sparc64: Set HAVE_C_RECORDMCOUNT

Mikael Pettersson (2):
      sparc64: remove unnecessary macros from spinlock_64.h
      sparc32: unbreak arch_write_unlock()

 arch/sparc/Kconfig                   |    1 +
 arch/sparc/include/asm/spinlock_32.h |   11 +++++++++--
 arch/sparc/include/asm/spinlock_64.h |    6 ------
 3 files changed, 10 insertions(+), 8 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2011-08-19  4:54 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2011-08-19  4:54 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Please pull to get this array bounds fix from Ian Campbell.

Thanks!

The following changes since commit 5c80c71b9a0ec518b4b58d2a61de01a04f4a4453:

  Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable (2011-08-18 14:20:00 -0700)

are available in the git repository at:

  master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc.git master

Ian Campbell (1):
      sparc: fix array bounds error setting up PCIC NMI trap

 arch/sparc/kernel/pcic.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2011-08-19  4:54 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2011-08-19  4:54 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Please pull to get this array bounds fix from Ian Campbell.

Thanks!

The following changes since commit 5c80c71b9a0ec518b4b58d2a61de01a04f4a4453:

  Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable (2011-08-18 14:20:00 -0700)

are available in the git repository at:

  master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc.git master

Ian Campbell (1):
      sparc: fix array bounds error setting up PCIC NMI trap

 arch/sparc/kernel/pcic.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2011-08-24  6:34 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2011-08-24  6:34 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Please pull to get this signal handling, and array bounds bug fix.

Thanks!

The following changes since commit 5c80c71b9a0ec518b4b58d2a61de01a04f4a4453:

  Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable (2011-08-18 14:20:00 -0700)

are available in the git repository at:

  master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc.git master

David S. Miller (1):
      sparc: Allow handling signals when stack is corrupted.

Ian Campbell (1):
      sparc: fix array bounds error setting up PCIC NMI trap

 arch/sparc/include/asm/sigcontext.h |   14 +++
 arch/sparc/kernel/Makefile          |    1 +
 arch/sparc/kernel/pcic.c            |    4 +-
 arch/sparc/kernel/signal32.c        |  184 ++++++++++++++++++++---------------
 arch/sparc/kernel/signal_32.c       |  172 +++++++++++++++------------------
 arch/sparc/kernel/signal_64.c       |  108 +++++++++------------
 arch/sparc/kernel/sigutil.h         |    9 ++
 arch/sparc/kernel/sigutil_32.c      |  120 +++++++++++++++++++++++
 arch/sparc/kernel/sigutil_64.c      |   93 ++++++++++++++++++
 9 files changed, 470 insertions(+), 235 deletions(-)
 create mode 100644 arch/sparc/kernel/sigutil.h
 create mode 100644 arch/sparc/kernel/sigutil_32.c
 create mode 100644 arch/sparc/kernel/sigutil_64.c

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2011-08-24  6:34 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2011-08-24  6:34 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Please pull to get this signal handling, and array bounds bug fix.

Thanks!

The following changes since commit 5c80c71b9a0ec518b4b58d2a61de01a04f4a4453:

  Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable (2011-08-18 14:20:00 -0700)

are available in the git repository at:

  master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc.git master

David S. Miller (1):
      sparc: Allow handling signals when stack is corrupted.

Ian Campbell (1):
      sparc: fix array bounds error setting up PCIC NMI trap

 arch/sparc/include/asm/sigcontext.h |   14 +++
 arch/sparc/kernel/Makefile          |    1 +
 arch/sparc/kernel/pcic.c            |    4 +-
 arch/sparc/kernel/signal32.c        |  184 ++++++++++++++++++++---------------
 arch/sparc/kernel/signal_32.c       |  172 +++++++++++++++------------------
 arch/sparc/kernel/signal_64.c       |  108 +++++++++------------
 arch/sparc/kernel/sigutil.h         |    9 ++
 arch/sparc/kernel/sigutil_32.c      |  120 +++++++++++++++++++++++
 arch/sparc/kernel/sigutil_64.c      |   93 ++++++++++++++++++
 9 files changed, 470 insertions(+), 235 deletions(-)
 create mode 100644 arch/sparc/kernel/sigutil.h
 create mode 100644 arch/sparc/kernel/sigutil_32.c
 create mode 100644 arch/sparc/kernel/sigutil_64.c

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2011-08-29 16:50 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2011-08-29 16:50 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Please pull to get this sparc64 build fix and a sparc32 fix for
IRQ cross-calls.

Thanks!

The following changes since commit c6a389f123b9f68d605bb7e0f9b32ec1e3e14132:

  Linux 3.1-rc4 (2011-08-28 21:16:01 -0700)

are available in the git repository at:
  master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc.git master

Kjetil Oftedal (1):
      sparc32,sun4d: Change IPI IRQ level to prevent collision between IPI and timer interrupt

Stephen Rothwell (1):
      sparc: Remove another reference to nfsservctl

 arch/sparc/kernel/irq.h        |    2 +-
 arch/sparc/kernel/systbls_64.S |    2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2011-08-29 16:50 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2011-08-29 16:50 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Please pull to get this sparc64 build fix and a sparc32 fix for
IRQ cross-calls.

Thanks!

The following changes since commit c6a389f123b9f68d605bb7e0f9b32ec1e3e14132:

  Linux 3.1-rc4 (2011-08-28 21:16:01 -0700)

are available in the git repository at:
  master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc.git master

Kjetil Oftedal (1):
      sparc32,sun4d: Change IPI IRQ level to prevent collision between IPI and timer interrupt

Stephen Rothwell (1):
      sparc: Remove another reference to nfsservctl

 arch/sparc/kernel/irq.h        |    2 +-
 arch/sparc/kernel/systbls_64.S |    2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2011-08-30 18:13 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2011-08-30 18:13 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Please pull to get this popc support detection bug fix, thanks!

The following changes since commit 0f43dd546d991ca260d8a72d07f617907c508de8:

  Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net (2011-08-29 13:38:29 -0700)

are available in the git repository at:

  master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc.git master

David S. Miller (1):
      sparc64: Only Panther cheetah+ chips have POPC.

 arch/sparc/kernel/setup_64.c |   10 ++++++++--
 1 files changed, 8 insertions(+), 2 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2011-08-30 18:13 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2011-08-30 18:13 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Please pull to get this popc support detection bug fix, thanks!

The following changes since commit 0f43dd546d991ca260d8a72d07f617907c508de8:

  Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net (2011-08-29 13:38:29 -0700)

are available in the git repository at:

  master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc.git master

David S. Miller (1):
      sparc64: Only Panther cheetah+ chips have POPC.

 arch/sparc/kernel/setup_64.c |   10 ++++++++--
 1 files changed, 8 insertions(+), 2 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2011-09-29 19:31 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2011-09-29 19:31 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


The firmware exec bit problem took nearly 2 weeks to find, not
fun.

Please pull, thanks a lot!

The following changes since commit d5767c53535ac79758084773418e0ad186aba4a2:

  bootup: move 'usermodehelper_enable()' to the end of do_basic_setup() (2011-09-28 10:23:44 -0700)

are available in the git repository at:
  git://github.com/davem330/sparc.git master

David S. Miller (3):
      sparc64: Future proof Niagara cpu detection.
      sparc: Make '-p' boot option meaningful again.
      sparc64: Force the execute bit in OpenFirmware's translation entries.

Mathias Krause (1):
      sparc, exec: remove redundant addr_limit assignment

 arch/sparc/include/asm/spitfire.h |    2 ++
 arch/sparc/include/asm/xor_64.h   |    4 +++-
 arch/sparc/kernel/cpu.c           |   12 ++++++++++++
 arch/sparc/kernel/cpumap.c        |    2 ++
 arch/sparc/kernel/head_64.S       |   25 ++++++++++++++++++++++---
 arch/sparc/kernel/process_32.c    |    3 +--
 arch/sparc/kernel/process_64.c    |    3 ---
 arch/sparc/kernel/setup_32.c      |    2 +-
 arch/sparc/kernel/setup_64.c      |   18 +++++++++++++-----
 arch/sparc/mm/init_64.c           |    5 +++++
 10 files changed, 61 insertions(+), 15 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2011-09-29 19:31 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2011-09-29 19:31 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


The firmware exec bit problem took nearly 2 weeks to find, not
fun.

Please pull, thanks a lot!

The following changes since commit d5767c53535ac79758084773418e0ad186aba4a2:

  bootup: move 'usermodehelper_enable()' to the end of do_basic_setup() (2011-09-28 10:23:44 -0700)

are available in the git repository at:
  git://github.com/davem330/sparc.git master

David S. Miller (3):
      sparc64: Future proof Niagara cpu detection.
      sparc: Make '-p' boot option meaningful again.
      sparc64: Force the execute bit in OpenFirmware's translation entries.

Mathias Krause (1):
      sparc, exec: remove redundant addr_limit assignment

 arch/sparc/include/asm/spitfire.h |    2 ++
 arch/sparc/include/asm/xor_64.h   |    4 +++-
 arch/sparc/kernel/cpu.c           |   12 ++++++++++++
 arch/sparc/kernel/cpumap.c        |    2 ++
 arch/sparc/kernel/head_64.S       |   25 ++++++++++++++++++++++---
 arch/sparc/kernel/process_32.c    |    3 +--
 arch/sparc/kernel/process_64.c    |    3 ---
 arch/sparc/kernel/setup_32.c      |    2 +-
 arch/sparc/kernel/setup_64.c      |   18 +++++++++++++-----
 arch/sparc/mm/init_64.c           |    5 +++++
 10 files changed, 61 insertions(+), 15 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2011-10-20  9:48 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2011-10-20  9:48 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Two signal fixes to mirror that done on x86, and make PCI ROM mapping
work on sparc64.

Please pull, thanks a lot.

The following changes since commit 486cf46f3f9be5f2a966016c1a8fe01e32cde09e:

  mm: fix race between mremap and removing migration entry (2011-10-19 23:42:58 -0700)

are available in the git repository at:
  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git master

Daniel Hellstrom (1):
      sparc32,leon: SRMMU MMU Table probe fix

David S. Miller (1):
      sparc: Avoid calling sigprocmask()

Kjetil Oftedal (1):
      sparc: Add alignment flag to PCI expansion resources

Matt Fleming (1):
      sparc: Use set_current_blocked()

 arch/sparc/include/asm/pgtsrmmu.h |    2 +-
 arch/sparc/kernel/pci.c           |    3 ++-
 arch/sparc/kernel/signal32.c      |   21 +++++++--------------
 arch/sparc/kernel/signal_32.c     |   32 +++++++++++++-------------------
 arch/sparc/kernel/signal_64.c     |   32 +++++++++++++-------------------
 arch/sparc/mm/leon_mm.c           |    2 +-
 6 files changed, 37 insertions(+), 55 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2011-10-20  9:48 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2011-10-20  9:48 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Two signal fixes to mirror that done on x86, and make PCI ROM mapping
work on sparc64.

Please pull, thanks a lot.

The following changes since commit 486cf46f3f9be5f2a966016c1a8fe01e32cde09e:

  mm: fix race between mremap and removing migration entry (2011-10-19 23:42:58 -0700)

are available in the git repository at:
  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git master

Daniel Hellstrom (1):
      sparc32,leon: SRMMU MMU Table probe fix

David S. Miller (1):
      sparc: Avoid calling sigprocmask()

Kjetil Oftedal (1):
      sparc: Add alignment flag to PCI expansion resources

Matt Fleming (1):
      sparc: Use set_current_blocked()

 arch/sparc/include/asm/pgtsrmmu.h |    2 +-
 arch/sparc/kernel/pci.c           |    3 ++-
 arch/sparc/kernel/signal32.c      |   21 +++++++--------------
 arch/sparc/kernel/signal_32.c     |   32 +++++++++++++-------------------
 arch/sparc/kernel/signal_64.c     |   32 +++++++++++++-------------------
 arch/sparc/mm/leon_mm.c           |    2 +-
 6 files changed, 37 insertions(+), 55 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2011-10-31  8:32 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2011-10-31  8:32 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Not very exciting stuff, basically just bug fixes.

1) Make memcpy on sparc32 properly return original dst pointer.

2) Fix VIS vector comparison instruction emulation.

Please pull, thanks a lot!

The following changes since commit 839d8810747bbf39e0a5a7f223b67bffa7945f8d:

  Merge branch 'i2c-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jdelvare/staging (2011-10-30 15:54:59 -0700)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git master

David S. Miller (4):
      sparc32: Remove non-kernel code from memcpy implementation.
      sparc32: Remove uses of %g7 in memcpy implementation.
      sparc32: Correct the return value of memcpy.
      sparc64: Fix masking and shifting in VIS fpcmp emulation.

 arch/sparc/kernel/visemul.c |   32 +-
 arch/sparc/lib/memcpy.S     |  804 ++++++-------------------------------------
 2 files changed, 115 insertions(+), 721 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2011-10-31  8:32 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2011-10-31  8:32 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Not very exciting stuff, basically just bug fixes.

1) Make memcpy on sparc32 properly return original dst pointer.

2) Fix VIS vector comparison instruction emulation.

Please pull, thanks a lot!

The following changes since commit 839d8810747bbf39e0a5a7f223b67bffa7945f8d:

  Merge branch 'i2c-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jdelvare/staging (2011-10-30 15:54:59 -0700)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git master

David S. Miller (4):
      sparc32: Remove non-kernel code from memcpy implementation.
      sparc32: Remove uses of %g7 in memcpy implementation.
      sparc32: Correct the return value of memcpy.
      sparc64: Fix masking and shifting in VIS fpcmp emulation.

 arch/sparc/kernel/visemul.c |   32 +-
 arch/sparc/lib/memcpy.S     |  804 ++++++-------------------------------------
 2 files changed, 115 insertions(+), 721 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2011-11-08 20:07 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2011-11-08 20:07 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


This just hooks up the new system calls.

Please pull, thanks!

The following changes since commit 1ea6b8f48918282bdca0b32a34095504ee65bab5:

  Linux 3.2-rc1 (2011-11-07 16:16:02 -0800)

are available in the git repository at:
  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git master

David S. Miller (1):
      sparc: Hook up process_vm_{readv,writev} syscalls.

 arch/sparc/include/asm/unistd.h |    4 +++-
 arch/sparc/kernel/systbls_32.S  |    2 +-
 arch/sparc/kernel/systbls_64.S  |    4 ++--
 3 files changed, 6 insertions(+), 4 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2011-11-08 20:07 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2011-11-08 20:07 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


This just hooks up the new system calls.

Please pull, thanks!

The following changes since commit 1ea6b8f48918282bdca0b32a34095504ee65bab5:

  Linux 3.2-rc1 (2011-11-07 16:16:02 -0800)

are available in the git repository at:
  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git master

David S. Miller (1):
      sparc: Hook up process_vm_{readv,writev} syscalls.

 arch/sparc/include/asm/unistd.h |    4 +++-
 arch/sparc/kernel/systbls_32.S  |    2 +-
 arch/sparc/kernel/systbls_64.S  |    4 ++--
 3 files changed, 6 insertions(+), 4 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2011-11-18 19:22 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2011-11-18 19:22 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Several bug fixes:

1) Make syscall restart properly save and restore the first argument
   register across possible ptrace modifications.

2) Implement sparc's io_remap_pfn_range() in terms of remap_pfn_range().
   A ton of divergance has occured over time and it makes no sense to
   have a completely seperate loop for what amounts to being a very
   minor optimization on sparc64.

3) Because modules can use things like pgprot_noncached() and friends,
   we have to process the sun4v code patching sections upon module
   load on sparc64.  This fixes crashes with infiniband on Niagara
   machines.

4) Missing header include, from Ben Hutchings.

Please pull, thanks a lot!

The following changes since commit b6844523839779030430ff28f036f83e2a3f43e6:

  Merge branch 'stable/for-linus-fixes-3.2' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen (2011-11-18 13:18:07 -0200)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git master

Ben Hutchings (1):
      sparc: sigutil: Include <linux/errno.h>

David S. Miller (4):
      sparc: Fix handling of orig_i0 wrt. debugging when restarting syscalls.
      sparc: Stash orig_i0 into %g6 instead of %g2
      sparc: Kill custom io_remap_pfn_range().
      sparc64: Patch sun4v code sequences properly on module load.

 arch/sparc/include/asm/pgtable_32.h |   20 ++++-
 arch/sparc/include/asm/pgtable_64.h |   20 ++++-
 arch/sparc/kernel/entry.h           |    7 ++
 arch/sparc/kernel/module.c          |   27 ++++++
 arch/sparc/kernel/setup_64.c        |   48 ++++++----
 arch/sparc/kernel/signal32.c        |   18 ++--
 arch/sparc/kernel/signal_32.c       |   30 +++++-
 arch/sparc/kernel/signal_64.c       |   42 ++++++---
 arch/sparc/kernel/sigutil_64.c      |    1 +
 arch/sparc/mm/Makefile              |    1 -
 arch/sparc/mm/generic_32.c          |   99 ---------------------
 arch/sparc/mm/generic_64.c          |  165 -----------------------------------
 12 files changed, 159 insertions(+), 319 deletions(-)
 delete mode 100644 arch/sparc/mm/generic_32.c
 delete mode 100644 arch/sparc/mm/generic_64.c

   

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2011-11-18 19:22 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2011-11-18 19:22 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Several bug fixes:

1) Make syscall restart properly save and restore the first argument
   register across possible ptrace modifications.

2) Implement sparc's io_remap_pfn_range() in terms of remap_pfn_range().
   A ton of divergance has occured over time and it makes no sense to
   have a completely seperate loop for what amounts to being a very
   minor optimization on sparc64.

3) Because modules can use things like pgprot_noncached() and friends,
   we have to process the sun4v code patching sections upon module
   load on sparc64.  This fixes crashes with infiniband on Niagara
   machines.

4) Missing header include, from Ben Hutchings.

Please pull, thanks a lot!

The following changes since commit b6844523839779030430ff28f036f83e2a3f43e6:

  Merge branch 'stable/for-linus-fixes-3.2' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen (2011-11-18 13:18:07 -0200)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git master

Ben Hutchings (1):
      sparc: sigutil: Include <linux/errno.h>

David S. Miller (4):
      sparc: Fix handling of orig_i0 wrt. debugging when restarting syscalls.
      sparc: Stash orig_i0 into %g6 instead of %g2
      sparc: Kill custom io_remap_pfn_range().
      sparc64: Patch sun4v code sequences properly on module load.

 arch/sparc/include/asm/pgtable_32.h |   20 ++++-
 arch/sparc/include/asm/pgtable_64.h |   20 ++++-
 arch/sparc/kernel/entry.h           |    7 ++
 arch/sparc/kernel/module.c          |   27 ++++++
 arch/sparc/kernel/setup_64.c        |   48 ++++++----
 arch/sparc/kernel/signal32.c        |   18 ++--
 arch/sparc/kernel/signal_32.c       |   30 +++++-
 arch/sparc/kernel/signal_64.c       |   42 ++++++---
 arch/sparc/kernel/sigutil_64.c      |    1 +
 arch/sparc/mm/Makefile              |    1 -
 arch/sparc/mm/generic_32.c          |   99 ---------------------
 arch/sparc/mm/generic_64.c          |  165 -----------------------------------
 12 files changed, 159 insertions(+), 319 deletions(-)
 delete mode 100644 arch/sparc/mm/generic_32.c
 delete mode 100644 arch/sparc/mm/generic_64.c

   

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2011-12-16 20:22 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2011-12-16 20:22 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


1) Bootup on 32-bit fails because gcc started to emit tail calls more
   aggressively, so we need to accept 13-bit signed immediation
   relocations into 'restore' instructions.

2) Kill unused variable in bbc_i2c and module_platform_driver()
conversion from Axel Lin.

3) Use kmemdup(), from Thomas Meyer.

Please pull, thanks a lot!

The following changes since commit 2cfab8d74ebfbe06ce2947117945c4f45a5915ec:

  Merge branch 'drm-intel-fixes' of git://people.freedesktop.org/~keithp/linux (2011-12-16 11:27:56 -0800)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git master

Axel Lin (2):
      bbc_i2c: Remove unneeded err variable
      sbus: convert drivers/sbus/char/* to use module_platform_driver()

David S. Miller (1):
      sparc32: Be less strict in matching %lo part of relocation.

Thomas Meyer (1):
      sparc: Use kmemdup rather than duplicating its implementation

 arch/sparc/kernel/ds.c          |    6 ++----
 arch/sparc/kernel/prom_common.c |    4 +---
 arch/sparc/mm/btfixup.c         |    3 +--
 drivers/sbus/char/bbc_i2c.c     |   27 +++++----------------------
 drivers/sbus/char/display7seg.c |   13 +------------
 drivers/sbus/char/envctrl.c     |   12 +-----------
 drivers/sbus/char/flash.c       |   12 +-----------
 drivers/sbus/char/uctrl.c       |   12 +-----------
 8 files changed, 13 insertions(+), 76 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2011-12-16 20:22 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2011-12-16 20:22 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


1) Bootup on 32-bit fails because gcc started to emit tail calls more
   aggressively, so we need to accept 13-bit signed immediation
   relocations into 'restore' instructions.

2) Kill unused variable in bbc_i2c and module_platform_driver()
conversion from Axel Lin.

3) Use kmemdup(), from Thomas Meyer.

Please pull, thanks a lot!

The following changes since commit 2cfab8d74ebfbe06ce2947117945c4f45a5915ec:

  Merge branch 'drm-intel-fixes' of git://people.freedesktop.org/~keithp/linux (2011-12-16 11:27:56 -0800)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git master

Axel Lin (2):
      bbc_i2c: Remove unneeded err variable
      sbus: convert drivers/sbus/char/* to use module_platform_driver()

David S. Miller (1):
      sparc32: Be less strict in matching %lo part of relocation.

Thomas Meyer (1):
      sparc: Use kmemdup rather than duplicating its implementation

 arch/sparc/kernel/ds.c          |    6 ++----
 arch/sparc/kernel/prom_common.c |    4 +---
 arch/sparc/mm/btfixup.c         |    3 +--
 drivers/sbus/char/bbc_i2c.c     |   27 +++++----------------------
 drivers/sbus/char/display7seg.c |   13 +------------
 drivers/sbus/char/envctrl.c     |   12 +-----------
 drivers/sbus/char/flash.c       |   12 +-----------
 drivers/sbus/char/uctrl.c       |   12 +-----------
 8 files changed, 13 insertions(+), 76 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2011-12-23 22:11 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2011-12-23 22:11 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Please pull to get this PCI MSI initialization bug fix.

Thanks!

The following changes since commit b3b1b70e62a603f473619dbebc3b3d23f535e6f8:

  Merge branch 'usb-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb (2011-12-22 12:59:47 -0800)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git master

David S. Miller (1):
      sparc64: Fix MSIQ HV call ordering in pci_sun4v_msiq_build_irq().

 arch/sparc/kernel/pci_sun4v.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2011-12-23 22:11 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2011-12-23 22:11 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Please pull to get this PCI MSI initialization bug fix.

Thanks!

The following changes since commit b3b1b70e62a603f473619dbebc3b3d23f535e6f8:

  Merge branch 'usb-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb (2011-12-22 12:59:47 -0800)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git master

David S. Miller (1):
      sparc64: Fix MSIQ HV call ordering in pci_sun4v_msiq_build_irq().

 arch/sparc/kernel/pci_sun4v.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2012-01-09 22:22 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2012-01-09 22:22 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Just some cleanups and removal of unused code from Sam Ravnborg.

Nothing earth shattering.

Please pull, thanks a lot.

The following changes since commit 6b3da11b3c36fdafce3a72e0e90d6c4e99e9aad5:

  Merge branch 'for-3.3' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu (2012-01-09 13:08:28 -0800)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-next.git master

Sam Ravnborg (7):
      sparc32: drop unused atomic24 support
      sparc32: drop useless preprocessor conditional in atomic_32.h
      apbuart: fix section mismatch warning
      sparc32: support atomic64_t
      sparc32: enable different preemptions models
      sparc32: fix PAGE_SIZE definition
      sparc32: remove unused file: include/asm/pgtsun4.h

 arch/sparc/Kconfig                      |    3 +-
 arch/sparc/include/asm/atomic_32.h      |  104 +-------------------
 arch/sparc/include/asm/page_32.h        |   10 +--
 arch/sparc/include/asm/pgtsun4.h        |  171 -------------------------------
 arch/sparc/include/asm/thread_info_32.h |    2 +-
 arch/sparc/lib/atomic_32.S              |   55 ----------
 arch/sparc/lib/ksyms.c                  |    6 -
 drivers/tty/serial/apbuart.c            |    4 +-
 8 files changed, 8 insertions(+), 347 deletions(-)
 delete mode 100644 arch/sparc/include/asm/pgtsun4.h

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2012-01-09 22:22 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2012-01-09 22:22 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Just some cleanups and removal of unused code from Sam Ravnborg.

Nothing earth shattering.

Please pull, thanks a lot.

The following changes since commit 6b3da11b3c36fdafce3a72e0e90d6c4e99e9aad5:

  Merge branch 'for-3.3' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu (2012-01-09 13:08:28 -0800)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-next.git master

Sam Ravnborg (7):
      sparc32: drop unused atomic24 support
      sparc32: drop useless preprocessor conditional in atomic_32.h
      apbuart: fix section mismatch warning
      sparc32: support atomic64_t
      sparc32: enable different preemptions models
      sparc32: fix PAGE_SIZE definition
      sparc32: remove unused file: include/asm/pgtsun4.h

 arch/sparc/Kconfig                      |    3 +-
 arch/sparc/include/asm/atomic_32.h      |  104 +-------------------
 arch/sparc/include/asm/page_32.h        |   10 +--
 arch/sparc/include/asm/pgtsun4.h        |  171 -------------------------------
 arch/sparc/include/asm/thread_info_32.h |    2 +-
 arch/sparc/lib/atomic_32.S              |   55 ----------
 arch/sparc/lib/ksyms.c                  |    6 -
 drivers/tty/serial/apbuart.c            |    4 +-
 8 files changed, 8 insertions(+), 347 deletions(-)
 delete mode 100644 arch/sparc/include/asm/pgtsun4.h

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2012-01-26 21:55 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2012-01-26 21:55 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Please pull to get this sparc 32-bit timer fix.

Thanks!

The following changes since commit 87f71ae2dd7471c1b4c94100be1f218e91dc64c3:

  Merge git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 (2012-01-25 19:28:58 -0800)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git master

Tkhai Kirill (1):
      sparc32: forced setting of mode of sun4m per-cpu timers

 arch/sparc/kernel/sun4m_irq.c |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2012-01-26 21:55 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2012-01-26 21:55 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Please pull to get this sparc 32-bit timer fix.

Thanks!

The following changes since commit 87f71ae2dd7471c1b4c94100be1f218e91dc64c3:

  Merge git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 (2012-01-25 19:28:58 -0800)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git master

Tkhai Kirill (1):
      sparc32: forced setting of mode of sun4m per-cpu timers

 arch/sparc/kernel/sun4m_irq.c |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2012-03-30  7:39 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2012-03-30  7:39 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


This just fixes build fallout due to recent changes that went
int your tree.

Please pull, thanks a lot.

The following changes since commit 4bde23f8751f388867766b0a62ed1ef8b7e01561:

  Merge tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc (2012-03-29 21:30:28 -0700)

are available in the git repository at:


  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git master

for you to fetch changes up to 8befc9f23c695395de011ced289c611fada22f35:

  sparc: Fix even more fallout from system.h split. (2012-03-29 22:40:52 -0700)

----------------------------------------------------------------
David S. Miller (1):
      sparc: Fix even more fallout from system.h split.

Stephen Rothwell (1):
      sparc: fix fallout from system.h split

 arch/sparc/include/asm/ptrace.h |    1 +
 arch/sparc/kernel/jump_label.c  |    2 ++
 arch/sparc/kernel/kgdb_64.c     |    1 +
 3 files changed, 4 insertions(+), 0 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2012-03-30  7:39 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2012-03-30  7:39 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


This just fixes build fallout due to recent changes that went
int your tree.

Please pull, thanks a lot.

The following changes since commit 4bde23f8751f388867766b0a62ed1ef8b7e01561:

  Merge tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc (2012-03-29 21:30:28 -0700)

are available in the git repository at:


  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git master

for you to fetch changes up to 8befc9f23c695395de011ced289c611fada22f35:

  sparc: Fix even more fallout from system.h split. (2012-03-29 22:40:52 -0700)

----------------------------------------------------------------
David S. Miller (1):
      sparc: Fix even more fallout from system.h split.

Stephen Rothwell (1):
      sparc: fix fallout from system.h split

 arch/sparc/include/asm/ptrace.h |    1 +
 arch/sparc/kernel/jump_label.c  |    2 ++
 arch/sparc/kernel/kgdb_64.c     |    1 +
 3 files changed, 4 insertions(+), 0 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] Sparc
  2012-03-30  7:39 ` David Miller
@ 2012-03-30 10:02   ` Sam Ravnborg
  -1 siblings, 0 replies; 548+ messages in thread
From: Sam Ravnborg @ 2012-03-30 10:02 UTC (permalink / raw)
  To: David Miller; +Cc: torvalds, akpm, sparclinux, linux-kernel

On Fri, Mar 30, 2012 at 03:39:47AM -0400, David Miller wrote:
> 
> This just fixes build fallout due to recent changes that went
> int your tree.

I did not fix sparc32 build - will look at it later today.
I assume it is equally trivial to fix.


	Sam

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] Sparc
@ 2012-03-30 10:02   ` Sam Ravnborg
  0 siblings, 0 replies; 548+ messages in thread
From: Sam Ravnborg @ 2012-03-30 10:02 UTC (permalink / raw)
  To: David Miller; +Cc: torvalds, akpm, sparclinux, linux-kernel

On Fri, Mar 30, 2012 at 03:39:47AM -0400, David Miller wrote:
> 
> This just fixes build fallout due to recent changes that went
> int your tree.

I did not fix sparc32 build - will look at it later today.
I assume it is equally trivial to fix.


	Sam

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2012-03-31  1:37 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2012-03-31  1:37 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Like last night's 64-bit fixes, this fixes the build regressions
on the 32-bit side too, thanks to Sam Ravnborg.

Please pull, thanks a lot.

The following changes since commit 623ff7739e7c00fa3d55dbfd42a492a68298fd7a:

  Merge tag 'for-linus-3.4' of git://git.infradead.org/mtd-2.6 (2012-03-30 17:31:56 -0700)

are available in the git repository at:


  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git master

for you to fetch changes up to bde4d8b205bc3ccdf7f5a841bfbfa9896b44b1ce:

  sparc32: fix fallout from system.h removal (2012-03-30 18:16:58 -0700)

----------------------------------------------------------------
Sam Ravnborg (1):
      sparc32: fix fallout from system.h removal

 arch/sparc/include/asm/ptrace.h |    1 +
 arch/sparc/kernel/sun4d_smp.c   |    1 +
 arch/sparc/kernel/sun4m_smp.c   |    1 +
 3 files changed, 3 insertions(+), 0 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2012-03-31  1:37 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2012-03-31  1:37 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Like last night's 64-bit fixes, this fixes the build regressions
on the 32-bit side too, thanks to Sam Ravnborg.

Please pull, thanks a lot.

The following changes since commit 623ff7739e7c00fa3d55dbfd42a492a68298fd7a:

  Merge tag 'for-linus-3.4' of git://git.infradead.org/mtd-2.6 (2012-03-30 17:31:56 -0700)

are available in the git repository at:


  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git master

for you to fetch changes up to bde4d8b205bc3ccdf7f5a841bfbfa9896b44b1ce:

  sparc32: fix fallout from system.h removal (2012-03-30 18:16:58 -0700)

----------------------------------------------------------------
Sam Ravnborg (1):
      sparc32: fix fallout from system.h removal

 arch/sparc/include/asm/ptrace.h |    1 +
 arch/sparc/kernel/sun4d_smp.c   |    1 +
 arch/sparc/kernel/sun4m_smp.c   |    1 +
 3 files changed, 3 insertions(+), 0 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2012-04-04  8:03 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2012-04-04  8:03 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Please pull to get one build regressiona done serial probe
regression fix on sparc.

Thanks!

The following changes since commit dd775ae2549217d3ae09363e3edb305d0fa19928:

  Linux 3.4-rc1 (2012-03-31 16:24:09 -0700)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc master

for you to fetch changes up to ca6f327dfdc6b3b90aa0c5247182ae023dce6450:

  serial/sunzilog: fix keyboard on SUN SPARCstation (2012-04-04 00:37:10 -0700)

----------------------------------------------------------------
Aaro Koskinen (1):
      sparc: pgtable_64: change include order

Sam Ravnborg (1):
      serial/sunzilog: fix keyboard on SUN SPARCstation

 arch/sparc/include/asm/pgtable_64.h |    4 ++--
 drivers/tty/serial/sunzilog.c       |    4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2012-04-04  8:03 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2012-04-04  8:03 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Please pull to get one build regressiona done serial probe
regression fix on sparc.

Thanks!

The following changes since commit dd775ae2549217d3ae09363e3edb305d0fa19928:

  Linux 3.4-rc1 (2012-03-31 16:24:09 -0700)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc master

for you to fetch changes up to ca6f327dfdc6b3b90aa0c5247182ae023dce6450:

  serial/sunzilog: fix keyboard on SUN SPARCstation (2012-04-04 00:37:10 -0700)

----------------------------------------------------------------
Aaro Koskinen (1):
      sparc: pgtable_64: change include order

Sam Ravnborg (1):
      serial/sunzilog: fix keyboard on SUN SPARCstation

 arch/sparc/include/asm/pgtable_64.h |    4 ++--
 drivers/tty/serial/sunzilog.c       |    4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
  (?)
@ 2012-04-10 14:28 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2012-04-10 14:28 UTC (permalink / raw)
  To: sparclinux


1) Build fix for LEON, from Sam Ravnborg.

2) Make the sparc side changes that go along with the infrastructure
   to retry faults when blocking on a disk transfer.  From Kautuk
   Consul.

Please pull, thanks a lot!

The following changes since commit 64ebe987311853ea857a244439de5b947a4b1b07:

  Merge tag 'pm-for-3.4-part-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm (2012-04-04 14:26:40 -0700)

are available in the git repository at:


  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git master

for you to fetch changes up to d657784b70ef653350d7aa49da90a8484c29da7d:

  sparc32,leon: fix leon build (2012-04-04 15:44:39 -0700)

----------------------------------------------------------------
Kautuk Consul (2):
      sparc/mm/fault_64.c: Port OOM changes to do_sparc64_fault
      sparc/mm/fault_32.c: Port OOM changes to do_sparc_fault

Sam Ravnborg (1):
      sparc32,leon: fix leon build

 arch/sparc/kernel/leon_pci.c |   13 -------------
 arch/sparc/mm/fault_32.c     |   37 ++++++++++++++++++++++++++++++-------
 arch/sparc/mm/fault_64.c     |   37 ++++++++++++++++++++++++++++++-------
 3 files changed, 60 insertions(+), 27 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2012-04-13 19:24 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2012-04-13 19:24 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Please pull to get these two sparc bug fixes.

With special guest sparc64 assembler hacker, Paul E. McKenney.

Thanks.

The following changes since commit 4166fb64593514ad920b7dbd290e0a934b37d24a:

  Merge tag 'srpt-srq-type' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband (2012-04-12 18:51:32 -0700)

are available in the git repository at:


  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git master

for you to fetch changes up to 3d3eeb2ef26112a200785e5fca58ec58dd33bf1e:

  sparc64: Eliminate obsolete __handle_softirq() function (2012-04-13 11:58:38 -0700)

----------------------------------------------------------------
David S. Miller (1):
      sparc64: Fix bootup crash on sun4v.

Paul E. McKenney (1):
      sparc64: Eliminate obsolete __handle_softirq() function

 arch/sparc/kernel/ds.c       |    2 +-
 arch/sparc/kernel/rtrap_64.S |    7 -------
 2 files changed, 1 insertion(+), 8 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2012-04-13 19:24 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2012-04-13 19:24 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Please pull to get these two sparc bug fixes.

With special guest sparc64 assembler hacker, Paul E. McKenney.

Thanks.

The following changes since commit 4166fb64593514ad920b7dbd290e0a934b37d24a:

  Merge tag 'srpt-srq-type' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband (2012-04-12 18:51:32 -0700)

are available in the git repository at:


  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git master

for you to fetch changes up to 3d3eeb2ef26112a200785e5fca58ec58dd33bf1e:

  sparc64: Eliminate obsolete __handle_softirq() function (2012-04-13 11:58:38 -0700)

----------------------------------------------------------------
David S. Miller (1):
      sparc64: Fix bootup crash on sun4v.

Paul E. McKenney (1):
      sparc64: Eliminate obsolete __handle_softirq() function

 arch/sparc/kernel/ds.c       |    2 +-
 arch/sparc/kernel/rtrap_64.S |    7 -------
 2 files changed, 1 insertion(+), 8 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] Sparc
  2012-04-13 19:24 ` David Miller
@ 2012-04-13 19:46   ` Linus Torvalds
  -1 siblings, 0 replies; 548+ messages in thread
From: Linus Torvalds @ 2012-04-13 19:46 UTC (permalink / raw)
  To: David Miller; +Cc: akpm, sparclinux, linux-kernel

On Fri, Apr 13, 2012 at 12:24 PM, David Miller <davem@davemloft.net> wrote:
>
> With special guest sparc64 assembler hacker, Paul E. McKenney.

Oh christ.  You're teaching *more* people about sparc64?

Where will it end?

That said, Looking at the patch, it looks a bit dubious. Why does the

 		cmp			%l1, 0

instruction remain, even if the conditional branch was deleted? I'm
not seeing any subsequent uses of %icc, but hey, I'm no sparc expert
(nor do I want to be).

                      Linus

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] Sparc
@ 2012-04-13 19:46   ` Linus Torvalds
  0 siblings, 0 replies; 548+ messages in thread
From: Linus Torvalds @ 2012-04-13 19:46 UTC (permalink / raw)
  To: David Miller; +Cc: akpm, sparclinux, linux-kernel

On Fri, Apr 13, 2012 at 12:24 PM, David Miller <davem@davemloft.net> wrote:
>
> With special guest sparc64 assembler hacker, Paul E. McKenney.

Oh christ.  You're teaching *more* people about sparc64?

Where will it end?

That said, Looking at the patch, it looks a bit dubious. Why does the

 		cmp			%l1, 0

instruction remain, even if the conditional branch was deleted? I'm
not seeing any subsequent uses of %icc, but hey, I'm no sparc expert
(nor do I want to be).

                      Linus

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] Sparc
  2012-04-13 19:46   ` Linus Torvalds
@ 2012-04-13 20:12     ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2012-04-13 20:12 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel

From: Linus Torvalds <torvalds@linux-foundation.org>
Date: Fri, 13 Apr 2012 12:46:34 -0700

> On Fri, Apr 13, 2012 at 12:24 PM, David Miller <davem@davemloft.net> wrote:
>>
>> With special guest sparc64 assembler hacker, Paul E. McKenney.
> 
> Oh christ.  You're teaching *more* people about sparc64?
> 
> Where will it end?

:-)

> That said, Looking at the patch, it looks a bit dubious. Why does the
> 
>  		cmp			%l1, 0
> 
> instruction remain, even if the conditional branch was deleted? I'm
> not seeing any subsequent uses of %icc, but hey, I'm no sparc expert
> (nor do I want to be).

It's unnecessary but harmless, I'll sweep it up in the sparc-next tree
when I get a chace.

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] Sparc
@ 2012-04-13 20:12     ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2012-04-13 20:12 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel

From: Linus Torvalds <torvalds@linux-foundation.org>
Date: Fri, 13 Apr 2012 12:46:34 -0700

> On Fri, Apr 13, 2012 at 12:24 PM, David Miller <davem@davemloft.net> wrote:
>>
>> With special guest sparc64 assembler hacker, Paul E. McKenney.
> 
> Oh christ.  You're teaching *more* people about sparc64?
> 
> Where will it end?

:-)

> That said, Looking at the patch, it looks a bit dubious. Why does the
> 
>  		cmp			%l1, 0
> 
> instruction remain, even if the conditional branch was deleted? I'm
> not seeing any subsequent uses of %icc, but hey, I'm no sparc expert
> (nor do I want to be).

It's unnecessary but harmless, I'll sweep it up in the sparc-next tree
when I get a chace.

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] Sparc
  2012-04-13 19:46   ` Linus Torvalds
@ 2012-04-13 21:50     ` Sam Ravnborg
  -1 siblings, 0 replies; 548+ messages in thread
From: Sam Ravnborg @ 2012-04-13 21:50 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: David Miller, akpm, sparclinux, linux-kernel

On Fri, Apr 13, 2012 at 12:46:34PM -0700, Linus Torvalds wrote:
> On Fri, Apr 13, 2012 at 12:24 PM, David Miller <davem@davemloft.net> wrote:
> >
> > With special guest sparc64 assembler hacker, Paul E. McKenney.
> 
> Oh christ.  You're teaching *more* people about sparc64?
You do not get it...

How many people are pondering around tweaking every bit of x86
specific code? A lot! Let them have fun competing :-)

In sparc land things are much more quiet.

And there are some nice tasks to be done that is good for the kernel,
as users of old cruft is sometimes hindering forward progress.

And when one is away for a few months things has not dramatically
changed since last you looked.

	Sam

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] Sparc
@ 2012-04-13 21:50     ` Sam Ravnborg
  0 siblings, 0 replies; 548+ messages in thread
From: Sam Ravnborg @ 2012-04-13 21:50 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: David Miller, akpm, sparclinux, linux-kernel

On Fri, Apr 13, 2012 at 12:46:34PM -0700, Linus Torvalds wrote:
> On Fri, Apr 13, 2012 at 12:24 PM, David Miller <davem@davemloft.net> wrote:
> >
> > With special guest sparc64 assembler hacker, Paul E. McKenney.
> 
> Oh christ.  You're teaching *more* people about sparc64?
You do not get it...

How many people are pondering around tweaking every bit of x86
specific code? A lot! Let them have fun competing :-)

In sparc land things are much more quiet.

And there are some nice tasks to be done that is good for the kernel,
as users of old cruft is sometimes hindering forward progress.

And when one is away for a few months things has not dramatically
changed since last you looked.

	Sam

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] Sparc
  2012-04-13 21:50     ` Sam Ravnborg
@ 2012-04-14  9:13       ` Ingo Molnar
  -1 siblings, 0 replies; 548+ messages in thread
From: Ingo Molnar @ 2012-04-14  9:13 UTC (permalink / raw)
  To: Sam Ravnborg; +Cc: Linus Torvalds, David Miller, akpm, sparclinux, linux-kernel


* Sam Ravnborg <sam@ravnborg.org> wrote:

> On Fri, Apr 13, 2012 at 12:46:34PM -0700, Linus Torvalds wrote:
> > On Fri, Apr 13, 2012 at 12:24 PM, David Miller <davem@davemloft.net> wrote:
> > >
> > > With special guest sparc64 assembler hacker, Paul E. McKenney.
> > 
> > Oh christ.  You're teaching *more* people about sparc64?
> You do not get it...
> 
> How many people are pondering around tweaking every bit of x86
> specific code? A lot! Let them have fun competing :-)

I wish it was so! In reality there's really just a handful of 
people looking at actual x86 assembly code. I don't know whether 
I've ever seen a conflict between substantial x86 assembly 
patches, in the last 4 years since I co-maintain the x86 
architecture ...

So there's no competition worth speaking of in x86 assembly 
land, let alone any harmful competition due to overcrowding.
You guys are all welcome, and each of you will make a real 
difference.

Imagine what would happen to Linux adoption rate if DaveM 
started hacking on assembly code that had more than a few
dozen active users?? ;-)

> In sparc land things are much more quiet.

I guess when you are close to absolute zero degrees then even 
liquid oxygen indeed looks incredibly hot ;-)

Thanks,

	Ingo

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] Sparc
@ 2012-04-14  9:13       ` Ingo Molnar
  0 siblings, 0 replies; 548+ messages in thread
From: Ingo Molnar @ 2012-04-14  9:13 UTC (permalink / raw)
  To: Sam Ravnborg; +Cc: Linus Torvalds, David Miller, akpm, sparclinux, linux-kernel


* Sam Ravnborg <sam@ravnborg.org> wrote:

> On Fri, Apr 13, 2012 at 12:46:34PM -0700, Linus Torvalds wrote:
> > On Fri, Apr 13, 2012 at 12:24 PM, David Miller <davem@davemloft.net> wrote:
> > >
> > > With special guest sparc64 assembler hacker, Paul E. McKenney.
> > 
> > Oh christ.  You're teaching *more* people about sparc64?
> You do not get it...
> 
> How many people are pondering around tweaking every bit of x86
> specific code? A lot! Let them have fun competing :-)

I wish it was so! In reality there's really just a handful of 
people looking at actual x86 assembly code. I don't know whether 
I've ever seen a conflict between substantial x86 assembly 
patches, in the last 4 years since I co-maintain the x86 
architecture ...

So there's no competition worth speaking of in x86 assembly 
land, let alone any harmful competition due to overcrowding.
You guys are all welcome, and each of you will make a real 
difference.

Imagine what would happen to Linux adoption rate if DaveM 
started hacking on assembly code that had more than a few
dozen active users?? ;-)

> In sparc land things are much more quiet.

I guess when you are close to absolute zero degrees then even 
liquid oxygen indeed looks incredibly hot ;-)

Thanks,

	Ingo

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] Sparc
  2012-04-14  9:13       ` Ingo Molnar
@ 2012-04-14 10:23         ` Sam Ravnborg
  -1 siblings, 0 replies; 548+ messages in thread
From: Sam Ravnborg @ 2012-04-14 10:23 UTC (permalink / raw)
  To: Ingo Molnar; +Cc: Linus Torvalds, David Miller, akpm, sparclinux, linux-kernel

On Sat, Apr 14, 2012 at 11:13:52AM +0200, Ingo Molnar wrote:
> 
> * Sam Ravnborg <sam@ravnborg.org> wrote:
> 
> > On Fri, Apr 13, 2012 at 12:46:34PM -0700, Linus Torvalds wrote:
> > > On Fri, Apr 13, 2012 at 12:24 PM, David Miller <davem@davemloft.net> wrote:
> > > >
> > > > With special guest sparc64 assembler hacker, Paul E. McKenney.
> > > 
> > > Oh christ.  You're teaching *more* people about sparc64?
> > You do not get it...
> > 
> > How many people are pondering around tweaking every bit of x86
> > specific code? A lot! Let them have fun competing :-)
> 
> I wish it was so! In reality there's really just a handful of 
> people looking at actual x86 assembly code. I don't know whether 
> I've ever seen a conflict between substantial x86 assembly 
> patches, in the last 4 years since I co-maintain the x86 
> architecture ...

Hmm...

      lines of c files  lines of S files
x86   183609            27130
sparc 66823             25852

There is more than just assembly when dealign with an architecture.
And honestly I do not "speak" neither sparc nor x86 assembly.

	Sam

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] Sparc
@ 2012-04-14 10:23         ` Sam Ravnborg
  0 siblings, 0 replies; 548+ messages in thread
From: Sam Ravnborg @ 2012-04-14 10:23 UTC (permalink / raw)
  To: Ingo Molnar; +Cc: Linus Torvalds, David Miller, akpm, sparclinux, linux-kernel

On Sat, Apr 14, 2012 at 11:13:52AM +0200, Ingo Molnar wrote:
> 
> * Sam Ravnborg <sam@ravnborg.org> wrote:
> 
> > On Fri, Apr 13, 2012 at 12:46:34PM -0700, Linus Torvalds wrote:
> > > On Fri, Apr 13, 2012 at 12:24 PM, David Miller <davem@davemloft.net> wrote:
> > > >
> > > > With special guest sparc64 assembler hacker, Paul E. McKenney.
> > > 
> > > Oh christ.  You're teaching *more* people about sparc64?
> > You do not get it...
> > 
> > How many people are pondering around tweaking every bit of x86
> > specific code? A lot! Let them have fun competing :-)
> 
> I wish it was so! In reality there's really just a handful of 
> people looking at actual x86 assembly code. I don't know whether 
> I've ever seen a conflict between substantial x86 assembly 
> patches, in the last 4 years since I co-maintain the x86 
> architecture ...

Hmm...

      lines of c files  lines of S files
x86   183609            27130
sparc 66823             25852

There is more than just assembly when dealign with an architecture.
And honestly I do not "speak" neither sparc nor x86 assembly.

	Sam

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] Sparc
  2012-04-14 10:23         ` Sam Ravnborg
@ 2012-04-14 10:50           ` Ingo Molnar
  -1 siblings, 0 replies; 548+ messages in thread
From: Ingo Molnar @ 2012-04-14 10:50 UTC (permalink / raw)
  To: Sam Ravnborg; +Cc: Linus Torvalds, David Miller, akpm, sparclinux, linux-kernel


* Sam Ravnborg <sam@ravnborg.org> wrote:

> On Sat, Apr 14, 2012 at 11:13:52AM +0200, Ingo Molnar wrote:
> > 
> > * Sam Ravnborg <sam@ravnborg.org> wrote:
> > 
> > > On Fri, Apr 13, 2012 at 12:46:34PM -0700, Linus Torvalds wrote:
> > > > On Fri, Apr 13, 2012 at 12:24 PM, David Miller <davem@davemloft.net> wrote:
> > > > >
> > > > > With special guest sparc64 assembler hacker, Paul E. McKenney.
> > > > 
> > > > Oh christ.  You're teaching *more* people about sparc64?
> > > You do not get it...
> > > 
> > > How many people are pondering around tweaking every bit of x86
> > > specific code? A lot! Let them have fun competing :-)
> > 
> > I wish it was so! In reality there's really just a handful of 
> > people looking at actual x86 assembly code. I don't know whether 
> > I've ever seen a conflict between substantial x86 assembly 
> > patches, in the last 4 years since I co-maintain the x86 
> > architecture ...
> 
> Hmm...
> 
>       lines of c files  lines of S files
> x86   183609            27130
> sparc 66823             25852

Yes.

( I have no idea what the 'Hmm...' means - do those numbers 
  somehow contradict what I said? )

> There is more than just assembly when dealign with an architecture.

Definitely.

Thanks,

	Ingo

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] Sparc
@ 2012-04-14 10:50           ` Ingo Molnar
  0 siblings, 0 replies; 548+ messages in thread
From: Ingo Molnar @ 2012-04-14 10:50 UTC (permalink / raw)
  To: Sam Ravnborg; +Cc: Linus Torvalds, David Miller, akpm, sparclinux, linux-kernel


* Sam Ravnborg <sam@ravnborg.org> wrote:

> On Sat, Apr 14, 2012 at 11:13:52AM +0200, Ingo Molnar wrote:
> > 
> > * Sam Ravnborg <sam@ravnborg.org> wrote:
> > 
> > > On Fri, Apr 13, 2012 at 12:46:34PM -0700, Linus Torvalds wrote:
> > > > On Fri, Apr 13, 2012 at 12:24 PM, David Miller <davem@davemloft.net> wrote:
> > > > >
> > > > > With special guest sparc64 assembler hacker, Paul E. McKenney.
> > > > 
> > > > Oh christ.  You're teaching *more* people about sparc64?
> > > You do not get it...
> > > 
> > > How many people are pondering around tweaking every bit of x86
> > > specific code? A lot! Let them have fun competing :-)
> > 
> > I wish it was so! In reality there's really just a handful of 
> > people looking at actual x86 assembly code. I don't know whether 
> > I've ever seen a conflict between substantial x86 assembly 
> > patches, in the last 4 years since I co-maintain the x86 
> > architecture ...
> 
> Hmm...
> 
>       lines of c files  lines of S files
> x86   183609            27130
> sparc 66823             25852

Yes.

( I have no idea what the 'Hmm...' means - do those numbers 
  somehow contradict what I said? )

> There is more than just assembly when dealign with an architecture.

Definitely.

Thanks,

	Ingo

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2012-04-21 20:58 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2012-04-21 20:58 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Please pull to get this sparc32 LEON smp bootup bug fix.

Thanks!

The following changes since commit 8f4f9d4d3cb84686a75f6195b8f8705376763fc7:

  Merge tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc (2012-04-21 12:45:52 -0700)

are available in the git repository at:


  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git master

for you to fetch changes up to e9a5ea1852cd8d7e155d2e3a45e4a6ea25110f7d:

  sparc32,leon: add notify_cpu_starting() (2012-04-21 16:35:06 -0400)

----------------------------------------------------------------
Yong Zhang (1):
      sparc32,leon: add notify_cpu_starting()

 arch/sparc/kernel/leon_smp.c |    3 +++
 1 file changed, 3 insertions(+)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2012-04-21 20:58 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2012-04-21 20:58 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Please pull to get this sparc32 LEON smp bootup bug fix.

Thanks!

The following changes since commit 8f4f9d4d3cb84686a75f6195b8f8705376763fc7:

  Merge tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc (2012-04-21 12:45:52 -0700)

are available in the git repository at:


  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git master

for you to fetch changes up to e9a5ea1852cd8d7e155d2e3a45e4a6ea25110f7d:

  sparc32,leon: add notify_cpu_starting() (2012-04-21 16:35:06 -0400)

----------------------------------------------------------------
Yong Zhang (1):
      sparc32,leon: add notify_cpu_starting()

 arch/sparc/kernel/leon_smp.c |    3 +++
 1 file changed, 3 insertions(+)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2012-05-10 20:52 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2012-05-10 20:52 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Please pull to get this sparc64 bug fix, thanks!

The following changes since commit bc46f9375a286d05f84a9464efc2b7f1f5614ff4:

  Merge tag 'nfs-for-3.4-5' of git://git.linux-nfs.org/projects/trondmy/linux-nfs (2012-05-10 10:05:19 -0700)

are available in the git repository at:


  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git master

for you to fetch changes up to a5a737e090e25981e99d69f01400e3a80356581c:

  sparc64: Do not clobber %g2 in xcall_fetch_glob_regs(). (2012-05-10 11:00:46 -0700)

----------------------------------------------------------------
David S. Miller (1):
      sparc64: Do not clobber %g2 in xcall_fetch_glob_regs().

 arch/sparc/kernel/central.c |    2 +-
 arch/sparc/mm/ultra.S       |    6 +++---
 2 files changed, 4 insertions(+), 4 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2012-05-10 20:52 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2012-05-10 20:52 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Please pull to get this sparc64 bug fix, thanks!

The following changes since commit bc46f9375a286d05f84a9464efc2b7f1f5614ff4:

  Merge tag 'nfs-for-3.4-5' of git://git.linux-nfs.org/projects/trondmy/linux-nfs (2012-05-10 10:05:19 -0700)

are available in the git repository at:


  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git master

for you to fetch changes up to a5a737e090e25981e99d69f01400e3a80356581c:

  sparc64: Do not clobber %g2 in xcall_fetch_glob_regs(). (2012-05-10 11:00:46 -0700)

----------------------------------------------------------------
David S. Miller (1):
      sparc64: Do not clobber %g2 in xcall_fetch_glob_regs().

 arch/sparc/kernel/central.c |    2 +-
 arch/sparc/mm/ultra.S       |    6 +++---
 2 files changed, 4 insertions(+), 4 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2012-05-21  9:03 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2012-05-21  9:03 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


1) Kill off support for sun4c and Cypress sun4m chips.

   And as a result we were able to also kill off that ugly
   btfixup thing that required multi-stage links of the final
   vmlinux image in the Kbuild system.  This should make the
   kbuild maintainers really happy.

   Thanks a lot to Sam Ravnborg for his tireless efforts to
   get this going.

2) Convert sparc64 to nobootmem.  I suspect now with sparc32
   being a lot cleaner, it should be able to fall in line and
   modernize in this area too.

3) Make sparc32 use generic clockevents, from Tkhai Kirill.

There is going to be a merge conflict between the commit in the
net-next tree that adds the Sparc BPF JIT, and the one in here which
adds arch/sparc/Kbuild.  It should be quite easy to resolve.

Please pull, thanks a lot!

The following changes since commit 82b769063598d01a8b24abf250a53f8b437e09f1:

  Merge branch 'stable' of git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile (2012-04-26 15:36:27 -0700)

are available in the git repository at:


  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-next master

for you to fetch changes up to 1edc17832d8f49a0263d364c453ea35da0e4e2a6:

  sparc32: use flushi when run-time patching in per_cpu_patch (2012-05-20 13:33:36 -0700)

----------------------------------------------------------------
Danny Kukawka (1):
      arch/sparc/kernel/unaligned_64.c: included linux/bitops.h twice

David S. Miller (54):
      Merge git://git.kernel.org/.../davem/sparc
      sparc64: Remove trap return code which is now unnecessary.
      Merge git://git.kernel.org/.../torvalds/linux
      sparc64: Convert over to NO_BOOTMEM.
      sparc64: Use node local allocations for IRQ stacks.
      sparc64: Do not set max_mapnr.
      sparc32: Remove inline strncmp "optimization" for constant counts.
      sparc: Convert some assembler over to linakge.h's ENTRY/ENDPROC
      sparc: Clear out unused asm/machines.h values.
      sparc32: Kill SUN4C_LOCK_{VADDR,END} and associated comment.
      sparc32: Put back SPARC_BRANCH.
      sparc32: Remove sun4c floppy assembler.
      sparc32: Stop warning about sun4/sun4c in SMP Kconfig option.
      sparc32: Kill asm/vac-ops.h
      sparc32: Restore SMP build and rectify sun4m NMI when non-SMP.
      sparc32: Remove sparc_lvl15_nmi().
      sparc32: Remove sun4{,c} control reg definitions from contregs.h.
      sparc32: Remove ldXa and stXa defines, unused.
      sparc32: Remove sun4c tlb/vac insn patching from entry.S
      sparc32: Remove some more sun4c code from floppy glue.
      sparc32: Kill unused defines from asm/head_32.h
      sparc32: Remove sparc_cpu_model read from floppy interrupt handler.
      sparc32: Remove sun4 and sun4c from enum sparc_cpu.
      sparc32: Trivial removal of sun4c references in comments.
      sparc32: Add back early sun4/sun4c detection so we can warn properly.
      sparc32: Un-btfixup PGDIR_{SHIFT,SIZE,MASK} {USER_,}PTRS_PER_{PGD,PMD}
      sparc32: Un-btfixup {pte,pmd,pgd}_clear().
      sparc32: Un-btfixup pmd_page and pte_pfn.
      sparc32: Un-btfixup PAGE_{NONE,COPY,READONLY,SHARED,KERNEL}.
      sparc32: Un-btfixup pgd_{none,bad,present}.
      sparc32: Un-btfixup pmd_{bad,present}().
      sparc32: Un-btfixup set_pte, pte_present, mk_pte{_phys,_io}().
      sparc32: Un-btfixup pte_{write,dirty,young}i
      sparc32: Un-btfixup more PTE constants and PTE ops.
      sparc32: Pass -mcpu=v7 explicitly to gcc.
      sparc32: Kill btfixup for xchg()'s 'swap' instruction.
      sparc32: Un-btfixup update_mmu_cache().
      sparc: Kill mmu_{un,}lockarea().
      sparc32: Convert mmu_* interfaces from btfixup to method ops.
      sparc32: Remove unused declarations in srmmu.c
      sparc32: Move cache and TLB flushes over to method ops.
      sparc32: Implement hard_smp_processor_id() via instruction patching.
      sparc32: Kill unused hard_smp{4m,4d,leon}_processor_id() inlined.
      sparc64: Remove pointless assignment in floppy support.
      sparc32: Remove cypress cpu support.
      sparc32: Build kernel with -mcpu=v8
      sparc32: Kill off software 32-bit multiply/divide routines.
      sparc32: Add ucmpdi2.o to obj-y instead of lib-y.
      sparc32: Remove completely unused code from asm/cache.h
      sparc32: Move GET_PROCESSOR*_ID() out of asm/asmmacro.h
      sparc32: Kill boot_cpu_id4
      sparc32: Remove unused empty_bad_page{,_table} declarations.
      sparc32: Delete asm/smpprim.h
      sparc32: Remove asm/sysen.h header.

Joe Perches (1):
      sparc: Use vsprintf extention %pf with builtin_return_address

Paul Gortmaker (1):
      sparc: fix build fail in mm/init_64.c when NEED_MULTIPLE_NODES is off

Sam Ravnborg (54):
      sparc32: rename sparc_irq_config to sparc_config
      sparc32: fix build of pcic
      sparc32: drop sun4c support
      sparc32: remove calls to sun4c dummy mm inits functions
      sparc32: remove sun4c traps
      sparc32: drop sun4c specific ___xchg32 implementation
      sparc32: remove all uses of ARCH_SUN4C
      sparc32: delete pgtsun4c.h
      sparc32: drop sun4c specific stack validation
      sparc32: drop sun4c window overflow stack checking routine
      sparc32: drop sun4c stack checking routine
      sparc32: drop sun4c user stack checking routine
      sparc32: drop test for sun4c in signal_32
      sparc32: drop sun4c bits from head_32.S
      sparc32: drop btfixup for alloc_thread_info_node/free_thread_info
      sparc32: use inline versions of pgprot_noncached, pte_to_pgoff and pgoff_to_pte
      sparc32: remove sun4c specific variables from head_32.S
      sparc32: drop prom version check in head_32.S
      sparc32: drop extra getprop call during boot
      sparc32: simpler cputype check in head_32.S
      sparc32: fix warning in floopy glue
      sparc32: code cleanup in floppy glue
      sparc32: drop btfixup for switch_mm
      sparc32: drop btfixup for check_pgt_cache
      sparc32: drop unused type/extern
      sparc32: drop loadmmu
      sparc32: drop unused code in process_32
      sparc32: drop btfixup in pgalloc_32.h
      sparc32: drop btfixup in pgtable_32.h
      sparc32: drop btfixup in mmu_context_32.h
      sparc32: drop unused prototype from timer_32.h
      sparc32: drop btfixup in page_32.h
      sparc32: drop unused set_irq_udt
      sparc32: drop unused clear_cpu_int
      sparc32: move smp ipi to method ops
      sparc32: remove remaining users of btfixup
      sparc32: remove runtime btfix support
      sparc32: drop build time btfixup patching
      sparc32: cleanup mm/fault_32.c
      sparc32: delete muldiv.o from Makefile
      sparc: clean up Makefile
      sparc: remove obsolete documentation
      sparc: introduce arch/sparc/Kbuild
      sparc32: add ucmpdi2
      sparc64: renamed ttable.S to ttable_64.S
      sparc32: move trap table to a separate file
      sparc32,leon: move leon ASI definitions to asi.h
      sparc32,leon: remove duplicate UART register definitions
      sparc32,leon: remove duplicate definitions in leon.h
      sparc32,leon: move leon mmu functions to leon_mm.c
      sparc32: drop unused functions in pgtsrmmu.h
      sparc32: drop unused inline functions in srmmu.c
      sparc32: fix cpuid_patch run-time patching
      sparc32: use flushi when run-time patching in per_cpu_patch

Tkhai Kirill (1):
      sparc32: generic clockevent support

 Documentation/sparc/README-2.5              |   46 -
 arch/sparc/Kbuild                           |    7 +
 arch/sparc/Kconfig                          |   10 +-
 arch/sparc/Makefile                         |   47 +-
 arch/sparc/boot/Makefile                    |   61 +-
 arch/sparc/boot/btfixupprep.c               |  386 -----
 arch/sparc/include/asm/asi.h                |   14 +
 arch/sparc/include/asm/asmmacro.h           |   17 -
 arch/sparc/include/asm/btfixup.h            |  208 ---
 arch/sparc/include/asm/cache.h              |  114 --
 arch/sparc/include/asm/cacheflush.h         |    4 +
 arch/sparc/include/asm/cacheflush_32.h      |   73 +-
 arch/sparc/include/asm/cacheflush_64.h      |    3 -
 arch/sparc/include/asm/cachetlb_32.h        |   29 +
 arch/sparc/include/asm/cmpxchg_32.h         |   27 -
 arch/sparc/include/asm/contregs.h           |   22 -
 arch/sparc/include/asm/cpu_type.h           |   20 +-
 arch/sparc/include/asm/cpudata_32.h         |    1 -
 arch/sparc/include/asm/cypress.h            |   79 -
 arch/sparc/include/asm/dma.h                |   52 +-
 arch/sparc/include/asm/elf_32.h             |   13 +-
 arch/sparc/include/asm/floppy_32.h          |   45 +-
 arch/sparc/include/asm/floppy_64.h          |    6 +-
 arch/sparc/include/asm/head_32.h            |   21 +-
 arch/sparc/include/asm/leon.h               |   61 +-
 arch/sparc/include/asm/machines.h           |   23 +-
 arch/sparc/include/asm/mbus.h               |    4 -
 arch/sparc/include/asm/memreg.h             |   51 -
 arch/sparc/include/asm/mmu_context_32.h     |   11 +-
 arch/sparc/include/asm/obio.h               |   13 -
 arch/sparc/include/asm/oplib_32.h           |    8 -
 arch/sparc/include/asm/page_32.h            |   13 +-
 arch/sparc/include/asm/pgalloc_32.h         |   76 +-
 arch/sparc/include/asm/pgtable_32.h         |  387 ++---
 arch/sparc/include/asm/pgtable_64.h         |    4 -
 arch/sparc/include/asm/pgtsrmmu.h           |   50 -
 arch/sparc/include/asm/pgtsun4c.h           |  172 ---
 arch/sparc/include/asm/processor_32.h       |    1 -
 arch/sparc/include/asm/setup.h              |    3 -
 arch/sparc/include/asm/shmparam_32.h        |    4 +-
 arch/sparc/include/asm/smp_32.h             |  114 +-
 arch/sparc/include/asm/smpprim.h            |   54 -
 arch/sparc/include/asm/string_32.h          |   63 +-
 arch/sparc/include/asm/sysen.h              |   15 -
 arch/sparc/include/asm/thread_info_32.h     |    8 +-
 arch/sparc/include/asm/timer_32.h           |   33 +-
 arch/sparc/include/asm/timex_32.h           |    1 -
 arch/sparc/include/asm/tlbflush_32.h        |   56 +-
 arch/sparc/include/asm/uaccess_32.h         |    1 -
 arch/sparc/include/asm/vac-ops.h            |  127 --
 arch/sparc/include/asm/vaddrs.h             |   16 -
 arch/sparc/include/asm/winmacro.h           |   49 +-
 arch/sparc/kernel/Makefile                  |    3 +-
 arch/sparc/kernel/auxio_32.c                |   13 +-
 arch/sparc/kernel/devices.c                 |    4 -
 arch/sparc/kernel/ds.c                      |    2 +-
 arch/sparc/kernel/entry.S                   |  432 +-----
 arch/sparc/kernel/etrap_32.S                |   50 +-
 arch/sparc/kernel/head_32.S                 |  639 +-------
 arch/sparc/kernel/head_64.S                 |    2 +-
 arch/sparc/kernel/idprom.c                  |   19 +-
 arch/sparc/kernel/ioport.c                  |   23 +-
 arch/sparc/kernel/irq.h                     |   60 +-
 arch/sparc/kernel/irq_32.c                  |   19 +-
 arch/sparc/kernel/irq_64.c                  |    2 +-
 arch/sparc/kernel/kernel.h                  |   10 -
 arch/sparc/kernel/leon_kernel.c             |   98 +-
 arch/sparc/kernel/leon_smp.c                |  113 +-
 arch/sparc/kernel/module.c                  |   21 +-
 arch/sparc/kernel/muldiv.c                  |  238 ---
 arch/sparc/kernel/of_device_32.c            |    4 +-
 arch/sparc/kernel/pcic.c                    |   55 +-
 arch/sparc/kernel/process_32.c              |  116 --
 arch/sparc/kernel/rtrap_32.S                |   76 +-
 arch/sparc/kernel/rtrap_64.S                |   12 +-
 arch/sparc/kernel/setup_32.c                |   70 +-
 arch/sparc/kernel/signal_32.c               |    7 +-
 arch/sparc/kernel/smp_32.c                  |  175 +--
 arch/sparc/kernel/sparc_ksyms_32.c          |   14 -
 arch/sparc/kernel/sun4c_irq.c               |  264 ----
 arch/sparc/kernel/sun4d_irq.c               |   48 +-
 arch/sparc/kernel/sun4d_smp.c               |  119 +-
 arch/sparc/kernel/sun4m_irq.c               |   58 +-
 arch/sparc/kernel/sun4m_smp.c               |  117 +-
 arch/sparc/kernel/sys_sparc_32.c            |   11 -
 arch/sparc/kernel/time_32.c                 |  220 ++-
 arch/sparc/kernel/trampoline_32.S           |   22 +-
 arch/sparc/kernel/traps_32.c                |    2 -
 arch/sparc/kernel/ttable_32.S               |  417 ++++++
 arch/sparc/kernel/{ttable.S => ttable_64.S} |    0
 arch/sparc/kernel/unaligned_64.c            |    1 -
 arch/sparc/kernel/wof.S                     |   72 +-
 arch/sparc/kernel/wuf.S                     |   60 +-
 arch/sparc/lib/Makefile                     |    6 +-
 arch/sparc/lib/ashldi3.S                    |    7 +-
 arch/sparc/lib/ashrdi3.S                    |    7 +-
 arch/sparc/lib/atomic_32.S                  |   44 -
 arch/sparc/lib/atomic_64.S                  |   49 +-
 arch/sparc/lib/bitops.S                     |   37 +-
 arch/sparc/lib/blockops.S                   |   10 +-
 arch/sparc/lib/bzero.S                      |   20 +-
 arch/sparc/lib/divdi3.S                     |    4 +-
 arch/sparc/lib/ipcsum.S                     |    9 +-
 arch/sparc/lib/ksyms.c                      |   22 -
 arch/sparc/lib/lshrdi3.S                    |    5 +-
 arch/sparc/lib/memmove.S                    |    9 +-
 arch/sparc/lib/mul.S                        |  137 --
 arch/sparc/lib/muldi3.S                     |    4 +-
 arch/sparc/lib/rem.S                        |  384 -----
 arch/sparc/lib/sdiv.S                       |  381 -----
 arch/sparc/lib/strlen_user_64.S             |    8 +-
 arch/sparc/lib/strncmp_32.S                 |    8 +-
 arch/sparc/lib/strncmp_64.S                 |    8 +-
 arch/sparc/lib/strncpy_from_user_32.S       |    6 +-
 arch/sparc/lib/strncpy_from_user_64.S       |    8 +-
 arch/sparc/lib/ucmpdi2.c                    |   19 +
 arch/sparc/lib/udiv.S                       |  357 -----
 arch/sparc/lib/udivdi3.S                    |    3 +-
 arch/sparc/lib/umul.S                       |  171 ---
 arch/sparc/lib/urem.S                       |  357 -----
 arch/sparc/lib/xor.S                        |   50 +-
 arch/sparc/mm/Makefile                      |    9 +-
 arch/sparc/mm/btfixup.c                     |  328 ----
 arch/sparc/mm/fault_32.c                    |  207 +--
 arch/sparc/mm/init_32.c                     |   51 -
 arch/sparc/mm/init_64.c                     |  121 +-
 arch/sparc/mm/io-unit.c                     |   35 +-
 arch/sparc/mm/iommu.c                       |   71 +-
 arch/sparc/mm/leon_mm.c                     |   95 +-
 arch/sparc/mm/loadmmu.c                     |   43 -
 arch/sparc/mm/nosun4c.c                     |   77 -
 arch/sparc/mm/srmmu.c                       | 1232 ++++-----------
 arch/sparc/mm/srmmu.h                       |    4 +
 arch/sparc/mm/sun4c.c                       | 2166 ---------------------------
 arch/sparc/mm/viking.S                      |    1 -
 arch/sparc/prom/Makefile                    |    1 -
 arch/sparc/prom/segment.c                   |   28 -
 137 files changed, 2240 insertions(+), 10770 deletions(-)
 delete mode 100644 Documentation/sparc/README-2.5
 create mode 100644 arch/sparc/Kbuild
 delete mode 100644 arch/sparc/boot/btfixupprep.c
 delete mode 100644 arch/sparc/include/asm/btfixup.h
 create mode 100644 arch/sparc/include/asm/cachetlb_32.h
 delete mode 100644 arch/sparc/include/asm/cypress.h
 delete mode 100644 arch/sparc/include/asm/memreg.h
 delete mode 100644 arch/sparc/include/asm/pgtsun4c.h
 delete mode 100644 arch/sparc/include/asm/smpprim.h
 delete mode 100644 arch/sparc/include/asm/sysen.h
 delete mode 100644 arch/sparc/include/asm/vac-ops.h
 delete mode 100644 arch/sparc/kernel/muldiv.c
 delete mode 100644 arch/sparc/kernel/sun4c_irq.c
 create mode 100644 arch/sparc/kernel/ttable_32.S
 rename arch/sparc/kernel/{ttable.S => ttable_64.S} (100%)
 delete mode 100644 arch/sparc/lib/atomic_32.S
 delete mode 100644 arch/sparc/lib/mul.S
 delete mode 100644 arch/sparc/lib/rem.S
 delete mode 100644 arch/sparc/lib/sdiv.S
 create mode 100644 arch/sparc/lib/ucmpdi2.c
 delete mode 100644 arch/sparc/lib/udiv.S
 delete mode 100644 arch/sparc/lib/umul.S
 delete mode 100644 arch/sparc/lib/urem.S
 delete mode 100644 arch/sparc/mm/btfixup.c
 delete mode 100644 arch/sparc/mm/loadmmu.c
 delete mode 100644 arch/sparc/mm/nosun4c.c
 create mode 100644 arch/sparc/mm/srmmu.h
 delete mode 100644 arch/sparc/mm/sun4c.c
 delete mode 100644 arch/sparc/prom/segment.c

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2012-05-21  9:03 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2012-05-21  9:03 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


1) Kill off support for sun4c and Cypress sun4m chips.

   And as a result we were able to also kill off that ugly
   btfixup thing that required multi-stage links of the final
   vmlinux image in the Kbuild system.  This should make the
   kbuild maintainers really happy.

   Thanks a lot to Sam Ravnborg for his tireless efforts to
   get this going.

2) Convert sparc64 to nobootmem.  I suspect now with sparc32
   being a lot cleaner, it should be able to fall in line and
   modernize in this area too.

3) Make sparc32 use generic clockevents, from Tkhai Kirill.

There is going to be a merge conflict between the commit in the
net-next tree that adds the Sparc BPF JIT, and the one in here which
adds arch/sparc/Kbuild.  It should be quite easy to resolve.

Please pull, thanks a lot!

The following changes since commit 82b769063598d01a8b24abf250a53f8b437e09f1:

  Merge branch 'stable' of git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile (2012-04-26 15:36:27 -0700)

are available in the git repository at:


  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-next master

for you to fetch changes up to 1edc17832d8f49a0263d364c453ea35da0e4e2a6:

  sparc32: use flushi when run-time patching in per_cpu_patch (2012-05-20 13:33:36 -0700)

----------------------------------------------------------------
Danny Kukawka (1):
      arch/sparc/kernel/unaligned_64.c: included linux/bitops.h twice

David S. Miller (54):
      Merge git://git.kernel.org/.../davem/sparc
      sparc64: Remove trap return code which is now unnecessary.
      Merge git://git.kernel.org/.../torvalds/linux
      sparc64: Convert over to NO_BOOTMEM.
      sparc64: Use node local allocations for IRQ stacks.
      sparc64: Do not set max_mapnr.
      sparc32: Remove inline strncmp "optimization" for constant counts.
      sparc: Convert some assembler over to linakge.h's ENTRY/ENDPROC
      sparc: Clear out unused asm/machines.h values.
      sparc32: Kill SUN4C_LOCK_{VADDR,END} and associated comment.
      sparc32: Put back SPARC_BRANCH.
      sparc32: Remove sun4c floppy assembler.
      sparc32: Stop warning about sun4/sun4c in SMP Kconfig option.
      sparc32: Kill asm/vac-ops.h
      sparc32: Restore SMP build and rectify sun4m NMI when non-SMP.
      sparc32: Remove sparc_lvl15_nmi().
      sparc32: Remove sun4{,c} control reg definitions from contregs.h.
      sparc32: Remove ldXa and stXa defines, unused.
      sparc32: Remove sun4c tlb/vac insn patching from entry.S
      sparc32: Remove some more sun4c code from floppy glue.
      sparc32: Kill unused defines from asm/head_32.h
      sparc32: Remove sparc_cpu_model read from floppy interrupt handler.
      sparc32: Remove sun4 and sun4c from enum sparc_cpu.
      sparc32: Trivial removal of sun4c references in comments.
      sparc32: Add back early sun4/sun4c detection so we can warn properly.
      sparc32: Un-btfixup PGDIR_{SHIFT,SIZE,MASK} {USER_,}PTRS_PER_{PGD,PMD}
      sparc32: Un-btfixup {pte,pmd,pgd}_clear().
      sparc32: Un-btfixup pmd_page and pte_pfn.
      sparc32: Un-btfixup PAGE_{NONE,COPY,READONLY,SHARED,KERNEL}.
      sparc32: Un-btfixup pgd_{none,bad,present}.
      sparc32: Un-btfixup pmd_{bad,present}().
      sparc32: Un-btfixup set_pte, pte_present, mk_pte{_phys,_io}().
      sparc32: Un-btfixup pte_{write,dirty,young}i
      sparc32: Un-btfixup more PTE constants and PTE ops.
      sparc32: Pass -mcpu=v7 explicitly to gcc.
      sparc32: Kill btfixup for xchg()'s 'swap' instruction.
      sparc32: Un-btfixup update_mmu_cache().
      sparc: Kill mmu_{un,}lockarea().
      sparc32: Convert mmu_* interfaces from btfixup to method ops.
      sparc32: Remove unused declarations in srmmu.c
      sparc32: Move cache and TLB flushes over to method ops.
      sparc32: Implement hard_smp_processor_id() via instruction patching.
      sparc32: Kill unused hard_smp{4m,4d,leon}_processor_id() inlined.
      sparc64: Remove pointless assignment in floppy support.
      sparc32: Remove cypress cpu support.
      sparc32: Build kernel with -mcpu=v8
      sparc32: Kill off software 32-bit multiply/divide routines.
      sparc32: Add ucmpdi2.o to obj-y instead of lib-y.
      sparc32: Remove completely unused code from asm/cache.h
      sparc32: Move GET_PROCESSOR*_ID() out of asm/asmmacro.h
      sparc32: Kill boot_cpu_id4
      sparc32: Remove unused empty_bad_page{,_table} declarations.
      sparc32: Delete asm/smpprim.h
      sparc32: Remove asm/sysen.h header.

Joe Perches (1):
      sparc: Use vsprintf extention %pf with builtin_return_address

Paul Gortmaker (1):
      sparc: fix build fail in mm/init_64.c when NEED_MULTIPLE_NODES is off

Sam Ravnborg (54):
      sparc32: rename sparc_irq_config to sparc_config
      sparc32: fix build of pcic
      sparc32: drop sun4c support
      sparc32: remove calls to sun4c dummy mm inits functions
      sparc32: remove sun4c traps
      sparc32: drop sun4c specific ___xchg32 implementation
      sparc32: remove all uses of ARCH_SUN4C
      sparc32: delete pgtsun4c.h
      sparc32: drop sun4c specific stack validation
      sparc32: drop sun4c window overflow stack checking routine
      sparc32: drop sun4c stack checking routine
      sparc32: drop sun4c user stack checking routine
      sparc32: drop test for sun4c in signal_32
      sparc32: drop sun4c bits from head_32.S
      sparc32: drop btfixup for alloc_thread_info_node/free_thread_info
      sparc32: use inline versions of pgprot_noncached, pte_to_pgoff and pgoff_to_pte
      sparc32: remove sun4c specific variables from head_32.S
      sparc32: drop prom version check in head_32.S
      sparc32: drop extra getprop call during boot
      sparc32: simpler cputype check in head_32.S
      sparc32: fix warning in floopy glue
      sparc32: code cleanup in floppy glue
      sparc32: drop btfixup for switch_mm
      sparc32: drop btfixup for check_pgt_cache
      sparc32: drop unused type/extern
      sparc32: drop loadmmu
      sparc32: drop unused code in process_32
      sparc32: drop btfixup in pgalloc_32.h
      sparc32: drop btfixup in pgtable_32.h
      sparc32: drop btfixup in mmu_context_32.h
      sparc32: drop unused prototype from timer_32.h
      sparc32: drop btfixup in page_32.h
      sparc32: drop unused set_irq_udt
      sparc32: drop unused clear_cpu_int
      sparc32: move smp ipi to method ops
      sparc32: remove remaining users of btfixup
      sparc32: remove runtime btfix support
      sparc32: drop build time btfixup patching
      sparc32: cleanup mm/fault_32.c
      sparc32: delete muldiv.o from Makefile
      sparc: clean up Makefile
      sparc: remove obsolete documentation
      sparc: introduce arch/sparc/Kbuild
      sparc32: add ucmpdi2
      sparc64: renamed ttable.S to ttable_64.S
      sparc32: move trap table to a separate file
      sparc32,leon: move leon ASI definitions to asi.h
      sparc32,leon: remove duplicate UART register definitions
      sparc32,leon: remove duplicate definitions in leon.h
      sparc32,leon: move leon mmu functions to leon_mm.c
      sparc32: drop unused functions in pgtsrmmu.h
      sparc32: drop unused inline functions in srmmu.c
      sparc32: fix cpuid_patch run-time patching
      sparc32: use flushi when run-time patching in per_cpu_patch

Tkhai Kirill (1):
      sparc32: generic clockevent support

 Documentation/sparc/README-2.5              |   46 -
 arch/sparc/Kbuild                           |    7 +
 arch/sparc/Kconfig                          |   10 +-
 arch/sparc/Makefile                         |   47 +-
 arch/sparc/boot/Makefile                    |   61 +-
 arch/sparc/boot/btfixupprep.c               |  386 -----
 arch/sparc/include/asm/asi.h                |   14 +
 arch/sparc/include/asm/asmmacro.h           |   17 -
 arch/sparc/include/asm/btfixup.h            |  208 ---
 arch/sparc/include/asm/cache.h              |  114 --
 arch/sparc/include/asm/cacheflush.h         |    4 +
 arch/sparc/include/asm/cacheflush_32.h      |   73 +-
 arch/sparc/include/asm/cacheflush_64.h      |    3 -
 arch/sparc/include/asm/cachetlb_32.h        |   29 +
 arch/sparc/include/asm/cmpxchg_32.h         |   27 -
 arch/sparc/include/asm/contregs.h           |   22 -
 arch/sparc/include/asm/cpu_type.h           |   20 +-
 arch/sparc/include/asm/cpudata_32.h         |    1 -
 arch/sparc/include/asm/cypress.h            |   79 -
 arch/sparc/include/asm/dma.h                |   52 +-
 arch/sparc/include/asm/elf_32.h             |   13 +-
 arch/sparc/include/asm/floppy_32.h          |   45 +-
 arch/sparc/include/asm/floppy_64.h          |    6 +-
 arch/sparc/include/asm/head_32.h            |   21 +-
 arch/sparc/include/asm/leon.h               |   61 +-
 arch/sparc/include/asm/machines.h           |   23 +-
 arch/sparc/include/asm/mbus.h               |    4 -
 arch/sparc/include/asm/memreg.h             |   51 -
 arch/sparc/include/asm/mmu_context_32.h     |   11 +-
 arch/sparc/include/asm/obio.h               |   13 -
 arch/sparc/include/asm/oplib_32.h           |    8 -
 arch/sparc/include/asm/page_32.h            |   13 +-
 arch/sparc/include/asm/pgalloc_32.h         |   76 +-
 arch/sparc/include/asm/pgtable_32.h         |  387 ++---
 arch/sparc/include/asm/pgtable_64.h         |    4 -
 arch/sparc/include/asm/pgtsrmmu.h           |   50 -
 arch/sparc/include/asm/pgtsun4c.h           |  172 ---
 arch/sparc/include/asm/processor_32.h       |    1 -
 arch/sparc/include/asm/setup.h              |    3 -
 arch/sparc/include/asm/shmparam_32.h        |    4 +-
 arch/sparc/include/asm/smp_32.h             |  114 +-
 arch/sparc/include/asm/smpprim.h            |   54 -
 arch/sparc/include/asm/string_32.h          |   63 +-
 arch/sparc/include/asm/sysen.h              |   15 -
 arch/sparc/include/asm/thread_info_32.h     |    8 +-
 arch/sparc/include/asm/timer_32.h           |   33 +-
 arch/sparc/include/asm/timex_32.h           |    1 -
 arch/sparc/include/asm/tlbflush_32.h        |   56 +-
 arch/sparc/include/asm/uaccess_32.h         |    1 -
 arch/sparc/include/asm/vac-ops.h            |  127 --
 arch/sparc/include/asm/vaddrs.h             |   16 -
 arch/sparc/include/asm/winmacro.h           |   49 +-
 arch/sparc/kernel/Makefile                  |    3 +-
 arch/sparc/kernel/auxio_32.c                |   13 +-
 arch/sparc/kernel/devices.c                 |    4 -
 arch/sparc/kernel/ds.c                      |    2 +-
 arch/sparc/kernel/entry.S                   |  432 +-----
 arch/sparc/kernel/etrap_32.S                |   50 +-
 arch/sparc/kernel/head_32.S                 |  639 +-------
 arch/sparc/kernel/head_64.S                 |    2 +-
 arch/sparc/kernel/idprom.c                  |   19 +-
 arch/sparc/kernel/ioport.c                  |   23 +-
 arch/sparc/kernel/irq.h                     |   60 +-
 arch/sparc/kernel/irq_32.c                  |   19 +-
 arch/sparc/kernel/irq_64.c                  |    2 +-
 arch/sparc/kernel/kernel.h                  |   10 -
 arch/sparc/kernel/leon_kernel.c             |   98 +-
 arch/sparc/kernel/leon_smp.c                |  113 +-
 arch/sparc/kernel/module.c                  |   21 +-
 arch/sparc/kernel/muldiv.c                  |  238 ---
 arch/sparc/kernel/of_device_32.c            |    4 +-
 arch/sparc/kernel/pcic.c                    |   55 +-
 arch/sparc/kernel/process_32.c              |  116 --
 arch/sparc/kernel/rtrap_32.S                |   76 +-
 arch/sparc/kernel/rtrap_64.S                |   12 +-
 arch/sparc/kernel/setup_32.c                |   70 +-
 arch/sparc/kernel/signal_32.c               |    7 +-
 arch/sparc/kernel/smp_32.c                  |  175 +--
 arch/sparc/kernel/sparc_ksyms_32.c          |   14 -
 arch/sparc/kernel/sun4c_irq.c               |  264 ----
 arch/sparc/kernel/sun4d_irq.c               |   48 +-
 arch/sparc/kernel/sun4d_smp.c               |  119 +-
 arch/sparc/kernel/sun4m_irq.c               |   58 +-
 arch/sparc/kernel/sun4m_smp.c               |  117 +-
 arch/sparc/kernel/sys_sparc_32.c            |   11 -
 arch/sparc/kernel/time_32.c                 |  220 ++-
 arch/sparc/kernel/trampoline_32.S           |   22 +-
 arch/sparc/kernel/traps_32.c                |    2 -
 arch/sparc/kernel/ttable_32.S               |  417 ++++++
 arch/sparc/kernel/{ttable.S => ttable_64.S} |    0
 arch/sparc/kernel/unaligned_64.c            |    1 -
 arch/sparc/kernel/wof.S                     |   72 +-
 arch/sparc/kernel/wuf.S                     |   60 +-
 arch/sparc/lib/Makefile                     |    6 +-
 arch/sparc/lib/ashldi3.S                    |    7 +-
 arch/sparc/lib/ashrdi3.S                    |    7 +-
 arch/sparc/lib/atomic_32.S                  |   44 -
 arch/sparc/lib/atomic_64.S                  |   49 +-
 arch/sparc/lib/bitops.S                     |   37 +-
 arch/sparc/lib/blockops.S                   |   10 +-
 arch/sparc/lib/bzero.S                      |   20 +-
 arch/sparc/lib/divdi3.S                     |    4 +-
 arch/sparc/lib/ipcsum.S                     |    9 +-
 arch/sparc/lib/ksyms.c                      |   22 -
 arch/sparc/lib/lshrdi3.S                    |    5 +-
 arch/sparc/lib/memmove.S                    |    9 +-
 arch/sparc/lib/mul.S                        |  137 --
 arch/sparc/lib/muldi3.S                     |    4 +-
 arch/sparc/lib/rem.S                        |  384 -----
 arch/sparc/lib/sdiv.S                       |  381 -----
 arch/sparc/lib/strlen_user_64.S             |    8 +-
 arch/sparc/lib/strncmp_32.S                 |    8 +-
 arch/sparc/lib/strncmp_64.S                 |    8 +-
 arch/sparc/lib/strncpy_from_user_32.S       |    6 +-
 arch/sparc/lib/strncpy_from_user_64.S       |    8 +-
 arch/sparc/lib/ucmpdi2.c                    |   19 +
 arch/sparc/lib/udiv.S                       |  357 -----
 arch/sparc/lib/udivdi3.S                    |    3 +-
 arch/sparc/lib/umul.S                       |  171 ---
 arch/sparc/lib/urem.S                       |  357 -----
 arch/sparc/lib/xor.S                        |   50 +-
 arch/sparc/mm/Makefile                      |    9 +-
 arch/sparc/mm/btfixup.c                     |  328 ----
 arch/sparc/mm/fault_32.c                    |  207 +--
 arch/sparc/mm/init_32.c                     |   51 -
 arch/sparc/mm/init_64.c                     |  121 +-
 arch/sparc/mm/io-unit.c                     |   35 +-
 arch/sparc/mm/iommu.c                       |   71 +-
 arch/sparc/mm/leon_mm.c                     |   95 +-
 arch/sparc/mm/loadmmu.c                     |   43 -
 arch/sparc/mm/nosun4c.c                     |   77 -
 arch/sparc/mm/srmmu.c                       | 1232 ++++-----------
 arch/sparc/mm/srmmu.h                       |    4 +
 arch/sparc/mm/sun4c.c                       | 2166 ---------------------------
 arch/sparc/mm/viking.S                      |    1 -
 arch/sparc/prom/Makefile                    |    1 -
 arch/sparc/prom/segment.c                   |   28 -
 137 files changed, 2240 insertions(+), 10770 deletions(-)
 delete mode 100644 Documentation/sparc/README-2.5
 create mode 100644 arch/sparc/Kbuild
 delete mode 100644 arch/sparc/boot/btfixupprep.c
 delete mode 100644 arch/sparc/include/asm/btfixup.h
 create mode 100644 arch/sparc/include/asm/cachetlb_32.h
 delete mode 100644 arch/sparc/include/asm/cypress.h
 delete mode 100644 arch/sparc/include/asm/memreg.h
 delete mode 100644 arch/sparc/include/asm/pgtsun4c.h
 delete mode 100644 arch/sparc/include/asm/smpprim.h
 delete mode 100644 arch/sparc/include/asm/sysen.h
 delete mode 100644 arch/sparc/include/asm/vac-ops.h
 delete mode 100644 arch/sparc/kernel/muldiv.c
 delete mode 100644 arch/sparc/kernel/sun4c_irq.c
 create mode 100644 arch/sparc/kernel/ttable_32.S
 rename arch/sparc/kernel/{ttable.S => ttable_64.S} (100%)
 delete mode 100644 arch/sparc/lib/atomic_32.S
 delete mode 100644 arch/sparc/lib/mul.S
 delete mode 100644 arch/sparc/lib/rem.S
 delete mode 100644 arch/sparc/lib/sdiv.S
 create mode 100644 arch/sparc/lib/ucmpdi2.c
 delete mode 100644 arch/sparc/lib/udiv.S
 delete mode 100644 arch/sparc/lib/umul.S
 delete mode 100644 arch/sparc/lib/urem.S
 delete mode 100644 arch/sparc/mm/btfixup.c
 delete mode 100644 arch/sparc/mm/loadmmu.c
 delete mode 100644 arch/sparc/mm/nosun4c.c
 create mode 100644 arch/sparc/mm/srmmu.h
 delete mode 100644 arch/sparc/mm/sun4c.c
 delete mode 100644 arch/sparc/prom/segment.c

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] Sparc
  2012-05-21  9:03 ` David Miller
@ 2012-05-21 17:37   ` Linus Torvalds
  -1 siblings, 0 replies; 548+ messages in thread
From: Linus Torvalds @ 2012-05-21 17:37 UTC (permalink / raw)
  To: David Miller; +Cc: akpm, sparclinux, linux-kernel

On Mon, May 21, 2012 at 2:03 AM, David Miller <davem@davemloft.net> wrote:
>
> There is going to be a merge conflict between the commit in the
> net-next tree that adds the Sparc BPF JIT, and the one in here which
> adds arch/sparc/Kbuild.  It should be quite easy to resolve.

Ok, so that had a very obvious resolution, and a "cleaner, but scarier" version.

I picked the cleaner but scarier one - the one that should make the
BFP JIT be built when you do "make arch/sparc" by putting the net
thing into the new arch/sparc/Kbuild file.

I did minimal testing with "make ARCH=sparc" without actually
*building* anything, and in the process also fixed the fact that you
should not select HAVE_BPF_JIT unless networking is enabled (crappy
interface - maybe that "if NET" part really should be in the
HAVE_BPF_JIT rules, not in all the architectures?)

But I do not have (nor do I really want) a sparc cross-compile
environment, so maybe my "cleaner" resolution is just garbage. Can you
please check the end result?

So if I broke something, please call me names and tell me to not try
to think too much, and worry my little brain with things I don't
understand.

The thing is pushed out, so you can see what I did.

                    Linus

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] Sparc
@ 2012-05-21 17:37   ` Linus Torvalds
  0 siblings, 0 replies; 548+ messages in thread
From: Linus Torvalds @ 2012-05-21 17:37 UTC (permalink / raw)
  To: David Miller; +Cc: akpm, sparclinux, linux-kernel

On Mon, May 21, 2012 at 2:03 AM, David Miller <davem@davemloft.net> wrote:
>
> There is going to be a merge conflict between the commit in the
> net-next tree that adds the Sparc BPF JIT, and the one in here which
> adds arch/sparc/Kbuild.  It should be quite easy to resolve.

Ok, so that had a very obvious resolution, and a "cleaner, but scarier" version.

I picked the cleaner but scarier one - the one that should make the
BFP JIT be built when you do "make arch/sparc" by putting the net
thing into the new arch/sparc/Kbuild file.

I did minimal testing with "make ARCH=sparc" without actually
*building* anything, and in the process also fixed the fact that you
should not select HAVE_BPF_JIT unless networking is enabled (crappy
interface - maybe that "if NET" part really should be in the
HAVE_BPF_JIT rules, not in all the architectures?)

But I do not have (nor do I really want) a sparc cross-compile
environment, so maybe my "cleaner" resolution is just garbage. Can you
please check the end result?

So if I broke something, please call me names and tell me to not try
to think too much, and worry my little brain with things I don't
understand.

The thing is pushed out, so you can see what I did.

                    Linus

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] Sparc
  2012-05-21 17:37   ` Linus Torvalds
@ 2012-05-21 18:24     ` Sam Ravnborg
  -1 siblings, 0 replies; 548+ messages in thread
From: Sam Ravnborg @ 2012-05-21 18:24 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: David Miller, akpm, sparclinux, linux-kernel

On Mon, May 21, 2012 at 10:37:23AM -0700, Linus Torvalds wrote:
> On Mon, May 21, 2012 at 2:03 AM, David Miller <davem@davemloft.net> wrote:
> >
> > There is going to be a merge conflict between the commit in the
> > net-next tree that adds the Sparc BPF JIT, and the one in here which
> > adds arch/sparc/Kbuild.  It should be quite easy to resolve.
> 
> Ok, so that had a very obvious resolution, and a "cleaner, but scarier" version.
> 
> I picked the cleaner but scarier one - the one that should make the
> BFP JIT be built when you do "make arch/sparc" by putting the net
> thing into the new arch/sparc/Kbuild file.
OK.

> 
> I did minimal testing with "make ARCH=sparc" without actually
> *building* anything, and in the process also fixed the fact that you
> should not select HAVE_BPF_JIT unless networking is enabled (crappy
> interface - maybe that "if NET" part really should be in the
> HAVE_BPF_JIT rules, not in all the architectures?)

HAVE_BPF_JIT is only used to make the BPF_JIT prompt visible.
And BPF_JIT depends on NET.

So the "if NET" part in the select is redundant but not strictly wrong.

	Sam

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] Sparc
@ 2012-05-21 18:24     ` Sam Ravnborg
  0 siblings, 0 replies; 548+ messages in thread
From: Sam Ravnborg @ 2012-05-21 18:24 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: David Miller, akpm, sparclinux, linux-kernel

On Mon, May 21, 2012 at 10:37:23AM -0700, Linus Torvalds wrote:
> On Mon, May 21, 2012 at 2:03 AM, David Miller <davem@davemloft.net> wrote:
> >
> > There is going to be a merge conflict between the commit in the
> > net-next tree that adds the Sparc BPF JIT, and the one in here which
> > adds arch/sparc/Kbuild.  It should be quite easy to resolve.
> 
> Ok, so that had a very obvious resolution, and a "cleaner, but scarier" version.
> 
> I picked the cleaner but scarier one - the one that should make the
> BFP JIT be built when you do "make arch/sparc" by putting the net
> thing into the new arch/sparc/Kbuild file.
OK.

> 
> I did minimal testing with "make ARCH=sparc" without actually
> *building* anything, and in the process also fixed the fact that you
> should not select HAVE_BPF_JIT unless networking is enabled (crappy
> interface - maybe that "if NET" part really should be in the
> HAVE_BPF_JIT rules, not in all the architectures?)

HAVE_BPF_JIT is only used to make the BPF_JIT prompt visible.
And BPF_JIT depends on NET.

So the "if NET" part in the select is redundant but not strictly wrong.

	Sam

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] Sparc
  2012-05-21 18:24     ` Sam Ravnborg
@ 2012-05-21 18:28       ` Linus Torvalds
  -1 siblings, 0 replies; 548+ messages in thread
From: Linus Torvalds @ 2012-05-21 18:28 UTC (permalink / raw)
  To: Sam Ravnborg; +Cc: David Miller, akpm, sparclinux, linux-kernel

On Mon, May 21, 2012 at 11:24 AM, Sam Ravnborg <sam@ravnborg.org> wrote:
>
> So the "if NET" part in the select is redundant but not strictly wrong.

It's not redundant.

Try doing a "make ARCH=sparc allnoconfig" without it. It will warn.

I didn't bother looking at *why* it warns, but all other architectures
have the "if NET" part.

                   Linus

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] Sparc
@ 2012-05-21 18:28       ` Linus Torvalds
  0 siblings, 0 replies; 548+ messages in thread
From: Linus Torvalds @ 2012-05-21 18:28 UTC (permalink / raw)
  To: Sam Ravnborg; +Cc: David Miller, akpm, sparclinux, linux-kernel

On Mon, May 21, 2012 at 11:24 AM, Sam Ravnborg <sam@ravnborg.org> wrote:
>
> So the "if NET" part in the select is redundant but not strictly wrong.

It's not redundant.

Try doing a "make ARCH=sparc allnoconfig" without it. It will warn.

I didn't bother looking at *why* it warns, but all other architectures
have the "if NET" part.

                   Linus

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] Sparc
  2012-05-21 18:28       ` Linus Torvalds
@ 2012-05-21 18:33         ` Linus Torvalds
  -1 siblings, 0 replies; 548+ messages in thread
From: Linus Torvalds @ 2012-05-21 18:33 UTC (permalink / raw)
  To: Sam Ravnborg; +Cc: David Miller, akpm, sparclinux, linux-kernel

On Mon, May 21, 2012 at 11:28 AM, Linus Torvalds
<torvalds@linux-foundation.org> wrote:
>
> I didn't bother looking at *why* it warns, but all other architectures
> have the "if NET" part.

Ok, I looked now, and it's because the definition of HAVE_BPF_JIT is
inside the "if NET" thing.

So if NET isn't enabled, then HAVE_BPF_JIT doesn't really *exist* as
an option. Doing a "select" on it is thus not a good idea.

I bet you could just move the two lines

  config HAVE_BPF_JIT
          bool

up to the top of net/Kconfig (so that HAVE_BPF_JIT is available
unconditionally), and then remove all the "if NET" from the four
architectures that support it.

                  Linus

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] Sparc
@ 2012-05-21 18:33         ` Linus Torvalds
  0 siblings, 0 replies; 548+ messages in thread
From: Linus Torvalds @ 2012-05-21 18:33 UTC (permalink / raw)
  To: Sam Ravnborg; +Cc: David Miller, akpm, sparclinux, linux-kernel

On Mon, May 21, 2012 at 11:28 AM, Linus Torvalds
<torvalds@linux-foundation.org> wrote:
>
> I didn't bother looking at *why* it warns, but all other architectures
> have the "if NET" part.

Ok, I looked now, and it's because the definition of HAVE_BPF_JIT is
inside the "if NET" thing.

So if NET isn't enabled, then HAVE_BPF_JIT doesn't really *exist* as
an option. Doing a "select" on it is thus not a good idea.

I bet you could just move the two lines

  config HAVE_BPF_JIT
          bool

up to the top of net/Kconfig (so that HAVE_BPF_JIT is available
unconditionally), and then remove all the "if NET" from the four
architectures that support it.

                  Linus

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] Sparc
  2012-05-21 18:28       ` Linus Torvalds
@ 2012-05-21 18:38         ` Sam Ravnborg
  -1 siblings, 0 replies; 548+ messages in thread
From: Sam Ravnborg @ 2012-05-21 18:38 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: David Miller, akpm, sparclinux, linux-kernel

On Mon, May 21, 2012 at 11:28:58AM -0700, Linus Torvalds wrote:
> On Mon, May 21, 2012 at 11:24 AM, Sam Ravnborg <sam@ravnborg.org> wrote:
> >
> > So the "if NET" part in the select is redundant but not strictly wrong.
> 
> It's not redundant.
> 
> Try doing a "make ARCH=sparc allnoconfig" without it. It will warn.
> 
> I didn't bother looking at *why* it warns, but all other architectures
> have the "if NET" part.

I see. This is because HAVE_BPF_JIT depends on NET, so kconfig
warns if you select HAVE_BPF_JIT without NET enabled.
The correct fix is obviously to move HAVE_BPF_JIT so it
does not depend on NET.

Sprinkling "if NET" all over is the wrong fix.

	Sam

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] Sparc
@ 2012-05-21 18:38         ` Sam Ravnborg
  0 siblings, 0 replies; 548+ messages in thread
From: Sam Ravnborg @ 2012-05-21 18:38 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: David Miller, akpm, sparclinux, linux-kernel

On Mon, May 21, 2012 at 11:28:58AM -0700, Linus Torvalds wrote:
> On Mon, May 21, 2012 at 11:24 AM, Sam Ravnborg <sam@ravnborg.org> wrote:
> >
> > So the "if NET" part in the select is redundant but not strictly wrong.
> 
> It's not redundant.
> 
> Try doing a "make ARCH=sparc allnoconfig" without it. It will warn.
> 
> I didn't bother looking at *why* it warns, but all other architectures
> have the "if NET" part.

I see. This is because HAVE_BPF_JIT depends on NET, so kconfig
warns if you select HAVE_BPF_JIT without NET enabled.
The correct fix is obviously to move HAVE_BPF_JIT so it
does not depend on NET.

Sprinkling "if NET" all over is the wrong fix.

	Sam

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [PATCH] net: drop NET dependency from HAVE_BPF_JIT
  2012-05-21 18:33         ` Linus Torvalds
@ 2012-05-21 18:52           ` Sam Ravnborg
  -1 siblings, 0 replies; 548+ messages in thread
From: Sam Ravnborg @ 2012-05-21 18:52 UTC (permalink / raw)
  To: Linus Torvalds, netdev, David S. Miller
  Cc: David Miller, akpm, sparclinux, linux-kernel

>From 4976b8fc9fd9f876634d6d73e5b808c762e1352a Mon Sep 17 00:00:00 2001
From: Sam Ravnborg <sam@ravnborg.org>
Date: Mon, 21 May 2012 20:45:37 +0200
Subject: [PATCH] net: drop NET dependency from HAVE_BPF_JIT

There is no point having the NET dependency on the select target,
as it forces all users to depend on NET to tell they support BPF_JIT.
Move the config option to the bottom of the file - this
could be a nice place also for future "selectable" config symbols.

Fix up all users to drop the dependency on NET now that
it is not required to supress warnings for non-NET builds.

Reported-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
---
Did a few "make ARCH=xxx allnoconfig" and no warning were triggered.

	Sam

 arch/arm/Kconfig     |    2 +-
 arch/powerpc/Kconfig |    2 +-
 arch/sparc/Kconfig   |    2 +-
 arch/x86/Kconfig     |    2 +-
 net/Kconfig          |    7 ++++---
 5 files changed, 8 insertions(+), 7 deletions(-)

diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 36586db..e19ed3f 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -33,7 +33,7 @@ config ARM
 	select GENERIC_IRQ_SHOW
 	select CPU_PM if (SUSPEND || CPU_IDLE)
 	select GENERIC_PCI_IOMAP
-	select HAVE_BPF_JIT if NET
+	select HAVE_BPF_JIT
 	help
 	  The ARM series is a line of low-power-consumption RISC chip designs
 	  licensed by ARM Ltd and targeted at embedded applications and
diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig
index feab3ba..73ec039 100644
--- a/arch/powerpc/Kconfig
+++ b/arch/powerpc/Kconfig
@@ -141,7 +141,7 @@ config PPC
 	select IRQ_FORCED_THREADING
 	select HAVE_RCU_TABLE_FREE if SMP
 	select HAVE_SYSCALL_TRACEPOINTS
-	select HAVE_BPF_JIT if (PPC64 && NET)
+	select HAVE_BPF_JIT if PPC64
 	select HAVE_ARCH_JUMP_LABEL
 	select ARCH_HAVE_NMI_SAFE_CMPXCHG
 
diff --git a/arch/sparc/Kconfig b/arch/sparc/Kconfig
index 6c49ed2..d176c03 100644
--- a/arch/sparc/Kconfig
+++ b/arch/sparc/Kconfig
@@ -30,7 +30,7 @@ config SPARC
 	select USE_GENERIC_SMP_HELPERS if SMP
 	select GENERIC_PCI_IOMAP
 	select HAVE_NMI_WATCHDOG if SPARC64
-	select HAVE_BPF_JIT if NET
+	select HAVE_BPF_JIT
 
 config SPARC32
 	def_bool !64BIT
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
index c9866b0..25f87bc 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -77,7 +77,7 @@ config X86
 	select GENERIC_CLOCKEVENTS_MIN_ADJUST
 	select IRQ_FORCED_THREADING
 	select USE_GENERIC_SMP_HELPERS if SMP
-	select HAVE_BPF_JIT if (X86_64 && NET)
+	select HAVE_BPF_JIT if X86_64
 	select CLKEVT_I8253
 	select ARCH_HAVE_NMI_SAFE_CMPXCHG
 	select GENERIC_IOMAP
diff --git a/net/Kconfig b/net/Kconfig
index 1e47bd0..245831b 100644
--- a/net/Kconfig
+++ b/net/Kconfig
@@ -246,9 +246,6 @@ config BQL
 	select DQL
 	default y
 
-config HAVE_BPF_JIT
-	bool
-
 config BPF_JIT
 	bool "enable BPF Just In Time compiler"
 	depends on HAVE_BPF_JIT
@@ -340,3 +337,7 @@ source "net/nfc/Kconfig"
 
 
 endif   # if NET
+
+# Used by archs to tell that they support BPF_JIT
+config HAVE_BPF_JIT
+	bool
-- 
1.6.0.6


^ permalink raw reply related	[flat|nested] 548+ messages in thread

* [PATCH] net: drop NET dependency from HAVE_BPF_JIT
@ 2012-05-21 18:52           ` Sam Ravnborg
  0 siblings, 0 replies; 548+ messages in thread
From: Sam Ravnborg @ 2012-05-21 18:52 UTC (permalink / raw)
  To: Linus Torvalds, netdev, David S. Miller; +Cc: akpm, sparclinux, linux-kernel

From 4976b8fc9fd9f876634d6d73e5b808c762e1352a Mon Sep 17 00:00:00 2001
From: Sam Ravnborg <sam@ravnborg.org>
Date: Mon, 21 May 2012 20:45:37 +0200
Subject: [PATCH] net: drop NET dependency from HAVE_BPF_JIT

There is no point having the NET dependency on the select target,
as it forces all users to depend on NET to tell they support BPF_JIT.
Move the config option to the bottom of the file - this
could be a nice place also for future "selectable" config symbols.

Fix up all users to drop the dependency on NET now that
it is not required to supress warnings for non-NET builds.

Reported-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
---
Did a few "make ARCH=xxx allnoconfig" and no warning were triggered.

	Sam

 arch/arm/Kconfig     |    2 +-
 arch/powerpc/Kconfig |    2 +-
 arch/sparc/Kconfig   |    2 +-
 arch/x86/Kconfig     |    2 +-
 net/Kconfig          |    7 ++++---
 5 files changed, 8 insertions(+), 7 deletions(-)

diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 36586db..e19ed3f 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -33,7 +33,7 @@ config ARM
 	select GENERIC_IRQ_SHOW
 	select CPU_PM if (SUSPEND || CPU_IDLE)
 	select GENERIC_PCI_IOMAP
-	select HAVE_BPF_JIT if NET
+	select HAVE_BPF_JIT
 	help
 	  The ARM series is a line of low-power-consumption RISC chip designs
 	  licensed by ARM Ltd and targeted at embedded applications and
diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig
index feab3ba..73ec039 100644
--- a/arch/powerpc/Kconfig
+++ b/arch/powerpc/Kconfig
@@ -141,7 +141,7 @@ config PPC
 	select IRQ_FORCED_THREADING
 	select HAVE_RCU_TABLE_FREE if SMP
 	select HAVE_SYSCALL_TRACEPOINTS
-	select HAVE_BPF_JIT if (PPC64 && NET)
+	select HAVE_BPF_JIT if PPC64
 	select HAVE_ARCH_JUMP_LABEL
 	select ARCH_HAVE_NMI_SAFE_CMPXCHG
 
diff --git a/arch/sparc/Kconfig b/arch/sparc/Kconfig
index 6c49ed2..d176c03 100644
--- a/arch/sparc/Kconfig
+++ b/arch/sparc/Kconfig
@@ -30,7 +30,7 @@ config SPARC
 	select USE_GENERIC_SMP_HELPERS if SMP
 	select GENERIC_PCI_IOMAP
 	select HAVE_NMI_WATCHDOG if SPARC64
-	select HAVE_BPF_JIT if NET
+	select HAVE_BPF_JIT
 
 config SPARC32
 	def_bool !64BIT
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
index c9866b0..25f87bc 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -77,7 +77,7 @@ config X86
 	select GENERIC_CLOCKEVENTS_MIN_ADJUST
 	select IRQ_FORCED_THREADING
 	select USE_GENERIC_SMP_HELPERS if SMP
-	select HAVE_BPF_JIT if (X86_64 && NET)
+	select HAVE_BPF_JIT if X86_64
 	select CLKEVT_I8253
 	select ARCH_HAVE_NMI_SAFE_CMPXCHG
 	select GENERIC_IOMAP
diff --git a/net/Kconfig b/net/Kconfig
index 1e47bd0..245831b 100644
--- a/net/Kconfig
+++ b/net/Kconfig
@@ -246,9 +246,6 @@ config BQL
 	select DQL
 	default y
 
-config HAVE_BPF_JIT
-	bool
-
 config BPF_JIT
 	bool "enable BPF Just In Time compiler"
 	depends on HAVE_BPF_JIT
@@ -340,3 +337,7 @@ source "net/nfc/Kconfig"
 
 
 endif   # if NET
+
+# Used by archs to tell that they support BPF_JIT
+config HAVE_BPF_JIT
+	bool
-- 
1.6.0.6


^ permalink raw reply related	[flat|nested] 548+ messages in thread

* Re: [PATCH] net: drop NET dependency from HAVE_BPF_JIT
  2012-05-21 18:52           ` Sam Ravnborg
@ 2012-05-21 18:54             ` Linus Torvalds
  -1 siblings, 0 replies; 548+ messages in thread
From: Linus Torvalds @ 2012-05-21 18:54 UTC (permalink / raw)
  To: Sam Ravnborg; +Cc: netdev, David S. Miller, akpm, sparclinux, linux-kernel

On Mon, May 21, 2012 at 11:52 AM, Sam Ravnborg <sam@ravnborg.org> wrote:
>
> Fix up all users to drop the dependency on NET now that
> it is not required to supress warnings for non-NET builds.

Do you want me to take this directly, or will it go through the net
tree? I can live with it either way.

               Linus

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [PATCH] net: drop NET dependency from HAVE_BPF_JIT
@ 2012-05-21 18:54             ` Linus Torvalds
  0 siblings, 0 replies; 548+ messages in thread
From: Linus Torvalds @ 2012-05-21 18:54 UTC (permalink / raw)
  To: Sam Ravnborg; +Cc: netdev, David S. Miller, akpm, sparclinux, linux-kernel

On Mon, May 21, 2012 at 11:52 AM, Sam Ravnborg <sam@ravnborg.org> wrote:
>
> Fix up all users to drop the dependency on NET now that
> it is not required to supress warnings for non-NET builds.

Do you want me to take this directly, or will it go through the net
tree? I can live with it either way.

               Linus

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [PATCH] net: drop NET dependency from HAVE_BPF_JIT
  2012-05-21 18:54             ` Linus Torvalds
@ 2012-05-21 19:48               ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2012-05-21 19:48 UTC (permalink / raw)
  To: torvalds; +Cc: sam, netdev, akpm, sparclinux, linux-kernel

From: Linus Torvalds <torvalds@linux-foundation.org>
Date: Mon, 21 May 2012 11:54:00 -0700

> On Mon, May 21, 2012 at 11:52 AM, Sam Ravnborg <sam@ravnborg.org> wrote:
>>
>> Fix up all users to drop the dependency on NET now that
>> it is not required to supress warnings for non-NET builds.
> 
> Do you want me to take this directly, or will it go through the net
> tree? I can live with it either way.

Linus, please take it directly, Sam's change looks great.

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [PATCH] net: drop NET dependency from HAVE_BPF_JIT
@ 2012-05-21 19:48               ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2012-05-21 19:48 UTC (permalink / raw)
  To: torvalds; +Cc: sam, netdev, akpm, sparclinux, linux-kernel

From: Linus Torvalds <torvalds@linux-foundation.org>
Date: Mon, 21 May 2012 11:54:00 -0700

> On Mon, May 21, 2012 at 11:52 AM, Sam Ravnborg <sam@ravnborg.org> wrote:
>>
>> Fix up all users to drop the dependency on NET now that
>> it is not required to supress warnings for non-NET builds.
> 
> Do you want me to take this directly, or will it go through the net
> tree? I can live with it either way.

Linus, please take it directly, Sam's change looks great.

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2012-05-24 21:32 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2012-05-24 21:32 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-arch, linux-kernel


This has the generic strncpy_from_user() implementation architectures
can now use, which we've been developing on linux-arch over the past
few days.

For good measure I ran both a 32-bit and a 64-bit glibc testsuite
run, and the latter of which pointed out an adjustment I needed to
make to sparc's user_addr_max() definition.  Linus, you were right,
STACK_TOP was not the right thing to use, even on sparc itself :-)

>From Sam Ravnborg, we have a conversion of sparc32 over to the common
alloc_thread_info_node(), since the aspect which originally blocked
our doing so (sun4c) has been removed.

Please pull, thanks a lot.

The following changes since commit 72c04af9a2d57b7945cf3de8e71461bd80695d50:

  fbdev: sh_mobile_lcdc: Don't confuse line size with pitch (2012-05-21 20:59:32 -0700)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git master

for you to fetch changes up to c5389831cda3b38a56606a348a537a1332f2d729:

  sparc: Fix user_addr_max() definition. (2012-05-24 13:41:58 -0700)

----------------------------------------------------------------
David S. Miller (6):
      sparc: Add full proper error handling to strncpy_from_user().
      sparc: Optimize strncpy_from_user() zero byte search.
      sparc: Increase portability of strncpy_from_user() implementation.
      kernel: Move REPEAT_BYTE definition into linux/kernel.h
      lib: Sparc's strncpy_from_user is generic enough, move under lib/
      sparc: Fix user_addr_max() definition.

Sam Ravnborg (1):
      sparc32: use the common implementation of alloc_thread_info_node()

 arch/sparc/Kconfig                      |    2 +-
 arch/sparc/include/asm/processor_64.h   |    4 +-
 arch/sparc/include/asm/thread_info_32.h |   11 +--
 arch/sparc/include/asm/uaccess.h        |    6 ++
 arch/sparc/include/asm/uaccess_32.h     |   10 ---
 arch/sparc/include/asm/uaccess_64.h     |    4 -
 arch/sparc/lib/Makefile                 |    2 +-
 arch/sparc/lib/ksyms.c                  |    3 -
 arch/sparc/lib/strncpy_from_user_32.S   |   47 ----------
 arch/sparc/lib/strncpy_from_user_64.S   |  133 ----------------------------
 arch/sparc/lib/usercopy.c               |    1 +
 arch/sparc/mm/srmmu.c                   |   27 ------
 arch/x86/include/asm/word-at-a-time.h   |    4 +-
 fs/namei.c                              |    1 +
 include/linux/kernel.h                  |    2 +
 lib/Kconfig                             |    3 +
 lib/Makefile                            |    2 +
 lib/strncpy_from_user.c                 |  146 +++++++++++++++++++++++++++++++
 18 files changed, 170 insertions(+), 238 deletions(-)
 delete mode 100644 arch/sparc/lib/strncpy_from_user_32.S
 delete mode 100644 arch/sparc/lib/strncpy_from_user_64.S
 create mode 100644 lib/strncpy_from_user.c

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2012-05-24 21:32 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2012-05-24 21:32 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-arch, linux-kernel


This has the generic strncpy_from_user() implementation architectures
can now use, which we've been developing on linux-arch over the past
few days.

For good measure I ran both a 32-bit and a 64-bit glibc testsuite
run, and the latter of which pointed out an adjustment I needed to
make to sparc's user_addr_max() definition.  Linus, you were right,
STACK_TOP was not the right thing to use, even on sparc itself :-)

From Sam Ravnborg, we have a conversion of sparc32 over to the common
alloc_thread_info_node(), since the aspect which originally blocked
our doing so (sun4c) has been removed.

Please pull, thanks a lot.

The following changes since commit 72c04af9a2d57b7945cf3de8e71461bd80695d50:

  fbdev: sh_mobile_lcdc: Don't confuse line size with pitch (2012-05-21 20:59:32 -0700)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git master

for you to fetch changes up to c5389831cda3b38a56606a348a537a1332f2d729:

  sparc: Fix user_addr_max() definition. (2012-05-24 13:41:58 -0700)

----------------------------------------------------------------
David S. Miller (6):
      sparc: Add full proper error handling to strncpy_from_user().
      sparc: Optimize strncpy_from_user() zero byte search.
      sparc: Increase portability of strncpy_from_user() implementation.
      kernel: Move REPEAT_BYTE definition into linux/kernel.h
      lib: Sparc's strncpy_from_user is generic enough, move under lib/
      sparc: Fix user_addr_max() definition.

Sam Ravnborg (1):
      sparc32: use the common implementation of alloc_thread_info_node()

 arch/sparc/Kconfig                      |    2 +-
 arch/sparc/include/asm/processor_64.h   |    4 +-
 arch/sparc/include/asm/thread_info_32.h |   11 +--
 arch/sparc/include/asm/uaccess.h        |    6 ++
 arch/sparc/include/asm/uaccess_32.h     |   10 ---
 arch/sparc/include/asm/uaccess_64.h     |    4 -
 arch/sparc/lib/Makefile                 |    2 +-
 arch/sparc/lib/ksyms.c                  |    3 -
 arch/sparc/lib/strncpy_from_user_32.S   |   47 ----------
 arch/sparc/lib/strncpy_from_user_64.S   |  133 ----------------------------
 arch/sparc/lib/usercopy.c               |    1 +
 arch/sparc/mm/srmmu.c                   |   27 ------
 arch/x86/include/asm/word-at-a-time.h   |    4 +-
 fs/namei.c                              |    1 +
 include/linux/kernel.h                  |    2 +
 lib/Kconfig                             |    3 +
 lib/Makefile                            |    2 +
 lib/strncpy_from_user.c                 |  146 +++++++++++++++++++++++++++++++
 18 files changed, 170 insertions(+), 238 deletions(-)
 delete mode 100644 arch/sparc/lib/strncpy_from_user_32.S
 delete mode 100644 arch/sparc/lib/strncpy_from_user_64.S
 create mode 100644 lib/strncpy_from_user.c

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2012-05-24 21:32 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2012-05-24 21:32 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-arch, linux-kernel


This has the generic strncpy_from_user() implementation architectures
can now use, which we've been developing on linux-arch over the past
few days.

For good measure I ran both a 32-bit and a 64-bit glibc testsuite
run, and the latter of which pointed out an adjustment I needed to
make to sparc's user_addr_max() definition.  Linus, you were right,
STACK_TOP was not the right thing to use, even on sparc itself :-)

From Sam Ravnborg, we have a conversion of sparc32 over to the common
alloc_thread_info_node(), since the aspect which originally blocked
our doing so (sun4c) has been removed.

Please pull, thanks a lot.

The following changes since commit 72c04af9a2d57b7945cf3de8e71461bd80695d50:

  fbdev: sh_mobile_lcdc: Don't confuse line size with pitch (2012-05-21 20:59:32 -0700)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git master

for you to fetch changes up to c5389831cda3b38a56606a348a537a1332f2d729:

  sparc: Fix user_addr_max() definition. (2012-05-24 13:41:58 -0700)

----------------------------------------------------------------
David S. Miller (6):
      sparc: Add full proper error handling to strncpy_from_user().
      sparc: Optimize strncpy_from_user() zero byte search.
      sparc: Increase portability of strncpy_from_user() implementation.
      kernel: Move REPEAT_BYTE definition into linux/kernel.h
      lib: Sparc's strncpy_from_user is generic enough, move under lib/
      sparc: Fix user_addr_max() definition.

Sam Ravnborg (1):
      sparc32: use the common implementation of alloc_thread_info_node()

 arch/sparc/Kconfig                      |    2 +-
 arch/sparc/include/asm/processor_64.h   |    4 +-
 arch/sparc/include/asm/thread_info_32.h |   11 +--
 arch/sparc/include/asm/uaccess.h        |    6 ++
 arch/sparc/include/asm/uaccess_32.h     |   10 ---
 arch/sparc/include/asm/uaccess_64.h     |    4 -
 arch/sparc/lib/Makefile                 |    2 +-
 arch/sparc/lib/ksyms.c                  |    3 -
 arch/sparc/lib/strncpy_from_user_32.S   |   47 ----------
 arch/sparc/lib/strncpy_from_user_64.S   |  133 ----------------------------
 arch/sparc/lib/usercopy.c               |    1 +
 arch/sparc/mm/srmmu.c                   |   27 ------
 arch/x86/include/asm/word-at-a-time.h   |    4 +-
 fs/namei.c                              |    1 +
 include/linux/kernel.h                  |    2 +
 lib/Kconfig                             |    3 +
 lib/Makefile                            |    2 +
 lib/strncpy_from_user.c                 |  146 +++++++++++++++++++++++++++++++
 18 files changed, 170 insertions(+), 238 deletions(-)
 delete mode 100644 arch/sparc/lib/strncpy_from_user_32.S
 delete mode 100644 arch/sparc/lib/strncpy_from_user_64.S
 create mode 100644 lib/strncpy_from_user.c

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2012-05-30 22:38 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2012-05-30 22:38 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


1) Remove the idiotic situation wherein Leon was a special
   case in all of the TLB/cache handling code.

   The worst side effect of this bogosity is that you couldn't build a
   kernel with Leon support enabled (to get better build coverage),
   and test boot it on a non-LEON cpu.

   Leon is, in all core respects, programatically identical to the
   32-bit SRMMU.  Except that they put the TLB registers in a
   different alternate address space location.

   Through code patching (for fast paths) and run time checks, this
   issue is now a thing of the past.

   From Sam Ravnborg.

2) There was a mis-merge of arch/sparc/Kconfig for one of the
   clockevents changes that went in, causing 32-bit sparc to
   start failing to build.

   I merged in your tree to get those clockevents changes (and
   added a note to the merge commit) then added Stephen Rothwell's
   fix for the merge error.

3) Software quad floating point emulation was not working properly
   on more recent Niagara chips, because the way the situation is
   reported by the cpu has changed.

   Nobody noticed because gcc emits calls to software emulation
   routines in glibc.

Please pull, thanks a lot!

The following changes since commit af56e0aa35f3ae2a4c1a6d1000702df1dd78cb76:

  Merge git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client (2012-05-30 11:17:19 -0700)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git master

David S. Miller (3):
      sparc64: Fix several bugs in quad floating point emulation.
      Merge git://git.kernel.org/.../torvalds/linux
      sparc32: Export leon_dma_ops to modules.

Sam Ravnborg (22):
      sparc32: string and whitespace cleanup in head_32.S
      sparc32: implement proper LEON support in head_32 (before highmem)
      sparc32: implement proper LEON support in head_32 (after highmem)
      sparc32: introduce sparc32_start_kernel called from head_32.S
      sparc32: add support for run-time patching of leon/sun single instructions
      sparc32: handle leon in irq_32.c
      sparc32: handle leon in cpu.c
      sparc32,leon: clean up leon.h
      sparc32,leon: always include leon_kernel in build
      sparc32,leon: always include leon_smp + leon_mm in build
      sparc32,leon: fix section mismatch warning
      sparc32: introduce support for run-time patching for all shared assembler code
      sparc32: introduce run-time patching of srmmu access functions
      sparc32: drop LEON hack for ASI_M_MMUREGS
      sparc32: srmmu_probe now knows about leon too
      sparc32: refactor cpu_idle()
      sparc32,leon: always include leon_pmc in build
      sparc32,leon: always support leon in ioport
      sparc32: support leon + sun in dma_make_coherent()
      sparc32,leon: fix leon bootup
      sparc32: remove unused variable in head_32.S
      sparc: fix sparc64 build due to leon.h inclusion

Stephen Rothwell (1):
      sparc: fix bad merge of sparc Kconfig

 arch/sparc/Kconfig                   |    1 -
 arch/sparc/include/asm/asi.h         |    4 -
 arch/sparc/include/asm/asmmacro.h    |   22 +++++
 arch/sparc/include/asm/dma-mapping.h |    9 ++-
 arch/sparc/include/asm/leon.h        |   82 +----------------
 arch/sparc/include/asm/leon_amba.h   |    4 -
 arch/sparc/include/asm/pgtsrmmu.h    |   86 ++----------------
 arch/sparc/include/asm/psr.h         |    8 ++
 arch/sparc/include/asm/sections.h    |    3 +
 arch/sparc/kernel/Makefile           |    4 +-
 arch/sparc/kernel/cpu.c              |   18 ++--
 arch/sparc/kernel/entry.S            |   10 +-
 arch/sparc/kernel/etrap_32.S         |   18 +++-
 arch/sparc/kernel/head_32.S          |  168 ++++++++++++++++++++-------------
 arch/sparc/kernel/ioport.c           |   24 ++----
 arch/sparc/kernel/irq_32.c           |   22 +++--
 arch/sparc/kernel/kernel.h           |    3 +
 arch/sparc/kernel/leon_kernel.c      |    1 +
 arch/sparc/kernel/leon_pmc.c         |   15 ++-
 arch/sparc/kernel/leon_smp.c         |    8 +-
 arch/sparc/kernel/process_32.c       |   35 +------
 arch/sparc/kernel/prom_common.c      |    1 -
 arch/sparc/kernel/rtrap_32.S         |   18 +++-
 arch/sparc/kernel/setup_32.c         |   62 ++++++++++---
 arch/sparc/kernel/trampoline_32.S    |    6 +-
 arch/sparc/kernel/traps_64.c         |   12 ++-
 arch/sparc/kernel/vmlinux.lds.S      |    5 +
 arch/sparc/kernel/wof.S              |   18 +++-
 arch/sparc/kernel/wuf.S              |   27 ++++--
 arch/sparc/math-emu/math_64.c        |   20 +++-
 arch/sparc/mm/Makefile               |    3 +-
 arch/sparc/mm/leon_mm.c              |    2 +-
 arch/sparc/mm/srmmu.c                |   25 ++++-
 arch/sparc/mm/srmmu_access.S         |   82 +++++++++++++++++
 34 files changed, 444 insertions(+), 382 deletions(-)
 create mode 100644 arch/sparc/mm/srmmu_access.S

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2012-05-30 22:38 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2012-05-30 22:38 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


1) Remove the idiotic situation wherein Leon was a special
   case in all of the TLB/cache handling code.

   The worst side effect of this bogosity is that you couldn't build a
   kernel with Leon support enabled (to get better build coverage),
   and test boot it on a non-LEON cpu.

   Leon is, in all core respects, programatically identical to the
   32-bit SRMMU.  Except that they put the TLB registers in a
   different alternate address space location.

   Through code patching (for fast paths) and run time checks, this
   issue is now a thing of the past.

   From Sam Ravnborg.

2) There was a mis-merge of arch/sparc/Kconfig for one of the
   clockevents changes that went in, causing 32-bit sparc to
   start failing to build.

   I merged in your tree to get those clockevents changes (and
   added a note to the merge commit) then added Stephen Rothwell's
   fix for the merge error.

3) Software quad floating point emulation was not working properly
   on more recent Niagara chips, because the way the situation is
   reported by the cpu has changed.

   Nobody noticed because gcc emits calls to software emulation
   routines in glibc.

Please pull, thanks a lot!

The following changes since commit af56e0aa35f3ae2a4c1a6d1000702df1dd78cb76:

  Merge git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client (2012-05-30 11:17:19 -0700)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git master

David S. Miller (3):
      sparc64: Fix several bugs in quad floating point emulation.
      Merge git://git.kernel.org/.../torvalds/linux
      sparc32: Export leon_dma_ops to modules.

Sam Ravnborg (22):
      sparc32: string and whitespace cleanup in head_32.S
      sparc32: implement proper LEON support in head_32 (before highmem)
      sparc32: implement proper LEON support in head_32 (after highmem)
      sparc32: introduce sparc32_start_kernel called from head_32.S
      sparc32: add support for run-time patching of leon/sun single instructions
      sparc32: handle leon in irq_32.c
      sparc32: handle leon in cpu.c
      sparc32,leon: clean up leon.h
      sparc32,leon: always include leon_kernel in build
      sparc32,leon: always include leon_smp + leon_mm in build
      sparc32,leon: fix section mismatch warning
      sparc32: introduce support for run-time patching for all shared assembler code
      sparc32: introduce run-time patching of srmmu access functions
      sparc32: drop LEON hack for ASI_M_MMUREGS
      sparc32: srmmu_probe now knows about leon too
      sparc32: refactor cpu_idle()
      sparc32,leon: always include leon_pmc in build
      sparc32,leon: always support leon in ioport
      sparc32: support leon + sun in dma_make_coherent()
      sparc32,leon: fix leon bootup
      sparc32: remove unused variable in head_32.S
      sparc: fix sparc64 build due to leon.h inclusion

Stephen Rothwell (1):
      sparc: fix bad merge of sparc Kconfig

 arch/sparc/Kconfig                   |    1 -
 arch/sparc/include/asm/asi.h         |    4 -
 arch/sparc/include/asm/asmmacro.h    |   22 +++++
 arch/sparc/include/asm/dma-mapping.h |    9 ++-
 arch/sparc/include/asm/leon.h        |   82 +----------------
 arch/sparc/include/asm/leon_amba.h   |    4 -
 arch/sparc/include/asm/pgtsrmmu.h    |   86 ++----------------
 arch/sparc/include/asm/psr.h         |    8 ++
 arch/sparc/include/asm/sections.h    |    3 +
 arch/sparc/kernel/Makefile           |    4 +-
 arch/sparc/kernel/cpu.c              |   18 ++--
 arch/sparc/kernel/entry.S            |   10 +-
 arch/sparc/kernel/etrap_32.S         |   18 +++-
 arch/sparc/kernel/head_32.S          |  168 ++++++++++++++++++++-------------
 arch/sparc/kernel/ioport.c           |   24 ++----
 arch/sparc/kernel/irq_32.c           |   22 +++--
 arch/sparc/kernel/kernel.h           |    3 +
 arch/sparc/kernel/leon_kernel.c      |    1 +
 arch/sparc/kernel/leon_pmc.c         |   15 ++-
 arch/sparc/kernel/leon_smp.c         |    8 +-
 arch/sparc/kernel/process_32.c       |   35 +------
 arch/sparc/kernel/prom_common.c      |    1 -
 arch/sparc/kernel/rtrap_32.S         |   18 +++-
 arch/sparc/kernel/setup_32.c         |   62 ++++++++++---
 arch/sparc/kernel/trampoline_32.S    |    6 +-
 arch/sparc/kernel/traps_64.c         |   12 ++-
 arch/sparc/kernel/vmlinux.lds.S      |    5 +
 arch/sparc/kernel/wof.S              |   18 +++-
 arch/sparc/kernel/wuf.S              |   27 ++++--
 arch/sparc/math-emu/math_64.c        |   20 +++-
 arch/sparc/mm/Makefile               |    3 +-
 arch/sparc/mm/leon_mm.c              |    2 +-
 arch/sparc/mm/srmmu.c                |   25 ++++-
 arch/sparc/mm/srmmu_access.S         |   82 +++++++++++++++++
 34 files changed, 444 insertions(+), 382 deletions(-)
 create mode 100644 arch/sparc/mm/srmmu_access.S

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2012-06-15 22:41 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2012-06-15 22:41 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


This just removes some sparc headers that were never, ever, used.

Please pull, thanks a lot!

The following changes since commit 4e3c8a1b1c63482403e9d5e3148dee1a711e4b91:

  Merge git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 (2012-06-11 16:31:52 +0300)

are available in the git repository at:


  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git master

for you to fetch changes up to 8a51178ed64dca418478996697611ef087fa22df:

  sparc: remove two unused headers (2012-06-11 17:05:54 -0700)

----------------------------------------------------------------
Paul Bolle (1):
      sparc: remove two unused headers

 arch/sparc/include/asm/cmt.h    |   59 ----------------------------------------------------
 arch/sparc/include/asm/mpmbox.h |   67 -----------------------------------------------------------
 2 files changed, 126 deletions(-)
 delete mode 100644 arch/sparc/include/asm/cmt.h
 delete mode 100644 arch/sparc/include/asm/mpmbox.h

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2012-06-15 22:41 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2012-06-15 22:41 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


This just removes some sparc headers that were never, ever, used.

Please pull, thanks a lot!

The following changes since commit 4e3c8a1b1c63482403e9d5e3148dee1a711e4b91:

  Merge git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 (2012-06-11 16:31:52 +0300)

are available in the git repository at:


  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git master

for you to fetch changes up to 8a51178ed64dca418478996697611ef087fa22df:

  sparc: remove two unused headers (2012-06-11 17:05:54 -0700)

----------------------------------------------------------------
Paul Bolle (1):
      sparc: remove two unused headers

 arch/sparc/include/asm/cmt.h    |   59 ----------------------------------------------------
 arch/sparc/include/asm/mpmbox.h |   67 -----------------------------------------------------------
 2 files changed, 126 deletions(-)
 delete mode 100644 arch/sparc/include/asm/cmt.h
 delete mode 100644 arch/sparc/include/asm/mpmbox.h

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2012-07-26 23:58 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2012-07-26 23:58 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Nothing much this merge window for sparc.

1) Fix FPU state management in sparc32, from Tkhai Kirill.

2) More sparc32 mm layer code cleanups, largely more side effects
   of the sun4c support removal in the 3.5  From Sam Ravnborg.

3) Remove unused code in sparc64, from Bjorn Helgaas and Kirill Tkhai.

4) Some declaration and comment tidies in PROM support code, from
   Geert Uytterhoeven.

Please pull, thanks a lot!

The following changes since commit d1346a6cbabf6d377d753f1adc16cb0b305830cc:

  Merge branch 'drm-fixes' of git://people.freedesktop.org/~airlied/linux (2012-06-26 11:26:50 -0700)

are available in the git repository at:


  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git master

for you to fetch changes up to 427f23cb3abc21c3784df8ae907c4c3a31d885d1:

  sparc32, copy_thread: Clear TIF_USEDFPU flag of created task instead of current (2012-07-26 16:49:40 -0700)

----------------------------------------------------------------
Bjorn Helgaas (1):
      sparc/PCI: remove unused pcibios_assign_resource() definition

David S. Miller (1):
      sparc64: Consistently use fsrc2 rather than fmovd in optimized asm.

Geert Uytterhoeven (2):
      sparc: Correct comments about prom_init() return values
      sparc32: Remove superfluous extern declarations for prom_*() functions

Kirill Tkhai (1):
      sparc64: remove unused function straddles_64bit_va_hole()

Sam Ravnborg (18):
      sparc32: define a few srmmu functions __init
      sparc32: sort includes in srmmu.c
      sparc32: fix coding-style in srmmu.c
      sparc32: use void * in nocache get/free
      sparc32: beautify srmmu_inherit_prom_mappings()
      sparc32: drop swapper_pg_dir
      sparc32: drop unused kmap_atomic_to_page
      sparc32: fixmap.h cleanup
      sparc32: drop fixmap.h
      sparc32,leon: drop leon_init()
      sparc32: drop sparc_unmapped_base
      sparc32: drop sparc model check in paging_init
      sparc32: drop quicklist
      sparc32: centralize all mmu context handling in srmmu.c
      sparc32: drop unused BAD_PAGE stuff
      sparc32: move probe_memory() to srmmu.c
      sparc32: move kmap_init() to highmem.c
      sparc32: delete dead code in show_mem()

Tkhai Kirill (1):
      sparc32, copy_thread: Clear TIF_USEDFPU flag of created task instead of current

 arch/sparc/include/asm/fixmap.h         | 110 --------------------
 arch/sparc/include/asm/highmem.h        |   3 -
 arch/sparc/include/asm/leon.h           |   1 -
 arch/sparc/include/asm/mmu_context_32.h |   8 +-
 arch/sparc/include/asm/page_32.h        |   3 +-
 arch/sparc/include/asm/pgalloc_32.h     |  29 ++----
 arch/sparc/include/asm/pgtable_32.h     |  44 +-------
 arch/sparc/include/asm/vaddrs.h         |  22 ++++
 arch/sparc/kernel/head_32.S             |   2 -
 arch/sparc/kernel/leon_kernel.c         |  16 ---
 arch/sparc/kernel/pcic.c                |   5 -
 arch/sparc/kernel/process_32.c          |   4 +-
 arch/sparc/kernel/setup_32.c            |   1 -
 arch/sparc/kernel/sys_sparc_64.c        |  17 ---
 arch/sparc/lib/NG2memcpy.S              |  72 ++++++-------
 arch/sparc/lib/U1memcpy.S               |   4 +-
 arch/sparc/lib/copy_page.S              |  56 +++++-----
 arch/sparc/mm/fault_32.c                |  18 ----
 arch/sparc/mm/highmem.c                 |  42 ++++----
 arch/sparc/mm/init_32.c                 |  58 +----------
 arch/sparc/mm/srmmu.c                   | 332 ++++++++++++++++++++++++++++++++++++-----------------------
 arch/sparc/prom/init_32.c               |   7 +-
 arch/sparc/prom/init_64.c               |   4 +-
 23 files changed, 331 insertions(+), 527 deletions(-)
 delete mode 100644 arch/sparc/include/asm/fixmap.h

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2012-07-26 23:58 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2012-07-26 23:58 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Nothing much this merge window for sparc.

1) Fix FPU state management in sparc32, from Tkhai Kirill.

2) More sparc32 mm layer code cleanups, largely more side effects
   of the sun4c support removal in the 3.5  From Sam Ravnborg.

3) Remove unused code in sparc64, from Bjorn Helgaas and Kirill Tkhai.

4) Some declaration and comment tidies in PROM support code, from
   Geert Uytterhoeven.

Please pull, thanks a lot!

The following changes since commit d1346a6cbabf6d377d753f1adc16cb0b305830cc:

  Merge branch 'drm-fixes' of git://people.freedesktop.org/~airlied/linux (2012-06-26 11:26:50 -0700)

are available in the git repository at:


  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git master

for you to fetch changes up to 427f23cb3abc21c3784df8ae907c4c3a31d885d1:

  sparc32, copy_thread: Clear TIF_USEDFPU flag of created task instead of current (2012-07-26 16:49:40 -0700)

----------------------------------------------------------------
Bjorn Helgaas (1):
      sparc/PCI: remove unused pcibios_assign_resource() definition

David S. Miller (1):
      sparc64: Consistently use fsrc2 rather than fmovd in optimized asm.

Geert Uytterhoeven (2):
      sparc: Correct comments about prom_init() return values
      sparc32: Remove superfluous extern declarations for prom_*() functions

Kirill Tkhai (1):
      sparc64: remove unused function straddles_64bit_va_hole()

Sam Ravnborg (18):
      sparc32: define a few srmmu functions __init
      sparc32: sort includes in srmmu.c
      sparc32: fix coding-style in srmmu.c
      sparc32: use void * in nocache get/free
      sparc32: beautify srmmu_inherit_prom_mappings()
      sparc32: drop swapper_pg_dir
      sparc32: drop unused kmap_atomic_to_page
      sparc32: fixmap.h cleanup
      sparc32: drop fixmap.h
      sparc32,leon: drop leon_init()
      sparc32: drop sparc_unmapped_base
      sparc32: drop sparc model check in paging_init
      sparc32: drop quicklist
      sparc32: centralize all mmu context handling in srmmu.c
      sparc32: drop unused BAD_PAGE stuff
      sparc32: move probe_memory() to srmmu.c
      sparc32: move kmap_init() to highmem.c
      sparc32: delete dead code in show_mem()

Tkhai Kirill (1):
      sparc32, copy_thread: Clear TIF_USEDFPU flag of created task instead of current

 arch/sparc/include/asm/fixmap.h         | 110 --------------------
 arch/sparc/include/asm/highmem.h        |   3 -
 arch/sparc/include/asm/leon.h           |   1 -
 arch/sparc/include/asm/mmu_context_32.h |   8 +-
 arch/sparc/include/asm/page_32.h        |   3 +-
 arch/sparc/include/asm/pgalloc_32.h     |  29 ++----
 arch/sparc/include/asm/pgtable_32.h     |  44 +-------
 arch/sparc/include/asm/vaddrs.h         |  22 ++++
 arch/sparc/kernel/head_32.S             |   2 -
 arch/sparc/kernel/leon_kernel.c         |  16 ---
 arch/sparc/kernel/pcic.c                |   5 -
 arch/sparc/kernel/process_32.c          |   4 +-
 arch/sparc/kernel/setup_32.c            |   1 -
 arch/sparc/kernel/sys_sparc_64.c        |  17 ---
 arch/sparc/lib/NG2memcpy.S              |  72 ++++++-------
 arch/sparc/lib/U1memcpy.S               |   4 +-
 arch/sparc/lib/copy_page.S              |  56 +++++-----
 arch/sparc/mm/fault_32.c                |  18 ----
 arch/sparc/mm/highmem.c                 |  42 ++++----
 arch/sparc/mm/init_32.c                 |  58 +----------
 arch/sparc/mm/srmmu.c                   | 332 ++++++++++++++++++++++++++++++++++++-----------------------
 arch/sparc/prom/init_32.c               |   7 +-
 arch/sparc/prom/init_64.c               |   4 +-
 23 files changed, 331 insertions(+), 527 deletions(-)
 delete mode 100644 arch/sparc/include/asm/fixmap.h

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2012-09-21 19:48 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2012-09-21 19:48 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


1) Debugging builds on 32-bit sparc need to handle the R_SPARC_DISP32
   relocation, not just 64-bit sparc.  From Andreas Larsson.

2) Wei Yongjun noticed that module_alloc() on sparc can return an
   error pointer, but that's not allowed.  module_alloc() should
   return only a valid pointer, or NULL.

Please pull, thanks a lot!

The following changes since commit c46de2263f42fb4bbde411b9126f471e9343cb22:

  Merge branch 'for-linus' of git://git.kernel.dk/linux-block (2012-09-19 11:04:34 -0700)

are available in the git repository at:


  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git master

for you to fetch changes up to a9e8d1a6b87167116e5779378f1d25ffed2e833b:

  sparc: fix the return value of module_alloc() (2012-09-21 12:14:20 -0700)

----------------------------------------------------------------
Andreas Larsson (1):
      sparc32: Enable the relocation target R_SPARC_DISP32 for sparc32

Wei Yongjun (1):
      sparc: fix the return value of module_alloc()

 arch/sparc/kernel/module.c | 13 +++++--------
 1 file changed, 5 insertions(+), 8 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2012-09-21 19:48 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2012-09-21 19:48 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


1) Debugging builds on 32-bit sparc need to handle the R_SPARC_DISP32
   relocation, not just 64-bit sparc.  From Andreas Larsson.

2) Wei Yongjun noticed that module_alloc() on sparc can return an
   error pointer, but that's not allowed.  module_alloc() should
   return only a valid pointer, or NULL.

Please pull, thanks a lot!

The following changes since commit c46de2263f42fb4bbde411b9126f471e9343cb22:

  Merge branch 'for-linus' of git://git.kernel.dk/linux-block (2012-09-19 11:04:34 -0700)

are available in the git repository at:


  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git master

for you to fetch changes up to a9e8d1a6b87167116e5779378f1d25ffed2e833b:

  sparc: fix the return value of module_alloc() (2012-09-21 12:14:20 -0700)

----------------------------------------------------------------
Andreas Larsson (1):
      sparc32: Enable the relocation target R_SPARC_DISP32 for sparc32

Wei Yongjun (1):
      sparc: fix the return value of module_alloc()

 arch/sparc/kernel/module.c | 13 +++++--------
 1 file changed, 5 insertions(+), 8 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2012-10-02 18:13 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2012-10-02 18:13 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Largely this is simply adding support for the Niagara 4 cpu.

Major areas are perf events (chip now supports 4 counters and
can monitor any event on each counter), crypto (opcodes
are availble for sha1, sha256, sha512, md5, crc32c, AES, DES,
CAMELLIA, and Kasumi although the last is unsupported since
we lack a generic crypto layer Kasumi implementation), and.
an optimized memcpy.

Finally some cleanups by Peter Senna Tschudin.

Please pull, thanks a lot.

The following changes since commit 6dab7ede9390d4d937cb89feca932e4fd575d2da:

  Merge branch 'fixes' of git://git.linaro.org/people/rmk/linux-arm (2012-08-18 16:20:05 -0700)

are available in the git repository at:


  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-next.git master

for you to fetch changes up to 42a4172b6ebb4a419085c6caee7c135e51cae5ea:

  sparc64: Fix trailing whitespace in NG4 memcpy. (2012-09-28 13:08:22 -0700)

----------------------------------------------------------------
David S. Miller (45):
      sparc64: Add detection for features new in SPARC-T4.
      sparc64: Add hypervisor interfaces for SPARC-T4 perf counter access.
      sparc64: Add 'reg_num' argument to pcr_ops methods.
      sparc64: Abstract away PIC register accesses.
      sparc64: Abstract away the NMI PIC counter computation.
      sparc64: Abstract away the %pcr values used to enable/disable NMI
      sparc64: Add PCR ops for SPARC-T4.
      sparc64: Add perf_event abstractions for orthogonal PMUs.
      sparc64: Allow max hw perf events to be variable.
      sparc64: Abstract PMC read/write behind sparc_pmu.
      sparc64: Specify user and supervisor trace PCR bits in sparc_pmu.
      sparc64: Prepare perf event layer for handling multiple PCR registers.
      sparc64: Rework sparc_pmu_enable() so that the side effects are clearer.
      sparc64: Make sparc_pmu_{enable,disable}_event() multi-pcr aware.
      sparc64: Support perf event encoding for multi-PCR PMUs.
      sparc64: Add SPARC-T4 perf event support.
      sparc64: Update generic comments in perf event code to match reality.
      sparc64: Add SHA1 driver making use of the 'sha1' instruction.
      sparc64: Add SHA224/SHA256 driver making use of the 'sha256' instruction.
      sparc64: Add SHA384/SHA512 driver making use of the 'sha512' instruction.
      sparc64: Add MD5 driver making use of the 'md5' instruction.
      sparc64: Add AES driver making use of the new aes opcodes.
      sparc64: Add CRC32C driver making use of the new crc32c opcode.
      sparc64: Add DES driver making use of the new des opcodes.
      sparc64: Fix spelling of CAMELLIA in CFR macro name and comment.
      sparc64: Add CAMELLIA driver making use of the new camellia opcodes.
      sparc64: Use fsrc2 instead of fsrc1 in sparc64 hash crypto drivers.
      sparc64: Move AES driver over to a methods based implementation.
      sparc64: Add ctr mode support to AES driver.
      sparc64: Unroll ECB encryption loops in AES driver.
      sparc64: Unroll ECB decryption loops in AES driver.
      sparc64: Unroll CTR crypt loops in AES driver.
      sparc64: Avoid code duplication in crypto assembler.
      sparc64: Fix bugs in unrolled 256-bit loops.
      sparc64: Support 2GB and 16GB page sizes for kernel linear mappings.
      sparc64: Probe cpu page size support more portably.
      sparc64: Use cpu_pgsz_mask for linear kernel mapping config.
      sparc64: Adjust crypto priorities.
      sparc64: Add missing pr_fmt define to crypto opcode drivers.
      sparc64: Add auto-loading mechanism to crypto-opcode drivers.
      sparc64: Fix IV handling bug in des_sparc64_cbc_decrypt
      sparc64: Fix function argument comment in camellia_sparc64_key_expand asm.
      sparc64: Add SPARC-T4 optimized memcpy.
      sparc64: Fix comment type in NG4 copy from user.
      sparc64: Fix trailing whitespace in NG4 memcpy.

Peter Senna Tschudin (2):
      arch/sparc/kernel/pci_sun4v.c: removes unnecessary semicolon
      drivers/sbus/char: removes unnecessary semicolon

 arch/sparc/Kbuild                   |    1 +
 arch/sparc/crypto/Makefile          |   25 ++
 arch/sparc/crypto/aes_asm.S         | 1535 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 arch/sparc/crypto/aes_glue.c        |  477 ++++++++++++++++++++++++
 arch/sparc/crypto/camellia_asm.S    |  563 +++++++++++++++++++++++++++++
 arch/sparc/crypto/camellia_glue.c   |  322 +++++++++++++++++
 arch/sparc/crypto/crc32c_asm.S      |   20 ++
 arch/sparc/crypto/crc32c_glue.c     |  179 +++++++++
 arch/sparc/crypto/crop_devid.c      |   14 +
 arch/sparc/crypto/des_asm.S         |  418 +++++++++++++++++++++
 arch/sparc/crypto/des_glue.c        |  529 +++++++++++++++++++++++++++
 arch/sparc/crypto/md5_asm.S         |   70 ++++
 arch/sparc/crypto/md5_glue.c        |  188 ++++++++++
 arch/sparc/crypto/opcodes.h         |   99 +++++
 arch/sparc/crypto/sha1_asm.S        |   72 ++++
 arch/sparc/crypto/sha1_glue.c       |  183 ++++++++++
 arch/sparc/crypto/sha256_asm.S      |   78 ++++
 arch/sparc/crypto/sha256_glue.c     |  241 +++++++++++++
 arch/sparc/crypto/sha512_asm.S      |  102 ++++++
 arch/sparc/crypto/sha512_glue.c     |  226 ++++++++++++
 arch/sparc/include/asm/asi.h        |    4 +-
 arch/sparc/include/asm/elf_64.h     |    9 +
 arch/sparc/include/asm/hypervisor.h |   11 +
 arch/sparc/include/asm/mdesc.h      |    1 +
 arch/sparc/include/asm/pcr.h        |   36 +-
 arch/sparc/include/asm/perfctr.h    |   30 --
 arch/sparc/include/asm/pstate.h     |   14 +
 arch/sparc/kernel/head_64.S         |   14 +-
 arch/sparc/kernel/hvapi.c           |    1 +
 arch/sparc/kernel/hvcalls.S         |   16 +
 arch/sparc/kernel/ktlb.S            |   25 +-
 arch/sparc/kernel/mdesc.c           |   24 ++
 arch/sparc/kernel/nmi.c             |   21 +-
 arch/sparc/kernel/pci_sun4v.c       |    2 +-
 arch/sparc/kernel/pcr.c             |  172 +++++++--
 arch/sparc/kernel/perf_event.c      |  516 ++++++++++++++++++++------
 arch/sparc/kernel/setup_64.c        |   67 +++-
 arch/sparc/lib/Makefile             |    3 +
 arch/sparc/lib/NG4copy_from_user.S  |   30 ++
 arch/sparc/lib/NG4copy_page.S       |   57 +++
 arch/sparc/lib/NG4copy_to_user.S    |   39 ++
 arch/sparc/lib/NG4memcpy.S          |  360 +++++++++++++++++++
 arch/sparc/lib/NG4patch.S           |   43 +++
 arch/sparc/lib/NGpage.S             |    2 +
 arch/sparc/lib/ksyms.c              |    4 +
 arch/sparc/mm/init_64.c             |  230 +++++++++---
 arch/sparc/mm/init_64.h             |    4 +-
 crypto/Kconfig                      |   97 +++++
 drivers/crypto/n2_core.c            |    2 +-
 drivers/sbus/char/display7seg.c     |    2 +-
 drivers/sbus/char/envctrl.c         |    8 +-
 drivers/sbus/char/openprom.c        |    4 +-
 52 files changed, 6919 insertions(+), 271 deletions(-)
 create mode 100644 arch/sparc/crypto/Makefile
 create mode 100644 arch/sparc/crypto/aes_asm.S
 create mode 100644 arch/sparc/crypto/aes_glue.c
 create mode 100644 arch/sparc/crypto/camellia_asm.S
 create mode 100644 arch/sparc/crypto/camellia_glue.c
 create mode 100644 arch/sparc/crypto/crc32c_asm.S
 create mode 100644 arch/sparc/crypto/crc32c_glue.c
 create mode 100644 arch/sparc/crypto/crop_devid.c
 create mode 100644 arch/sparc/crypto/des_asm.S
 create mode 100644 arch/sparc/crypto/des_glue.c
 create mode 100644 arch/sparc/crypto/md5_asm.S
 create mode 100644 arch/sparc/crypto/md5_glue.c
 create mode 100644 arch/sparc/crypto/opcodes.h
 create mode 100644 arch/sparc/crypto/sha1_asm.S
 create mode 100644 arch/sparc/crypto/sha1_glue.c
 create mode 100644 arch/sparc/crypto/sha256_asm.S
 create mode 100644 arch/sparc/crypto/sha256_glue.c
 create mode 100644 arch/sparc/crypto/sha512_asm.S
 create mode 100644 arch/sparc/crypto/sha512_glue.c
 create mode 100644 arch/sparc/lib/NG4copy_from_user.S
 create mode 100644 arch/sparc/lib/NG4copy_page.S
 create mode 100644 arch/sparc/lib/NG4copy_to_user.S
 create mode 100644 arch/sparc/lib/NG4memcpy.S
 create mode 100644 arch/sparc/lib/NG4patch.S

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2012-10-02 18:13 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2012-10-02 18:13 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Largely this is simply adding support for the Niagara 4 cpu.

Major areas are perf events (chip now supports 4 counters and
can monitor any event on each counter), crypto (opcodes
are availble for sha1, sha256, sha512, md5, crc32c, AES, DES,
CAMELLIA, and Kasumi although the last is unsupported since
we lack a generic crypto layer Kasumi implementation), and.
an optimized memcpy.

Finally some cleanups by Peter Senna Tschudin.

Please pull, thanks a lot.

The following changes since commit 6dab7ede9390d4d937cb89feca932e4fd575d2da:

  Merge branch 'fixes' of git://git.linaro.org/people/rmk/linux-arm (2012-08-18 16:20:05 -0700)

are available in the git repository at:


  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-next.git master

for you to fetch changes up to 42a4172b6ebb4a419085c6caee7c135e51cae5ea:

  sparc64: Fix trailing whitespace in NG4 memcpy. (2012-09-28 13:08:22 -0700)

----------------------------------------------------------------
David S. Miller (45):
      sparc64: Add detection for features new in SPARC-T4.
      sparc64: Add hypervisor interfaces for SPARC-T4 perf counter access.
      sparc64: Add 'reg_num' argument to pcr_ops methods.
      sparc64: Abstract away PIC register accesses.
      sparc64: Abstract away the NMI PIC counter computation.
      sparc64: Abstract away the %pcr values used to enable/disable NMI
      sparc64: Add PCR ops for SPARC-T4.
      sparc64: Add perf_event abstractions for orthogonal PMUs.
      sparc64: Allow max hw perf events to be variable.
      sparc64: Abstract PMC read/write behind sparc_pmu.
      sparc64: Specify user and supervisor trace PCR bits in sparc_pmu.
      sparc64: Prepare perf event layer for handling multiple PCR registers.
      sparc64: Rework sparc_pmu_enable() so that the side effects are clearer.
      sparc64: Make sparc_pmu_{enable,disable}_event() multi-pcr aware.
      sparc64: Support perf event encoding for multi-PCR PMUs.
      sparc64: Add SPARC-T4 perf event support.
      sparc64: Update generic comments in perf event code to match reality.
      sparc64: Add SHA1 driver making use of the 'sha1' instruction.
      sparc64: Add SHA224/SHA256 driver making use of the 'sha256' instruction.
      sparc64: Add SHA384/SHA512 driver making use of the 'sha512' instruction.
      sparc64: Add MD5 driver making use of the 'md5' instruction.
      sparc64: Add AES driver making use of the new aes opcodes.
      sparc64: Add CRC32C driver making use of the new crc32c opcode.
      sparc64: Add DES driver making use of the new des opcodes.
      sparc64: Fix spelling of CAMELLIA in CFR macro name and comment.
      sparc64: Add CAMELLIA driver making use of the new camellia opcodes.
      sparc64: Use fsrc2 instead of fsrc1 in sparc64 hash crypto drivers.
      sparc64: Move AES driver over to a methods based implementation.
      sparc64: Add ctr mode support to AES driver.
      sparc64: Unroll ECB encryption loops in AES driver.
      sparc64: Unroll ECB decryption loops in AES driver.
      sparc64: Unroll CTR crypt loops in AES driver.
      sparc64: Avoid code duplication in crypto assembler.
      sparc64: Fix bugs in unrolled 256-bit loops.
      sparc64: Support 2GB and 16GB page sizes for kernel linear mappings.
      sparc64: Probe cpu page size support more portably.
      sparc64: Use cpu_pgsz_mask for linear kernel mapping config.
      sparc64: Adjust crypto priorities.
      sparc64: Add missing pr_fmt define to crypto opcode drivers.
      sparc64: Add auto-loading mechanism to crypto-opcode drivers.
      sparc64: Fix IV handling bug in des_sparc64_cbc_decrypt
      sparc64: Fix function argument comment in camellia_sparc64_key_expand asm.
      sparc64: Add SPARC-T4 optimized memcpy.
      sparc64: Fix comment type in NG4 copy from user.
      sparc64: Fix trailing whitespace in NG4 memcpy.

Peter Senna Tschudin (2):
      arch/sparc/kernel/pci_sun4v.c: removes unnecessary semicolon
      drivers/sbus/char: removes unnecessary semicolon

 arch/sparc/Kbuild                   |    1 +
 arch/sparc/crypto/Makefile          |   25 ++
 arch/sparc/crypto/aes_asm.S         | 1535 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 arch/sparc/crypto/aes_glue.c        |  477 ++++++++++++++++++++++++
 arch/sparc/crypto/camellia_asm.S    |  563 +++++++++++++++++++++++++++++
 arch/sparc/crypto/camellia_glue.c   |  322 +++++++++++++++++
 arch/sparc/crypto/crc32c_asm.S      |   20 ++
 arch/sparc/crypto/crc32c_glue.c     |  179 +++++++++
 arch/sparc/crypto/crop_devid.c      |   14 +
 arch/sparc/crypto/des_asm.S         |  418 +++++++++++++++++++++
 arch/sparc/crypto/des_glue.c        |  529 +++++++++++++++++++++++++++
 arch/sparc/crypto/md5_asm.S         |   70 ++++
 arch/sparc/crypto/md5_glue.c        |  188 ++++++++++
 arch/sparc/crypto/opcodes.h         |   99 +++++
 arch/sparc/crypto/sha1_asm.S        |   72 ++++
 arch/sparc/crypto/sha1_glue.c       |  183 ++++++++++
 arch/sparc/crypto/sha256_asm.S      |   78 ++++
 arch/sparc/crypto/sha256_glue.c     |  241 +++++++++++++
 arch/sparc/crypto/sha512_asm.S      |  102 ++++++
 arch/sparc/crypto/sha512_glue.c     |  226 ++++++++++++
 arch/sparc/include/asm/asi.h        |    4 +-
 arch/sparc/include/asm/elf_64.h     |    9 +
 arch/sparc/include/asm/hypervisor.h |   11 +
 arch/sparc/include/asm/mdesc.h      |    1 +
 arch/sparc/include/asm/pcr.h        |   36 +-
 arch/sparc/include/asm/perfctr.h    |   30 --
 arch/sparc/include/asm/pstate.h     |   14 +
 arch/sparc/kernel/head_64.S         |   14 +-
 arch/sparc/kernel/hvapi.c           |    1 +
 arch/sparc/kernel/hvcalls.S         |   16 +
 arch/sparc/kernel/ktlb.S            |   25 +-
 arch/sparc/kernel/mdesc.c           |   24 ++
 arch/sparc/kernel/nmi.c             |   21 +-
 arch/sparc/kernel/pci_sun4v.c       |    2 +-
 arch/sparc/kernel/pcr.c             |  172 +++++++--
 arch/sparc/kernel/perf_event.c      |  516 ++++++++++++++++++++------
 arch/sparc/kernel/setup_64.c        |   67 +++-
 arch/sparc/lib/Makefile             |    3 +
 arch/sparc/lib/NG4copy_from_user.S  |   30 ++
 arch/sparc/lib/NG4copy_page.S       |   57 +++
 arch/sparc/lib/NG4copy_to_user.S    |   39 ++
 arch/sparc/lib/NG4memcpy.S          |  360 +++++++++++++++++++
 arch/sparc/lib/NG4patch.S           |   43 +++
 arch/sparc/lib/NGpage.S             |    2 +
 arch/sparc/lib/ksyms.c              |    4 +
 arch/sparc/mm/init_64.c             |  230 +++++++++---
 arch/sparc/mm/init_64.h             |    4 +-
 crypto/Kconfig                      |   97 +++++
 drivers/crypto/n2_core.c            |    2 +-
 drivers/sbus/char/display7seg.c     |    2 +-
 drivers/sbus/char/envctrl.c         |    8 +-
 drivers/sbus/char/openprom.c        |    4 +-
 52 files changed, 6919 insertions(+), 271 deletions(-)
 create mode 100644 arch/sparc/crypto/Makefile
 create mode 100644 arch/sparc/crypto/aes_asm.S
 create mode 100644 arch/sparc/crypto/aes_glue.c
 create mode 100644 arch/sparc/crypto/camellia_asm.S
 create mode 100644 arch/sparc/crypto/camellia_glue.c
 create mode 100644 arch/sparc/crypto/crc32c_asm.S
 create mode 100644 arch/sparc/crypto/crc32c_glue.c
 create mode 100644 arch/sparc/crypto/crop_devid.c
 create mode 100644 arch/sparc/crypto/des_asm.S
 create mode 100644 arch/sparc/crypto/des_glue.c
 create mode 100644 arch/sparc/crypto/md5_asm.S
 create mode 100644 arch/sparc/crypto/md5_glue.c
 create mode 100644 arch/sparc/crypto/opcodes.h
 create mode 100644 arch/sparc/crypto/sha1_asm.S
 create mode 100644 arch/sparc/crypto/sha1_glue.c
 create mode 100644 arch/sparc/crypto/sha256_asm.S
 create mode 100644 arch/sparc/crypto/sha256_glue.c
 create mode 100644 arch/sparc/crypto/sha512_asm.S
 create mode 100644 arch/sparc/crypto/sha512_glue.c
 create mode 100644 arch/sparc/lib/NG4copy_from_user.S
 create mode 100644 arch/sparc/lib/NG4copy_page.S
 create mode 100644 arch/sparc/lib/NG4copy_to_user.S
 create mode 100644 arch/sparc/lib/NG4memcpy.S
 create mode 100644 arch/sparc/lib/NG4patch.S

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2012-10-03  6:14 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2012-10-03  6:14 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Some quick fixes after today's merge-window pull.

1) Add missing dependency on Sparc DES driver, oops.
   From Dave Jones.

2) Tell GCC that prom_printf() is printf-like and fix the few
   resultiing warnings.  From Akinobu Mita.

3) Niagara-2 memcpy doesn't provide it's return value correctly
   in some circumstances.

Please pull, thanks a lot.

The following changes since commit 7fe0b14b725d6d09a1d9e1409bd465cb88b587f9:

  Merge tag 'spi-3.7' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/misc (2012-10-02 17:26:42 -0700)

are available in the git repository at:


  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git master

for you to fetch changes up to 5da444aae54f64575a60f1d596ed7706e3089fb0:

  sparc: fix format string argument for prom_printf() (2012-10-02 23:20:34 -0400)

----------------------------------------------------------------
Akinobu Mita (1):
      sparc: fix format string argument for prom_printf()

Dave Jones (1):
      crypto: Build SPARC DES algorithms on SPARC only.

David S. Miller (2):
      sparc64: Fix return value of Niagara-2 memcpy.
      Merge git://git.kernel.org/.../torvalds/linux

 arch/sparc/include/asm/oplib_32.h |  2 +-
 arch/sparc/include/asm/oplib_64.h |  2 +-
 arch/sparc/kernel/hvapi.c         |  2 +-
 arch/sparc/kernel/prom_64.c       |  2 +-
 arch/sparc/kernel/traps_64.c      |  2 +-
 arch/sparc/lib/NG2memcpy.S        | 46 +++++++++++++++++++++++-----------------------
 arch/sparc/mm/init_64.c           |  7 ++++---
 arch/sparc/mm/iommu.c             |  4 ++--
 crypto/Kconfig                    |  1 +
 9 files changed, 35 insertions(+), 33 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2012-10-03  6:14 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2012-10-03  6:14 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Some quick fixes after today's merge-window pull.

1) Add missing dependency on Sparc DES driver, oops.
   From Dave Jones.

2) Tell GCC that prom_printf() is printf-like and fix the few
   resultiing warnings.  From Akinobu Mita.

3) Niagara-2 memcpy doesn't provide it's return value correctly
   in some circumstances.

Please pull, thanks a lot.

The following changes since commit 7fe0b14b725d6d09a1d9e1409bd465cb88b587f9:

  Merge tag 'spi-3.7' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/misc (2012-10-02 17:26:42 -0700)

are available in the git repository at:


  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git master

for you to fetch changes up to 5da444aae54f64575a60f1d596ed7706e3089fb0:

  sparc: fix format string argument for prom_printf() (2012-10-02 23:20:34 -0400)

----------------------------------------------------------------
Akinobu Mita (1):
      sparc: fix format string argument for prom_printf()

Dave Jones (1):
      crypto: Build SPARC DES algorithms on SPARC only.

David S. Miller (2):
      sparc64: Fix return value of Niagara-2 memcpy.
      Merge git://git.kernel.org/.../torvalds/linux

 arch/sparc/include/asm/oplib_32.h |  2 +-
 arch/sparc/include/asm/oplib_64.h |  2 +-
 arch/sparc/kernel/hvapi.c         |  2 +-
 arch/sparc/kernel/prom_64.c       |  2 +-
 arch/sparc/kernel/traps_64.c      |  2 +-
 arch/sparc/lib/NG2memcpy.S        | 46 +++++++++++++++++++++++-----------------------
 arch/sparc/mm/init_64.c           |  7 ++++---
 arch/sparc/mm/iommu.c             |  4 ++--
 crypto/Kconfig                    |  1 +
 9 files changed, 35 insertions(+), 33 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2012-10-08 20:18 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2012-10-08 20:18 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


There is an attempt to fix a bad interaction between syscall tracing
and force_successful_syscall() from Al Viro, but it needs to be redone
as it introduced regressions and thus had to be reverted for now.

Al is working on an updated version.

But what we do have here are some significant bzero/memset
improvements for Niagara-4.  An 8K page can be cleared in around 600
cycles, because we essentially have a store that behaves like
powerpc's dcbz that we can actually make real use of.

Please pull, thanks a lot.

The following changes since commit ecefbd94b834fa32559d854646d777c56749ef1c:

  Merge tag 'kvm-3.7-1' of git://git.kernel.org/pub/scm/virt/kvm/kvm (2012-10-04 09:30:33 -0700)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git master

for you to fetch changes up to 2863bc54ec03df7a6e2c48cff0477d7e2384efc9:

  Revert strace hiccups fix. (2012-10-05 20:39:04 -0700)

----------------------------------------------------------------
Al Viro (2):
      sparc64: Rearrange thread info to cheaply clear syscall noerror state.
      sparc64: Fix strace hiccups when force_successful_syscall() triggers.

David S. Miller (2):
      sparc64: Niagara-4 bzero/memset, plus use MRU stores in page copy.
      Revert strace hiccups fix.

 arch/sparc/include/asm/asi.h   |  19 +++++++++++++++++
 arch/sparc/kernel/head_64.S    |   2 +-
 arch/sparc/lib/Makefile        |   2 +-
 arch/sparc/lib/NG4clear_page.S |  29 ++++++++++++++++++++++++++
 arch/sparc/lib/NG4copy_page.S  |  16 +++++++--------
 arch/sparc/lib/NG4memset.S     | 105 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 arch/sparc/lib/NG4patch.S      |  15 ++++++++++++--
 7 files changed, 176 insertions(+), 12 deletions(-)
 create mode 100644 arch/sparc/lib/NG4clear_page.S
 create mode 100644 arch/sparc/lib/NG4memset.S

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2012-10-08 20:18 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2012-10-08 20:18 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


There is an attempt to fix a bad interaction between syscall tracing
and force_successful_syscall() from Al Viro, but it needs to be redone
as it introduced regressions and thus had to be reverted for now.

Al is working on an updated version.

But what we do have here are some significant bzero/memset
improvements for Niagara-4.  An 8K page can be cleared in around 600
cycles, because we essentially have a store that behaves like
powerpc's dcbz that we can actually make real use of.

Please pull, thanks a lot.

The following changes since commit ecefbd94b834fa32559d854646d777c56749ef1c:

  Merge tag 'kvm-3.7-1' of git://git.kernel.org/pub/scm/virt/kvm/kvm (2012-10-04 09:30:33 -0700)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git master

for you to fetch changes up to 2863bc54ec03df7a6e2c48cff0477d7e2384efc9:

  Revert strace hiccups fix. (2012-10-05 20:39:04 -0700)

----------------------------------------------------------------
Al Viro (2):
      sparc64: Rearrange thread info to cheaply clear syscall noerror state.
      sparc64: Fix strace hiccups when force_successful_syscall() triggers.

David S. Miller (2):
      sparc64: Niagara-4 bzero/memset, plus use MRU stores in page copy.
      Revert strace hiccups fix.

 arch/sparc/include/asm/asi.h   |  19 +++++++++++++++++
 arch/sparc/kernel/head_64.S    |   2 +-
 arch/sparc/lib/Makefile        |   2 +-
 arch/sparc/lib/NG4clear_page.S |  29 ++++++++++++++++++++++++++
 arch/sparc/lib/NG4copy_page.S  |  16 +++++++--------
 arch/sparc/lib/NG4memset.S     | 105 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 arch/sparc/lib/NG4patch.S      |  15 ++++++++++++--
 7 files changed, 176 insertions(+), 12 deletions(-)
 create mode 100644 arch/sparc/lib/NG4clear_page.S
 create mode 100644 arch/sparc/lib/NG4memset.S

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2012-10-10  1:26 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2012-10-10  1:26 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


This is just the UAPI commits for sparc via David Howells.

Please pull, thanks a lot!

The following changes since commit 547b1e81afe3119f7daf702cc03b158495535a25:

  Fix staging driver use of VM_RESERVED (2012-10-09 21:06:41 +0900)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git master

for you to fetch changes up to 9836d3458cde82626f2828ca6bd44c4a02b56e63:

  Merge tag 'disintegrate-sparc-20121009' of git://git.infradead.org/users/dhowells/linux-headers (2012-10-09 09:54:30 -0700)

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

David Howells (1):
      UAPI: (Scripted) Disintegrate arch/sparc/include/asm

David S. Miller (1):
      Merge tag 'disintegrate-sparc-20121009' of git://git.infradead.org/users/dhowells/linux-headers

 arch/sparc/include/asm/Kbuild                   |  16 ---
 arch/sparc/include/asm/fbio.h                   | 260 +---------------------------------
 arch/sparc/include/asm/ioctls.h                 | 129 +----------------
 arch/sparc/include/asm/mman.h                   |  25 +---
 arch/sparc/include/asm/psr.h                    |  36 +----
 arch/sparc/include/asm/ptrace.h                 | 347 +---------------------------------------------
 arch/sparc/include/asm/setup.h                  |  10 +-
 arch/sparc/include/asm/sigcontext.h             |   4 +-
 arch/sparc/include/asm/siginfo.h                |  23 +--
 arch/sparc/include/asm/signal.h                 | 185 +------------------------
 arch/sparc/include/asm/termbits.h               | 260 +---------------------------------
 arch/sparc/include/asm/termios.h                |  41 +-----
 arch/sparc/include/asm/traps.h                  | 111 +--------------
 arch/sparc/include/asm/unistd.h                 | 412 +-----------------------------------------------------
 arch/sparc/include/uapi/asm/Kbuild              |  46 ++++++
 arch/sparc/include/{ => uapi}/asm/apc.h         |   0
 arch/sparc/include/{ => uapi}/asm/asi.h         |   0
 arch/sparc/include/{ => uapi}/asm/auxvec.h      |   0
 arch/sparc/include/{ => uapi}/asm/bitsperlong.h |   0
 arch/sparc/include/{ => uapi}/asm/byteorder.h   |   0
 arch/sparc/include/{ => uapi}/asm/display7seg.h |   0
 arch/sparc/include/{ => uapi}/asm/envctrl.h     |   0
 arch/sparc/include/{ => uapi}/asm/errno.h       |   0
 arch/sparc/include/uapi/asm/fbio.h              | 259 ++++++++++++++++++++++++++++++++++
 arch/sparc/include/{ => uapi}/asm/fcntl.h       |   0
 arch/sparc/include/{ => uapi}/asm/ioctl.h       |   0
 arch/sparc/include/uapi/asm/ioctls.h            | 131 ++++++++++++++++++
 arch/sparc/include/{ => uapi}/asm/ipcbuf.h      |   0
 arch/sparc/include/{ => uapi}/asm/jsflash.h     |   0
 arch/sparc/include/{ => uapi}/asm/kvm_para.h    |   0
 arch/sparc/include/uapi/asm/mman.h              |  27 ++++
 arch/sparc/include/{ => uapi}/asm/msgbuf.h      |   0
 arch/sparc/include/{ => uapi}/asm/openpromio.h  |   0
 arch/sparc/include/{ => uapi}/asm/param.h       |   0
 arch/sparc/include/{ => uapi}/asm/perfctr.h     |   0
 arch/sparc/include/{ => uapi}/asm/poll.h        |   0
 arch/sparc/include/{ => uapi}/asm/posix_types.h |   0
 arch/sparc/include/uapi/asm/psr.h               |  47 +++++++
 arch/sparc/include/{ => uapi}/asm/psrcompat.h   |   0
 arch/sparc/include/{ => uapi}/asm/pstate.h      |   0
 arch/sparc/include/uapi/asm/ptrace.h            | 352 ++++++++++++++++++++++++++++++++++++++++++++++
 arch/sparc/include/{ => uapi}/asm/resource.h    |   0
 arch/sparc/include/{ => uapi}/asm/sembuf.h      |   0
 arch/sparc/include/uapi/asm/setup.h             |  15 ++
 arch/sparc/include/{ => uapi}/asm/shmbuf.h      |   0
 arch/sparc/include/uapi/asm/siginfo.h           |  25 ++++
 arch/sparc/include/uapi/asm/signal.h            | 185 +++++++++++++++++++++++++
 arch/sparc/include/{ => uapi}/asm/socket.h      |   0
 arch/sparc/include/{ => uapi}/asm/sockios.h     |   0
 arch/sparc/include/{ => uapi}/asm/stat.h        |   0
 arch/sparc/include/{ => uapi}/asm/statfs.h      |   0
 arch/sparc/include/{ => uapi}/asm/swab.h        |   0
 arch/sparc/include/uapi/asm/termbits.h          | 263 +++++++++++++++++++++++++++++++++++
 arch/sparc/include/uapi/asm/termios.h           |  43 ++++++
 arch/sparc/include/uapi/asm/traps.h             | 120 ++++++++++++++++
 arch/sparc/include/{ => uapi}/asm/types.h       |   0
 arch/sparc/include/{ => uapi}/asm/uctx.h        |   0
 arch/sparc/include/uapi/asm/unistd.h            | 422 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 arch/sparc/include/{ => uapi}/asm/utrap.h       |   0
 arch/sparc/include/{ => uapi}/asm/watchdog.h    |   0
 60 files changed, 1951 insertions(+), 1843 deletions(-)
 rename arch/sparc/include/{ => uapi}/asm/apc.h (100%)
 rename arch/sparc/include/{ => uapi}/asm/asi.h (100%)
 rename arch/sparc/include/{ => uapi}/asm/auxvec.h (100%)
 rename arch/sparc/include/{ => uapi}/asm/bitsperlong.h (100%)
 rename arch/sparc/include/{ => uapi}/asm/byteorder.h (100%)
 rename arch/sparc/include/{ => uapi}/asm/display7seg.h (100%)
 rename arch/sparc/include/{ => uapi}/asm/envctrl.h (100%)
 rename arch/sparc/include/{ => uapi}/asm/errno.h (100%)
 create mode 100644 arch/sparc/include/uapi/asm/fbio.h
 rename arch/sparc/include/{ => uapi}/asm/fcntl.h (100%)
 rename arch/sparc/include/{ => uapi}/asm/ioctl.h (100%)
 create mode 100644 arch/sparc/include/uapi/asm/ioctls.h
 rename arch/sparc/include/{ => uapi}/asm/ipcbuf.h (100%)
 rename arch/sparc/include/{ => uapi}/asm/jsflash.h (100%)
 rename arch/sparc/include/{ => uapi}/asm/kvm_para.h (100%)
 create mode 100644 arch/sparc/include/uapi/asm/mman.h
 rename arch/sparc/include/{ => uapi}/asm/msgbuf.h (100%)
 rename arch/sparc/include/{ => uapi}/asm/openpromio.h (100%)
 rename arch/sparc/include/{ => uapi}/asm/param.h (100%)
 rename arch/sparc/include/{ => uapi}/asm/perfctr.h (100%)
 rename arch/sparc/include/{ => uapi}/asm/poll.h (100%)
 rename arch/sparc/include/{ => uapi}/asm/posix_types.h (100%)
 create mode 100644 arch/sparc/include/uapi/asm/psr.h
 rename arch/sparc/include/{ => uapi}/asm/psrcompat.h (100%)
 rename arch/sparc/include/{ => uapi}/asm/pstate.h (100%)
 create mode 100644 arch/sparc/include/uapi/asm/ptrace.h
 rename arch/sparc/include/{ => uapi}/asm/resource.h (100%)
 rename arch/sparc/include/{ => uapi}/asm/sembuf.h (100%)
 create mode 100644 arch/sparc/include/uapi/asm/setup.h
 rename arch/sparc/include/{ => uapi}/asm/shmbuf.h (100%)
 create mode 100644 arch/sparc/include/uapi/asm/sigcontext.h
 create mode 100644 arch/sparc/include/uapi/asm/siginfo.h
 create mode 100644 arch/sparc/include/uapi/asm/signal.h
 rename arch/sparc/include/{ => uapi}/asm/socket.h (100%)
 rename arch/sparc/include/{ => uapi}/asm/sockios.h (100%)
 rename arch/sparc/include/{ => uapi}/asm/stat.h (100%)
 rename arch/sparc/include/{ => uapi}/asm/statfs.h (100%)
 rename arch/sparc/include/{ => uapi}/asm/swab.h (100%)
 create mode 100644 arch/sparc/include/uapi/asm/termbits.h
 create mode 100644 arch/sparc/include/uapi/asm/termios.h
 create mode 100644 arch/sparc/include/uapi/asm/traps.h
 rename arch/sparc/include/{ => uapi}/asm/types.h (100%)
 rename arch/sparc/include/{ => uapi}/asm/uctx.h (100%)
 create mode 100644 arch/sparc/include/uapi/asm/unistd.h
 rename arch/sparc/include/{ => uapi}/asm/utrap.h (100%)
 rename arch/sparc/include/{ => uapi}/asm/watchdog.h (100%)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2012-10-10  1:26 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2012-10-10  1:26 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


This is just the UAPI commits for sparc via David Howells.

Please pull, thanks a lot!

The following changes since commit 547b1e81afe3119f7daf702cc03b158495535a25:

  Fix staging driver use of VM_RESERVED (2012-10-09 21:06:41 +0900)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git master

for you to fetch changes up to 9836d3458cde82626f2828ca6bd44c4a02b56e63:

  Merge tag 'disintegrate-sparc-20121009' of git://git.infradead.org/users/dhowells/linux-headers (2012-10-09 09:54:30 -0700)

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

David Howells (1):
      UAPI: (Scripted) Disintegrate arch/sparc/include/asm

David S. Miller (1):
      Merge tag 'disintegrate-sparc-20121009' of git://git.infradead.org/users/dhowells/linux-headers

 arch/sparc/include/asm/Kbuild                   |  16 ---
 arch/sparc/include/asm/fbio.h                   | 260 +---------------------------------
 arch/sparc/include/asm/ioctls.h                 | 129 +----------------
 arch/sparc/include/asm/mman.h                   |  25 +---
 arch/sparc/include/asm/psr.h                    |  36 +----
 arch/sparc/include/asm/ptrace.h                 | 347 +---------------------------------------------
 arch/sparc/include/asm/setup.h                  |  10 +-
 arch/sparc/include/asm/sigcontext.h             |   4 +-
 arch/sparc/include/asm/siginfo.h                |  23 +--
 arch/sparc/include/asm/signal.h                 | 185 +------------------------
 arch/sparc/include/asm/termbits.h               | 260 +---------------------------------
 arch/sparc/include/asm/termios.h                |  41 +-----
 arch/sparc/include/asm/traps.h                  | 111 +--------------
 arch/sparc/include/asm/unistd.h                 | 412 +-----------------------------------------------------
 arch/sparc/include/uapi/asm/Kbuild              |  46 ++++++
 arch/sparc/include/{ => uapi}/asm/apc.h         |   0
 arch/sparc/include/{ => uapi}/asm/asi.h         |   0
 arch/sparc/include/{ => uapi}/asm/auxvec.h      |   0
 arch/sparc/include/{ => uapi}/asm/bitsperlong.h |   0
 arch/sparc/include/{ => uapi}/asm/byteorder.h   |   0
 arch/sparc/include/{ => uapi}/asm/display7seg.h |   0
 arch/sparc/include/{ => uapi}/asm/envctrl.h     |   0
 arch/sparc/include/{ => uapi}/asm/errno.h       |   0
 arch/sparc/include/uapi/asm/fbio.h              | 259 ++++++++++++++++++++++++++++++++++
 arch/sparc/include/{ => uapi}/asm/fcntl.h       |   0
 arch/sparc/include/{ => uapi}/asm/ioctl.h       |   0
 arch/sparc/include/uapi/asm/ioctls.h            | 131 ++++++++++++++++++
 arch/sparc/include/{ => uapi}/asm/ipcbuf.h      |   0
 arch/sparc/include/{ => uapi}/asm/jsflash.h     |   0
 arch/sparc/include/{ => uapi}/asm/kvm_para.h    |   0
 arch/sparc/include/uapi/asm/mman.h              |  27 ++++
 arch/sparc/include/{ => uapi}/asm/msgbuf.h      |   0
 arch/sparc/include/{ => uapi}/asm/openpromio.h  |   0
 arch/sparc/include/{ => uapi}/asm/param.h       |   0
 arch/sparc/include/{ => uapi}/asm/perfctr.h     |   0
 arch/sparc/include/{ => uapi}/asm/poll.h        |   0
 arch/sparc/include/{ => uapi}/asm/posix_types.h |   0
 arch/sparc/include/uapi/asm/psr.h               |  47 +++++++
 arch/sparc/include/{ => uapi}/asm/psrcompat.h   |   0
 arch/sparc/include/{ => uapi}/asm/pstate.h      |   0
 arch/sparc/include/uapi/asm/ptrace.h            | 352 ++++++++++++++++++++++++++++++++++++++++++++++
 arch/sparc/include/{ => uapi}/asm/resource.h    |   0
 arch/sparc/include/{ => uapi}/asm/sembuf.h      |   0
 arch/sparc/include/uapi/asm/setup.h             |  15 ++
 arch/sparc/include/{ => uapi}/asm/shmbuf.h      |   0
 arch/sparc/include/uapi/asm/siginfo.h           |  25 ++++
 arch/sparc/include/uapi/asm/signal.h            | 185 +++++++++++++++++++++++++
 arch/sparc/include/{ => uapi}/asm/socket.h      |   0
 arch/sparc/include/{ => uapi}/asm/sockios.h     |   0
 arch/sparc/include/{ => uapi}/asm/stat.h        |   0
 arch/sparc/include/{ => uapi}/asm/statfs.h      |   0
 arch/sparc/include/{ => uapi}/asm/swab.h        |   0
 arch/sparc/include/uapi/asm/termbits.h          | 263 +++++++++++++++++++++++++++++++++++
 arch/sparc/include/uapi/asm/termios.h           |  43 ++++++
 arch/sparc/include/uapi/asm/traps.h             | 120 ++++++++++++++++
 arch/sparc/include/{ => uapi}/asm/types.h       |   0
 arch/sparc/include/{ => uapi}/asm/uctx.h        |   0
 arch/sparc/include/uapi/asm/unistd.h            | 422 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 arch/sparc/include/{ => uapi}/asm/utrap.h       |   0
 arch/sparc/include/{ => uapi}/asm/watchdog.h    |   0
 60 files changed, 1951 insertions(+), 1843 deletions(-)
 rename arch/sparc/include/{ => uapi}/asm/apc.h (100%)
 rename arch/sparc/include/{ => uapi}/asm/asi.h (100%)
 rename arch/sparc/include/{ => uapi}/asm/auxvec.h (100%)
 rename arch/sparc/include/{ => uapi}/asm/bitsperlong.h (100%)
 rename arch/sparc/include/{ => uapi}/asm/byteorder.h (100%)
 rename arch/sparc/include/{ => uapi}/asm/display7seg.h (100%)
 rename arch/sparc/include/{ => uapi}/asm/envctrl.h (100%)
 rename arch/sparc/include/{ => uapi}/asm/errno.h (100%)
 create mode 100644 arch/sparc/include/uapi/asm/fbio.h
 rename arch/sparc/include/{ => uapi}/asm/fcntl.h (100%)
 rename arch/sparc/include/{ => uapi}/asm/ioctl.h (100%)
 create mode 100644 arch/sparc/include/uapi/asm/ioctls.h
 rename arch/sparc/include/{ => uapi}/asm/ipcbuf.h (100%)
 rename arch/sparc/include/{ => uapi}/asm/jsflash.h (100%)
 rename arch/sparc/include/{ => uapi}/asm/kvm_para.h (100%)
 create mode 100644 arch/sparc/include/uapi/asm/mman.h
 rename arch/sparc/include/{ => uapi}/asm/msgbuf.h (100%)
 rename arch/sparc/include/{ => uapi}/asm/openpromio.h (100%)
 rename arch/sparc/include/{ => uapi}/asm/param.h (100%)
 rename arch/sparc/include/{ => uapi}/asm/perfctr.h (100%)
 rename arch/sparc/include/{ => uapi}/asm/poll.h (100%)
 rename arch/sparc/include/{ => uapi}/asm/posix_types.h (100%)
 create mode 100644 arch/sparc/include/uapi/asm/psr.h
 rename arch/sparc/include/{ => uapi}/asm/psrcompat.h (100%)
 rename arch/sparc/include/{ => uapi}/asm/pstate.h (100%)
 create mode 100644 arch/sparc/include/uapi/asm/ptrace.h
 rename arch/sparc/include/{ => uapi}/asm/resource.h (100%)
 rename arch/sparc/include/{ => uapi}/asm/sembuf.h (100%)
 create mode 100644 arch/sparc/include/uapi/asm/setup.h
 rename arch/sparc/include/{ => uapi}/asm/shmbuf.h (100%)
 create mode 100644 arch/sparc/include/uapi/asm/sigcontext.h
 create mode 100644 arch/sparc/include/uapi/asm/siginfo.h
 create mode 100644 arch/sparc/include/uapi/asm/signal.h
 rename arch/sparc/include/{ => uapi}/asm/socket.h (100%)
 rename arch/sparc/include/{ => uapi}/asm/sockios.h (100%)
 rename arch/sparc/include/{ => uapi}/asm/stat.h (100%)
 rename arch/sparc/include/{ => uapi}/asm/statfs.h (100%)
 rename arch/sparc/include/{ => uapi}/asm/swab.h (100%)
 create mode 100644 arch/sparc/include/uapi/asm/termbits.h
 create mode 100644 arch/sparc/include/uapi/asm/termios.h
 create mode 100644 arch/sparc/include/uapi/asm/traps.h
 rename arch/sparc/include/{ => uapi}/asm/types.h (100%)
 rename arch/sparc/include/{ => uapi}/asm/uctx.h (100%)
 create mode 100644 arch/sparc/include/uapi/asm/unistd.h
 rename arch/sparc/include/{ => uapi}/asm/utrap.h (100%)
 rename arch/sparc/include/{ => uapi}/asm/watchdog.h (100%)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] Sparc
  2012-10-08 20:18 ` David Miller
@ 2012-10-10  5:11   ` Al Viro
  -1 siblings, 0 replies; 548+ messages in thread
From: Al Viro @ 2012-10-10  5:11 UTC (permalink / raw)
  To: David Miller; +Cc: torvalds, akpm, sparclinux, linux-kernel

On Mon, Oct 08, 2012 at 04:18:06PM -0400, David Miller wrote:
> 
> There is an attempt to fix a bad interaction between syscall tracing
> and force_successful_syscall() from Al Viro, but it needs to be redone
> as it introduced regressions and thus had to be reverted for now.
> 
> Al is working on an updated version.

See below.  Just in case: Linus, please DO NOT APPLY unless it goes through
sparc tree - this is modulo approval by davem.

sparc64: fix ptrace interaction with force_successful_syscall_return()
    
we want syscall_trace_leave() called on exit from any syscall;
skipping its call in case we'd done force_successful_syscall_return()
is broken...
    
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>

diff --git a/arch/sparc/kernel/syscalls.S b/arch/sparc/kernel/syscalls.S
index 1d7e274..7f5f65d 100644
--- a/arch/sparc/kernel/syscalls.S
+++ b/arch/sparc/kernel/syscalls.S
@@ -212,24 +212,20 @@ linux_sparc_syscall:
 3:	stx	%o0, [%sp + PTREGS_OFF + PT_V9_I0]
 ret_sys_call:
 	ldx	[%sp + PTREGS_OFF + PT_V9_TSTATE], %g3
-	ldx	[%sp + PTREGS_OFF + PT_V9_TNPC], %l1 ! pc = npc
 	sra	%o0, 0, %o0
 	mov	%ulo(TSTATE_XCARRY | TSTATE_ICARRY), %g2
 	sllx	%g2, 32, %g2
 
-	/* Check if force_successful_syscall_return()
-	 * was invoked.
-	 */
-	ldub	[%g6 + TI_SYS_NOERROR], %l2
-	brnz,a,pn %l2, 80f
-	 stb	%g0, [%g6 + TI_SYS_NOERROR]
-
 	cmp	%o0, -ERESTART_RESTARTBLOCK
 	bgeu,pn	%xcc, 1f
-	 andcc	%l0, (_TIF_SYSCALL_TRACE|_TIF_SECCOMP|_TIF_SYSCALL_AUDIT|_TIF_SYSCALL_TRACEPOINT), %l6
-80:
+	 andcc	%l0, (_TIF_SYSCALL_TRACE|_TIF_SECCOMP|_TIF_SYSCALL_AUDIT|_TIF_SYSCALL_TRACEPOINT), %g0
+	ldx	[%sp + PTREGS_OFF + PT_V9_TNPC], %l1 ! pc = npc
+
+2:
+	stb	%g0, [%g6 + TI_SYS_NOERROR]
 	/* System call success, clear Carry condition code. */
 	andn	%g3, %g2, %g3
+3:
 	stx	%g3, [%sp + PTREGS_OFF + PT_V9_TSTATE]	
 	bne,pn	%icc, linux_syscall_trace2
 	 add	%l1, 0x4, %l2			! npc = npc+4
@@ -238,20 +234,20 @@ ret_sys_call:
 	 stx	%l2, [%sp + PTREGS_OFF + PT_V9_TNPC]
 
 1:
+	/* Check if force_successful_syscall_return()
+	 * was invoked.
+	 */
+	ldub	[%g6 + TI_SYS_NOERROR], %l2
+	brnz,pn %l2, 2b
+	 ldx	[%sp + PTREGS_OFF + PT_V9_TNPC], %l1 ! pc = npc
 	/* System call failure, set Carry condition code.
 	 * Also, get abs(errno) to return to the process.
 	 */
-	andcc	%l0, (_TIF_SYSCALL_TRACE|_TIF_SECCOMP|_TIF_SYSCALL_AUDIT|_TIF_SYSCALL_TRACEPOINT), %l6	
 	sub	%g0, %o0, %o0
-	or	%g3, %g2, %g3
 	stx	%o0, [%sp + PTREGS_OFF + PT_V9_I0]
-	stx	%g3, [%sp + PTREGS_OFF + PT_V9_TSTATE]
-	bne,pn	%icc, linux_syscall_trace2
-	 add	%l1, 0x4, %l2			! npc = npc+4
-	stx	%l1, [%sp + PTREGS_OFF + PT_V9_TPC]
+	ba,pt	%xcc, 3b
+	 or	%g3, %g2, %g3
 
-	b,pt	%xcc, rtrap
-	 stx	%l2, [%sp + PTREGS_OFF + PT_V9_TNPC]
 linux_syscall_trace2:
 	call	syscall_trace_leave
 	 add	%sp, PTREGS_OFF, %o0

^ permalink raw reply related	[flat|nested] 548+ messages in thread

* Re: [GIT] Sparc
@ 2012-10-10  5:11   ` Al Viro
  0 siblings, 0 replies; 548+ messages in thread
From: Al Viro @ 2012-10-10  5:11 UTC (permalink / raw)
  To: David Miller; +Cc: torvalds, akpm, sparclinux, linux-kernel

On Mon, Oct 08, 2012 at 04:18:06PM -0400, David Miller wrote:
> 
> There is an attempt to fix a bad interaction between syscall tracing
> and force_successful_syscall() from Al Viro, but it needs to be redone
> as it introduced regressions and thus had to be reverted for now.
> 
> Al is working on an updated version.

See below.  Just in case: Linus, please DO NOT APPLY unless it goes through
sparc tree - this is modulo approval by davem.

sparc64: fix ptrace interaction with force_successful_syscall_return()
    
we want syscall_trace_leave() called on exit from any syscall;
skipping its call in case we'd done force_successful_syscall_return()
is broken...
    
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>

diff --git a/arch/sparc/kernel/syscalls.S b/arch/sparc/kernel/syscalls.S
index 1d7e274..7f5f65d 100644
--- a/arch/sparc/kernel/syscalls.S
+++ b/arch/sparc/kernel/syscalls.S
@@ -212,24 +212,20 @@ linux_sparc_syscall:
 3:	stx	%o0, [%sp + PTREGS_OFF + PT_V9_I0]
 ret_sys_call:
 	ldx	[%sp + PTREGS_OFF + PT_V9_TSTATE], %g3
-	ldx	[%sp + PTREGS_OFF + PT_V9_TNPC], %l1 ! pc = npc
 	sra	%o0, 0, %o0
 	mov	%ulo(TSTATE_XCARRY | TSTATE_ICARRY), %g2
 	sllx	%g2, 32, %g2
 
-	/* Check if force_successful_syscall_return()
-	 * was invoked.
-	 */
-	ldub	[%g6 + TI_SYS_NOERROR], %l2
-	brnz,a,pn %l2, 80f
-	 stb	%g0, [%g6 + TI_SYS_NOERROR]
-
 	cmp	%o0, -ERESTART_RESTARTBLOCK
 	bgeu,pn	%xcc, 1f
-	 andcc	%l0, (_TIF_SYSCALL_TRACE|_TIF_SECCOMP|_TIF_SYSCALL_AUDIT|_TIF_SYSCALL_TRACEPOINT), %l6
-80:
+	 andcc	%l0, (_TIF_SYSCALL_TRACE|_TIF_SECCOMP|_TIF_SYSCALL_AUDIT|_TIF_SYSCALL_TRACEPOINT), %g0
+	ldx	[%sp + PTREGS_OFF + PT_V9_TNPC], %l1 ! pc = npc
+
+2:
+	stb	%g0, [%g6 + TI_SYS_NOERROR]
 	/* System call success, clear Carry condition code. */
 	andn	%g3, %g2, %g3
+3:
 	stx	%g3, [%sp + PTREGS_OFF + PT_V9_TSTATE]	
 	bne,pn	%icc, linux_syscall_trace2
 	 add	%l1, 0x4, %l2			! npc = npc+4
@@ -238,20 +234,20 @@ ret_sys_call:
 	 stx	%l2, [%sp + PTREGS_OFF + PT_V9_TNPC]
 
 1:
+	/* Check if force_successful_syscall_return()
+	 * was invoked.
+	 */
+	ldub	[%g6 + TI_SYS_NOERROR], %l2
+	brnz,pn %l2, 2b
+	 ldx	[%sp + PTREGS_OFF + PT_V9_TNPC], %l1 ! pc = npc
 	/* System call failure, set Carry condition code.
 	 * Also, get abs(errno) to return to the process.
 	 */
-	andcc	%l0, (_TIF_SYSCALL_TRACE|_TIF_SECCOMP|_TIF_SYSCALL_AUDIT|_TIF_SYSCALL_TRACEPOINT), %l6	
 	sub	%g0, %o0, %o0
-	or	%g3, %g2, %g3
 	stx	%o0, [%sp + PTREGS_OFF + PT_V9_I0]
-	stx	%g3, [%sp + PTREGS_OFF + PT_V9_TSTATE]
-	bne,pn	%icc, linux_syscall_trace2
-	 add	%l1, 0x4, %l2			! npc = npc+4
-	stx	%l1, [%sp + PTREGS_OFF + PT_V9_TPC]
+	ba,pt	%xcc, 3b
+	 or	%g3, %g2, %g3
 
-	b,pt	%xcc, rtrap
-	 stx	%l2, [%sp + PTREGS_OFF + PT_V9_TNPC]
 linux_syscall_trace2:
 	call	syscall_trace_leave
 	 add	%sp, PTREGS_OFF, %o0

^ permalink raw reply related	[flat|nested] 548+ messages in thread

* Re: [GIT] Sparc
  2012-10-10  5:11   ` Al Viro
@ 2012-10-11  0:34     ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2012-10-11  0:34 UTC (permalink / raw)
  To: viro; +Cc: torvalds, akpm, sparclinux, linux-kernel

From: Al Viro <viro@ZenIV.linux.org.uk>
Date: Wed, 10 Oct 2012 06:11:10 +0100

> sparc64: fix ptrace interaction with force_successful_syscall_return()
>     
> we want syscall_trace_leave() called on exit from any syscall;
> skipping its call in case we'd done force_successful_syscall_return()
> is broken...
>     
> Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>

My eyes say this one is good, I'm testing it now and will push to
Linus if I don't hit any problems.

Thanks!

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] Sparc
@ 2012-10-11  0:34     ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2012-10-11  0:34 UTC (permalink / raw)
  To: viro; +Cc: torvalds, akpm, sparclinux, linux-kernel

From: Al Viro <viro@ZenIV.linux.org.uk>
Date: Wed, 10 Oct 2012 06:11:10 +0100

> sparc64: fix ptrace interaction with force_successful_syscall_return()
>     
> we want syscall_trace_leave() called on exit from any syscall;
> skipping its call in case we'd done force_successful_syscall_return()
> is broken...
>     
> Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>

My eyes say this one is good, I'm testing it now and will push to
Linus if I don't hit any problems.

Thanks!

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2012-10-12 19:26 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2012-10-12 19:26 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


1) Updated syscall tracing fix from Al Viro.

2) SUN4V error reporting was deficient in several areas.

Please pull, thanks a lot!

The following changes since commit 2474542f64432398f503373f53bdf620491bcfa8:

  Merge tag 'for-3.7-rc1' of git://gitorious.org/linux-pwm/linux-pwm (2012-10-10 20:15:24 +0900)

are available in the git repository at:


  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git master

for you to fetch changes up to 55c2770e413e96871147b9406a9c41fe9bc5209c:

  sparc64: fix ptrace interaction with force_successful_syscall_return() (2012-10-10 17:25:00 -0700)

----------------------------------------------------------------
Al Viro (1):
      sparc64: fix ptrace interaction with force_successful_syscall_return()

David S. Miller (1):
      sparc64: Fix deficiencies in sun4v error reporting.

 arch/sparc/include/asm/uaccess_64.h |   5 ++
 arch/sparc/kernel/syscalls.S        |  32 ++++++------
 arch/sparc/kernel/traps_64.c        | 263 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----------------------
 arch/sparc/mm/fault_64.c            |   2 -
 4 files changed, 221 insertions(+), 81 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2012-10-12 19:26 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2012-10-12 19:26 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


1) Updated syscall tracing fix from Al Viro.

2) SUN4V error reporting was deficient in several areas.

Please pull, thanks a lot!

The following changes since commit 2474542f64432398f503373f53bdf620491bcfa8:

  Merge tag 'for-3.7-rc1' of git://gitorious.org/linux-pwm/linux-pwm (2012-10-10 20:15:24 +0900)

are available in the git repository at:


  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git master

for you to fetch changes up to 55c2770e413e96871147b9406a9c41fe9bc5209c:

  sparc64: fix ptrace interaction with force_successful_syscall_return() (2012-10-10 17:25:00 -0700)

----------------------------------------------------------------
Al Viro (1):
      sparc64: fix ptrace interaction with force_successful_syscall_return()

David S. Miller (1):
      sparc64: Fix deficiencies in sun4v error reporting.

 arch/sparc/include/asm/uaccess_64.h |   5 ++
 arch/sparc/kernel/syscalls.S        |  32 ++++++------
 arch/sparc/kernel/traps_64.c        | 263 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----------------------
 arch/sparc/mm/fault_64.c            |   2 -
 4 files changed, 221 insertions(+), 81 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2012-10-17  5:05 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2012-10-17  5:05 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Two sparc64 perf bug fixes and add a sysrq facility so I can diagnose
these kinds of problems more quickly in the future.

Please pull, thanks a lot.

The following changes since commit ddffeb8c4d0331609ef2581d84de4d763607bd37:

  Linux 3.7-rc1 (2012-10-14 14:41:04 -0700)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git master

for you to fetch changes up to e793d8c6740f8fe704fa216e95685f4d92c4c4b9:

  sparc64: Fix bit twiddling in sparc_pmu_enable_event(). (2012-10-16 13:05:25 -0700)

----------------------------------------------------------------
David S. Miller (3):
      sparc64: Like x86 we should check current->mm during perf backtrace generation.
      sparc64: Add global PMU register dumping via sysrq.
      sparc64: Fix bit twiddling in sparc_pmu_enable_event().

 Documentation/sysrq.txt         |   1 +
 arch/sparc/include/asm/ptrace.h |  13 +++++++-
 arch/sparc/include/asm/smp_64.h |   2 ++
 arch/sparc/kernel/perf_event.c  |  15 +++++----
 arch/sparc/kernel/process_64.c  | 120 +++++++++++++++++++++++++++++++++++++++++++++++++++++++------------
 arch/sparc/kernel/smp_64.c      |  11 +++++++
 arch/sparc/mm/ultra.S           |  64 ++++++++++++++++++++++++++++++++++--
 drivers/tty/sysrq.c             |   1 +
 8 files changed, 198 insertions(+), 29 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2012-10-17  5:05 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2012-10-17  5:05 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Two sparc64 perf bug fixes and add a sysrq facility so I can diagnose
these kinds of problems more quickly in the future.

Please pull, thanks a lot.

The following changes since commit ddffeb8c4d0331609ef2581d84de4d763607bd37:

  Linux 3.7-rc1 (2012-10-14 14:41:04 -0700)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git master

for you to fetch changes up to e793d8c6740f8fe704fa216e95685f4d92c4c4b9:

  sparc64: Fix bit twiddling in sparc_pmu_enable_event(). (2012-10-16 13:05:25 -0700)

----------------------------------------------------------------
David S. Miller (3):
      sparc64: Like x86 we should check current->mm during perf backtrace generation.
      sparc64: Add global PMU register dumping via sysrq.
      sparc64: Fix bit twiddling in sparc_pmu_enable_event().

 Documentation/sysrq.txt         |   1 +
 arch/sparc/include/asm/ptrace.h |  13 +++++++-
 arch/sparc/include/asm/smp_64.h |   2 ++
 arch/sparc/kernel/perf_event.c  |  15 +++++----
 arch/sparc/kernel/process_64.c  | 120 +++++++++++++++++++++++++++++++++++++++++++++++++++++++------------
 arch/sparc/kernel/smp_64.c      |  11 +++++++
 arch/sparc/mm/ultra.S           |  64 ++++++++++++++++++++++++++++++++++--
 drivers/tty/sysrq.c             |   1 +
 8 files changed, 198 insertions(+), 29 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2012-11-10 19:21 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2012-11-10 19:21 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Several build/bug fixes for sparc, including:

1) Configuring a mix of static vs. modular sparc64 crypto modules
   didn't work, remove an ill-conceived attempt to only have to build
   the device match table for these drivers once to fix the problem.

   Reported by Meelis Roos.

2) Make the montgomery multiple/square and mpmul instructions actually
   usable in 32-bit tasks.  Essentially this involves providing 32-bit
   userspace with a way to use a 64-bit stack when it needs to.

3) Our sparc64 atomic backoffs don't yield cpu strands properly on
   Niagara chips.  Use pause instruction when available to achieve
   this, otherwise use a benign instruction we know blocks the
   strand for some time.

4) Wire up kcmp

5) Fix the build of various drivers by removing the unnecessary
   blocking of OF_GPIO when SPARC.

6) Fix unintended regression wherein of_address_to_resource stopped
   being provided.  Fix from Andreas Larsson.

7) Fix NULL dereference in leon_handle_ext_irq(), also from Andreas
   Larsson.

Please pull, thanks a lot.

The following changes since commit 1d47091ac6bf1286d708ebcd3f2b69d7c682916b:

  Merge tag 'usb-3.7-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb (2012-10-26 10:26:36 -0700)

are available in the git repository at:


  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc master

for you to fetch changes up to 226f7cea949303a3e1911999a9a2c71b0a708e73:

  sparc64: Fix build with mix of modular vs. non-modular crypto drivers. (2012-11-09 20:55:16 -0800)

----------------------------------------------------------------
Andreas Larsson (3):
      sparc: Add sparc support for platform_get_irq()
      sparc32, leon: Check for existent irq_map entry in leon_handle_ext_irq
      of/address: sparc: Declare of_address_to_resource() as an extern function for sparc again

David S. Miller (9):
      sparc64: Make montmul/montsqr/mpmul usable in 32-bit threads.
      sparc64: Fix cpu strand yielding.
      sparc64: Use pause instruction when available.
      sparc64: Improvde documentation and readability of atomic backoff code.
      sparc: Wire up sys_kcmp.
      qlogicpti: Fix build warning.
      sparc: Allow OF_GPIO on sparc.
      sparc: Support atomic64_dec_if_positive properly.
      sparc64: Fix build with mix of modular vs. non-modular crypto drivers.

 arch/sparc/Kconfig                      |  1 +
 arch/sparc/crypto/Makefile              | 16 ++++++++--------
 arch/sparc/crypto/aes_glue.c            |  2 ++
 arch/sparc/crypto/camellia_glue.c       |  2 ++
 arch/sparc/crypto/crc32c_glue.c         |  2 ++
 arch/sparc/crypto/des_glue.c            |  2 ++
 arch/sparc/crypto/md5_glue.c            |  2 ++
 arch/sparc/crypto/sha1_glue.c           |  2 ++
 arch/sparc/crypto/sha256_glue.c         |  2 ++
 arch/sparc/crypto/sha512_glue.c         |  2 ++
 arch/sparc/include/asm/atomic_64.h      |  4 +++-
 arch/sparc/include/asm/backoff.h        | 69 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------
 arch/sparc/include/asm/compat.h         |  5 +++--
 arch/sparc/include/asm/processor_64.h   | 17 ++++++++++++++++-
 arch/sparc/include/asm/prom.h           |  5 +++++
 arch/sparc/include/asm/thread_info_64.h |  5 +++++
 arch/sparc/include/asm/ttable.h         | 24 ++++++++++++++++--------
 arch/sparc/include/uapi/asm/unistd.h    |  7 ++++++-
 arch/sparc/kernel/entry.h               |  7 +++++++
 arch/sparc/kernel/leon_kernel.c         |  6 ++++--
 arch/sparc/kernel/perf_event.c          | 22 ++++++++++++++++------
 arch/sparc/kernel/process_64.c          | 42 +++++++++++++++++++++++-------------------
 arch/sparc/kernel/ptrace_64.c           |  4 ++--
 arch/sparc/kernel/setup_64.c            | 21 +++++++++++++++++++++
 arch/sparc/kernel/sys_sparc_64.c        |  5 +++++
 arch/sparc/kernel/systbls_32.S          |  1 +
 arch/sparc/kernel/systbls_64.S          |  2 ++
 arch/sparc/kernel/unaligned_64.c        | 36 +++++++++++++++++++++++-------------
 arch/sparc/kernel/visemul.c             | 23 ++++++++++++++---------
 arch/sparc/kernel/vmlinux.lds.S         |  5 +++++
 arch/sparc/kernel/winfixup.S            |  2 ++
 arch/sparc/lib/atomic_64.S              | 16 +++++++++++++++-
 arch/sparc/lib/ksyms.c                  |  1 +
 arch/sparc/math-emu/math_64.c           |  2 +-
 drivers/base/platform.c                 |  7 +++++++
 drivers/gpio/Kconfig                    |  2 +-
 drivers/scsi/qlogicpti.c                | 13 +------------
 include/linux/of_address.h              |  2 ++
 38 files changed, 291 insertions(+), 97 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2012-11-10 19:21 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2012-11-10 19:21 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Several build/bug fixes for sparc, including:

1) Configuring a mix of static vs. modular sparc64 crypto modules
   didn't work, remove an ill-conceived attempt to only have to build
   the device match table for these drivers once to fix the problem.

   Reported by Meelis Roos.

2) Make the montgomery multiple/square and mpmul instructions actually
   usable in 32-bit tasks.  Essentially this involves providing 32-bit
   userspace with a way to use a 64-bit stack when it needs to.

3) Our sparc64 atomic backoffs don't yield cpu strands properly on
   Niagara chips.  Use pause instruction when available to achieve
   this, otherwise use a benign instruction we know blocks the
   strand for some time.

4) Wire up kcmp

5) Fix the build of various drivers by removing the unnecessary
   blocking of OF_GPIO when SPARC.

6) Fix unintended regression wherein of_address_to_resource stopped
   being provided.  Fix from Andreas Larsson.

7) Fix NULL dereference in leon_handle_ext_irq(), also from Andreas
   Larsson.

Please pull, thanks a lot.

The following changes since commit 1d47091ac6bf1286d708ebcd3f2b69d7c682916b:

  Merge tag 'usb-3.7-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb (2012-10-26 10:26:36 -0700)

are available in the git repository at:


  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc master

for you to fetch changes up to 226f7cea949303a3e1911999a9a2c71b0a708e73:

  sparc64: Fix build with mix of modular vs. non-modular crypto drivers. (2012-11-09 20:55:16 -0800)

----------------------------------------------------------------
Andreas Larsson (3):
      sparc: Add sparc support for platform_get_irq()
      sparc32, leon: Check for existent irq_map entry in leon_handle_ext_irq
      of/address: sparc: Declare of_address_to_resource() as an extern function for sparc again

David S. Miller (9):
      sparc64: Make montmul/montsqr/mpmul usable in 32-bit threads.
      sparc64: Fix cpu strand yielding.
      sparc64: Use pause instruction when available.
      sparc64: Improvde documentation and readability of atomic backoff code.
      sparc: Wire up sys_kcmp.
      qlogicpti: Fix build warning.
      sparc: Allow OF_GPIO on sparc.
      sparc: Support atomic64_dec_if_positive properly.
      sparc64: Fix build with mix of modular vs. non-modular crypto drivers.

 arch/sparc/Kconfig                      |  1 +
 arch/sparc/crypto/Makefile              | 16 ++++++++--------
 arch/sparc/crypto/aes_glue.c            |  2 ++
 arch/sparc/crypto/camellia_glue.c       |  2 ++
 arch/sparc/crypto/crc32c_glue.c         |  2 ++
 arch/sparc/crypto/des_glue.c            |  2 ++
 arch/sparc/crypto/md5_glue.c            |  2 ++
 arch/sparc/crypto/sha1_glue.c           |  2 ++
 arch/sparc/crypto/sha256_glue.c         |  2 ++
 arch/sparc/crypto/sha512_glue.c         |  2 ++
 arch/sparc/include/asm/atomic_64.h      |  4 +++-
 arch/sparc/include/asm/backoff.h        | 69 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------
 arch/sparc/include/asm/compat.h         |  5 +++--
 arch/sparc/include/asm/processor_64.h   | 17 ++++++++++++++++-
 arch/sparc/include/asm/prom.h           |  5 +++++
 arch/sparc/include/asm/thread_info_64.h |  5 +++++
 arch/sparc/include/asm/ttable.h         | 24 ++++++++++++++++--------
 arch/sparc/include/uapi/asm/unistd.h    |  7 ++++++-
 arch/sparc/kernel/entry.h               |  7 +++++++
 arch/sparc/kernel/leon_kernel.c         |  6 ++++--
 arch/sparc/kernel/perf_event.c          | 22 ++++++++++++++++------
 arch/sparc/kernel/process_64.c          | 42 +++++++++++++++++++++++-------------------
 arch/sparc/kernel/ptrace_64.c           |  4 ++--
 arch/sparc/kernel/setup_64.c            | 21 +++++++++++++++++++++
 arch/sparc/kernel/sys_sparc_64.c        |  5 +++++
 arch/sparc/kernel/systbls_32.S          |  1 +
 arch/sparc/kernel/systbls_64.S          |  2 ++
 arch/sparc/kernel/unaligned_64.c        | 36 +++++++++++++++++++++++-------------
 arch/sparc/kernel/visemul.c             | 23 ++++++++++++++---------
 arch/sparc/kernel/vmlinux.lds.S         |  5 +++++
 arch/sparc/kernel/winfixup.S            |  2 ++
 arch/sparc/lib/atomic_64.S              | 16 +++++++++++++++-
 arch/sparc/lib/ksyms.c                  |  1 +
 arch/sparc/math-emu/math_64.c           |  2 +-
 drivers/base/platform.c                 |  7 +++++++
 drivers/gpio/Kconfig                    |  2 +-
 drivers/scsi/qlogicpti.c                | 13 +------------
 include/linux/of_address.h              |  2 ++
 38 files changed, 291 insertions(+), 97 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2012-11-23 19:48 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2012-11-23 19:48 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Please pull in this bug fix from Al Viro.

Thanks!

The following changes since commit 3587b1b097d70c2eb9fee95ea7995d13c05f66e5:

  fanotify: fix FAN_Q_OVERFLOW case of fanotify_read() (2012-11-18 09:30:00 -1000)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc master

for you to fetch changes up to fae2ae2a900a5c7bb385fe4075f343e7e2d5daa2:

  sparc64: not any error from do_sigaltstack() should fail rt_sigreturn() (2012-11-18 22:27:03 -0500)

----------------------------------------------------------------
Al Viro (1):
      sparc64: not any error from do_sigaltstack() should fail rt_sigreturn()

 arch/sparc/kernel/signal_64.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2012-11-23 19:48 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2012-11-23 19:48 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Please pull in this bug fix from Al Viro.

Thanks!

The following changes since commit 3587b1b097d70c2eb9fee95ea7995d13c05f66e5:

  fanotify: fix FAN_Q_OVERFLOW case of fanotify_read() (2012-11-18 09:30:00 -1000)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc master

for you to fetch changes up to fae2ae2a900a5c7bb385fe4075f343e7e2d5daa2:

  sparc64: not any error from do_sigaltstack() should fail rt_sigreturn() (2012-11-18 22:27:03 -0500)

----------------------------------------------------------------
Al Viro (1):
      sparc64: not any error from do_sigaltstack() should fail rt_sigreturn()

 arch/sparc/kernel/signal_64.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2012-12-03 20:33 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2012-12-03 20:33 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Two small fixes for Sparc, nobody uses sparc, so these are
low risk :-)

1) Piggyback is too picky about the symbol types that _start
   and _end have in the final kernel image, and it thus breaks
   with newer binutils.  Future proof by getting rid of the
   symbol type checks.

2) exit_group() should kill register windows on sparc64 the same
   way we do for plain exit().  Thanks to Al Viro for spotting
   this.

Please pull, thanks a lot!

The following changes since commit 7e5530af11be68f3109672aed59243f82e1272f0:

  Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net (2012-12-02 16:39:00 -0800)

are available in the git repository at:


  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git master

for you to fetch changes up to 0032c857454581510de1ca12615de5e38e543c92:

  sparc: Fix piggyback with newer binutils. (2012-12-03 11:24:25 -0800)

----------------------------------------------------------------
David S. Miller (2):
      sparc64: exit_group should kill register windows just like plain exit.
      sparc: Fix piggyback with newer binutils.

 arch/sparc/boot/piggyback.c    | 12 ++++++------
 arch/sparc/kernel/sys32.S      |  2 +-
 arch/sparc/kernel/syscalls.S   | 14 ++++++++++++--
 arch/sparc/kernel/systbls_64.S |  2 +-
 4 files changed, 20 insertions(+), 10 deletions(-)


^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2012-12-03 20:33 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2012-12-03 20:33 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Two small fixes for Sparc, nobody uses sparc, so these are
low risk :-)

1) Piggyback is too picky about the symbol types that _start
   and _end have in the final kernel image, and it thus breaks
   with newer binutils.  Future proof by getting rid of the
   symbol type checks.

2) exit_group() should kill register windows on sparc64 the same
   way we do for plain exit().  Thanks to Al Viro for spotting
   this.

Please pull, thanks a lot!

The following changes since commit 7e5530af11be68f3109672aed59243f82e1272f0:

  Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net (2012-12-02 16:39:00 -0800)

are available in the git repository at:


  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git master

for you to fetch changes up to 0032c857454581510de1ca12615de5e38e543c92:

  sparc: Fix piggyback with newer binutils. (2012-12-03 11:24:25 -0800)

----------------------------------------------------------------
David S. Miller (2):
      sparc64: exit_group should kill register windows just like plain exit.
      sparc: Fix piggyback with newer binutils.

 arch/sparc/boot/piggyback.c    | 12 ++++++------
 arch/sparc/kernel/sys32.S      |  2 +-
 arch/sparc/kernel/syscalls.S   | 14 ++++++++++++--
 arch/sparc/kernel/systbls_64.S |  2 +-
 4 files changed, 20 insertions(+), 10 deletions(-)


^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2012-12-13 20:11 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2012-12-13 20:11 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Not much going on this release cycle in sparc land, just a Kconfig
tweak.

Please pull, thanks a lot!

The following changes since commit 1afa471706963643ceeda7cbbe9c605a1e883d53:

  Merge tag 'mmc-fixes-for-3.7' of git://git.kernel.org/pub/scm/linux/kernel/git/cjb/mmc (2012-12-07 09:15:20 -0800)

are available in the git repository at:


  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-next.git master

for you to fetch changes up to 476ab8fb78105f525cc56babb3980ffdd916aa24:

  of_i2c: sparc: Allow OF_I2C for sparc (2012-12-07 09:17:55 -0800)

----------------------------------------------------------------
Andreas Larsson (1):
      of_i2c: sparc: Allow OF_I2C for sparc

 drivers/of/Kconfig | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2012-12-13 20:11 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2012-12-13 20:11 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Not much going on this release cycle in sparc land, just a Kconfig
tweak.

Please pull, thanks a lot!

The following changes since commit 1afa471706963643ceeda7cbbe9c605a1e883d53:

  Merge tag 'mmc-fixes-for-3.7' of git://git.kernel.org/pub/scm/linux/kernel/git/cjb/mmc (2012-12-07 09:15:20 -0800)

are available in the git repository at:


  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-next.git master

for you to fetch changes up to 476ab8fb78105f525cc56babb3980ffdd916aa24:

  of_i2c: sparc: Allow OF_I2C for sparc (2012-12-07 09:17:55 -0800)

----------------------------------------------------------------
Andreas Larsson (1):
      of_i2c: sparc: Allow OF_I2C for sparc

 drivers/of/Kconfig | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2012-12-20  0:15 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2012-12-20  0:15 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Please pull to get these sparc AES/DES/CAMELLIA crypto bug fixes
as well as an addition of a pte_accessible() define for sparc64
and a hugetlb fix from Dave Kleikamp.

Thanks.

The following changes since commit 31564cbd77baa88405862d4aa0d00893ab1d8cb7:

  Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input (2012-12-18 12:46:37 -0800)

are available in the git repository at:


  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc master

for you to fetch changes up to 62ba63dc892cf836ecb9ce4fdb7644d45c95070b:

  sparc64: Set CRYPTO_TFM_REQ_MAY_SLEEP consistently in CAMELLIA code. (2012-12-19 15:44:31 -0800)

----------------------------------------------------------------
Dave Kleikamp (1):
      sparc: huge_ptep_set_* functions need to call set_huge_pte_at()

David S. Miller (7):
      sparc64: Define pte_accessible()
      sparc64: Fix unrolled AES 256-bit key loops.
      sparc64: Fix AES ctr mode block size.
      sparc64: Set CRYPTO_TFM_REQ_MAY_SLEEP consistently in AES code.
      sparc64: Fix ECB looping constructs in AES code.
      sparc64: Set CRYPTO_TFM_REQ_MAY_SLEEP consistently in DES code.
      sparc64: Set CRYPTO_TFM_REQ_MAY_SLEEP consistently in CAMELLIA code.

 arch/sparc/crypto/aes_asm.S         | 20 ++++++++++++++------
 arch/sparc/crypto/aes_glue.c        | 31 ++++++++++++++++++++++++++++---
 arch/sparc/crypto/camellia_glue.c   |  3 +++
 arch/sparc/crypto/des_asm.S         |  1 +
 arch/sparc/crypto/des_glue.c        |  6 ++++++
 arch/sparc/include/asm/hugetlb.h    | 10 ++++++++--
 arch/sparc/include/asm/pgtable_64.h |  8 +++++++-
 7 files changed, 67 insertions(+), 12 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2012-12-20  0:15 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2012-12-20  0:15 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Please pull to get these sparc AES/DES/CAMELLIA crypto bug fixes
as well as an addition of a pte_accessible() define for sparc64
and a hugetlb fix from Dave Kleikamp.

Thanks.

The following changes since commit 31564cbd77baa88405862d4aa0d00893ab1d8cb7:

  Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input (2012-12-18 12:46:37 -0800)

are available in the git repository at:


  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc master

for you to fetch changes up to 62ba63dc892cf836ecb9ce4fdb7644d45c95070b:

  sparc64: Set CRYPTO_TFM_REQ_MAY_SLEEP consistently in CAMELLIA code. (2012-12-19 15:44:31 -0800)

----------------------------------------------------------------
Dave Kleikamp (1):
      sparc: huge_ptep_set_* functions need to call set_huge_pte_at()

David S. Miller (7):
      sparc64: Define pte_accessible()
      sparc64: Fix unrolled AES 256-bit key loops.
      sparc64: Fix AES ctr mode block size.
      sparc64: Set CRYPTO_TFM_REQ_MAY_SLEEP consistently in AES code.
      sparc64: Fix ECB looping constructs in AES code.
      sparc64: Set CRYPTO_TFM_REQ_MAY_SLEEP consistently in DES code.
      sparc64: Set CRYPTO_TFM_REQ_MAY_SLEEP consistently in CAMELLIA code.

 arch/sparc/crypto/aes_asm.S         | 20 ++++++++++++++------
 arch/sparc/crypto/aes_glue.c        | 31 ++++++++++++++++++++++++++++---
 arch/sparc/crypto/camellia_glue.c   |  3 +++
 arch/sparc/crypto/des_asm.S         |  1 +
 arch/sparc/crypto/des_glue.c        |  6 ++++++
 arch/sparc/include/asm/hugetlb.h    | 10 ++++++++--
 arch/sparc/include/asm/pgtable_64.h |  8 +++++++-
 7 files changed, 67 insertions(+), 12 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
  (?)
  (?)
@ 2013-01-12 23:56 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2013-01-12 23:56 UTC (permalink / raw)
  To: sparclinux


1) Add finit_module syscall entry.

2) Remove stray __dev{init,exit} references, from Sam Ravnborg.

Please pull, thanks a lot!

The following changes since commit c4271c6e37c32105492cbbed35f45330cb327b94:

  NFS: Kill fscache warnings when mounting without -ofsc (2012-12-21 08:32:09 -0800)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc master

for you to fetch changes up to b7c13f76fda994284521f6ef996119c25282bdeb:

  sparc: remove __devinit, __devexit annotations (2013-01-12 15:28:45 -0800)

----------------------------------------------------------------
David S. Miller (1):
      sparc: Hook up finit_module syscall.

Sam Ravnborg (1):
      sparc: remove __devinit, __devexit annotations

 arch/sparc/include/asm/parport.h     |  6 +++---
 arch/sparc/include/asm/timer_64.h    |  2 +-
 arch/sparc/include/uapi/asm/unistd.h |  3 ++-
 arch/sparc/kernel/apc.c              |  4 ++--
 arch/sparc/kernel/auxio_64.c         |  2 +-
 arch/sparc/kernel/central.c          |  6 +++---
 arch/sparc/kernel/chmc.c             | 34 +++++++++++++++++-----------------
 arch/sparc/kernel/ds.c               |  5 ++---
 arch/sparc/kernel/ldc.c              |  2 +-
 arch/sparc/kernel/leon_pci.c         |  2 +-
 arch/sparc/kernel/leon_pci_grpci2.c  |  2 +-
 arch/sparc/kernel/pci.c              | 37 ++++++++++++++++++-------------------
 arch/sparc/kernel/pci_fire.c         |  6 +++---
 arch/sparc/kernel/pci_psycho.c       | 12 ++++++------
 arch/sparc/kernel/pci_sabre.c        |  9 ++++-----
 arch/sparc/kernel/pci_schizo.c       | 16 +++++++---------
 arch/sparc/kernel/pci_sun4v.c        | 15 +++++++--------
 arch/sparc/kernel/pcic.c             |  5 ++---
 arch/sparc/kernel/pmc.c              |  2 +-
 arch/sparc/kernel/power.c            |  4 ++--
 arch/sparc/kernel/smp_64.c           |  4 ++--
 arch/sparc/kernel/systbls_32.S       |  2 +-
 arch/sparc/kernel/systbls_64.S       |  4 ++--
 arch/sparc/kernel/time_32.c          |  2 +-
 arch/sparc/kernel/time_64.c          | 10 +++++-----
 arch/sparc/mm/init_64.c              |  6 +++---
 26 files changed, 98 insertions(+), 104 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2013-02-14 20:14 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2013-02-14 20:14 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


A couple small fixes for sparc including some THP brown-paper-bag
material:

1) During the merging of all the THP support for various architectures,
   sparc missed adding a HAVE_ARCH_TRANSPARENT_HUGEPAGE to it's Kconfig,
   oops.

2) Sparc needs to be mindful of hugepages in get_user_pages_fast().

3) Fix memory leak in SBUS probe, from Cong Ding.

4) The sunvdc virtual disk client driver has a test of the bitmask of
   vdisk server supported operations which was off by one bit.

Please pull, thanks a lot!

The following changes since commit 9a9284153d965a57edc7162a8e57c14c97f3a935:

  Merge branch 'drm-fixes' of git://people.freedesktop.org/~airlied/linux (2013-01-20 20:55:49 -0800)

are available in the git repository at:


  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git master

for you to fetch changes up to f4d9605434c0fd4cc8639bf25cfc043418c52362:

  sunvdc: Fix off-by-one in generic_request(). (2013-02-14 11:49:01 -0800)

----------------------------------------------------------------
Cong Ding (1):
      sparc: kernel/sbus.c: fix memory leakage

David S. Miller (3):
      sparc64: Add missing HAVE_ARCH_TRANSPARENT_HUGEPAGE.
      sparc64: Fix get_user_pages_fast() wrt. THP.
      sunvdc: Fix off-by-one in generic_request().

 arch/sparc/Kconfig                  |  1 +
 arch/sparc/include/asm/pgtable_64.h | 14 ++++++--------
 arch/sparc/kernel/sbus.c            |  6 +++---
 arch/sparc/mm/gup.c                 | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++--
 drivers/block/sunvdc.c              |  2 +-
 5 files changed, 68 insertions(+), 14 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2013-02-14 20:14 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2013-02-14 20:14 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


A couple small fixes for sparc including some THP brown-paper-bag
material:

1) During the merging of all the THP support for various architectures,
   sparc missed adding a HAVE_ARCH_TRANSPARENT_HUGEPAGE to it's Kconfig,
   oops.

2) Sparc needs to be mindful of hugepages in get_user_pages_fast().

3) Fix memory leak in SBUS probe, from Cong Ding.

4) The sunvdc virtual disk client driver has a test of the bitmask of
   vdisk server supported operations which was off by one bit.

Please pull, thanks a lot!

The following changes since commit 9a9284153d965a57edc7162a8e57c14c97f3a935:

  Merge branch 'drm-fixes' of git://people.freedesktop.org/~airlied/linux (2013-01-20 20:55:49 -0800)

are available in the git repository at:


  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git master

for you to fetch changes up to f4d9605434c0fd4cc8639bf25cfc043418c52362:

  sunvdc: Fix off-by-one in generic_request(). (2013-02-14 11:49:01 -0800)

----------------------------------------------------------------
Cong Ding (1):
      sparc: kernel/sbus.c: fix memory leakage

David S. Miller (3):
      sparc64: Add missing HAVE_ARCH_TRANSPARENT_HUGEPAGE.
      sparc64: Fix get_user_pages_fast() wrt. THP.
      sunvdc: Fix off-by-one in generic_request().

 arch/sparc/Kconfig                  |  1 +
 arch/sparc/include/asm/pgtable_64.h | 14 ++++++--------
 arch/sparc/kernel/sbus.c            |  6 +++---
 arch/sparc/mm/gup.c                 | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++--
 drivers/block/sunvdc.c              |  2 +-
 5 files changed, 68 insertions(+), 14 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2013-03-19 21:18 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2013-03-19 21:18 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Just some minor fixups, a sunsu console setup panic cure, and
recognition of a Fujitsu sun4v cpu.

Please pull, thanks a lot!

The following changes since commit b0af9cd9aab60ceb17d3ebabb9fdf4ff0a99cf50:

  Merge tag 'lzo-update-signature-20130226' of git://github.com/markus-oberhumer/linux (2013-02-28 20:45:52 -0800)

are available in the git repository at:


  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git master

for you to fetch changes up to f58b20bd6bad48d6fc5633f003c3651115273fb2:

  sparc: remove unused "config BITS" (2013-03-19 16:23:51 -0400)

----------------------------------------------------------------
Allen Pais (1):
      sparc64: correctly recognize SPARC64-X chips

Daniel Hellstrom (1):
      sparc,leon: fix GRPCI2 device0 PCI config space access

Paul Bolle (2):
      sparc: delete "if !ULTRA_HAS_POPULATION_COUNT"
      sparc: remove unused "config BITS"

Tkhai Kirill (1):
      sunsu: Fix panic in case of nonexistent port at "console=ttySY" cmdline option

 arch/sparc/Kconfig                  |  8 +-------
 arch/sparc/include/asm/spitfire.h   |  1 +
 arch/sparc/kernel/cpu.c             |  6 ++++++
 arch/sparc/kernel/head_64.S         | 25 +++++++++++++++++++++++--
 arch/sparc/kernel/leon_pci_grpci2.c | 41 ++++++++++++++++++++++++++---------------
 drivers/tty/serial/sunsu.c          | 21 +++++++++------------
 6 files changed, 66 insertions(+), 36 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2013-03-19 21:18 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2013-03-19 21:18 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Just some minor fixups, a sunsu console setup panic cure, and
recognition of a Fujitsu sun4v cpu.

Please pull, thanks a lot!

The following changes since commit b0af9cd9aab60ceb17d3ebabb9fdf4ff0a99cf50:

  Merge tag 'lzo-update-signature-20130226' of git://github.com/markus-oberhumer/linux (2013-02-28 20:45:52 -0800)

are available in the git repository at:


  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git master

for you to fetch changes up to f58b20bd6bad48d6fc5633f003c3651115273fb2:

  sparc: remove unused "config BITS" (2013-03-19 16:23:51 -0400)

----------------------------------------------------------------
Allen Pais (1):
      sparc64: correctly recognize SPARC64-X chips

Daniel Hellstrom (1):
      sparc,leon: fix GRPCI2 device0 PCI config space access

Paul Bolle (2):
      sparc: delete "if !ULTRA_HAS_POPULATION_COUNT"
      sparc: remove unused "config BITS"

Tkhai Kirill (1):
      sunsu: Fix panic in case of nonexistent port at "console=ttySY" cmdline option

 arch/sparc/Kconfig                  |  8 +-------
 arch/sparc/include/asm/spitfire.h   |  1 +
 arch/sparc/kernel/cpu.c             |  6 ++++++
 arch/sparc/kernel/head_64.S         | 25 +++++++++++++++++++++++--
 arch/sparc/kernel/leon_pci_grpci2.c | 41 ++++++++++++++++++++++++++---------------
 drivers/tty/serial/sunsu.c          | 21 +++++++++------------
 6 files changed, 66 insertions(+), 36 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2013-04-21  1:16 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2013-04-21  1:16 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


1) Fix race in sparc64 TLB shootdowns, we have to synchronize with the
   sibling cpus completing if we are passing them a reference via
   pointer to a data structure.

2) Fix cleaning of bitmaps in sparc32, from Akinobu Mita.

3) Fix various sparc header mistakes, some of which resulted in
   userland build breakage.  From Sam Ravnborg.

4) Kill ghost declarations and defines missed when several bits of
   code got deleted recently.

Please pull, thanks!

The following changes since commit 07961ac7c0ee8b546658717034fe692fd12eefa9:

  Linux 3.9-rc5 (2013-03-31 15:12:43 -0700)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git master

for you to fetch changes up to f36391d2790d04993f48da6a45810033a2cdf847:

  sparc64: Fix race in TLB batch processing. (2013-04-19 17:26:26 -0400)

----------------------------------------------------------------
Akinobu Mita (2):
      sparc/srmmu: clear trailing edge of bitmap properly
      sparc/iommu: fix typo s/265KB/256KB/

David S. Miller (1):
      sparc64: Fix race in TLB batch processing.

Kefeng Wang (2):
      sparc:remove unused declaration smp_boot_cpus()
      sparc:cleanup unused code in smp_32.h

Sam Ravnborg (3):
      sparc: use generic headers
      bbc_i2c: fix section mismatch warning
      sparc: use asm-generic version of types.h

 arch/sparc/include/asm/Kbuild              |   5 +++
 arch/sparc/include/asm/cputime.h           |   6 ----
 arch/sparc/include/asm/emergency-restart.h |   6 ----
 arch/sparc/include/asm/mutex.h             |   9 ------
 arch/sparc/include/asm/pgtable_64.h        |   1 +
 arch/sparc/include/asm/serial.h            |   6 ----
 arch/sparc/include/asm/smp_32.h            |   5 ---
 arch/sparc/include/asm/switch_to_64.h      |   3 +-
 arch/sparc/include/asm/tlbflush_64.h       |  37 ++++++++++++++++++----
 arch/sparc/include/uapi/asm/Kbuild         |   1 -
 arch/sparc/include/uapi/asm/types.h        |  17 ----------
 arch/sparc/kernel/smp_64.c                 |  41 +++++++++++++++++++++---
 arch/sparc/lib/bitext.c                    |   6 +---
 arch/sparc/mm/iommu.c                      |   2 +-
 arch/sparc/mm/srmmu.c                      |   4 ++-
 arch/sparc/mm/tlb.c                        |  38 ++++++++++++++++++++---
 arch/sparc/mm/tsb.c                        |  57 +++++++++++++++++++++++++---------
 arch/sparc/mm/ultra.S                      | 119 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------------
 drivers/sbus/char/bbc_i2c.c                |   4 +--
 19 files changed, 253 insertions(+), 114 deletions(-)
 delete mode 100644 arch/sparc/include/asm/cputime.h
 delete mode 100644 arch/sparc/include/asm/emergency-restart.h
 delete mode 100644 arch/sparc/include/asm/mutex.h
 delete mode 100644 arch/sparc/include/asm/serial.h
 delete mode 100644 arch/sparc/include/uapi/asm/types.h

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2013-04-21  1:16 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2013-04-21  1:16 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


1) Fix race in sparc64 TLB shootdowns, we have to synchronize with the
   sibling cpus completing if we are passing them a reference via
   pointer to a data structure.

2) Fix cleaning of bitmaps in sparc32, from Akinobu Mita.

3) Fix various sparc header mistakes, some of which resulted in
   userland build breakage.  From Sam Ravnborg.

4) Kill ghost declarations and defines missed when several bits of
   code got deleted recently.

Please pull, thanks!

The following changes since commit 07961ac7c0ee8b546658717034fe692fd12eefa9:

  Linux 3.9-rc5 (2013-03-31 15:12:43 -0700)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git master

for you to fetch changes up to f36391d2790d04993f48da6a45810033a2cdf847:

  sparc64: Fix race in TLB batch processing. (2013-04-19 17:26:26 -0400)

----------------------------------------------------------------
Akinobu Mita (2):
      sparc/srmmu: clear trailing edge of bitmap properly
      sparc/iommu: fix typo s/265KB/256KB/

David S. Miller (1):
      sparc64: Fix race in TLB batch processing.

Kefeng Wang (2):
      sparc:remove unused declaration smp_boot_cpus()
      sparc:cleanup unused code in smp_32.h

Sam Ravnborg (3):
      sparc: use generic headers
      bbc_i2c: fix section mismatch warning
      sparc: use asm-generic version of types.h

 arch/sparc/include/asm/Kbuild              |   5 +++
 arch/sparc/include/asm/cputime.h           |   6 ----
 arch/sparc/include/asm/emergency-restart.h |   6 ----
 arch/sparc/include/asm/mutex.h             |   9 ------
 arch/sparc/include/asm/pgtable_64.h        |   1 +
 arch/sparc/include/asm/serial.h            |   6 ----
 arch/sparc/include/asm/smp_32.h            |   5 ---
 arch/sparc/include/asm/switch_to_64.h      |   3 +-
 arch/sparc/include/asm/tlbflush_64.h       |  37 ++++++++++++++++++----
 arch/sparc/include/uapi/asm/Kbuild         |   1 -
 arch/sparc/include/uapi/asm/types.h        |  17 ----------
 arch/sparc/kernel/smp_64.c                 |  41 +++++++++++++++++++++---
 arch/sparc/lib/bitext.c                    |   6 +---
 arch/sparc/mm/iommu.c                      |   2 +-
 arch/sparc/mm/srmmu.c                      |   4 ++-
 arch/sparc/mm/tlb.c                        |  38 ++++++++++++++++++++---
 arch/sparc/mm/tsb.c                        |  57 +++++++++++++++++++++++++---------
 arch/sparc/mm/ultra.S                      | 119 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------------
 drivers/sbus/char/bbc_i2c.c                |   4 +--
 19 files changed, 253 insertions(+), 114 deletions(-)
 delete mode 100644 arch/sparc/include/asm/cputime.h
 delete mode 100644 arch/sparc/include/asm/emergency-restart.h
 delete mode 100644 arch/sparc/include/asm/mutex.h
 delete mode 100644 arch/sparc/include/asm/serial.h
 delete mode 100644 arch/sparc/include/uapi/asm/types.h

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2013-04-25  0:08 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2013-04-25  0:08 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Please pull to get this brown paper bag fix for sparc64.

Thanks!

The following changes since commit 60d509fa6a9c4653a86ad830e4c4b30360b23f0e:

  Linux 3.9-rc8 (2013-04-21 14:38:45 -0700)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git master

for you to fetch changes up to f0af97070acbad5d6a361f485828223a4faaa0ee:

  sparc64: Fix missing put_cpu_var() in tlb_batch_add_one() when not batching. (2013-04-24 16:52:18 -0700)

----------------------------------------------------------------
David S. Miller (1):
      sparc64: Fix missing put_cpu_var() in tlb_batch_add_one() when not batching.

 arch/sparc/mm/tlb.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2013-04-25  0:08 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2013-04-25  0:08 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Please pull to get this brown paper bag fix for sparc64.

Thanks!

The following changes since commit 60d509fa6a9c4653a86ad830e4c4b30360b23f0e:

  Linux 3.9-rc8 (2013-04-21 14:38:45 -0700)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git master

for you to fetch changes up to f0af97070acbad5d6a361f485828223a4faaa0ee:

  sparc64: Fix missing put_cpu_var() in tlb_batch_add_one() when not batching. (2013-04-24 16:52:18 -0700)

----------------------------------------------------------------
David S. Miller (1):
      sparc64: Fix missing put_cpu_var() in tlb_batch_add_one() when not batching.

 arch/sparc/mm/tlb.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2013-05-05  2:42 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2013-05-05  2:42 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


1) Hibernation support, as well as removal of excess interrupt
   twiddling in MMU context allocation on sparc64 from Kirill Tkhai.

2) Kill references to __ARCH_WANT_UNLOCKED_CTXSW.

3) Sparc32 LEON bug fixes from Daniel Hellstrom and Andreas Larsson.

4) Provide cmpxchg64(), from Geert Uytterhoeven.

5) Device refcount and registry bug fixes from Federico Vaga
   and Wei Yongjun.

Please pull, thanks a lot!

The following changes since commit 150a8dcf109f68f322bf112c7604f2d950303f00:

  Merge tag 'boards-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc (2013-05-04 12:34:30 -0700)

are available in the git repository at:


  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-next.git master

for you to fetch changes up to 048c9acca90ca7da42b92745445fe008a48add88:

  Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc (2013-05-04 18:34:13 -0700)

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

Andreas Larsson (1):
      sparc32, leon: Do not overwrite previously set irq flow handlers

Daniel Hellstrom (3):
      sparc32,leon: add support for PCI busn resource for GRPCI2
      sparc,leon: support for GRPCI1 PCI host bridge controller
      sparc,leon: updated GRPCI2 config name

David S. Miller (3):
      sparc64: Kill __ARCH_WANT_UNLOCKED_CTXSW
      sparc: Consistently use 'wr' and 'rd' instructions for ASRs.
      Merge git://git.kernel.org/.../davem/sparc

Federico Vaga (1):
      sparc/kernel/vio.c: add put_device() after device_find_child()

Geert Uytterhoeven (1):
      sparc64: Provide cmpxchg64()

Kirill Tkhai (1):
      sparc64: Do not save/restore interrupts in get_new_mmu_context()

Tkhai Kirill (2):
      sparc64: Hibernation support
      sparc64: Do not change num_physpages during initmem freeing

Wei Yongjun (1):
      serial: sunsu: add missing platform_driver_unregister() when module exit

 arch/sparc/Kconfig                      |  20 +-
 arch/sparc/Makefile                     |   1 +
 arch/sparc/include/asm/cmpxchg_64.h     |   1 +
 arch/sparc/include/asm/head_32.h        |   6 +-
 arch/sparc/include/asm/hibernate.h      |  23 +++
 arch/sparc/include/asm/leon_pci.h       |   1 +
 arch/sparc/include/asm/mmu_context_64.h |   2 +-
 arch/sparc/include/asm/processor_64.h   |   3 -
 arch/sparc/kernel/Makefile              |   3 +-
 arch/sparc/kernel/asm-offsets.c         |  15 ++
 arch/sparc/kernel/leon_kernel.c         |  10 +-
 arch/sparc/kernel/leon_pci.c            |   2 +
 arch/sparc/kernel/leon_pci_grpci1.c     | 724 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 arch/sparc/kernel/leon_pci_grpci2.c     |   5 +
 arch/sparc/kernel/leon_pmc.c            |   4 +-
 arch/sparc/kernel/vio.c                 |   1 +
 arch/sparc/mm/init_64.c                 |   7 +-
 arch/sparc/power/Makefile               |   3 +
 arch/sparc/power/hibernate.c            |  42 +++++
 arch/sparc/power/hibernate_asm.S        | 131 +++++++++++++
 drivers/tty/serial/sunsu.c              |   1 +
 21 files changed, 986 insertions(+), 19 deletions(-)
 create mode 100644 arch/sparc/include/asm/hibernate.h
 create mode 100644 arch/sparc/kernel/leon_pci_grpci1.c
 create mode 100644 arch/sparc/power/Makefile
 create mode 100644 arch/sparc/power/hibernate.c
 create mode 100644 arch/sparc/power/hibernate_asm.S

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2013-05-05  2:42 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2013-05-05  2:42 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


1) Hibernation support, as well as removal of excess interrupt
   twiddling in MMU context allocation on sparc64 from Kirill Tkhai.

2) Kill references to __ARCH_WANT_UNLOCKED_CTXSW.

3) Sparc32 LEON bug fixes from Daniel Hellstrom and Andreas Larsson.

4) Provide cmpxchg64(), from Geert Uytterhoeven.

5) Device refcount and registry bug fixes from Federico Vaga
   and Wei Yongjun.

Please pull, thanks a lot!

The following changes since commit 150a8dcf109f68f322bf112c7604f2d950303f00:

  Merge tag 'boards-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc (2013-05-04 12:34:30 -0700)

are available in the git repository at:


  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-next.git master

for you to fetch changes up to 048c9acca90ca7da42b92745445fe008a48add88:

  Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc (2013-05-04 18:34:13 -0700)

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

Andreas Larsson (1):
      sparc32, leon: Do not overwrite previously set irq flow handlers

Daniel Hellstrom (3):
      sparc32,leon: add support for PCI busn resource for GRPCI2
      sparc,leon: support for GRPCI1 PCI host bridge controller
      sparc,leon: updated GRPCI2 config name

David S. Miller (3):
      sparc64: Kill __ARCH_WANT_UNLOCKED_CTXSW
      sparc: Consistently use 'wr' and 'rd' instructions for ASRs.
      Merge git://git.kernel.org/.../davem/sparc

Federico Vaga (1):
      sparc/kernel/vio.c: add put_device() after device_find_child()

Geert Uytterhoeven (1):
      sparc64: Provide cmpxchg64()

Kirill Tkhai (1):
      sparc64: Do not save/restore interrupts in get_new_mmu_context()

Tkhai Kirill (2):
      sparc64: Hibernation support
      sparc64: Do not change num_physpages during initmem freeing

Wei Yongjun (1):
      serial: sunsu: add missing platform_driver_unregister() when module exit

 arch/sparc/Kconfig                      |  20 +-
 arch/sparc/Makefile                     |   1 +
 arch/sparc/include/asm/cmpxchg_64.h     |   1 +
 arch/sparc/include/asm/head_32.h        |   6 +-
 arch/sparc/include/asm/hibernate.h      |  23 +++
 arch/sparc/include/asm/leon_pci.h       |   1 +
 arch/sparc/include/asm/mmu_context_64.h |   2 +-
 arch/sparc/include/asm/processor_64.h   |   3 -
 arch/sparc/kernel/Makefile              |   3 +-
 arch/sparc/kernel/asm-offsets.c         |  15 ++
 arch/sparc/kernel/leon_kernel.c         |  10 +-
 arch/sparc/kernel/leon_pci.c            |   2 +
 arch/sparc/kernel/leon_pci_grpci1.c     | 724 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 arch/sparc/kernel/leon_pci_grpci2.c     |   5 +
 arch/sparc/kernel/leon_pmc.c            |   4 +-
 arch/sparc/kernel/vio.c                 |   1 +
 arch/sparc/mm/init_64.c                 |   7 +-
 arch/sparc/power/Makefile               |   3 +
 arch/sparc/power/hibernate.c            |  42 +++++
 arch/sparc/power/hibernate_asm.S        | 131 +++++++++++++
 drivers/tty/serial/sunsu.c              |   1 +
 21 files changed, 986 insertions(+), 19 deletions(-)
 create mode 100644 arch/sparc/include/asm/hibernate.h
 create mode 100644 arch/sparc/kernel/leon_pci_grpci1.c
 create mode 100644 arch/sparc/power/Makefile
 create mode 100644 arch/sparc/power/hibernate.c
 create mode 100644 arch/sparc/power/hibernate_asm.S

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2013-06-19  9:28 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2013-06-19  9:28 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Various sparc bug fixes, in particular:

1) TSB hashes have to be flushed before TLB on sparc64, from
   Dave Kleikamp.

2) LEON timer interrupts can get stuck, from Andreas Larsson.

3) Sparc64 needs to handle lack of address-congruence devicetree
   property, from Bob Picco.

Please pull, thanks a lot!

The following changes since commit 17858ca65eef148d335ffd4cfc09228a1c1cbfb5:

  Merge tag 'please-pull-fixia64' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux (2013-06-18 06:29:19 -1000)

are available in the git repository at:


  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git master

for you to fetch changes up to 23a01138efe216f8084cfaa74b0b90dd4b097441:

  sparc: tsb must be flushed before tlb (2013-06-19 02:10:30 -0700)

----------------------------------------------------------------
Andreas Larsson (2):
      sparc32, leon: Remove separate "ticker" timer for SMP
      sparc32, leon: Enable interrupts before going idle to avoid getting stuck

Chen Gang (1):
      arch: sparc: prom: looping issue, need additional length check in the outside looping

Dave Kleikamp (1):
      sparc: tsb must be flushed before tlb

Denis Efremov (1):
      sparc: remove inline marking of EXPORT_SYMBOL functions

Geert Uytterhoeven (1):
      sparc: Switch to asm-generic/linkage.h

Tushar Behera (1):
      sparc,leon: Convert to use devm_ioremap_resource

Zhao Hongjiang (1):
      sparc: kernel: using strlcpy() instead of strcpy()

bob picco (1):
      sparc64 address-congruence property

 arch/sparc/include/asm/Kbuild       |  1 +
 arch/sparc/include/asm/leon.h       |  2 +-
 arch/sparc/include/asm/leon_amba.h  |  1 +
 arch/sparc/include/asm/linkage.h    |  6 ------
 arch/sparc/kernel/ds.c              |  3 ++-
 arch/sparc/kernel/leon_kernel.c     | 54 +++++++++++++++++-------------------------------------
 arch/sparc/kernel/leon_pci_grpci1.c |  8 +++-----
 arch/sparc/kernel/leon_pmc.c        |  7 +++++++
 arch/sparc/kernel/setup_32.c        |  2 +-
 arch/sparc/kernel/setup_64.c        |  2 +-
 arch/sparc/mm/init_64.c             |  9 ++++++++-
 arch/sparc/mm/tlb.c                 |  2 +-
 arch/sparc/prom/bootstr_32.c        | 12 +++++++-----
 arch/sparc/prom/tree_64.c           | 16 ++++++++--------
 14 files changed, 58 insertions(+), 67 deletions(-)
 delete mode 100644 arch/sparc/include/asm/linkage.h

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2013-06-19  9:28 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2013-06-19  9:28 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Various sparc bug fixes, in particular:

1) TSB hashes have to be flushed before TLB on sparc64, from
   Dave Kleikamp.

2) LEON timer interrupts can get stuck, from Andreas Larsson.

3) Sparc64 needs to handle lack of address-congruence devicetree
   property, from Bob Picco.

Please pull, thanks a lot!

The following changes since commit 17858ca65eef148d335ffd4cfc09228a1c1cbfb5:

  Merge tag 'please-pull-fixia64' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux (2013-06-18 06:29:19 -1000)

are available in the git repository at:


  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git master

for you to fetch changes up to 23a01138efe216f8084cfaa74b0b90dd4b097441:

  sparc: tsb must be flushed before tlb (2013-06-19 02:10:30 -0700)

----------------------------------------------------------------
Andreas Larsson (2):
      sparc32, leon: Remove separate "ticker" timer for SMP
      sparc32, leon: Enable interrupts before going idle to avoid getting stuck

Chen Gang (1):
      arch: sparc: prom: looping issue, need additional length check in the outside looping

Dave Kleikamp (1):
      sparc: tsb must be flushed before tlb

Denis Efremov (1):
      sparc: remove inline marking of EXPORT_SYMBOL functions

Geert Uytterhoeven (1):
      sparc: Switch to asm-generic/linkage.h

Tushar Behera (1):
      sparc,leon: Convert to use devm_ioremap_resource

Zhao Hongjiang (1):
      sparc: kernel: using strlcpy() instead of strcpy()

bob picco (1):
      sparc64 address-congruence property

 arch/sparc/include/asm/Kbuild       |  1 +
 arch/sparc/include/asm/leon.h       |  2 +-
 arch/sparc/include/asm/leon_amba.h  |  1 +
 arch/sparc/include/asm/linkage.h    |  6 ------
 arch/sparc/kernel/ds.c              |  3 ++-
 arch/sparc/kernel/leon_kernel.c     | 54 +++++++++++++++++-------------------------------------
 arch/sparc/kernel/leon_pci_grpci1.c |  8 +++-----
 arch/sparc/kernel/leon_pmc.c        |  7 +++++++
 arch/sparc/kernel/setup_32.c        |  2 +-
 arch/sparc/kernel/setup_64.c        |  2 +-
 arch/sparc/mm/init_64.c             |  9 ++++++++-
 arch/sparc/mm/tlb.c                 |  2 +-
 arch/sparc/prom/bootstr_32.c        | 12 +++++++-----
 arch/sparc/prom/tree_64.c           | 16 ++++++++--------
 14 files changed, 58 insertions(+), 67 deletions(-)
 delete mode 100644 arch/sparc/include/asm/linkage.h

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2013-07-10 21:00 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2013-07-10 21:00 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Four bug fixes:

1) Enable snoop tags properly on Sparc32/LEON, from Andreas Larsson

2) strcpy() length check fix from Chen Gang.

3) Forgotten unregister_netdev() in sunvnet driver, from Dave Kleikamp.

4) Fix broken assembler offsets used in vm_area_struct accesses on
   sparc32, from Olivier DANET.

Please pull, thanks a lot!

The following changes since commit bfffbea1aaeeb1eb6500c83ff9653416daa5b490:

  Merge tag 'mmc-updates-for-3.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/cjb/mmc (2013-07-10 11:16:00 -0700)

are available in the git repository at:


  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git master

for you to fetch changes up to 961246b4ed8da3bcf4ee1eb9147f341013553e3c:

  [PATCH] sparc32: vm_area_struct access for old Sun SPARCs. (2013-07-10 13:56:10 -0700)

----------------------------------------------------------------
Andreas Larsson (1):
      sparc32, leon: Require separate snoop tags set to regard snooping to be enabled

Chen Gang (1):
      arch: sparc: kernel: check the memory length before use strcpy().

Dave Kleikamp (1):
      sunvnet: vnet_port_remove must call unregister_netdev

Olivier DANET (1):
      sparc32: vm_area_struct access for old Sun SPARCs.

 arch/sparc/include/asm/leon.h      |  2 +-
 arch/sparc/kernel/asm-offsets.c    |  2 ++
 arch/sparc/kernel/ds.c             | 10 ++++++++++
 arch/sparc/mm/hypersparc.S         |  8 ++++----
 arch/sparc/mm/swift.S              |  8 ++++----
 arch/sparc/mm/tsunami.S            |  6 +++---
 arch/sparc/mm/viking.S             | 10 +++++-----
 drivers/net/ethernet/sun/sunvnet.c |  2 ++
 8 files changed, 31 insertions(+), 17 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2013-07-10 21:00 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2013-07-10 21:00 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Four bug fixes:

1) Enable snoop tags properly on Sparc32/LEON, from Andreas Larsson

2) strcpy() length check fix from Chen Gang.

3) Forgotten unregister_netdev() in sunvnet driver, from Dave Kleikamp.

4) Fix broken assembler offsets used in vm_area_struct accesses on
   sparc32, from Olivier DANET.

Please pull, thanks a lot!

The following changes since commit bfffbea1aaeeb1eb6500c83ff9653416daa5b490:

  Merge tag 'mmc-updates-for-3.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/cjb/mmc (2013-07-10 11:16:00 -0700)

are available in the git repository at:


  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git master

for you to fetch changes up to 961246b4ed8da3bcf4ee1eb9147f341013553e3c:

  [PATCH] sparc32: vm_area_struct access for old Sun SPARCs. (2013-07-10 13:56:10 -0700)

----------------------------------------------------------------
Andreas Larsson (1):
      sparc32, leon: Require separate snoop tags set to regard snooping to be enabled

Chen Gang (1):
      arch: sparc: kernel: check the memory length before use strcpy().

Dave Kleikamp (1):
      sunvnet: vnet_port_remove must call unregister_netdev

Olivier DANET (1):
      sparc32: vm_area_struct access for old Sun SPARCs.

 arch/sparc/include/asm/leon.h      |  2 +-
 arch/sparc/kernel/asm-offsets.c    |  2 ++
 arch/sparc/kernel/ds.c             | 10 ++++++++++
 arch/sparc/mm/hypersparc.S         |  8 ++++----
 arch/sparc/mm/swift.S              |  8 ++++----
 arch/sparc/mm/tsunami.S            |  6 +++---
 arch/sparc/mm/viking.S             | 10 +++++-----
 drivers/net/ethernet/sun/sunvnet.c |  2 ++
 8 files changed, 31 insertions(+), 17 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Fw: [GIT] Sparc
  2010-03-29 20:11 ` David Miller
                   ` (2 preceding siblings ...)
  (?)
@ 2013-09-05 20:45 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2013-09-05 20:45 UTC (permalink / raw)
  To: sparclinux

[-- Attachment #1: Type: Text/Plain, Size: 61 bytes --]


Sorry, accidently CC:'d linux-ide on this one initially :-)

[-- Attachment #2: Type: Message/Rfc822, Size: 2656 bytes --]

From: David Miller <davem@davemloft.net>
To: torvalds@linux-foundation.org
Cc: akpm@linux-foundation.org, linux-ide@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: [GIT] Sparc
Date: Thu, 05 Sep 2013 16:44:40 -0400 (EDT)
Message-ID: <20130905.164440.1477153216318239054.davem@davemloft.net>


Several bug fixes (from Kirill Tkhai, Geery Uytterhoeven, and Alexey
Dobriyan) and some support for Fujitsu sparc64x chips (from Allen
Pais).

Please pull, thanks a lot!

The following changes since commit 64ccccf8525fee499625b517c0faadf784c79e93:

  Merge branch 'drm-fixes' of git://people.freedesktop.org/~airlied/linux (2013-07-31 17:55:12 -0700)

are available in the git repository at:


  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git master

for you to fetch changes up to dc76f9ca71ea597dbb0e9c77d1072ddca651f4f3:

  sparc64: Export flush_ptrace_access() (needed by lustre) (2013-09-05 12:12:51 -0700)

----------------------------------------------------------------
Alexey Dobriyan (1):
      sparc: fix PCI device proc file mmap(2)

Allen Pais (2):
      cpu hw caps support for sparc64x
      support sparc64x chip type in cpumap.c

David S. Miller (2):
      esp_scsi: Fix tag state corruption when autosensing.
      sparc64: Fix off by one in trampoline TLB mapping installation loop.

Geert Uytterhoeven (1):
      sparc64: Export flush_ptrace_access() (needed by lustre)

Kirill Tkhai (6):
      sparc64: Fix wrong syscall return value passed to trace_sys_exit()
      sparc32: Fix exit flag passed from traced sys_sigreturn
      sparc64: cleanup: Rename ret_from_syscall to ret_from_fork
      sparc64: Fix not SRA'ed %o5 in 32-bit traced syscall
      sparc64: Fix ITLB handler of null page
      sparc64: Remove RWSEM export leftovers

 arch/sparc/include/asm/switch_to_64.h |  4 ++--
 arch/sparc/kernel/cpumap.c            |  1 +
 arch/sparc/kernel/entry.S             |  2 +-
 arch/sparc/kernel/kgdb_64.c           |  4 ++--
 arch/sparc/kernel/ktlb.S              |  3 +--
 arch/sparc/kernel/ptrace_64.c         |  4 +++-
 arch/sparc/kernel/setup_64.c          | 12 ++++++++----
 arch/sparc/kernel/syscalls.S          | 12 ++++++------
 arch/sparc/kernel/trampoline_64.S     |  2 --
 arch/sparc/lib/ksyms.c                |  9 ---------
 drivers/scsi/esp_scsi.c               | 14 ++++++++------
 drivers/scsi/esp_scsi.h               |  1 +
 fs/proc/inode.c                       | 16 ++++++++++++++++
 13 files changed, 49 insertions(+), 35 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2013-10-01 17:57 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2013-10-01 17:57 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Just a single bug fix to a regression added during some strlcpy()
conversions.

Please pull, thanks a lot!

The following changes since commit 6cac446bd37d9381815fe4c2b0e7b1fd1085000c:

  Merge tag 'hwmon-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging (2013-09-27 10:07:47 -0700)

are available in the git repository at:


  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc master

for you to fetch changes up to 2bd161a605f1f84a5fc8a4fe8410113a94f79355:

  sparc64: Fix buggy strlcpy() conversion in ldom_reboot(). (2013-09-27 13:46:04 -0700)

----------------------------------------------------------------
David S. Miller (1):
      sparc64: Fix buggy strlcpy() conversion in ldom_reboot().

 arch/sparc/kernel/ds.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2013-10-01 17:57 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2013-10-01 17:57 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Just a single bug fix to a regression added during some strlcpy()
conversions.

Please pull, thanks a lot!

The following changes since commit 6cac446bd37d9381815fe4c2b0e7b1fd1085000c:

  Merge tag 'hwmon-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging (2013-09-27 10:07:47 -0700)

are available in the git repository at:


  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc master

for you to fetch changes up to 2bd161a605f1f84a5fc8a4fe8410113a94f79355:

  sparc64: Fix buggy strlcpy() conversion in ldom_reboot(). (2013-09-27 13:46:04 -0700)

----------------------------------------------------------------
David S. Miller (1):
      sparc64: Fix buggy strlcpy() conversion in ldom_reboot().

 arch/sparc/kernel/ds.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2013-10-03  3:52 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2013-10-03  3:52 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Couple small bug fixes:

1) strlcpy in ldom_reboot() is still not quite right, use sprintf
   instead from Kees Cook.

2) Generic hugetlb interface pte checks should use the widest return
   type, otherwise high bits can get chopped off.

3) Fix build with PCI MSI enabled on 32-bit sparc.

Please pull, thanks a lot!

The following changes since commit c31eeaced22ce8bd61268a3c595d542bb38c0a4f:

  Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net (2013-10-01 12:58:48 -0700)

are available in the git repository at:


  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git master

for you to fetch changes up to a988fb806d72d4e3a0edbeaece3f2f1172ce44b8:

  sparc: fix MSI build failure on Sparc32 (2013-10-02 20:02:35 -0400)

----------------------------------------------------------------
David Miller (1):
      mm: Fix generic hugetlb pte check return type.

Kees Cook (1):
      sparc: fix ldom_reboot buffer overflow harder

Michael Opdenacker (1):
      sparc: remove deprecated IRQF_DISABLED

Thomas Petazzoni (1):
      sparc: fix MSI build failure on Sparc32

 arch/sparc/Kconfig                 | 7 ++++++-
 arch/sparc/include/asm/floppy_64.h | 2 +-
 arch/sparc/kernel/Makefile         | 3 ++-
 arch/sparc/kernel/ds.c             | 5 ++---
 arch/sparc/kernel/ldc.c            | 4 ++--
 include/asm-generic/hugetlb.h      | 4 ++--
 6 files changed, 15 insertions(+), 10 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2013-10-03  3:52 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2013-10-03  3:52 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Couple small bug fixes:

1) strlcpy in ldom_reboot() is still not quite right, use sprintf
   instead from Kees Cook.

2) Generic hugetlb interface pte checks should use the widest return
   type, otherwise high bits can get chopped off.

3) Fix build with PCI MSI enabled on 32-bit sparc.

Please pull, thanks a lot!

The following changes since commit c31eeaced22ce8bd61268a3c595d542bb38c0a4f:

  Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net (2013-10-01 12:58:48 -0700)

are available in the git repository at:


  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git master

for you to fetch changes up to a988fb806d72d4e3a0edbeaece3f2f1172ce44b8:

  sparc: fix MSI build failure on Sparc32 (2013-10-02 20:02:35 -0400)

----------------------------------------------------------------
David Miller (1):
      mm: Fix generic hugetlb pte check return type.

Kees Cook (1):
      sparc: fix ldom_reboot buffer overflow harder

Michael Opdenacker (1):
      sparc: remove deprecated IRQF_DISABLED

Thomas Petazzoni (1):
      sparc: fix MSI build failure on Sparc32

 arch/sparc/Kconfig                 | 7 ++++++-
 arch/sparc/include/asm/floppy_64.h | 2 +-
 arch/sparc/kernel/Makefile         | 3 ++-
 arch/sparc/kernel/ds.c             | 5 ++---
 arch/sparc/kernel/ldc.c            | 4 ++--
 include/asm-generic/hugetlb.h      | 4 ++--
 6 files changed, 15 insertions(+), 10 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2013-11-14 23:19 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2013-11-14 23:19 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


There is a minor conflict with patches Andrew submitted to you today,
one of his patches is fixing the error handling in the sparc64 page
table SLAB handling, whereas the 47-bit physical address support patch
series in this pull request deletes all of the sparc64 page table SLAB
code entirely.

So just take the removal in your merge conflict resolution.

1) Implement support for up to 47-bit physical addresses on sparc64.

2) Support HAVE_CONTEXT_TRACKING on sparc64, from Kirill Tkhai.

3) Fix Simba bridge window calculations, from Kjetil Oftedal.

Please pull, thanks a lot!

The following changes since commit 10d0c9705e80bbd3d587c5fad24599aabaca6688:

  Merge tag 'devicetree-for-3.13' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux (2013-11-12 16:52:17 +0900)

are available in the git repository at:


  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-next.git master

for you to fetch changes up to 812cb83a56a908729c453a7db3fb2c262119bc9d:

  sparc64: Implement HAVE_CONTEXT_TRACKING (2013-11-14 14:57:21 -0800)

----------------------------------------------------------------
David S. Miller (9):
      sparc64: Clean up 64-bit mmap exclusion defines.
      sparc64: Use PAGE_OFFSET instead of a magic constant.
      sparc64: Define PAGE_OFFSET in terms of physical address bits.
      sparc64: Document the shift counts used to validate linear kernel addresses.
      sparc64: Fix inconsistent max-physical-address defines.
      sparc64: Make PAGE_OFFSET variable.
      sparc64: Move from 4MB to 8MB huge pages.
      sparc64: Move to 64-bit PGDs and PMDs.
      sparc64: Encode huge PMDs using PTE encoding.

Kirill Tkhai (2):
      sparc64: Add self-IPI support for smp_send_reschedule()
      sparc64: Implement HAVE_CONTEXT_TRACKING

oftedal (1):
      sparc: PCI: Fix incorrect address calculation of PCI Bridge windows on Simba-bridges

 arch/sparc/Kconfig                      |   1 +
 arch/sparc/include/asm/mmu_64.h         |   1 -
 arch/sparc/include/asm/page_64.h        |  49 ++++++++++++---
 arch/sparc/include/asm/pgtable_64.h     | 209 +++++++++++++++++++++++++++++++++++++--------------------------
 arch/sparc/include/asm/sparsemem.h      |   6 +-
 arch/sparc/include/asm/thread_info_64.h |   3 +-
 arch/sparc/include/asm/tsb.h            | 105 +++++++-------------------------
 arch/sparc/kernel/entry.h               |   1 -
 arch/sparc/kernel/kgdb_64.c             |   5 +-
 arch/sparc/kernel/kprobes.c             |   7 ++-
 arch/sparc/kernel/ktlb.S                |  30 +++++++--
 arch/sparc/kernel/pci.c                 |   4 +-
 arch/sparc/kernel/process_64.c          |   2 +
 arch/sparc/kernel/ptrace_64.c           |  10 +++
 arch/sparc/kernel/rtrap_64.S            |   8 ++-
 arch/sparc/kernel/signal_64.c           |  13 +++-
 arch/sparc/kernel/smp_64.c              |   9 ++-
 arch/sparc/kernel/sun4v_tlb_miss.S      |   2 +-
 arch/sparc/kernel/sys_sparc_64.c        |   6 +-
 arch/sparc/kernel/syscalls.S            |   8 +--
 arch/sparc/kernel/traps_64.c            |  85 ++++++++++++++++++++------
 arch/sparc/kernel/tsb.S                 |   2 +-
 arch/sparc/kernel/unaligned_64.c        |  16 +++--
 arch/sparc/kernel/vmlinux.lds.S         |   5 ++
 arch/sparc/lib/clear_page.S             |   4 +-
 arch/sparc/lib/copy_page.S              |   4 +-
 arch/sparc/mm/fault_64.c                |  14 +++--
 arch/sparc/mm/gup.c                     |   9 ++-
 arch/sparc/mm/hugetlbpage.c             |   2 -
 arch/sparc/mm/init_64.c                 | 282 +++++++++++++++++++++++++++++++++++--------------------------------------------------
 arch/sparc/mm/init_64.h                 |   4 +-
 arch/sparc/mm/tlb.c                     |  13 ++--
 arch/sparc/mm/tsb.c                     |  13 +---
 arch/sparc/mm/ultra.S                   |  12 ++--
 34 files changed, 510 insertions(+), 434 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2013-11-14 23:19 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2013-11-14 23:19 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


There is a minor conflict with patches Andrew submitted to you today,
one of his patches is fixing the error handling in the sparc64 page
table SLAB handling, whereas the 47-bit physical address support patch
series in this pull request deletes all of the sparc64 page table SLAB
code entirely.

So just take the removal in your merge conflict resolution.

1) Implement support for up to 47-bit physical addresses on sparc64.

2) Support HAVE_CONTEXT_TRACKING on sparc64, from Kirill Tkhai.

3) Fix Simba bridge window calculations, from Kjetil Oftedal.

Please pull, thanks a lot!

The following changes since commit 10d0c9705e80bbd3d587c5fad24599aabaca6688:

  Merge tag 'devicetree-for-3.13' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux (2013-11-12 16:52:17 +0900)

are available in the git repository at:


  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-next.git master

for you to fetch changes up to 812cb83a56a908729c453a7db3fb2c262119bc9d:

  sparc64: Implement HAVE_CONTEXT_TRACKING (2013-11-14 14:57:21 -0800)

----------------------------------------------------------------
David S. Miller (9):
      sparc64: Clean up 64-bit mmap exclusion defines.
      sparc64: Use PAGE_OFFSET instead of a magic constant.
      sparc64: Define PAGE_OFFSET in terms of physical address bits.
      sparc64: Document the shift counts used to validate linear kernel addresses.
      sparc64: Fix inconsistent max-physical-address defines.
      sparc64: Make PAGE_OFFSET variable.
      sparc64: Move from 4MB to 8MB huge pages.
      sparc64: Move to 64-bit PGDs and PMDs.
      sparc64: Encode huge PMDs using PTE encoding.

Kirill Tkhai (2):
      sparc64: Add self-IPI support for smp_send_reschedule()
      sparc64: Implement HAVE_CONTEXT_TRACKING

oftedal (1):
      sparc: PCI: Fix incorrect address calculation of PCI Bridge windows on Simba-bridges

 arch/sparc/Kconfig                      |   1 +
 arch/sparc/include/asm/mmu_64.h         |   1 -
 arch/sparc/include/asm/page_64.h        |  49 ++++++++++++---
 arch/sparc/include/asm/pgtable_64.h     | 209 +++++++++++++++++++++++++++++++++++++--------------------------
 arch/sparc/include/asm/sparsemem.h      |   6 +-
 arch/sparc/include/asm/thread_info_64.h |   3 +-
 arch/sparc/include/asm/tsb.h            | 105 +++++++-------------------------
 arch/sparc/kernel/entry.h               |   1 -
 arch/sparc/kernel/kgdb_64.c             |   5 +-
 arch/sparc/kernel/kprobes.c             |   7 ++-
 arch/sparc/kernel/ktlb.S                |  30 +++++++--
 arch/sparc/kernel/pci.c                 |   4 +-
 arch/sparc/kernel/process_64.c          |   2 +
 arch/sparc/kernel/ptrace_64.c           |  10 +++
 arch/sparc/kernel/rtrap_64.S            |   8 ++-
 arch/sparc/kernel/signal_64.c           |  13 +++-
 arch/sparc/kernel/smp_64.c              |   9 ++-
 arch/sparc/kernel/sun4v_tlb_miss.S      |   2 +-
 arch/sparc/kernel/sys_sparc_64.c        |   6 +-
 arch/sparc/kernel/syscalls.S            |   8 +--
 arch/sparc/kernel/traps_64.c            |  85 ++++++++++++++++++++------
 arch/sparc/kernel/tsb.S                 |   2 +-
 arch/sparc/kernel/unaligned_64.c        |  16 +++--
 arch/sparc/kernel/vmlinux.lds.S         |   5 ++
 arch/sparc/lib/clear_page.S             |   4 +-
 arch/sparc/lib/copy_page.S              |   4 +-
 arch/sparc/mm/fault_64.c                |  14 +++--
 arch/sparc/mm/gup.c                     |   9 ++-
 arch/sparc/mm/hugetlbpage.c             |   2 -
 arch/sparc/mm/init_64.c                 | 282 +++++++++++++++++++++++++++++++++++--------------------------------------------------
 arch/sparc/mm/init_64.h                 |   4 +-
 arch/sparc/mm/tlb.c                     |  13 ++--
 arch/sparc/mm/tsb.c                     |  13 +---
 arch/sparc/mm/ultra.S                   |  12 ++--
 34 files changed, 510 insertions(+), 434 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2013-11-19 22:18 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2013-11-19 22:18 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Two merge window fallout build fixes, please pull, thanks a lot!

The following changes since commit 2d3c627502f2a9b0a7de06a5a2df2365542a72c9:

  Revert "init/Kconfig: add option to disable kernel compression" (2013-11-17 11:17:36 -0800)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git master

for you to fetch changes up to 6a328f3fe042396c6525d7bf84cfd941440cc045:

  sparc64: merge fix (2013-11-18 15:08:52 -0800)

----------------------------------------------------------------
Kirill A. Shutemov (1):
      sparc64: fix build regession

Stephen Rothwell (1):
      sparc64: merge fix

 arch/sparc/include/asm/tlbflush_64.h | 1 -
 arch/sparc/mm/init_64.c              | 2 --
 2 files changed, 3 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2013-11-19 22:18 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2013-11-19 22:18 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Two merge window fallout build fixes, please pull, thanks a lot!

The following changes since commit 2d3c627502f2a9b0a7de06a5a2df2365542a72c9:

  Revert "init/Kconfig: add option to disable kernel compression" (2013-11-17 11:17:36 -0800)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git master

for you to fetch changes up to 6a328f3fe042396c6525d7bf84cfd941440cc045:

  sparc64: merge fix (2013-11-18 15:08:52 -0800)

----------------------------------------------------------------
Kirill A. Shutemov (1):
      sparc64: fix build regession

Stephen Rothwell (1):
      sparc64: merge fix

 arch/sparc/include/asm/tlbflush_64.h | 1 -
 arch/sparc/mm/init_64.c              | 2 --
 2 files changed, 3 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2014-01-05  2:04 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2014-01-05  2:04 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Please pull to get these Sparc bug fixes:

1) Missing include can lead to build failure, from Kirill Tkhai.

2) Use dev_is_pci() where applicable, from Yijing Wang.

3) Enable irqs after we enable preemption in cpu startup path,
   from Kirill Tkhai.

4) Revert a __copy_{to,from}_user_inatomic change that broke
   iov_iter_copy_from_user_atomic() and thus several tests in
   xfstests and LTP.  From Dave Kleikamp.

Please pull, thanks a lot!

The following changes since commit dea4f48a0a301b23c65af8e4fe8ccf360c272fbf:

  Merge branch 'leds-fixes-for-3.13' of git://git.kernel.org/pub/scm/linux/kernel/git/cooloney/linux-leds (2013-12-02 12:08:01 -0800)

are available in the git repository at:


  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git master

for you to fetch changes up to 16932237f2978a2265662f8de4af743b1f55a209:

  Revert "sparc64: Fix __copy_{to,from}_user_inatomic defines." (2014-01-04 17:55:19 -0800)

----------------------------------------------------------------
Dave Kleikamp (1):
      Revert "sparc64: Fix __copy_{to,from}_user_inatomic defines."

Kirill Tkhai (2):
      sparc64: Fix build regression
      sparc64: smp_callin: Enable irqs after preemption is disabled

Yijing Wang (1):
      sparc/PCI: Use dev_is_pci() to identify PCI devices

 arch/sparc/include/asm/uaccess_64.h | 4 ++--
 arch/sparc/kernel/iommu.c           | 2 +-
 arch/sparc/kernel/ioport.c          | 5 ++---
 arch/sparc/kernel/kgdb_64.c         | 1 +
 arch/sparc/kernel/smp_64.c          | 3 ++-
 5 files changed, 8 insertions(+), 7 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2014-01-05  2:04 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2014-01-05  2:04 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Please pull to get these Sparc bug fixes:

1) Missing include can lead to build failure, from Kirill Tkhai.

2) Use dev_is_pci() where applicable, from Yijing Wang.

3) Enable irqs after we enable preemption in cpu startup path,
   from Kirill Tkhai.

4) Revert a __copy_{to,from}_user_inatomic change that broke
   iov_iter_copy_from_user_atomic() and thus several tests in
   xfstests and LTP.  From Dave Kleikamp.

Please pull, thanks a lot!

The following changes since commit dea4f48a0a301b23c65af8e4fe8ccf360c272fbf:

  Merge branch 'leds-fixes-for-3.13' of git://git.kernel.org/pub/scm/linux/kernel/git/cooloney/linux-leds (2013-12-02 12:08:01 -0800)

are available in the git repository at:


  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git master

for you to fetch changes up to 16932237f2978a2265662f8de4af743b1f55a209:

  Revert "sparc64: Fix __copy_{to,from}_user_inatomic defines." (2014-01-04 17:55:19 -0800)

----------------------------------------------------------------
Dave Kleikamp (1):
      Revert "sparc64: Fix __copy_{to,from}_user_inatomic defines."

Kirill Tkhai (2):
      sparc64: Fix build regression
      sparc64: smp_callin: Enable irqs after preemption is disabled

Yijing Wang (1):
      sparc/PCI: Use dev_is_pci() to identify PCI devices

 arch/sparc/include/asm/uaccess_64.h | 4 ++--
 arch/sparc/kernel/iommu.c           | 2 +-
 arch/sparc/kernel/ioport.c          | 5 ++---
 arch/sparc/kernel/kgdb_64.c         | 1 +
 arch/sparc/kernel/smp_64.c          | 3 ++-
 5 files changed, 8 insertions(+), 7 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2014-01-29  8:51 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2014-01-29  8:51 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Two cleanups from Paul Gortmaker and hook up the new scheduler
system calls.

Please pull, thanks a lot!

The following changes since commit 0e47c969c65e213421450c31043353ebe3c67e0c:

  Merge tag 'for-linus-20140127' of git://git.infradead.org/linux-mtd (2014-01-28 18:56:37 -0800)

are available in the git repository at:


  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git master

for you to fetch changes up to a54983ae64b12cf7e098c464c7eaf058752bc9cc:

  sparc: Hook up sched_setattr and sched_getattr syscalls. (2014-01-29 00:45:06 -0800)

----------------------------------------------------------------
David S. Miller (1):
      sparc: Hook up sched_setattr and sched_getattr syscalls.

Paul Gortmaker (2):
      sparc: delete non-required instances of include <linux/init.h>
      sparc: don't use module_init in non-modular pci.c code

 arch/sparc/include/uapi/asm/unistd.h | 4 +++-
 arch/sparc/kernel/cpumap.c           | 1 -
 arch/sparc/kernel/ebus.c             | 1 -
 arch/sparc/kernel/hvtramp.S          | 1 -
 arch/sparc/kernel/of_device_common.c | 1 -
 arch/sparc/kernel/pci.c              | 3 +--
 arch/sparc/kernel/pci_common.c       | 1 -
 arch/sparc/kernel/process_32.c       | 1 -
 arch/sparc/kernel/sparc_ksyms_32.c   | 1 -
 arch/sparc/kernel/sparc_ksyms_64.c   | 1 -
 arch/sparc/kernel/systbls_32.S       | 2 +-
 arch/sparc/kernel/systbls_64.S       | 4 ++--
 arch/sparc/kernel/trampoline_32.S    | 1 -
 arch/sparc/kernel/trampoline_64.S    | 1 -
 arch/sparc/mm/hugetlbpage.c          | 1 -
 arch/sparc/mm/tlb.c                  | 1 -
 arch/sparc/prom/p1275.c              | 1 -
 drivers/sbus/char/bbc_i2c.c          | 1 -
 drivers/sbus/char/display7seg.c      | 1 -
 drivers/sbus/char/envctrl.c          | 1 -
 drivers/sbus/char/flash.c            | 1 -
 drivers/sbus/char/uctrl.c            | 1 -
 22 files changed, 7 insertions(+), 24 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2014-01-29  8:51 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2014-01-29  8:51 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Two cleanups from Paul Gortmaker and hook up the new scheduler
system calls.

Please pull, thanks a lot!

The following changes since commit 0e47c969c65e213421450c31043353ebe3c67e0c:

  Merge tag 'for-linus-20140127' of git://git.infradead.org/linux-mtd (2014-01-28 18:56:37 -0800)

are available in the git repository at:


  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git master

for you to fetch changes up to a54983ae64b12cf7e098c464c7eaf058752bc9cc:

  sparc: Hook up sched_setattr and sched_getattr syscalls. (2014-01-29 00:45:06 -0800)

----------------------------------------------------------------
David S. Miller (1):
      sparc: Hook up sched_setattr and sched_getattr syscalls.

Paul Gortmaker (2):
      sparc: delete non-required instances of include <linux/init.h>
      sparc: don't use module_init in non-modular pci.c code

 arch/sparc/include/uapi/asm/unistd.h | 4 +++-
 arch/sparc/kernel/cpumap.c           | 1 -
 arch/sparc/kernel/ebus.c             | 1 -
 arch/sparc/kernel/hvtramp.S          | 1 -
 arch/sparc/kernel/of_device_common.c | 1 -
 arch/sparc/kernel/pci.c              | 3 +--
 arch/sparc/kernel/pci_common.c       | 1 -
 arch/sparc/kernel/process_32.c       | 1 -
 arch/sparc/kernel/sparc_ksyms_32.c   | 1 -
 arch/sparc/kernel/sparc_ksyms_64.c   | 1 -
 arch/sparc/kernel/systbls_32.S       | 2 +-
 arch/sparc/kernel/systbls_64.S       | 4 ++--
 arch/sparc/kernel/trampoline_32.S    | 1 -
 arch/sparc/kernel/trampoline_64.S    | 1 -
 arch/sparc/mm/hugetlbpage.c          | 1 -
 arch/sparc/mm/tlb.c                  | 1 -
 arch/sparc/prom/p1275.c              | 1 -
 drivers/sbus/char/bbc_i2c.c          | 1 -
 drivers/sbus/char/display7seg.c      | 1 -
 drivers/sbus/char/envctrl.c          | 1 -
 drivers/sbus/char/flash.c            | 1 -
 drivers/sbus/char/uctrl.c            | 1 -
 22 files changed, 7 insertions(+), 24 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2014-02-21 17:42 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2014-02-21 17:42 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Please pull to get these three minor fixes from David Howells
and Paul Gortmaker.

Thanks!

The following changes since commit e95003c3f9ccbfa7ab9d265e6eb703ee2fa4cfe7:

  Merge tag 'nfs-for-3.14-4' of git://git.linux-nfs.org/projects/trondmy/linux-nfs (2014-02-19 12:13:02 -0800)

are available in the git repository at:


  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git master

for you to fetch changes up to 967f038e491bc0aa469c4187aab7715ee9069ae1:

  Sparc: sparc_cpu_model isn't in asm/system.h any more [ver #2] (2014-02-20 13:34:11 -0500)

----------------------------------------------------------------
David Howells (1):
      Sparc: sparc_cpu_model isn't in asm/system.h any more [ver #2]

Paul Gortmaker (2):
      sparc32: fix build failure for arch_jump_label_transform
      sparc32: make copy_to/from_user_page() usable from modular code

 arch/sparc/Kconfig          | 2 +-
 arch/sparc/mm/srmmu.c       | 2 ++
 drivers/sbus/char/jsflash.c | 1 -
 3 files changed, 3 insertions(+), 2 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2014-02-21 17:42 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2014-02-21 17:42 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Please pull to get these three minor fixes from David Howells
and Paul Gortmaker.

Thanks!

The following changes since commit e95003c3f9ccbfa7ab9d265e6eb703ee2fa4cfe7:

  Merge tag 'nfs-for-3.14-4' of git://git.linux-nfs.org/projects/trondmy/linux-nfs (2014-02-19 12:13:02 -0800)

are available in the git repository at:


  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git master

for you to fetch changes up to 967f038e491bc0aa469c4187aab7715ee9069ae1:

  Sparc: sparc_cpu_model isn't in asm/system.h any more [ver #2] (2014-02-20 13:34:11 -0500)

----------------------------------------------------------------
David Howells (1):
      Sparc: sparc_cpu_model isn't in asm/system.h any more [ver #2]

Paul Gortmaker (2):
      sparc32: fix build failure for arch_jump_label_transform
      sparc32: make copy_to/from_user_page() usable from modular code

 arch/sparc/Kconfig          | 2 +-
 arch/sparc/mm/srmmu.c       | 2 ++
 drivers/sbus/char/jsflash.c | 1 -
 3 files changed, 3 insertions(+), 2 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2014-03-24 19:18 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2014-03-24 19:18 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Please pull to get these sparc fixes:

1) Do serial locking in a way that makes things clear that
   these are IRQ spinlocks.

2) Conversion to generic idle loop broke first generation
   Niagara machines, need to have %pil interrupts enabled
   during cpu yield hypervisor call.

3) Do not use magic constants for iterations over tsb
   tables, from Doug Wilson.

4) Fix erroneous truncation of 64-bit system call return
   values to 32-bit.  From Dave Kleikamp.

Please pull, thanks a lot!

The following changes since commit c3bebc71c4bcdafa24b506adf0c1de3c1f77e2e0:

  Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net (2014-03-04 08:44:32 -0800)

are available in the git repository at:


  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git master

for you to fetch changes up to cb3042d609e30e6144024801c89be3925106752b:

  sparc64: Make sure %pil interrupts are enabled during hypervisor yield. (2014-03-24 14:45:12 -0400)

----------------------------------------------------------------
Dave Kleikamp (1):
      sparc64: don't treat 64-bit syscall return codes as 32-bit

David Miller (1):
      sparc: serial: Clean up the locking for -rt

David S. Miller (1):
      sparc64: Make sure %pil interrupts are enabled during hypervisor yield.

Doug Wilson (1):
      sparc64:tsb.c:use array size macro rather than number

 arch/sparc/kernel/process_64.c |  4 +++-
 arch/sparc/kernel/syscalls.S   |  4 ++--
 arch/sparc/mm/tsb.c            |  2 +-
 drivers/tty/serial/sunhv.c     | 22 ++++++++++------------
 drivers/tty/serial/sunsab.c    | 14 +++++---------
 drivers/tty/serial/sunsu.c     | 14 +++++---------
 drivers/tty/serial/sunzilog.c  | 14 +++++---------
 7 files changed, 31 insertions(+), 43 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2014-03-24 19:18 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2014-03-24 19:18 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Please pull to get these sparc fixes:

1) Do serial locking in a way that makes things clear that
   these are IRQ spinlocks.

2) Conversion to generic idle loop broke first generation
   Niagara machines, need to have %pil interrupts enabled
   during cpu yield hypervisor call.

3) Do not use magic constants for iterations over tsb
   tables, from Doug Wilson.

4) Fix erroneous truncation of 64-bit system call return
   values to 32-bit.  From Dave Kleikamp.

Please pull, thanks a lot!

The following changes since commit c3bebc71c4bcdafa24b506adf0c1de3c1f77e2e0:

  Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net (2014-03-04 08:44:32 -0800)

are available in the git repository at:


  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git master

for you to fetch changes up to cb3042d609e30e6144024801c89be3925106752b:

  sparc64: Make sure %pil interrupts are enabled during hypervisor yield. (2014-03-24 14:45:12 -0400)

----------------------------------------------------------------
Dave Kleikamp (1):
      sparc64: don't treat 64-bit syscall return codes as 32-bit

David Miller (1):
      sparc: serial: Clean up the locking for -rt

David S. Miller (1):
      sparc64: Make sure %pil interrupts are enabled during hypervisor yield.

Doug Wilson (1):
      sparc64:tsb.c:use array size macro rather than number

 arch/sparc/kernel/process_64.c |  4 +++-
 arch/sparc/kernel/syscalls.S   |  4 ++--
 arch/sparc/mm/tsb.c            |  2 +-
 drivers/tty/serial/sunhv.c     | 22 ++++++++++------------
 drivers/tty/serial/sunsab.c    | 14 +++++---------
 drivers/tty/serial/sunsu.c     | 14 +++++---------
 drivers/tty/serial/sunzilog.c  | 14 +++++---------
 7 files changed, 31 insertions(+), 43 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2014-05-06 15:30 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2014-05-06 15:30 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


I've been auditing the THP support on sparc64 and found several bugs,
hopefully most of which are fixed completely here.

Also an RT kernel locking fix from Kirill Tkhai.

Please pull, thanks a lot!

The following changes since commit b7270cce7db770602510043b212992d839fd25a6:

  Merge tag 'rdma-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband (2014-05-01 17:52:42 -0700)

are available in the git repository at:


  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git master

for you to fetch changes up to fe866433f843b080246ce729b5e6b27b5f5d9a58:

  sparc64: Give more detailed information in {pgd,pmd}_ERROR() and kill pte_ERROR(). (2014-05-03 22:56:25 -0700)

----------------------------------------------------------------
David S. Miller (13):
      sparc64: Fix argument sign extension for compat_sys_futex().
      sparc64: Normalize NMI watchdog logging and behavior.
      sparc64: Fix executable bit testing in set_pmd_at() paths.
      sparc64: Fix huge PMD invalidation.
      sparc64: Fix bugs in get_user_pages_fast() wrt. THP.
      sparc64: Fix hex values in comment above pte_modify().
      sparc64: Don't use _PAGE_PRESENT in pte_modify() mask.
      sparc64: Handle 32-bit tasks properly in compute_effective_address().
      sparc64: Fix top-level fault handling bugs.
      sparc64: Fix range check in kern_addr_valid().
      sparc64: Use 'ILOG2_4MB' instead of constant '22'.
      sparc64: Add basic validations to {pud,pmd}_bad().
      sparc64: Give more detailed information in {pgd,pmd}_ERROR() and kill pte_ERROR().

Kirill Tkhai (1):
      sparc64: Make itc_sync_lock raw

 arch/sparc/include/asm/pgtable_64.h | 83 ++++++++++++++++++++++++++++++++++++++------------------------------
 arch/sparc/include/asm/tsb.h        |  3 ++-
 arch/sparc/kernel/head_64.S         |  4 ++--
 arch/sparc/kernel/ktlb.S            |  2 +-
 arch/sparc/kernel/nmi.c             | 21 +++++------------
 arch/sparc/kernel/smp_64.c          |  6 ++---
 arch/sparc/kernel/sys32.S           |  2 +-
 arch/sparc/kernel/unaligned_64.c    | 12 +++++++---
 arch/sparc/mm/fault_64.c            | 82 ++++++++++++++++++++++++++++++++++++++++++-------------------------
 arch/sparc/mm/gup.c                 |  2 +-
 arch/sparc/mm/init_64.c             | 12 +++++-----
 arch/sparc/mm/tlb.c                 | 26 ++++++++++++++++-----
 12 files changed, 148 insertions(+), 107 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2014-05-06 15:30 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2014-05-06 15:30 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


I've been auditing the THP support on sparc64 and found several bugs,
hopefully most of which are fixed completely here.

Also an RT kernel locking fix from Kirill Tkhai.

Please pull, thanks a lot!

The following changes since commit b7270cce7db770602510043b212992d839fd25a6:

  Merge tag 'rdma-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband (2014-05-01 17:52:42 -0700)

are available in the git repository at:


  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git master

for you to fetch changes up to fe866433f843b080246ce729b5e6b27b5f5d9a58:

  sparc64: Give more detailed information in {pgd,pmd}_ERROR() and kill pte_ERROR(). (2014-05-03 22:56:25 -0700)

----------------------------------------------------------------
David S. Miller (13):
      sparc64: Fix argument sign extension for compat_sys_futex().
      sparc64: Normalize NMI watchdog logging and behavior.
      sparc64: Fix executable bit testing in set_pmd_at() paths.
      sparc64: Fix huge PMD invalidation.
      sparc64: Fix bugs in get_user_pages_fast() wrt. THP.
      sparc64: Fix hex values in comment above pte_modify().
      sparc64: Don't use _PAGE_PRESENT in pte_modify() mask.
      sparc64: Handle 32-bit tasks properly in compute_effective_address().
      sparc64: Fix top-level fault handling bugs.
      sparc64: Fix range check in kern_addr_valid().
      sparc64: Use 'ILOG2_4MB' instead of constant '22'.
      sparc64: Add basic validations to {pud,pmd}_bad().
      sparc64: Give more detailed information in {pgd,pmd}_ERROR() and kill pte_ERROR().

Kirill Tkhai (1):
      sparc64: Make itc_sync_lock raw

 arch/sparc/include/asm/pgtable_64.h | 83 ++++++++++++++++++++++++++++++++++++++------------------------------
 arch/sparc/include/asm/tsb.h        |  3 ++-
 arch/sparc/kernel/head_64.S         |  4 ++--
 arch/sparc/kernel/ktlb.S            |  2 +-
 arch/sparc/kernel/nmi.c             | 21 +++++------------
 arch/sparc/kernel/smp_64.c          |  6 ++---
 arch/sparc/kernel/sys32.S           |  2 +-
 arch/sparc/kernel/unaligned_64.c    | 12 +++++++---
 arch/sparc/mm/fault_64.c            | 82 ++++++++++++++++++++++++++++++++++++++++++-------------------------
 arch/sparc/mm/gup.c                 |  2 +-
 arch/sparc/mm/init_64.c             | 12 +++++-----
 arch/sparc/mm/tlb.c                 | 26 ++++++++++++++++-----
 12 files changed, 148 insertions(+), 107 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] Sparc
  2014-05-06 15:30 ` David Miller
@ 2014-05-06 16:29   ` Dave Jones
  -1 siblings, 0 replies; 548+ messages in thread
From: Dave Jones @ 2014-05-06 16:29 UTC (permalink / raw)
  To: David Miller; +Cc: torvalds, akpm, sparclinux, linux-kernel

On Tue, May 06, 2014 at 11:30:31AM -0400, David Miller wrote:
 > 
 > I've been auditing the THP support on sparc64 and found several bugs,
 > hopefully most of which are fixed completely here.
 
Hi Dave,

It seems like forever you go you sent me patches to trinity to make it
work on sparc. I'm curious if you've tried running it again more
recently ?   Given the work I've done it to do more creative things with
VM related syscalls, I wouldn't be surprised if it also found some sparc
specific bugs in thp.

It should now also scale up to run a lot more child processes than the older
version, with the -c option, which could be interesting on some of the
bigger sparc machines.

(It's entirely possible I've broken the compile on non-x86 in
 current git, but it shouldn't be much work to fix up).

git://github.com/kernelslacker/trinity is where it lives now.

	Dave


^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] Sparc
@ 2014-05-06 16:29   ` Dave Jones
  0 siblings, 0 replies; 548+ messages in thread
From: Dave Jones @ 2014-05-06 16:29 UTC (permalink / raw)
  To: David Miller; +Cc: torvalds, akpm, sparclinux, linux-kernel

On Tue, May 06, 2014 at 11:30:31AM -0400, David Miller wrote:
 > 
 > I've been auditing the THP support on sparc64 and found several bugs,
 > hopefully most of which are fixed completely here.
 
Hi Dave,

It seems like forever you go you sent me patches to trinity to make it
work on sparc. I'm curious if you've tried running it again more
recently ?   Given the work I've done it to do more creative things with
VM related syscalls, I wouldn't be surprised if it also found some sparc
specific bugs in thp.

It should now also scale up to run a lot more child processes than the older
version, with the -c option, which could be interesting on some of the
bigger sparc machines.

(It's entirely possible I've broken the compile on non-x86 in
 current git, but it shouldn't be much work to fix up).

git://github.com/kernelslacker/trinity is where it lives now.

	Dave


^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] Sparc
  2014-05-06 16:29   ` Dave Jones
@ 2014-05-06 17:13     ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2014-05-06 17:13 UTC (permalink / raw)
  To: davej; +Cc: torvalds, akpm, sparclinux, linux-kernel

From: Dave Jones <davej@redhat.com>
Date: Tue, 6 May 2014 12:29:46 -0400

> It seems like forever you go you sent me patches to trinity to make it
> work on sparc. I'm curious if you've tried running it again more
> recently ?   Given the work I've done it to do more creative things with
> VM related syscalls, I wouldn't be surprised if it also found some sparc
> specific bugs in thp.
> 
> It should now also scale up to run a lot more child processes than the older
> version, with the -c option, which could be interesting on some of the
> bigger sparc machines.
> 
> (It's entirely possible I've broken the compile on non-x86 in
>  current git, but it shouldn't be much work to fix up).
> 
> git://github.com/kernelslacker/trinity is where it lives now.

Thanks Dave, I'll take a look and get back to you.

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] Sparc
@ 2014-05-06 17:13     ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2014-05-06 17:13 UTC (permalink / raw)
  To: davej; +Cc: torvalds, akpm, sparclinux, linux-kernel

From: Dave Jones <davej@redhat.com>
Date: Tue, 6 May 2014 12:29:46 -0400

> It seems like forever you go you sent me patches to trinity to make it
> work on sparc. I'm curious if you've tried running it again more
> recently ?   Given the work I've done it to do more creative things with
> VM related syscalls, I wouldn't be surprised if it also found some sparc
> specific bugs in thp.
> 
> It should now also scale up to run a lot more child processes than the older
> version, with the -c option, which could be interesting on some of the
> bigger sparc machines.
> 
> (It's entirely possible I've broken the compile on non-x86 in
>  current git, but it shouldn't be much work to fix up).
> 
> git://github.com/kernelslacker/trinity is where it lives now.

Thanks Dave, I'll take a look and get back to you.

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2014-05-22 21:53 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2014-05-22 21:53 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


A small bunch of bug fixes, in particular:

1) On older cpus we need a different chunk of virtual address
   space to map the huge page TSB.

2) Missing memory barrier in Niagara2 memcpy.

3) trinity showed some places where fault validation was unnecessarily
   loud on sparc64

4) Some sysfs printf's need a type adjustment, from Toralf Förster

Please pull, thanks a lot.

The following changes since commit 256cf4c438e60116785a83b060614c63c7477e84:

  Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse (2014-05-06 09:09:35 -0700)

are available in the git repository at:


  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc master

for you to fetch changes up to 8ecc1bad4c9b485ceb47182d282980d0b0fe20ac:

  sparc64: fix format string mismatch in arch/sparc/kernel/sysfs.c (2014-05-21 12:54:42 -0700)

----------------------------------------------------------------
David S. Miller (3):
      sparc64: Don't bark so loudly about 32-bit tasks generating 64-bit fault addresses.
      sparc64: Fix huge TSB mapping on pre-UltraSPARC-III cpus.
      sparc64: Add membar to Niagara2 memcpy code.

Toralf Förster (1):
      sparc64: fix format string mismatch in arch/sparc/kernel/sysfs.c

 arch/sparc/include/asm/pgtable_64.h |  6 ++++--
 arch/sparc/kernel/sysfs.c           |  2 +-
 arch/sparc/lib/NG2memcpy.S          |  1 +
 arch/sparc/mm/fault_64.c            | 16 +---------------
 arch/sparc/mm/tsb.c                 | 14 +++++++++++++-
 5 files changed, 20 insertions(+), 19 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2014-05-22 21:53 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2014-05-22 21:53 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


A small bunch of bug fixes, in particular:

1) On older cpus we need a different chunk of virtual address
   space to map the huge page TSB.

2) Missing memory barrier in Niagara2 memcpy.

3) trinity showed some places where fault validation was unnecessarily
   loud on sparc64

4) Some sysfs printf's need a type adjustment, from Toralf Förster

Please pull, thanks a lot.

The following changes since commit 256cf4c438e60116785a83b060614c63c7477e84:

  Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse (2014-05-06 09:09:35 -0700)

are available in the git repository at:


  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc master

for you to fetch changes up to 8ecc1bad4c9b485ceb47182d282980d0b0fe20ac:

  sparc64: fix format string mismatch in arch/sparc/kernel/sysfs.c (2014-05-21 12:54:42 -0700)

----------------------------------------------------------------
David S. Miller (3):
      sparc64: Don't bark so loudly about 32-bit tasks generating 64-bit fault addresses.
      sparc64: Fix huge TSB mapping on pre-UltraSPARC-III cpus.
      sparc64: Add membar to Niagara2 memcpy code.

Toralf Förster (1):
      sparc64: fix format string mismatch in arch/sparc/kernel/sysfs.c

 arch/sparc/include/asm/pgtable_64.h |  6 ++++--
 arch/sparc/kernel/sysfs.c           |  2 +-
 arch/sparc/lib/NG2memcpy.S          |  1 +
 arch/sparc/mm/fault_64.c            | 16 +---------------
 arch/sparc/mm/tsb.c                 | 14 +++++++++++++-
 5 files changed, 20 insertions(+), 19 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2014-06-16  6:45 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2014-06-16  6:45 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Please pull to get these sparc sparse fixes from Sam Ravnborg.

Thanks a lot!

The following changes since commit 2aafe1a4d451866e3e7b476e2fa0813b69b313c1:

  Merge tag 'trace-fixes-v3.15-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace (2014-04-28 16:57:51 -0700)

are available in the git repository at:


  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-next.git master

for you to fetch changes up to 311b8935ad4e13bac5880ae3f0c269b0c253d25f:

  Merge branch 'sparc_sparse_fixes' (2014-05-18 19:03:07 -0700)

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

David S. Miller (3):
      Merge branch 'sparc32-sparse'
      Merge branch 'sparc32_generic_io_h'
      Merge branch 'sparc_sparse_fixes'

Sam Ravnborg (67):
      sparc32: rename mm/srmmu.h to mm/mm_32.h
      sparc32: fix sparse warning in fault_32.c
      sparc32: fix sparse warning in init_32.c
      sparc32: fix sparse warnings in srmmu.c
      sparc32: fix sparse "Should it be static?" in mm/
      sparc32: fix sparse warning in traps_32.c
      sparc32: fix sparse warnings in sun4m_irq.c and sun4d_irq.c
      sparc32: fix sparse warnings in sun4d_irq.c
      sparc32: fix sparse warnings in irq_32.c
      sparc32: fix sparse warnings in process_32.h
      sparc32: fix sparse warnings in signal_32.c
      sparc32: fix sparse warnings in ioport.c
      sparc32: fix sparse warnings in setup_32.c
      sparc32: fix sparse warnings in windows.c
      sparc: fix sparse warnings in cpu.c
      sparc32: fix sparse warning in devices.c
      sparc32: fix sparse warnings in tadpole.c
      sparc32: fix sparse warnings in leon_pci_grpci1.c
      sparc32: fix sparse warnings in leon_pci_grpci2.c
      sparc32: fix sparse warnings in auxio_32.c
      sparc32: fix sparse warnings in smp_32.c
      sparc32: fix sparse warning in ptrace_32.c
      sparc32: fix sparse warnings in unaligned_32.c
      sparc: fix sparse warnings in of_device_common.c
      sparc32: fix sparse warnings in leon_kernel.c
      sparc32: fix sparse warnings in leon_pmc.c
      sparc32: fix sparse warnings in sun4m_smp.c
      sparc32: fix sparse warnings in sun4d_smp.c
      sparc32: fix sparse warnings in leon_smp.c
      sparc: move page_to_phys to page.h
      sparc32: replace flip_dword() with swab32()
      sparc32: introduce asm-generic/io.h
      sparc32: clean up io_32.h
      sparc32: fix build breakage
      sparc32: fix sparse warning in iommu.c
      sparc32: fix sparse warning in io-unit.c
      sparc32: fix sparse warnings in pcic.c
      sparc32: fix sparse warning in auxio_32.c
      sparc32: fix sparse warnings in time_32.c
      sparc32: fix sparse warnings in sys_sparc_32.c
      sparc32: remove cast from output constraints in math asm statements
      sparc64: remove cast from output constraints in math asm statements
      sparc: fix sparse warning in math_{32,64}
      sparc32: drop tadpole specific code
      sparc: drop use of extern for prototypes in arch/sparc/include/asm
      sparc: drop use of extern for prototypes in arch/sparc/*
      sparc64: fix sparse warning in traps_64.c
      sparc64: fix sparse warning in process_64.c
      sparc64: fix sparse warnings in sys_sparc_64.c + unaligned_64.c
      sparc64: fix sparse warning in btext.c
      sparc64: fix sparse warning in prom_64.c
      sparc64: fix sparse warnings in smp_64.c
      sparc64: fix sparse warning in pci.c
      sparc64: fix sparse warnings in sys_sparc32.c
      sparc64: fix sparse "Should it be static?" warnings in signal32.c
      sparc64: clean up compat_sigset_t.seta handling
      sparc64: fix sparse warning in tsb.c
      sparc64: fix sparse warnings in kprobes.c
      sparc64: fix sparse warnings in perf_event.c
      sparc: fix sparse warnings in smp_32.c + smp_64.c
      sparc64: fix sparse warnings in aes_glue.c
      sparc64: fix sparse warnings in init_64.c
      sparc64: fix sparse warnings in compat_audit.c
      sparc64: fix sparse warning in kgdb_64.c
      sparc64: fix sparse warning in kprobes.c
      sparc64: fix sparse warning in ftrace.c
      sparc64: fix sparse warnings in int_64.c

 arch/sparc/crypto/aes_glue.c            |   6 +-
 arch/sparc/include/asm/atomic_32.h      |   8 +--
 arch/sparc/include/asm/atomic_64.h      |  18 ++---
 arch/sparc/include/asm/auxio.h          |   7 ++
 arch/sparc/include/asm/auxio_32.h       |   6 +-
 arch/sparc/include/asm/auxio_64.h       |   6 +-
 arch/sparc/include/asm/bitext.h         |   6 +-
 arch/sparc/include/asm/bitops_32.h      |   6 +-
 arch/sparc/include/asm/bitops_64.h      |  24 +++----
 arch/sparc/include/asm/btext.h          |   2 +-
 arch/sparc/include/asm/bug.h            |   4 +-
 arch/sparc/include/asm/cacheflush_32.h  |   8 +--
 arch/sparc/include/asm/cacheflush_64.h  |  24 +++----
 arch/sparc/include/asm/checksum_32.h    |   4 +-
 arch/sparc/include/asm/checksum_64.h    |  32 ++++-----
 arch/sparc/include/asm/cmpxchg_32.h     |   6 +-
 arch/sparc/include/asm/cmpxchg_64.h     |   4 +-
 arch/sparc/include/asm/cpudata.h        |  10 +++
 arch/sparc/include/asm/cpudata_64.h     |   5 --
 arch/sparc/include/asm/delay_32.h       |   4 +-
 arch/sparc/include/asm/delay_64.h       |   4 +-
 arch/sparc/include/asm/device.h         |   2 +-
 arch/sparc/include/asm/dma-mapping.h    |   2 +-
 arch/sparc/include/asm/ebus_dma.h       |  16 ++---
 arch/sparc/include/asm/floppy_32.h      |  14 +---
 arch/sparc/include/asm/floppy_64.h      |   2 +-
 arch/sparc/include/asm/ftrace.h         |   6 +-
 arch/sparc/include/asm/highmem.h        |  10 +--
 arch/sparc/include/asm/hvtramp.h        |   2 +-
 arch/sparc/include/asm/hypervisor.h     | 325 +++++++++++++++++++++++++++++++++++++++++++-------------------------------------------
 arch/sparc/include/asm/idprom.h         |   2 +-
 arch/sparc/include/asm/io-unit.h        |   2 +-
 arch/sparc/include/asm/io_32.h          | 299 +++++++++++++++----------------------------------------------------------------
 arch/sparc/include/asm/io_64.h          |  21 +++---
 arch/sparc/include/asm/iommu_32.h       |  10 +--
 arch/sparc/include/asm/iommu_64.h       |   6 +-
 arch/sparc/include/asm/irq_32.h         |   3 +-
 arch/sparc/include/asm/irq_64.h         |  44 ++++++------
 arch/sparc/include/asm/irqflags_32.h    |   6 +-
 arch/sparc/include/asm/kdebug_64.h      |   2 +-
 arch/sparc/include/asm/kgdb.h           |   5 +-
 arch/sparc/include/asm/kprobes.h        |   8 ++-
 arch/sparc/include/asm/ldc.h            |  66 +++++++++---------
 arch/sparc/include/asm/leon.h           |  54 +++++++--------
 arch/sparc/include/asm/leon_pci.h       |   4 +-
 arch/sparc/include/asm/mc146818rtc.h    |   5 ++
 arch/sparc/include/asm/mdesc.h          |  32 ++++-----
 arch/sparc/include/asm/mmu_64.h         |   6 +-
 arch/sparc/include/asm/mmu_context_64.h |  24 ++++---
 arch/sparc/include/asm/nmi.h            |  10 +--
 arch/sparc/include/asm/oplib_32.h       |  68 +++++++++---------
 arch/sparc/include/asm/oplib_64.h       | 112 +++++++++++++++---------------
 arch/sparc/include/asm/page.h           |   3 +
 arch/sparc/include/asm/page_64.h        |   8 +--
 arch/sparc/include/asm/pci_64.h         |  14 ++--
 arch/sparc/include/asm/pcic.h           |   8 +--
 arch/sparc/include/asm/pcr.h            |   6 +-
 arch/sparc/include/asm/pgalloc_32.h     |   2 +
 arch/sparc/include/asm/pgalloc_64.h     |  16 ++---
 arch/sparc/include/asm/pgtable_32.h     |  11 +--
 arch/sparc/include/asm/pgtable_64.h     |  58 ++++++++--------
 arch/sparc/include/asm/processor_32.h   |   5 +-
 arch/sparc/include/asm/processor_64.h   |   6 +-
 arch/sparc/include/asm/prom.h           |  24 +++----
 arch/sparc/include/asm/ptrace.h         |   2 +-
 arch/sparc/include/asm/setup.h          |  39 ++++++++++-
 arch/sparc/include/asm/sfp-machine_32.h |  28 ++++----
 arch/sparc/include/asm/smp_32.h         |   6 +-
 arch/sparc/include/asm/smp_64.h         |  24 ++++---
 arch/sparc/include/asm/spitfire.h       |   2 +-
 arch/sparc/include/asm/stacktrace.h     |   2 +-
 arch/sparc/include/asm/starfire.h       |   8 +--
 arch/sparc/include/asm/string_32.h      |  12 ++--
 arch/sparc/include/asm/string_64.h      |  12 ++--
 arch/sparc/include/asm/switch_to_32.h   |   6 +-
 arch/sparc/include/asm/switch_to_64.h   |   4 +-
 arch/sparc/include/asm/syscalls.h       |   8 +--
 arch/sparc/include/asm/timer_32.h       |   6 +-
 arch/sparc/include/asm/timer_64.h       |   6 +-
 arch/sparc/include/asm/tlb_64.h         |   8 +--
 arch/sparc/include/asm/tlbflush_64.h    |  22 +++---
 arch/sparc/include/asm/topology_64.h    |   2 +-
 arch/sparc/include/asm/trap_block.h     |   6 +-
 arch/sparc/include/asm/uaccess.h        |   2 +-
 arch/sparc/include/asm/uaccess_32.h     |  14 ++--
 arch/sparc/include/asm/uaccess_64.h     |  50 +++++++-------
 arch/sparc/include/asm/vio.h            |  36 +++++-----
 arch/sparc/include/asm/visasm.h         |   3 +-
 arch/sparc/include/asm/xor_64.h         |  28 ++++----
 arch/sparc/kernel/Makefile              |   1 -
 arch/sparc/kernel/audit.c               |   8 +--
 arch/sparc/kernel/auxio_32.c            |   9 ++-
 arch/sparc/kernel/btext.c               |   2 +-
 arch/sparc/kernel/compat_audit.c        |   1 +
 arch/sparc/kernel/cpu.c                 |   1 +
 arch/sparc/kernel/cpumap.h              |   4 +-
 arch/sparc/kernel/devices.c             |  12 ++--
 arch/sparc/kernel/entry.h               | 259 ++++++++++++++++++++++++++++++++++----------------------------------
 arch/sparc/kernel/iommu.c               |   3 +-
 arch/sparc/kernel/iommu_common.h        |  14 ++--
 arch/sparc/kernel/ioport.c              |   6 +-
 arch/sparc/kernel/irq.h                 |  11 ++-
 arch/sparc/kernel/irq_32.c              |   1 +
 arch/sparc/kernel/kernel.h              | 124 ++++++++++++++++++++++++++++-----
 arch/sparc/kernel/kgdb_64.c             |   2 +
 arch/sparc/kernel/kprobes.c             |   5 +-
 arch/sparc/kernel/leon_kernel.c         |  10 +--
 arch/sparc/kernel/leon_pci.c            |  79 ---------------------
 arch/sparc/kernel/leon_pci_grpci1.c     |  16 ++---
 arch/sparc/kernel/leon_pci_grpci2.c     |  22 +++---
 arch/sparc/kernel/leon_pmc.c            |   8 +--
 arch/sparc/kernel/leon_smp.c            |  13 +---
 arch/sparc/kernel/of_device_common.c    |   4 +-
 arch/sparc/kernel/pci.c                 |   1 +
 arch/sparc/kernel/pci_impl.h            |  30 ++++----
 arch/sparc/kernel/pci_sun4v.h           | 156 ++++++++++++++++++++---------------------
 arch/sparc/kernel/pcic.c                | 116 ++-----------------------------
 arch/sparc/kernel/perf_event.c          |  23 ++++---
 arch/sparc/kernel/process_32.c          |  12 +++-
 arch/sparc/kernel/process_64.c          |   2 +-
 arch/sparc/kernel/prom.h                |   2 +-
 arch/sparc/kernel/prom_64.c             |   5 +-
 arch/sparc/kernel/psycho_common.h       |  22 +++---
 arch/sparc/kernel/ptrace_32.c           |   2 +
 arch/sparc/kernel/setup_32.c            |   4 +-
 arch/sparc/kernel/signal32.c            |  56 +++++----------
 arch/sparc/kernel/signal_32.c           |  11 +--
 arch/sparc/kernel/signal_64.c           |   6 +-
 arch/sparc/kernel/smp_32.c              |  13 ++--
 arch/sparc/kernel/smp_64.c              |  16 +----
 arch/sparc/kernel/sun4d_irq.c           |  17 ++---
 arch/sparc/kernel/sys_sparc32.c         |   2 +
 arch/sparc/kernel/sys_sparc_32.c        |  10 +--
 arch/sparc/kernel/sys_sparc_64.c        |   1 +
 arch/sparc/kernel/systbls.h             | 124 ++++++++++++++++++++++++---------
 arch/sparc/kernel/tadpole.c             | 126 ---------------------------------
 arch/sparc/kernel/time_32.c             |   8 ++-
 arch/sparc/kernel/traps_32.c            |   4 +-
 arch/sparc/kernel/traps_64.c            |  11 +--
 arch/sparc/kernel/unaligned_32.c        |   4 ++
 arch/sparc/kernel/unaligned_64.c        |   2 +
 arch/sparc/kernel/windows.c             |   3 +
 arch/sparc/lib/Makefile                 |   2 +-
 arch/sparc/math-emu/sfp-util_32.h       |  20 +++---
 arch/sparc/math-emu/sfp-util_64.h       |  12 ++--
 arch/sparc/mm/fault_32.c                |   9 +--
 arch/sparc/mm/fault_64.c                |   4 +-
 arch/sparc/mm/init_32.c                 |   7 +-
 arch/sparc/mm/init_64.c                 |   9 ++-
 arch/sparc/mm/init_64.h                 |   4 +-
 arch/sparc/mm/io-unit.c                 |  21 +++---
 arch/sparc/mm/iommu.c                   |  25 ++++---
 arch/sparc/mm/leon_mm.c                 |   4 +-
 arch/sparc/mm/mm_32.h                   |  24 +++++++
 arch/sparc/mm/srmmu.c                   |  13 ++--
 arch/sparc/mm/srmmu.h                   |   4 --
 arch/sparc/mm/tsb.c                     |   1 +
 arch/sparc/prom/misc_64.c               |   5 --
 include/linux/profile.h                 |   1 +
 kernel/sysctl.c                         |   4 --
 160 files changed, 1579 insertions(+), 1853 deletions(-)
 delete mode 100644 arch/sparc/kernel/tadpole.c
 create mode 100644 arch/sparc/mm/mm_32.h
 delete mode 100644 arch/sparc/mm/srmmu.h

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2014-06-16  6:45 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2014-06-16  6:45 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Please pull to get these sparc sparse fixes from Sam Ravnborg.

Thanks a lot!

The following changes since commit 2aafe1a4d451866e3e7b476e2fa0813b69b313c1:

  Merge tag 'trace-fixes-v3.15-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace (2014-04-28 16:57:51 -0700)

are available in the git repository at:


  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-next.git master

for you to fetch changes up to 311b8935ad4e13bac5880ae3f0c269b0c253d25f:

  Merge branch 'sparc_sparse_fixes' (2014-05-18 19:03:07 -0700)

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

David S. Miller (3):
      Merge branch 'sparc32-sparse'
      Merge branch 'sparc32_generic_io_h'
      Merge branch 'sparc_sparse_fixes'

Sam Ravnborg (67):
      sparc32: rename mm/srmmu.h to mm/mm_32.h
      sparc32: fix sparse warning in fault_32.c
      sparc32: fix sparse warning in init_32.c
      sparc32: fix sparse warnings in srmmu.c
      sparc32: fix sparse "Should it be static?" in mm/
      sparc32: fix sparse warning in traps_32.c
      sparc32: fix sparse warnings in sun4m_irq.c and sun4d_irq.c
      sparc32: fix sparse warnings in sun4d_irq.c
      sparc32: fix sparse warnings in irq_32.c
      sparc32: fix sparse warnings in process_32.h
      sparc32: fix sparse warnings in signal_32.c
      sparc32: fix sparse warnings in ioport.c
      sparc32: fix sparse warnings in setup_32.c
      sparc32: fix sparse warnings in windows.c
      sparc: fix sparse warnings in cpu.c
      sparc32: fix sparse warning in devices.c
      sparc32: fix sparse warnings in tadpole.c
      sparc32: fix sparse warnings in leon_pci_grpci1.c
      sparc32: fix sparse warnings in leon_pci_grpci2.c
      sparc32: fix sparse warnings in auxio_32.c
      sparc32: fix sparse warnings in smp_32.c
      sparc32: fix sparse warning in ptrace_32.c
      sparc32: fix sparse warnings in unaligned_32.c
      sparc: fix sparse warnings in of_device_common.c
      sparc32: fix sparse warnings in leon_kernel.c
      sparc32: fix sparse warnings in leon_pmc.c
      sparc32: fix sparse warnings in sun4m_smp.c
      sparc32: fix sparse warnings in sun4d_smp.c
      sparc32: fix sparse warnings in leon_smp.c
      sparc: move page_to_phys to page.h
      sparc32: replace flip_dword() with swab32()
      sparc32: introduce asm-generic/io.h
      sparc32: clean up io_32.h
      sparc32: fix build breakage
      sparc32: fix sparse warning in iommu.c
      sparc32: fix sparse warning in io-unit.c
      sparc32: fix sparse warnings in pcic.c
      sparc32: fix sparse warning in auxio_32.c
      sparc32: fix sparse warnings in time_32.c
      sparc32: fix sparse warnings in sys_sparc_32.c
      sparc32: remove cast from output constraints in math asm statements
      sparc64: remove cast from output constraints in math asm statements
      sparc: fix sparse warning in math_{32,64}
      sparc32: drop tadpole specific code
      sparc: drop use of extern for prototypes in arch/sparc/include/asm
      sparc: drop use of extern for prototypes in arch/sparc/*
      sparc64: fix sparse warning in traps_64.c
      sparc64: fix sparse warning in process_64.c
      sparc64: fix sparse warnings in sys_sparc_64.c + unaligned_64.c
      sparc64: fix sparse warning in btext.c
      sparc64: fix sparse warning in prom_64.c
      sparc64: fix sparse warnings in smp_64.c
      sparc64: fix sparse warning in pci.c
      sparc64: fix sparse warnings in sys_sparc32.c
      sparc64: fix sparse "Should it be static?" warnings in signal32.c
      sparc64: clean up compat_sigset_t.seta handling
      sparc64: fix sparse warning in tsb.c
      sparc64: fix sparse warnings in kprobes.c
      sparc64: fix sparse warnings in perf_event.c
      sparc: fix sparse warnings in smp_32.c + smp_64.c
      sparc64: fix sparse warnings in aes_glue.c
      sparc64: fix sparse warnings in init_64.c
      sparc64: fix sparse warnings in compat_audit.c
      sparc64: fix sparse warning in kgdb_64.c
      sparc64: fix sparse warning in kprobes.c
      sparc64: fix sparse warning in ftrace.c
      sparc64: fix sparse warnings in int_64.c

 arch/sparc/crypto/aes_glue.c            |   6 +-
 arch/sparc/include/asm/atomic_32.h      |   8 +--
 arch/sparc/include/asm/atomic_64.h      |  18 ++---
 arch/sparc/include/asm/auxio.h          |   7 ++
 arch/sparc/include/asm/auxio_32.h       |   6 +-
 arch/sparc/include/asm/auxio_64.h       |   6 +-
 arch/sparc/include/asm/bitext.h         |   6 +-
 arch/sparc/include/asm/bitops_32.h      |   6 +-
 arch/sparc/include/asm/bitops_64.h      |  24 +++----
 arch/sparc/include/asm/btext.h          |   2 +-
 arch/sparc/include/asm/bug.h            |   4 +-
 arch/sparc/include/asm/cacheflush_32.h  |   8 +--
 arch/sparc/include/asm/cacheflush_64.h  |  24 +++----
 arch/sparc/include/asm/checksum_32.h    |   4 +-
 arch/sparc/include/asm/checksum_64.h    |  32 ++++-----
 arch/sparc/include/asm/cmpxchg_32.h     |   6 +-
 arch/sparc/include/asm/cmpxchg_64.h     |   4 +-
 arch/sparc/include/asm/cpudata.h        |  10 +++
 arch/sparc/include/asm/cpudata_64.h     |   5 --
 arch/sparc/include/asm/delay_32.h       |   4 +-
 arch/sparc/include/asm/delay_64.h       |   4 +-
 arch/sparc/include/asm/device.h         |   2 +-
 arch/sparc/include/asm/dma-mapping.h    |   2 +-
 arch/sparc/include/asm/ebus_dma.h       |  16 ++---
 arch/sparc/include/asm/floppy_32.h      |  14 +---
 arch/sparc/include/asm/floppy_64.h      |   2 +-
 arch/sparc/include/asm/ftrace.h         |   6 +-
 arch/sparc/include/asm/highmem.h        |  10 +--
 arch/sparc/include/asm/hvtramp.h        |   2 +-
 arch/sparc/include/asm/hypervisor.h     | 325 +++++++++++++++++++++++++++++++++++++++++++-------------------------------------------
 arch/sparc/include/asm/idprom.h         |   2 +-
 arch/sparc/include/asm/io-unit.h        |   2 +-
 arch/sparc/include/asm/io_32.h          | 299 +++++++++++++++----------------------------------------------------------------
 arch/sparc/include/asm/io_64.h          |  21 +++---
 arch/sparc/include/asm/iommu_32.h       |  10 +--
 arch/sparc/include/asm/iommu_64.h       |   6 +-
 arch/sparc/include/asm/irq_32.h         |   3 +-
 arch/sparc/include/asm/irq_64.h         |  44 ++++++------
 arch/sparc/include/asm/irqflags_32.h    |   6 +-
 arch/sparc/include/asm/kdebug_64.h      |   2 +-
 arch/sparc/include/asm/kgdb.h           |   5 +-
 arch/sparc/include/asm/kprobes.h        |   8 ++-
 arch/sparc/include/asm/ldc.h            |  66 +++++++++---------
 arch/sparc/include/asm/leon.h           |  54 +++++++--------
 arch/sparc/include/asm/leon_pci.h       |   4 +-
 arch/sparc/include/asm/mc146818rtc.h    |   5 ++
 arch/sparc/include/asm/mdesc.h          |  32 ++++-----
 arch/sparc/include/asm/mmu_64.h         |   6 +-
 arch/sparc/include/asm/mmu_context_64.h |  24 ++++---
 arch/sparc/include/asm/nmi.h            |  10 +--
 arch/sparc/include/asm/oplib_32.h       |  68 +++++++++---------
 arch/sparc/include/asm/oplib_64.h       | 112 +++++++++++++++---------------
 arch/sparc/include/asm/page.h           |   3 +
 arch/sparc/include/asm/page_64.h        |   8 +--
 arch/sparc/include/asm/pci_64.h         |  14 ++--
 arch/sparc/include/asm/pcic.h           |   8 +--
 arch/sparc/include/asm/pcr.h            |   6 +-
 arch/sparc/include/asm/pgalloc_32.h     |   2 +
 arch/sparc/include/asm/pgalloc_64.h     |  16 ++---
 arch/sparc/include/asm/pgtable_32.h     |  11 +--
 arch/sparc/include/asm/pgtable_64.h     |  58 ++++++++--------
 arch/sparc/include/asm/processor_32.h   |   5 +-
 arch/sparc/include/asm/processor_64.h   |   6 +-
 arch/sparc/include/asm/prom.h           |  24 +++----
 arch/sparc/include/asm/ptrace.h         |   2 +-
 arch/sparc/include/asm/setup.h          |  39 ++++++++++-
 arch/sparc/include/asm/sfp-machine_32.h |  28 ++++----
 arch/sparc/include/asm/smp_32.h         |   6 +-
 arch/sparc/include/asm/smp_64.h         |  24 ++++---
 arch/sparc/include/asm/spitfire.h       |   2 +-
 arch/sparc/include/asm/stacktrace.h     |   2 +-
 arch/sparc/include/asm/starfire.h       |   8 +--
 arch/sparc/include/asm/string_32.h      |  12 ++--
 arch/sparc/include/asm/string_64.h      |  12 ++--
 arch/sparc/include/asm/switch_to_32.h   |   6 +-
 arch/sparc/include/asm/switch_to_64.h   |   4 +-
 arch/sparc/include/asm/syscalls.h       |   8 +--
 arch/sparc/include/asm/timer_32.h       |   6 +-
 arch/sparc/include/asm/timer_64.h       |   6 +-
 arch/sparc/include/asm/tlb_64.h         |   8 +--
 arch/sparc/include/asm/tlbflush_64.h    |  22 +++---
 arch/sparc/include/asm/topology_64.h    |   2 +-
 arch/sparc/include/asm/trap_block.h     |   6 +-
 arch/sparc/include/asm/uaccess.h        |   2 +-
 arch/sparc/include/asm/uaccess_32.h     |  14 ++--
 arch/sparc/include/asm/uaccess_64.h     |  50 +++++++-------
 arch/sparc/include/asm/vio.h            |  36 +++++-----
 arch/sparc/include/asm/visasm.h         |   3 +-
 arch/sparc/include/asm/xor_64.h         |  28 ++++----
 arch/sparc/kernel/Makefile              |   1 -
 arch/sparc/kernel/audit.c               |   8 +--
 arch/sparc/kernel/auxio_32.c            |   9 ++-
 arch/sparc/kernel/btext.c               |   2 +-
 arch/sparc/kernel/compat_audit.c        |   1 +
 arch/sparc/kernel/cpu.c                 |   1 +
 arch/sparc/kernel/cpumap.h              |   4 +-
 arch/sparc/kernel/devices.c             |  12 ++--
 arch/sparc/kernel/entry.h               | 259 ++++++++++++++++++++++++++++++++++----------------------------------
 arch/sparc/kernel/iommu.c               |   3 +-
 arch/sparc/kernel/iommu_common.h        |  14 ++--
 arch/sparc/kernel/ioport.c              |   6 +-
 arch/sparc/kernel/irq.h                 |  11 ++-
 arch/sparc/kernel/irq_32.c              |   1 +
 arch/sparc/kernel/kernel.h              | 124 ++++++++++++++++++++++++++++-----
 arch/sparc/kernel/kgdb_64.c             |   2 +
 arch/sparc/kernel/kprobes.c             |   5 +-
 arch/sparc/kernel/leon_kernel.c         |  10 +--
 arch/sparc/kernel/leon_pci.c            |  79 ---------------------
 arch/sparc/kernel/leon_pci_grpci1.c     |  16 ++---
 arch/sparc/kernel/leon_pci_grpci2.c     |  22 +++---
 arch/sparc/kernel/leon_pmc.c            |   8 +--
 arch/sparc/kernel/leon_smp.c            |  13 +---
 arch/sparc/kernel/of_device_common.c    |   4 +-
 arch/sparc/kernel/pci.c                 |   1 +
 arch/sparc/kernel/pci_impl.h            |  30 ++++----
 arch/sparc/kernel/pci_sun4v.h           | 156 ++++++++++++++++++++---------------------
 arch/sparc/kernel/pcic.c                | 116 ++-----------------------------
 arch/sparc/kernel/perf_event.c          |  23 ++++---
 arch/sparc/kernel/process_32.c          |  12 +++-
 arch/sparc/kernel/process_64.c          |   2 +-
 arch/sparc/kernel/prom.h                |   2 +-
 arch/sparc/kernel/prom_64.c             |   5 +-
 arch/sparc/kernel/psycho_common.h       |  22 +++---
 arch/sparc/kernel/ptrace_32.c           |   2 +
 arch/sparc/kernel/setup_32.c            |   4 +-
 arch/sparc/kernel/signal32.c            |  56 +++++----------
 arch/sparc/kernel/signal_32.c           |  11 +--
 arch/sparc/kernel/signal_64.c           |   6 +-
 arch/sparc/kernel/smp_32.c              |  13 ++--
 arch/sparc/kernel/smp_64.c              |  16 +----
 arch/sparc/kernel/sun4d_irq.c           |  17 ++---
 arch/sparc/kernel/sys_sparc32.c         |   2 +
 arch/sparc/kernel/sys_sparc_32.c        |  10 +--
 arch/sparc/kernel/sys_sparc_64.c        |   1 +
 arch/sparc/kernel/systbls.h             | 124 ++++++++++++++++++++++++---------
 arch/sparc/kernel/tadpole.c             | 126 ---------------------------------
 arch/sparc/kernel/time_32.c             |   8 ++-
 arch/sparc/kernel/traps_32.c            |   4 +-
 arch/sparc/kernel/traps_64.c            |  11 +--
 arch/sparc/kernel/unaligned_32.c        |   4 ++
 arch/sparc/kernel/unaligned_64.c        |   2 +
 arch/sparc/kernel/windows.c             |   3 +
 arch/sparc/lib/Makefile                 |   2 +-
 arch/sparc/math-emu/sfp-util_32.h       |  20 +++---
 arch/sparc/math-emu/sfp-util_64.h       |  12 ++--
 arch/sparc/mm/fault_32.c                |   9 +--
 arch/sparc/mm/fault_64.c                |   4 +-
 arch/sparc/mm/init_32.c                 |   7 +-
 arch/sparc/mm/init_64.c                 |   9 ++-
 arch/sparc/mm/init_64.h                 |   4 +-
 arch/sparc/mm/io-unit.c                 |  21 +++---
 arch/sparc/mm/iommu.c                   |  25 ++++---
 arch/sparc/mm/leon_mm.c                 |   4 +-
 arch/sparc/mm/mm_32.h                   |  24 +++++++
 arch/sparc/mm/srmmu.c                   |  13 ++--
 arch/sparc/mm/srmmu.h                   |   4 --
 arch/sparc/mm/tsb.c                     |   1 +
 arch/sparc/prom/misc_64.c               |   5 --
 include/linux/profile.h                 |   1 +
 kernel/sysctl.c                         |   4 --
 160 files changed, 1579 insertions(+), 1853 deletions(-)
 delete mode 100644 arch/sparc/kernel/tadpole.c
 create mode 100644 arch/sparc/mm/mm_32.h
 delete mode 100644 arch/sparc/mm/srmmu.h

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2014-07-22  5:38 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2014-07-22  5:38 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Need to hook up the new renameat2 system call.

Please pull, thanks!

The following changes since commit 9a3c4145af32125c5ee39c0272662b47307a8323:

  Linux 3.16-rc6 (2014-07-20 21:04:16 -0700)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git master

for you to fetch changes up to 26053926feb1c16ade9c30bc7443bf28d829d08e:

  sparc: Hook up renameat2 syscall. (2014-07-21 22:27:56 -0700)

----------------------------------------------------------------
David S. Miller (1):
      sparc: Hook up renameat2 syscall.

 arch/sparc/include/uapi/asm/unistd.h | 3 ++-
 arch/sparc/kernel/sys32.S            | 1 +
 arch/sparc/kernel/systbls_32.S       | 1 +
 arch/sparc/kernel/systbls_64.S       | 2 ++
 4 files changed, 6 insertions(+), 1 deletion(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2014-07-22  5:38 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2014-07-22  5:38 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Need to hook up the new renameat2 system call.

Please pull, thanks!

The following changes since commit 9a3c4145af32125c5ee39c0272662b47307a8323:

  Linux 3.16-rc6 (2014-07-20 21:04:16 -0700)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git master

for you to fetch changes up to 26053926feb1c16ade9c30bc7443bf28d829d08e:

  sparc: Hook up renameat2 syscall. (2014-07-21 22:27:56 -0700)

----------------------------------------------------------------
David S. Miller (1):
      sparc: Hook up renameat2 syscall.

 arch/sparc/include/uapi/asm/unistd.h | 3 ++-
 arch/sparc/kernel/sys32.S            | 1 +
 arch/sparc/kernel/systbls_32.S       | 1 +
 arch/sparc/kernel/systbls_64.S       | 2 ++
 4 files changed, 6 insertions(+), 1 deletion(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2014-08-06  5:03 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2014-08-06  5:03 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


1) Add sparc RAM output to /proc/iomem, from Bob Picco.

2) Allow seeks on /dev/mdesc, from Khalid Aziz.

3) Cleanup sparc64 I/O accessors, from Sam Ravnborg.

4) If update_mmu_cache{,_pmd}() is called with an not-valid mapping,
   do not insert it into the TLB miss hash tables otherwise we'll
   livelock.  Based upon work by Christopher Alexander Tobias Schulze.

5) Fix BREAK detection in sunsab driver when no actual characters
   are pending, from Christopher Alexander Tobias Schulze.

6) Because we have modules --> openfirmware --> vmalloc ordering of
   virtual memory, the lazy VMAP TLB flusher can cons up an invocation
   of flush_tlb_kernel_range() that covers the openfirmware address
   range.  Unfortunately this will flush out the firmware's locked
   TLB mapping which causes all kinds of trouble.  Just split up
   the flush request if this happens, but in the long term the lazy
   VMAP flusher should probably be made a little bit smarter.

   Based upon work by Christopher Alexander Tobias Schulze.

Please pull, thanks a lot!

The following changes since commit 31dab719fa50cf56d56d3dc25980fecd336f6ca8:

  Merge git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 (2014-07-28 11:35:30 -0700)

are available in the git repository at:


  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-next.git master

for you to fetch changes up to 5b6ff9df056b69a3b65708bfb9923af41146c8c8:

  sparc64: Fix up merge thinko. (2014-08-05 19:09:19 -0700)

----------------------------------------------------------------
Andrey Utkin (1):
      arch/sparc/math-emu/math_32.c: drop stray break operator

Christopher Alexander Tobias Schulze (2):
      bbc-i2c: Fix BBC I2C envctrl on SunBlade 2000
      sunsab: Fix detection of BREAK on sunsab serial console

David L Stevens (1):
      sparc: Add "install" target

David S. Miller (5):
      Merge branch 'sparc64_io'
      sparc64: Do not insert non-valid PTEs into the TSB hash table.
      sparc64: Guard against flushing openfirmware mappings.
      Merge git://git.kernel.org/.../davem/sparc
      sparc64: Fix up merge thinko.

Himangi Saraogi (1):
      display7seg: Introduce the use of the managed version of kzalloc

Kees Cook (1):
      sparc: use %s for unaligned panic

Khalid Aziz (1):
      sparc: Add support for seek and shorter read to /dev/mdesc

Rasmus Villemoes (1):
      drivers/sbus/char: Micro-optimization in display7seg.c

Sam Ravnborg (6):
      sparcspkr: use sbus_*() primitives for IO
      sparc64: update IO access functions in PeeCeeI
      sparc64: remove macro indirection in io_64.h
      sparc64: drop unused SLOW_DOWN_IO definitions
      sparc64: reorder functions in io_64.h
      sparc64: avoid code duplication in io_64.h

Sowmini Varadhan (1):
      sparc64: ldc_connect() should not return EINVAL when handshake is in progress.

bob picco (1):
      sparc64 - add mem to iomem resource

 arch/sparc/Makefile                  |   3 +
 arch/sparc/boot/Makefile             |   4 +
 arch/sparc/boot/install.sh           |  50 ++++++++++
 arch/sparc/include/asm/io_64.h       | 381 ++++++++++++++++++++++++++++---------------------------------------------
 arch/sparc/include/asm/tlbflush_64.h |  12 +--
 arch/sparc/kernel/ldc.c              |   2 +-
 arch/sparc/kernel/mdesc.c            |  82 +++++++++++++---
 arch/sparc/kernel/unaligned_32.c     |   2 +-
 arch/sparc/lib/PeeCeeI.c             |  36 +++----
 arch/sparc/math-emu/math_32.c        |   2 +-
 arch/sparc/mm/init_64.c              |  96 +++++++++++++++++++
 drivers/input/misc/sparcspkr.c       |  22 ++---
 drivers/sbus/char/bbc_envctrl.c      |   6 ++
 drivers/sbus/char/bbc_i2c.c          |  11 ++-
 drivers/sbus/char/display7seg.c      |  10 +-
 drivers/tty/serial/sunsab.c          |   9 ++
 16 files changed, 427 insertions(+), 301 deletions(-)
 create mode 100644 arch/sparc/boot/install.sh

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2014-08-06  5:03 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2014-08-06  5:03 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


1) Add sparc RAM output to /proc/iomem, from Bob Picco.

2) Allow seeks on /dev/mdesc, from Khalid Aziz.

3) Cleanup sparc64 I/O accessors, from Sam Ravnborg.

4) If update_mmu_cache{,_pmd}() is called with an not-valid mapping,
   do not insert it into the TLB miss hash tables otherwise we'll
   livelock.  Based upon work by Christopher Alexander Tobias Schulze.

5) Fix BREAK detection in sunsab driver when no actual characters
   are pending, from Christopher Alexander Tobias Schulze.

6) Because we have modules --> openfirmware --> vmalloc ordering of
   virtual memory, the lazy VMAP TLB flusher can cons up an invocation
   of flush_tlb_kernel_range() that covers the openfirmware address
   range.  Unfortunately this will flush out the firmware's locked
   TLB mapping which causes all kinds of trouble.  Just split up
   the flush request if this happens, but in the long term the lazy
   VMAP flusher should probably be made a little bit smarter.

   Based upon work by Christopher Alexander Tobias Schulze.

Please pull, thanks a lot!

The following changes since commit 31dab719fa50cf56d56d3dc25980fecd336f6ca8:

  Merge git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 (2014-07-28 11:35:30 -0700)

are available in the git repository at:


  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-next.git master

for you to fetch changes up to 5b6ff9df056b69a3b65708bfb9923af41146c8c8:

  sparc64: Fix up merge thinko. (2014-08-05 19:09:19 -0700)

----------------------------------------------------------------
Andrey Utkin (1):
      arch/sparc/math-emu/math_32.c: drop stray break operator

Christopher Alexander Tobias Schulze (2):
      bbc-i2c: Fix BBC I2C envctrl on SunBlade 2000
      sunsab: Fix detection of BREAK on sunsab serial console

David L Stevens (1):
      sparc: Add "install" target

David S. Miller (5):
      Merge branch 'sparc64_io'
      sparc64: Do not insert non-valid PTEs into the TSB hash table.
      sparc64: Guard against flushing openfirmware mappings.
      Merge git://git.kernel.org/.../davem/sparc
      sparc64: Fix up merge thinko.

Himangi Saraogi (1):
      display7seg: Introduce the use of the managed version of kzalloc

Kees Cook (1):
      sparc: use %s for unaligned panic

Khalid Aziz (1):
      sparc: Add support for seek and shorter read to /dev/mdesc

Rasmus Villemoes (1):
      drivers/sbus/char: Micro-optimization in display7seg.c

Sam Ravnborg (6):
      sparcspkr: use sbus_*() primitives for IO
      sparc64: update IO access functions in PeeCeeI
      sparc64: remove macro indirection in io_64.h
      sparc64: drop unused SLOW_DOWN_IO definitions
      sparc64: reorder functions in io_64.h
      sparc64: avoid code duplication in io_64.h

Sowmini Varadhan (1):
      sparc64: ldc_connect() should not return EINVAL when handshake is in progress.

bob picco (1):
      sparc64 - add mem to iomem resource

 arch/sparc/Makefile                  |   3 +
 arch/sparc/boot/Makefile             |   4 +
 arch/sparc/boot/install.sh           |  50 ++++++++++
 arch/sparc/include/asm/io_64.h       | 381 ++++++++++++++++++++++++++++---------------------------------------------
 arch/sparc/include/asm/tlbflush_64.h |  12 +--
 arch/sparc/kernel/ldc.c              |   2 +-
 arch/sparc/kernel/mdesc.c            |  82 +++++++++++++---
 arch/sparc/kernel/unaligned_32.c     |   2 +-
 arch/sparc/lib/PeeCeeI.c             |  36 +++----
 arch/sparc/math-emu/math_32.c        |   2 +-
 arch/sparc/mm/init_64.c              |  96 +++++++++++++++++++
 drivers/input/misc/sparcspkr.c       |  22 ++---
 drivers/sbus/char/bbc_envctrl.c      |   6 ++
 drivers/sbus/char/bbc_i2c.c          |  11 ++-
 drivers/sbus/char/display7seg.c      |  10 +-
 drivers/tty/serial/sunsab.c          |   9 ++
 16 files changed, 427 insertions(+), 301 deletions(-)
 create mode 100644 arch/sparc/boot/install.sh

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2014-08-12  4:01 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2014-08-12  4:01 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Please pull to get these Sparc bug fixes, one of which was preventing
successful SMP boots with mainline.

The following changes since commit 85417aef44fc58b08773117ceb1bc6ca5684e973:

  Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/ide (2014-08-06 09:42:33 -0700)

are available in the git repository at:


  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git master

for you to fetch changes up to 8bccf5b313180faefce38e0d1140f76e0f327d28:

  sparc64: Fix pcr_ops initialization and usage bugs. (2014-08-11 20:45:12 -0700)

----------------------------------------------------------------
David S. Miller (3):
      sparc: Hook up seccomp and getrandom system calls.
      sparc64: Do not disable interrupts in nmi_cpu_busy()
      sparc64: Fix pcr_ops initialization and usage bugs.

Hans Wennborg (1):
      sparc: fix decimal printf format specifiers prefixed with 0x

 arch/sparc/include/uapi/asm/unistd.h | 4 +++-
 arch/sparc/kernel/nmi.c              | 1 -
 arch/sparc/kernel/perf_event.c       | 7 +++++--
 arch/sparc/kernel/process_64.c       | 3 +++
 arch/sparc/kernel/smp_32.c           | 2 +-
 arch/sparc/kernel/smp_64.c           | 1 -
 arch/sparc/kernel/systbls_32.S       | 2 +-
 arch/sparc/kernel/systbls_64.S       | 4 ++--
 8 files changed, 15 insertions(+), 9 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2014-08-12  4:01 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2014-08-12  4:01 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Please pull to get these Sparc bug fixes, one of which was preventing
successful SMP boots with mainline.

The following changes since commit 85417aef44fc58b08773117ceb1bc6ca5684e973:

  Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/ide (2014-08-06 09:42:33 -0700)

are available in the git repository at:


  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git master

for you to fetch changes up to 8bccf5b313180faefce38e0d1140f76e0f327d28:

  sparc64: Fix pcr_ops initialization and usage bugs. (2014-08-11 20:45:12 -0700)

----------------------------------------------------------------
David S. Miller (3):
      sparc: Hook up seccomp and getrandom system calls.
      sparc64: Do not disable interrupts in nmi_cpu_busy()
      sparc64: Fix pcr_ops initialization and usage bugs.

Hans Wennborg (1):
      sparc: fix decimal printf format specifiers prefixed with 0x

 arch/sparc/include/uapi/asm/unistd.h | 4 +++-
 arch/sparc/kernel/nmi.c              | 1 -
 arch/sparc/kernel/perf_event.c       | 7 +++++--
 arch/sparc/kernel/process_64.c       | 3 +++
 arch/sparc/kernel/smp_32.c           | 2 +-
 arch/sparc/kernel/smp_64.c           | 1 -
 arch/sparc/kernel/systbls_32.S       | 2 +-
 arch/sparc/kernel/systbls_64.S       | 4 ++--
 8 files changed, 15 insertions(+), 9 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2014-08-14 23:17 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2014-08-14 23:17 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Hook up the memfd syscall, and properly claim all PCI resources
discovered when building the PCI device tree.

Please pull, thanks a lot!

The following changes since commit f0094b28f3038936c1985be64dbe83f0e950b671:

  Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net (2014-08-13 18:27:40 -0600)

are available in the git repository at:


  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git master

for you to fetch changes up to 10cf15e1d1289aa0bf1d26e9f55176b4c7c5c512:

  sparc: Hook up memfd_create system call. (2014-08-13 22:00:09 -0700)

----------------------------------------------------------------
David S. Miller (4):
      sparc64: Expand PCI bridge probing debug logging.
      sparc64: Skip bogus PCI bridge ranges.
      sparc64: Properly claim resources as each PCI bus is probed.
      sparc: Hook up memfd_create system call.

 arch/sparc/include/uapi/asm/unistd.h |  3 ++-
 arch/sparc/kernel/pci.c              | 67 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 arch/sparc/kernel/systbls_32.S       |  2 +-
 arch/sparc/kernel/systbls_64.S       |  4 ++--
 4 files changed, 71 insertions(+), 5 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2014-08-14 23:17 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2014-08-14 23:17 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Hook up the memfd syscall, and properly claim all PCI resources
discovered when building the PCI device tree.

Please pull, thanks a lot!

The following changes since commit f0094b28f3038936c1985be64dbe83f0e950b671:

  Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net (2014-08-13 18:27:40 -0600)

are available in the git repository at:


  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git master

for you to fetch changes up to 10cf15e1d1289aa0bf1d26e9f55176b4c7c5c512:

  sparc: Hook up memfd_create system call. (2014-08-13 22:00:09 -0700)

----------------------------------------------------------------
David S. Miller (4):
      sparc64: Expand PCI bridge probing debug logging.
      sparc64: Skip bogus PCI bridge ranges.
      sparc64: Properly claim resources as each PCI bus is probed.
      sparc: Hook up memfd_create system call.

 arch/sparc/include/uapi/asm/unistd.h |  3 ++-
 arch/sparc/kernel/pci.c              | 67 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 arch/sparc/kernel/systbls_32.S       |  2 +-
 arch/sparc/kernel/systbls_64.S       |  4 ++--
 4 files changed, 71 insertions(+), 5 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2014-10-10 20:01 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2014-10-10 20:01 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


1) Move to 4-level page tables on sparc64 and support up to 53-bits of
   physical addressing.  Kernel static image BSS size reduced by
   several megabytes.

2) M6/M7 cpu support, from Allan Pais.

3) Move to sparse IRQs, handle hypervisor TLB call errors more
   gracefully, and add T5 perf_event support.  From Bob Picco.

4) Recognize cdroms and compute geometry from capacity in virtual
   disk driver, also from Allan Pais.

5) Fix memset() return value on sparc32, from Andreas Larsson.

6) Respect gfp flags in dma_alloc_coherent on sparc32, from Daniel
   Hellstrom.

7) Fix handling of compound pages in virtual disk driver, from Dwight
   Engen.

8) Fix lockdep warnings in LDC layer by moving IRQ requesting to
   ldc_alloc() from ldc_bind().

9) Increase boot string length to 1024 bytes, from Dave Kleikamp.

Please pull, thanks a lot!

The following changes since commit 619df5d2870b80696fd32521376560e0a4223e44:

  Merge tag 'microblaze-3.17-rc5' of git://git.monstr.eu/linux-2.6-microblaze (2014-09-09 10:33:52 -0700)

are available in the git repository at:


  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git master

for you to fetch changes up to bdcf81b658ebc4c2640c3c2c55c8b31c601b6996:

  sparc64: Fix lockdep warnings on reboot on Ultra-5 (2014-10-10 15:49:16 -0400)

----------------------------------------------------------------
Allen Pais (5):
      sparc64: correctly recognise M6 and M7 cpu type
      sparc64: support M6 and M7 for building CPU distribution map
      sparc64: cpu hardware caps support for sparc M6 and M7
      sunvdc: add cdrom and v1.1 protocol support
      sunvdc: compute vdisk geometry from capacity

Andreas Larsson (3):
      sparc: Let memset return the address argument
      sparc: leon: Fix race condition between leon_cycles_offset and timer_interrupt
      sparc32, leon: Make leon_dma_ops avaiable when !CONFIG_PCI

Daniel Hellstrom (1):
      sparc32: dma_alloc_coherent must honour gfp flags

Dave Kleikamp (1):
      sparc64: Increase size of boot string to 1024 bytes

David L Stevens (1):
      sparc: VIO protocol version 1.6

David S. Miller (11):
      sparc64: Fix hibernation code refrence to PAGE_OFFSET.
      sparc64: Fix reversed start/end in flush_tlb_kernel_range()
      sparc64: Switch to 4-level page tables.
      sparc64: Define VA hole at run time, rather than at compile time.
      sparc64: Adjust KTSB assembler to support larger physical addresses.
      sparc64: Fix physical memory management regressions with large max_phys_bits.
      sparc64: Use kernel page tables for vmemmap.
      sparc64: Increase MAX_PHYS_ADDRESS_BITS to 53.
      sparc64: Adjust vmalloc region size based upon available virtual address bits.
      sparc64: Kill unnecessary tables and increase MAX_BANKS.
      sparc64: Fix lockdep warnings on reboot on Ultra-5

Dwight Engen (2):
      sunvdc: limit each sg segment to a page
      vio: fix reuse of vio_dring slot

Sowmini Varadhan (2):
      sparc64: Move request_irq() from ldc_bind() to ldc_alloc()
      sparc64: Add vio_set_intr() to enable/disable Rx interrupts

bob picco (5):
      sparc64: sun4v TLB error power off events
      sparc64: find_node adjustment
      sparc64: mem boot option correction
      sparc64: T5 PMU
      sparc64: sparse irq

 arch/sparc/Kconfig                      |   1 +
 arch/sparc/include/asm/dma-mapping.h    |   6 +-
 arch/sparc/include/asm/hypervisor.h     |  11 ++
 arch/sparc/include/asm/irq_64.h         |   7 +-
 arch/sparc/include/asm/ldc.h            |   5 +-
 arch/sparc/include/asm/page_64.h        |  33 ++---
 arch/sparc/include/asm/pgalloc_64.h     |  28 +++-
 arch/sparc/include/asm/pgtable_64.h     | 100 ++++++++-----
 arch/sparc/include/asm/spitfire.h       |   2 +
 arch/sparc/include/asm/thread_info_64.h |   1 +
 arch/sparc/include/asm/tsb.h            |  87 ++++++++----
 arch/sparc/include/asm/vio.h            |  60 +++++++-
 arch/sparc/kernel/cpu.c                 |  12 ++
 arch/sparc/kernel/cpumap.c              |   2 +
 arch/sparc/kernel/ds.c                  |   4 +-
 arch/sparc/kernel/head_64.S             |  12 ++
 arch/sparc/kernel/hvapi.c               |   1 +
 arch/sparc/kernel/hvcalls.S             |  16 +++
 arch/sparc/kernel/ioport.c              |   5 +-
 arch/sparc/kernel/irq_64.c              | 507 ++++++++++++++++++++++++++++++++++++++++++++----------------------
 arch/sparc/kernel/ktlb.S                | 125 ++---------------
 arch/sparc/kernel/ldc.c                 |  41 +++---
 arch/sparc/kernel/leon_kernel.c         |  31 ++++-
 arch/sparc/kernel/pcr.c                 |  47 ++++++-
 arch/sparc/kernel/perf_event.c          |   3 +-
 arch/sparc/kernel/setup_64.c            |  26 ++--
 arch/sparc/kernel/smp_64.c              |   7 +
 arch/sparc/kernel/sun4v_tlb_miss.S      |  35 +++--
 arch/sparc/kernel/traps_64.c            |  15 +-
 arch/sparc/kernel/vio.c                 |  13 +-
 arch/sparc/kernel/viohs.c               |  18 ++-
 arch/sparc/kernel/vmlinux.lds.S         |  10 +-
 arch/sparc/lib/memset.S                 |  18 ++-
 arch/sparc/mm/fault_64.c                |   3 +
 arch/sparc/mm/init_64.c                 | 603 +++++++++++++++++++++++++++++++++++++++++++------------------------------------
 arch/sparc/mm/init_64.h                 |  18 ---
 arch/sparc/power/hibernate_asm.S        |   4 +-
 arch/sparc/prom/bootstr_64.c            |   5 +-
 arch/sparc/prom/p1275.c                 |   7 +-
 drivers/block/sunvdc.c                  | 167 +++++++++++++++++-----
 drivers/net/ethernet/sun/sunvnet.c      |   4 +-
 41 files changed, 1302 insertions(+), 798 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2014-10-10 20:01 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2014-10-10 20:01 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


1) Move to 4-level page tables on sparc64 and support up to 53-bits of
   physical addressing.  Kernel static image BSS size reduced by
   several megabytes.

2) M6/M7 cpu support, from Allan Pais.

3) Move to sparse IRQs, handle hypervisor TLB call errors more
   gracefully, and add T5 perf_event support.  From Bob Picco.

4) Recognize cdroms and compute geometry from capacity in virtual
   disk driver, also from Allan Pais.

5) Fix memset() return value on sparc32, from Andreas Larsson.

6) Respect gfp flags in dma_alloc_coherent on sparc32, from Daniel
   Hellstrom.

7) Fix handling of compound pages in virtual disk driver, from Dwight
   Engen.

8) Fix lockdep warnings in LDC layer by moving IRQ requesting to
   ldc_alloc() from ldc_bind().

9) Increase boot string length to 1024 bytes, from Dave Kleikamp.

Please pull, thanks a lot!

The following changes since commit 619df5d2870b80696fd32521376560e0a4223e44:

  Merge tag 'microblaze-3.17-rc5' of git://git.monstr.eu/linux-2.6-microblaze (2014-09-09 10:33:52 -0700)

are available in the git repository at:


  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git master

for you to fetch changes up to bdcf81b658ebc4c2640c3c2c55c8b31c601b6996:

  sparc64: Fix lockdep warnings on reboot on Ultra-5 (2014-10-10 15:49:16 -0400)

----------------------------------------------------------------
Allen Pais (5):
      sparc64: correctly recognise M6 and M7 cpu type
      sparc64: support M6 and M7 for building CPU distribution map
      sparc64: cpu hardware caps support for sparc M6 and M7
      sunvdc: add cdrom and v1.1 protocol support
      sunvdc: compute vdisk geometry from capacity

Andreas Larsson (3):
      sparc: Let memset return the address argument
      sparc: leon: Fix race condition between leon_cycles_offset and timer_interrupt
      sparc32, leon: Make leon_dma_ops avaiable when !CONFIG_PCI

Daniel Hellstrom (1):
      sparc32: dma_alloc_coherent must honour gfp flags

Dave Kleikamp (1):
      sparc64: Increase size of boot string to 1024 bytes

David L Stevens (1):
      sparc: VIO protocol version 1.6

David S. Miller (11):
      sparc64: Fix hibernation code refrence to PAGE_OFFSET.
      sparc64: Fix reversed start/end in flush_tlb_kernel_range()
      sparc64: Switch to 4-level page tables.
      sparc64: Define VA hole at run time, rather than at compile time.
      sparc64: Adjust KTSB assembler to support larger physical addresses.
      sparc64: Fix physical memory management regressions with large max_phys_bits.
      sparc64: Use kernel page tables for vmemmap.
      sparc64: Increase MAX_PHYS_ADDRESS_BITS to 53.
      sparc64: Adjust vmalloc region size based upon available virtual address bits.
      sparc64: Kill unnecessary tables and increase MAX_BANKS.
      sparc64: Fix lockdep warnings on reboot on Ultra-5

Dwight Engen (2):
      sunvdc: limit each sg segment to a page
      vio: fix reuse of vio_dring slot

Sowmini Varadhan (2):
      sparc64: Move request_irq() from ldc_bind() to ldc_alloc()
      sparc64: Add vio_set_intr() to enable/disable Rx interrupts

bob picco (5):
      sparc64: sun4v TLB error power off events
      sparc64: find_node adjustment
      sparc64: mem boot option correction
      sparc64: T5 PMU
      sparc64: sparse irq

 arch/sparc/Kconfig                      |   1 +
 arch/sparc/include/asm/dma-mapping.h    |   6 +-
 arch/sparc/include/asm/hypervisor.h     |  11 ++
 arch/sparc/include/asm/irq_64.h         |   7 +-
 arch/sparc/include/asm/ldc.h            |   5 +-
 arch/sparc/include/asm/page_64.h        |  33 ++---
 arch/sparc/include/asm/pgalloc_64.h     |  28 +++-
 arch/sparc/include/asm/pgtable_64.h     | 100 ++++++++-----
 arch/sparc/include/asm/spitfire.h       |   2 +
 arch/sparc/include/asm/thread_info_64.h |   1 +
 arch/sparc/include/asm/tsb.h            |  87 ++++++++----
 arch/sparc/include/asm/vio.h            |  60 +++++++-
 arch/sparc/kernel/cpu.c                 |  12 ++
 arch/sparc/kernel/cpumap.c              |   2 +
 arch/sparc/kernel/ds.c                  |   4 +-
 arch/sparc/kernel/head_64.S             |  12 ++
 arch/sparc/kernel/hvapi.c               |   1 +
 arch/sparc/kernel/hvcalls.S             |  16 +++
 arch/sparc/kernel/ioport.c              |   5 +-
 arch/sparc/kernel/irq_64.c              | 507 ++++++++++++++++++++++++++++++++++++++++++++----------------------
 arch/sparc/kernel/ktlb.S                | 125 ++---------------
 arch/sparc/kernel/ldc.c                 |  41 +++---
 arch/sparc/kernel/leon_kernel.c         |  31 ++++-
 arch/sparc/kernel/pcr.c                 |  47 ++++++-
 arch/sparc/kernel/perf_event.c          |   3 +-
 arch/sparc/kernel/setup_64.c            |  26 ++--
 arch/sparc/kernel/smp_64.c              |   7 +
 arch/sparc/kernel/sun4v_tlb_miss.S      |  35 +++--
 arch/sparc/kernel/traps_64.c            |  15 +-
 arch/sparc/kernel/vio.c                 |  13 +-
 arch/sparc/kernel/viohs.c               |  18 ++-
 arch/sparc/kernel/vmlinux.lds.S         |  10 +-
 arch/sparc/lib/memset.S                 |  18 ++-
 arch/sparc/mm/fault_64.c                |   3 +
 arch/sparc/mm/init_64.c                 | 603 +++++++++++++++++++++++++++++++++++++++++++------------------------------------
 arch/sparc/mm/init_64.h                 |  18 ---
 arch/sparc/power/hibernate_asm.S        |   4 +-
 arch/sparc/prom/bootstr_64.c            |   5 +-
 arch/sparc/prom/p1275.c                 |   7 +-
 drivers/block/sunvdc.c                  | 167 +++++++++++++++++-----
 drivers/net/ethernet/sun/sunvnet.c      |   4 +-
 41 files changed, 1302 insertions(+), 798 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2014-10-15 18:45 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2014-10-15 18:45 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Please pull to get this sparc64 AES ctr mode bug fix.

Thanks!

The following changes since commit 2d65a9f48fcdf7866aab6457bc707ca233e0c791:

  Merge branch 'drm-next' of git://people.freedesktop.org/~airlied/linux (2014-10-14 09:39:08 +0200)

are available in the git repository at:


  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git master

for you to fetch changes up to f4da3628dc7c32a59d1fb7116bb042e6f436d611:

  sparc64: Fix FPU register corruption with AES crypto offload. (2014-10-14 19:37:58 -0700)

----------------------------------------------------------------
David S. Miller (1):
      sparc64: Fix FPU register corruption with AES crypto offload.

 arch/sparc/include/asm/visasm.h |  8 ++++++++
 arch/sparc/lib/NG4memcpy.S      | 14 +++++++++++++-
 2 files changed, 21 insertions(+), 1 deletion(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2014-10-15 18:45 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2014-10-15 18:45 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Please pull to get this sparc64 AES ctr mode bug fix.

Thanks!

The following changes since commit 2d65a9f48fcdf7866aab6457bc707ca233e0c791:

  Merge branch 'drm-next' of git://people.freedesktop.org/~airlied/linux (2014-10-14 09:39:08 +0200)

are available in the git repository at:


  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git master

for you to fetch changes up to f4da3628dc7c32a59d1fb7116bb042e6f436d611:

  sparc64: Fix FPU register corruption with AES crypto offload. (2014-10-14 19:37:58 -0700)

----------------------------------------------------------------
David S. Miller (1):
      sparc64: Fix FPU register corruption with AES crypto offload.

 arch/sparc/include/asm/visasm.h |  8 ++++++++
 arch/sparc/lib/NG4memcpy.S      | 14 +++++++++++++-
 2 files changed, 21 insertions(+), 1 deletion(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2014-10-19 17:26 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2014-10-19 17:26 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Here we have two bug fixes:

1) The current thread's fault_code is not setup properly upon entry to
   do_sparc64_fault() in some paths, leading to spurious SIGBUS.

2) Don't use a zero length array at the end of thread_info on sparc64,
   otherwise end_of_stack() isn't right.

Please pull, thanks!

The following changes since commit 52d589a01d4545ce1dc5c3892bb8c7b55edfe714:

  Merge branch 'for-linus' of git://git.infradead.org/users/vkoul/slave-dma (2014-10-18 18:11:04 -0700)

are available in the git repository at:


  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git master

for you to fetch changes up to e2653143d7d79a49f1a961aeae1d82612838b12c:

  sparc64: Do not define thread fpregs save area as zero-length array. (2014-10-18 23:12:33 -0400)

----------------------------------------------------------------
David S. Miller (2):
      sparc64: Fix corrupted thread fault code.
      sparc64: Do not define thread fpregs save area as zero-length array.

 arch/sparc/include/asm/thread_info_64.h | 3 ++-
 arch/sparc/kernel/dtlb_prot.S           | 6 +++---
 arch/sparc/kernel/tsb.S                 | 6 +++---
 3 files changed, 8 insertions(+), 7 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2014-10-19 17:26 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2014-10-19 17:26 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Here we have two bug fixes:

1) The current thread's fault_code is not setup properly upon entry to
   do_sparc64_fault() in some paths, leading to spurious SIGBUS.

2) Don't use a zero length array at the end of thread_info on sparc64,
   otherwise end_of_stack() isn't right.

Please pull, thanks!

The following changes since commit 52d589a01d4545ce1dc5c3892bb8c7b55edfe714:

  Merge branch 'for-linus' of git://git.infradead.org/users/vkoul/slave-dma (2014-10-18 18:11:04 -0700)

are available in the git repository at:


  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git master

for you to fetch changes up to e2653143d7d79a49f1a961aeae1d82612838b12c:

  sparc64: Do not define thread fpregs save area as zero-length array. (2014-10-18 23:12:33 -0400)

----------------------------------------------------------------
David S. Miller (2):
      sparc64: Fix corrupted thread fault code.
      sparc64: Do not define thread fpregs save area as zero-length array.

 arch/sparc/include/asm/thread_info_64.h | 3 ++-
 arch/sparc/kernel/dtlb_prot.S           | 6 +++---
 arch/sparc/kernel/tsb.S                 | 6 +++---
 3 files changed, 8 insertions(+), 7 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2014-10-24 17:32 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2014-10-24 17:32 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Please pull to get these two bug fixes:

1) Fix boots with gcc-4.9 compiled sparc64 kernels.

2) Add missing __get_user_pages_fast() on sparc64 to fix hangs
   on futexes used in transparent hugepage areas.

   It's really idiotic to have a weak symbolled fallback that just
   returns zero, and causes this kind of bug.  There should be no
   backup implementation and the link should fail if the architecture
   fails to provide __get_user_pages_fast() and supports transparent
   hugepages.

Thanks.

The following changes since commit 61ed53deb1c6a4386d8710dbbfcee8779c381931:

  Merge tag 'ntb-3.18' of git://github.com/jonmason/ntb (2014-10-19 12:58:22 -0700)

are available in the git repository at:


  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git master

for you to fetch changes up to 06090e8ed89ea2113a236befb41f71d51f100e60:

  sparc64: Implement __get_user_pages_fast(). (2014-10-24 09:59:02 -0700)

----------------------------------------------------------------
David S. Miller (2):
      sparc64: Fix register corruption in top-most kernel stack frame during boot.
      sparc64: Implement __get_user_pages_fast().

 arch/sparc/include/asm/oplib_64.h |  3 ++-
 arch/sparc/include/asm/setup.h    |  2 ++
 arch/sparc/kernel/entry.h         |  3 ---
 arch/sparc/kernel/head_64.S       | 40 ++++------------------------------------
 arch/sparc/kernel/hvtramp.S       |  1 -
 arch/sparc/kernel/setup_64.c      | 28 ++++++++++++++++++++--------
 arch/sparc/kernel/trampoline_64.S | 12 +++++++-----
 arch/sparc/mm/gup.c               | 30 ++++++++++++++++++++++++++++++
 arch/sparc/prom/cif.S             |  5 ++---
 arch/sparc/prom/init_64.c         |  6 +++---
 arch/sparc/prom/p1275.c           |  2 --
 11 files changed, 70 insertions(+), 62 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2014-10-24 17:32 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2014-10-24 17:32 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Please pull to get these two bug fixes:

1) Fix boots with gcc-4.9 compiled sparc64 kernels.

2) Add missing __get_user_pages_fast() on sparc64 to fix hangs
   on futexes used in transparent hugepage areas.

   It's really idiotic to have a weak symbolled fallback that just
   returns zero, and causes this kind of bug.  There should be no
   backup implementation and the link should fail if the architecture
   fails to provide __get_user_pages_fast() and supports transparent
   hugepages.

Thanks.

The following changes since commit 61ed53deb1c6a4386d8710dbbfcee8779c381931:

  Merge tag 'ntb-3.18' of git://github.com/jonmason/ntb (2014-10-19 12:58:22 -0700)

are available in the git repository at:


  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git master

for you to fetch changes up to 06090e8ed89ea2113a236befb41f71d51f100e60:

  sparc64: Implement __get_user_pages_fast(). (2014-10-24 09:59:02 -0700)

----------------------------------------------------------------
David S. Miller (2):
      sparc64: Fix register corruption in top-most kernel stack frame during boot.
      sparc64: Implement __get_user_pages_fast().

 arch/sparc/include/asm/oplib_64.h |  3 ++-
 arch/sparc/include/asm/setup.h    |  2 ++
 arch/sparc/kernel/entry.h         |  3 ---
 arch/sparc/kernel/head_64.S       | 40 ++++------------------------------------
 arch/sparc/kernel/hvtramp.S       |  1 -
 arch/sparc/kernel/setup_64.c      | 28 ++++++++++++++++++++--------
 arch/sparc/kernel/trampoline_64.S | 12 +++++++-----
 arch/sparc/mm/gup.c               | 30 ++++++++++++++++++++++++++++++
 arch/sparc/prom/cif.S             |  5 ++---
 arch/sparc/prom/init_64.c         |  6 +++---
 arch/sparc/prom/p1275.c           |  2 --
 11 files changed, 70 insertions(+), 62 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] Sparc
  2014-10-24 17:32 ` David Miller
@ 2014-10-24 19:47   ` Linus Torvalds
  -1 siblings, 0 replies; 548+ messages in thread
From: Linus Torvalds @ 2014-10-24 19:47 UTC (permalink / raw)
  To: David Miller; +Cc: Andrew Morton, sparclinux, Linux Kernel Mailing List

On Fri, Oct 24, 2014 at 10:32 AM, David Miller <davem@davemloft.net> wrote:
>
>    It's really idiotic to have a weak symbolled fallback that just
>    returns zero, and causes this kind of bug.  There should be no
>    backup implementation and the link should fail if the architecture
>    fails to provide __get_user_pages_fast() and supports transparent
>    hugepages.

Agreed. I think the weak fallback is for the "no hugepages support"
case, but that does sound very annoying and fragile.

                   Linus

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] Sparc
@ 2014-10-24 19:47   ` Linus Torvalds
  0 siblings, 0 replies; 548+ messages in thread
From: Linus Torvalds @ 2014-10-24 19:47 UTC (permalink / raw)
  To: David Miller; +Cc: Andrew Morton, sparclinux, Linux Kernel Mailing List

On Fri, Oct 24, 2014 at 10:32 AM, David Miller <davem@davemloft.net> wrote:
>
>    It's really idiotic to have a weak symbolled fallback that just
>    returns zero, and causes this kind of bug.  There should be no
>    backup implementation and the link should fail if the architecture
>    fails to provide __get_user_pages_fast() and supports transparent
>    hugepages.

Agreed. I think the weak fallback is for the "no hugepages support"
case, but that does sound very annoying and fragile.

                   Linus

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] Sparc
  2014-10-24 19:47   ` Linus Torvalds
@ 2014-10-27 21:09     ` Andrew Morton
  -1 siblings, 0 replies; 548+ messages in thread
From: Andrew Morton @ 2014-10-27 21:09 UTC (permalink / raw)
  To: Linus Torvalds
  Cc: David Miller, sparclinux, Linux Kernel Mailing List, Steve Capper

On Fri, 24 Oct 2014 12:47:48 -0700 Linus Torvalds <torvalds@linux-foundation.org> wrote:

> On Fri, Oct 24, 2014 at 10:32 AM, David Miller <davem@davemloft.net> wrote:
> >
> >    It's really idiotic to have a weak symbolled fallback that just
> >    returns zero, and causes this kind of bug.  There should be no
> >    backup implementation and the link should fail if the architecture
> >    fails to provide __get_user_pages_fast() and supports transparent
> >    hugepages.
> 
> Agreed. I think the weak fallback is for the "no hugepages support"
> case, but that does sound very annoying and fragile.
> 

Yup.  I'm thinking the get_user_pages_fast() and
__get_user_pages_fast() in mm/util.c should be made non-weak and moved
to mm/nommu.c.

With that change, MMU architctures will need to either define
CONFIG_HAVE_GENERIC_RCU_GUP or implement their own versions.

Perhaps sparc should be defining CONFIG_HAVE_GENERIC_RCU_GUP.

We really should switch x86 to the generic version - from a quick read
it looks like it will work without needing any changes.

Steve, thoughts?

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] Sparc
@ 2014-10-27 21:09     ` Andrew Morton
  0 siblings, 0 replies; 548+ messages in thread
From: Andrew Morton @ 2014-10-27 21:09 UTC (permalink / raw)
  To: Linus Torvalds
  Cc: David Miller, sparclinux, Linux Kernel Mailing List, Steve Capper

On Fri, 24 Oct 2014 12:47:48 -0700 Linus Torvalds <torvalds@linux-foundation.org> wrote:

> On Fri, Oct 24, 2014 at 10:32 AM, David Miller <davem@davemloft.net> wrote:
> >
> >    It's really idiotic to have a weak symbolled fallback that just
> >    returns zero, and causes this kind of bug.  There should be no
> >    backup implementation and the link should fail if the architecture
> >    fails to provide __get_user_pages_fast() and supports transparent
> >    hugepages.
> 
> Agreed. I think the weak fallback is for the "no hugepages support"
> case, but that does sound very annoying and fragile.
> 

Yup.  I'm thinking the get_user_pages_fast() and
__get_user_pages_fast() in mm/util.c should be made non-weak and moved
to mm/nommu.c.

With that change, MMU architctures will need to either define
CONFIG_HAVE_GENERIC_RCU_GUP or implement their own versions.

Perhaps sparc should be defining CONFIG_HAVE_GENERIC_RCU_GUP.

We really should switch x86 to the generic version - from a quick read
it looks like it will work without needing any changes.

Steve, thoughts?

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] Sparc
  2014-10-27 21:09     ` Andrew Morton
@ 2014-10-27 22:43       ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2014-10-27 22:43 UTC (permalink / raw)
  To: akpm; +Cc: torvalds, sparclinux, linux-kernel, steve.capper

From: Andrew Morton <akpm@linux-foundation.org>
Date: Mon, 27 Oct 2014 14:09:38 -0700

> Perhaps sparc should be defining CONFIG_HAVE_GENERIC_RCU_GUP.
> 
> We really should switch x86 to the generic version - from a quick read
> it looks like it will work without needing any changes.
> 
> Steve, thoughts?

We need to add the necessary hooks to the generic code so that x86
doesn't so specualtive gets and instead do direct increments,
otherwise it's a performance regression, and then sparc can make use
of that as well.

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] Sparc
@ 2014-10-27 22:43       ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2014-10-27 22:43 UTC (permalink / raw)
  To: akpm; +Cc: torvalds, sparclinux, linux-kernel, steve.capper

From: Andrew Morton <akpm@linux-foundation.org>
Date: Mon, 27 Oct 2014 14:09:38 -0700

> Perhaps sparc should be defining CONFIG_HAVE_GENERIC_RCU_GUP.
> 
> We really should switch x86 to the generic version - from a quick read
> it looks like it will work without needing any changes.
> 
> Steve, thoughts?

We need to add the necessary hooks to the generic code so that x86
doesn't so specualtive gets and instead do direct increments,
otherwise it's a performance regression, and then sparc can make use
of that as well.

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] Sparc
  2014-10-27 22:43       ` David Miller
  (?)
@ 2014-10-28 10:49       ` Steve Capper
  -1 siblings, 0 replies; 548+ messages in thread
From: Steve Capper @ 2014-10-28 10:49 UTC (permalink / raw)
  To: David Miller; +Cc: akpm, torvalds, sparclinux, linux-kernel

On Mon, Oct 27, 2014 at 06:43:27PM -0400, David Miller wrote:
> From: Andrew Morton <akpm@linux-foundation.org>
> Date: Mon, 27 Oct 2014 14:09:38 -0700
> 
> > Perhaps sparc should be defining CONFIG_HAVE_GENERIC_RCU_GUP.
> > 
> > We really should switch x86 to the generic version - from a quick read
> > it looks like it will work without needing any changes.
> > 
> > Steve, thoughts?
> 
> We need to add the necessary hooks to the generic code so that x86
> doesn't so specualtive gets and instead do direct increments,
> otherwise it's a performance regression, and then sparc can make use
> of that as well.

Agreed, I think x86 may require a helper to read 64-bit ptes (as it
can't do that atomically). Also I think there's some subtlety in the
way access_ok works that should be checked.

The overall structure of the code looks the same to me, and I think it
would be beneficial to extend then use the generic version for x86.

Cheers,
-- 
Steve

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2014-10-31 20:44 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2014-10-31 20:44 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Two changes:

1) It makes no sense to execute a VTOC partition table request
   in the Sun virtual block device driver and fail to load if it
   doesn't succeed because a) we don't use the result at all and
   b) it won't succeed if there is an EFI partition on the disk,
   for example.

   We read the partition table via the normal means in the block
   layer anyways, so this is really completely useless, so just
   remove it.

   From Dwight Engen.

2) Hook up new bpf system call.

Please pull, thanks a lot!

The following changes since commit f7e87a44ef60ad379e39b45437604141453bf0ec:

  Merge tag 'media/v3.18-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media (2014-10-27 15:05:40 -0700)

are available in the git repository at:


  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git master

for you to fetch changes up to 85b0c6e62c48bb9179fd5b3e954f362fb346cbd5:

  sunvdc: don't call VD_OP_GET_VTOC (2014-10-31 15:49:45 -0400)

----------------------------------------------------------------
David S. Miller (1):
      sparc: Hook up bpf system call.

Dwight Engen (1):
      sunvdc: don't call VD_OP_GET_VTOC

 arch/sparc/include/uapi/asm/unistd.h | 3 ++-
 arch/sparc/kernel/systbls_32.S       | 2 +-
 arch/sparc/kernel/systbls_64.S       | 4 ++--
 drivers/block/sunvdc.c               | 9 ---------
 4 files changed, 5 insertions(+), 13 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2014-10-31 20:44 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2014-10-31 20:44 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Two changes:

1) It makes no sense to execute a VTOC partition table request
   in the Sun virtual block device driver and fail to load if it
   doesn't succeed because a) we don't use the result at all and
   b) it won't succeed if there is an EFI partition on the disk,
   for example.

   We read the partition table via the normal means in the block
   layer anyways, so this is really completely useless, so just
   remove it.

   From Dwight Engen.

2) Hook up new bpf system call.

Please pull, thanks a lot!

The following changes since commit f7e87a44ef60ad379e39b45437604141453bf0ec:

  Merge tag 'media/v3.18-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media (2014-10-27 15:05:40 -0700)

are available in the git repository at:


  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git master

for you to fetch changes up to 85b0c6e62c48bb9179fd5b3e954f362fb346cbd5:

  sunvdc: don't call VD_OP_GET_VTOC (2014-10-31 15:49:45 -0400)

----------------------------------------------------------------
David S. Miller (1):
      sparc: Hook up bpf system call.

Dwight Engen (1):
      sunvdc: don't call VD_OP_GET_VTOC

 arch/sparc/include/uapi/asm/unistd.h | 3 ++-
 arch/sparc/kernel/systbls_32.S       | 2 +-
 arch/sparc/kernel/systbls_64.S       | 4 ++--
 drivers/block/sunvdc.c               | 9 ---------
 4 files changed, 5 insertions(+), 13 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2014-11-16 21:43 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2014-11-16 21:43 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Here we have:

1) Fix NULL oops in Schizo PCI controller error handler.

2) Fix race between xchg and other operations on 32-bit sparc, from
   Andreas Larsson.

3) swab*() helpers need a dummy memory input operand to show data flow
   on 64-bit sparc.

4) Fix RCU warnings due to missing irq_{enter,exit}() around
   generic_smp_call_function*() calls.

Please pull, thanks a lot!

The following changes since commit 9f935675d41aa51ebf929fc977cf530ff7d1a7fc:

  Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input (2014-10-31 19:51:11 -0700)

are available in the git repository at:


  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git master

for you to fetch changes up to 5a2b59d3993e8ca4f7788a48a23e5cb303f26954:

  sparc64: Fix constraints on swab helpers. (2014-11-16 13:19:32 -0800)

----------------------------------------------------------------
Andreas Larsson (1):
      sparc32: Implement xchg and atomic_xchg using ATOMIC_HASH locks

David S. Miller (3):
      sparc64: Fix crashes in schizo_pcierr_intr_other().
      sparc64: Do irq_{enter,exit}() around generic_smp_call_function*().
      sparc64: Fix constraints on swab helpers.

 arch/sparc/include/asm/atomic_32.h  |  2 +-
 arch/sparc/include/asm/cmpxchg_32.h | 12 ++----------
 arch/sparc/include/uapi/asm/swab.h  | 12 ++++++------
 arch/sparc/kernel/pci_schizo.c      |  6 +++---
 arch/sparc/kernel/smp_64.c          |  4 ++++
 arch/sparc/lib/atomic32.c           | 27 +++++++++++++++++++++++++++
 6 files changed, 43 insertions(+), 20 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2014-11-16 21:43 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2014-11-16 21:43 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Here we have:

1) Fix NULL oops in Schizo PCI controller error handler.

2) Fix race between xchg and other operations on 32-bit sparc, from
   Andreas Larsson.

3) swab*() helpers need a dummy memory input operand to show data flow
   on 64-bit sparc.

4) Fix RCU warnings due to missing irq_{enter,exit}() around
   generic_smp_call_function*() calls.

Please pull, thanks a lot!

The following changes since commit 9f935675d41aa51ebf929fc977cf530ff7d1a7fc:

  Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input (2014-10-31 19:51:11 -0700)

are available in the git repository at:


  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git master

for you to fetch changes up to 5a2b59d3993e8ca4f7788a48a23e5cb303f26954:

  sparc64: Fix constraints on swab helpers. (2014-11-16 13:19:32 -0800)

----------------------------------------------------------------
Andreas Larsson (1):
      sparc32: Implement xchg and atomic_xchg using ATOMIC_HASH locks

David S. Miller (3):
      sparc64: Fix crashes in schizo_pcierr_intr_other().
      sparc64: Do irq_{enter,exit}() around generic_smp_call_function*().
      sparc64: Fix constraints on swab helpers.

 arch/sparc/include/asm/atomic_32.h  |  2 +-
 arch/sparc/include/asm/cmpxchg_32.h | 12 ++----------
 arch/sparc/include/uapi/asm/swab.h  | 12 ++++++------
 arch/sparc/kernel/pci_schizo.c      |  6 +++---
 arch/sparc/kernel/smp_64.c          |  4 ++++
 arch/sparc/lib/atomic32.c           | 27 +++++++++++++++++++++++++++
 6 files changed, 43 insertions(+), 20 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2014-11-26 21:42 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2014-11-26 21:42 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Please pull to get this sparc fix to add dma_cache_sync(), even if a
nop it should be provided if dma_{alloc,free}_noncoherent() is
provided too, thanks!

The following changes since commit b914c5b2130239fd378d1a719ab3c53f0c782be9:

  Merge branch 'for-3.18' of git://linux-nfs.org/~bfields/linux (2014-11-25 19:05:41 -0800)

are available in the git repository at:


  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git master

for you to fetch changes up to 0d1d9092b536859a333ee96cff4df0ee24b55190:

  sparc: Add NOP dma_cache_sync() implementation. (2014-11-26 13:36:41 -0800)

----------------------------------------------------------------
David S. Miller (1):
      sparc: Add NOP dma_cache_sync() implementation.

 arch/sparc/include/asm/dma-mapping.h | 8 ++++++++
 1 file changed, 8 insertions(+)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2014-11-26 21:42 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2014-11-26 21:42 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Please pull to get this sparc fix to add dma_cache_sync(), even if a
nop it should be provided if dma_{alloc,free}_noncoherent() is
provided too, thanks!

The following changes since commit b914c5b2130239fd378d1a719ab3c53f0c782be9:

  Merge branch 'for-3.18' of git://linux-nfs.org/~bfields/linux (2014-11-25 19:05:41 -0800)

are available in the git repository at:


  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git master

for you to fetch changes up to 0d1d9092b536859a333ee96cff4df0ee24b55190:

  sparc: Add NOP dma_cache_sync() implementation. (2014-11-26 13:36:41 -0800)

----------------------------------------------------------------
David S. Miller (1):
      sparc: Add NOP dma_cache_sync() implementation.

 arch/sparc/include/asm/dma-mapping.h | 8 ++++++++
 1 file changed, 8 insertions(+)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2014-12-12 20:58 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2014-12-12 20:58 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Not a lot of stuff this time around, mostly bug fixing:

1) Fix alignment of 32-bit crosscall datastructure on Leon, from
   Andreas Larsson.

2) Several fixes to the virtual disk driver on sparc64 by Dwight
   Engen, including handling resets of the service domain properly.

Please pull, thanks a lot!

The following changes since commit 70e71ca0af244f48a5dcf56dc435243792e3a495:

  Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next (2014-12-11 14:27:06 -0800)

are available in the git repository at:


  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git master

for you to fetch changes up to 76e74bbe0a38c6720217425ed64dbb448c643b9d:

  sunvdc: reconnect ldc after vds service domain restarts (2014-12-11 18:52:45 -0800)

----------------------------------------------------------------
Andreas Larsson (1):
      sparc32, leon: Align ccall_info to prevent unaligned traps on crosscall

Dwight Engen (4):
      sunvdc: fix module unload/reload
      vio: create routines for inc,dec vio dring indexes
      sparc/ldc: create separate ldc_unbind from ldc_free
      sunvdc: reconnect ldc after vds service domain restarts

 arch/sparc/include/asm/ldc.h       |   1 +
 arch/sparc/include/asm/vio.h       |  15 +++++
 arch/sparc/kernel/ldc.c            |  12 +++-
 arch/sparc/kernel/leon_smp.c       |   2 +-
 drivers/block/sunvdc.c             | 222 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------
 drivers/net/ethernet/sun/sunvnet.c |  30 +++-------
 6 files changed, 230 insertions(+), 52 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2014-12-12 20:58 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2014-12-12 20:58 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Not a lot of stuff this time around, mostly bug fixing:

1) Fix alignment of 32-bit crosscall datastructure on Leon, from
   Andreas Larsson.

2) Several fixes to the virtual disk driver on sparc64 by Dwight
   Engen, including handling resets of the service domain properly.

Please pull, thanks a lot!

The following changes since commit 70e71ca0af244f48a5dcf56dc435243792e3a495:

  Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next (2014-12-11 14:27:06 -0800)

are available in the git repository at:


  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git master

for you to fetch changes up to 76e74bbe0a38c6720217425ed64dbb448c643b9d:

  sunvdc: reconnect ldc after vds service domain restarts (2014-12-11 18:52:45 -0800)

----------------------------------------------------------------
Andreas Larsson (1):
      sparc32, leon: Align ccall_info to prevent unaligned traps on crosscall

Dwight Engen (4):
      sunvdc: fix module unload/reload
      vio: create routines for inc,dec vio dring indexes
      sparc/ldc: create separate ldc_unbind from ldc_free
      sunvdc: reconnect ldc after vds service domain restarts

 arch/sparc/include/asm/ldc.h       |   1 +
 arch/sparc/include/asm/vio.h       |  15 +++++
 arch/sparc/kernel/ldc.c            |  12 +++-
 arch/sparc/kernel/leon_smp.c       |   2 +-
 drivers/block/sunvdc.c             | 222 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------
 drivers/net/ethernet/sun/sunvnet.c |  30 +++-------
 6 files changed, 230 insertions(+), 52 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2014-12-18 21:39 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2014-12-18 21:39 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Please pull to get this sparc32 locking bug fix from Andreas Larsson.

Thanks!

The following changes since commit 44e8967d591686463e84a88b46b03beba3ab49fb:

  Ceph: remove left-over reject file (2014-12-17 18:47:01 -0800)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git master

for you to fetch changes up to 66d0f7ec9f1038452178b1993fc07fd96d30fd38:

  sparc32: destroy_context() and switch_mm() needs to disable interrupts. (2014-12-18 12:47:54 -0500)

----------------------------------------------------------------
Andreas Larsson (1):
      sparc32: destroy_context() and switch_mm() needs to disable interrupts.

 arch/sparc/mm/srmmu.c | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2014-12-18 21:39 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2014-12-18 21:39 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Please pull to get this sparc32 locking bug fix from Andreas Larsson.

Thanks!

The following changes since commit 44e8967d591686463e84a88b46b03beba3ab49fb:

  Ceph: remove left-over reject file (2014-12-17 18:47:01 -0800)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git master

for you to fetch changes up to 66d0f7ec9f1038452178b1993fc07fd96d30fd38:

  sparc32: destroy_context() and switch_mm() needs to disable interrupts. (2014-12-18 12:47:54 -0500)

----------------------------------------------------------------
Andreas Larsson (1):
      sparc32: destroy_context() and switch_mm() needs to disable interrupts.

 arch/sparc/mm/srmmu.c | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2015-03-19  4:59 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2015-03-19  4:59 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


1) Some command cases of semtimedop() not even handled due to
   miscoded comparison on sparc64.  From Rob Gardner.

2) Due to two bugs, /proc/kcore wan't working properly on sparc.

3) Make sure fatal traps stop all running cpus, from Dave
   Kleikamp.

Please pull, thanks!

The following changes since commit a38ecbbd0be025a6ecbbfd22d2575a5b46317117:

  Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip (2015-03-01 12:22:44 -0800)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git 

for you to fetch changes up to 3c08158e0ef5d6a2d4ae21d9eda218c468bc774f:

  sparc: Fix /proc/kcore (2015-03-18 19:15:28 -0700)

----------------------------------------------------------------
Dave Kleikamp (1):
      sparc64: fatal trap should stop all cpus

David S. Miller (1):
      sparc: Fix /proc/kcore

Ricardo Ribalda (1):
      sparc: io_64.h: Replace io function-link macros

Rickard Strandqvist (2):
      arch: sparc: kernel: traps_64.c: Remove some unused functions
      arch: sparc: kernel: starfire.c: Remove unused function

Rob Gardner (1):
      sparc: semtimedop() unreachable due to comparison error

 arch/sparc/Kconfig                |  3 +++
 arch/sparc/include/asm/io_64.h    | 20 ++++++++++----------
 arch/sparc/include/asm/starfire.h |  1 -
 arch/sparc/kernel/entry.h         |  4 ----
 arch/sparc/kernel/smp_64.c        | 27 ++++++++++++++++++++++++---
 arch/sparc/kernel/starfire.c      |  5 -----
 arch/sparc/kernel/sys_sparc_64.c  |  2 +-
 arch/sparc/kernel/traps_64.c      | 30 ++----------------------------
 arch/sparc/mm/init_64.c           |  2 +-
 9 files changed, 41 insertions(+), 53 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2015-03-19  4:59 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2015-03-19  4:59 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


1) Some command cases of semtimedop() not even handled due to
   miscoded comparison on sparc64.  From Rob Gardner.

2) Due to two bugs, /proc/kcore wan't working properly on sparc.

3) Make sure fatal traps stop all running cpus, from Dave
   Kleikamp.

Please pull, thanks!

The following changes since commit a38ecbbd0be025a6ecbbfd22d2575a5b46317117:

  Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip (2015-03-01 12:22:44 -0800)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git 

for you to fetch changes up to 3c08158e0ef5d6a2d4ae21d9eda218c468bc774f:

  sparc: Fix /proc/kcore (2015-03-18 19:15:28 -0700)

----------------------------------------------------------------
Dave Kleikamp (1):
      sparc64: fatal trap should stop all cpus

David S. Miller (1):
      sparc: Fix /proc/kcore

Ricardo Ribalda (1):
      sparc: io_64.h: Replace io function-link macros

Rickard Strandqvist (2):
      arch: sparc: kernel: traps_64.c: Remove some unused functions
      arch: sparc: kernel: starfire.c: Remove unused function

Rob Gardner (1):
      sparc: semtimedop() unreachable due to comparison error

 arch/sparc/Kconfig                |  3 +++
 arch/sparc/include/asm/io_64.h    | 20 ++++++++++----------
 arch/sparc/include/asm/starfire.h |  1 -
 arch/sparc/kernel/entry.h         |  4 ----
 arch/sparc/kernel/smp_64.c        | 27 ++++++++++++++++++++++++---
 arch/sparc/kernel/starfire.c      |  5 -----
 arch/sparc/kernel/sys_sparc_64.c  |  2 +-
 arch/sparc/kernel/traps_64.c      | 30 ++----------------------------
 arch/sparc/mm/init_64.c           |  2 +-
 9 files changed, 41 insertions(+), 53 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2015-03-23 16:55 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2015-03-23 16:55 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Some perf bug fixes from David Ahern, and the fix for that nasty
memmove() bug.

Please pull, thanks a lot!

The following changes since commit b314acaccd7e0d55314d96be4a33b5f50d0b3344:

  Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input (2015-03-19 16:43:10 -0700)

are available in the git repository at:


  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git master

for you to fetch changes up to 2077cef4d5c29cf886192ec32066f783d6a80db8:

  sparc64: Fix several bugs in memmove(). (2015-03-23 09:22:10 -0700)

----------------------------------------------------------------
David Ahern (4):
      sparc: perf: Remove redundant perf_pmu_{en|dis}able calls
      sparc: perf: Make counting mode actually work
      sparc: perf: Add support M7 processor
      sparc: Touch NMI watchdog when walking cpus and calling printk

David S. Miller (1):
      sparc64: Fix several bugs in memmove().

 arch/sparc/include/asm/hypervisor.h | 12 ++++++++++++
 arch/sparc/kernel/hvapi.c           |  1 +
 arch/sparc/kernel/hvcalls.S         | 16 ++++++++++++++++
 arch/sparc/kernel/pcr.c             | 33 +++++++++++++++++++++++++++++++++
 arch/sparc/kernel/perf_event.c      | 55 +++++++++++++++++++++++++++++++++++++++++++------------
 arch/sparc/kernel/process_64.c      |  4 ++++
 arch/sparc/lib/memmove.S            | 35 ++++++++++++++++++++++++++++++++---
 7 files changed, 141 insertions(+), 15 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2015-03-23 16:55 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2015-03-23 16:55 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Some perf bug fixes from David Ahern, and the fix for that nasty
memmove() bug.

Please pull, thanks a lot!

The following changes since commit b314acaccd7e0d55314d96be4a33b5f50d0b3344:

  Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input (2015-03-19 16:43:10 -0700)

are available in the git repository at:


  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git master

for you to fetch changes up to 2077cef4d5c29cf886192ec32066f783d6a80db8:

  sparc64: Fix several bugs in memmove(). (2015-03-23 09:22:10 -0700)

----------------------------------------------------------------
David Ahern (4):
      sparc: perf: Remove redundant perf_pmu_{en|dis}able calls
      sparc: perf: Make counting mode actually work
      sparc: perf: Add support M7 processor
      sparc: Touch NMI watchdog when walking cpus and calling printk

David S. Miller (1):
      sparc64: Fix several bugs in memmove().

 arch/sparc/include/asm/hypervisor.h | 12 ++++++++++++
 arch/sparc/kernel/hvapi.c           |  1 +
 arch/sparc/kernel/hvcalls.S         | 16 ++++++++++++++++
 arch/sparc/kernel/pcr.c             | 33 +++++++++++++++++++++++++++++++++
 arch/sparc/kernel/perf_event.c      | 55 +++++++++++++++++++++++++++++++++++++++++++------------
 arch/sparc/kernel/process_64.c      |  4 ++++
 arch/sparc/lib/memmove.S            | 35 ++++++++++++++++++++++++++++++++---
 7 files changed, 141 insertions(+), 15 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] Sparc
  2015-03-23 16:55 ` David Miller
@ 2015-03-23 17:05   ` Linus Torvalds
  -1 siblings, 0 replies; 548+ messages in thread
From: Linus Torvalds @ 2015-03-23 17:05 UTC (permalink / raw)
  To: David Miller; +Cc: Andrew Morton, sparclinux, Linux Kernel Mailing List

On Mon, Mar 23, 2015 at 9:55 AM, David Miller <davem@davemloft.net> wrote:
>
> Some perf bug fixes from David Ahern, and the fix for that nasty
> memmove() bug.

That doesn't seem to be marked for stable? Or do you do the same thing
as for networking, and just collect stable patches manually?

Pulled,

                   Linus

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] Sparc
@ 2015-03-23 17:05   ` Linus Torvalds
  0 siblings, 0 replies; 548+ messages in thread
From: Linus Torvalds @ 2015-03-23 17:05 UTC (permalink / raw)
  To: David Miller; +Cc: Andrew Morton, sparclinux, Linux Kernel Mailing List

On Mon, Mar 23, 2015 at 9:55 AM, David Miller <davem@davemloft.net> wrote:
>
> Some perf bug fixes from David Ahern, and the fix for that nasty
> memmove() bug.

That doesn't seem to be marked for stable? Or do you do the same thing
as for networking, and just collect stable patches manually?

Pulled,

                   Linus

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] Sparc
  2015-03-23 17:05   ` Linus Torvalds
@ 2015-03-23 17:12     ` Linus Torvalds
  -1 siblings, 0 replies; 548+ messages in thread
From: Linus Torvalds @ 2015-03-23 17:12 UTC (permalink / raw)
  To: David Miller; +Cc: Andrew Morton, sparclinux, Linux Kernel Mailing List

On Mon, Mar 23, 2015 at 10:05 AM, Linus Torvalds
<torvalds@linux-foundation.org> wrote:
> On Mon, Mar 23, 2015 at 9:55 AM, David Miller <davem@davemloft.net> wrote:
>>
>> Some perf bug fixes from David Ahern, and the fix for that nasty
>> memmove() bug.
>
> That doesn't seem to be marked for stable? Or do you do the same thing
> as for networking, and just collect stable patches manually?

Side note: the memmove commit message is a bit misleading. The old
code handled zero-length calls fine, even if it wasn't explicit: it
always called memmove() for that case.

The condition "dst <= src || src + len <= dst" ends up being always
true when len is zero (because it obviously ends up being "dst <= src
|| src <= dst").

So there was just one bug - the 64-byte overlap with the cacheline
establish for the destination. Even that cacheline establish would
have been ok if all the loads for the 64-byte block had been done
up-front.

Oh well. I'm actually somewhat surprised this didn't hit anything
else. Doesn't networking also end up doing overlapping memmove() on
the skb data occasionally?

                       Linus

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] Sparc
@ 2015-03-23 17:12     ` Linus Torvalds
  0 siblings, 0 replies; 548+ messages in thread
From: Linus Torvalds @ 2015-03-23 17:12 UTC (permalink / raw)
  To: David Miller; +Cc: Andrew Morton, sparclinux, Linux Kernel Mailing List

On Mon, Mar 23, 2015 at 10:05 AM, Linus Torvalds
<torvalds@linux-foundation.org> wrote:
> On Mon, Mar 23, 2015 at 9:55 AM, David Miller <davem@davemloft.net> wrote:
>>
>> Some perf bug fixes from David Ahern, and the fix for that nasty
>> memmove() bug.
>
> That doesn't seem to be marked for stable? Or do you do the same thing
> as for networking, and just collect stable patches manually?

Side note: the memmove commit message is a bit misleading. The old
code handled zero-length calls fine, even if it wasn't explicit: it
always called memmove() for that case.

The condition "dst <= src || src + len <= dst" ends up being always
true when len is zero (because it obviously ends up being "dst <= src
|| src <= dst").

So there was just one bug - the 64-byte overlap with the cacheline
establish for the destination. Even that cacheline establish would
have been ok if all the loads for the 64-byte block had been done
up-front.

Oh well. I'm actually somewhat surprised this didn't hit anything
else. Doesn't networking also end up doing overlapping memmove() on
the skb data occasionally?

                       Linus

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] Sparc
  2015-03-23 17:05   ` Linus Torvalds
@ 2015-03-23 19:10     ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2015-03-23 19:10 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel

From: Linus Torvalds <torvalds@linux-foundation.org>
Date: Mon, 23 Mar 2015 10:05:10 -0700

> On Mon, Mar 23, 2015 at 9:55 AM, David Miller <davem@davemloft.net> wrote:
>>
>> Some perf bug fixes from David Ahern, and the fix for that nasty
>> memmove() bug.
> 
> That doesn't seem to be marked for stable? Or do you do the same thing
> as for networking, and just collect stable patches manually?

Yes, I do sparc stuff manually and queue it up at:

	http://patchwork.ozlabs.org/bundle/davem/stable/?state=*

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] Sparc
@ 2015-03-23 19:10     ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2015-03-23 19:10 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel

From: Linus Torvalds <torvalds@linux-foundation.org>
Date: Mon, 23 Mar 2015 10:05:10 -0700

> On Mon, Mar 23, 2015 at 9:55 AM, David Miller <davem@davemloft.net> wrote:
>>
>> Some perf bug fixes from David Ahern, and the fix for that nasty
>> memmove() bug.
> 
> That doesn't seem to be marked for stable? Or do you do the same thing
> as for networking, and just collect stable patches manually?

Yes, I do sparc stuff manually and queue it up at:

	http://patchwork.ozlabs.org/bundle/davem/stable/?state=*

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] Sparc
  2015-03-23 17:12     ` Linus Torvalds
@ 2015-03-23 19:14       ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2015-03-23 19:14 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel

From: Linus Torvalds <torvalds@linux-foundation.org>
Date: Mon, 23 Mar 2015 10:12:30 -0700

> Oh well. I'm actually somewhat surprised this didn't hit anything
> else. Doesn't networking also end up doing overlapping memmove() on
> the skb data occasionally?

The only case I can think of is when {en,de}capsulating VLANs in
software.

But those are really small header sized copies, and would never
trigger the unrolled loop which requires len >= 128.

A quick grep shows something similar for wireless WEP/WPA, but not
only are these small copies too but I don't have any wireless on
any of my sparc boxes :-)

It really is just SLAB/SLUB with large NR_CPU configurations.

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] Sparc
@ 2015-03-23 19:14       ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2015-03-23 19:14 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel

From: Linus Torvalds <torvalds@linux-foundation.org>
Date: Mon, 23 Mar 2015 10:12:30 -0700

> Oh well. I'm actually somewhat surprised this didn't hit anything
> else. Doesn't networking also end up doing overlapping memmove() on
> the skb data occasionally?

The only case I can think of is when {en,de}capsulating VLANs in
software.

But those are really small header sized copies, and would never
trigger the unrolled loop which requires len >= 128.

A quick grep shows something similar for wireless WEP/WPA, but not
only are these small copies too but I don't have any wireless on
any of my sparc boxes :-)

It really is just SLAB/SLUB with large NR_CPU configurations.

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2015-04-17 20:14 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2015-04-17 20:14 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


The PowerPC folks have a really nice scalable IOMMU pool allocator
that we wanted to make use of for sparc.   So here we have a series
that abstracts out their code into a common layer that anyone can
make use of.

Sparc is converted, and the PowerPC folks have reviewed and ACK'd
this series and plan to convert PowerPC over as well.

Please pull, thanks a lot!

The following changes since commit 497a5df7bf6ffd136ae21c49d1a01292930d7ca2:

  Merge tag 'stable/for-linus-4.1-rc0-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip (2015-04-16 14:01:03 -0500)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git 

for you to fetch changes up to cb97201cb060d13da0b87fd1bf68208c7389c5b1:

  iommu-common: Fix PARISC compile-time warnings (2015-04-17 15:24:36 -0400)

----------------------------------------------------------------
David S. Miller (1):
      Merge branch 'generic-iommu-allocator'

Sowmini Varadhan (4):
      sparc: Break up monolithic iommu table/lock into finer graularity pools and lock
      sparc: Make sparc64 use scalable lib/iommu-common.c functions
      sparc: Make LDC use common iommu poll management functions
      iommu-common: Fix PARISC compile-time warnings

 arch/sparc/include/asm/iommu_64.h |   7 ++--
 arch/sparc/kernel/iommu.c         | 188 ++++++++++++++++++++++++++++++++---------------------------------------------------------------
 arch/sparc/kernel/iommu_common.h  |   8 -----
 arch/sparc/kernel/ldc.c           | 185 +++++++++++++++++++++++++++++++++++++++++++++++++---------------------------------------------
 arch/sparc/kernel/pci_sun4v.c     | 193 ++++++++++++++++++++++++++++++++++++++++++++++++--------------------------------------------------
 include/linux/iommu-common.h      |  55 ++++++++++++++++++++++++++++
 lib/Makefile                      |   2 +-
 lib/iommu-common.c                | 224 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 8 files changed, 537 insertions(+), 325 deletions(-)
 create mode 100644 include/linux/iommu-common.h
 create mode 100644 lib/iommu-common.c

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2015-04-17 20:14 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2015-04-17 20:14 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


The PowerPC folks have a really nice scalable IOMMU pool allocator
that we wanted to make use of for sparc.   So here we have a series
that abstracts out their code into a common layer that anyone can
make use of.

Sparc is converted, and the PowerPC folks have reviewed and ACK'd
this series and plan to convert PowerPC over as well.

Please pull, thanks a lot!

The following changes since commit 497a5df7bf6ffd136ae21c49d1a01292930d7ca2:

  Merge tag 'stable/for-linus-4.1-rc0-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip (2015-04-16 14:01:03 -0500)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git 

for you to fetch changes up to cb97201cb060d13da0b87fd1bf68208c7389c5b1:

  iommu-common: Fix PARISC compile-time warnings (2015-04-17 15:24:36 -0400)

----------------------------------------------------------------
David S. Miller (1):
      Merge branch 'generic-iommu-allocator'

Sowmini Varadhan (4):
      sparc: Break up monolithic iommu table/lock into finer graularity pools and lock
      sparc: Make sparc64 use scalable lib/iommu-common.c functions
      sparc: Make LDC use common iommu poll management functions
      iommu-common: Fix PARISC compile-time warnings

 arch/sparc/include/asm/iommu_64.h |   7 ++--
 arch/sparc/kernel/iommu.c         | 188 ++++++++++++++++++++++++++++++++---------------------------------------------------------------
 arch/sparc/kernel/iommu_common.h  |   8 -----
 arch/sparc/kernel/ldc.c           | 185 +++++++++++++++++++++++++++++++++++++++++++++++++---------------------------------------------
 arch/sparc/kernel/pci_sun4v.c     | 193 ++++++++++++++++++++++++++++++++++++++++++++++++--------------------------------------------------
 include/linux/iommu-common.h      |  55 ++++++++++++++++++++++++++++
 lib/Makefile                      |   2 +-
 lib/iommu-common.c                | 224 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 8 files changed, 537 insertions(+), 325 deletions(-)
 create mode 100644 include/linux/iommu-common.h
 create mode 100644 lib/iommu-common.c

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2015-04-18 21:58 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2015-04-18 21:58 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Unfortunately, I brown paper bagged the generic iommu pool
allocator by applying the wrong revision of the patch series.

This reverts the bad one, and puts the right one in.

Please pull, thanks a lot!

The following changes since commit 04b7fe6a4a231871ef681bc95e08fe66992f7b1f:

  Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/ide (2015-04-17 16:36:59 -0400)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git 

for you to fetch changes up to ccb301862aa51ea7c10c10b440f3e8bbeac5b720:

  Merge branch 'iommu-generic-allocator' (2015-04-18 12:35:09 -0700)

----------------------------------------------------------------
David S. Miller (2):
      sparc: Revert generic IOMMU allocator.
      Merge branch 'iommu-generic-allocator'

Sowmini Varadhan (4):
      Break up monolithic iommu table/lock into finer graularity pools and lock
      sparc: Make sparc64 use scalable lib/iommu-common.c functions
      sparc: Make LDC use common iommu poll management functions
      iommu-common: Fix PARISC compile-time warnings

 arch/sparc/include/asm/iommu_64.h |   2 +-
 arch/sparc/kernel/iommu.c         |  78 +++++++++++-------------------
 arch/sparc/kernel/ldc.c           |  60 ++++++------------------
 arch/sparc/kernel/pci_sun4v.c     |  64 ++++++++++---------------
 include/linux/iommu-common.h      |  38 +++++++--------
 lib/iommu-common.c                | 190 ++++++++++++++++++++++++++++++++++++++++++++++----------------------------
 6 files changed, 202 insertions(+), 230 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2015-04-18 21:58 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2015-04-18 21:58 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Unfortunately, I brown paper bagged the generic iommu pool
allocator by applying the wrong revision of the patch series.

This reverts the bad one, and puts the right one in.

Please pull, thanks a lot!

The following changes since commit 04b7fe6a4a231871ef681bc95e08fe66992f7b1f:

  Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/ide (2015-04-17 16:36:59 -0400)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git 

for you to fetch changes up to ccb301862aa51ea7c10c10b440f3e8bbeac5b720:

  Merge branch 'iommu-generic-allocator' (2015-04-18 12:35:09 -0700)

----------------------------------------------------------------
David S. Miller (2):
      sparc: Revert generic IOMMU allocator.
      Merge branch 'iommu-generic-allocator'

Sowmini Varadhan (4):
      Break up monolithic iommu table/lock into finer graularity pools and lock
      sparc: Make sparc64 use scalable lib/iommu-common.c functions
      sparc: Make LDC use common iommu poll management functions
      iommu-common: Fix PARISC compile-time warnings

 arch/sparc/include/asm/iommu_64.h |   2 +-
 arch/sparc/kernel/iommu.c         |  78 +++++++++++-------------------
 arch/sparc/kernel/ldc.c           |  60 ++++++------------------
 arch/sparc/kernel/pci_sun4v.c     |  64 ++++++++++---------------
 include/linux/iommu-common.h      |  38 +++++++--------
 lib/iommu-common.c                | 190 ++++++++++++++++++++++++++++++++++++++++++++++----------------------------
 6 files changed, 202 insertions(+), 230 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2015-04-22  2:58 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2015-04-22  2:58 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


1) ldc_alloc_exp_dring() can be called from softints, so use GFP_ATOMIC.
   From Sowmini Varadhan.

2) Some minor warning/build fixups for the new iommu-common code on
   certain archs and with certain debug options enabled.  Also from
   Sowmini Varadhan.

Please pull, thanks!

The following changes since commit 64fb1d0e975e92e012802d371e417266d6531676:

  Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc (2015-04-18 18:01:29 -0400)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git 

for you to fetch changes up to 0edfad5959df7379c9e554fbe8ba264ae232d321:

  sparc: Use GFP_ATOMIC in ldc_alloc_exp_dring() as it can be called in softirq context (2015-04-21 13:17:06 -0700)

----------------------------------------------------------------
David S. Miller (2):
      Merge branch 'iommu-common-fixes'
      sparc64: Use M7 PMC write on all chips T4 and onward.

Sowmini Varadhan (3):
      iommu-common: fix x86_64 compiler warnings
      iommu-common: rename iommu_pool_hash to iommu_hash_common
      sparc: Use GFP_ATOMIC in ldc_alloc_exp_dring() as it can be called in softirq context

 arch/sparc/kernel/ldc.c        |  2 +-
 arch/sparc/kernel/perf_event.c | 35 +++--------------------------------
 lib/iommu-common.c             | 20 ++++++++++----------
 3 files changed, 14 insertions(+), 43 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2015-04-22  2:58 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2015-04-22  2:58 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


1) ldc_alloc_exp_dring() can be called from softints, so use GFP_ATOMIC.
   From Sowmini Varadhan.

2) Some minor warning/build fixups for the new iommu-common code on
   certain archs and with certain debug options enabled.  Also from
   Sowmini Varadhan.

Please pull, thanks!

The following changes since commit 64fb1d0e975e92e012802d371e417266d6531676:

  Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc (2015-04-18 18:01:29 -0400)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git 

for you to fetch changes up to 0edfad5959df7379c9e554fbe8ba264ae232d321:

  sparc: Use GFP_ATOMIC in ldc_alloc_exp_dring() as it can be called in softirq context (2015-04-21 13:17:06 -0700)

----------------------------------------------------------------
David S. Miller (2):
      Merge branch 'iommu-common-fixes'
      sparc64: Use M7 PMC write on all chips T4 and onward.

Sowmini Varadhan (3):
      iommu-common: fix x86_64 compiler warnings
      iommu-common: rename iommu_pool_hash to iommu_hash_common
      sparc: Use GFP_ATOMIC in ldc_alloc_exp_dring() as it can be called in softirq context

 arch/sparc/kernel/ldc.c        |  2 +-
 arch/sparc/kernel/perf_event.c | 35 +++--------------------------------
 lib/iommu-common.c             | 20 ++++++++++----------
 3 files changed, 14 insertions(+), 43 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2015-06-02  0:17 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2015-06-02  0:17 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


1) Setup the core/threads/sockets bitmaps correctly so that 'lscpus' and friends
   operate properly.  Frtom Chris Hyser.

2) The bit that normally means "Cached Virtually" on sun4v systems,
   actually changes meaning in M7 and later chips.  Fix from Khalid
   Aziz.

3) One some PCI-E systems we need to probe different OF properties
   to fill in the PCI slot information properly, from Eric Snowberg.

4) Kill an extraneous memset after kzalloc(), from Christophe Jaillet.

Please pull, thanks a lot!

The following changes since commit a62d016cece2fce1d5e4eedf36b17f03a7a5c78e:

  Merge tag 'for-linus-20150422' of git://git.infradead.org/linux-mtd (2015-04-22 12:00:44 -0700)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc 

for you to fetch changes up to 494e5b6faeda1d1e830a13e10b3c7bc323f35d97:

  sparc: Resolve conflict between sparc v9 and M7 on usage of bit 9 of TTE (2015-05-31 22:15:01 -0700)

----------------------------------------------------------------
Christophe Jaillet (1):
      sparc: kernel: GRPCI2: Remove a useless memset

Eric Snowberg (1):
      sparc64: pci slots information is not populated in sysfs

Khalid Aziz (1):
      sparc: Resolve conflict between sparc v9 and M7 on usage of bit 9 of TTE

chris hyser (1):
      sparc64: Setup sysfs to mark LDOM sockets, cores and threads correctly

 arch/sparc/include/asm/cpudata_64.h  |   3 +-
 arch/sparc/include/asm/pgtable_64.h  |  22 +++++-
 arch/sparc/include/asm/topology_64.h |   3 +-
 arch/sparc/include/asm/trap_block.h  |   2 +
 arch/sparc/kernel/entry.h            |   2 +
 arch/sparc/kernel/leon_pci_grpci2.c  |   1 -
 arch/sparc/kernel/mdesc.c            | 136 ++++++++++++++++++++++++++++-------
 arch/sparc/kernel/pci.c              |  59 ++++++++++++---
 arch/sparc/kernel/setup_64.c         |  21 ++++++
 arch/sparc/kernel/smp_64.c           |  13 ++++
 arch/sparc/kernel/vmlinux.lds.S      |   5 ++
 arch/sparc/mm/init_64.c              |  74 +++++++++++++------
 12 files changed, 282 insertions(+), 59 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2015-06-02  0:17 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2015-06-02  0:17 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


1) Setup the core/threads/sockets bitmaps correctly so that 'lscpus' and friends
   operate properly.  Frtom Chris Hyser.

2) The bit that normally means "Cached Virtually" on sun4v systems,
   actually changes meaning in M7 and later chips.  Fix from Khalid
   Aziz.

3) One some PCI-E systems we need to probe different OF properties
   to fill in the PCI slot information properly, from Eric Snowberg.

4) Kill an extraneous memset after kzalloc(), from Christophe Jaillet.

Please pull, thanks a lot!

The following changes since commit a62d016cece2fce1d5e4eedf36b17f03a7a5c78e:

  Merge tag 'for-linus-20150422' of git://git.infradead.org/linux-mtd (2015-04-22 12:00:44 -0700)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc 

for you to fetch changes up to 494e5b6faeda1d1e830a13e10b3c7bc323f35d97:

  sparc: Resolve conflict between sparc v9 and M7 on usage of bit 9 of TTE (2015-05-31 22:15:01 -0700)

----------------------------------------------------------------
Christophe Jaillet (1):
      sparc: kernel: GRPCI2: Remove a useless memset

Eric Snowberg (1):
      sparc64: pci slots information is not populated in sysfs

Khalid Aziz (1):
      sparc: Resolve conflict between sparc v9 and M7 on usage of bit 9 of TTE

chris hyser (1):
      sparc64: Setup sysfs to mark LDOM sockets, cores and threads correctly

 arch/sparc/include/asm/cpudata_64.h  |   3 +-
 arch/sparc/include/asm/pgtable_64.h  |  22 +++++-
 arch/sparc/include/asm/topology_64.h |   3 +-
 arch/sparc/include/asm/trap_block.h  |   2 +
 arch/sparc/kernel/entry.h            |   2 +
 arch/sparc/kernel/leon_pci_grpci2.c  |   1 -
 arch/sparc/kernel/mdesc.c            | 136 ++++++++++++++++++++++++++++-------
 arch/sparc/kernel/pci.c              |  59 ++++++++++++---
 arch/sparc/kernel/setup_64.c         |  21 ++++++
 arch/sparc/kernel/smp_64.c           |  13 ++++
 arch/sparc/kernel/vmlinux.lds.S      |   5 ++
 arch/sparc/mm/init_64.c              |  74 +++++++++++++------
 12 files changed, 282 insertions(+), 59 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2015-06-25 13:27 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2015-06-25 13:27 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Please pull to get these sparc perf stack traversal fixes from
David Ahern.

Thanks.

The following changes since commit aefbef10e3ae6e2c6e3c54f906f10b34c73a2c66:

  Merge branch 'akpm' (patches from Andrew) (2015-06-24 20:47:21 -0700)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git 

for you to fetch changes up to f01cae4e1a9bc845ee125cdb763ccf18298d3fdc:

  Merge branch 'sparc-perf-stack' (2015-06-25 06:01:10 -0700)

----------------------------------------------------------------
David Ahern (4):
      sparc: perf: Disable pagefaults while walking userspace stacks
      sparc64: Convert BUG_ON to warning
      sparc64: perf: Add sanity checking on addresses in user stack
      sparc64: perf: Use UREG_FP rather than UREG_I6

David S. Miller (1):
      Merge branch 'sparc-perf-stack'

 arch/sparc/include/asm/uaccess_64.h | 22 ++++++++++++++++++++++
 arch/sparc/kernel/perf_event.c      | 24 +++++++++++++++++++++---
 arch/sparc/mm/fault_64.c            |  5 +++--
 3 files changed, 46 insertions(+), 5 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2015-06-25 13:27 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2015-06-25 13:27 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Please pull to get these sparc perf stack traversal fixes from
David Ahern.

Thanks.

The following changes since commit aefbef10e3ae6e2c6e3c54f906f10b34c73a2c66:

  Merge branch 'akpm' (patches from Andrew) (2015-06-24 20:47:21 -0700)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git 

for you to fetch changes up to f01cae4e1a9bc845ee125cdb763ccf18298d3fdc:

  Merge branch 'sparc-perf-stack' (2015-06-25 06:01:10 -0700)

----------------------------------------------------------------
David Ahern (4):
      sparc: perf: Disable pagefaults while walking userspace stacks
      sparc64: Convert BUG_ON to warning
      sparc64: perf: Add sanity checking on addresses in user stack
      sparc64: perf: Use UREG_FP rather than UREG_I6

David S. Miller (1):
      Merge branch 'sparc-perf-stack'

 arch/sparc/include/asm/uaccess_64.h | 22 ++++++++++++++++++++++
 arch/sparc/kernel/perf_event.c      | 24 +++++++++++++++++++++---
 arch/sparc/mm/fault_64.c            |  5 +++--
 3 files changed, 46 insertions(+), 5 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2015-08-07  2:19 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2015-08-07  2:19 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Please pull to get this FPU register corruption bug fix.

Thanks!

The following changes since commit 4469942bbbe5ebf845e04971d8c74e9b6178f9fa:

  Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm (2015-08-05 18:50:38 +0300)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc 

for you to fetch changes up to 44922150d87cef616fd183220d43d8fde4d41390:

  sparc64: Fix userspace FPU register corruptions. (2015-08-06 19:13:25 -0700)

----------------------------------------------------------------
David S. Miller (1):
      sparc64: Fix userspace FPU register corruptions.

 arch/sparc/include/asm/visasm.h | 16 +++++-----------
 arch/sparc/lib/NG4memcpy.S      |  5 ++++-
 arch/sparc/lib/VISsave.S        | 67 ++-----------------------------------------------------------------
 arch/sparc/lib/ksyms.c          |  4 ----
 4 files changed, 11 insertions(+), 81 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2015-08-07  2:19 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2015-08-07  2:19 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Please pull to get this FPU register corruption bug fix.

Thanks!

The following changes since commit 4469942bbbe5ebf845e04971d8c74e9b6178f9fa:

  Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm (2015-08-05 18:50:38 +0300)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc 

for you to fetch changes up to 44922150d87cef616fd183220d43d8fde4d41390:

  sparc64: Fix userspace FPU register corruptions. (2015-08-06 19:13:25 -0700)

----------------------------------------------------------------
David S. Miller (1):
      sparc64: Fix userspace FPU register corruptions.

 arch/sparc/include/asm/visasm.h | 16 +++++-----------
 arch/sparc/lib/NG4memcpy.S      |  5 ++++-
 arch/sparc/lib/VISsave.S        | 67 ++-----------------------------------------------------------------
 arch/sparc/lib/ksyms.c          |  4 ----
 4 files changed, 11 insertions(+), 81 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2015-11-05 21:39 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2015-11-05 21:39 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Just a couple of fixes/cleanups:

1) Correct NUMA latency calculations on sparc64, from Nitin Gupta.

2) ASI_ST_BLKINIT_MRU_S value was wrong, from Rob Gardner.

3) Fix non-faulting load handling of non-quad values, also from Rob
   Gardner.

4) Cleanup VISsave assembler, from Sam Ravnborg.

5) Fix iommu-common code so it doesn't emit rediculous warnings
   on some architectures, particularly ARM.

Please pull, thanks a lot!

The following changes since commit 49d7c6559bf2ab4f1d56be131ab9571a51fc71bd:

  Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc (2015-08-07 05:28:24 +0300)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git 

for you to fetch changes up to 52708d690b8be132ba9d294464625dbbdb9fa5df:

  sparc64: Fix numa distance values (2015-11-04 12:14:49 -0800)

----------------------------------------------------------------
David S. Miller (1):
      iommu-common: Fix error code used in iommu_tbl_range_{alloc,free}().

Nitin Gupta (1):
      sparc64: Fix numa distance values

Rob Gardner (2):
      sparc64: Fix incorrect ASI_ST_BLKINIT_MRU_S value
      sparc64: Don't restrict fp regs for no-fault loads

Sam Ravnborg (1):
      sparc64: use ENTRY/ENDPROC in VISsave

 arch/sparc/include/asm/topology_64.h |  3 +++
 arch/sparc/include/uapi/asm/asi.h    |  2 +-
 arch/sparc/kernel/iommu.c            | 12 ++++++------
 arch/sparc/kernel/ldc.c              |  2 +-
 arch/sparc/kernel/pci_sun4v.c        | 18 +++++++++---------
 arch/sparc/kernel/unaligned_64.c     | 22 +++++++++++++++-------
 arch/sparc/lib/VISsave.S             | 10 +++++-----
 arch/sparc/mm/init_64.c              | 70 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 include/linux/iommu-common.h         |  1 +
 lib/iommu-common.c                   | 10 +++-------
 10 files changed, 113 insertions(+), 37 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2015-11-05 21:39 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2015-11-05 21:39 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Just a couple of fixes/cleanups:

1) Correct NUMA latency calculations on sparc64, from Nitin Gupta.

2) ASI_ST_BLKINIT_MRU_S value was wrong, from Rob Gardner.

3) Fix non-faulting load handling of non-quad values, also from Rob
   Gardner.

4) Cleanup VISsave assembler, from Sam Ravnborg.

5) Fix iommu-common code so it doesn't emit rediculous warnings
   on some architectures, particularly ARM.

Please pull, thanks a lot!

The following changes since commit 49d7c6559bf2ab4f1d56be131ab9571a51fc71bd:

  Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc (2015-08-07 05:28:24 +0300)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git 

for you to fetch changes up to 52708d690b8be132ba9d294464625dbbdb9fa5df:

  sparc64: Fix numa distance values (2015-11-04 12:14:49 -0800)

----------------------------------------------------------------
David S. Miller (1):
      iommu-common: Fix error code used in iommu_tbl_range_{alloc,free}().

Nitin Gupta (1):
      sparc64: Fix numa distance values

Rob Gardner (2):
      sparc64: Fix incorrect ASI_ST_BLKINIT_MRU_S value
      sparc64: Don't restrict fp regs for no-fault loads

Sam Ravnborg (1):
      sparc64: use ENTRY/ENDPROC in VISsave

 arch/sparc/include/asm/topology_64.h |  3 +++
 arch/sparc/include/uapi/asm/asi.h    |  2 +-
 arch/sparc/kernel/iommu.c            | 12 ++++++------
 arch/sparc/kernel/ldc.c              |  2 +-
 arch/sparc/kernel/pci_sun4v.c        | 18 +++++++++---------
 arch/sparc/kernel/unaligned_64.c     | 22 +++++++++++++++-------
 arch/sparc/lib/VISsave.S             | 10 +++++-----
 arch/sparc/mm/init_64.c              | 70 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 include/linux/iommu-common.h         |  1 +
 lib/iommu-common.c                   | 10 +++-------
 10 files changed, 113 insertions(+), 37 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] Sparc
  2015-11-05 21:39 ` David Miller
@ 2015-11-06  0:43   ` Linus Torvalds
  -1 siblings, 0 replies; 548+ messages in thread
From: Linus Torvalds @ 2015-11-06  0:43 UTC (permalink / raw)
  To: David Miller; +Cc: Andrew Morton, sparclinux, Linux Kernel Mailing List

On Thu, Nov 5, 2015 at 1:39 PM, David Miller <davem@davemloft.net> wrote:
>
> 5) Fix iommu-common code so it doesn't emit rediculous warnings
>    on some architectures, particularly ARM.

Heh. So looking at that patch, I can't but help to react that this:

  #define IOMMU_ERROR_CODE       (~(unsigned long) 0)

is still pretty ridiculous.  Maybe just (-1ul), or for those people
who don't understand C unsigned long arithmetic and think that a
negative unsigned long looks odd, (~0ul)?

Not that this *matters*, but it's a bit odd to have to cast constants
to perfectly regular C types.

                    Linus

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] Sparc
@ 2015-11-06  0:43   ` Linus Torvalds
  0 siblings, 0 replies; 548+ messages in thread
From: Linus Torvalds @ 2015-11-06  0:43 UTC (permalink / raw)
  To: David Miller; +Cc: Andrew Morton, sparclinux, Linux Kernel Mailing List

On Thu, Nov 5, 2015 at 1:39 PM, David Miller <davem@davemloft.net> wrote:
>
> 5) Fix iommu-common code so it doesn't emit rediculous warnings
>    on some architectures, particularly ARM.

Heh. So looking at that patch, I can't but help to react that this:

  #define IOMMU_ERROR_CODE       (~(unsigned long) 0)

is still pretty ridiculous.  Maybe just (-1ul), or for those people
who don't understand C unsigned long arithmetic and think that a
negative unsigned long looks odd, (~0ul)?

Not that this *matters*, but it's a bit odd to have to cast constants
to perfectly regular C types.

                    Linus

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] Sparc
  2015-11-06  0:43   ` Linus Torvalds
@ 2015-11-06  0:56     ` Linus Torvalds
  -1 siblings, 0 replies; 548+ messages in thread
From: Linus Torvalds @ 2015-11-06  0:56 UTC (permalink / raw)
  To: David Miller; +Cc: Andrew Morton, sparclinux, Linux Kernel Mailing List

On Thu, Nov 5, 2015 at 4:43 PM, Linus Torvalds
<torvalds@linux-foundation.org> wrote:
>
> Not that this *matters*, but it's a bit odd to have to cast constants
> to perfectly regular C types.

Looking around with "git grep", there's a few more of these.

 - btrfs seems to like "(unsigned long)-1"

   There's a few other users of that too, including more sparc uses.

 - scsi/qla seems to like "(unsigned long)<hexnumber>"

 - fmdrv_common.h seems to like "((unsigned long)1<<x)" for bitmaps

along with a smattering of random noise all over of "(unsigned long)
n" where 'n' is some integer.

Apparently people aren't as aware of the normal "ul" postfix syntax as
I would have expected. That said, it's a hundred-odd cases in all of
the kernel, so it's still fairly rare.

                 Linus

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] Sparc
@ 2015-11-06  0:56     ` Linus Torvalds
  0 siblings, 0 replies; 548+ messages in thread
From: Linus Torvalds @ 2015-11-06  0:56 UTC (permalink / raw)
  To: David Miller; +Cc: Andrew Morton, sparclinux, Linux Kernel Mailing List

On Thu, Nov 5, 2015 at 4:43 PM, Linus Torvalds
<torvalds@linux-foundation.org> wrote:
>
> Not that this *matters*, but it's a bit odd to have to cast constants
> to perfectly regular C types.

Looking around with "git grep", there's a few more of these.

 - btrfs seems to like "(unsigned long)-1"

   There's a few other users of that too, including more sparc uses.

 - scsi/qla seems to like "(unsigned long)<hexnumber>"

 - fmdrv_common.h seems to like "((unsigned long)1<<x)" for bitmaps

along with a smattering of random noise all over of "(unsigned long)
n" where 'n' is some integer.

Apparently people aren't as aware of the normal "ul" postfix syntax as
I would have expected. That said, it's a hundred-odd cases in all of
the kernel, so it's still fairly rare.

                 Linus

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] Sparc
  2015-11-06  0:56     ` Linus Torvalds
@ 2015-11-06  1:05       ` Julian Calaby
  -1 siblings, 0 replies; 548+ messages in thread
From: Julian Calaby @ 2015-11-06  1:05 UTC (permalink / raw)
  To: Linus Torvalds
  Cc: David Miller, Andrew Morton, sparclinux,
	Linux Kernel Mailing List, kernel-janitors

Hi Linus,

On Fri, Nov 6, 2015 at 11:56 AM, Linus Torvalds
<torvalds@linux-foundation.org> wrote:
> On Thu, Nov 5, 2015 at 4:43 PM, Linus Torvalds
> <torvalds@linux-foundation.org> wrote:
>>
>> Not that this *matters*, but it's a bit odd to have to cast constants
>> to perfectly regular C types.
>
> Looking around with "git grep", there's a few more of these.
>
>  - btrfs seems to like "(unsigned long)-1"
>
>    There's a few other users of that too, including more sparc uses.
>
>  - scsi/qla seems to like "(unsigned long)<hexnumber>"
>
>  - fmdrv_common.h seems to like "((unsigned long)1<<x)" for bitmaps
>
> along with a smattering of random noise all over of "(unsigned long)
> n" where 'n' is some integer.
>
> Apparently people aren't as aware of the normal "ul" postfix syntax as
> I would have expected. That said, it's a hundred-odd cases in all of
> the kernel, so it's still fairly rare.

Maybe this is something the kernel-janitors team should look at? (CC'd)

Thanks,

-- 
Julian Calaby

Email: julian.calaby@gmail.com
Profile: http://www.google.com/profiles/julian.calaby/

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] Sparc
@ 2015-11-06  1:05       ` Julian Calaby
  0 siblings, 0 replies; 548+ messages in thread
From: Julian Calaby @ 2015-11-06  1:05 UTC (permalink / raw)
  To: Linus Torvalds
  Cc: David Miller, Andrew Morton, sparclinux,
	Linux Kernel Mailing List, kernel-janitors

Hi Linus,

On Fri, Nov 6, 2015 at 11:56 AM, Linus Torvalds
<torvalds@linux-foundation.org> wrote:
> On Thu, Nov 5, 2015 at 4:43 PM, Linus Torvalds
> <torvalds@linux-foundation.org> wrote:
>>
>> Not that this *matters*, but it's a bit odd to have to cast constants
>> to perfectly regular C types.
>
> Looking around with "git grep", there's a few more of these.
>
>  - btrfs seems to like "(unsigned long)-1"
>
>    There's a few other users of that too, including more sparc uses.
>
>  - scsi/qla seems to like "(unsigned long)<hexnumber>"
>
>  - fmdrv_common.h seems to like "((unsigned long)1<<x)" for bitmaps
>
> along with a smattering of random noise all over of "(unsigned long)
> n" where 'n' is some integer.
>
> Apparently people aren't as aware of the normal "ul" postfix syntax as
> I would have expected. That said, it's a hundred-odd cases in all of
> the kernel, so it's still fairly rare.

Maybe this is something the kernel-janitors team should look at? (CC'd)

Thanks,

-- 
Julian Calaby

Email: julian.calaby@gmail.com
Profile: http://www.google.com/profiles/julian.calaby/

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] Sparc
  2015-11-06  0:43   ` Linus Torvalds
@ 2015-11-06  5:14     ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2015-11-06  5:14 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel

From: Linus Torvalds <torvalds@linux-foundation.org>
Date: Thu, 5 Nov 2015 16:43:52 -0800

> On Thu, Nov 5, 2015 at 1:39 PM, David Miller <davem@davemloft.net> wrote:
>>
>> 5) Fix iommu-common code so it doesn't emit rediculous warnings
>>    on some architectures, particularly ARM.
> 
> Heh. So looking at that patch, I can't but help to react that this:
> 
>   #define IOMMU_ERROR_CODE       (~(unsigned long) 0)
> 
> is still pretty ridiculous.  Maybe just (-1ul), or for those people
> who don't understand C unsigned long arithmetic and think that a
> negative unsigned long looks odd, (~0ul)?

Yeah I struggled with this, believe it or not.

The expression causing the problem was (~(dma_addr_t) 0) (AKA
DMA_ERROR_CODE) being used as the return value.

So I just replicated that expression.  A neuron did fire saying "hey
pinhead, why not just use ~0UL" but I did not listen to the little
voice in my head this time.

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] Sparc
@ 2015-11-06  5:14     ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2015-11-06  5:14 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel

From: Linus Torvalds <torvalds@linux-foundation.org>
Date: Thu, 5 Nov 2015 16:43:52 -0800

> On Thu, Nov 5, 2015 at 1:39 PM, David Miller <davem@davemloft.net> wrote:
>>
>> 5) Fix iommu-common code so it doesn't emit rediculous warnings
>>    on some architectures, particularly ARM.
> 
> Heh. So looking at that patch, I can't but help to react that this:
> 
>   #define IOMMU_ERROR_CODE       (~(unsigned long) 0)
> 
> is still pretty ridiculous.  Maybe just (-1ul), or for those people
> who don't understand C unsigned long arithmetic and think that a
> negative unsigned long looks odd, (~0ul)?

Yeah I struggled with this, believe it or not.

The expression causing the problem was (~(dma_addr_t) 0) (AKA
DMA_ERROR_CODE) being used as the return value.

So I just replicated that expression.  A neuron did fire saying "hey
pinhead, why not just use ~0UL" but I did not listen to the little
voice in my head this time.

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] Sparc
  2015-11-06  1:05       ` Julian Calaby
@ 2015-11-06  6:44         ` Julia Lawall
  -1 siblings, 0 replies; 548+ messages in thread
From: Julia Lawall @ 2015-11-06  6:44 UTC (permalink / raw)
  To: Julian Calaby
  Cc: Linus Torvalds, David Miller, Andrew Morton, sparclinux,
	Linux Kernel Mailing List, kernel-janitors

On Fri, 6 Nov 2015, Julian Calaby wrote:

> Hi Linus,
> 
> On Fri, Nov 6, 2015 at 11:56 AM, Linus Torvalds
> <torvalds@linux-foundation.org> wrote:
> > On Thu, Nov 5, 2015 at 4:43 PM, Linus Torvalds
> > <torvalds@linux-foundation.org> wrote:
> >>
> >> Not that this *matters*, but it's a bit odd to have to cast constants
> >> to perfectly regular C types.
> >
> > Looking around with "git grep", there's a few more of these.
> >
> >  - btrfs seems to like "(unsigned long)-1"
> >
> >    There's a few other users of that too, including more sparc uses.
> >
> >  - scsi/qla seems to like "(unsigned long)<hexnumber>"
> >
> >  - fmdrv_common.h seems to like "((unsigned long)1<<x)" for bitmaps
> >
> > along with a smattering of random noise all over of "(unsigned long)
> > n" where 'n' is some integer.
> >
> > Apparently people aren't as aware of the normal "ul" postfix syntax as
> > I would have expected. That said, it's a hundred-odd cases in all of
> > the kernel, so it's still fairly rare.
> 
> Maybe this is something the kernel-janitors team should look at? (CC'd)

Do you have some concrete examples of the code that is undesirable?

thanks,
julia

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] Sparc
@ 2015-11-06  6:44         ` Julia Lawall
  0 siblings, 0 replies; 548+ messages in thread
From: Julia Lawall @ 2015-11-06  6:44 UTC (permalink / raw)
  To: Julian Calaby
  Cc: Linus Torvalds, David Miller, Andrew Morton, sparclinux,
	Linux Kernel Mailing List, kernel-janitors

On Fri, 6 Nov 2015, Julian Calaby wrote:

> Hi Linus,
> 
> On Fri, Nov 6, 2015 at 11:56 AM, Linus Torvalds
> <torvalds@linux-foundation.org> wrote:
> > On Thu, Nov 5, 2015 at 4:43 PM, Linus Torvalds
> > <torvalds@linux-foundation.org> wrote:
> >>
> >> Not that this *matters*, but it's a bit odd to have to cast constants
> >> to perfectly regular C types.
> >
> > Looking around with "git grep", there's a few more of these.
> >
> >  - btrfs seems to like "(unsigned long)-1"
> >
> >    There's a few other users of that too, including more sparc uses.
> >
> >  - scsi/qla seems to like "(unsigned long)<hexnumber>"
> >
> >  - fmdrv_common.h seems to like "((unsigned long)1<<x)" for bitmaps
> >
> > along with a smattering of random noise all over of "(unsigned long)
> > n" where 'n' is some integer.
> >
> > Apparently people aren't as aware of the normal "ul" postfix syntax as
> > I would have expected. That said, it's a hundred-odd cases in all of
> > the kernel, so it's still fairly rare.
> 
> Maybe this is something the kernel-janitors team should look at? (CC'd)

Do you have some concrete examples of the code that is undesirable?

thanks,
julia

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [PATCH] checkpatch: Warn when casting constants to c90 int or longer types
  2015-11-06  0:56     ` Linus Torvalds
@ 2015-11-06 18:32       ` Joe Perches
  -1 siblings, 0 replies; 548+ messages in thread
From: Joe Perches @ 2015-11-06 18:32 UTC (permalink / raw)
  To: Andrew Morton
  Cc: sparclinux, Linux Kernel Mailing List, Linus Torvalds,
	David Miller, Julia Lawall

Linus Torvalds wrote:

> I can't but help to react that this:
>  #define IOMMU_ERROR_CODE       (~(unsigned long) 0)
> Not that this *matters*, but it's a bit odd to have to cast constants
> to perfectly regular C types.

So add a test that looks for constants that are cast to
standard C90 int or longer types and suggest using C90
"6.4.4.1 Integer constants" integer-suffixes instead.

Miscellanea:

o Add a --fix option too

Suggested-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Joe Perches <joe@perches.com>
---
 scripts/checkpatch.pl | 42 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 42 insertions(+)

diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
index 2d88cbf9..24cdeb0 100755
--- a/scripts/checkpatch.pl
+++ b/scripts/checkpatch.pl
@@ -431,6 +431,28 @@ our @typeList = (
 	qr{${Ident}_handler_fn},
 	@typeListMisordered,
 );
+
+our $C90_int_types = qr{(?x:
+	long\s+long\s+int\s+(?:un)?signed|
+	long\s+long\s+(?:un)?signed\s+int|
+	long\s+long\s+(?:un)?signed|
+	(?:(?:un)?signed\s+)?long\s+long\s+int|
+	(?:(?:un)?signed\s+)?long\s+long|
+	int\s+long\s+long\s+(?:un)?signed|
+	int\s+(?:(?:un)?signed\s+)?long\s+long|
+
+	long\s+int\s+(?:un)?signed|
+	long\s+(?:un)?signed\s+int|
+	long\s+(?:un)?signed|
+	(?:(?:un)?signed\s+)?long\s+int|
+	(?:(?:un)?signed\s+)?long|
+	int\s+long\s+(?:un)?signed|
+	int\s+(?:(?:un)?signed\s+)?long|
+
+	int\s+(?:un)?signed|
+	(?:(?:un)?signed\s+)?int
+)};
+
 our @typeListFile = ();
 our @typeListWithAttr = (
 	@typeList,
@@ -5240,6 +5262,26 @@ sub process {
 			}
 		}
 
+# check for cast of C90 native int or longer types constants
+		if ($line =~ /(\(\s*$C90_int_types\s*\)\s*)($Constant)\b/) {
+			my $cast = $1;
+			my $const = $2;
+			if (WARN("TYPECAST_INT_CONSTANT",
+				 "Unnecessary typecast of c90 int constant\n" . $herecurr) &&
+			    $fix) {
+				my $suffix = "";
+				my $newconst = $const;
+				$newconst =~ s/${Int_type}$//;
+				$suffix .= 'U' if ($cast =~ /\bunsigned\b/);
+				if ($cast =~ /\blong\s+long\b/) {
+					$suffix .= 'LL';
+				} elsif ($cast =~ /\blong\b/) {
+					$suffix .= 'L';
+				}
+				$fixed[$fixlinenr] =~ s/\Q$cast\E$const\b/$newconst$suffix/;
+			}
+		}
+
 # check for sizeof(&)
 		if ($line =~ /\bsizeof\s*\(\s*\&/) {
 			WARN("SIZEOF_ADDRESS",

^ permalink raw reply related	[flat|nested] 548+ messages in thread

* [PATCH] checkpatch: Warn when casting constants to c90 int or longer types
@ 2015-11-06 18:32       ` Joe Perches
  0 siblings, 0 replies; 548+ messages in thread
From: Joe Perches @ 2015-11-06 18:32 UTC (permalink / raw)
  To: Andrew Morton
  Cc: sparclinux, Linux Kernel Mailing List, Linus Torvalds,
	David Miller, Julia Lawall

Linus Torvalds wrote:

> I can't but help to react that this:
>  #define IOMMU_ERROR_CODE       (~(unsigned long) 0)
> Not that this *matters*, but it's a bit odd to have to cast constants
> to perfectly regular C types.

So add a test that looks for constants that are cast to
standard C90 int or longer types and suggest using C90
"6.4.4.1 Integer constants" integer-suffixes instead.

Miscellanea:

o Add a --fix option too

Suggested-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Joe Perches <joe@perches.com>
---
 scripts/checkpatch.pl | 42 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 42 insertions(+)

diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
index 2d88cbf9..24cdeb0 100755
--- a/scripts/checkpatch.pl
+++ b/scripts/checkpatch.pl
@@ -431,6 +431,28 @@ our @typeList = (
 	qr{${Ident}_handler_fn},
 	@typeListMisordered,
 );
+
+our $C90_int_types = qr{(?x:
+	long\s+long\s+int\s+(?:un)?signed|
+	long\s+long\s+(?:un)?signed\s+int|
+	long\s+long\s+(?:un)?signed|
+	(?:(?:un)?signed\s+)?long\s+long\s+int|
+	(?:(?:un)?signed\s+)?long\s+long|
+	int\s+long\s+long\s+(?:un)?signed|
+	int\s+(?:(?:un)?signed\s+)?long\s+long|
+
+	long\s+int\s+(?:un)?signed|
+	long\s+(?:un)?signed\s+int|
+	long\s+(?:un)?signed|
+	(?:(?:un)?signed\s+)?long\s+int|
+	(?:(?:un)?signed\s+)?long|
+	int\s+long\s+(?:un)?signed|
+	int\s+(?:(?:un)?signed\s+)?long|
+
+	int\s+(?:un)?signed|
+	(?:(?:un)?signed\s+)?int
+)};
+
 our @typeListFile = ();
 our @typeListWithAttr = (
 	@typeList,
@@ -5240,6 +5262,26 @@ sub process {
 			}
 		}
 
+# check for cast of C90 native int or longer types constants
+		if ($line =~ /(\(\s*$C90_int_types\s*\)\s*)($Constant)\b/) {
+			my $cast = $1;
+			my $const = $2;
+			if (WARN("TYPECAST_INT_CONSTANT",
+				 "Unnecessary typecast of c90 int constant\n" . $herecurr) &&
+			    $fix) {
+				my $suffix = "";
+				my $newconst = $const;
+				$newconst =~ s/${Int_type}$//;
+				$suffix .= 'U' if ($cast =~ /\bunsigned\b/);
+				if ($cast =~ /\blong\s+long\b/) {
+					$suffix .= 'LL';
+				} elsif ($cast =~ /\blong\b/) {
+					$suffix .= 'L';
+				}
+				$fixed[$fixlinenr] =~ s/\Q$cast\E$const\b/$newconst$suffix/;
+			}
+		}
+
 # check for sizeof(&)
 		if ($line =~ /\bsizeof\s*\(\s*\&/) {
 			WARN("SIZEOF_ADDRESS",

^ permalink raw reply related	[flat|nested] 548+ messages in thread

* Re: [GIT] Sparc
  2015-11-06  6:44         ` Julia Lawall
@ 2015-11-07  3:31           ` Julian Calaby
  -1 siblings, 0 replies; 548+ messages in thread
From: Julian Calaby @ 2015-11-07  3:31 UTC (permalink / raw)
  To: Julia Lawall
  Cc: Linus Torvalds, David Miller, Andrew Morton, sparclinux,
	Linux Kernel Mailing List, kernel-janitors

Hi Julia,

On Fri, Nov 6, 2015 at 5:44 PM, Julia Lawall <julia.lawall@lip6.fr> wrote:
> On Fri, 6 Nov 2015, Julian Calaby wrote:
>
>> Hi Linus,
>>
>> On Fri, Nov 6, 2015 at 11:56 AM, Linus Torvalds
>> <torvalds@linux-foundation.org> wrote:
>> > On Thu, Nov 5, 2015 at 4:43 PM, Linus Torvalds
>> > <torvalds@linux-foundation.org> wrote:
>> >>
>> >> Not that this *matters*, but it's a bit odd to have to cast constants
>> >> to perfectly regular C types.
>> >
>> > Looking around with "git grep", there's a few more of these.
>> >
>> >  - btrfs seems to like "(unsigned long)-1"
>> >
>> >    There's a few other users of that too, including more sparc uses.
>> >
>> >  - scsi/qla seems to like "(unsigned long)<hexnumber>"
>> >
>> >  - fmdrv_common.h seems to like "((unsigned long)1<<x)" for bitmaps
>> >
>> > along with a smattering of random noise all over of "(unsigned long)
>> > n" where 'n' is some integer.
>> >
>> > Apparently people aren't as aware of the normal "ul" postfix syntax as
>> > I would have expected. That said, it's a hundred-odd cases in all of
>> > the kernel, so it's still fairly rare.
>>
>> Maybe this is something the kernel-janitors team should look at? (CC'd)
>
> Do you have some concrete examples of the code that is undesirable?

Joe Perches produced a patch for checkpatch to check for this [1]

Linus was complaining [2] about people producing constants with casts
to basic C types in them. For instance:

#define IOMMU_ERROR_CODE (~(unsigned long) 0)

This could be replaced with

#define IOMMU_ERROR_CODE (~0ul)

or potentially

#define IOMMU_ERROR_CODE (-1ul)

It's not overly common, but it looks wrong.

Thanks,

Julian Calaby

[1] https://lkml.org/lkml/2015/11/6/48
[2] https://lkml.org/lkml/2015/11/5/785

-- 
Julian Calaby

Email: julian.calaby@gmail.com
Profile: http://www.google.com/profiles/julian.calaby/

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] Sparc
@ 2015-11-07  3:31           ` Julian Calaby
  0 siblings, 0 replies; 548+ messages in thread
From: Julian Calaby @ 2015-11-07  3:31 UTC (permalink / raw)
  To: Julia Lawall
  Cc: Linus Torvalds, David Miller, Andrew Morton, sparclinux,
	Linux Kernel Mailing List, kernel-janitors

Hi Julia,

On Fri, Nov 6, 2015 at 5:44 PM, Julia Lawall <julia.lawall@lip6.fr> wrote:
> On Fri, 6 Nov 2015, Julian Calaby wrote:
>
>> Hi Linus,
>>
>> On Fri, Nov 6, 2015 at 11:56 AM, Linus Torvalds
>> <torvalds@linux-foundation.org> wrote:
>> > On Thu, Nov 5, 2015 at 4:43 PM, Linus Torvalds
>> > <torvalds@linux-foundation.org> wrote:
>> >>
>> >> Not that this *matters*, but it's a bit odd to have to cast constants
>> >> to perfectly regular C types.
>> >
>> > Looking around with "git grep", there's a few more of these.
>> >
>> >  - btrfs seems to like "(unsigned long)-1"
>> >
>> >    There's a few other users of that too, including more sparc uses.
>> >
>> >  - scsi/qla seems to like "(unsigned long)<hexnumber>"
>> >
>> >  - fmdrv_common.h seems to like "((unsigned long)1<<x)" for bitmaps
>> >
>> > along with a smattering of random noise all over of "(unsigned long)
>> > n" where 'n' is some integer.
>> >
>> > Apparently people aren't as aware of the normal "ul" postfix syntax as
>> > I would have expected. That said, it's a hundred-odd cases in all of
>> > the kernel, so it's still fairly rare.
>>
>> Maybe this is something the kernel-janitors team should look at? (CC'd)
>
> Do you have some concrete examples of the code that is undesirable?

Joe Perches produced a patch for checkpatch to check for this [1]

Linus was complaining [2] about people producing constants with casts
to basic C types in them. For instance:

#define IOMMU_ERROR_CODE (~(unsigned long) 0)

This could be replaced with

#define IOMMU_ERROR_CODE (~0ul)

or potentially

#define IOMMU_ERROR_CODE (-1ul)

It's not overly common, but it looks wrong.

Thanks,

Julian Calaby

[1] https://lkml.org/lkml/2015/11/6/48
[2] https://lkml.org/lkml/2015/11/5/785

-- 
Julian Calaby

Email: julian.calaby@gmail.com
Profile: http://www.google.com/profiles/julian.calaby/

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] Sparc
  2015-11-07  3:31           ` Julian Calaby
@ 2015-11-07  6:04             ` Julia Lawall
  -1 siblings, 0 replies; 548+ messages in thread
From: Julia Lawall @ 2015-11-07  6:04 UTC (permalink / raw)
  To: Julian Calaby
  Cc: Linus Torvalds, David Miller, Andrew Morton, sparclinux,
	Linux Kernel Mailing List, kernel-janitors



On Sat, 7 Nov 2015, Julian Calaby wrote:

> Hi Julia,
> 
> On Fri, Nov 6, 2015 at 5:44 PM, Julia Lawall <julia.lawall@lip6.fr> wrote:
> > On Fri, 6 Nov 2015, Julian Calaby wrote:
> >
> >> Hi Linus,
> >>
> >> On Fri, Nov 6, 2015 at 11:56 AM, Linus Torvalds
> >> <torvalds@linux-foundation.org> wrote:
> >> > On Thu, Nov 5, 2015 at 4:43 PM, Linus Torvalds
> >> > <torvalds@linux-foundation.org> wrote:
> >> >>
> >> >> Not that this *matters*, but it's a bit odd to have to cast constants
> >> >> to perfectly regular C types.
> >> >
> >> > Looking around with "git grep", there's a few more of these.
> >> >
> >> >  - btrfs seems to like "(unsigned long)-1"
> >> >
> >> >    There's a few other users of that too, including more sparc uses.
> >> >
> >> >  - scsi/qla seems to like "(unsigned long)<hexnumber>"
> >> >
> >> >  - fmdrv_common.h seems to like "((unsigned long)1<<x)" for bitmaps
> >> >
> >> > along with a smattering of random noise all over of "(unsigned long)
> >> > n" where 'n' is some integer.
> >> >
> >> > Apparently people aren't as aware of the normal "ul" postfix syntax as
> >> > I would have expected. That said, it's a hundred-odd cases in all of
> >> > the kernel, so it's still fairly rare.
> >>
> >> Maybe this is something the kernel-janitors team should look at? (CC'd)
> >
> > Do you have some concrete examples of the code that is undesirable?
> 
> Joe Perches produced a patch for checkpatch to check for this [1]
> 
> Linus was complaining [2] about people producing constants with casts
> to basic C types in them. For instance:
> 
> #define IOMMU_ERROR_CODE (~(unsigned long) 0)
> 
> This could be replaced with
> 
> #define IOMMU_ERROR_CODE (~0ul)
> 
> or potentially
> 
> #define IOMMU_ERROR_CODE (-1ul)
> 
> It's not overly common, but it looks wrong.

Thanks.  The checkpatch solution indeed looks fine in this case.

julia

> Thanks,
> 
> Julian Calaby
> 
> [1] https://lkml.org/lkml/2015/11/6/48
> [2] https://lkml.org/lkml/2015/11/5/785
> 
> -- 
> Julian Calaby
> 
> Email: julian.calaby@gmail.com
> Profile: http://www.google.com/profiles/julian.calaby/
> --
> To unsubscribe from this list: send the line "unsubscribe kernel-janitors" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] Sparc
@ 2015-11-07  6:04             ` Julia Lawall
  0 siblings, 0 replies; 548+ messages in thread
From: Julia Lawall @ 2015-11-07  6:04 UTC (permalink / raw)
  To: Julian Calaby
  Cc: Linus Torvalds, David Miller, Andrew Morton, sparclinux,
	Linux Kernel Mailing List, kernel-janitors



On Sat, 7 Nov 2015, Julian Calaby wrote:

> Hi Julia,
> 
> On Fri, Nov 6, 2015 at 5:44 PM, Julia Lawall <julia.lawall@lip6.fr> wrote:
> > On Fri, 6 Nov 2015, Julian Calaby wrote:
> >
> >> Hi Linus,
> >>
> >> On Fri, Nov 6, 2015 at 11:56 AM, Linus Torvalds
> >> <torvalds@linux-foundation.org> wrote:
> >> > On Thu, Nov 5, 2015 at 4:43 PM, Linus Torvalds
> >> > <torvalds@linux-foundation.org> wrote:
> >> >>
> >> >> Not that this *matters*, but it's a bit odd to have to cast constants
> >> >> to perfectly regular C types.
> >> >
> >> > Looking around with "git grep", there's a few more of these.
> >> >
> >> >  - btrfs seems to like "(unsigned long)-1"
> >> >
> >> >    There's a few other users of that too, including more sparc uses.
> >> >
> >> >  - scsi/qla seems to like "(unsigned long)<hexnumber>"
> >> >
> >> >  - fmdrv_common.h seems to like "((unsigned long)1<<x)" for bitmaps
> >> >
> >> > along with a smattering of random noise all over of "(unsigned long)
> >> > n" where 'n' is some integer.
> >> >
> >> > Apparently people aren't as aware of the normal "ul" postfix syntax as
> >> > I would have expected. That said, it's a hundred-odd cases in all of
> >> > the kernel, so it's still fairly rare.
> >>
> >> Maybe this is something the kernel-janitors team should look at? (CC'd)
> >
> > Do you have some concrete examples of the code that is undesirable?
> 
> Joe Perches produced a patch for checkpatch to check for this [1]
> 
> Linus was complaining [2] about people producing constants with casts
> to basic C types in them. For instance:
> 
> #define IOMMU_ERROR_CODE (~(unsigned long) 0)
> 
> This could be replaced with
> 
> #define IOMMU_ERROR_CODE (~0ul)
> 
> or potentially
> 
> #define IOMMU_ERROR_CODE (-1ul)
> 
> It's not overly common, but it looks wrong.

Thanks.  The checkpatch solution indeed looks fine in this case.

julia

> Thanks,
> 
> Julian Calaby
> 
> [1] https://lkml.org/lkml/2015/11/6/48
> [2] https://lkml.org/lkml/2015/11/5/785
> 
> -- 
> Julian Calaby
> 
> Email: julian.calaby@gmail.com
> Profile: http://www.google.com/profiles/julian.calaby/
> --
> To unsubscribe from this list: send the line "unsubscribe kernel-janitors" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2015-12-24 17:16 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2015-12-24 17:16 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Please pull to get the following sparc bug fixes:

1) Finally make perf stack backtraces stable on sparc, several
   problems (mostly due to the context in which the user copies
   from the stack are done) contributed to this.

   From Rob Gardner.

2) Export ADI capability if the cpu supports it.

3) Hook up userfaultfd system call.

4) When faults happen during user copies we really have to
   clean up and restore the FPU state fully.   Also from
   Rob Gardner.

Please pull, thanks a lot!

The following changes since commit 73796d8bf27372e26c2b79881947304c14c2d353:

  Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net (2015-12-17 14:05:22 -0800)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git 

for you to fetch changes up to 079317a65d05ce52b69b7d47fe1fb419d40a4395:

  tty/serial: Skip 'NULL' char after console break when sysrq enabled (2015-12-24 12:13:37 -0500)

----------------------------------------------------------------
Aya Mahfouz (1):
      tty: serial: constify sunhv_ops structs

Khalid Aziz (1):
      sparc64: Add ADI capability to cpu capabilities

Mike Kravetz (1):
      sparc: Hook up userfaultfd system call

Rob Gardner (4):
      sparc64: Don't set %pil in rtrap_nmi too early
      sparc64: Ensure perf can access user stacks
      sparc64: Perf should save/restore fault info
      sparc64: fix FP corruption in user copy functions

Vijay Kumar (1):
      tty/serial: Skip 'NULL' char after console break when sysrq enabled

 arch/sparc/include/asm/elf_64.h      |   1 +
 arch/sparc/include/uapi/asm/unistd.h |   3 ++-
 arch/sparc/kernel/head_64.S          |  13 ++++++++++++
 arch/sparc/kernel/perf_event.c       |  11 ++++++++++
 arch/sparc/kernel/rtrap_64.S         |   8 ++++++-
 arch/sparc/kernel/setup_64.c         |   9 ++++----
 arch/sparc/kernel/systbls_32.S       |   2 +-
 arch/sparc/kernel/systbls_64.S       |   4 ++--
 arch/sparc/lib/NG2copy_from_user.S   |   8 +++++++
 arch/sparc/lib/NG2copy_to_user.S     |   8 +++++++
 arch/sparc/lib/NG2memcpy.S           | 118 ++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------------------------------
 arch/sparc/lib/NG4copy_from_user.S   |   8 +++++++
 arch/sparc/lib/NG4copy_to_user.S     |   8 +++++++
 arch/sparc/lib/NG4memcpy.S           |  40 ++++++++++++++++++++---------------
 arch/sparc/lib/U1copy_from_user.S    |   8 +++++++
 arch/sparc/lib/U1copy_to_user.S      |   8 +++++++
 arch/sparc/lib/U1memcpy.S            |  48 ++++++++++++++++++++++++------------------
 arch/sparc/lib/U3copy_from_user.S    |   8 +++++++
 arch/sparc/lib/U3copy_to_user.S      |   8 +++++++
 arch/sparc/lib/U3memcpy.S            |  86 +++++++++++++++++++++++++++++++++++++++-----------------------------------
 drivers/tty/serial/sunhv.c           |  12 ++++++-----
 21 files changed, 271 insertions(+), 148 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2015-12-24 17:16 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2015-12-24 17:16 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Please pull to get the following sparc bug fixes:

1) Finally make perf stack backtraces stable on sparc, several
   problems (mostly due to the context in which the user copies
   from the stack are done) contributed to this.

   From Rob Gardner.

2) Export ADI capability if the cpu supports it.

3) Hook up userfaultfd system call.

4) When faults happen during user copies we really have to
   clean up and restore the FPU state fully.   Also from
   Rob Gardner.

Please pull, thanks a lot!

The following changes since commit 73796d8bf27372e26c2b79881947304c14c2d353:

  Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net (2015-12-17 14:05:22 -0800)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git 

for you to fetch changes up to 079317a65d05ce52b69b7d47fe1fb419d40a4395:

  tty/serial: Skip 'NULL' char after console break when sysrq enabled (2015-12-24 12:13:37 -0500)

----------------------------------------------------------------
Aya Mahfouz (1):
      tty: serial: constify sunhv_ops structs

Khalid Aziz (1):
      sparc64: Add ADI capability to cpu capabilities

Mike Kravetz (1):
      sparc: Hook up userfaultfd system call

Rob Gardner (4):
      sparc64: Don't set %pil in rtrap_nmi too early
      sparc64: Ensure perf can access user stacks
      sparc64: Perf should save/restore fault info
      sparc64: fix FP corruption in user copy functions

Vijay Kumar (1):
      tty/serial: Skip 'NULL' char after console break when sysrq enabled

 arch/sparc/include/asm/elf_64.h      |   1 +
 arch/sparc/include/uapi/asm/unistd.h |   3 ++-
 arch/sparc/kernel/head_64.S          |  13 ++++++++++++
 arch/sparc/kernel/perf_event.c       |  11 ++++++++++
 arch/sparc/kernel/rtrap_64.S         |   8 ++++++-
 arch/sparc/kernel/setup_64.c         |   9 ++++----
 arch/sparc/kernel/systbls_32.S       |   2 +-
 arch/sparc/kernel/systbls_64.S       |   4 ++--
 arch/sparc/lib/NG2copy_from_user.S   |   8 +++++++
 arch/sparc/lib/NG2copy_to_user.S     |   8 +++++++
 arch/sparc/lib/NG2memcpy.S           | 118 ++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------------------------------
 arch/sparc/lib/NG4copy_from_user.S   |   8 +++++++
 arch/sparc/lib/NG4copy_to_user.S     |   8 +++++++
 arch/sparc/lib/NG4memcpy.S           |  40 ++++++++++++++++++++---------------
 arch/sparc/lib/U1copy_from_user.S    |   8 +++++++
 arch/sparc/lib/U1copy_to_user.S      |   8 +++++++
 arch/sparc/lib/U1memcpy.S            |  48 ++++++++++++++++++++++++------------------
 arch/sparc/lib/U3copy_from_user.S    |   8 +++++++
 arch/sparc/lib/U3copy_to_user.S      |   8 +++++++
 arch/sparc/lib/U3memcpy.S            |  86 +++++++++++++++++++++++++++++++++++++++-----------------------------------
 drivers/tty/serial/sunhv.c           |  12 ++++++-----
 21 files changed, 271 insertions(+), 148 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2015-12-31 20:30 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2015-12-31 20:30 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Just some missing syscall wire ups, please pull, thanks!

The following changes since commit 8db7b3c54401d83a4dc370a59b8692854000ea03:

  Merge branch 'parisc-4.4-4' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux (2015-12-25 13:19:50 -0800)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git 

for you to fetch changes up to 42d85c52f88dd0d2159f531eb33cc66d6e3e60c0:

  sparc: Wire up mlock2 system call. (2015-12-31 15:38:56 -0500)

----------------------------------------------------------------
David S. Miller (2):
      sparc: Add all necessary direct socket system calls.
      sparc: Wire up mlock2 system call.

 arch/sparc/include/uapi/asm/unistd.h |  6 +++++-
 arch/sparc/kernel/systbls_32.S       | 19 ++++++++++---------
 arch/sparc/kernel/systbls_64.S       | 18 ++++++++++--------
 3 files changed, 25 insertions(+), 18 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2015-12-31 20:30 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2015-12-31 20:30 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Just some missing syscall wire ups, please pull, thanks!

The following changes since commit 8db7b3c54401d83a4dc370a59b8692854000ea03:

  Merge branch 'parisc-4.4-4' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux (2015-12-25 13:19:50 -0800)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git 

for you to fetch changes up to 42d85c52f88dd0d2159f531eb33cc66d6e3e60c0:

  sparc: Wire up mlock2 system call. (2015-12-31 15:38:56 -0500)

----------------------------------------------------------------
David S. Miller (2):
      sparc: Add all necessary direct socket system calls.
      sparc: Wire up mlock2 system call.

 arch/sparc/include/uapi/asm/unistd.h |  6 +++++-
 arch/sparc/kernel/systbls_32.S       | 19 ++++++++++---------
 arch/sparc/kernel/systbls_64.S       | 18 ++++++++++--------
 3 files changed, 25 insertions(+), 18 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2016-01-15 21:04 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2016-01-15 21:04 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Please pull to get these two sparc bug fixes, thanks!

The following changes since commit 7fdec82af6a9e190e53d07a1463d2a9ac49a8750:

  Merge tag 'xfs-for-linus-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/dgc/linux-xfs (2016-01-13 21:15:18 -0800)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git 

for you to fetch changes up to 36beca6571c941b28b0798667608239731f9bc3a:

  sparc64: Fix numa node distance initialization (2016-01-14 16:58:59 -0500)

----------------------------------------------------------------
Dmitry V. Levin (1):
      sparc64: fix incorrect sign extension in sys_sparc64_personality

Nitin Gupta (1):
      sparc64: Fix numa node distance initialization

 arch/sparc/kernel/sys_sparc_64.c |  2 +-
 arch/sparc/mm/init_64.c          | 15 ++++++++-------
 2 files changed, 9 insertions(+), 8 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2016-01-15 21:04 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2016-01-15 21:04 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Please pull to get these two sparc bug fixes, thanks!

The following changes since commit 7fdec82af6a9e190e53d07a1463d2a9ac49a8750:

  Merge tag 'xfs-for-linus-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/dgc/linux-xfs (2016-01-13 21:15:18 -0800)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git 

for you to fetch changes up to 36beca6571c941b28b0798667608239731f9bc3a:

  sparc64: Fix numa node distance initialization (2016-01-14 16:58:59 -0500)

----------------------------------------------------------------
Dmitry V. Levin (1):
      sparc64: fix incorrect sign extension in sys_sparc64_personality

Nitin Gupta (1):
      sparc64: Fix numa node distance initialization

 arch/sparc/kernel/sys_sparc_64.c |  2 +-
 arch/sparc/mm/init_64.c          | 15 ++++++++-------
 2 files changed, 9 insertions(+), 8 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2016-03-01  5:47 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2016-03-01  5:47 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


1) System call tracing doesn't handle register contents properly
   across the trace.  From Mike Frysinger.

2) Hook up copy_file_range

3) Build fix for 32-bit with newer tools.

4) New sun4v watchdog driver, from Wim Coekaerts.

5) Set context system call has to allow for servicable
   faults when we flush the register windows to memory.

Please pull, thanks a lot!

The following changes since commit 404a47410c26a115123885977053e9a1a4460929:

  Merge branch 'uaccess' (batched user access infrastructure) (2016-01-21 13:02:41 -0800)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc 

for you to fetch changes up to 397d1533b6cce0ccb5379542e2e6d079f6936c46:

  sparc64: Fix sparc64_set_context stack handling. (2016-03-01 00:25:32 -0500)

----------------------------------------------------------------
David S. Miller (3):
      sparc: Hook up copy_file_range syscall.
      sparc32: Add -Wa,-Av8 to KBUILD_CFLAGS.
      sparc64: Fix sparc64_set_context stack handling.

Mike Frysinger (1):
      sparc: Fix system call tracing register handling.

wim.coekaerts@oracle.com (1):
      Add sun4v_wdt watchdog driver

 Documentation/watchdog/watchdog-parameters.txt |   4 ++
 arch/sparc/Makefile                            |   6 ++
 arch/sparc/include/uapi/asm/unistd.h           |   3 +-
 arch/sparc/kernel/entry.S                      |  17 +++++
 arch/sparc/kernel/hvcalls.S                    |   3 +-
 arch/sparc/kernel/signal_64.c                  |   2 +-
 arch/sparc/kernel/sparc_ksyms_64.c             |   1 +
 arch/sparc/kernel/syscalls.S                   |  36 +++++++++++
 arch/sparc/kernel/systbls_32.S                 |   2 +-
 arch/sparc/kernel/systbls_64.S                 |   4 +-
 drivers/watchdog/Kconfig                       |  11 ++++
 drivers/watchdog/Makefile                      |   1 +
 drivers/watchdog/sun4v_wdt.c                   | 191 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 13 files changed, 275 insertions(+), 6 deletions(-)
 create mode 100644 drivers/watchdog/sun4v_wdt.c

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2016-03-01  5:47 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2016-03-01  5:47 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


1) System call tracing doesn't handle register contents properly
   across the trace.  From Mike Frysinger.

2) Hook up copy_file_range

3) Build fix for 32-bit with newer tools.

4) New sun4v watchdog driver, from Wim Coekaerts.

5) Set context system call has to allow for servicable
   faults when we flush the register windows to memory.

Please pull, thanks a lot!

The following changes since commit 404a47410c26a115123885977053e9a1a4460929:

  Merge branch 'uaccess' (batched user access infrastructure) (2016-01-21 13:02:41 -0800)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc 

for you to fetch changes up to 397d1533b6cce0ccb5379542e2e6d079f6936c46:

  sparc64: Fix sparc64_set_context stack handling. (2016-03-01 00:25:32 -0500)

----------------------------------------------------------------
David S. Miller (3):
      sparc: Hook up copy_file_range syscall.
      sparc32: Add -Wa,-Av8 to KBUILD_CFLAGS.
      sparc64: Fix sparc64_set_context stack handling.

Mike Frysinger (1):
      sparc: Fix system call tracing register handling.

wim.coekaerts@oracle.com (1):
      Add sun4v_wdt watchdog driver

 Documentation/watchdog/watchdog-parameters.txt |   4 ++
 arch/sparc/Makefile                            |   6 ++
 arch/sparc/include/uapi/asm/unistd.h           |   3 +-
 arch/sparc/kernel/entry.S                      |  17 +++++
 arch/sparc/kernel/hvcalls.S                    |   3 +-
 arch/sparc/kernel/signal_64.c                  |   2 +-
 arch/sparc/kernel/sparc_ksyms_64.c             |   1 +
 arch/sparc/kernel/syscalls.S                   |  36 +++++++++++
 arch/sparc/kernel/systbls_32.S                 |   2 +-
 arch/sparc/kernel/systbls_64.S                 |   4 +-
 drivers/watchdog/Kconfig                       |  11 ++++
 drivers/watchdog/Makefile                      |   1 +
 drivers/watchdog/sun4v_wdt.c                   | 191 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 13 files changed, 275 insertions(+), 6 deletions(-)
 create mode 100644 drivers/watchdog/sun4v_wdt.c

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2016-03-28 19:45 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2016-03-28 19:45 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Minor typing cleanup from Joe Perches, and some comment typo fixes
from Adam Buchbinder.

Please pull, thanks!

The following changes since commit 142b9e6c9de0fd7c0dff9a1d4a25390de46abf5e:

  x86/kallsyms: fix GOLD link failure with new relative kallsyms table format (2016-03-20 13:52:37 -0700)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git 

for you to fetch changes up to 9ef595d83aea6b4d93c9a120df3c5db2e226929f:

  sparc: Convert naked unsigned uses to unsigned int (2016-03-20 21:28:58 -0700)

----------------------------------------------------------------
Adam Buchbinder (1):
      sparc: Fix misspellings in comments.

Joe Perches (1):
      sparc: Convert naked unsigned uses to unsigned int

 arch/sparc/include/asm/compat_signal.h |  8 ++++----
 arch/sparc/include/asm/obio.h          | 32 ++++++++++++++++----------------
 arch/sparc/include/asm/openprom.h      | 10 +++++-----
 arch/sparc/include/asm/pgtable_64.h    |  2 +-
 arch/sparc/include/asm/processor_64.h  |  2 +-
 arch/sparc/include/asm/sigcontext.h    |  2 +-
 arch/sparc/include/asm/tsb.h           |  2 +-
 arch/sparc/include/uapi/asm/stat.h     |  4 ++--
 arch/sparc/kernel/audit.c              | 12 ++++++------
 arch/sparc/kernel/compat_audit.c       | 12 ++++++------
 arch/sparc/kernel/entry.S              |  2 +-
 arch/sparc/kernel/ioport.c             |  6 +++---
 arch/sparc/kernel/kernel.h             | 12 ++++++------
 arch/sparc/kernel/leon_kernel.c        |  2 +-
 arch/sparc/kernel/process_64.c         |  2 +-
 arch/sparc/kernel/setup_32.c           |  2 +-
 arch/sparc/kernel/setup_64.c           |  2 +-
 arch/sparc/kernel/signal32.c           |  2 +-
 arch/sparc/kernel/sys_sparc_64.c       |  4 ++--
 arch/sparc/kernel/sysfs.c              |  2 +-
 arch/sparc/kernel/unaligned_64.c       |  4 ++--
 arch/sparc/mm/fault_32.c               |  8 ++++----
 arch/sparc/net/bpf_jit_comp.c          |  2 +-
 23 files changed, 68 insertions(+), 68 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2016-03-28 19:45 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2016-03-28 19:45 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Minor typing cleanup from Joe Perches, and some comment typo fixes
from Adam Buchbinder.

Please pull, thanks!

The following changes since commit 142b9e6c9de0fd7c0dff9a1d4a25390de46abf5e:

  x86/kallsyms: fix GOLD link failure with new relative kallsyms table format (2016-03-20 13:52:37 -0700)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git 

for you to fetch changes up to 9ef595d83aea6b4d93c9a120df3c5db2e226929f:

  sparc: Convert naked unsigned uses to unsigned int (2016-03-20 21:28:58 -0700)

----------------------------------------------------------------
Adam Buchbinder (1):
      sparc: Fix misspellings in comments.

Joe Perches (1):
      sparc: Convert naked unsigned uses to unsigned int

 arch/sparc/include/asm/compat_signal.h |  8 ++++----
 arch/sparc/include/asm/obio.h          | 32 ++++++++++++++++----------------
 arch/sparc/include/asm/openprom.h      | 10 +++++-----
 arch/sparc/include/asm/pgtable_64.h    |  2 +-
 arch/sparc/include/asm/processor_64.h  |  2 +-
 arch/sparc/include/asm/sigcontext.h    |  2 +-
 arch/sparc/include/asm/tsb.h           |  2 +-
 arch/sparc/include/uapi/asm/stat.h     |  4 ++--
 arch/sparc/kernel/audit.c              | 12 ++++++------
 arch/sparc/kernel/compat_audit.c       | 12 ++++++------
 arch/sparc/kernel/entry.S              |  2 +-
 arch/sparc/kernel/ioport.c             |  6 +++---
 arch/sparc/kernel/kernel.h             | 12 ++++++------
 arch/sparc/kernel/leon_kernel.c        |  2 +-
 arch/sparc/kernel/process_64.c         |  2 +-
 arch/sparc/kernel/setup_32.c           |  2 +-
 arch/sparc/kernel/setup_64.c           |  2 +-
 arch/sparc/kernel/signal32.c           |  2 +-
 arch/sparc/kernel/sys_sparc_64.c       |  4 ++--
 arch/sparc/kernel/sysfs.c              |  2 +-
 arch/sparc/kernel/unaligned_64.c       |  4 ++--
 arch/sparc/mm/fault_32.c               |  8 ++++----
 arch/sparc/net/bpf_jit_comp.c          |  2 +-
 23 files changed, 68 insertions(+), 68 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2016-05-02  5:10 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2016-05-02  5:10 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


1) Fix panics with SR-IOV, from Babu Moger.

2) Wire up preadv2/pwritev2.

3) Allow proper auto-loading of VIO devices, from John Paul Adrian
   Glaubitz.

4) Recognize Sonoma cpus, from Khalid Aziz.

5) Fix bootup regressions caused by syscall trace fixes made recently.

Please pull, thanks a lot!

The following changes since commit 1993b176a8224e371e0732ffada7ab9eb3b0912b:

  Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/ide (2016-03-28 15:17:02 -0500)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git 

for you to fetch changes up to 49fa5230462f9f2c4e97c81356473a6bdf06c422:

  sparc64: Fix bootup regressions on some Kconfig combinations. (2016-04-27 17:27:37 -0400)

----------------------------------------------------------------
Adrian Glaubitz (2):
      sparc: Implement and wire up modalias_show for vio.
      sparc: Implement and wire up vio_hotplug for vio.

Babu Moger (1):
      sparc/PCI: Fix for panic while enabling SR-IOV

Borislav Petkov (1):
      sparc/defconfigs: Remove CONFIG_IPV6_PRIVACY

David S. Miller (2):
      sparc: Write up preadv2/pwritev2 syscalls.
      sparc64: Fix bootup regressions on some Kconfig combinations.

Khalid Aziz (1):
      sparc64: recognize and support Sonoma CPU type

Sowmini Varadhan (1):
      sparc/pci: Refactor dev_archdata initialization into pci_init_dev_archdata

 arch/sparc/configs/sparc32_defconfig |  1 -
 arch/sparc/configs/sparc64_defconfig |  1 -
 arch/sparc/include/asm/spitfire.h    |  1 +
 arch/sparc/include/uapi/asm/unistd.h |  4 +++-
 arch/sparc/kernel/cherrs.S           | 14 +++++---------
 arch/sparc/kernel/cpu.c              |  6 ++++++
 arch/sparc/kernel/cpumap.c           |  1 +
 arch/sparc/kernel/fpu_traps.S        | 11 +++++------
 arch/sparc/kernel/head_64.S          | 32 ++++++++++++++++----------------
 arch/sparc/kernel/misctrap.S         | 12 ++++--------
 arch/sparc/kernel/pci.c              | 42 ++++++++++++++++++++++++++++++++++++------
 arch/sparc/kernel/setup_64.c         |  7 ++++++-
 arch/sparc/kernel/spiterrs.S         | 18 ++++++------------
 arch/sparc/kernel/systbls_32.S       |  2 +-
 arch/sparc/kernel/systbls_64.S       |  4 ++--
 arch/sparc/kernel/utrap.S            |  3 +--
 arch/sparc/kernel/vio.c              | 18 ++++++++++++++++++
 arch/sparc/kernel/vmlinux.lds.S      |  4 ++++
 arch/sparc/kernel/winfixup.S         |  3 +--
 arch/sparc/mm/init_64.c              |  3 +++
 20 files changed, 119 insertions(+), 68 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2016-05-02  5:10 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2016-05-02  5:10 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


1) Fix panics with SR-IOV, from Babu Moger.

2) Wire up preadv2/pwritev2.

3) Allow proper auto-loading of VIO devices, from John Paul Adrian
   Glaubitz.

4) Recognize Sonoma cpus, from Khalid Aziz.

5) Fix bootup regressions caused by syscall trace fixes made recently.

Please pull, thanks a lot!

The following changes since commit 1993b176a8224e371e0732ffada7ab9eb3b0912b:

  Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/ide (2016-03-28 15:17:02 -0500)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git 

for you to fetch changes up to 49fa5230462f9f2c4e97c81356473a6bdf06c422:

  sparc64: Fix bootup regressions on some Kconfig combinations. (2016-04-27 17:27:37 -0400)

----------------------------------------------------------------
Adrian Glaubitz (2):
      sparc: Implement and wire up modalias_show for vio.
      sparc: Implement and wire up vio_hotplug for vio.

Babu Moger (1):
      sparc/PCI: Fix for panic while enabling SR-IOV

Borislav Petkov (1):
      sparc/defconfigs: Remove CONFIG_IPV6_PRIVACY

David S. Miller (2):
      sparc: Write up preadv2/pwritev2 syscalls.
      sparc64: Fix bootup regressions on some Kconfig combinations.

Khalid Aziz (1):
      sparc64: recognize and support Sonoma CPU type

Sowmini Varadhan (1):
      sparc/pci: Refactor dev_archdata initialization into pci_init_dev_archdata

 arch/sparc/configs/sparc32_defconfig |  1 -
 arch/sparc/configs/sparc64_defconfig |  1 -
 arch/sparc/include/asm/spitfire.h    |  1 +
 arch/sparc/include/uapi/asm/unistd.h |  4 +++-
 arch/sparc/kernel/cherrs.S           | 14 +++++---------
 arch/sparc/kernel/cpu.c              |  6 ++++++
 arch/sparc/kernel/cpumap.c           |  1 +
 arch/sparc/kernel/fpu_traps.S        | 11 +++++------
 arch/sparc/kernel/head_64.S          | 32 ++++++++++++++++----------------
 arch/sparc/kernel/misctrap.S         | 12 ++++--------
 arch/sparc/kernel/pci.c              | 42 ++++++++++++++++++++++++++++++++++++------
 arch/sparc/kernel/setup_64.c         |  7 ++++++-
 arch/sparc/kernel/spiterrs.S         | 18 ++++++------------
 arch/sparc/kernel/systbls_32.S       |  2 +-
 arch/sparc/kernel/systbls_64.S       |  4 ++--
 arch/sparc/kernel/utrap.S            |  3 +--
 arch/sparc/kernel/vio.c              | 18 ++++++++++++++++++
 arch/sparc/kernel/vmlinux.lds.S      |  4 ++++
 arch/sparc/kernel/winfixup.S         |  3 +--
 arch/sparc/mm/init_64.c              |  3 +++
 20 files changed, 119 insertions(+), 68 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2016-05-22  6:03 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2016-05-22  6:03 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, linux-kernel, sparclinux


Some 32-bit kgdb cleanups from Sam Ravnborg, and a hugepage TLB flush
overhead fix on 64-bit from Nitin Gupta.

Please pull, thanks a lot!

The following changes since commit 33656a1f2ee5346c742d63ddd0e0970c95a56b70:

  Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs (2016-05-02 09:59:57 -0700)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc 

for you to fetch changes up to 24e49ee3d76b70853a96520e46b8837e5eae65b2:

  sparc64: Reduce TLB flushes during hugepte changes (2016-05-20 18:44:27 -0700)

----------------------------------------------------------------
David S. Miller (1):
      Merge branch 'sparc32-cosmetic-changes'

Nitin Gupta (1):
      sparc64: Reduce TLB flushes during hugepte changes

Sam Ravnborg (7):
      sparc32: drop hardcoding trap_level in kgdb_trap
      sparc32: drop local prototype in kgdb_32
      sparc32: use proper prototype for trapbase
      sparc32: fix build with STRICT_MM_TYPECHECKS
      sparc32: drop superfluous cast in calls to __nocache_pa()
      openprom: fix warning
      aeroflex/greth: fix warning about unused variable

 arch/sparc/include/asm/head_32.h      |  8 ++++----
 arch/sparc/include/asm/kgdb.h         |  2 +-
 arch/sparc/include/asm/page_32.h      |  2 --
 arch/sparc/include/asm/pgalloc_32.h   |  4 ++--
 arch/sparc/include/asm/pgtable_32.h   |  2 +-
 arch/sparc/include/asm/pgtable_64.h   | 43 ++++++++++++++++++++++++++++++++-----------
 arch/sparc/include/asm/tlbflush_64.h  |  3 ++-
 arch/sparc/kernel/entry.S             | 10 ++++------
 arch/sparc/kernel/kernel.h            |  1 +
 arch/sparc/kernel/kgdb_32.c           | 11 +++++------
 arch/sparc/kernel/setup_32.c          |  4 +---
 arch/sparc/mm/hugetlbpage.c           | 33 ++++++++++++++++++++++++++++-----
 arch/sparc/mm/init_64.c               | 12 ------------
 arch/sparc/mm/io-unit.c               |  4 ++--
 arch/sparc/mm/srmmu.c                 | 19 ++++++++++++-------
 arch/sparc/mm/tlb.c                   | 25 ++++++++++++++++++-------
 arch/sparc/mm/tsb.c                   | 32 +++++++++++++++++---------------
 drivers/net/ethernet/aeroflex/greth.c |  2 +-
 drivers/sbus/char/openprom.c          | 40 ++++++++++++++++------------------------
 19 files changed, 147 insertions(+), 110 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2016-05-22  6:03 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2016-05-22  6:03 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, linux-kernel, sparclinux


Some 32-bit kgdb cleanups from Sam Ravnborg, and a hugepage TLB flush
overhead fix on 64-bit from Nitin Gupta.

Please pull, thanks a lot!

The following changes since commit 33656a1f2ee5346c742d63ddd0e0970c95a56b70:

  Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs (2016-05-02 09:59:57 -0700)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc 

for you to fetch changes up to 24e49ee3d76b70853a96520e46b8837e5eae65b2:

  sparc64: Reduce TLB flushes during hugepte changes (2016-05-20 18:44:27 -0700)

----------------------------------------------------------------
David S. Miller (1):
      Merge branch 'sparc32-cosmetic-changes'

Nitin Gupta (1):
      sparc64: Reduce TLB flushes during hugepte changes

Sam Ravnborg (7):
      sparc32: drop hardcoding trap_level in kgdb_trap
      sparc32: drop local prototype in kgdb_32
      sparc32: use proper prototype for trapbase
      sparc32: fix build with STRICT_MM_TYPECHECKS
      sparc32: drop superfluous cast in calls to __nocache_pa()
      openprom: fix warning
      aeroflex/greth: fix warning about unused variable

 arch/sparc/include/asm/head_32.h      |  8 ++++----
 arch/sparc/include/asm/kgdb.h         |  2 +-
 arch/sparc/include/asm/page_32.h      |  2 --
 arch/sparc/include/asm/pgalloc_32.h   |  4 ++--
 arch/sparc/include/asm/pgtable_32.h   |  2 +-
 arch/sparc/include/asm/pgtable_64.h   | 43 ++++++++++++++++++++++++++++++++-----------
 arch/sparc/include/asm/tlbflush_64.h  |  3 ++-
 arch/sparc/kernel/entry.S             | 10 ++++------
 arch/sparc/kernel/kernel.h            |  1 +
 arch/sparc/kernel/kgdb_32.c           | 11 +++++------
 arch/sparc/kernel/setup_32.c          |  4 +---
 arch/sparc/mm/hugetlbpage.c           | 33 ++++++++++++++++++++++++++++-----
 arch/sparc/mm/init_64.c               | 12 ------------
 arch/sparc/mm/io-unit.c               |  4 ++--
 arch/sparc/mm/srmmu.c                 | 19 ++++++++++++-------
 arch/sparc/mm/tlb.c                   | 25 ++++++++++++++++++-------
 arch/sparc/mm/tsb.c                   | 32 +++++++++++++++++---------------
 drivers/net/ethernet/aeroflex/greth.c |  2 +-
 drivers/sbus/char/openprom.c          | 40 ++++++++++++++++------------------------
 19 files changed, 147 insertions(+), 110 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2016-06-01  4:17 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2016-06-01  4:17 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Please pull to get these sparc64 mmu context allocation and trap
return bug fixes, thanks.

The following changes since commit ecc5fbd5ef472a4c659dc56a5739b3f041c0530c:

  Merge tag 'pwm/for-4.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/thierry.reding/linux-pwm (2016-05-25 10:40:15 -0700)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc 

for you to fetch changes up to 7cafc0b8bf130f038b0ec2dcdd6a9de6dc59b65a:

  sparc64: Fix return from trap window fill crashes. (2016-05-29 18:55:54 -0700)

----------------------------------------------------------------
David S. Miller (3):
      sparc64: Take ctx_alloc_lock properly in hugetlb_setup().
      sparc: Harden signal return frame checks.
      sparc64: Fix return from trap window fill crashes.

 arch/sparc/include/asm/head_64.h |  4 ++++
 arch/sparc/include/asm/ttable.h  |  8 ++++----
 arch/sparc/kernel/Makefile       |  1 +
 arch/sparc/kernel/rtrap_64.S     | 57 +++++++++----------------------------------------------
 arch/sparc/kernel/signal32.c     | 46 +++++++++++++++++++++++++++++----------------
 arch/sparc/kernel/signal_32.c    | 41 +++++++++++++++++++++++++---------------
 arch/sparc/kernel/signal_64.c    | 31 +++++++++++++++++++-----------
 arch/sparc/kernel/sigutil_32.c   |  9 ++++++++-
 arch/sparc/kernel/sigutil_64.c   | 10 ++++++++--
 arch/sparc/kernel/urtt_fill.S    | 98 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 arch/sparc/mm/init_64.c          | 10 +++++++---
 11 files changed, 215 insertions(+), 100 deletions(-)
 create mode 100644 arch/sparc/kernel/urtt_fill.S

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2016-06-01  4:17 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2016-06-01  4:17 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Please pull to get these sparc64 mmu context allocation and trap
return bug fixes, thanks.

The following changes since commit ecc5fbd5ef472a4c659dc56a5739b3f041c0530c:

  Merge tag 'pwm/for-4.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/thierry.reding/linux-pwm (2016-05-25 10:40:15 -0700)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc 

for you to fetch changes up to 7cafc0b8bf130f038b0ec2dcdd6a9de6dc59b65a:

  sparc64: Fix return from trap window fill crashes. (2016-05-29 18:55:54 -0700)

----------------------------------------------------------------
David S. Miller (3):
      sparc64: Take ctx_alloc_lock properly in hugetlb_setup().
      sparc: Harden signal return frame checks.
      sparc64: Fix return from trap window fill crashes.

 arch/sparc/include/asm/head_64.h |  4 ++++
 arch/sparc/include/asm/ttable.h  |  8 ++++----
 arch/sparc/kernel/Makefile       |  1 +
 arch/sparc/kernel/rtrap_64.S     | 57 +++++++++----------------------------------------------
 arch/sparc/kernel/signal32.c     | 46 +++++++++++++++++++++++++++++----------------
 arch/sparc/kernel/signal_32.c    | 41 +++++++++++++++++++++++++---------------
 arch/sparc/kernel/signal_64.c    | 31 +++++++++++++++++++-----------
 arch/sparc/kernel/sigutil_32.c   |  9 ++++++++-
 arch/sparc/kernel/sigutil_64.c   | 10 ++++++++--
 arch/sparc/kernel/urtt_fill.S    | 98 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 arch/sparc/mm/init_64.c          | 10 +++++++---
 11 files changed, 215 insertions(+), 100 deletions(-)
 create mode 100644 arch/sparc/kernel/urtt_fill.S

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2016-07-29 18:15 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2016-07-29 18:15 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


1) Double spin lock bug in sunhv serial driver, from Dan Carpenter.

2) Use correct RSS estimate when determining whether to grow the
   huge TSB or not, from Mike Kravetz.

3) Don't use full three level page tables for hugepages, PMD level is
   sufficient.  From Nitin Gupta.

4) Mask out extraneous bits from TSB_TAG_ACCESS register, we only want
   the address bits.

Please pull, thanks a lot.

The following changes since commit 8448cefe499a45222430ebbcabcd9e26369895c3:

  Merge tag 'hsi-for-4.8' of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-hsi (2016-07-27 15:18:53 -0700)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc 

for you to fetch changes up to 7bc3777ca19cf9ecc5533980210f29c51df7fe5e:

  sparc64: Trim page tables for 8M hugepages (2016-07-29 10:49:16 -0700)

----------------------------------------------------------------
Dan Carpenter (2):
      sparc32: off by ones in BUG_ON()
      sparc: serial: sunhv: fix a double lock bug

David S. Miller (1):
      sparc: Don't leak context bits into thread->fault_address

Mike Kravetz (1):
      sparc64 mm: Fix base TSB sizing when hugetlb pages are used

Nitin Gupta (1):
      sparc64: Trim page tables for 8M hugepages

 arch/sparc/include/asm/hugetlb.h    |  12 +++----
 arch/sparc/include/asm/mmu_64.h     |   3 +-
 arch/sparc/include/asm/pgtable_64.h |   7 +++-
 arch/sparc/include/asm/tsb.h        |   2 +-
 arch/sparc/kernel/dtlb_prot.S       |   4 +--
 arch/sparc/kernel/irq_32.c          |   4 +--
 arch/sparc/kernel/ktlb.S            |  12 +++++++
 arch/sparc/kernel/tsb.S             |  12 +++++--
 arch/sparc/mm/fault_64.c            |  10 +++---
 arch/sparc/mm/hugetlbpage.c         | 170 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------------
 arch/sparc/mm/init_64.c             |   7 ++--
 arch/sparc/mm/tlb.c                 |   4 +--
 arch/sparc/mm/tsb.c                 |  14 ++++----
 drivers/tty/serial/sunhv.c          |   6 ----
 14 files changed, 173 insertions(+), 94 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2016-07-29 18:15 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2016-07-29 18:15 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


1) Double spin lock bug in sunhv serial driver, from Dan Carpenter.

2) Use correct RSS estimate when determining whether to grow the
   huge TSB or not, from Mike Kravetz.

3) Don't use full three level page tables for hugepages, PMD level is
   sufficient.  From Nitin Gupta.

4) Mask out extraneous bits from TSB_TAG_ACCESS register, we only want
   the address bits.

Please pull, thanks a lot.

The following changes since commit 8448cefe499a45222430ebbcabcd9e26369895c3:

  Merge tag 'hsi-for-4.8' of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-hsi (2016-07-27 15:18:53 -0700)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc 

for you to fetch changes up to 7bc3777ca19cf9ecc5533980210f29c51df7fe5e:

  sparc64: Trim page tables for 8M hugepages (2016-07-29 10:49:16 -0700)

----------------------------------------------------------------
Dan Carpenter (2):
      sparc32: off by ones in BUG_ON()
      sparc: serial: sunhv: fix a double lock bug

David S. Miller (1):
      sparc: Don't leak context bits into thread->fault_address

Mike Kravetz (1):
      sparc64 mm: Fix base TSB sizing when hugetlb pages are used

Nitin Gupta (1):
      sparc64: Trim page tables for 8M hugepages

 arch/sparc/include/asm/hugetlb.h    |  12 +++----
 arch/sparc/include/asm/mmu_64.h     |   3 +-
 arch/sparc/include/asm/pgtable_64.h |   7 +++-
 arch/sparc/include/asm/tsb.h        |   2 +-
 arch/sparc/kernel/dtlb_prot.S       |   4 +--
 arch/sparc/kernel/irq_32.c          |   4 +--
 arch/sparc/kernel/ktlb.S            |  12 +++++++
 arch/sparc/kernel/tsb.S             |  12 +++++--
 arch/sparc/mm/fault_64.c            |  10 +++---
 arch/sparc/mm/hugetlbpage.c         | 170 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------------
 arch/sparc/mm/init_64.c             |   7 ++--
 arch/sparc/mm/tlb.c                 |   4 +--
 arch/sparc/mm/tsb.c                 |  14 ++++----
 drivers/tty/serial/sunhv.c          |   6 ----
 14 files changed, 173 insertions(+), 94 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2016-10-02 13:02 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2016-10-02 13:02 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


1) Fix section mismatches in some builds, from Paul Gortmaker.

2) Need to count huge zero page mappings when doing TSB sizing,
   from Mike Kravetz.

3) Fix handing of cpu_possible_mask when nr_cpus module option
   is specified, from Atish Patra.

4) Don't allocate irq stacks until nr_irqs has been processed,
   also from Atish Patra.

The following changes since commit 8ab293e3a1376574e11f9059c09cc0db212546cb:

  Merge branch 'for-4.8-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup (2016-09-27 16:43:11 -0700)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git 

for you to fetch changes up to 2a0100d7beebd2fb2c436852648f75396253e9f8:

  sparc64: Fix non-SMP build. (2016-09-28 20:40:52 -0400)

----------------------------------------------------------------
Atish Patra (2):
      sparc64: Fix cpu_possible_mask if nr_cpus is set
      sparc64: Fix irq stack bootmem allocation.

David S. Miller (1):
      sparc64: Fix non-SMP build.

Mike Kravetz (1):
      sparc64 mm: Fix more TSB sizing issues

Paul Gortmaker (1):
      sparc64: fix section mismatch in find_numa_latencies_for_group

 arch/sparc/include/asm/page_64.h |  1 +
 arch/sparc/include/asm/smp_64.h  |  2 ++
 arch/sparc/kernel/setup_64.c     | 26 ++++++++++++++++++++++++++
 arch/sparc/kernel/smp_64.c       | 14 ++++++++++++++
 arch/sparc/mm/fault_64.c         |  1 +
 arch/sparc/mm/init_64.c          | 22 +++-------------------
 arch/sparc/mm/tlb.c              | 35 +++++++++++++++++++++++++++++++----
 arch/sparc/mm/tsb.c              | 18 ++++++++++++------
 8 files changed, 90 insertions(+), 29 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2016-10-02 13:02 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2016-10-02 13:02 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


1) Fix section mismatches in some builds, from Paul Gortmaker.

2) Need to count huge zero page mappings when doing TSB sizing,
   from Mike Kravetz.

3) Fix handing of cpu_possible_mask when nr_cpus module option
   is specified, from Atish Patra.

4) Don't allocate irq stacks until nr_irqs has been processed,
   also from Atish Patra.

The following changes since commit 8ab293e3a1376574e11f9059c09cc0db212546cb:

  Merge branch 'for-4.8-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup (2016-09-27 16:43:11 -0700)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git 

for you to fetch changes up to 2a0100d7beebd2fb2c436852648f75396253e9f8:

  sparc64: Fix non-SMP build. (2016-09-28 20:40:52 -0400)

----------------------------------------------------------------
Atish Patra (2):
      sparc64: Fix cpu_possible_mask if nr_cpus is set
      sparc64: Fix irq stack bootmem allocation.

David S. Miller (1):
      sparc64: Fix non-SMP build.

Mike Kravetz (1):
      sparc64 mm: Fix more TSB sizing issues

Paul Gortmaker (1):
      sparc64: fix section mismatch in find_numa_latencies_for_group

 arch/sparc/include/asm/page_64.h |  1 +
 arch/sparc/include/asm/smp_64.h  |  2 ++
 arch/sparc/kernel/setup_64.c     | 26 ++++++++++++++++++++++++++
 arch/sparc/kernel/smp_64.c       | 14 ++++++++++++++
 arch/sparc/mm/fault_64.c         |  1 +
 arch/sparc/mm/init_64.c          | 22 +++-------------------
 arch/sparc/mm/tlb.c              | 35 +++++++++++++++++++++++++++++++----
 arch/sparc/mm/tsb.c              | 18 ++++++++++++------
 8 files changed, 90 insertions(+), 29 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2016-10-06  7:57 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2016-10-06  7:57 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Besides some cleanups the major thing here is supporting relaxed
ordering PCIe transactions on newer sparc64 machines, from Chris
Hyser.

Please pull, thanks a lot!

The following changes since commit c8d2bc9bc39ebea8437fd974fdbc21847bb897a3:

  Linux 4.8 (2016-10-02 16:24:33 -0700)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git 

for you to fetch changes up to 98e98eb6a8a179a444a30d903714fab356726155:

  sparc: fixing ident and beautifying code (2016-10-06 01:46:40 -0400)

----------------------------------------------------------------
David S. Miller (1):
      Merge branch 'sparc-pcie-perf'

Paul Gortmaker (1):
      sparc: migrate exception table users off module.h and onto extable.h

chris hyser (2):
      sparc64: Enable PCI IOMMU version 2 API
      sparc64: Enable setting "relaxed ordering" in IOMMU mappings

netmonk@netmonk.org (1):
      sparc: fixing ident and beautifying code

 arch/sparc/include/asm/hypervisor.h |  1 +
 arch/sparc/kernel/kprobes.c         |  2 +-
 arch/sparc/kernel/pci_sun4v.c       | 52 +++++++++++++++++++++++++++++++++++++++++-----------
 arch/sparc/kernel/traps_64.c        |  2 +-
 arch/sparc/kernel/unaligned_64.c    |  2 +-
 arch/sparc/mm/fault_64.c            |  2 +-
 arch/sparc/mm/init_64.c             |  2 +-
 arch/sparc/prom/ranges.c            | 52 ++++++++++++++++++++++++----------------------------
 8 files changed, 71 insertions(+), 44 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2016-10-06  7:57 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2016-10-06  7:57 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Besides some cleanups the major thing here is supporting relaxed
ordering PCIe transactions on newer sparc64 machines, from Chris
Hyser.

Please pull, thanks a lot!

The following changes since commit c8d2bc9bc39ebea8437fd974fdbc21847bb897a3:

  Linux 4.8 (2016-10-02 16:24:33 -0700)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git 

for you to fetch changes up to 98e98eb6a8a179a444a30d903714fab356726155:

  sparc: fixing ident and beautifying code (2016-10-06 01:46:40 -0400)

----------------------------------------------------------------
David S. Miller (1):
      Merge branch 'sparc-pcie-perf'

Paul Gortmaker (1):
      sparc: migrate exception table users off module.h and onto extable.h

chris hyser (2):
      sparc64: Enable PCI IOMMU version 2 API
      sparc64: Enable setting "relaxed ordering" in IOMMU mappings

netmonk@netmonk.org (1):
      sparc: fixing ident and beautifying code

 arch/sparc/include/asm/hypervisor.h |  1 +
 arch/sparc/kernel/kprobes.c         |  2 +-
 arch/sparc/kernel/pci_sun4v.c       | 52 +++++++++++++++++++++++++++++++++++++++++-----------
 arch/sparc/kernel/traps_64.c        |  2 +-
 arch/sparc/kernel/unaligned_64.c    |  2 +-
 arch/sparc/mm/fault_64.c            |  2 +-
 arch/sparc/mm/init_64.c             |  2 +-
 arch/sparc/prom/ranges.c            | 52 ++++++++++++++++++++++++----------------------------
 8 files changed, 71 insertions(+), 44 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2016-10-31  1:04 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2016-10-31  1:04 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Several sparc64 bug fixes here:

1) Make the user copy routines on sparc64 return a properly accurate
   residual length when an exception occurs.

2) We can get enormous kernel TLB range flush requests from vmalloc
   unmaps, so handle these more gracefully by doing full flushes
   instead of going page-by-page.

3) Cope properly with negative branch offsets in sparc jump-label
   support, from James Clarke.

4) Some old-style decl GCC warning fixups from Tobias Klauser.

Please pull, thanks a lot!

The following changes since commit 07d9a380680d1c0eb51ef87ff2eab5c994949e69:

  Linux 4.9-rc2 (2016-10-23 17:10:14 -0700)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git 

for you to fetch changes up to a74ad5e660a9ee1d071665e7e8ad822784a2dc7f:

  sparc64: Handle extremely large kernel TLB range flushes more gracefully. (2016-10-27 09:11:05 -0700)

----------------------------------------------------------------
Atish Patra (1):
      sparc64: Setup a scheduling domain for highest level cache.

David S. Miller (16):
      sparc64: Delete __ret_efault.
      sparc64: Prepare to move to more saner user copy exception handling.
      sparc64: Convert copy_in_user to accurate exception reporting.
      sparc64: Convert GENcopy_{from,to}_user to accurate exception reporting.
      sparc64: Convert U1copy_{from,to}_user to accurate exception reporting.
      sparc64: Convert NG4copy_{from,to}_user to accurate exception reporting.
      sparc64: Convert NGcopy_{from,to}_user to accurate exception reporting.
      sparc64: Convert NG2copy_{from,to}_user to accurate exception reporting.
      sparc64: Convert U3copy_{from,to}_user to accurate exception reporting.
      sparc64: Delete now unused user copy assembler helpers.
      sparc64: Delete now unused user copy fixup functions.
      sparc64: Fix illegal relative branches in hypervisor patched TLB code.
      sparc64: Handle extremely large kernel TSB range flushes sanely.
      sparc64: Fix instruction count in comment for __hypervisor_flush_tlb_pending.
      sparc64: Fix illegal relative branches in hypervisor patched TLB cross-call code.
      sparc64: Handle extremely large kernel TLB range flushes more gracefully.

James Clarke (1):
      sparc: Handle negative offsets in arch_jump_label_transform

Tobias Klauser (2):
      sparc64: Fix old style declaration GCC warnings
      sparc32: Fix old style declaration GCC warnings

 arch/sparc/include/asm/cpudata_64.h  |   5 +-
 arch/sparc/include/asm/spinlock_32.h |   2 +-
 arch/sparc/include/asm/spinlock_64.h |  12 +--
 arch/sparc/include/asm/topology_64.h |   8 +-
 arch/sparc/include/asm/uaccess_64.h  |  28 +------
 arch/sparc/kernel/head_64.S          |  37 ---------
 arch/sparc/kernel/jump_label.c       |  23 ++++--
 arch/sparc/kernel/mdesc.c            |  46 ++++++-----
 arch/sparc/kernel/smp_64.c           |   8 ++
 arch/sparc/lib/GENcopy_from_user.S   |   4 +-
 arch/sparc/lib/GENcopy_to_user.S     |   4 +-
 arch/sparc/lib/GENmemcpy.S           |  48 ++++++++----
 arch/sparc/lib/Makefile              |   2 +-
 arch/sparc/lib/NG2copy_from_user.S   |   8 +-
 arch/sparc/lib/NG2copy_to_user.S     |   8 +-
 arch/sparc/lib/NG2memcpy.S           | 228 +++++++++++++++++++++++++++++++++--------------------
 arch/sparc/lib/NG4copy_from_user.S   |   8 +-
 arch/sparc/lib/NG4copy_to_user.S     |   8 +-
 arch/sparc/lib/NG4memcpy.S           | 294 +++++++++++++++++++++++++++++++++++++++++++++++++++-----------------
 arch/sparc/lib/NGcopy_from_user.S    |   4 +-
 arch/sparc/lib/NGcopy_to_user.S      |   4 +-
 arch/sparc/lib/NGmemcpy.S            | 233 ++++++++++++++++++++++++++++++++++++------------------
 arch/sparc/lib/U1copy_from_user.S    |   8 +-
 arch/sparc/lib/U1copy_to_user.S      |   8 +-
 arch/sparc/lib/U1memcpy.S            | 345 +++++++++++++++++++++++++++++++++++++++++++++++++++++---------------------------
 arch/sparc/lib/U3copy_from_user.S    |   8 +-
 arch/sparc/lib/U3copy_to_user.S      |   8 +-
 arch/sparc/lib/U3memcpy.S            | 227 ++++++++++++++++++++++++++++++++++++-----------------
 arch/sparc/lib/copy_in_user.S        |  35 ++++++---
 arch/sparc/lib/user_fixup.c          |  71 -----------------
 arch/sparc/mm/tsb.c                  |  17 ++++
 arch/sparc/mm/ultra.S                | 374 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----------------
 32 files changed, 1400 insertions(+), 723 deletions(-)
 delete mode 100644 arch/sparc/lib/user_fixup.c

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2016-10-31  1:04 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2016-10-31  1:04 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Several sparc64 bug fixes here:

1) Make the user copy routines on sparc64 return a properly accurate
   residual length when an exception occurs.

2) We can get enormous kernel TLB range flush requests from vmalloc
   unmaps, so handle these more gracefully by doing full flushes
   instead of going page-by-page.

3) Cope properly with negative branch offsets in sparc jump-label
   support, from James Clarke.

4) Some old-style decl GCC warning fixups from Tobias Klauser.

Please pull, thanks a lot!

The following changes since commit 07d9a380680d1c0eb51ef87ff2eab5c994949e69:

  Linux 4.9-rc2 (2016-10-23 17:10:14 -0700)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git 

for you to fetch changes up to a74ad5e660a9ee1d071665e7e8ad822784a2dc7f:

  sparc64: Handle extremely large kernel TLB range flushes more gracefully. (2016-10-27 09:11:05 -0700)

----------------------------------------------------------------
Atish Patra (1):
      sparc64: Setup a scheduling domain for highest level cache.

David S. Miller (16):
      sparc64: Delete __ret_efault.
      sparc64: Prepare to move to more saner user copy exception handling.
      sparc64: Convert copy_in_user to accurate exception reporting.
      sparc64: Convert GENcopy_{from,to}_user to accurate exception reporting.
      sparc64: Convert U1copy_{from,to}_user to accurate exception reporting.
      sparc64: Convert NG4copy_{from,to}_user to accurate exception reporting.
      sparc64: Convert NGcopy_{from,to}_user to accurate exception reporting.
      sparc64: Convert NG2copy_{from,to}_user to accurate exception reporting.
      sparc64: Convert U3copy_{from,to}_user to accurate exception reporting.
      sparc64: Delete now unused user copy assembler helpers.
      sparc64: Delete now unused user copy fixup functions.
      sparc64: Fix illegal relative branches in hypervisor patched TLB code.
      sparc64: Handle extremely large kernel TSB range flushes sanely.
      sparc64: Fix instruction count in comment for __hypervisor_flush_tlb_pending.
      sparc64: Fix illegal relative branches in hypervisor patched TLB cross-call code.
      sparc64: Handle extremely large kernel TLB range flushes more gracefully.

James Clarke (1):
      sparc: Handle negative offsets in arch_jump_label_transform

Tobias Klauser (2):
      sparc64: Fix old style declaration GCC warnings
      sparc32: Fix old style declaration GCC warnings

 arch/sparc/include/asm/cpudata_64.h  |   5 +-
 arch/sparc/include/asm/spinlock_32.h |   2 +-
 arch/sparc/include/asm/spinlock_64.h |  12 +--
 arch/sparc/include/asm/topology_64.h |   8 +-
 arch/sparc/include/asm/uaccess_64.h  |  28 +------
 arch/sparc/kernel/head_64.S          |  37 ---------
 arch/sparc/kernel/jump_label.c       |  23 ++++--
 arch/sparc/kernel/mdesc.c            |  46 ++++++-----
 arch/sparc/kernel/smp_64.c           |   8 ++
 arch/sparc/lib/GENcopy_from_user.S   |   4 +-
 arch/sparc/lib/GENcopy_to_user.S     |   4 +-
 arch/sparc/lib/GENmemcpy.S           |  48 ++++++++----
 arch/sparc/lib/Makefile              |   2 +-
 arch/sparc/lib/NG2copy_from_user.S   |   8 +-
 arch/sparc/lib/NG2copy_to_user.S     |   8 +-
 arch/sparc/lib/NG2memcpy.S           | 228 +++++++++++++++++++++++++++++++++--------------------
 arch/sparc/lib/NG4copy_from_user.S   |   8 +-
 arch/sparc/lib/NG4copy_to_user.S     |   8 +-
 arch/sparc/lib/NG4memcpy.S           | 294 +++++++++++++++++++++++++++++++++++++++++++++++++++-----------------
 arch/sparc/lib/NGcopy_from_user.S    |   4 +-
 arch/sparc/lib/NGcopy_to_user.S      |   4 +-
 arch/sparc/lib/NGmemcpy.S            | 233 ++++++++++++++++++++++++++++++++++++------------------
 arch/sparc/lib/U1copy_from_user.S    |   8 +-
 arch/sparc/lib/U1copy_to_user.S      |   8 +-
 arch/sparc/lib/U1memcpy.S            | 345 +++++++++++++++++++++++++++++++++++++++++++++++++++++---------------------------
 arch/sparc/lib/U3copy_from_user.S    |   8 +-
 arch/sparc/lib/U3copy_to_user.S      |   8 +-
 arch/sparc/lib/U3memcpy.S            | 227 ++++++++++++++++++++++++++++++++++++-----------------
 arch/sparc/lib/copy_in_user.S        |  35 ++++++---
 arch/sparc/lib/user_fixup.c          |  71 -----------------
 arch/sparc/mm/tsb.c                  |  17 ++++
 arch/sparc/mm/ultra.S                | 374 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----------------
 32 files changed, 1400 insertions(+), 723 deletions(-)
 delete mode 100644 arch/sparc/lib/user_fixup.c

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2016-11-21 18:41 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2016-11-21 18:41 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


1) With modern networking cards we can run out of 32-bit DMA space, so
   support 64-bit DMA addressing when possible on sparc64.  From Dave
   Tushar.

2) Some signal frame validation checks are inverted on sparc32, fix from
   Andreas Larsson.

3) Lockdep tables can get too large in some circumstances on sparc64,
   add a way to adjust the size a bit.  From Babu Moger.

4) Fix NUMA node probing on some sun4v systems, from Thomas Tai.

Please pull, thanks a lot!

The following changes since commit 27bcd37e0240bbe33f0efe244b5aad52104115b3:

  Merge tag 'sound-4.9-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound (2016-11-09 11:39:02 -0800)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git 

for you to fetch changes up to 9dd35d6882a10629b95f2bc41a541740ef24c226:

  sparc: drop duplicate header scatterlist.h (2016-11-19 10:43:07 -0500)

----------------------------------------------------------------
Andreas Larsson (1):
      sparc32: Fix inverted invalid_frame_pointer checks on sigreturns

Babu Moger (2):
      config: Adding the new config parameter CONFIG_PROVE_LOCKING_SMALL for sparc
      lockdep: Limit static allocations if PROVE_LOCKING_SMALL is defined

Dave Kleikamp (1):
      sparc64: Add FORCE_MAX_ZONEORDER and default to 13

David S. Miller (2):
      Merge branch 'sun4v-64bit-DMA'
      Merge branch 'sparc-lockdep-small'

Geliang Tang (1):
      sparc: drop duplicate header scatterlist.h

Thomas Tai (2):
      sparc64: Fix find_node warning if numa node cannot be found
      sparc64: fix compile warning section mismatch in find_node()

Tushar Dave (7):
      sparc64: Add ATU (new IOMMU) support
      sparc64: Initialize iommu_map_table and iommu_pool
      sparc64: Bind PCIe devices to use IOMMU v2 service
      sparc64: Enable sun4v dma ops to use IOMMU v2 APIs
      sparc64: Enable 64-bit DMA
      sunqe: Fix compiler warnings
      sunbmac: Fix compiler warning

 arch/sparc/Kconfig                  |  23 +++++++++
 arch/sparc/include/asm/hypervisor.h | 343 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 arch/sparc/include/asm/iommu_64.h   |  28 ++++++++++
 arch/sparc/kernel/hvapi.c           |   1 +
 arch/sparc/kernel/iommu.c           |   8 ++-
 arch/sparc/kernel/iommu_common.h    |   1 -
 arch/sparc/kernel/pci_sun4v.c       | 418 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---------------------
 arch/sparc/kernel/pci_sun4v.h       |  21 ++++++++
 arch/sparc/kernel/pci_sun4v_asm.S   |  68 ++++++++++++++++++++++++
 arch/sparc/kernel/signal_32.c       |   4 +-
 arch/sparc/mm/init_64.c             |  71 ++++++++++++++++++++++---
 drivers/net/ethernet/sun/sunbmac.c  |   5 +-
 drivers/net/ethernet/sun/sunbmac.h  |   2 +-
 drivers/net/ethernet/sun/sunqe.c    |  11 ++--
 drivers/net/ethernet/sun/sunqe.h    |   4 +-
 kernel/locking/lockdep_internals.h  |  20 ++++++--
 lib/Kconfig.debug                   |   3 ++
 17 files changed, 948 insertions(+), 83 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2016-11-21 18:41 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2016-11-21 18:41 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


1) With modern networking cards we can run out of 32-bit DMA space, so
   support 64-bit DMA addressing when possible on sparc64.  From Dave
   Tushar.

2) Some signal frame validation checks are inverted on sparc32, fix from
   Andreas Larsson.

3) Lockdep tables can get too large in some circumstances on sparc64,
   add a way to adjust the size a bit.  From Babu Moger.

4) Fix NUMA node probing on some sun4v systems, from Thomas Tai.

Please pull, thanks a lot!

The following changes since commit 27bcd37e0240bbe33f0efe244b5aad52104115b3:

  Merge tag 'sound-4.9-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound (2016-11-09 11:39:02 -0800)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git 

for you to fetch changes up to 9dd35d6882a10629b95f2bc41a541740ef24c226:

  sparc: drop duplicate header scatterlist.h (2016-11-19 10:43:07 -0500)

----------------------------------------------------------------
Andreas Larsson (1):
      sparc32: Fix inverted invalid_frame_pointer checks on sigreturns

Babu Moger (2):
      config: Adding the new config parameter CONFIG_PROVE_LOCKING_SMALL for sparc
      lockdep: Limit static allocations if PROVE_LOCKING_SMALL is defined

Dave Kleikamp (1):
      sparc64: Add FORCE_MAX_ZONEORDER and default to 13

David S. Miller (2):
      Merge branch 'sun4v-64bit-DMA'
      Merge branch 'sparc-lockdep-small'

Geliang Tang (1):
      sparc: drop duplicate header scatterlist.h

Thomas Tai (2):
      sparc64: Fix find_node warning if numa node cannot be found
      sparc64: fix compile warning section mismatch in find_node()

Tushar Dave (7):
      sparc64: Add ATU (new IOMMU) support
      sparc64: Initialize iommu_map_table and iommu_pool
      sparc64: Bind PCIe devices to use IOMMU v2 service
      sparc64: Enable sun4v dma ops to use IOMMU v2 APIs
      sparc64: Enable 64-bit DMA
      sunqe: Fix compiler warnings
      sunbmac: Fix compiler warning

 arch/sparc/Kconfig                  |  23 +++++++++
 arch/sparc/include/asm/hypervisor.h | 343 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 arch/sparc/include/asm/iommu_64.h   |  28 ++++++++++
 arch/sparc/kernel/hvapi.c           |   1 +
 arch/sparc/kernel/iommu.c           |   8 ++-
 arch/sparc/kernel/iommu_common.h    |   1 -
 arch/sparc/kernel/pci_sun4v.c       | 418 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---------------------
 arch/sparc/kernel/pci_sun4v.h       |  21 ++++++++
 arch/sparc/kernel/pci_sun4v_asm.S   |  68 ++++++++++++++++++++++++
 arch/sparc/kernel/signal_32.c       |   4 +-
 arch/sparc/mm/init_64.c             |  71 ++++++++++++++++++++++---
 drivers/net/ethernet/sun/sunbmac.c  |   5 +-
 drivers/net/ethernet/sun/sunbmac.h  |   2 +-
 drivers/net/ethernet/sun/sunqe.c    |  11 ++--
 drivers/net/ethernet/sun/sunqe.h    |   4 +-
 kernel/locking/lockdep_internals.h  |  20 ++++++--
 lib/Kconfig.debug                   |   3 ++
 17 files changed, 948 insertions(+), 83 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2016-11-28 21:03 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2016-11-28 21:03 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Please pull to get these two ugly build warning fixes for sparc,
thanks!

The following changes since commit 9dd35d6882a10629b95f2bc41a541740ef24c226:

  sparc: drop duplicate header scatterlist.h (2016-11-19 10:43:07 -0500)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git 

for you to fetch changes up to 16f46050e7094a95554555a505a984535d253cf6:

  dbri: Fix compiler warning (2016-11-28 15:51:31 -0500)

----------------------------------------------------------------
Tushar Dave (2):
      qlogicpti: Fix compiler warnings
      dbri: Fix compiler warning

 drivers/scsi/qlogicpti.h |  4 ++--
 sound/sparc/dbri.c       | 26 ++++++++++++++++----------
 2 files changed, 18 insertions(+), 12 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2016-11-28 21:03 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2016-11-28 21:03 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Please pull to get these two ugly build warning fixes for sparc,
thanks!

The following changes since commit 9dd35d6882a10629b95f2bc41a541740ef24c226:

  sparc: drop duplicate header scatterlist.h (2016-11-19 10:43:07 -0500)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git 

for you to fetch changes up to 16f46050e7094a95554555a505a984535d253cf6:

  dbri: Fix compiler warning (2016-11-28 15:51:31 -0500)

----------------------------------------------------------------
Tushar Dave (2):
      qlogicpti: Fix compiler warnings
      dbri: Fix compiler warning

 drivers/scsi/qlogicpti.h |  4 ++--
 sound/sparc/dbri.c       | 26 ++++++++++++++++----------
 2 files changed, 18 insertions(+), 12 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2016-12-06 17:19 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2016-12-06 17:19 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Please pull to get this quick use-before-NULL-check from Dan
Carpenter.

Thanks!

The following changes since commit 88abd8249ee8bcebb98c90e890ea5e342db832af:

  Merge branch 'for-4.9-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata (2016-11-28 14:17:10 -0800)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git 

for you to fetch changes up to 163117e8d4fd7a235ec48479e31bbda0c74eff56:

  dbri: move dereference after check for NULL (2016-12-06 12:18:22 -0500)

----------------------------------------------------------------
Dan Carpenter (1):
      dbri: move dereference after check for NULL

 sound/sparc/dbri.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2016-12-06 17:19 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2016-12-06 17:19 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Please pull to get this quick use-before-NULL-check from Dan
Carpenter.

Thanks!

The following changes since commit 88abd8249ee8bcebb98c90e890ea5e342db832af:

  Merge branch 'for-4.9-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata (2016-11-28 14:17:10 -0800)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git 

for you to fetch changes up to 163117e8d4fd7a235ec48479e31bbda0c74eff56:

  dbri: move dereference after check for NULL (2016-12-06 12:18:22 -0500)

----------------------------------------------------------------
Dan Carpenter (1):
      dbri: move dereference after check for NULL

 sound/sparc/dbri.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2016-12-12 15:10 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2016-12-12 15:10 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Just a bunch of small cleanups and fixes here, and support for user
probes from Allen Pais.

Please pull, thanks a lot!

The following changes since commit 69973b830859bc6529a7a0468ba0d80ee5117826:

  Linux 4.9 (2016-12-11 11:17:54 -0800)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git 

for you to fetch changes up to 541cc39433a81d581f2738f59f7bd310ff1d512a:

  sparc: fix a building error reported by kbuild (2016-12-11 18:25:20 -0800)

----------------------------------------------------------------
Allen Pais (1):
      sparc64:Support User Probes for sparc

Dan Carpenter (4):
      sparc64: move dereference after check for NULL
      sparc64: make string buffers large enough
      sparc: leon: Fix a retry loop in leon_init_timers()
      sparc64: restore irq in error paths in iommu

Geliang Tang (1):
      sparc: kernel: use builtin_platform_driver

Gonglei \(Arei\) (1):
      sparc: fix a building error reported by kbuild

Kirill A. Shutemov (1):
      sparc64: fix typo in pgd_clear()

 arch/Kconfig                            |   1 +
 arch/sparc/Kconfig                      |   3 +
 arch/sparc/configs/sparc64_defconfig    |   1 +
 arch/sparc/include/asm/kdebug_64.h      |   2 +
 arch/sparc/include/asm/pgtable_64.h     |   2 +-
 arch/sparc/include/asm/ptrace.h         |  35 ++++++++-
 arch/sparc/include/asm/thread_info_64.h |   6 +-
 arch/sparc/include/asm/topology_64.h    |   1 +
 arch/sparc/include/asm/ttable.h         |   6 ++
 arch/sparc/include/asm/uprobes.h        |  59 +++++++++++++++
 arch/sparc/kernel/Makefile              |   1 +
 arch/sparc/kernel/leon_kernel.c         |  56 +++++++-------
 arch/sparc/kernel/pci_sun4v.c           |   7 +-
 arch/sparc/kernel/power.c               |   7 +-
 arch/sparc/kernel/ptrace_64.c           |  54 ++++++++++++++
 arch/sparc/kernel/signal_64.c           |   2 +
 arch/sparc/kernel/traps_64.c            |   4 +-
 arch/sparc/kernel/ttable_64.S           |   2 +-
 arch/sparc/kernel/uprobes.c             | 331 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 include/linux/uprobes.h                 |   1 +
 20 files changed, 537 insertions(+), 44 deletions(-)
 create mode 100644 arch/sparc/include/asm/uprobes.h
 create mode 100644 arch/sparc/kernel/uprobes.c

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2016-12-12 15:10 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2016-12-12 15:10 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Just a bunch of small cleanups and fixes here, and support for user
probes from Allen Pais.

Please pull, thanks a lot!

The following changes since commit 69973b830859bc6529a7a0468ba0d80ee5117826:

  Linux 4.9 (2016-12-11 11:17:54 -0800)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git 

for you to fetch changes up to 541cc39433a81d581f2738f59f7bd310ff1d512a:

  sparc: fix a building error reported by kbuild (2016-12-11 18:25:20 -0800)

----------------------------------------------------------------
Allen Pais (1):
      sparc64:Support User Probes for sparc

Dan Carpenter (4):
      sparc64: move dereference after check for NULL
      sparc64: make string buffers large enough
      sparc: leon: Fix a retry loop in leon_init_timers()
      sparc64: restore irq in error paths in iommu

Geliang Tang (1):
      sparc: kernel: use builtin_platform_driver

Gonglei \(Arei\) (1):
      sparc: fix a building error reported by kbuild

Kirill A. Shutemov (1):
      sparc64: fix typo in pgd_clear()

 arch/Kconfig                            |   1 +
 arch/sparc/Kconfig                      |   3 +
 arch/sparc/configs/sparc64_defconfig    |   1 +
 arch/sparc/include/asm/kdebug_64.h      |   2 +
 arch/sparc/include/asm/pgtable_64.h     |   2 +-
 arch/sparc/include/asm/ptrace.h         |  35 ++++++++-
 arch/sparc/include/asm/thread_info_64.h |   6 +-
 arch/sparc/include/asm/topology_64.h    |   1 +
 arch/sparc/include/asm/ttable.h         |   6 ++
 arch/sparc/include/asm/uprobes.h        |  59 +++++++++++++++
 arch/sparc/kernel/Makefile              |   1 +
 arch/sparc/kernel/leon_kernel.c         |  56 +++++++-------
 arch/sparc/kernel/pci_sun4v.c           |   7 +-
 arch/sparc/kernel/power.c               |   7 +-
 arch/sparc/kernel/ptrace_64.c           |  54 ++++++++++++++
 arch/sparc/kernel/signal_64.c           |   2 +
 arch/sparc/kernel/traps_64.c            |   4 +-
 arch/sparc/kernel/ttable_64.S           |   2 +-
 arch/sparc/kernel/uprobes.c             | 331 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 include/linux/uprobes.h                 |   1 +
 20 files changed, 537 insertions(+), 44 deletions(-)
 create mode 100644 arch/sparc/include/asm/uprobes.h
 create mode 100644 arch/sparc/kernel/uprobes.c

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2017-01-30 22:37 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2017-01-30 22:37 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Several small bug fixes and tidies, along with a fix for non-resumable
memory errors triggered by userspace.

Please pull, thanks a lot!

The following changes since commit ba6d973f78eb62ffebb32f6ef3334fc9a3b33d22:

  Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net (2016-12-20 15:48:34 -0800)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git 

for you to fetch changes up to 54791b276b4000b307339f269d3bf7db877d536f:

  Merge branch 'sparc64-non-resumable-user-error-recovery' (2017-01-30 14:28:22 -0800)

----------------------------------------------------------------
David S. Miller (1):
      Merge branch 'sparc64-non-resumable-user-error-recovery'

Liam R. Howlett (2):
      sparc64: Zero pages on allocation for mondo and error queues.
      sparc64: Handle PIO & MEM non-resumable errors.

Mike Kravetz (1):
      sparc: use symbolic names for tsb indexing

Tom Hromatka (1):
      sparc: Fixed typo in sstate.c. Replaced panicing with panicking

 arch/sparc/include/asm/mmu_context_64.h |  8 ++++----
 arch/sparc/kernel/irq_64.c              |  2 +-
 arch/sparc/kernel/sstate.c              |  6 +++---
 arch/sparc/kernel/traps_64.c            | 73 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 4 files changed, 81 insertions(+), 8 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2017-01-30 22:37 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2017-01-30 22:37 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Several small bug fixes and tidies, along with a fix for non-resumable
memory errors triggered by userspace.

Please pull, thanks a lot!

The following changes since commit ba6d973f78eb62ffebb32f6ef3334fc9a3b33d22:

  Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net (2016-12-20 15:48:34 -0800)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git 

for you to fetch changes up to 54791b276b4000b307339f269d3bf7db877d536f:

  Merge branch 'sparc64-non-resumable-user-error-recovery' (2017-01-30 14:28:22 -0800)

----------------------------------------------------------------
David S. Miller (1):
      Merge branch 'sparc64-non-resumable-user-error-recovery'

Liam R. Howlett (2):
      sparc64: Zero pages on allocation for mondo and error queues.
      sparc64: Handle PIO & MEM non-resumable errors.

Mike Kravetz (1):
      sparc: use symbolic names for tsb indexing

Tom Hromatka (1):
      sparc: Fixed typo in sstate.c. Replaced panicing with panicking

 arch/sparc/include/asm/mmu_context_64.h |  8 ++++----
 arch/sparc/kernel/irq_64.c              |  2 +-
 arch/sparc/kernel/sstate.c              |  6 +++---
 arch/sparc/kernel/traps_64.c            | 73 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 4 files changed, 81 insertions(+), 8 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2017-02-24 16:34 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2017-02-24 16:34 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


1) Support multiple huge page sizes, from Nitin Gupta.

2) Improve boot time on large memory configurations, from Pavel
   Tatashin.

3) Make BRK handling more consistent and documented, from Vijay Kumar.

Please pull, thanks a lot!

The following changes since commit bc49a7831b1137ce1c2dda1c57e3631655f5d2ae:

  Merge branch 'akpm' (patches from Andrew) (2017-02-22 19:29:24 -0800)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git 

for you to fetch changes up to ac65e2828d03ddf84e9fe1fb6d110d8de933dc22:

  sparc64: Fix build error in flush_tsb_user_page (2017-02-24 08:26:21 -0800)

----------------------------------------------------------------
Ben Hutchings (1):
      sparc: topology_64.h: Fix condition for including cpudata.h

Bhumika Goyal (1):
      sparc32: mm: srmmu: add __ro_after_init to sparc32_cachetlb_ops structures

David S. Miller (1):
      Merge branch 'sparc64-jump-to-boot-prom'

Eric Saint Etienne (1):
      sparc64: fix for user probes in high memory

Liam R. Howlett (1):
      sunvdc: Add support for setting physical sector size

Nitin Gupta (3):
      sparc64: Multi-page size support
      sparc64: Add 64K page size support
      sparc64: Fix build error in flush_tsb_user_page

Pavel Tatashin (2):
      sparc64: use latency groups to improve add_node_ranges speed
      sparc64: memblock resizes are not handled properly

Vijay Kumar (4):
      sparc64: Set cpu state to offline when stopped
      sparc64: Migrate hvcons irq to panicked cpu
      sparc64: Send break twice from console to return to boot prom
      Documentation/sparc: Steps for sending break on sunhv console

 Documentation/sparc/console.txt      |   9 +++++
 arch/sparc/include/asm/page_64.h     |   4 +-
 arch/sparc/include/asm/pgtable_64.h  |  23 ++++++++----
 arch/sparc/include/asm/setup.h       |   5 ++-
 arch/sparc/include/asm/tlbflush_64.h |   5 ++-
 arch/sparc/include/asm/topology_64.h |   4 +-
 arch/sparc/include/asm/uprobes.h     |   4 +-
 arch/sparc/kernel/smp_64.c           |   9 ++++-
 arch/sparc/kernel/tsb.S              |  21 ++---------
 arch/sparc/mm/hugetlbpage.c          | 201 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------
 arch/sparc/mm/init_64.c              | 260 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------------------------------
 arch/sparc/mm/srmmu.c                |   6 +--
 arch/sparc/mm/tlb.c                  |  17 ++++-----
 arch/sparc/mm/tsb.c                  |  61 ++++++++++++++++++++++++++-----
 drivers/block/sunvdc.c               |  18 ++++++++-
 drivers/tty/serial/sunhv.c           |  12 +++++-
 kernel/panic.c                       |   3 +-
 17 files changed, 488 insertions(+), 174 deletions(-)
 create mode 100644 Documentation/sparc/console.txt

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2017-02-24 16:34 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2017-02-24 16:34 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


1) Support multiple huge page sizes, from Nitin Gupta.

2) Improve boot time on large memory configurations, from Pavel
   Tatashin.

3) Make BRK handling more consistent and documented, from Vijay Kumar.

Please pull, thanks a lot!

The following changes since commit bc49a7831b1137ce1c2dda1c57e3631655f5d2ae:

  Merge branch 'akpm' (patches from Andrew) (2017-02-22 19:29:24 -0800)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git 

for you to fetch changes up to ac65e2828d03ddf84e9fe1fb6d110d8de933dc22:

  sparc64: Fix build error in flush_tsb_user_page (2017-02-24 08:26:21 -0800)

----------------------------------------------------------------
Ben Hutchings (1):
      sparc: topology_64.h: Fix condition for including cpudata.h

Bhumika Goyal (1):
      sparc32: mm: srmmu: add __ro_after_init to sparc32_cachetlb_ops structures

David S. Miller (1):
      Merge branch 'sparc64-jump-to-boot-prom'

Eric Saint Etienne (1):
      sparc64: fix for user probes in high memory

Liam R. Howlett (1):
      sunvdc: Add support for setting physical sector size

Nitin Gupta (3):
      sparc64: Multi-page size support
      sparc64: Add 64K page size support
      sparc64: Fix build error in flush_tsb_user_page

Pavel Tatashin (2):
      sparc64: use latency groups to improve add_node_ranges speed
      sparc64: memblock resizes are not handled properly

Vijay Kumar (4):
      sparc64: Set cpu state to offline when stopped
      sparc64: Migrate hvcons irq to panicked cpu
      sparc64: Send break twice from console to return to boot prom
      Documentation/sparc: Steps for sending break on sunhv console

 Documentation/sparc/console.txt      |   9 +++++
 arch/sparc/include/asm/page_64.h     |   4 +-
 arch/sparc/include/asm/pgtable_64.h  |  23 ++++++++----
 arch/sparc/include/asm/setup.h       |   5 ++-
 arch/sparc/include/asm/tlbflush_64.h |   5 ++-
 arch/sparc/include/asm/topology_64.h |   4 +-
 arch/sparc/include/asm/uprobes.h     |   4 +-
 arch/sparc/kernel/smp_64.c           |   9 ++++-
 arch/sparc/kernel/tsb.S              |  21 ++---------
 arch/sparc/mm/hugetlbpage.c          | 201 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------
 arch/sparc/mm/init_64.c              | 260 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------------------------------
 arch/sparc/mm/srmmu.c                |   6 +--
 arch/sparc/mm/tlb.c                  |  17 ++++-----
 arch/sparc/mm/tsb.c                  |  61 ++++++++++++++++++++++++++-----
 drivers/block/sunvdc.c               |  18 ++++++++-
 drivers/tty/serial/sunhv.c           |  12 +++++-
 kernel/panic.c                       |   3 +-
 17 files changed, 488 insertions(+), 174 deletions(-)
 create mode 100644 Documentation/sparc/console.txt

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2017-04-07 21:21 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2017-04-07 21:21 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Several fixes here, mostly having to due with either build errors or
memory corruptions depending upon whether you have THP enabled or not.

Please pull, thanks a lot!

The following changes since commit ad0376eb1483bd9880770b346f6592aece669e4c:

  Merge tag 'edac_for_4.11_2' of git://git.kernel.org/pub/scm/linux/kernel/git/bp/bp (2017-03-27 11:09:00 -0700)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git 

for you to fetch changes up to 86e1066fe2af51dce4351c2357223e0d902dfc7a:

  sparc: remove unused wp_works_ok macro (2017-04-06 12:03:30 -0700)

----------------------------------------------------------------
Babu Moger (1):
      arch/sparc: Avoid DCTI Couples

Guenter Roeck (1):
      sparc32: Export vac_cache_size to fix build error

Mathias Krause (1):
      sparc: remove unused wp_works_ok macro

Nitin Gupta (3):
      sparc64: Fix size check in huge_pte_alloc
      sparc64: Add support for 2G hugepages
      sparc64: Fix memory corruption when THP is enabled

Tom Hromatka (1):
      sparc64: Fix kernel panic due to erroneous #ifdef surrounding pmd_write()

bob picco (1):
      sparc64: kern_addr_valid regression

 arch/sparc/include/asm/page_64.h      |  3 ++-
 arch/sparc/include/asm/pgtable_64.h   | 15 ++++++++-------
 arch/sparc/include/asm/processor_32.h |  6 ------
 arch/sparc/include/asm/processor_64.h |  4 ----
 arch/sparc/kernel/head_64.S           |  4 ++++
 arch/sparc/kernel/misctrap.S          |  1 +
 arch/sparc/kernel/rtrap_64.S          |  1 +
 arch/sparc/kernel/spiterrs.S          |  1 +
 arch/sparc/kernel/sun4v_tlb_miss.S    |  1 +
 arch/sparc/kernel/urtt_fill.S         |  1 +
 arch/sparc/kernel/winfixup.S          |  2 ++
 arch/sparc/lib/NG2memcpy.S            |  4 ++++
 arch/sparc/lib/NG4memcpy.S            |  1 +
 arch/sparc/lib/NG4memset.S            |  1 +
 arch/sparc/lib/NGmemcpy.S             |  1 +
 arch/sparc/mm/hugetlbpage.c           |  9 ++++++++-
 arch/sparc/mm/init_64.c               |  6 +++++-
 arch/sparc/mm/srmmu.c                 |  1 +
 arch/sparc/mm/tlb.c                   |  6 +++---
 arch/sparc/mm/tsb.c                   |  4 ++--
 20 files changed, 47 insertions(+), 25 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2017-04-07 21:21 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2017-04-07 21:21 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Several fixes here, mostly having to due with either build errors or
memory corruptions depending upon whether you have THP enabled or not.

Please pull, thanks a lot!

The following changes since commit ad0376eb1483bd9880770b346f6592aece669e4c:

  Merge tag 'edac_for_4.11_2' of git://git.kernel.org/pub/scm/linux/kernel/git/bp/bp (2017-03-27 11:09:00 -0700)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git 

for you to fetch changes up to 86e1066fe2af51dce4351c2357223e0d902dfc7a:

  sparc: remove unused wp_works_ok macro (2017-04-06 12:03:30 -0700)

----------------------------------------------------------------
Babu Moger (1):
      arch/sparc: Avoid DCTI Couples

Guenter Roeck (1):
      sparc32: Export vac_cache_size to fix build error

Mathias Krause (1):
      sparc: remove unused wp_works_ok macro

Nitin Gupta (3):
      sparc64: Fix size check in huge_pte_alloc
      sparc64: Add support for 2G hugepages
      sparc64: Fix memory corruption when THP is enabled

Tom Hromatka (1):
      sparc64: Fix kernel panic due to erroneous #ifdef surrounding pmd_write()

bob picco (1):
      sparc64: kern_addr_valid regression

 arch/sparc/include/asm/page_64.h      |  3 ++-
 arch/sparc/include/asm/pgtable_64.h   | 15 ++++++++-------
 arch/sparc/include/asm/processor_32.h |  6 ------
 arch/sparc/include/asm/processor_64.h |  4 ----
 arch/sparc/kernel/head_64.S           |  4 ++++
 arch/sparc/kernel/misctrap.S          |  1 +
 arch/sparc/kernel/rtrap_64.S          |  1 +
 arch/sparc/kernel/spiterrs.S          |  1 +
 arch/sparc/kernel/sun4v_tlb_miss.S    |  1 +
 arch/sparc/kernel/urtt_fill.S         |  1 +
 arch/sparc/kernel/winfixup.S          |  2 ++
 arch/sparc/lib/NG2memcpy.S            |  4 ++++
 arch/sparc/lib/NG4memcpy.S            |  1 +
 arch/sparc/lib/NG4memset.S            |  1 +
 arch/sparc/lib/NGmemcpy.S             |  1 +
 arch/sparc/mm/hugetlbpage.c           |  9 ++++++++-
 arch/sparc/mm/init_64.c               |  6 +++++-
 arch/sparc/mm/srmmu.c                 |  1 +
 arch/sparc/mm/tlb.c                   |  6 +++---
 arch/sparc/mm/tsb.c                   |  4 ++--
 20 files changed, 47 insertions(+), 25 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2017-04-18 20:20 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2017-04-18 20:20 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Please pull to get these two Sparc bug fixes from Daniel Jordan
and Nitin Gupta.

Thanks a lot!

The following changes since commit fb5e2154b764812705dce84881319471d27606fb:

  Merge tag 'trace-v4.11-rc5-4' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace (2017-04-18 10:19:47 -0700)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git 

for you to fetch changes up to 544f8f935863c5a9ca3e34306ea3316095e7b7bf:

  sparc64: Fix hugepage page table free (2017-04-18 13:11:07 -0700)

----------------------------------------------------------------
Daniel Jordan (1):
      sparc64: Use LOCKDEP_SMALL, not PROVE_LOCKING_SMALL

Nitin Gupta (1):
      sparc64: Fix hugepage page table free

 arch/sparc/Kconfig                 |  2 +-
 arch/sparc/mm/hugetlbpage.c        | 16 ++++++++++++++++
 kernel/locking/lockdep_internals.h |  6 +++---
 lib/Kconfig.debug                  |  6 +++---
 4 files changed, 23 insertions(+), 7 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2017-04-18 20:20 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2017-04-18 20:20 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Please pull to get these two Sparc bug fixes from Daniel Jordan
and Nitin Gupta.

Thanks a lot!

The following changes since commit fb5e2154b764812705dce84881319471d27606fb:

  Merge tag 'trace-v4.11-rc5-4' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace (2017-04-18 10:19:47 -0700)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git 

for you to fetch changes up to 544f8f935863c5a9ca3e34306ea3316095e7b7bf:

  sparc64: Fix hugepage page table free (2017-04-18 13:11:07 -0700)

----------------------------------------------------------------
Daniel Jordan (1):
      sparc64: Use LOCKDEP_SMALL, not PROVE_LOCKING_SMALL

Nitin Gupta (1):
      sparc64: Fix hugepage page table free

 arch/sparc/Kconfig                 |  2 +-
 arch/sparc/mm/hugetlbpage.c        | 16 ++++++++++++++++
 kernel/locking/lockdep_internals.h |  6 +++---
 lib/Kconfig.debug                  |  6 +++---
 4 files changed, 23 insertions(+), 7 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2017-04-26 19:22 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2017-04-26 19:22 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


I didn't want the release to go out without the statx system call properly
hooked up.

Please pull, thanks!

The following changes since commit 5a7ad1146caa895ad718a534399e38bd2ba721b7:

  Linux 4.11-rc8 (2017-04-23 16:53:00 -0700)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git 

for you to fetch changes up to f6ebf0bb1a983a7b60a26acf282975b5da5b3202:

  sparc: Update syscall tables. (2017-04-23 18:28:55 -0700)

----------------------------------------------------------------
David S. Miller (2):
      sparc64: Fill in rest of HAVE_REGS_AND_STACK_ACCESS_API
      sparc: Update syscall tables.

 arch/sparc/Kconfig                   |  1 +
 arch/sparc/include/asm/ptrace.h      |  3 ++-
 arch/sparc/include/uapi/asm/unistd.h |  8 +++++++-
 arch/sparc/kernel/ptrace_64.c        | 36 ++++++++++++++++++++++++++++++++++++
 arch/sparc/kernel/systbls_32.S       |  1 +
 arch/sparc/kernel/systbls_64.S       |  2 ++
 6 files changed, 49 insertions(+), 2 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2017-04-26 19:22 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2017-04-26 19:22 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


I didn't want the release to go out without the statx system call properly
hooked up.

Please pull, thanks!

The following changes since commit 5a7ad1146caa895ad718a534399e38bd2ba721b7:

  Linux 4.11-rc8 (2017-04-23 16:53:00 -0700)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git 

for you to fetch changes up to f6ebf0bb1a983a7b60a26acf282975b5da5b3202:

  sparc: Update syscall tables. (2017-04-23 18:28:55 -0700)

----------------------------------------------------------------
David S. Miller (2):
      sparc64: Fill in rest of HAVE_REGS_AND_STACK_ACCESS_API
      sparc: Update syscall tables.

 arch/sparc/Kconfig                   |  1 +
 arch/sparc/include/asm/ptrace.h      |  3 ++-
 arch/sparc/include/uapi/asm/unistd.h |  8 +++++++-
 arch/sparc/kernel/ptrace_64.c        | 36 ++++++++++++++++++++++++++++++++++++
 arch/sparc/kernel/systbls_32.S       |  1 +
 arch/sparc/kernel/systbls_64.S       |  2 ++
 6 files changed, 49 insertions(+), 2 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2017-05-09 20:04 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2017-05-09 20:04 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Please pull in these sparc changes, including a bug fix
for handling exceptions during bzero on some sparc64
cpus.

Thanks!

The following changes since commit 89c9fea3c8034cdb2fd745f551cde0b507fd6893:

  Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial (2017-05-02 19:09:35 -0700)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git 

for you to fetch changes up to 3c7f62212018b904ae17f5636ead18a4dca3a88f:

  sparc64: fix fault handling in NGbzero.S and GENbzero.S (2017-05-09 12:16:25 -0700)

----------------------------------------------------------------
Dave Aldridge (1):
      sparc64: fix fault handling in NGbzero.S and GENbzero.S

David S. Miller (1):
      sparc: Remove redundant tests in boot_flags_init().

Geliang Tang (1):
      sparc: use memdup_user_nul in sun4m LED driver

 arch/sparc/kernel/head_64.S  |  6 ++++++
 arch/sparc/kernel/led.c      | 13 +++----------
 arch/sparc/kernel/setup_32.c |  2 +-
 arch/sparc/kernel/setup_64.c |  2 +-
 arch/sparc/lib/GENbzero.S    |  2 +-
 arch/sparc/lib/NGbzero.S     |  2 +-
 6 files changed, 13 insertions(+), 14 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2017-05-09 20:04 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2017-05-09 20:04 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Please pull in these sparc changes, including a bug fix
for handling exceptions during bzero on some sparc64
cpus.

Thanks!

The following changes since commit 89c9fea3c8034cdb2fd745f551cde0b507fd6893:

  Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial (2017-05-02 19:09:35 -0700)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git 

for you to fetch changes up to 3c7f62212018b904ae17f5636ead18a4dca3a88f:

  sparc64: fix fault handling in NGbzero.S and GENbzero.S (2017-05-09 12:16:25 -0700)

----------------------------------------------------------------
Dave Aldridge (1):
      sparc64: fix fault handling in NGbzero.S and GENbzero.S

David S. Miller (1):
      sparc: Remove redundant tests in boot_flags_init().

Geliang Tang (1):
      sparc: use memdup_user_nul in sun4m LED driver

 arch/sparc/kernel/head_64.S  |  6 ++++++
 arch/sparc/kernel/led.c      | 13 +++----------
 arch/sparc/kernel/setup_32.c |  2 +-
 arch/sparc/kernel/setup_64.c |  2 +-
 arch/sparc/lib/GENbzero.S    |  2 +-
 arch/sparc/lib/NGbzero.S     |  2 +-
 6 files changed, 13 insertions(+), 14 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2017-05-18 18:03 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2017-05-18 18:03 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Please pull in these three sparc bug fixes.

Thank you.

The following changes since commit b23afd384801711ab6dbccd259cc14cb09a1dcaf:

  Merge tag 'pstore-v4.12-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux (2017-05-16 13:29:07 -0700)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git 

for you to fetch changes up to 48078d2dac0a26f84f5f3ec704f24f7c832cce14:

  sparc/ftrace: Fix ftrace graph time measurement (2017-05-17 12:07:47 -0700)

----------------------------------------------------------------
Liam R. Howlett (1):
      sparc/ftrace: Fix ftrace graph time measurement

Nitin Gupta (1):
      sparc64: Fix mapping of 64k pages with MAP_FIXED

Orlando Arias (1):
      sparc: Fix -Wstringop-overflow warning

 arch/sparc/include/asm/hugetlb.h    |  6 ++++--
 arch/sparc/include/asm/pgtable_32.h |  4 ++--
 arch/sparc/include/asm/setup.h      |  2 +-
 arch/sparc/kernel/ftrace.c          | 13 ++++++-------
 arch/sparc/mm/init_32.c             |  2 +-
 5 files changed, 14 insertions(+), 13 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2017-05-18 18:03 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2017-05-18 18:03 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Please pull in these three sparc bug fixes.

Thank you.

The following changes since commit b23afd384801711ab6dbccd259cc14cb09a1dcaf:

  Merge tag 'pstore-v4.12-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux (2017-05-16 13:29:07 -0700)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git 

for you to fetch changes up to 48078d2dac0a26f84f5f3ec704f24f7c832cce14:

  sparc/ftrace: Fix ftrace graph time measurement (2017-05-17 12:07:47 -0700)

----------------------------------------------------------------
Liam R. Howlett (1):
      sparc/ftrace: Fix ftrace graph time measurement

Nitin Gupta (1):
      sparc64: Fix mapping of 64k pages with MAP_FIXED

Orlando Arias (1):
      sparc: Fix -Wstringop-overflow warning

 arch/sparc/include/asm/hugetlb.h    |  6 ++++--
 arch/sparc/include/asm/pgtable_32.h |  4 ++--
 arch/sparc/include/asm/setup.h      |  2 +-
 arch/sparc/kernel/ftrace.c          | 13 ++++++-------
 arch/sparc/mm/init_32.c             |  2 +-
 5 files changed, 14 insertions(+), 13 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2017-06-06 20:57 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2017-06-06 20:57 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


1) Fix TLB context wrap races, from Pavel Tatashin.

2) Cure some gcc-7 build issues.

3) Handle invalid setup_hugepagesz command line values properly,
   from Liam R. Howlett.

4) Copy TSB using the correct address shift for the huge TSB,
   from Mike Kravetz.

Please pull, thanks a lot!

The following changes since commit be941bf2e6a32605935865972df7abf74087944f:

  Merge tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi (2017-05-24 20:29:53 -0700)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git 

for you to fetch changes up to b3aefc2fbdff2576d0c5aca09b963c40f0299664:

  Merge branch 'sparc64-context-wrap-fixes' (2017-06-06 13:45:48 -0700)

----------------------------------------------------------------
David S. Miller (3):
      sparc64: Fix build warnings with gcc 7.
      sparc64: Add __multi3 for gcc 7.x and later.
      Merge branch 'sparc64-context-wrap-fixes'

James Clarke (1):
      sparc: Machine description indices can vary

Jane Chu (2):
      arch/sparc: increase CONFIG_NODES_SHIFT on SPARC64 to 5
      arch/sparc: support NR_CPUS = 4096

Liam R. Howlett (1):
      sparc/mm/hugepages: Fix setup_hugepagesz for invalid values.

Mike Kravetz (1):
      sparc64: mm: fix copy_tsb to correctly copy huge page TSBs

Pavel Tatashin (6):
      sparc64: reset mm cpumask after wrap
      sparc64: combine activate_mm and switch_mm
      sparc64: redefine first version
      sparc64: add per-cpu mm of secondary contexts
      sparc64: new context wrap
      sparc64: delete old wrap code

 arch/sparc/Kconfig                      | 12 ++++++++----
 arch/sparc/include/asm/mmu_64.h         |  2 +-
 arch/sparc/include/asm/mmu_context_64.h | 32 ++++----------------------------
 arch/sparc/include/asm/pil.h            |  1 -
 arch/sparc/include/asm/vio.h            |  1 +
 arch/sparc/kernel/ds.c                  |  2 +-
 arch/sparc/kernel/irq_64.c              | 17 +++++++++++++----
 arch/sparc/kernel/kernel.h              |  1 -
 arch/sparc/kernel/smp_64.c              | 31 -------------------------------
 arch/sparc/kernel/tsb.S                 | 11 +++++++----
 arch/sparc/kernel/ttable_64.S           |  2 +-
 arch/sparc/kernel/vio.c                 | 68 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----
 arch/sparc/lib/Makefile                 |  1 +
 arch/sparc/lib/multi3.S                 | 35 +++++++++++++++++++++++++++++++++++
 arch/sparc/mm/init_64.c                 | 89 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----------------------------
 arch/sparc/mm/tsb.c                     |  7 +++++--
 arch/sparc/mm/ultra.S                   |  5 -----
 17 files changed, 201 insertions(+), 116 deletions(-)
 create mode 100644 arch/sparc/lib/multi3.S

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2017-06-06 20:57 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2017-06-06 20:57 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


1) Fix TLB context wrap races, from Pavel Tatashin.

2) Cure some gcc-7 build issues.

3) Handle invalid setup_hugepagesz command line values properly,
   from Liam R. Howlett.

4) Copy TSB using the correct address shift for the huge TSB,
   from Mike Kravetz.

Please pull, thanks a lot!

The following changes since commit be941bf2e6a32605935865972df7abf74087944f:

  Merge tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi (2017-05-24 20:29:53 -0700)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git 

for you to fetch changes up to b3aefc2fbdff2576d0c5aca09b963c40f0299664:

  Merge branch 'sparc64-context-wrap-fixes' (2017-06-06 13:45:48 -0700)

----------------------------------------------------------------
David S. Miller (3):
      sparc64: Fix build warnings with gcc 7.
      sparc64: Add __multi3 for gcc 7.x and later.
      Merge branch 'sparc64-context-wrap-fixes'

James Clarke (1):
      sparc: Machine description indices can vary

Jane Chu (2):
      arch/sparc: increase CONFIG_NODES_SHIFT on SPARC64 to 5
      arch/sparc: support NR_CPUS = 4096

Liam R. Howlett (1):
      sparc/mm/hugepages: Fix setup_hugepagesz for invalid values.

Mike Kravetz (1):
      sparc64: mm: fix copy_tsb to correctly copy huge page TSBs

Pavel Tatashin (6):
      sparc64: reset mm cpumask after wrap
      sparc64: combine activate_mm and switch_mm
      sparc64: redefine first version
      sparc64: add per-cpu mm of secondary contexts
      sparc64: new context wrap
      sparc64: delete old wrap code

 arch/sparc/Kconfig                      | 12 ++++++++----
 arch/sparc/include/asm/mmu_64.h         |  2 +-
 arch/sparc/include/asm/mmu_context_64.h | 32 ++++----------------------------
 arch/sparc/include/asm/pil.h            |  1 -
 arch/sparc/include/asm/vio.h            |  1 +
 arch/sparc/kernel/ds.c                  |  2 +-
 arch/sparc/kernel/irq_64.c              | 17 +++++++++++++----
 arch/sparc/kernel/kernel.h              |  1 -
 arch/sparc/kernel/smp_64.c              | 31 -------------------------------
 arch/sparc/kernel/tsb.S                 | 11 +++++++----
 arch/sparc/kernel/ttable_64.S           |  2 +-
 arch/sparc/kernel/vio.c                 | 68 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----
 arch/sparc/lib/Makefile                 |  1 +
 arch/sparc/lib/multi3.S                 | 35 +++++++++++++++++++++++++++++++++++
 arch/sparc/mm/init_64.c                 | 89 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----------------------------
 arch/sparc/mm/tsb.c                     |  7 +++++--
 arch/sparc/mm/ultra.S                   |  5 -----
 17 files changed, 201 insertions(+), 116 deletions(-)
 create mode 100644 arch/sparc/lib/multi3.S

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2017-07-08 10:40 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2017-07-08 10:40 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


1) Queued spinlocks and rwlocks for sparc64, from Babu Moger.

2) Some const'ification from Arvind Yadav.

3) LDC/VIO driver infrastructure changes to facilitate future
   upcoming drivers, from Jag Raman.

4) Initialize sched_clock() et al. early so that the initial printk
   timestamps are all done while the implementation is available and
   functioning.  From Pavel Tatashin.

Please pull, thanks a lot!

The following changes since commit 5faab9e0f03c4eef97886b45436015e107f79f5f:

  Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs (2017-06-10 11:09:23 -0700)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-next.git 

for you to fetch changes up to 0cd52df8a782be2e6592d331094a313d8947683a:

  sparc: kernel: pmc: make of_device_ids const. (2017-07-03 02:53:07 -0700)

----------------------------------------------------------------
Arvind Yadav (3):
      sparc/time: make of_device_ids const
      sparc: kernel: apc: make of_device_ids const
      sparc: kernel: pmc: make of_device_ids const.

Babu Moger (7):
      arch/sparc: Remove the check #ifndef __LINUX_SPINLOCK_TYPES_H
      kernel/locking: Fix compile error with qrwlock.c
      arch/sparc: Define config parameter CPU_BIG_ENDIAN
      arch/sparc: Introduce cmpxchg_u8 SPARC
      arch/sparc: Enable queued rwlocks for SPARC
      arch/sparc: Introduce xchg16 for SPARC
      arch/sparc: Enable queued spinlock support for SPARC

David S. Miller (6):
      Merge branch 'sparc64-queued-locks'
      Merge git://git.kernel.org/.../davem/sparc
      Merge branch 'sparc64-LDC-changes-for-porting-VCC-driver-into-upstream-kernel'
      Merge branch 'sparc64-early-boot-timestamp'
      Merge branch 'sparc64-early-boot-timestamp-fixes'
      Merge branch 'sparc64-add-MDESC-and-VIO-support-for-VCC'

Jag Raman (17):
      sparc64: expand LDC interface
      sparc64: enhance ldc_abort to print message
      sparc64: ensure LDC channel is ready before communication
      sparc64: ldc abort during vds iso boot
      sparc64: print debug messages when reading from LDC channel
      sparc64: ensure VIO operations are defined while being used
      sparc64: specify the device class in VIO version info. packet
      sparc64: skip handshake for LDC channels in RAW mode
      sparc64: expand MDESC interface
      sparc64: mdesc: use __GFP_REPEAT action modifier for VM allocation
      sparc64: add MDESC node name property to VIO device metadata
      sparc64: refactor code to obtain cfg_handle property from MDESC
      sparc64: remove restriction on VIO device name size
      sparc64: check if a client is allowed to register for MDESC notifications
      sparc64: enhance VIO device probing
      sparc64: Enhance search for VIO device in MDESC
      sparc64: add port_id to VIO device metadata

Pavel Tatashin (11):
      sparc64: remove trailing white spaces
      sparc64: access tick function from variable
      sparc64: show time stamps from zero
      sparc64: optimize loads in clock_sched()
      sparc64: improve modularity tick options
      sparc64: initialize time early
      sparc64: add hot-patched and inlined get_tick()
      sparc64: optimize functions that access tick
      sparc64: use prom interface to get %stick frequency
      sparc64: broken %tick frequency on spitfire cpus
      sparc64: fix typo in property

 arch/sparc/Kconfig                      |   5 ++
 arch/sparc/include/asm/cmpxchg_64.h     |  76 +++++++++++++++--
 arch/sparc/include/asm/ldc.h            |   8 ++
 arch/sparc/include/asm/mdesc.h          |  24 +++++-
 arch/sparc/include/asm/qrwlock.h        |   7 ++
 arch/sparc/include/asm/qspinlock.h      |   7 ++
 arch/sparc/include/asm/setup.h          |   2 +-
 arch/sparc/include/asm/spinlock_64.h    | 208 +---------------------------------------------
 arch/sparc/include/asm/spinlock_types.h |  12 ++-
 arch/sparc/include/asm/timer_64.h       |  67 +++++++++++++++
 arch/sparc/include/asm/vio.h            |  13 ++-
 arch/sparc/kernel/apc.c                 |   2 +-
 arch/sparc/kernel/kernel.h              |   3 +
 arch/sparc/kernel/ldc.c                 | 151 +++++++++++++++++++++++----------
 arch/sparc/kernel/mdesc.c               | 331 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----------
 arch/sparc/kernel/pmc.c                 |   2 +-
 arch/sparc/kernel/prom_64.c             |   2 +-
 arch/sparc/kernel/setup_64.c            |   7 +-
 arch/sparc/kernel/time_32.c             |   2 +-
 arch/sparc/kernel/time_64.c             | 179 +++++++++++++++++++++++++++------------
 arch/sparc/kernel/vio.c                 | 244 +++++++++++++++++++++++++++++-------------------------
 arch/sparc/kernel/viohs.c               |  24 ++++--
 arch/sparc/kernel/vmlinux.lds.S         |   5 ++
 kernel/locking/qrwlock.c                |   1 +
 24 files changed, 890 insertions(+), 492 deletions(-)
 create mode 100644 arch/sparc/include/asm/qrwlock.h
 create mode 100644 arch/sparc/include/asm/qspinlock.h

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2017-07-08 10:40 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2017-07-08 10:40 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


1) Queued spinlocks and rwlocks for sparc64, from Babu Moger.

2) Some const'ification from Arvind Yadav.

3) LDC/VIO driver infrastructure changes to facilitate future
   upcoming drivers, from Jag Raman.

4) Initialize sched_clock() et al. early so that the initial printk
   timestamps are all done while the implementation is available and
   functioning.  From Pavel Tatashin.

Please pull, thanks a lot!

The following changes since commit 5faab9e0f03c4eef97886b45436015e107f79f5f:

  Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs (2017-06-10 11:09:23 -0700)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-next.git 

for you to fetch changes up to 0cd52df8a782be2e6592d331094a313d8947683a:

  sparc: kernel: pmc: make of_device_ids const. (2017-07-03 02:53:07 -0700)

----------------------------------------------------------------
Arvind Yadav (3):
      sparc/time: make of_device_ids const
      sparc: kernel: apc: make of_device_ids const
      sparc: kernel: pmc: make of_device_ids const.

Babu Moger (7):
      arch/sparc: Remove the check #ifndef __LINUX_SPINLOCK_TYPES_H
      kernel/locking: Fix compile error with qrwlock.c
      arch/sparc: Define config parameter CPU_BIG_ENDIAN
      arch/sparc: Introduce cmpxchg_u8 SPARC
      arch/sparc: Enable queued rwlocks for SPARC
      arch/sparc: Introduce xchg16 for SPARC
      arch/sparc: Enable queued spinlock support for SPARC

David S. Miller (6):
      Merge branch 'sparc64-queued-locks'
      Merge git://git.kernel.org/.../davem/sparc
      Merge branch 'sparc64-LDC-changes-for-porting-VCC-driver-into-upstream-kernel'
      Merge branch 'sparc64-early-boot-timestamp'
      Merge branch 'sparc64-early-boot-timestamp-fixes'
      Merge branch 'sparc64-add-MDESC-and-VIO-support-for-VCC'

Jag Raman (17):
      sparc64: expand LDC interface
      sparc64: enhance ldc_abort to print message
      sparc64: ensure LDC channel is ready before communication
      sparc64: ldc abort during vds iso boot
      sparc64: print debug messages when reading from LDC channel
      sparc64: ensure VIO operations are defined while being used
      sparc64: specify the device class in VIO version info. packet
      sparc64: skip handshake for LDC channels in RAW mode
      sparc64: expand MDESC interface
      sparc64: mdesc: use __GFP_REPEAT action modifier for VM allocation
      sparc64: add MDESC node name property to VIO device metadata
      sparc64: refactor code to obtain cfg_handle property from MDESC
      sparc64: remove restriction on VIO device name size
      sparc64: check if a client is allowed to register for MDESC notifications
      sparc64: enhance VIO device probing
      sparc64: Enhance search for VIO device in MDESC
      sparc64: add port_id to VIO device metadata

Pavel Tatashin (11):
      sparc64: remove trailing white spaces
      sparc64: access tick function from variable
      sparc64: show time stamps from zero
      sparc64: optimize loads in clock_sched()
      sparc64: improve modularity tick options
      sparc64: initialize time early
      sparc64: add hot-patched and inlined get_tick()
      sparc64: optimize functions that access tick
      sparc64: use prom interface to get %stick frequency
      sparc64: broken %tick frequency on spitfire cpus
      sparc64: fix typo in property

 arch/sparc/Kconfig                      |   5 ++
 arch/sparc/include/asm/cmpxchg_64.h     |  76 +++++++++++++++--
 arch/sparc/include/asm/ldc.h            |   8 ++
 arch/sparc/include/asm/mdesc.h          |  24 +++++-
 arch/sparc/include/asm/qrwlock.h        |   7 ++
 arch/sparc/include/asm/qspinlock.h      |   7 ++
 arch/sparc/include/asm/setup.h          |   2 +-
 arch/sparc/include/asm/spinlock_64.h    | 208 +---------------------------------------------
 arch/sparc/include/asm/spinlock_types.h |  12 ++-
 arch/sparc/include/asm/timer_64.h       |  67 +++++++++++++++
 arch/sparc/include/asm/vio.h            |  13 ++-
 arch/sparc/kernel/apc.c                 |   2 +-
 arch/sparc/kernel/kernel.h              |   3 +
 arch/sparc/kernel/ldc.c                 | 151 +++++++++++++++++++++++----------
 arch/sparc/kernel/mdesc.c               | 331 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----------
 arch/sparc/kernel/pmc.c                 |   2 +-
 arch/sparc/kernel/prom_64.c             |   2 +-
 arch/sparc/kernel/setup_64.c            |   7 +-
 arch/sparc/kernel/time_32.c             |   2 +-
 arch/sparc/kernel/time_64.c             | 179 +++++++++++++++++++++++++++------------
 arch/sparc/kernel/vio.c                 | 244 +++++++++++++++++++++++++++++-------------------------
 arch/sparc/kernel/viohs.c               |  24 ++++--
 arch/sparc/kernel/vmlinux.lds.S         |   5 ++
 kernel/locking/qrwlock.c                |   1 +
 24 files changed, 890 insertions(+), 492 deletions(-)
 create mode 100644 arch/sparc/include/asm/qrwlock.h
 create mode 100644 arch/sparc/include/asm/qspinlock.h

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2017-07-12  4:05 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2017-07-12  4:05 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


1) Fix symbol version generation for assembler on sparc, from
   Nagarathnam Muthusamy.

2) Fix compound page handling in gup_huge_pmd(), from Nitin Gupta.

Please pull, thanks a lot!

The following changes since commit 5faab9e0f03c4eef97886b45436015e107f79f5f:

  Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs (2017-06-10 11:09:23 -0700)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc 

for you to fetch changes up to dbd2667a4fb9ce4f547982b07cd69dda127c47ea:

  sparc64: Fix gup_huge_pmd (2017-06-25 15:23:57 -0400)

----------------------------------------------------------------
David S. Miller (1):
      Merge branch 'sparc-Suppressing-version-generation-failed-warnings-in-sparc'

Nagarathnam Muthusamy (3):
      Adding asm-prototypes.h for genksyms to generate crc
      sed regex in Makefile.build requires line break between exported symbols
      Adding the type of exported symbols

Nitin Gupta (1):
      sparc64: Fix gup_huge_pmd

 arch/sparc/include/asm/asm-prototypes.h | 24 ++++++++++++++++++++++++
 arch/sparc/lib/atomic_64.S              | 44 ++++++++++++++++++++++++++------------------
 arch/sparc/lib/checksum_64.S            |  1 +
 arch/sparc/lib/csum_copy.S              |  1 +
 arch/sparc/lib/memscan_64.S             |  2 ++
 arch/sparc/lib/memset.S                 |  1 +
 arch/sparc/mm/gup.c                     |  4 ++--
 7 files changed, 57 insertions(+), 20 deletions(-)
 create mode 100644 arch/sparc/include/asm/asm-prototypes.h

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2017-07-12  4:05 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2017-07-12  4:05 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


1) Fix symbol version generation for assembler on sparc, from
   Nagarathnam Muthusamy.

2) Fix compound page handling in gup_huge_pmd(), from Nitin Gupta.

Please pull, thanks a lot!

The following changes since commit 5faab9e0f03c4eef97886b45436015e107f79f5f:

  Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs (2017-06-10 11:09:23 -0700)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc 

for you to fetch changes up to dbd2667a4fb9ce4f547982b07cd69dda127c47ea:

  sparc64: Fix gup_huge_pmd (2017-06-25 15:23:57 -0400)

----------------------------------------------------------------
David S. Miller (1):
      Merge branch 'sparc-Suppressing-version-generation-failed-warnings-in-sparc'

Nagarathnam Muthusamy (3):
      Adding asm-prototypes.h for genksyms to generate crc
      sed regex in Makefile.build requires line break between exported symbols
      Adding the type of exported symbols

Nitin Gupta (1):
      sparc64: Fix gup_huge_pmd

 arch/sparc/include/asm/asm-prototypes.h | 24 ++++++++++++++++++++++++
 arch/sparc/lib/atomic_64.S              | 44 ++++++++++++++++++++++++++------------------
 arch/sparc/lib/checksum_64.S            |  1 +
 arch/sparc/lib/csum_copy.S              |  1 +
 arch/sparc/lib/memscan_64.S             |  2 ++
 arch/sparc/lib/memset.S                 |  1 +
 arch/sparc/mm/gup.c                     |  4 ++--
 7 files changed, 57 insertions(+), 20 deletions(-)
 create mode 100644 arch/sparc/include/asm/asm-prototypes.h

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2017-07-17 20:57 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2017-07-17 20:57 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Please pull to get these two sparc fixes:

1) Fix DMA regression in 4.13 merge window, only certain chips can
   do 64-bit DMA.  From Dave Dushar.

2) Correct cpu cross-call algorithm to correctly detect stalled or
   stuck remote cpus, from Jane Chu.

Thanks!

The following changes since commit 3b06b1a7448ee4e8e51dae3938774735404e51fb:

  Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc (2017-07-11 21:34:24 -0700)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git 

for you to fetch changes up to 9d53caec84c7c5700e7c1ed744ea584fff55f9ac:

  sparc64: Measure receiver forward progress to avoid send mondo timeout (2017-07-14 11:18:02 -0700)

----------------------------------------------------------------
Jane Chu (1):
      sparc64: Measure receiver forward progress to avoid send mondo timeout

Tushar Dave (1):
      SPARC64: Fix sun4v DMA panic

 arch/sparc/include/asm/trap_block.h |   1 +
 arch/sparc/kernel/pci_sun4v.c       |  12 ++++----
 arch/sparc/kernel/smp_64.c          | 185 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----------------------------------------------
 arch/sparc/kernel/sun4v_ivec.S      |  15 ++++++++++
 arch/sparc/kernel/traps_64.c        |   1 +
 5 files changed, 139 insertions(+), 75 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2017-07-17 20:57 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2017-07-17 20:57 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Please pull to get these two sparc fixes:

1) Fix DMA regression in 4.13 merge window, only certain chips can
   do 64-bit DMA.  From Dave Dushar.

2) Correct cpu cross-call algorithm to correctly detect stalled or
   stuck remote cpus, from Jane Chu.

Thanks!

The following changes since commit 3b06b1a7448ee4e8e51dae3938774735404e51fb:

  Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc (2017-07-11 21:34:24 -0700)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git 

for you to fetch changes up to 9d53caec84c7c5700e7c1ed744ea584fff55f9ac:

  sparc64: Measure receiver forward progress to avoid send mondo timeout (2017-07-14 11:18:02 -0700)

----------------------------------------------------------------
Jane Chu (1):
      sparc64: Measure receiver forward progress to avoid send mondo timeout

Tushar Dave (1):
      SPARC64: Fix sun4v DMA panic

 arch/sparc/include/asm/trap_block.h |   1 +
 arch/sparc/kernel/pci_sun4v.c       |  12 ++++----
 arch/sparc/kernel/smp_64.c          | 185 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----------------------------------------------
 arch/sparc/kernel/sun4v_ivec.S      |  15 ++++++++++
 arch/sparc/kernel/traps_64.c        |   1 +
 5 files changed, 139 insertions(+), 75 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2017-08-04 17:11 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2017-08-04 17:11 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Please pull to get these Sparc bug fixes:

1) Block interrupts properly across the entire MMU context change
   (both the hw MMU context change and the TSB table change) so
   that we don't get a perf event interrupt in the middle.  From
   Rob Gardner.

2) Be sure to register hugepages early enough, from Nitin Gupta.

3) UltraSPARC-III user copy exception handling would return garbage
   for the copied length in some circumstances.

Thanks!

The following changes since commit cb8c65ccff7f77d0285f1b126c72d37b2572c865:

  Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc (2017-07-17 15:08:29 -0700)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git 

for you to fetch changes up to 0ede1c401332173ab0693121dc6cde04a4dbf131:

  sparc64: Fix exception handling in UltraSPARC-III memcpy. (2017-08-04 09:47:52 -0700)

----------------------------------------------------------------
David S. Miller (1):
      sparc64: Fix exception handling in UltraSPARC-III memcpy.

Krzysztof Kozlowski (1):
      sparc: defconfig: Cleanup from old Kconfig options

Nitin Gupta (1):
      sparc64: Register hugepages during arch init

Rob Gardner (1):
      sparc64: Prevent perf from running during super critical sections

Rob Herring (1):
      sbus: Convert to using %pOF instead of full_name

 arch/sparc/configs/sparc32_defconfig    |  4 ----
 arch/sparc/configs/sparc64_defconfig    |  4 ----
 arch/sparc/include/asm/mmu_context_64.h | 14 +++++++++-----
 arch/sparc/kernel/tsb.S                 | 12 ++++++++++++
 arch/sparc/lib/U3memcpy.S               |  4 ++--
 arch/sparc/mm/init_64.c                 | 25 ++++++++++++++++++++++++-
 arch/sparc/power/hibernate.c            |  3 +--
 drivers/sbus/char/display7seg.c         |  4 ++--
 drivers/sbus/char/flash.c               |  4 ++--
 drivers/sbus/char/uctrl.c               |  4 ++--
 10 files changed, 54 insertions(+), 24 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2017-08-04 17:11 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2017-08-04 17:11 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Please pull to get these Sparc bug fixes:

1) Block interrupts properly across the entire MMU context change
   (both the hw MMU context change and the TSB table change) so
   that we don't get a perf event interrupt in the middle.  From
   Rob Gardner.

2) Be sure to register hugepages early enough, from Nitin Gupta.

3) UltraSPARC-III user copy exception handling would return garbage
   for the copied length in some circumstances.

Thanks!

The following changes since commit cb8c65ccff7f77d0285f1b126c72d37b2572c865:

  Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc (2017-07-17 15:08:29 -0700)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git 

for you to fetch changes up to 0ede1c401332173ab0693121dc6cde04a4dbf131:

  sparc64: Fix exception handling in UltraSPARC-III memcpy. (2017-08-04 09:47:52 -0700)

----------------------------------------------------------------
David S. Miller (1):
      sparc64: Fix exception handling in UltraSPARC-III memcpy.

Krzysztof Kozlowski (1):
      sparc: defconfig: Cleanup from old Kconfig options

Nitin Gupta (1):
      sparc64: Register hugepages during arch init

Rob Gardner (1):
      sparc64: Prevent perf from running during super critical sections

Rob Herring (1):
      sbus: Convert to using %pOF instead of full_name

 arch/sparc/configs/sparc32_defconfig    |  4 ----
 arch/sparc/configs/sparc64_defconfig    |  4 ----
 arch/sparc/include/asm/mmu_context_64.h | 14 +++++++++-----
 arch/sparc/kernel/tsb.S                 | 12 ++++++++++++
 arch/sparc/lib/U3memcpy.S               |  4 ++--
 arch/sparc/mm/init_64.c                 | 25 ++++++++++++++++++++++++-
 arch/sparc/power/hibernate.c            |  3 +--
 drivers/sbus/char/display7seg.c         |  4 ++--
 drivers/sbus/char/flash.c               |  4 ++--
 drivers/sbus/char/uctrl.c               |  4 ++--
 10 files changed, 54 insertions(+), 24 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2017-08-10  5:26 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2017-08-10  5:26 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Please pull to get these sparc changes:

1) Recognize M8 cpus, just basic chip ID matching, from Allen Pais.

2) Prevent crashes when bringing up sunvdc virtual block devices in
   some environments.  From Jim Quigley.

Thanks!

The following changes since commit 0a23ea65ce9f10ec2ea392571006b781b150327f:

  Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc (2017-08-04 10:17:45 -0700)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git 

for you to fetch changes up to 3ee70591d6c47ef4c4699b3395ba96ce287db937:

  sunvdc: prevent sunvdc panic when mpgroup disk added to guest domain (2017-08-09 22:22:32 -0700)

----------------------------------------------------------------
Allen Pais (2):
      sparc64: properly name the cpu constants
      sparc64: recognize and support sparc M8 cpu type

Jim Quigley (1):
      sunvdc: prevent sunvdc panic when mpgroup disk added to guest domain

Vijay Kumar (1):
      sparc64: Increase max_phys_bits to 51 and VA bits to 53 for M8.

 arch/sparc/include/asm/spitfire.h | 16 ++++++++++++++++
 arch/sparc/kernel/cpu.c           |  6 ++++++
 arch/sparc/kernel/cpumap.c        |  1 +
 arch/sparc/kernel/head_64.S       | 22 ++++++++++++++--------
 arch/sparc/kernel/setup_64.c      | 15 +++++++++++++--
 arch/sparc/mm/init_64.c           | 14 +++++++++++++-
 drivers/block/sunvdc.c            | 61 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 7 files changed, 124 insertions(+), 11 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2017-08-10  5:26 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2017-08-10  5:26 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Please pull to get these sparc changes:

1) Recognize M8 cpus, just basic chip ID matching, from Allen Pais.

2) Prevent crashes when bringing up sunvdc virtual block devices in
   some environments.  From Jim Quigley.

Thanks!

The following changes since commit 0a23ea65ce9f10ec2ea392571006b781b150327f:

  Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc (2017-08-04 10:17:45 -0700)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git 

for you to fetch changes up to 3ee70591d6c47ef4c4699b3395ba96ce287db937:

  sunvdc: prevent sunvdc panic when mpgroup disk added to guest domain (2017-08-09 22:22:32 -0700)

----------------------------------------------------------------
Allen Pais (2):
      sparc64: properly name the cpu constants
      sparc64: recognize and support sparc M8 cpu type

Jim Quigley (1):
      sunvdc: prevent sunvdc panic when mpgroup disk added to guest domain

Vijay Kumar (1):
      sparc64: Increase max_phys_bits to 51 and VA bits to 53 for M8.

 arch/sparc/include/asm/spitfire.h | 16 ++++++++++++++++
 arch/sparc/kernel/cpu.c           |  6 ++++++
 arch/sparc/kernel/cpumap.c        |  1 +
 arch/sparc/kernel/head_64.S       | 22 ++++++++++++++--------
 arch/sparc/kernel/setup_64.c      | 15 +++++++++++++--
 arch/sparc/mm/init_64.c           | 14 +++++++++++++-
 drivers/block/sunvdc.c            | 61 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 7 files changed, 124 insertions(+), 11 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2017-08-21 21:01 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2017-08-21 21:01 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Just a couple small fixes, two of which have to do with gcc-7:

1) Don't clobber kernel fixed registers in __multi4 libgcc helper.

2) Fix a new uninitialized variable warning on sparc32 with gcc-7,
   from Thomas Petazzoni.

3) Adjust pmd_t initializer on sparc32 to make gcc happy.

4) If ATU isn't avoid, don't bark in the logs.  From Tushar Dave.

Please pull, thanks a lot.

The following changes since commit 26273939ace935dd7553b31d279eab30b40f7b9a:

  Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net (2017-08-10 10:30:29 -0700)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc 

for you to fetch changes up to 2dc77533f1e495788d73ffa4bee4323b2646d2bb:

  sparc: kernel/pcic: silence gcc 7.x warning in pcibios_fixup_bus() (2017-08-21 13:57:22 -0700)

----------------------------------------------------------------
David S. Miller (1):
      sparc64: Don't clibber fixed registers in __multi4.

Thomas Petazzoni (1):
      sparc: kernel/pcic: silence gcc 7.x warning in pcibios_fixup_bus()

Tushar Dave (1):
      sparc64: remove unnecessary log message

Zi Yan (1):
      mm: add pmd_t initializer __pmd() to work around a GCC bug.

 arch/sparc/include/asm/page_32.h |  2 ++
 arch/sparc/kernel/pci_sun4v.c    |  2 --
 arch/sparc/kernel/pcic.c         |  2 +-
 arch/sparc/lib/multi3.S          | 24 ++++++++++++------------
 4 files changed, 15 insertions(+), 15 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2017-08-21 21:01 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2017-08-21 21:01 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Just a couple small fixes, two of which have to do with gcc-7:

1) Don't clobber kernel fixed registers in __multi4 libgcc helper.

2) Fix a new uninitialized variable warning on sparc32 with gcc-7,
   from Thomas Petazzoni.

3) Adjust pmd_t initializer on sparc32 to make gcc happy.

4) If ATU isn't avoid, don't bark in the logs.  From Tushar Dave.

Please pull, thanks a lot.

The following changes since commit 26273939ace935dd7553b31d279eab30b40f7b9a:

  Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net (2017-08-10 10:30:29 -0700)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc 

for you to fetch changes up to 2dc77533f1e495788d73ffa4bee4323b2646d2bb:

  sparc: kernel/pcic: silence gcc 7.x warning in pcibios_fixup_bus() (2017-08-21 13:57:22 -0700)

----------------------------------------------------------------
David S. Miller (1):
      sparc64: Don't clibber fixed registers in __multi4.

Thomas Petazzoni (1):
      sparc: kernel/pcic: silence gcc 7.x warning in pcibios_fixup_bus()

Tushar Dave (1):
      sparc64: remove unnecessary log message

Zi Yan (1):
      mm: add pmd_t initializer __pmd() to work around a GCC bug.

 arch/sparc/include/asm/page_32.h |  2 ++
 arch/sparc/kernel/pci_sun4v.c    |  2 --
 arch/sparc/kernel/pcic.c         |  2 +-
 arch/sparc/lib/multi3.S          | 24 ++++++++++++------------
 4 files changed, 15 insertions(+), 15 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2017-09-10  3:24 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2017-09-10  3:24 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


1) Use register window state adjustment instructions when available,
   from Anthony Yznaga.

2) Add VCC console concentrator driver, from Jag Raman.

3) Add 16GB hugepage support, from Nitin Gupta.

4) Support cpu 'poke' hypercall, from Vijay Kumar.

5) Add M7/M8 optimized memcpy/memset/copy_{to,from}_user, from Babu Moger.

Please pull, thanks a lot.

The following changes since commit 26273939ace935dd7553b31d279eab30b40f7b9a:

  Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net (2017-08-10 10:30:29 -0700)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-next.git 

for you to fetch changes up to b6fe1089667a7afcc2cf92cdaec590c7b8381715:

  sparc64: Handle additional cases of no fault loads (2017-09-09 20:20:11 -0700)

----------------------------------------------------------------
Anthony Yznaga (1):
      sparc64: speed up etrap/rtrap on NG2 and later processors

Arvind Yadav (2):
      sparc: leon: grpci2: constify of_device_id
      sparc: leon: grpci1: constify of_device_id

Babu Moger (4):
      arch/sparc: Separate the exception handlers from NG4memcpy
      arch/sparc: Rename exception handlers
      arch/sparc: Optimized memcpy, memset, copy_to_user, copy_from_user for M7/M8
      arch/sparc: Add accurate exception reporting in M7memcpy

Bhumika Goyal (1):
      sparc64: vcc: make ktermios const

Dan Carpenter (1):
      sparc64: vcc: Check for IS_ERR() instead of NULL

David S. Miller (7):
      Merge branch 'sparc64-Add-16GB-hugepage-support'
      Merge branch 'sparc64-Use-low-latency-path-to-resume-idle-cpu'
      sparc64: Revert 16GB huge page support.
      Merge git://git.kernel.org/.../davem/sparc
      Merge branch 'sparc64-M7-memcpy'
      Merge branch 'sparc64-vcc'
      Merge branch 'sparc64-16gb-hugepages'

Jag Raman (13):
      sparc64: vcc: Enable VCC module in linux
      sparc64: vcc: Add VCC debug message macros
      sparc64: vcc: TTY driver initialization and cleanup
      sparc64: vcc: Enable VCC port probe and removal
      sparc64: vcc: Create sysfs attribute group
      sparc64: vcc: Add RX & TX timer for delayed LDC operation
      sparc64: vcc: Enable LDC event processing engine
      sparc64: vcc: Add open & close TTY operations
      sparc64: vcc: Add hangup TTY operation
      sparc64: vcc: Add write & write_room TTY operations
      sparc64: vcc: Add chars_in_buffer TTY operation
      sparc64: vcc: Add break_ctl TTY operation
      sparc64: vcc: Add install & cleanup TTY operations

Nitin Gupta (6):
      sparc64: Support huge PUD case in get_user_pages
      sparc64: Add 16GB hugepage support
      sparc64: Cleanup hugepage table walk functions
      sparc64: Support huge PUD case in get_user_pages
      sparc64: Add 16GB hugepage support
      sparc64: Cleanup hugepage table walk functions

Rob Gardner (1):
      sparc64: Handle additional cases of no fault loads

Sam Ravnborg (1):
      sparc64: update comments in U3memcpy

Vijay Kumar (2):
      sparc64: Add a new hypercall CPU_POKE
      sparc64: Use CPU_POKE to resume idle cpu

 MAINTAINERS                          |    1 +
 arch/sparc/configs/sparc64_defconfig |    1 +
 arch/sparc/include/asm/hugetlb.h     |    7 +
 arch/sparc/include/asm/hypervisor.h  |   18 ++
 arch/sparc/include/asm/page_64.h     |    3 +-
 arch/sparc/include/asm/pgtable_64.h  |   20 +-
 arch/sparc/include/asm/smp_64.h      |    5 +
 arch/sparc/include/asm/trap_block.h  |    2 +
 arch/sparc/include/asm/tsb.h         |   36 ++++
 arch/sparc/include/asm/vio.h         |    9 +
 arch/sparc/kernel/etrap_64.S         |   26 ++-
 arch/sparc/kernel/head_64.S          |   18 +-
 arch/sparc/kernel/hvapi.c            |    2 +-
 arch/sparc/kernel/hvcalls.S          |   11 ++
 arch/sparc/kernel/ldc.c              |    2 +
 arch/sparc/kernel/leon_pci_grpci1.c  |    2 +-
 arch/sparc/kernel/leon_pci_grpci2.c  |    2 +-
 arch/sparc/kernel/process_64.c       |    7 +-
 arch/sparc/kernel/rtrap_64.S         |   13 +-
 arch/sparc/kernel/setup_64.c         |    6 +
 arch/sparc/kernel/smp_64.c           |   80 +++++++-
 arch/sparc/kernel/traps_64.c         |   51 ++++++
 arch/sparc/kernel/tsb.S              |    2 +-
 arch/sparc/kernel/vio.c              |    1 +
 arch/sparc/kernel/viohs.c            |   12 +-
 arch/sparc/kernel/vmlinux.lds.S      |   10 +
 arch/sparc/lib/M7copy_from_user.S    |   40 ++++
 arch/sparc/lib/M7copy_to_user.S      |   51 ++++++
 arch/sparc/lib/M7memcpy.S            |  923 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 arch/sparc/lib/M7memset.S            |  352 ++++++++++++++++++++++++++++++++++++
 arch/sparc/lib/M7patch.S             |   51 ++++++
 arch/sparc/lib/Makefile              |    5 +
 arch/sparc/lib/Memcpy_utils.S        |  345 +++++++++++++++++++++++++++++++++++
 arch/sparc/lib/NG4memcpy.S           |  277 +++++++---------------------
 arch/sparc/lib/U3memcpy.S            |   32 ++--
 arch/sparc/mm/gup.c                  |   45 ++++-
 arch/sparc/mm/hugetlbpage.c          |  102 ++++++-----
 arch/sparc/mm/init_64.c              |   54 +++++-
 drivers/tty/Kconfig                  |    5 +
 drivers/tty/Makefile                 |    1 +
 drivers/tty/vcc.c                    | 1155 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 41 files changed, 3488 insertions(+), 297 deletions(-)
 create mode 100644 arch/sparc/lib/M7copy_from_user.S
 create mode 100644 arch/sparc/lib/M7copy_to_user.S
 create mode 100644 arch/sparc/lib/M7memcpy.S
 create mode 100644 arch/sparc/lib/M7memset.S
 create mode 100644 arch/sparc/lib/M7patch.S
 create mode 100644 arch/sparc/lib/Memcpy_utils.S
 create mode 100644 drivers/tty/vcc.c

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2017-09-10  3:24 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2017-09-10  3:24 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


1) Use register window state adjustment instructions when available,
   from Anthony Yznaga.

2) Add VCC console concentrator driver, from Jag Raman.

3) Add 16GB hugepage support, from Nitin Gupta.

4) Support cpu 'poke' hypercall, from Vijay Kumar.

5) Add M7/M8 optimized memcpy/memset/copy_{to,from}_user, from Babu Moger.

Please pull, thanks a lot.

The following changes since commit 26273939ace935dd7553b31d279eab30b40f7b9a:

  Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net (2017-08-10 10:30:29 -0700)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-next.git 

for you to fetch changes up to b6fe1089667a7afcc2cf92cdaec590c7b8381715:

  sparc64: Handle additional cases of no fault loads (2017-09-09 20:20:11 -0700)

----------------------------------------------------------------
Anthony Yznaga (1):
      sparc64: speed up etrap/rtrap on NG2 and later processors

Arvind Yadav (2):
      sparc: leon: grpci2: constify of_device_id
      sparc: leon: grpci1: constify of_device_id

Babu Moger (4):
      arch/sparc: Separate the exception handlers from NG4memcpy
      arch/sparc: Rename exception handlers
      arch/sparc: Optimized memcpy, memset, copy_to_user, copy_from_user for M7/M8
      arch/sparc: Add accurate exception reporting in M7memcpy

Bhumika Goyal (1):
      sparc64: vcc: make ktermios const

Dan Carpenter (1):
      sparc64: vcc: Check for IS_ERR() instead of NULL

David S. Miller (7):
      Merge branch 'sparc64-Add-16GB-hugepage-support'
      Merge branch 'sparc64-Use-low-latency-path-to-resume-idle-cpu'
      sparc64: Revert 16GB huge page support.
      Merge git://git.kernel.org/.../davem/sparc
      Merge branch 'sparc64-M7-memcpy'
      Merge branch 'sparc64-vcc'
      Merge branch 'sparc64-16gb-hugepages'

Jag Raman (13):
      sparc64: vcc: Enable VCC module in linux
      sparc64: vcc: Add VCC debug message macros
      sparc64: vcc: TTY driver initialization and cleanup
      sparc64: vcc: Enable VCC port probe and removal
      sparc64: vcc: Create sysfs attribute group
      sparc64: vcc: Add RX & TX timer for delayed LDC operation
      sparc64: vcc: Enable LDC event processing engine
      sparc64: vcc: Add open & close TTY operations
      sparc64: vcc: Add hangup TTY operation
      sparc64: vcc: Add write & write_room TTY operations
      sparc64: vcc: Add chars_in_buffer TTY operation
      sparc64: vcc: Add break_ctl TTY operation
      sparc64: vcc: Add install & cleanup TTY operations

Nitin Gupta (6):
      sparc64: Support huge PUD case in get_user_pages
      sparc64: Add 16GB hugepage support
      sparc64: Cleanup hugepage table walk functions
      sparc64: Support huge PUD case in get_user_pages
      sparc64: Add 16GB hugepage support
      sparc64: Cleanup hugepage table walk functions

Rob Gardner (1):
      sparc64: Handle additional cases of no fault loads

Sam Ravnborg (1):
      sparc64: update comments in U3memcpy

Vijay Kumar (2):
      sparc64: Add a new hypercall CPU_POKE
      sparc64: Use CPU_POKE to resume idle cpu

 MAINTAINERS                          |    1 +
 arch/sparc/configs/sparc64_defconfig |    1 +
 arch/sparc/include/asm/hugetlb.h     |    7 +
 arch/sparc/include/asm/hypervisor.h  |   18 ++
 arch/sparc/include/asm/page_64.h     |    3 +-
 arch/sparc/include/asm/pgtable_64.h  |   20 +-
 arch/sparc/include/asm/smp_64.h      |    5 +
 arch/sparc/include/asm/trap_block.h  |    2 +
 arch/sparc/include/asm/tsb.h         |   36 ++++
 arch/sparc/include/asm/vio.h         |    9 +
 arch/sparc/kernel/etrap_64.S         |   26 ++-
 arch/sparc/kernel/head_64.S          |   18 +-
 arch/sparc/kernel/hvapi.c            |    2 +-
 arch/sparc/kernel/hvcalls.S          |   11 ++
 arch/sparc/kernel/ldc.c              |    2 +
 arch/sparc/kernel/leon_pci_grpci1.c  |    2 +-
 arch/sparc/kernel/leon_pci_grpci2.c  |    2 +-
 arch/sparc/kernel/process_64.c       |    7 +-
 arch/sparc/kernel/rtrap_64.S         |   13 +-
 arch/sparc/kernel/setup_64.c         |    6 +
 arch/sparc/kernel/smp_64.c           |   80 +++++++-
 arch/sparc/kernel/traps_64.c         |   51 ++++++
 arch/sparc/kernel/tsb.S              |    2 +-
 arch/sparc/kernel/vio.c              |    1 +
 arch/sparc/kernel/viohs.c            |   12 +-
 arch/sparc/kernel/vmlinux.lds.S      |   10 +
 arch/sparc/lib/M7copy_from_user.S    |   40 ++++
 arch/sparc/lib/M7copy_to_user.S      |   51 ++++++
 arch/sparc/lib/M7memcpy.S            |  923 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 arch/sparc/lib/M7memset.S            |  352 ++++++++++++++++++++++++++++++++++++
 arch/sparc/lib/M7patch.S             |   51 ++++++
 arch/sparc/lib/Makefile              |    5 +
 arch/sparc/lib/Memcpy_utils.S        |  345 +++++++++++++++++++++++++++++++++++
 arch/sparc/lib/NG4memcpy.S           |  277 +++++++---------------------
 arch/sparc/lib/U3memcpy.S            |   32 ++--
 arch/sparc/mm/gup.c                  |   45 ++++-
 arch/sparc/mm/hugetlbpage.c          |  102 ++++++-----
 arch/sparc/mm/init_64.c              |   54 +++++-
 drivers/tty/Kconfig                  |    5 +
 drivers/tty/Makefile                 |    1 +
 drivers/tty/vcc.c                    | 1155 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 41 files changed, 3488 insertions(+), 297 deletions(-)
 create mode 100644 arch/sparc/lib/M7copy_from_user.S
 create mode 100644 arch/sparc/lib/M7copy_to_user.S
 create mode 100644 arch/sparc/lib/M7memcpy.S
 create mode 100644 arch/sparc/lib/M7memset.S
 create mode 100644 arch/sparc/lib/M7patch.S
 create mode 100644 arch/sparc/lib/Memcpy_utils.S
 create mode 100644 drivers/tty/vcc.c

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2017-11-18  3:15 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2017-11-18  3:15 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


1) Add missing cmpxchg64() for 32-bit sparc.

2) Timer conversions from Allen Pais and Kees Cook.

3) vDSO support, from Nagarathnam Muthusamy.

4) Fix sparc64 huge page table walks based upon bug report by Al Viro,
   from Nitin Gupta.

5) Optimized fls() for T4 and above, from Vijay Kumar.

Please pull, thanks a lot!

The following changes since commit 9cd6681cb1169e815c41af0265165dd1b872f228:

  Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs (2017-09-27 12:22:12 -0700)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git 

for you to fetch changes up to 70f3c8b7c2e7ebcdde8354da004872e7c9184e97:

  sparc64: Fix page table walk for PUD hugepages (2017-11-15 14:37:43 +0900)

----------------------------------------------------------------
Allen Pais (1):
      sparc64: Convert timers to user timer_setup()

Corentin Labbe (2):
      sparc: time: Remove unneeded linux/miscdevice.h include
      sbus: char: Move D7S_MINOR to include/linux/miscdevice.h

David S. Miller (2):
      sparc32: Add cmpxchg64().
      Merge branch 'sparc64-optimized-fls'

Elena Reshetova (1):
      sparc64: convert mdesc_handle.refcnt from atomic_t to refcount_t

Guenter Roeck (1):
      sparc64: mmu_context: Add missing include files

Kees Cook (1):
      sparc/led: Convert timers to use timer_setup()

Nagarathnam Muthusamy (1):
      vDSO for sparc

Nitin Gupta (1):
      sparc64: Fix page table walk for PUD hugepages

Vijay Kumar (5):
      sparc64: Define SPARC default fls function
      sparc64: Define SPARC default __fls function
      sparc64: SPARC optimized fls function
      sparc64: SPARC optimized __fls function
      sparc64: Use sparc optimized fls and __fls for T4 and above

 arch/sparc/Kbuild                       |   1 +
 arch/sparc/Kconfig                      |   2 +
 arch/sparc/Makefile                     |   4 ++
 arch/sparc/include/asm/bitops_64.h      |   5 +-
 arch/sparc/include/asm/clocksource.h    |  17 +++++
 arch/sparc/include/asm/cmpxchg_32.h     |   3 +
 arch/sparc/include/asm/elf_64.h         |  14 ++++
 arch/sparc/include/asm/mmu_64.h         |   1 +
 arch/sparc/include/asm/mmu_context_64.h |   2 +
 arch/sparc/include/asm/processor_64.h   |   8 +++
 arch/sparc/include/asm/tsb.h            |   2 +-
 arch/sparc/include/asm/vdso.h           |  24 +++++++
 arch/sparc/include/asm/vvar.h           |  74 ++++++++++++++++++++
 arch/sparc/include/uapi/asm/auxvec.h    |   4 ++
 arch/sparc/kernel/Makefile              |   1 +
 arch/sparc/kernel/head_64.S             |   2 +
 arch/sparc/kernel/led.c                 |  16 +++--
 arch/sparc/kernel/mdesc.c               |  17 ++---
 arch/sparc/kernel/time_64.c             |  12 +++-
 arch/sparc/kernel/vdso.c                |  70 +++++++++++++++++++
 arch/sparc/kernel/viohs.c               |   6 +-
 arch/sparc/lib/Makefile                 |   3 +
 arch/sparc/lib/NG4fls.S                 |  30 +++++++++
 arch/sparc/lib/NG4patch.S               |   9 +++
 arch/sparc/lib/atomic32.c               |  14 ++++
 arch/sparc/lib/fls.S                    |  67 +++++++++++++++++++
 arch/sparc/lib/fls64.S                  |  61 +++++++++++++++++
 arch/sparc/vdso/.gitignore              |   3 +
 arch/sparc/vdso/Makefile                | 149 +++++++++++++++++++++++++++++++++++++++++
 arch/sparc/vdso/vclock_gettime.c        | 264 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 arch/sparc/vdso/vdso-layout.lds.S       | 104 ++++++++++++++++++++++++++++
 arch/sparc/vdso/vdso-note.S             |  12 ++++
 arch/sparc/vdso/vdso.lds.S              |  25 +++++++
 arch/sparc/vdso/vdso2c.c                | 234 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 arch/sparc/vdso/vdso2c.h                | 143 +++++++++++++++++++++++++++++++++++++++
 arch/sparc/vdso/vdso32/.gitignore       |   1 +
 arch/sparc/vdso/vdso32/vclock_gettime.c |  26 +++++++
 arch/sparc/vdso/vdso32/vdso-note.S      |  12 ++++
 arch/sparc/vdso/vdso32/vdso32.lds.S     |  24 +++++++
 arch/sparc/vdso/vma.c                   | 268 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 drivers/sbus/char/display7seg.c         |   1 -
 include/linux/miscdevice.h              |   1 +
 42 files changed, 1711 insertions(+), 25 deletions(-)
 create mode 100644 arch/sparc/include/asm/clocksource.h
 create mode 100644 arch/sparc/include/asm/vdso.h
 create mode 100644 arch/sparc/include/asm/vvar.h
 create mode 100644 arch/sparc/kernel/vdso.c
 create mode 100644 arch/sparc/lib/NG4fls.S
 create mode 100644 arch/sparc/lib/fls.S
 create mode 100644 arch/sparc/lib/fls64.S
 create mode 100644 arch/sparc/vdso/.gitignore
 create mode 100644 arch/sparc/vdso/Makefile
 create mode 100644 arch/sparc/vdso/vclock_gettime.c
 create mode 100644 arch/sparc/vdso/vdso-layout.lds.S
 create mode 100644 arch/sparc/vdso/vdso-note.S
 create mode 100644 arch/sparc/vdso/vdso.lds.S
 create mode 100644 arch/sparc/vdso/vdso2c.c
 create mode 100644 arch/sparc/vdso/vdso2c.h
 create mode 100644 arch/sparc/vdso/vdso32/.gitignore
 create mode 100644 arch/sparc/vdso/vdso32/vclock_gettime.c
 create mode 100644 arch/sparc/vdso/vdso32/vdso-note.S
 create mode 100644 arch/sparc/vdso/vdso32/vdso32.lds.S
 create mode 100644 arch/sparc/vdso/vma.c

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2017-11-18  3:15 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2017-11-18  3:15 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


1) Add missing cmpxchg64() for 32-bit sparc.

2) Timer conversions from Allen Pais and Kees Cook.

3) vDSO support, from Nagarathnam Muthusamy.

4) Fix sparc64 huge page table walks based upon bug report by Al Viro,
   from Nitin Gupta.

5) Optimized fls() for T4 and above, from Vijay Kumar.

Please pull, thanks a lot!

The following changes since commit 9cd6681cb1169e815c41af0265165dd1b872f228:

  Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs (2017-09-27 12:22:12 -0700)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git 

for you to fetch changes up to 70f3c8b7c2e7ebcdde8354da004872e7c9184e97:

  sparc64: Fix page table walk for PUD hugepages (2017-11-15 14:37:43 +0900)

----------------------------------------------------------------
Allen Pais (1):
      sparc64: Convert timers to user timer_setup()

Corentin Labbe (2):
      sparc: time: Remove unneeded linux/miscdevice.h include
      sbus: char: Move D7S_MINOR to include/linux/miscdevice.h

David S. Miller (2):
      sparc32: Add cmpxchg64().
      Merge branch 'sparc64-optimized-fls'

Elena Reshetova (1):
      sparc64: convert mdesc_handle.refcnt from atomic_t to refcount_t

Guenter Roeck (1):
      sparc64: mmu_context: Add missing include files

Kees Cook (1):
      sparc/led: Convert timers to use timer_setup()

Nagarathnam Muthusamy (1):
      vDSO for sparc

Nitin Gupta (1):
      sparc64: Fix page table walk for PUD hugepages

Vijay Kumar (5):
      sparc64: Define SPARC default fls function
      sparc64: Define SPARC default __fls function
      sparc64: SPARC optimized fls function
      sparc64: SPARC optimized __fls function
      sparc64: Use sparc optimized fls and __fls for T4 and above

 arch/sparc/Kbuild                       |   1 +
 arch/sparc/Kconfig                      |   2 +
 arch/sparc/Makefile                     |   4 ++
 arch/sparc/include/asm/bitops_64.h      |   5 +-
 arch/sparc/include/asm/clocksource.h    |  17 +++++
 arch/sparc/include/asm/cmpxchg_32.h     |   3 +
 arch/sparc/include/asm/elf_64.h         |  14 ++++
 arch/sparc/include/asm/mmu_64.h         |   1 +
 arch/sparc/include/asm/mmu_context_64.h |   2 +
 arch/sparc/include/asm/processor_64.h   |   8 +++
 arch/sparc/include/asm/tsb.h            |   2 +-
 arch/sparc/include/asm/vdso.h           |  24 +++++++
 arch/sparc/include/asm/vvar.h           |  74 ++++++++++++++++++++
 arch/sparc/include/uapi/asm/auxvec.h    |   4 ++
 arch/sparc/kernel/Makefile              |   1 +
 arch/sparc/kernel/head_64.S             |   2 +
 arch/sparc/kernel/led.c                 |  16 +++--
 arch/sparc/kernel/mdesc.c               |  17 ++---
 arch/sparc/kernel/time_64.c             |  12 +++-
 arch/sparc/kernel/vdso.c                |  70 +++++++++++++++++++
 arch/sparc/kernel/viohs.c               |   6 +-
 arch/sparc/lib/Makefile                 |   3 +
 arch/sparc/lib/NG4fls.S                 |  30 +++++++++
 arch/sparc/lib/NG4patch.S               |   9 +++
 arch/sparc/lib/atomic32.c               |  14 ++++
 arch/sparc/lib/fls.S                    |  67 +++++++++++++++++++
 arch/sparc/lib/fls64.S                  |  61 +++++++++++++++++
 arch/sparc/vdso/.gitignore              |   3 +
 arch/sparc/vdso/Makefile                | 149 +++++++++++++++++++++++++++++++++++++++++
 arch/sparc/vdso/vclock_gettime.c        | 264 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 arch/sparc/vdso/vdso-layout.lds.S       | 104 ++++++++++++++++++++++++++++
 arch/sparc/vdso/vdso-note.S             |  12 ++++
 arch/sparc/vdso/vdso.lds.S              |  25 +++++++
 arch/sparc/vdso/vdso2c.c                | 234 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 arch/sparc/vdso/vdso2c.h                | 143 +++++++++++++++++++++++++++++++++++++++
 arch/sparc/vdso/vdso32/.gitignore       |   1 +
 arch/sparc/vdso/vdso32/vclock_gettime.c |  26 +++++++
 arch/sparc/vdso/vdso32/vdso-note.S      |  12 ++++
 arch/sparc/vdso/vdso32/vdso32.lds.S     |  24 +++++++
 arch/sparc/vdso/vma.c                   | 268 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 drivers/sbus/char/display7seg.c         |   1 -
 include/linux/miscdevice.h              |   1 +
 42 files changed, 1711 insertions(+), 25 deletions(-)
 create mode 100644 arch/sparc/include/asm/clocksource.h
 create mode 100644 arch/sparc/include/asm/vdso.h
 create mode 100644 arch/sparc/include/asm/vvar.h
 create mode 100644 arch/sparc/kernel/vdso.c
 create mode 100644 arch/sparc/lib/NG4fls.S
 create mode 100644 arch/sparc/lib/fls.S
 create mode 100644 arch/sparc/lib/fls64.S
 create mode 100644 arch/sparc/vdso/.gitignore
 create mode 100644 arch/sparc/vdso/Makefile
 create mode 100644 arch/sparc/vdso/vclock_gettime.c
 create mode 100644 arch/sparc/vdso/vdso-layout.lds.S
 create mode 100644 arch/sparc/vdso/vdso-note.S
 create mode 100644 arch/sparc/vdso/vdso.lds.S
 create mode 100644 arch/sparc/vdso/vdso2c.c
 create mode 100644 arch/sparc/vdso/vdso2c.h
 create mode 100644 arch/sparc/vdso/vdso32/.gitignore
 create mode 100644 arch/sparc/vdso/vdso32/vclock_gettime.c
 create mode 100644 arch/sparc/vdso/vdso32/vdso-note.S
 create mode 100644 arch/sparc/vdso/vdso32/vdso32.lds.S
 create mode 100644 arch/sparc/vdso/vma.c

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2017-11-29 20:17 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2017-11-29 20:17 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Please pull to get this T4 and later cpu bootup regression
fix.

Thank you!

The following changes since commit 0c86a6bd85ff0629cd2c5141027fc1c8bb6cde9c:

  Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net (2017-11-21 05:56:12 -1000)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git 

for you to fetch changes up to e5372cd5ef12b05ae74d608f95dc53fe06558867:

  sparc64: Fix boot on T4 and later. (2017-11-29 15:09:29 -0500)

----------------------------------------------------------------
David S. Miller (1):
      sparc64: Fix boot on T4 and later.

 arch/sparc/lib/Makefile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2017-11-29 20:17 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2017-11-29 20:17 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Please pull to get this T4 and later cpu bootup regression
fix.

Thank you!

The following changes since commit 0c86a6bd85ff0629cd2c5141027fc1c8bb6cde9c:

  Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net (2017-11-21 05:56:12 -1000)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git 

for you to fetch changes up to e5372cd5ef12b05ae74d608f95dc53fe06558867:

  sparc64: Fix boot on T4 and later. (2017-11-29 15:09:29 -0500)

----------------------------------------------------------------
David S. Miller (1):
      sparc64: Fix boot on T4 and later.

 arch/sparc/lib/Makefile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2017-12-31  4:17 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2017-12-31  4:17 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Please pull to get this sparc64 bug fix.

Thank you!

The following changes since commit 5f520fc318764df800789edd202b5e3b55130613:

  Merge tag 'trace-v4.15-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace (2017-12-27 13:06:57 -0800)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc 

for you to fetch changes up to 59585b4be9ae4dc6506551709bdcd6f5210b8a01:

  sparc64: repair calling incorrect hweight function from stubs (2017-12-27 20:29:48 -0500)

----------------------------------------------------------------
Jan Engelhardt (1):
      sparc64: repair calling incorrect hweight function from stubs

 arch/sparc/lib/hweight.S | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2017-12-31  4:17 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2017-12-31  4:17 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Please pull to get this sparc64 bug fix.

Thank you!

The following changes since commit 5f520fc318764df800789edd202b5e3b55130613:

  Merge tag 'trace-v4.15-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace (2017-12-27 13:06:57 -0800)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc 

for you to fetch changes up to 59585b4be9ae4dc6506551709bdcd6f5210b8a01:

  sparc64: repair calling incorrect hweight function from stubs (2017-12-27 20:29:48 -0500)

----------------------------------------------------------------
Jan Engelhardt (1):
      sparc64: repair calling incorrect hweight function from stubs

 arch/sparc/lib/hweight.S | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2018-01-24 23:23 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2018-01-24 23:23 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Please pull to get this sparc Makefile typo fix.

Thank you.

The following changes since commit 0d665e7b109d512b7cae3ccef6e8654714887844:

  mm, page_vma_mapped: Drop faulty pointer arithmetics in check_pte() (2018-01-21 17:44:47 -0800)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git 

for you to fetch changes up to aebb48f5e465772576359c1705c4a84abea92027:

  sparc64: fix typo in CONFIG_CRYPTO_DES_SPARC64 => CONFIG_CRYPTO_CAMELLIA_SPARC64 (2018-01-24 16:47:55 -0500)

----------------------------------------------------------------
Corentin Labbe (1):
      sparc64: fix typo in CONFIG_CRYPTO_DES_SPARC64 => CONFIG_CRYPTO_CAMELLIA_SPARC64

 arch/sparc/crypto/Makefile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2018-01-24 23:23 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2018-01-24 23:23 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Please pull to get this sparc Makefile typo fix.

Thank you.

The following changes since commit 0d665e7b109d512b7cae3ccef6e8654714887844:

  mm, page_vma_mapped: Drop faulty pointer arithmetics in check_pte() (2018-01-21 17:44:47 -0800)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git 

for you to fetch changes up to aebb48f5e465772576359c1705c4a84abea92027:

  sparc64: fix typo in CONFIG_CRYPTO_DES_SPARC64 => CONFIG_CRYPTO_CAMELLIA_SPARC64 (2018-01-24 16:47:55 -0500)

----------------------------------------------------------------
Corentin Labbe (1):
      sparc64: fix typo in CONFIG_CRYPTO_DES_SPARC64 => CONFIG_CRYPTO_CAMELLIA_SPARC64

 arch/sparc/crypto/Makefile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2018-02-01 15:20 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2018-02-01 15:20 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Please pull to get the following sparc changes for the merge window.

Of note is the addition of a driver for the Data Analytics
Accelerator, and some small cleanups.

Thanks!

The following changes since commit 0d665e7b109d512b7cae3ccef6e8654714887844:

  mm, page_vma_mapped: Drop faulty pointer arithmetics in check_pte() (2018-01-21 17:44:47 -0800)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-next.git 

for you to fetch changes up to 2d85ec8acb01601a216b6c591cab63bfaacd2083:

  oradax: Fix return value check in dax_attach() (2018-01-29 14:28:48 -0500)

----------------------------------------------------------------
Dan Carpenter (1):
      sparc: vDSO: remove an extra tab

David S. Miller (1):
      Merge branch 'sparc64-dax-support'

Rob Gardner (2):
      sparc64: Oracle DAX infrastructure
      sparc64: Oracle DAX driver

Rolf Eike Beer (1):
      sparc64: drop unneeded compat include

Wei Yongjun (1):
      oradax: Fix return value check in dax_attach()

 Documentation/sparc/oradax/dax-hv-api.txt | 1433 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 Documentation/sparc/oradax/oracle-dax.txt |  429 +++++++++++++++++++++++
 arch/sparc/include/asm/hypervisor.h       |  138 ++++++++
 arch/sparc/include/uapi/asm/oradax.h      |   91 +++++
 arch/sparc/kernel/hvapi.c                 |    1 +
 arch/sparc/kernel/hvcalls.S               |   57 ++++
 arch/sparc/kernel/signal_64.c             |    3 -
 arch/sparc/vdso/vma.c                     |    2 +-
 drivers/sbus/char/Kconfig                 |    8 +
 drivers/sbus/char/Makefile                |    1 +
 drivers/sbus/char/oradax.c                | 1005 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 11 files changed, 3164 insertions(+), 4 deletions(-)
 create mode 100644 Documentation/sparc/oradax/dax-hv-api.txt
 create mode 100644 Documentation/sparc/oradax/oracle-dax.txt
 create mode 100644 arch/sparc/include/uapi/asm/oradax.h
 create mode 100644 drivers/sbus/char/oradax.c

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2018-02-01 15:20 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2018-02-01 15:20 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Please pull to get the following sparc changes for the merge window.

Of note is the addition of a driver for the Data Analytics
Accelerator, and some small cleanups.

Thanks!

The following changes since commit 0d665e7b109d512b7cae3ccef6e8654714887844:

  mm, page_vma_mapped: Drop faulty pointer arithmetics in check_pte() (2018-01-21 17:44:47 -0800)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-next.git 

for you to fetch changes up to 2d85ec8acb01601a216b6c591cab63bfaacd2083:

  oradax: Fix return value check in dax_attach() (2018-01-29 14:28:48 -0500)

----------------------------------------------------------------
Dan Carpenter (1):
      sparc: vDSO: remove an extra tab

David S. Miller (1):
      Merge branch 'sparc64-dax-support'

Rob Gardner (2):
      sparc64: Oracle DAX infrastructure
      sparc64: Oracle DAX driver

Rolf Eike Beer (1):
      sparc64: drop unneeded compat include

Wei Yongjun (1):
      oradax: Fix return value check in dax_attach()

 Documentation/sparc/oradax/dax-hv-api.txt | 1433 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 Documentation/sparc/oradax/oracle-dax.txt |  429 +++++++++++++++++++++++
 arch/sparc/include/asm/hypervisor.h       |  138 ++++++++
 arch/sparc/include/uapi/asm/oradax.h      |   91 +++++
 arch/sparc/kernel/hvapi.c                 |    1 +
 arch/sparc/kernel/hvcalls.S               |   57 ++++
 arch/sparc/kernel/signal_64.c             |    3 -
 arch/sparc/vdso/vma.c                     |    2 +-
 drivers/sbus/char/Kconfig                 |    8 +
 drivers/sbus/char/Makefile                |    1 +
 drivers/sbus/char/oradax.c                | 1005 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 11 files changed, 3164 insertions(+), 4 deletions(-)
 create mode 100644 Documentation/sparc/oradax/dax-hv-api.txt
 create mode 100644 Documentation/sparc/oradax/oracle-dax.txt
 create mode 100644 arch/sparc/include/uapi/asm/oradax.h
 create mode 100644 drivers/sbus/char/oradax.c

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2018-03-15 21:20 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2018-03-15 21:20 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Please pull to get this sparc64 PMD handling regression fix.

Thank you!

The following changes since commit e2c15aff5f353ba80bd3bb49840837f65fa5cc43:

  Merge tag 'sound-4.16-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound (2018-03-15 11:07:35 -0700)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git 

for you to fetch changes up to cfb61b5e3e09f8b49bc4d685429df75f45127adc:

  sparc64: Fix regression in pmdp_invalidate(). (2018-03-15 14:18:00 -0700)

----------------------------------------------------------------
David S. Miller (1):
      sparc64: Fix regression in pmdp_invalidate().

 arch/sparc/mm/tlb.c | 19 +++++++++++++------
 1 file changed, 13 insertions(+), 6 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2018-03-15 21:20 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2018-03-15 21:20 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Please pull to get this sparc64 PMD handling regression fix.

Thank you!

The following changes since commit e2c15aff5f353ba80bd3bb49840837f65fa5cc43:

  Merge tag 'sound-4.16-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound (2018-03-15 11:07:35 -0700)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git 

for you to fetch changes up to cfb61b5e3e09f8b49bc4d685429df75f45127adc:

  sparc64: Fix regression in pmdp_invalidate(). (2018-03-15 14:18:00 -0700)

----------------------------------------------------------------
David S. Miller (1):
      sparc64: Fix regression in pmdp_invalidate().

 arch/sparc/mm/tlb.c | 19 +++++++++++++------
 1 file changed, 13 insertions(+), 6 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2018-04-03 15:31 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2018-04-03 15:31 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


1) Add support for ADI (Application Data Integrity) found in more recent
   sparc64 cpus.  Essentially this is keyed based access to virtual memory,
   and if the key encoded in the virual address is wrong you get a trap.

   The mm changes were reviewed by Andrew Morton and others.

   Work by Khalid Aziz.

2) Validate DAX completion index range properly, from Rob Gardner.

3) Add proper Kconfig deps for DAX driver.  From Guenter Roeck.

Please pull, thanks a lot.

The following changes since commit 8f5fd927c3a7576d57248a2d7a0861c3f2795973:

  Merge tag 'for-4.16-rc5-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux (2018-03-16 13:37:42 -0700)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-next.git 

for you to fetch changes up to d13864b68e41c11e4231de90cf358658f6ecea45:

  sparc64: Make atomic_xchg() an inline function rather than a macro. (2018-04-03 08:24:35 -0700)

----------------------------------------------------------------
David S. Miller (3):
      Merge branch 'sparc64-ADI'
      Merge git://git.kernel.org/.../davem/sparc
      sparc64: Make atomic_xchg() an inline function rather than a macro.

Guenter Roeck (1):
      sparc64: Oracle DAX driver depends on SPARC64

Khalid Aziz (12):
      signals, sparc: Add signal codes for ADI violations
      mm, swap: Add infrastructure for saving page metadata on swap
      sparc64: Add support for ADI register fields, ASIs and traps
      sparc64: Add HV fault type handlers for ADI related faults
      sparc64: Add handler for "Memory Corruption Detected" trap
      sparc64: Add auxiliary vectors to report platform ADI properties
      mm: Add address parameter to arch_validate_prot()
      mm: Clear arch specific VM flags on protection change
      mm: Allow arch code to override copy_highpage()
      sparc64: Add support for ADI (Application Data Integrity)
      sparc64: Update signal delivery to use new helper functions
      sparc: Make auxiliary vectors for ADI available on 32-bit as well

Rob Gardner (1):
      sparc64: Properly range check DAX completion index

 Documentation/sparc/adi.txt             | 278 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 arch/powerpc/include/asm/mman.h         |   4 +-
 arch/powerpc/kernel/syscalls.c          |   2 +-
 arch/sparc/include/asm/adi.h            |   6 ++
 arch/sparc/include/asm/adi_64.h         |  47 +++++++++++++
 arch/sparc/include/asm/atomic_64.h      |   6 +-
 arch/sparc/include/asm/elf_64.h         |   5 ++
 arch/sparc/include/asm/hypervisor.h     |   2 +
 arch/sparc/include/asm/mman.h           |  84 ++++++++++++++++++++++-
 arch/sparc/include/asm/mmu_64.h         |  17 +++++
 arch/sparc/include/asm/mmu_context_64.h |  51 ++++++++++++++
 arch/sparc/include/asm/page_64.h        |   6 ++
 arch/sparc/include/asm/pgtable_64.h     |  48 ++++++++++++++
 arch/sparc/include/asm/thread_info_64.h |   2 +-
 arch/sparc/include/asm/trap_block.h     |   2 +
 arch/sparc/include/asm/ttable.h         |  10 +++
 arch/sparc/include/uapi/asm/asi.h       |   5 ++
 arch/sparc/include/uapi/asm/auxvec.h    |   9 ++-
 arch/sparc/include/uapi/asm/mman.h      |   2 +
 arch/sparc/include/uapi/asm/pstate.h    |  10 +++
 arch/sparc/kernel/Makefile              |   1 +
 arch/sparc/kernel/adi_64.c              | 397 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 arch/sparc/kernel/entry.h               |   3 +
 arch/sparc/kernel/etrap_64.S            |  27 +++++++-
 arch/sparc/kernel/head_64.S             |   1 +
 arch/sparc/kernel/mdesc.c               |   2 +
 arch/sparc/kernel/process_64.c          |  25 +++++++
 arch/sparc/kernel/rtrap_64.S            |  33 ++++++++-
 arch/sparc/kernel/setup_64.c            |   2 +
 arch/sparc/kernel/sun4v_mcd.S           |  18 +++++
 arch/sparc/kernel/traps_64.c            | 130 ++++++++++++++++++++++++++++++++++--
 arch/sparc/kernel/ttable_64.S           |   6 +-
 arch/sparc/kernel/urtt_fill.S           |   7 +-
 arch/sparc/kernel/vmlinux.lds.S         |   5 ++
 arch/sparc/mm/gup.c                     |  37 +++++++++++
 arch/sparc/mm/hugetlbpage.c             |  14 +++-
 arch/sparc/mm/init_64.c                 |  69 +++++++++++++++++++
 arch/sparc/mm/tsb.c                     |  21 ++++++
 arch/x86/kernel/signal_compat.c         |   2 +-
 drivers/sbus/char/Kconfig               |   3 +-
 drivers/sbus/char/oradax.c              |   2 +-
 include/asm-generic/pgtable.h           |  36 ++++++++++
 include/linux/highmem.h                 |   4 ++
 include/linux/mm.h                      |   9 +++
 include/linux/mman.h                    |   2 +-
 include/uapi/asm-generic/siginfo.h      |   5 +-
 mm/ksm.c                                |   4 ++
 mm/memory.c                             |   1 +
 mm/mprotect.c                           |   4 +-
 mm/rmap.c                               |  14 ++++
 50 files changed, 1451 insertions(+), 29 deletions(-)
 create mode 100644 Documentation/sparc/adi.txt
 create mode 100644 arch/sparc/include/asm/adi.h
 create mode 100644 arch/sparc/include/asm/adi_64.h
 create mode 100644 arch/sparc/kernel/adi_64.c
 create mode 100644 arch/sparc/kernel/sun4v_mcd.S

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2018-04-03 15:31 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2018-04-03 15:31 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


1) Add support for ADI (Application Data Integrity) found in more recent
   sparc64 cpus.  Essentially this is keyed based access to virtual memory,
   and if the key encoded in the virual address is wrong you get a trap.

   The mm changes were reviewed by Andrew Morton and others.

   Work by Khalid Aziz.

2) Validate DAX completion index range properly, from Rob Gardner.

3) Add proper Kconfig deps for DAX driver.  From Guenter Roeck.

Please pull, thanks a lot.

The following changes since commit 8f5fd927c3a7576d57248a2d7a0861c3f2795973:

  Merge tag 'for-4.16-rc5-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux (2018-03-16 13:37:42 -0700)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-next.git 

for you to fetch changes up to d13864b68e41c11e4231de90cf358658f6ecea45:

  sparc64: Make atomic_xchg() an inline function rather than a macro. (2018-04-03 08:24:35 -0700)

----------------------------------------------------------------
David S. Miller (3):
      Merge branch 'sparc64-ADI'
      Merge git://git.kernel.org/.../davem/sparc
      sparc64: Make atomic_xchg() an inline function rather than a macro.

Guenter Roeck (1):
      sparc64: Oracle DAX driver depends on SPARC64

Khalid Aziz (12):
      signals, sparc: Add signal codes for ADI violations
      mm, swap: Add infrastructure for saving page metadata on swap
      sparc64: Add support for ADI register fields, ASIs and traps
      sparc64: Add HV fault type handlers for ADI related faults
      sparc64: Add handler for "Memory Corruption Detected" trap
      sparc64: Add auxiliary vectors to report platform ADI properties
      mm: Add address parameter to arch_validate_prot()
      mm: Clear arch specific VM flags on protection change
      mm: Allow arch code to override copy_highpage()
      sparc64: Add support for ADI (Application Data Integrity)
      sparc64: Update signal delivery to use new helper functions
      sparc: Make auxiliary vectors for ADI available on 32-bit as well

Rob Gardner (1):
      sparc64: Properly range check DAX completion index

 Documentation/sparc/adi.txt             | 278 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 arch/powerpc/include/asm/mman.h         |   4 +-
 arch/powerpc/kernel/syscalls.c          |   2 +-
 arch/sparc/include/asm/adi.h            |   6 ++
 arch/sparc/include/asm/adi_64.h         |  47 +++++++++++++
 arch/sparc/include/asm/atomic_64.h      |   6 +-
 arch/sparc/include/asm/elf_64.h         |   5 ++
 arch/sparc/include/asm/hypervisor.h     |   2 +
 arch/sparc/include/asm/mman.h           |  84 ++++++++++++++++++++++-
 arch/sparc/include/asm/mmu_64.h         |  17 +++++
 arch/sparc/include/asm/mmu_context_64.h |  51 ++++++++++++++
 arch/sparc/include/asm/page_64.h        |   6 ++
 arch/sparc/include/asm/pgtable_64.h     |  48 ++++++++++++++
 arch/sparc/include/asm/thread_info_64.h |   2 +-
 arch/sparc/include/asm/trap_block.h     |   2 +
 arch/sparc/include/asm/ttable.h         |  10 +++
 arch/sparc/include/uapi/asm/asi.h       |   5 ++
 arch/sparc/include/uapi/asm/auxvec.h    |   9 ++-
 arch/sparc/include/uapi/asm/mman.h      |   2 +
 arch/sparc/include/uapi/asm/pstate.h    |  10 +++
 arch/sparc/kernel/Makefile              |   1 +
 arch/sparc/kernel/adi_64.c              | 397 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 arch/sparc/kernel/entry.h               |   3 +
 arch/sparc/kernel/etrap_64.S            |  27 +++++++-
 arch/sparc/kernel/head_64.S             |   1 +
 arch/sparc/kernel/mdesc.c               |   2 +
 arch/sparc/kernel/process_64.c          |  25 +++++++
 arch/sparc/kernel/rtrap_64.S            |  33 ++++++++-
 arch/sparc/kernel/setup_64.c            |   2 +
 arch/sparc/kernel/sun4v_mcd.S           |  18 +++++
 arch/sparc/kernel/traps_64.c            | 130 ++++++++++++++++++++++++++++++++++--
 arch/sparc/kernel/ttable_64.S           |   6 +-
 arch/sparc/kernel/urtt_fill.S           |   7 +-
 arch/sparc/kernel/vmlinux.lds.S         |   5 ++
 arch/sparc/mm/gup.c                     |  37 +++++++++++
 arch/sparc/mm/hugetlbpage.c             |  14 +++-
 arch/sparc/mm/init_64.c                 |  69 +++++++++++++++++++
 arch/sparc/mm/tsb.c                     |  21 ++++++
 arch/x86/kernel/signal_compat.c         |   2 +-
 drivers/sbus/char/Kconfig               |   3 +-
 drivers/sbus/char/oradax.c              |   2 +-
 include/asm-generic/pgtable.h           |  36 ++++++++++
 include/linux/highmem.h                 |   4 ++
 include/linux/mm.h                      |   9 +++
 include/linux/mman.h                    |   2 +-
 include/uapi/asm-generic/siginfo.h      |   5 +-
 mm/ksm.c                                |   4 ++
 mm/memory.c                             |   1 +
 mm/mprotect.c                           |   4 +-
 mm/rmap.c                               |  14 ++++
 50 files changed, 1451 insertions(+), 29 deletions(-)
 create mode 100644 Documentation/sparc/adi.txt
 create mode 100644 arch/sparc/include/asm/adi.h
 create mode 100644 arch/sparc/include/asm/adi_64.h
 create mode 100644 arch/sparc/kernel/adi_64.c
 create mode 100644 arch/sparc/kernel/sun4v_mcd.S

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2018-04-30 20:12 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2018-04-30 20:12 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Please pull to get the following fixes:

1) Fixup license text for oradax driver, from Rob Gardner.

2) Release device object with put_device() instead of straight
   kfree(), from Arvind Yadav.

Thanks!

The following changes since commit 17dec0a949153d9ac00760ba2f5b78cb583e995f:

  Merge branch 'userns-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace (2018-04-03 19:15:32 -0700)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git 

for you to fetch changes up to 00ad691ab140b54ab9f5de5e74cb994f552e8124:

  sparc: vio: use put_device() instead of kfree() (2018-04-30 16:09:34 -0400)

----------------------------------------------------------------
Arvind Yadav (1):
      sparc: vio: use put_device() instead of kfree()

Rob Gardner (1):
      sparc64: Fix mistake in oradax license text

 arch/sparc/include/uapi/asm/oradax.h | 2 +-
 arch/sparc/kernel/vio.c              | 2 +-
 drivers/sbus/char/oradax.c           | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2018-04-30 20:12 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2018-04-30 20:12 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Please pull to get the following fixes:

1) Fixup license text for oradax driver, from Rob Gardner.

2) Release device object with put_device() instead of straight
   kfree(), from Arvind Yadav.

Thanks!

The following changes since commit 17dec0a949153d9ac00760ba2f5b78cb583e995f:

  Merge branch 'userns-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace (2018-04-03 19:15:32 -0700)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git 

for you to fetch changes up to 00ad691ab140b54ab9f5de5e74cb994f552e8124:

  sparc: vio: use put_device() instead of kfree() (2018-04-30 16:09:34 -0400)

----------------------------------------------------------------
Arvind Yadav (1):
      sparc: vio: use put_device() instead of kfree()

Rob Gardner (1):
      sparc64: Fix mistake in oradax license text

 arch/sparc/include/uapi/asm/oradax.h | 2 +-
 arch/sparc/kernel/vio.c              | 2 +-
 drivers/sbus/char/oradax.c           | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2018-06-09 14:21 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2018-06-09 14:21 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


There is a merge conflict here, just take the "HEAD" hunks and it
will all work out.  It's because I applied a signal code fix that
was already merged and then other cleanups/changes happend on top.

Other than that, this adds the privileged ADI driver from Tom
Hromatka.

Please pull, thanks a lot!

The following changes since commit fff75eb2a08c2ac96404a2d79685668f3cf5a7a3:

  Merge tag 'errseq-v4.17' of git://git.kernel.org/pub/scm/linux/kernel/git/jlayton/linux (2018-04-30 16:53:40 -0700)

are available in the Git repository at:

  gitolite@ra.kernel.org:/pub/scm/linux/kernel/git/davem/sparc.git 

for you to fetch changes up to 1c1ff29da6c86864e73b05d4301a2df1d161f2da:

  sparc: fix compat siginfo ABI regression (2018-06-05 11:29:42 -0700)

----------------------------------------------------------------
David S. Miller (1):
      Merge branch 'adi-driver'

Dmitry V. Levin (1):
      sparc: fix compat siginfo ABI regression

Tom Hromatka (2):
      char: sparc64: Add privileged ADI driver
      selftests: sparc64: char: Selftest for privileged ADI driver

 arch/sparc/include/uapi/asm/siginfo.h                   |   7 -
 arch/sparc/kernel/traps_32.c                            |   2 +-
 arch/sparc/kernel/traps_64.c                            |   2 +-
 drivers/char/Kconfig                                    |  12 ++
 drivers/char/Makefile                                   |   1 +
 drivers/char/adi.c                                      | 239 +++++++++++++++++++++++++++
 tools/testing/selftests/Makefile                        |   1 +
 tools/testing/selftests/sparc64/Makefile                |  46 ++++++
 tools/testing/selftests/sparc64/drivers/.gitignore      |   1 +
 tools/testing/selftests/sparc64/drivers/Makefile        |  15 ++
 tools/testing/selftests/sparc64/drivers/adi-test.c      | 721 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 tools/testing/selftests/sparc64/drivers/drivers_test.sh |  30 ++++
 tools/testing/selftests/sparc64/run.sh                  |   3 +
 13 files changed, 1071 insertions(+), 9 deletions(-)
 create mode 100644 drivers/char/adi.c
 create mode 100644 tools/testing/selftests/sparc64/Makefile
 create mode 100644 tools/testing/selftests/sparc64/drivers/.gitignore
 create mode 100644 tools/testing/selftests/sparc64/drivers/Makefile
 create mode 100644 tools/testing/selftests/sparc64/drivers/adi-test.c
 create mode 100755 tools/testing/selftests/sparc64/drivers/drivers_test.sh
 create mode 100755 tools/testing/selftests/sparc64/run.sh

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2018-06-09 14:21 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2018-06-09 14:21 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


There is a merge conflict here, just take the "HEAD" hunks and it
will all work out.  It's because I applied a signal code fix that
was already merged and then other cleanups/changes happend on top.

Other than that, this adds the privileged ADI driver from Tom
Hromatka.

Please pull, thanks a lot!

The following changes since commit fff75eb2a08c2ac96404a2d79685668f3cf5a7a3:

  Merge tag 'errseq-v4.17' of git://git.kernel.org/pub/scm/linux/kernel/git/jlayton/linux (2018-04-30 16:53:40 -0700)

are available in the Git repository at:

  gitolite@ra.kernel.org:/pub/scm/linux/kernel/git/davem/sparc.git 

for you to fetch changes up to 1c1ff29da6c86864e73b05d4301a2df1d161f2da:

  sparc: fix compat siginfo ABI regression (2018-06-05 11:29:42 -0700)

----------------------------------------------------------------
David S. Miller (1):
      Merge branch 'adi-driver'

Dmitry V. Levin (1):
      sparc: fix compat siginfo ABI regression

Tom Hromatka (2):
      char: sparc64: Add privileged ADI driver
      selftests: sparc64: char: Selftest for privileged ADI driver

 arch/sparc/include/uapi/asm/siginfo.h                   |   7 -
 arch/sparc/kernel/traps_32.c                            |   2 +-
 arch/sparc/kernel/traps_64.c                            |   2 +-
 drivers/char/Kconfig                                    |  12 ++
 drivers/char/Makefile                                   |   1 +
 drivers/char/adi.c                                      | 239 +++++++++++++++++++++++++++
 tools/testing/selftests/Makefile                        |   1 +
 tools/testing/selftests/sparc64/Makefile                |  46 ++++++
 tools/testing/selftests/sparc64/drivers/.gitignore      |   1 +
 tools/testing/selftests/sparc64/drivers/Makefile        |  15 ++
 tools/testing/selftests/sparc64/drivers/adi-test.c      | 721 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 tools/testing/selftests/sparc64/drivers/drivers_test.sh |  30 ++++
 tools/testing/selftests/sparc64/run.sh                  |   3 +
 13 files changed, 1071 insertions(+), 9 deletions(-)
 create mode 100644 drivers/char/adi.c
 create mode 100644 tools/testing/selftests/sparc64/Makefile
 create mode 100644 tools/testing/selftests/sparc64/drivers/.gitignore
 create mode 100644 tools/testing/selftests/sparc64/drivers/Makefile
 create mode 100644 tools/testing/selftests/sparc64/drivers/adi-test.c
 create mode 100755 tools/testing/selftests/sparc64/drivers/drivers_test.sh
 create mode 100755 tools/testing/selftests/sparc64/run.sh

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2018-08-22  5:16 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2018-08-22  5:16 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Nothing super serious:

1) Convert sparc32 over to NO_BOOTMEM, from Mike Rapoport.

2) Use dma_noncoherent_ops on sparc32, from Christoph Hellwig

3) Fix kbuild defconfig handling on sparc32, from Masahiro Yamada.

Please pull, thanks a lot.

The following changes since commit 778a33959a8ad4cb1ea2f4c5119f9e1e8b9f9d9b:

  Merge tag 'please-pull-noboot' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux (2018-08-20 19:37:09 -0700)

are available in the Git repository at:

  gitolite@ra.kernel.org:/pub/scm/linux/kernel/git/davem/sparc.git 

for you to fetch changes up to c84ca616b1260949782f408271336f0eda056c61:

  sparc: fix KBUILD_DEFCONFIG for ARCH=sparc32 (2018-08-21 12:41:12 -0700)

----------------------------------------------------------------
Christoph Hellwig (1):
      sparc: use generic dma_noncoherent_ops

David S. Miller (1):
      Merge branch 'sparc32-NO_BOOTMEM'

Masahiro Yamada (1):
      sparc: fix KBUILD_DEFCONFIG for ARCH=sparc32

Mike Rapoport (3):
      sparc: mm/init_32: kill trailing whitespace
      sparc32: switch to NO_BOOTMEM
      sparc32: split ramdisk detection and reservation to a helper function

 arch/sparc/Kconfig                   |   6 ++--
 arch/sparc/Makefile                  |   6 ++--
 arch/sparc/include/asm/dma-mapping.h |   5 ++-
 arch/sparc/kernel/ioport.c           | 193 +++++++++++++++++---------------------------------------------------------------------------------------
 arch/sparc/mm/init_32.c              | 127 ++++++++++++++++++++++++++------------------------------------------
 5 files changed, 88 insertions(+), 249 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2018-08-22  5:16 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2018-08-22  5:16 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Nothing super serious:

1) Convert sparc32 over to NO_BOOTMEM, from Mike Rapoport.

2) Use dma_noncoherent_ops on sparc32, from Christoph Hellwig

3) Fix kbuild defconfig handling on sparc32, from Masahiro Yamada.

Please pull, thanks a lot.

The following changes since commit 778a33959a8ad4cb1ea2f4c5119f9e1e8b9f9d9b:

  Merge tag 'please-pull-noboot' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux (2018-08-20 19:37:09 -0700)

are available in the Git repository at:

  gitolite@ra.kernel.org:/pub/scm/linux/kernel/git/davem/sparc.git 

for you to fetch changes up to c84ca616b1260949782f408271336f0eda056c61:

  sparc: fix KBUILD_DEFCONFIG for ARCH=sparc32 (2018-08-21 12:41:12 -0700)

----------------------------------------------------------------
Christoph Hellwig (1):
      sparc: use generic dma_noncoherent_ops

David S. Miller (1):
      Merge branch 'sparc32-NO_BOOTMEM'

Masahiro Yamada (1):
      sparc: fix KBUILD_DEFCONFIG for ARCH=sparc32

Mike Rapoport (3):
      sparc: mm/init_32: kill trailing whitespace
      sparc32: switch to NO_BOOTMEM
      sparc32: split ramdisk detection and reservation to a helper function

 arch/sparc/Kconfig                   |   6 ++--
 arch/sparc/Makefile                  |   6 ++--
 arch/sparc/include/asm/dma-mapping.h |   5 ++-
 arch/sparc/kernel/ioport.c           | 193 +++++++++++++++++---------------------------------------------------------------------------------------
 arch/sparc/mm/init_32.c              | 127 ++++++++++++++++++++++++++------------------------------------------
 5 files changed, 88 insertions(+), 249 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2018-10-08  6:48 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2018-10-08  6:48 UTC (permalink / raw)
  To: gregkh; +Cc: akpm, sparclinux, linux-kernel


I've been moving so haven't had access to my Sparc boxes during this
time.  That's been resolved, and now I can get the patches flowing
again.

1) Minor fallthru comment tweaks from Gustavo A. R. Silva.

2) VLA removal from Kees Cook.

3) Make sparc vdso Makefile match x86, from Masahiro Yamada.

4) Fix clock divider programming in mach64 driver, from Mikulas
   Patocka.

Please pull, thanks a lot!

The following changes since commit c1d84a1b42ef70d8ae601df9cadedc7ed4f1beb1:

  Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net (2018-10-06 02:11:30 -0700)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git 

for you to fetch changes up to b7dc10b64f6190a008f05baf697d4d8fa9b8ed51:

  sparc64: fix fall-through annotation (2018-10-07 22:42:02 -0700)

----------------------------------------------------------------
Colin Ian King (1):
      oradax: remove redundant null check before kfree

Gustavo A. R. Silva (2):
      sparc32: fix fall-through annotation
      sparc64: fix fall-through annotation

Kees Cook (1):
      sparc64: viohs: Remove VLA usage

Masahiro Yamada (1):
      sparc: vdso: clean-up vdso Makefile

Mikulas Patocka (1):
      mach64: detect the dot clock divider correctly on sparc

Rob Herring (2):
      sparc: Convert to using %pOFn instead of device_node.name
      sbus: Use of_get_child_by_name helper

 arch/sparc/kernel/auxio_64.c         |  4 ++--
 arch/sparc/kernel/kgdb_32.c          |  2 +-
 arch/sparc/kernel/kgdb_64.c          |  2 +-
 arch/sparc/kernel/power.c            |  4 ++--
 arch/sparc/kernel/prom_32.c          | 26 +++++++++++++-------------
 arch/sparc/kernel/prom_64.c          | 68 ++++++++++++++++++++++++++++++++++----------------------------------
 arch/sparc/kernel/viohs.c            | 12 +++++++++---
 arch/sparc/vdso/Makefile             |  8 +++-----
 drivers/sbus/char/openprom.c         | 11 +----------
 drivers/sbus/char/oradax.c           |  3 +--
 drivers/video/fbdev/aty/atyfb.h      |  3 ++-
 drivers/video/fbdev/aty/atyfb_base.c |  7 ++++---
 drivers/video/fbdev/aty/mach64_ct.c  | 10 +++++-----
 13 files changed, 78 insertions(+), 82 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2018-10-08  6:48 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2018-10-08  6:48 UTC (permalink / raw)
  To: gregkh; +Cc: akpm, sparclinux, linux-kernel


I've been moving so haven't had access to my Sparc boxes during this
time.  That's been resolved, and now I can get the patches flowing
again.

1) Minor fallthru comment tweaks from Gustavo A. R. Silva.

2) VLA removal from Kees Cook.

3) Make sparc vdso Makefile match x86, from Masahiro Yamada.

4) Fix clock divider programming in mach64 driver, from Mikulas
   Patocka.

Please pull, thanks a lot!

The following changes since commit c1d84a1b42ef70d8ae601df9cadedc7ed4f1beb1:

  Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net (2018-10-06 02:11:30 -0700)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git 

for you to fetch changes up to b7dc10b64f6190a008f05baf697d4d8fa9b8ed51:

  sparc64: fix fall-through annotation (2018-10-07 22:42:02 -0700)

----------------------------------------------------------------
Colin Ian King (1):
      oradax: remove redundant null check before kfree

Gustavo A. R. Silva (2):
      sparc32: fix fall-through annotation
      sparc64: fix fall-through annotation

Kees Cook (1):
      sparc64: viohs: Remove VLA usage

Masahiro Yamada (1):
      sparc: vdso: clean-up vdso Makefile

Mikulas Patocka (1):
      mach64: detect the dot clock divider correctly on sparc

Rob Herring (2):
      sparc: Convert to using %pOFn instead of device_node.name
      sbus: Use of_get_child_by_name helper

 arch/sparc/kernel/auxio_64.c         |  4 ++--
 arch/sparc/kernel/kgdb_32.c          |  2 +-
 arch/sparc/kernel/kgdb_64.c          |  2 +-
 arch/sparc/kernel/power.c            |  4 ++--
 arch/sparc/kernel/prom_32.c          | 26 +++++++++++++-------------
 arch/sparc/kernel/prom_64.c          | 68 ++++++++++++++++++++++++++++++++++----------------------------------
 arch/sparc/kernel/viohs.c            | 12 +++++++++---
 arch/sparc/vdso/Makefile             |  8 +++-----
 drivers/sbus/char/openprom.c         | 11 +----------
 drivers/sbus/char/oradax.c           |  3 +--
 drivers/video/fbdev/aty/atyfb.h      |  3 ++-
 drivers/video/fbdev/aty/atyfb_base.c |  7 ++++---
 drivers/video/fbdev/aty/mach64_ct.c  | 10 +++++-----
 13 files changed, 78 insertions(+), 82 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] Sparc
  2018-10-08  6:48 ` David Miller
@ 2018-10-08 14:26   ` Greg KH
  -1 siblings, 0 replies; 548+ messages in thread
From: Greg KH @ 2018-10-08 14:26 UTC (permalink / raw)
  To: David Miller; +Cc: akpm, sparclinux, linux-kernel

On Sun, Oct 07, 2018 at 11:48:32PM -0700, David Miller wrote:
> 
> I've been moving so haven't had access to my Sparc boxes during this
> time.  That's been resolved, and now I can get the patches flowing
> again.
> 
> 1) Minor fallthru comment tweaks from Gustavo A. R. Silva.
> 
> 2) VLA removal from Kees Cook.
> 
> 3) Make sparc vdso Makefile match x86, from Masahiro Yamada.
> 
> 4) Fix clock divider programming in mach64 driver, from Mikulas
>    Patocka.
> 
> Please pull, thanks a lot!
> 
> The following changes since commit c1d84a1b42ef70d8ae601df9cadedc7ed4f1beb1:
> 
>   Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net (2018-10-06 02:11:30 -0700)
> 
> are available in the Git repository at:
> 
>   git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git 

Now merged, thanks.

greg k-h

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] Sparc
@ 2018-10-08 14:26   ` Greg KH
  0 siblings, 0 replies; 548+ messages in thread
From: Greg KH @ 2018-10-08 14:26 UTC (permalink / raw)
  To: David Miller; +Cc: akpm, sparclinux, linux-kernel

On Sun, Oct 07, 2018 at 11:48:32PM -0700, David Miller wrote:
> 
> I've been moving so haven't had access to my Sparc boxes during this
> time.  That's been resolved, and now I can get the patches flowing
> again.
> 
> 1) Minor fallthru comment tweaks from Gustavo A. R. Silva.
> 
> 2) VLA removal from Kees Cook.
> 
> 3) Make sparc vdso Makefile match x86, from Masahiro Yamada.
> 
> 4) Fix clock divider programming in mach64 driver, from Mikulas
>    Patocka.
> 
> Please pull, thanks a lot!
> 
> The following changes since commit c1d84a1b42ef70d8ae601df9cadedc7ed4f1beb1:
> 
>   Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net (2018-10-06 02:11:30 -0700)
> 
> are available in the Git repository at:
> 
>   git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git 

Now merged, thanks.

greg k-h

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] Sparc
  2010-03-29 20:11 ` David Miller
                   ` (3 preceding siblings ...)
  (?)
@ 2018-10-08 18:42 ` John Paul Adrian Glaubitz
  -1 siblings, 0 replies; 548+ messages in thread
From: John Paul Adrian Glaubitz @ 2018-10-08 18:42 UTC (permalink / raw)
  To: sparclinux

Hi Dave!

On 10/8/18 8:48 AM, David Miller wrote:
> I've been moving so haven't had access to my Sparc boxes during this
> time.  That's been resolved, and now I can get the patches flowing
> again.
Great to hear you're back!

Can I bring this bug [1] back to your attention which allowed a regular
userland application to crash the kernel? Would be interesting to see
whether you're able to reproduce the issue.

The offending binary is attached to the bug report. It's a test program
from the testsuite of the Free Pascal Compiler which was recently ported
to sparc64.

Thanks,
Adrian

> [1] https://bugzilla.kernel.org/show_bug.cgi?id 0625

-- 
 .''`.  John Paul Adrian Glaubitz
: :' :  Debian Developer - glaubitz@debian.org
`. `'   Freie Universitaet Berlin - glaubitz@physik.fu-berlin.de
  `-    GPG: 62FF 8A75 84E0 2956 9546  0006 7426 3B37 F5B5 F913

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2018-10-16  2:39 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2018-10-16  2:39 UTC (permalink / raw)
  To: gregkh; +Cc: akpm, sparclinux, linux-kernel


1) Revert the %pOF change, it causes regressions.

2) Wire up io_pgetevents().

3) Fix perf events on single-PCR sparc64 cpus.

4) Do proper perf event throttling like arm and x86.

Please pull, thanks a lot!

The following changes since commit 0854ba5ff5c938307cd783e996b62c83f1ce923b:

  Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc (2018-10-08 16:25:01 +0200)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git 

for you to fetch changes up to a06ecbfe784ceb22e56ae3cd75fe77138e7cfa0b:

  Revert "sparc: Convert to using %pOFn instead of device_node.name" (2018-10-15 18:32:54 -0700)

----------------------------------------------------------------
David S. Miller (6):
      sparc: Wire up io_pgetevents system call.
      sparc: Fix single-pcr perf event counter management.
      sparc: Throttle perf events properly.
      sparc64: Make proc_id signed.
      sparc64: Set %l4 properly on trap return after handling signals.
      Revert "sparc: Convert to using %pOFn instead of device_node.name"

Kees Cook (1):
      sunvdc: Remove VLA usage

 arch/sparc/include/asm/cpudata_64.h  |  2 +-
 arch/sparc/include/uapi/asm/unistd.h |  3 ++-
 arch/sparc/kernel/auxio_64.c         |  4 ++--
 arch/sparc/kernel/perf_event.c       | 26 ++++++++++++++++++++++----
 arch/sparc/kernel/power.c            |  4 ++--
 arch/sparc/kernel/prom_32.c          | 26 +++++++++++++-------------
 arch/sparc/kernel/prom_64.c          | 68 ++++++++++++++++++++++++++++++++++----------------------------------
 arch/sparc/kernel/rtrap_64.S         |  3 ++-
 arch/sparc/kernel/systbls_32.S       |  2 +-
 arch/sparc/kernel/systbls_64.S       |  4 ++--
 drivers/block/sunvdc.c               | 14 ++++++++++----
 11 files changed, 91 insertions(+), 65 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2018-10-16  2:39 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2018-10-16  2:39 UTC (permalink / raw)
  To: gregkh; +Cc: akpm, sparclinux, linux-kernel


1) Revert the %pOF change, it causes regressions.

2) Wire up io_pgetevents().

3) Fix perf events on single-PCR sparc64 cpus.

4) Do proper perf event throttling like arm and x86.

Please pull, thanks a lot!

The following changes since commit 0854ba5ff5c938307cd783e996b62c83f1ce923b:

  Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc (2018-10-08 16:25:01 +0200)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git 

for you to fetch changes up to a06ecbfe784ceb22e56ae3cd75fe77138e7cfa0b:

  Revert "sparc: Convert to using %pOFn instead of device_node.name" (2018-10-15 18:32:54 -0700)

----------------------------------------------------------------
David S. Miller (6):
      sparc: Wire up io_pgetevents system call.
      sparc: Fix single-pcr perf event counter management.
      sparc: Throttle perf events properly.
      sparc64: Make proc_id signed.
      sparc64: Set %l4 properly on trap return after handling signals.
      Revert "sparc: Convert to using %pOFn instead of device_node.name"

Kees Cook (1):
      sunvdc: Remove VLA usage

 arch/sparc/include/asm/cpudata_64.h  |  2 +-
 arch/sparc/include/uapi/asm/unistd.h |  3 ++-
 arch/sparc/kernel/auxio_64.c         |  4 ++--
 arch/sparc/kernel/perf_event.c       | 26 ++++++++++++++++++++++----
 arch/sparc/kernel/power.c            |  4 ++--
 arch/sparc/kernel/prom_32.c          | 26 +++++++++++++-------------
 arch/sparc/kernel/prom_64.c          | 68 ++++++++++++++++++++++++++++++++++----------------------------------
 arch/sparc/kernel/rtrap_64.S         |  3 ++-
 arch/sparc/kernel/systbls_32.S       |  2 +-
 arch/sparc/kernel/systbls_64.S       |  4 ++--
 drivers/block/sunvdc.c               | 14 ++++++++++----
 11 files changed, 91 insertions(+), 65 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] Sparc
  2018-10-16  2:39 ` David Miller
@ 2018-10-16 16:55   ` Greg KH
  -1 siblings, 0 replies; 548+ messages in thread
From: Greg KH @ 2018-10-16 16:55 UTC (permalink / raw)
  To: David Miller; +Cc: akpm, sparclinux, linux-kernel

On Mon, Oct 15, 2018 at 07:39:45PM -0700, David Miller wrote:
> 
> 1) Revert the %pOF change, it causes regressions.
> 
> 2) Wire up io_pgetevents().
> 
> 3) Fix perf events on single-PCR sparc64 cpus.
> 
> 4) Do proper perf event throttling like arm and x86.
> 
> Please pull, thanks a lot!
> 
> The following changes since commit 0854ba5ff5c938307cd783e996b62c83f1ce923b:
> 
>   Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc (2018-10-08 16:25:01 +0200)
> 
> are available in the Git repository at:
> 
>   git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git 

Now merged, thanks.

greg k-h

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] Sparc
@ 2018-10-16 16:55   ` Greg KH
  0 siblings, 0 replies; 548+ messages in thread
From: Greg KH @ 2018-10-16 16:55 UTC (permalink / raw)
  To: David Miller; +Cc: akpm, sparclinux, linux-kernel

On Mon, Oct 15, 2018 at 07:39:45PM -0700, David Miller wrote:
> 
> 1) Revert the %pOF change, it causes regressions.
> 
> 2) Wire up io_pgetevents().
> 
> 3) Fix perf events on single-PCR sparc64 cpus.
> 
> 4) Do proper perf event throttling like arm and x86.
> 
> Please pull, thanks a lot!
> 
> The following changes since commit 0854ba5ff5c938307cd783e996b62c83f1ce923b:
> 
>   Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc (2018-10-08 16:25:01 +0200)
> 
> are available in the Git repository at:
> 
>   git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git 

Now merged, thanks.

greg k-h

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2018-10-18 23:33 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2018-10-18 23:33 UTC (permalink / raw)
  To: gregkh; +Cc: akpm, sparclinux, linux-kernel


The main bit here is fixing how fallback system calls are handled in
the sparc vDSO.

Unfortunately, I fat fingered the commit and some perf debugging hacks
slipped into the vDSO fix, which I revert in the very next commit.

Please pull, thanks a lot!

The following changes since commit c343db455eb3105f11bb5ac290d77ab2006b0209:

  Merge branch 'parisc-4.19-3' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux (2018-10-17 14:01:00 +0200)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git 

for you to fetch changes up to 27faeebd00813cd52a140e8944b6b32729b50e61:

  sparc: Revert unintended perf changes. (2018-10-18 11:32:29 -0700)

----------------------------------------------------------------
Dan Carpenter (1):
      sparc: vDSO: Silence an uninitialized variable warning

David S. Miller (2):
      sparc: Fix syscall fallback bugs in VDSO.
      sparc: Revert unintended perf changes.

 arch/sparc/vdso/vclock_gettime.c | 12 +++++++++++-
 arch/sparc/vdso/vma.c            |  4 +++-
 2 files changed, 14 insertions(+), 2 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2018-10-18 23:33 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2018-10-18 23:33 UTC (permalink / raw)
  To: gregkh; +Cc: akpm, sparclinux, linux-kernel


The main bit here is fixing how fallback system calls are handled in
the sparc vDSO.

Unfortunately, I fat fingered the commit and some perf debugging hacks
slipped into the vDSO fix, which I revert in the very next commit.

Please pull, thanks a lot!

The following changes since commit c343db455eb3105f11bb5ac290d77ab2006b0209:

  Merge branch 'parisc-4.19-3' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux (2018-10-17 14:01:00 +0200)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git 

for you to fetch changes up to 27faeebd00813cd52a140e8944b6b32729b50e61:

  sparc: Revert unintended perf changes. (2018-10-18 11:32:29 -0700)

----------------------------------------------------------------
Dan Carpenter (1):
      sparc: vDSO: Silence an uninitialized variable warning

David S. Miller (2):
      sparc: Fix syscall fallback bugs in VDSO.
      sparc: Revert unintended perf changes.

 arch/sparc/vdso/vclock_gettime.c | 12 +++++++++++-
 arch/sparc/vdso/vma.c            |  4 +++-
 2 files changed, 14 insertions(+), 2 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] Sparc
  2018-10-18 23:33 ` David Miller
@ 2018-10-19  7:16   ` Greg KH
  -1 siblings, 0 replies; 548+ messages in thread
From: Greg KH @ 2018-10-19  7:16 UTC (permalink / raw)
  To: David Miller; +Cc: akpm, sparclinux, linux-kernel

On Thu, Oct 18, 2018 at 04:33:23PM -0700, David Miller wrote:
> 
> The main bit here is fixing how fallback system calls are handled in
> the sparc vDSO.
> 
> Unfortunately, I fat fingered the commit and some perf debugging hacks
> slipped into the vDSO fix, which I revert in the very next commit.
> 
> Please pull, thanks a lot!
> 
> The following changes since commit c343db455eb3105f11bb5ac290d77ab2006b0209:
> 
>   Merge branch 'parisc-4.19-3' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux (2018-10-17 14:01:00 +0200)
> 
> are available in the Git repository at:
> 
>   git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git 

Now merged, thanks.

greg k-h

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] Sparc
@ 2018-10-19  7:16   ` Greg KH
  0 siblings, 0 replies; 548+ messages in thread
From: Greg KH @ 2018-10-19  7:16 UTC (permalink / raw)
  To: David Miller; +Cc: akpm, sparclinux, linux-kernel

On Thu, Oct 18, 2018 at 04:33:23PM -0700, David Miller wrote:
> 
> The main bit here is fixing how fallback system calls are handled in
> the sparc vDSO.
> 
> Unfortunately, I fat fingered the commit and some perf debugging hacks
> slipped into the vDSO fix, which I revert in the very next commit.
> 
> Please pull, thanks a lot!
> 
> The following changes since commit c343db455eb3105f11bb5ac290d77ab2006b0209:
> 
>   Merge branch 'parisc-4.19-3' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux (2018-10-17 14:01:00 +0200)
> 
> are available in the Git repository at:
> 
>   git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git 

Now merged, thanks.

greg k-h

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2018-10-24  3:31 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2018-10-24  3:31 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Mostly VDSO cleanups and optimizations.

Please pull, thanks a lot!

The following changes since commit 91b15613ce7fb3e724ca0d433eef8e6bf15322af:

  Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net (2018-10-19 09:16:20 +0200)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git 

for you to fetch changes up to 8dbc450f76dc8f3b47fe117cd0cde166e1f21b64:

  Merge branch 'sparc-vdso' (2018-10-22 19:14:24 -0700)

----------------------------------------------------------------
David S. Miller (10):
      sparc: Fix parport build warnings.
      sparc: Improve VDSO instruction patching.
      sparc: Inline VDSO gettime code aggressively.
      sparc: Don't bother masking out TICK_PRIV_BIT in VDSO code.
      sparc: Set DISABLE_BRANCH_PROFILING in VDSO CFLAGS.
      sparc: Improve VDSO CFLAGS.
      sparc: Really use linker with LDFLAGS.
      sparc: Validate VDSO for undefined symbols.
      sparc: Several small VDSO vclock_gettime.c improvements.
      Merge branch 'sparc-vdso'

 arch/sparc/include/asm/parport.h        |   2 ++
 arch/sparc/include/asm/thread_info_64.h |   4 ++++
 arch/sparc/include/asm/vdso.h           |   6 +++---
 arch/sparc/kernel/time_64.c             |   3 ---
 arch/sparc/vdso/Makefile                |  33 +++++++++++++++++----------------
 arch/sparc/vdso/checkundef.sh           |  10 ++++++++++
 arch/sparc/vdso/vclock_gettime.c        | 102 ++++++++++++++++++++++++++++++++++++++++++++++--------------------------------------------------------
 arch/sparc/vdso/vdso-layout.lds.S       |   7 ++-----
 arch/sparc/vdso/vdso2c.c                |   6 ------
 arch/sparc/vdso/vdso2c.h                |  18 ++++++++++++++++--
 arch/sparc/vdso/vma.c                   |  39 +++++++++++++++++++++++----------------
 11 files changed, 123 insertions(+), 107 deletions(-)
 create mode 100644 arch/sparc/vdso/checkundef.sh

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2018-10-24  3:31 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2018-10-24  3:31 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Mostly VDSO cleanups and optimizations.

Please pull, thanks a lot!

The following changes since commit 91b15613ce7fb3e724ca0d433eef8e6bf15322af:

  Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net (2018-10-19 09:16:20 +0200)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git 

for you to fetch changes up to 8dbc450f76dc8f3b47fe117cd0cde166e1f21b64:

  Merge branch 'sparc-vdso' (2018-10-22 19:14:24 -0700)

----------------------------------------------------------------
David S. Miller (10):
      sparc: Fix parport build warnings.
      sparc: Improve VDSO instruction patching.
      sparc: Inline VDSO gettime code aggressively.
      sparc: Don't bother masking out TICK_PRIV_BIT in VDSO code.
      sparc: Set DISABLE_BRANCH_PROFILING in VDSO CFLAGS.
      sparc: Improve VDSO CFLAGS.
      sparc: Really use linker with LDFLAGS.
      sparc: Validate VDSO for undefined symbols.
      sparc: Several small VDSO vclock_gettime.c improvements.
      Merge branch 'sparc-vdso'

 arch/sparc/include/asm/parport.h        |   2 ++
 arch/sparc/include/asm/thread_info_64.h |   4 ++++
 arch/sparc/include/asm/vdso.h           |   6 +++---
 arch/sparc/kernel/time_64.c             |   3 ---
 arch/sparc/vdso/Makefile                |  33 +++++++++++++++++----------------
 arch/sparc/vdso/checkundef.sh           |  10 ++++++++++
 arch/sparc/vdso/vclock_gettime.c        | 102 ++++++++++++++++++++++++++++++++++++++++++++++--------------------------------------------------------
 arch/sparc/vdso/vdso-layout.lds.S       |   7 ++-----
 arch/sparc/vdso/vdso2c.c                |   6 ------
 arch/sparc/vdso/vdso2c.h                |  18 ++++++++++++++++--
 arch/sparc/vdso/vma.c                   |  39 +++++++++++++++++++++++----------------
 11 files changed, 123 insertions(+), 107 deletions(-)
 create mode 100644 arch/sparc/vdso/checkundef.sh

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] Sparc
  2018-10-24  3:31 ` David Miller
@ 2018-10-24  5:43   ` Linus Torvalds
  -1 siblings, 0 replies; 548+ messages in thread
From: Linus Torvalds @ 2018-10-24  5:43 UTC (permalink / raw)
  To: davem; +Cc: Andrew Morton, sparclinux, Linux Kernel Mailing List

On Wed, Oct 24, 2018 at 4:31 AM David Miller <davem@davemloft.net> wrote:
>
> Mostly VDSO cleanups and optimizations.

Pulled,

                  Linus

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] Sparc
@ 2018-10-24  5:43   ` Linus Torvalds
  0 siblings, 0 replies; 548+ messages in thread
From: Linus Torvalds @ 2018-10-24  5:43 UTC (permalink / raw)
  To: davem; +Cc: Andrew Morton, sparclinux, Linux Kernel Mailing List

On Wed, Oct 24, 2018 at 4:31 AM David Miller <davem@davemloft.net> wrote:
>
> Mostly VDSO cleanups and optimizations.

Pulled,

                  Linus

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2018-10-25 18:28 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2018-10-25 18:28 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Please pull to get this build regression fix.

Thank you.

The following changes since commit 44adbac8f7217040be97928cd19998259d9d4418:

  Merge branch 'work.tty-ioctl' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs (2018-10-24 14:43:41 +0100)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git 

for you to fetch changes up to caf539cd1087f7c36b9c4df271575e9aee49fde5:

  sparc: Fix VDSO build with older binutils. (2018-10-25 10:36:19 -0700)

----------------------------------------------------------------
David S. Miller (1):
      sparc: Fix VDSO build with older binutils.

 arch/sparc/include/asm/vdso.h       |   2 --
 arch/sparc/vdso/vclock_gettime.c    | 149 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----------
 arch/sparc/vdso/vdso-layout.lds.S   |   3 --
 arch/sparc/vdso/vdso.lds.S          |   2 ++
 arch/sparc/vdso/vdso2c.h            |  17 +---------
 arch/sparc/vdso/vdso32/vdso32.lds.S |   2 ++
 arch/sparc/vdso/vma.c               | 222 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------
 7 files changed, 335 insertions(+), 62 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2018-10-25 18:28 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2018-10-25 18:28 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Please pull to get this build regression fix.

Thank you.

The following changes since commit 44adbac8f7217040be97928cd19998259d9d4418:

  Merge branch 'work.tty-ioctl' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs (2018-10-24 14:43:41 +0100)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git 

for you to fetch changes up to caf539cd1087f7c36b9c4df271575e9aee49fde5:

  sparc: Fix VDSO build with older binutils. (2018-10-25 10:36:19 -0700)

----------------------------------------------------------------
David S. Miller (1):
      sparc: Fix VDSO build with older binutils.

 arch/sparc/include/asm/vdso.h       |   2 --
 arch/sparc/vdso/vclock_gettime.c    | 149 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----------
 arch/sparc/vdso/vdso-layout.lds.S   |   3 --
 arch/sparc/vdso/vdso.lds.S          |   2 ++
 arch/sparc/vdso/vdso2c.h            |  17 +---------
 arch/sparc/vdso/vdso32/vdso32.lds.S |   2 ++
 arch/sparc/vdso/vma.c               | 222 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------
 7 files changed, 335 insertions(+), 62 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] Sparc
  2010-03-29 20:11 ` David Miller
                   ` (4 preceding siblings ...)
  (?)
@ 2018-10-25 23:39 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2018-10-25 23:39 UTC (permalink / raw)
  To: sparclinux

From: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
Date: Mon, 8 Oct 2018 20:42:14 +0200

> Hi Dave!
> 
> On 10/8/18 8:48 AM, David Miller wrote:
>> I've been moving so haven't had access to my Sparc boxes during this
>> time.  That's been resolved, and now I can get the patches flowing
>> again.
> Great to hear you're back!
> 
> Can I bring this bug [1] back to your attention which allowed a regular
> userland application to crash the kernel? Would be interesting to see
> whether you're able to reproduce the issue.
> 
> The offending binary is attached to the bug report. It's a test program
> from the testsuite of the Free Pascal Compiler which was recently ported
> to sparc64.
> 
> Thanks,
> Adrian
> 
>> [1] https://bugzilla.kernel.org/show_bug.cgi?id 0625

I'm looking at this now.

I cannot reproduce the system crash, but I definitely get the illegal
instruction both with and without using strace.  And those system log
message don't show, it must be from some specific config option?
Actually I don't see that "Kernel memory exposure" string anywhere in
the standard upstream kernel.

Running under gdb the process is gone when the SIGILL arrives which
means that a signal wasn't sent but rather the process was forefully
exited by the kernel with SIGILL.

Only two things do that:

1) Failing register window faults (arch/sparc/kernel/process_64.c)
2) Invalid signal frames during signal delivery (arch/sparc/kernel/signal32,
   arch/sparc/kernel/signal_64.c)

This is a 64-bit ELF binary so my guess is setup_rt_frame().

I put some debugging in and I guessed wrong:

[   40.366945] [tweaklib2:428]: fault_in_user_windows() copy failed

Something definitely corrupted the stack and/or frame pointer in this
code.

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] Sparc
  2018-10-25 18:28 ` David Miller
@ 2018-10-26  1:30   ` Linus Torvalds
  -1 siblings, 0 replies; 548+ messages in thread
From: Linus Torvalds @ 2018-10-26  1:30 UTC (permalink / raw)
  To: David Miller; +Cc: Andrew Morton, sparclinux, Linux Kernel Mailing List

On Thu, Oct 25, 2018 at 11:28 AM David Miller <davem@davemloft.net> wrote:
>
> Please pull to get this build regression fix.

Pulled,

              Linus

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] Sparc
@ 2018-10-26  1:30   ` Linus Torvalds
  0 siblings, 0 replies; 548+ messages in thread
From: Linus Torvalds @ 2018-10-26  1:30 UTC (permalink / raw)
  To: David Miller; +Cc: Andrew Morton, sparclinux, Linux Kernel Mailing List

On Thu, Oct 25, 2018 at 11:28 AM David Miller <davem@davemloft.net> wrote:
>
> Please pull to get this build regression fix.

Pulled,

              Linus

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] Sparc
  2010-03-29 20:11 ` David Miller
                   ` (5 preceding siblings ...)
  (?)
@ 2018-10-26  3:29 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2018-10-26  3:29 UTC (permalink / raw)
  To: sparclinux

From: David Miller <davem@davemloft.net>
Date: Thu, 25 Oct 2018 16:39:22 -0700 (PDT)

> This is a 64-bit ELF binary so my guess is setup_rt_frame().
> 
> I put some debugging in and I guessed wrong:
> 
> [   40.366945] [tweaklib2:428]: fault_in_user_windows() copy failed
> 
> Something definitely corrupted the stack and/or frame pointer in this
> code.

What this amounts to is actually a very simple program:

davem@salty:/opt/davem/src/GIT/CRASH/kernel-crash-test$ readelf -h tweaklib2
 ...
  Entry point address:               0x1003d0

Entry point 0x1003d0, what's that:

davem@salty:/opt/davem/src/GIT/CRASH/kernel-crash-test$ objdump -d tweaklib2 | grep -A 1 1003d0
00000000001003d0 <SI_PRC_$$__FPC_DYNAMIC_PROC_START>:
  1003d0:       81 c3 e0 08     retl
  1003d4:       01 00 00 00     nop

An entry point which simply returns.  So this program does nothing,
main never gets called, we just return to the dynamic linker code that
jumps to the program's entry point which isn't expected.

So the test case is simply:

davem@salty:/opt/davem/src/GIT/CRASH/kernel-crash-test$ cat test.s
        .text
        .align 4
        .globl _start
_start: retl
        nop
davem@salty:/opt/davem/src/GIT/CRASH/kernel-crash-test$ gcc -nostdlib -o test test.s
davem@salty:/opt/davem/src/GIT/CRASH/kernel-crash-test$ ./test
Segmentation fault
davem@salty:/opt/davem/src/GIT/CRASH/kernel-crash-test$ 

and nothing more.

So what happens when you return from _start like this?  It ends up
looping, adjusting the stack pointer up by 48 bytes every iteration.
Eventually we push the stack pointer past the end of the stack mmap
area and crash.

The loop is:

davem@salty:/opt/davem/src/GIT/CRASH/kernel-crash-test$ gdb ./test
 ...
(gdb) b *0x0000010000000290
Breakpoint 1 at 0x10000000290
(gdb) display/i $pc
1: x/i $pc
<error: No registers.>
(gdb) run
Starting program: /opt/davem/src/GIT/CRASH/kernel-crash-test/test

Breakpoint 1, 0x0000010000000290 in _start ()
1: x/i $pc
=> 0x10000000290 <_start+4>:    nop
(gdb) stepi
0xfff0000100001550 in ?? ()
1: x/i $pc
=> 0xfff0000100001550:  sethi  %hi(0x113000), %g1
(gdb) 
0xfff0000100001554 in ?? ()
1: x/i $pc
=> 0xfff0000100001554:  xor  %g1, -572, %g1
(gdb) 
0xfff0000100001558 in ?? ()
1: x/i $pc
=> 0xfff0000100001558:  add  %l7, %g1, %g1
(gdb) 
0xfff000010000155c in ?? ()
1: x/i $pc
=> 0xfff000010000155c:  jmp  %l0
   0xfff0000100001560:  add  %sp, 0x30, %sp
(gdb) 
0xfff0000100001560 in ?? ()
1: x/i $pc
=> 0xfff0000100001560:  add  %sp, 0x30, %sp
(gdb) 
0x000001000000028c in _start () 
1: x/i $pc 
=> 0x1000000028c <_start>:      retl
   0x10000000290 <_start+4>:    nop 
(gdb) 

And that's how we loop forever.

It should not crash the machine and here with an upstream kernel it does not for me.

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] Sparc
  2010-03-29 20:11 ` David Miller
                   ` (6 preceding siblings ...)
  (?)
@ 2018-10-26 12:41 ` John Paul Adrian Glaubitz
  -1 siblings, 0 replies; 548+ messages in thread
From: John Paul Adrian Glaubitz @ 2018-10-26 12:41 UTC (permalink / raw)
  To: sparclinux

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain; charset="windows-1254", Size: 4421 bytes --]

Hi Dave!

Thanks for the explanation!

On 10/26/18 5:29 AM, David Miller wrote:
> (...)
> And that's how we loop forever.
> 
> It should not crash the machine and here with an upstream kernel it does not for me.

Interestingly, we couldn't reproduce the issue on the SPARC-T5 anymore either. It
definitely crashes the Sun Fire 2000 used for development of the Free Pascal
compiler though, just re-tested:

root@stadler:~/kernel-crash-test# strace ./tweaklib2 
execve("./tweaklib2", ["./tweaklib2"], 0x7feffaafb90 /* 22 vars */) = 0
brk(NULL)                               = 0x264000
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
mmap(NULL, 16384, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff800100024000
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "./tls/v9v/libtweaklib1.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "./tls/libtweaklib1.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "./v9v/libtweaklib1.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "./libtweaklib1.so", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\2\1\0\0\0\0\0\0\0\0\0\0\3\0+\0\0\0\1\0\0\0\0\0\0\310\360"..., 832) = 832
fstat64(3, {st_mode=S_IFREG|0755, st_size\x1165312, ...}) = 0
getcwd("/root/kernel-crash-test", 128)  = 24
mmap(NULL, 1503776, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xffff800100128000
mprotect(0xffff800100188000, 1040384, PROT_NONE) = 0
mmap(0xffff800100286000, 57344, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x5e000) = 0xffff800100286000
mmap(0xffff800100294000, 12832, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xffff800100294000
close(3)                                = 0
mprotect(0xffff800100286000, 8192, PROT_READ) = 0
mprotect(0x252000, 8192, PROT_READ)     = 0
mprotect(0xffff800100122000, 8192, PROT_READ) = 0
getrlimit(RLIMIT_STACK, {rlim_cur92*1024, rlim_max=RLIM64_INFINITY}) = 0
rt_sigaction(SIGFPE, {sa_handler=0xffff800100180e10, sa_mask=[], sa_flags=SA_SIGINFO}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 0xffff800100134ca8, 8) = 0
rt_sigaction(SIGSEGV, {sa_handler=0xffff800100180e10, sa_mask=[], sa_flags=SA_SIGINFO}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 0xffff800100134ca8, 8) = 0
rt_sigaction(SIGBUS, {sa_handler=0xffff800100180e10, sa_mask=[], sa_flags=SA_SIGINFO}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 0xffff800100134ca8, 8) = 0
rt_sigaction(SIGILL, {sa_handler=0xffff800100180e10, sa_mask=[], sa_flags=SA_SIGINFO}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 0xffff800100134ca8, 8) = 0
ioctl(1, TCGETS, {B38400 opost isig icanon echo ...}) = 0
ioctl(2, TCGETS, {B38400 opost isig icanon echo ...}) = 0
ioctl(1, TCGETS, {B38400 opost isig icanon echo ...}) = 0
ioctl(2, TCGETS, {B38400 opost isig icanon echo ...}) = 0
readlink("/proc/self/exe", "/root/kernel-crash-test/tweaklib"..., 255) = 33
rt_sigaction(SIGFPE, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, NULL, 0xffff800100134ca8, 8) = 0
rt_sigaction(SIGSEGV, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, NULL, 0xffff800100134ca8, 8) = 0
rt_sigaction(SIGBUS, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, NULL, 0xffff800100134ca8, 8) = 0
rt_sigaction(SIGILL, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, NULL, 0xffff800100134ca8, 8) = 0

And on the console:

sc> console -f
Warning: User < > currently has write permission to this console and forcibly removing them will terminate any current write actions and all work will be lost.  Would you like to continue? [y/n]y
Enter #. to return to ALOM.
[942798.597985] Unable to handle kernel paging request at virtual address 000000000153a000
[942798.598156] tsk->{mm,active_mm}->context = 0000000000000228
[942798.598253] tsk->{mm,active_mm}->pgd = ffff8007f5da8000
[942806.209845] rcu: INFO: rcu_sched detected stalls on CPUs/tasks:
[942806.210036] rcu:    6-...0: (1 GPs behind) idle„a/1/0x4000000000000002 softirqƒ77262/8377263 fqs$66 
[942806.210137] rcu:    (detected by 3, tS37 jiffies, gW015461, q'50)

I will let you know whether your patch helps to address the problem.

Adrian

-- 
 .''`.  John Paul Adrian Glaubitz
: :' :  Debian Developer - glaubitz@debian.org
`. `'   Freie Universitaet Berlin - glaubitz@physik.fu-berlin.de
  `-    GPG: 62FF 8A75 84E0 2956 9546  0006 7426 3B37 F5B5 F913

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] Sparc
  2010-03-29 20:11 ` David Miller
                   ` (7 preceding siblings ...)
  (?)
@ 2018-10-26 18:30 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2018-10-26 18:30 UTC (permalink / raw)
  To: sparclinux

From: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
Date: Fri, 26 Oct 2018 14:41:53 +0200

>> It should not crash the machine and here with an upstream kernel it does not for me.
> 
> Interestingly, we couldn't reproduce the issue on the SPARC-T5 anymore either. It
> definitely crashes the Sun Fire 2000 used for development of the Free Pascal
> compiler though, just re-tested:

I tested it on my Ultra45

Please reproduce with a vanilla upstream kernel.  I think some of the local
debian kernel patches might be causing this.

Also, wrt. freepascal, as I described in my email, the link of that
binary is causing the NOP _start function to be set as the entry
point.

That can't be right, whatever ends up as the entry point should end up
calling 'main' so that the program actually runs.

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2018-10-26 23:08 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2018-10-26 23:08 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Some more sparc fixups, mostly aimed at getting the allmodconfig build
up and clean again.

Please pull, thanks a lot!

The following changes since commit caf539cd1087f7c36b9c4df271575e9aee49fde5:

  sparc: Fix VDSO build with older binutils. (2018-10-25 10:36:19 -0700)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git 

for you to fetch changes up to 6c2fc9cddc1ffdef8ada1dc8404e5affae849953:

  sparc64: Rework xchg() definition to avoid warnings. (2018-10-26 15:39:49 -0700)

----------------------------------------------------------------
David Miller (1):
      sparc64: Make corrupted user stacks more debuggable.

David S. Miller (2):
      sparc64: Export __node_distance.
      sparc64: Rework xchg() definition to avoid warnings.

 arch/sparc/include/asm/cmpxchg_64.h   |  7 ++++++-
 arch/sparc/include/asm/switch_to_64.h |  3 ++-
 arch/sparc/kernel/process_64.c        | 25 +++++++++++++++++++------
 arch/sparc/kernel/rtrap_64.S          |  1 +
 arch/sparc/kernel/signal32.c          | 12 ++++++++++--
 arch/sparc/kernel/signal_64.c         |  6 +++++-
 arch/sparc/mm/init_64.c               |  1 +
 7 files changed, 44 insertions(+), 11 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2018-10-26 23:08 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2018-10-26 23:08 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Some more sparc fixups, mostly aimed at getting the allmodconfig build
up and clean again.

Please pull, thanks a lot!

The following changes since commit caf539cd1087f7c36b9c4df271575e9aee49fde5:

  sparc: Fix VDSO build with older binutils. (2018-10-25 10:36:19 -0700)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git 

for you to fetch changes up to 6c2fc9cddc1ffdef8ada1dc8404e5affae849953:

  sparc64: Rework xchg() definition to avoid warnings. (2018-10-26 15:39:49 -0700)

----------------------------------------------------------------
David Miller (1):
      sparc64: Make corrupted user stacks more debuggable.

David S. Miller (2):
      sparc64: Export __node_distance.
      sparc64: Rework xchg() definition to avoid warnings.

 arch/sparc/include/asm/cmpxchg_64.h   |  7 ++++++-
 arch/sparc/include/asm/switch_to_64.h |  3 ++-
 arch/sparc/kernel/process_64.c        | 25 +++++++++++++++++++------
 arch/sparc/kernel/rtrap_64.S          |  1 +
 arch/sparc/kernel/signal32.c          | 12 ++++++++++--
 arch/sparc/kernel/signal_64.c         |  6 +++++-
 arch/sparc/mm/init_64.c               |  1 +
 7 files changed, 44 insertions(+), 11 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] Sparc
  2018-10-26 23:08 ` David Miller
@ 2018-10-27  0:17   ` Linus Torvalds
  -1 siblings, 0 replies; 548+ messages in thread
From: Linus Torvalds @ 2018-10-27  0:17 UTC (permalink / raw)
  To: David Miller; +Cc: Andrew Morton, sparclinux, Linux Kernel Mailing List

On Fri, Oct 26, 2018 at 4:08 PM David Miller <davem@davemloft.net> wrote:
>
> Some more sparc fixups, mostly aimed at getting the allmodconfig build
> up and clean again.

Pulled,

                  Linus

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] Sparc
@ 2018-10-27  0:17   ` Linus Torvalds
  0 siblings, 0 replies; 548+ messages in thread
From: Linus Torvalds @ 2018-10-27  0:17 UTC (permalink / raw)
  To: David Miller; +Cc: Andrew Morton, sparclinux, Linux Kernel Mailing List

On Fri, Oct 26, 2018 at 4:08 PM David Miller <davem@davemloft.net> wrote:
>
> Some more sparc fixups, mostly aimed at getting the allmodconfig build
> up and clean again.

Pulled,

                  Linus

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2018-11-01  1:44 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2018-11-01  1:44 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Two small fixes, please pull.

Thanks!

The following changes since commit 4b42745211af552f170f38a1b97f4a112b5da6b2:

  Merge tag 'armsoc-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc (2018-10-29 15:37:33 -0700)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git 

for you to fetch changes up to 1f2b5b8e2df4591fbca430aff9c5a072dcc0f408:

  sparc64: Wire up compat getpeername and getsockname. (2018-10-31 18:30:21 -0700)

----------------------------------------------------------------
David S. Miller (2):
      sparc64: Remvoe set_fs() from perf_callchain_user().
      sparc64: Wire up compat getpeername and getsockname.

 arch/sparc/kernel/perf_event.c | 5 -----
 arch/sparc/kernel/systbls_64.S | 4 ++--
 2 files changed, 2 insertions(+), 7 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2018-11-01  1:44 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2018-11-01  1:44 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Two small fixes, please pull.

Thanks!

The following changes since commit 4b42745211af552f170f38a1b97f4a112b5da6b2:

  Merge tag 'armsoc-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc (2018-10-29 15:37:33 -0700)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git 

for you to fetch changes up to 1f2b5b8e2df4591fbca430aff9c5a072dcc0f408:

  sparc64: Wire up compat getpeername and getsockname. (2018-10-31 18:30:21 -0700)

----------------------------------------------------------------
David S. Miller (2):
      sparc64: Remvoe set_fs() from perf_callchain_user().
      sparc64: Wire up compat getpeername and getsockname.

 arch/sparc/kernel/perf_event.c | 5 -----
 arch/sparc/kernel/systbls_64.S | 4 ++--
 2 files changed, 2 insertions(+), 7 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] Sparc
  2018-11-01  1:44 ` David Miller
@ 2018-11-01 16:15   ` Linus Torvalds
  -1 siblings, 0 replies; 548+ messages in thread
From: Linus Torvalds @ 2018-11-01 16:15 UTC (permalink / raw)
  To: David Miller; +Cc: Andrew Morton, sparclinux, Linux Kernel Mailing List

On Wed, Oct 31, 2018 at 6:44 PM David Miller <davem@davemloft.net> wrote:
>
> Two small fixes, please pull.

Pulled,

                    Linus

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] Sparc
@ 2018-11-01 16:15   ` Linus Torvalds
  0 siblings, 0 replies; 548+ messages in thread
From: Linus Torvalds @ 2018-11-01 16:15 UTC (permalink / raw)
  To: David Miller; +Cc: Andrew Morton, sparclinux, Linux Kernel Mailing List

On Wed, Oct 31, 2018 at 6:44 PM David Miller <davem@davemloft.net> wrote:
>
> Two small fixes, please pull.

Pulled,

                    Linus

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2018-12-03  5:33 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2018-12-03  5:33 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


1) Some implicit switch fallthrough fixes from Stephen Rothwell.

2) Missing of_node_put() in various sparc drivers from
   Yangtao Li.

Please pull, thanks!

The following changes since commit 25e19c1fe421280a47f37c3571aa379e6e67966c:

  Merge tag 'libnvdimm-fixes-4.20-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm (2018-11-18 12:21:09 -0800)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git 

for you to fetch changes up to dac097c4546e4c5b16dd303a1e97c1d319c8ab3e:

  drivers/tty: add missing of_node_put() (2018-12-02 20:55:23 -0800)

----------------------------------------------------------------
Sabyasachi Gupta (1):
      arch/sparc: Use kzalloc_node

Stephen Rothwell (3):
      sparc: suppress the implicit-fallthrough warning
      sparc32: suppress an implicit-fallthrough warning
      sparc32: supress another implicit-fallthrough warning

Yangtao Li (3):
      sbus: char: add of_node_put()
      drivers/sbus/char: add of_node_put()
      drivers/tty: add missing of_node_put()

 arch/sparc/kernel/iommu.c       | 3 +--
 arch/sparc/kernel/signal32.c    | 1 +
 arch/sparc/kernel/signal_32.c   | 1 +
 arch/sparc/kernel/signal_64.c   | 1 +
 drivers/sbus/char/display7seg.c | 1 +
 drivers/sbus/char/envctrl.c     | 2 ++
 drivers/tty/serial/suncore.c    | 1 +
 7 files changed, 8 insertions(+), 2 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2018-12-03  5:33 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2018-12-03  5:33 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


1) Some implicit switch fallthrough fixes from Stephen Rothwell.

2) Missing of_node_put() in various sparc drivers from
   Yangtao Li.

Please pull, thanks!

The following changes since commit 25e19c1fe421280a47f37c3571aa379e6e67966c:

  Merge tag 'libnvdimm-fixes-4.20-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm (2018-11-18 12:21:09 -0800)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git 

for you to fetch changes up to dac097c4546e4c5b16dd303a1e97c1d319c8ab3e:

  drivers/tty: add missing of_node_put() (2018-12-02 20:55:23 -0800)

----------------------------------------------------------------
Sabyasachi Gupta (1):
      arch/sparc: Use kzalloc_node

Stephen Rothwell (3):
      sparc: suppress the implicit-fallthrough warning
      sparc32: suppress an implicit-fallthrough warning
      sparc32: supress another implicit-fallthrough warning

Yangtao Li (3):
      sbus: char: add of_node_put()
      drivers/sbus/char: add of_node_put()
      drivers/tty: add missing of_node_put()

 arch/sparc/kernel/iommu.c       | 3 +--
 arch/sparc/kernel/signal32.c    | 1 +
 arch/sparc/kernel/signal_32.c   | 1 +
 arch/sparc/kernel/signal_64.c   | 1 +
 drivers/sbus/char/display7seg.c | 1 +
 drivers/sbus/char/envctrl.c     | 2 ++
 drivers/tty/serial/suncore.c    | 1 +
 7 files changed, 8 insertions(+), 2 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] Sparc
  2018-12-03  5:33 ` David Miller
  (?)
@ 2018-12-03 17:55 ` pr-tracker-bot
  -1 siblings, 0 replies; 548+ messages in thread
From: pr-tracker-bot @ 2018-12-03 17:55 UTC (permalink / raw)
  To: David Miller; +Cc: torvalds, akpm, sparclinux, linux-kernel

The pull request you sent on Sun, 02 Dec 2018 21:33:11 -0800 (PST):

> git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git master

has been merged into torvalds/linux.git:
https://git.kernel.org/torvalds/c/9099ff769faf879b5cb6e24e04c7904a8352aef0

Thank you!

-- 
Deet-doot-dot, I am a bot.
https://korg.wiki.kernel.org/userdoc/prtracker

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2018-12-21 20:42 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2018-12-21 20:42 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Just some small fixes here and there, and a refcount leak in a serial
driver, nothing serious.

Please pull, thanks!

The following changes since commit cf76c364a1e1e5224af80edf70a1e3023e1fcf8c:

  Merge tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi (2018-12-05 17:06:31 -0800)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git 

for you to fetch changes up to d430aff8cd0c57502d873909c184e3b5753f8b88:

  serial/sunsu: fix refcount leak (2018-12-21 11:24:38 -0800)

----------------------------------------------------------------
Corentin Labbe (1):
      sparc: Set "ARCH: sunxx" information on the same line

Yangtao Li (1):
      serial/sunsu: fix refcount leak

ndesaulniers@google.com (1):
      sparc: vdso: Drop implicit common-page-size linker flag

 arch/sparc/kernel/setup_32.c | 13 ++++++-------
 arch/sparc/kernel/setup_64.c |  4 ++--
 arch/sparc/vdso/Makefile     |  2 +-
 drivers/tty/serial/sunsu.c   | 31 ++++++++++++++++++++++++++-----
 4 files changed, 35 insertions(+), 15 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2018-12-21 20:42 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2018-12-21 20:42 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Just some small fixes here and there, and a refcount leak in a serial
driver, nothing serious.

Please pull, thanks!

The following changes since commit cf76c364a1e1e5224af80edf70a1e3023e1fcf8c:

  Merge tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi (2018-12-05 17:06:31 -0800)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git 

for you to fetch changes up to d430aff8cd0c57502d873909c184e3b5753f8b88:

  serial/sunsu: fix refcount leak (2018-12-21 11:24:38 -0800)

----------------------------------------------------------------
Corentin Labbe (1):
      sparc: Set "ARCH: sunxx" information on the same line

Yangtao Li (1):
      serial/sunsu: fix refcount leak

ndesaulniers@google.com (1):
      sparc: vdso: Drop implicit common-page-size linker flag

 arch/sparc/kernel/setup_32.c | 13 ++++++-------
 arch/sparc/kernel/setup_64.c |  4 ++--
 arch/sparc/vdso/Makefile     |  2 +-
 drivers/tty/serial/sunsu.c   | 31 ++++++++++++++++++++++++++-----
 4 files changed, 35 insertions(+), 15 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] Sparc
  2018-12-21 20:42 ` David Miller
  (?)
@ 2018-12-21 22:30 ` pr-tracker-bot
  -1 siblings, 0 replies; 548+ messages in thread
From: pr-tracker-bot @ 2018-12-21 22:30 UTC (permalink / raw)
  To: David Miller; +Cc: torvalds, akpm, sparclinux, linux-kernel

The pull request you sent on Fri, 21 Dec 2018 12:42:43 -0800 (PST):

> git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git master

has been merged into torvalds/linux.git:
https://git.kernel.org/torvalds/c/6cafab50eea327e0d198cc9579a60440fc959756

Thank you!

-- 
Deet-doot-dot, I am a bot.
https://korg.wiki.kernel.org/userdoc/prtracker

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2018-12-22 23:46 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2018-12-22 23:46 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Here is an early pull request for the next merge window:

1) Automatic system call table generation, from Firoz Khan.

2) Clean up accesses to the OF device names by using
   full_name instead of path_component_name.

Please pull, thanks a lot!

The following changes since commit 25e19c1fe421280a47f37c3571aa379e6e67966c:

  Merge tag 'libnvdimm-fixes-4.20-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm (2018-11-18 12:21:09 -0800)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-next.git 

for you to fetch changes up to c23b8e7acea3dc034edeb902f0c843856e215938:

  ALSA: sparc: Use of_node_name_eq for node name comparisons (2018-12-05 21:00:02 -0800)

----------------------------------------------------------------
David S. Miller (2):
      Merge branch 'sparc-OF-name-and-device_type-rework'
      Merge branch 'sparc-syscall-gen'

Firoz Khan (4):
      sparc: move __IGNORE* entries to non uapi header
      sparc: add __NR_syscalls along with NR_syscalls
      sparc: add system call table generation support
      sparc: generate uapi header and system call table files

Rob Herring (12):
      fs/openpromfs: use full_name instead of path_component_name
      fs/openpromfs: Use of_node_name_eq for node name comparisons
      sparc: Convert to using %pOF instead of full_name
      of: Drop full path from full_name for PDT systems
      sparc: prom: use property "name" directly to construct node names
      sparc: Convert to using %pOFn instead of device_node.name
      sparc: Use of_node_name_eq for node name comparisons
      sparc: Use device_type helpers to access the node type
      sparc: Remove unused leon_trans_init
      sparc: Use DT node full_name instead of name for resources
      sbus: Use of_node_name_eq for node name comparisons
      ALSA: sparc: Use of_node_name_eq for node name comparisons

 arch/sparc/Makefile                      |   3 +
 arch/sparc/include/asm/Kbuild            |   4 +-
 arch/sparc/include/asm/floppy_64.h       |   8 +-
 arch/sparc/include/asm/leon.h            |   1 -
 arch/sparc/include/asm/parport.h         |   2 +-
 arch/sparc/include/asm/unistd.h          |  18 +++++
 arch/sparc/include/uapi/asm/Kbuild       |   2 +
 arch/sparc/include/uapi/asm/unistd.h     | 426 +----------------------------------------------------------------------------------------------------------
 arch/sparc/kernel/auxio_64.c             |  11 ++-
 arch/sparc/kernel/central.c              |   2 +-
 arch/sparc/kernel/chmc.c                 |   8 +-
 arch/sparc/kernel/ioport.c               |   2 +-
 arch/sparc/kernel/irq_64.c               |   2 +-
 arch/sparc/kernel/leon_kernel.c          |  14 ----
 arch/sparc/kernel/of_device_32.c         |  21 +++---
 arch/sparc/kernel/of_device_64.c         |  58 +++++++--------
 arch/sparc/kernel/of_device_common.c     |   4 +-
 arch/sparc/kernel/pci.c                  |  44 +++++------
 arch/sparc/kernel/pci_sabre.c            |   2 +-
 arch/sparc/kernel/power.c                |   4 +-
 arch/sparc/kernel/process_32.c           |   2 +-
 arch/sparc/kernel/prom_32.c              |  44 +++++------
 arch/sparc/kernel/prom_64.c              |  75 ++++++++++---------
 arch/sparc/kernel/prom_irqtrans.c        |  20 ++---
 arch/sparc/kernel/reboot.c               |   3 +-
 arch/sparc/kernel/sbus.c                 |   4 +-
 arch/sparc/kernel/sun4d_irq.c            |  14 ++--
 arch/sparc/kernel/syscalls/Makefile      |  55 ++++++++++++++
 arch/sparc/kernel/syscalls/syscall.tbl   | 409 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 arch/sparc/kernel/syscalls/syscallhdr.sh |  36 +++++++++
 arch/sparc/kernel/syscalls/syscalltbl.sh |  36 +++++++++
 arch/sparc/kernel/systbls_32.S           |  81 +--------------------
 arch/sparc/kernel/systbls_64.S           | 157 +---------------------------------------
 arch/sparc/kernel/time_64.c              |  16 ++--
 arch/sparc/kernel/vio.c                  |   9 +--
 drivers/of/pdt.c                         |  50 ++++---------
 drivers/sbus/char/bbc_envctrl.c          |   4 +-
 drivers/sbus/char/envctrl.c              |   6 +-
 drivers/sbus/char/flash.c                |   6 +-
 fs/openpromfs/inode.c                    |  11 +--
 include/linux/of.h                       |   1 -
 sound/sparc/cs4231.c                     |   6 +-
 42 files changed, 777 insertions(+), 904 deletions(-)
 create mode 100644 arch/sparc/kernel/syscalls/Makefile
 create mode 100644 arch/sparc/kernel/syscalls/syscall.tbl
 create mode 100644 arch/sparc/kernel/syscalls/syscallhdr.sh
 create mode 100644 arch/sparc/kernel/syscalls/syscalltbl.sh

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2018-12-22 23:46 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2018-12-22 23:46 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Here is an early pull request for the next merge window:

1) Automatic system call table generation, from Firoz Khan.

2) Clean up accesses to the OF device names by using
   full_name instead of path_component_name.

Please pull, thanks a lot!

The following changes since commit 25e19c1fe421280a47f37c3571aa379e6e67966c:

  Merge tag 'libnvdimm-fixes-4.20-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm (2018-11-18 12:21:09 -0800)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-next.git 

for you to fetch changes up to c23b8e7acea3dc034edeb902f0c843856e215938:

  ALSA: sparc: Use of_node_name_eq for node name comparisons (2018-12-05 21:00:02 -0800)

----------------------------------------------------------------
David S. Miller (2):
      Merge branch 'sparc-OF-name-and-device_type-rework'
      Merge branch 'sparc-syscall-gen'

Firoz Khan (4):
      sparc: move __IGNORE* entries to non uapi header
      sparc: add __NR_syscalls along with NR_syscalls
      sparc: add system call table generation support
      sparc: generate uapi header and system call table files

Rob Herring (12):
      fs/openpromfs: use full_name instead of path_component_name
      fs/openpromfs: Use of_node_name_eq for node name comparisons
      sparc: Convert to using %pOF instead of full_name
      of: Drop full path from full_name for PDT systems
      sparc: prom: use property "name" directly to construct node names
      sparc: Convert to using %pOFn instead of device_node.name
      sparc: Use of_node_name_eq for node name comparisons
      sparc: Use device_type helpers to access the node type
      sparc: Remove unused leon_trans_init
      sparc: Use DT node full_name instead of name for resources
      sbus: Use of_node_name_eq for node name comparisons
      ALSA: sparc: Use of_node_name_eq for node name comparisons

 arch/sparc/Makefile                      |   3 +
 arch/sparc/include/asm/Kbuild            |   4 +-
 arch/sparc/include/asm/floppy_64.h       |   8 +-
 arch/sparc/include/asm/leon.h            |   1 -
 arch/sparc/include/asm/parport.h         |   2 +-
 arch/sparc/include/asm/unistd.h          |  18 +++++
 arch/sparc/include/uapi/asm/Kbuild       |   2 +
 arch/sparc/include/uapi/asm/unistd.h     | 426 +----------------------------------------------------------------------------------------------------------
 arch/sparc/kernel/auxio_64.c             |  11 ++-
 arch/sparc/kernel/central.c              |   2 +-
 arch/sparc/kernel/chmc.c                 |   8 +-
 arch/sparc/kernel/ioport.c               |   2 +-
 arch/sparc/kernel/irq_64.c               |   2 +-
 arch/sparc/kernel/leon_kernel.c          |  14 ----
 arch/sparc/kernel/of_device_32.c         |  21 +++---
 arch/sparc/kernel/of_device_64.c         |  58 +++++++--------
 arch/sparc/kernel/of_device_common.c     |   4 +-
 arch/sparc/kernel/pci.c                  |  44 +++++------
 arch/sparc/kernel/pci_sabre.c            |   2 +-
 arch/sparc/kernel/power.c                |   4 +-
 arch/sparc/kernel/process_32.c           |   2 +-
 arch/sparc/kernel/prom_32.c              |  44 +++++------
 arch/sparc/kernel/prom_64.c              |  75 ++++++++++---------
 arch/sparc/kernel/prom_irqtrans.c        |  20 ++---
 arch/sparc/kernel/reboot.c               |   3 +-
 arch/sparc/kernel/sbus.c                 |   4 +-
 arch/sparc/kernel/sun4d_irq.c            |  14 ++--
 arch/sparc/kernel/syscalls/Makefile      |  55 ++++++++++++++
 arch/sparc/kernel/syscalls/syscall.tbl   | 409 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 arch/sparc/kernel/syscalls/syscallhdr.sh |  36 +++++++++
 arch/sparc/kernel/syscalls/syscalltbl.sh |  36 +++++++++
 arch/sparc/kernel/systbls_32.S           |  81 +--------------------
 arch/sparc/kernel/systbls_64.S           | 157 +---------------------------------------
 arch/sparc/kernel/time_64.c              |  16 ++--
 arch/sparc/kernel/vio.c                  |   9 +--
 drivers/of/pdt.c                         |  50 ++++---------
 drivers/sbus/char/bbc_envctrl.c          |   4 +-
 drivers/sbus/char/envctrl.c              |   6 +-
 drivers/sbus/char/flash.c                |   6 +-
 fs/openpromfs/inode.c                    |  11 +--
 include/linux/of.h                       |   1 -
 sound/sparc/cs4231.c                     |   6 +-
 42 files changed, 777 insertions(+), 904 deletions(-)
 create mode 100644 arch/sparc/kernel/syscalls/Makefile
 create mode 100644 arch/sparc/kernel/syscalls/syscall.tbl
 create mode 100644 arch/sparc/kernel/syscalls/syscallhdr.sh
 create mode 100644 arch/sparc/kernel/syscalls/syscalltbl.sh

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] Sparc
  2018-12-22 23:46 ` David Miller
  (?)
@ 2018-12-26 19:20 ` pr-tracker-bot
  -1 siblings, 0 replies; 548+ messages in thread
From: pr-tracker-bot @ 2018-12-26 19:20 UTC (permalink / raw)
  To: David Miller; +Cc: torvalds, akpm, sparclinux, linux-kernel

The pull request you sent on Sat, 22 Dec 2018 15:46:26 -0800 (PST):

> git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-next.git master

has been merged into torvalds/linux.git:
https://git.kernel.org/torvalds/c/c2f1f3e0e17d94ab0c66d83e669492cb9e9a3698

Thank you!

-- 
Deet-doot-dot, I am a bot.
https://korg.wiki.kernel.org/userdoc/prtracker

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2019-05-09 21:35 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2019-05-09 21:35 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Here we go:

1) Fix various long standing issues in the sparc 32-bit IOMMU support
   code, from Christoph Hellwig.

2) Various other code cleanups and simplifications all over.  From
   Gustavo A. R. Silva, Jagadeesh Pagadala, Masahiro Yamada, Mauro
   Carvalho Chehab, Mike Rapoport.

Please pull, thanks a lot!

The following changes since commit 92fab77b6b309dc219b02da4a69ad5dc76f7ec74:

  Merge tag 'mips_5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux (2019-05-08 16:41:47 -0700)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git 

for you to fetch changes up to f4d9a23d3dad0252f375901bf4ff6523a2c97241:

  sparc64: simplify reduce_memory() function (2019-05-09 14:26:17 -0700)

----------------------------------------------------------------
Christoph Hellwig (9):
      sparc/iommu: use !PageHighMem to check if a page has a kernel mapping
      sparc/iommu: use sbus_iommu_unmap_page in sbus_iommu_unmap_sg
      sparc/iommu: merge iommu_release_one and sbus_iommu_unmap_page
      sparc/iommu: create a common helper for map_sg
      sparc/iommu: pass a physical address to iommu_get_one
      sparc/iommu: move per-page flushing into __sbus_iommu_map_page
      sparc/iommu: fix __sbus_iommu_map_page for highmem pages
      sparc/iommu: use __sbus_iommu_map_page to implement the map_sg path
      sparc/iommu: merge iommu_get_one and __sbus_iommu_map_page

David S. Miller (1):
      Merge branch 'sparc32-iommu-SG-list'

Gustavo A. R. Silva (1):
      sparc: use struct_size() in kzalloc()

Jagadeesh Pagadala (1):
      arch:sparc:kernel/uprobes.c : Remove duplicate header

Masahiro Yamada (1):
      sparc: vdso: add FORCE to the build rule of %.so

Mauro Carvalho Chehab (1):
      docs: sparc: convert to ReST

Mike Rapoport (1):
      sparc64: simplify reduce_memory() function

 Documentation/sparc/{adi.txt => adi.rst}                      | 188 ++++++++++++++++++++++++++++++++++++++++++++++------------------------------------------
 Documentation/sparc/{console.txt => console.rst}              |   4 +-
 Documentation/sparc/index.rst                                 |  13 +++++++
 Documentation/sparc/oradax/{oracle-dax.txt => oracle-dax.rst} |  58 +++++++++++++++++----------
 arch/sparc/kernel/cpumap.c                                    |   3 +-
 arch/sparc/kernel/uprobes.c                                   |   1 -
 arch/sparc/mm/init_64.c                                       |  42 +-------------------
 arch/sparc/mm/iommu.c                                         | 142 +++++++++++++++++++++++++++---------------------------------------
 arch/sparc/vdso/Makefile                                      |   2 +-
 drivers/sbus/char/oradax.c                                    |   2 +-
 10 files changed, 213 insertions(+), 242 deletions(-)
 rename Documentation/sparc/{adi.txt => adi.rst} (70%)
 rename Documentation/sparc/{console.txt => console.rst} (53%)
 create mode 100644 Documentation/sparc/index.rst
 rename Documentation/sparc/oradax/{oracle-dax.txt => oracle-dax.rst} (95%)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2019-05-09 21:35 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2019-05-09 21:35 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Here we go:

1) Fix various long standing issues in the sparc 32-bit IOMMU support
   code, from Christoph Hellwig.

2) Various other code cleanups and simplifications all over.  From
   Gustavo A. R. Silva, Jagadeesh Pagadala, Masahiro Yamada, Mauro
   Carvalho Chehab, Mike Rapoport.

Please pull, thanks a lot!

The following changes since commit 92fab77b6b309dc219b02da4a69ad5dc76f7ec74:

  Merge tag 'mips_5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux (2019-05-08 16:41:47 -0700)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git 

for you to fetch changes up to f4d9a23d3dad0252f375901bf4ff6523a2c97241:

  sparc64: simplify reduce_memory() function (2019-05-09 14:26:17 -0700)

----------------------------------------------------------------
Christoph Hellwig (9):
      sparc/iommu: use !PageHighMem to check if a page has a kernel mapping
      sparc/iommu: use sbus_iommu_unmap_page in sbus_iommu_unmap_sg
      sparc/iommu: merge iommu_release_one and sbus_iommu_unmap_page
      sparc/iommu: create a common helper for map_sg
      sparc/iommu: pass a physical address to iommu_get_one
      sparc/iommu: move per-page flushing into __sbus_iommu_map_page
      sparc/iommu: fix __sbus_iommu_map_page for highmem pages
      sparc/iommu: use __sbus_iommu_map_page to implement the map_sg path
      sparc/iommu: merge iommu_get_one and __sbus_iommu_map_page

David S. Miller (1):
      Merge branch 'sparc32-iommu-SG-list'

Gustavo A. R. Silva (1):
      sparc: use struct_size() in kzalloc()

Jagadeesh Pagadala (1):
      arch:sparc:kernel/uprobes.c : Remove duplicate header

Masahiro Yamada (1):
      sparc: vdso: add FORCE to the build rule of %.so

Mauro Carvalho Chehab (1):
      docs: sparc: convert to ReST

Mike Rapoport (1):
      sparc64: simplify reduce_memory() function

 Documentation/sparc/{adi.txt => adi.rst}                      | 188 ++++++++++++++++++++++++++++++++++++++++++++++------------------------------------------
 Documentation/sparc/{console.txt => console.rst}              |   4 +-
 Documentation/sparc/index.rst                                 |  13 +++++++
 Documentation/sparc/oradax/{oracle-dax.txt => oracle-dax.rst} |  58 +++++++++++++++++----------
 arch/sparc/kernel/cpumap.c                                    |   3 +-
 arch/sparc/kernel/uprobes.c                                   |   1 -
 arch/sparc/mm/init_64.c                                       |  42 +-------------------
 arch/sparc/mm/iommu.c                                         | 142 +++++++++++++++++++++++++++---------------------------------------
 arch/sparc/vdso/Makefile                                      |   2 +-
 drivers/sbus/char/oradax.c                                    |   2 +-
 10 files changed, 213 insertions(+), 242 deletions(-)
 rename Documentation/sparc/{adi.txt => adi.rst} (70%)
 rename Documentation/sparc/{console.txt => console.rst} (53%)
 create mode 100644 Documentation/sparc/index.rst
 rename Documentation/sparc/oradax/{oracle-dax.txt => oracle-dax.rst} (95%)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] Sparc
  2019-05-09 21:35 ` David Miller
  (?)
@ 2019-05-09 22:15 ` pr-tracker-bot
  -1 siblings, 0 replies; 548+ messages in thread
From: pr-tracker-bot @ 2019-05-09 22:15 UTC (permalink / raw)
  To: David Miller; +Cc: torvalds, akpm, sparclinux, linux-kernel

The pull request you sent on Thu, 09 May 2019 14:35:31 -0700 (PDT):

> git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git refs/heads/master

has been merged into torvalds/linux.git:
https://git.kernel.org/torvalds/c/9b6c9e96f941c5ab13dad7278a3622f58e5672fc

Thank you!

-- 
Deet-doot-dot, I am a bot.
https://korg.wiki.kernel.org/userdoc/prtracker

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2019-06-03  5:21 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2019-06-03  5:21 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Please pull to get these three bug fixes, and TLB flushing one is of
particular brown paper bag quality...

Thanks.

The following changes since commit f2c7c76c5d0a443053e94adb9f0918fa2fb85c3a:

  Linux 5.2-rc3 (2019-06-02 13:55:33 -0700)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git 

for you to fetch changes up to 56cd0aefa475079e9613085b14a0f05037518fed:

  sparc: perf: fix updated event period in response to PERF_EVENT_IOC_PERIOD (2019-06-02 22:16:33 -0700)

----------------------------------------------------------------
Gen Zhang (1):
      mdesc: fix a missing-check bug in get_vdev_port_node_info()

James Clarke (1):
      sparc64: Fix regression in non-hypervisor TLB flush xcall

Young Xiao (1):
      sparc: perf: fix updated event period in response to PERF_EVENT_IOC_PERIOD

 arch/sparc/kernel/mdesc.c      | 2 ++
 arch/sparc/kernel/perf_event.c | 4 ++++
 arch/sparc/mm/ultra.S          | 4 ++--
 3 files changed, 8 insertions(+), 2 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2019-06-03  5:21 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2019-06-03  5:21 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Please pull to get these three bug fixes, and TLB flushing one is of
particular brown paper bag quality...

Thanks.

The following changes since commit f2c7c76c5d0a443053e94adb9f0918fa2fb85c3a:

  Linux 5.2-rc3 (2019-06-02 13:55:33 -0700)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git 

for you to fetch changes up to 56cd0aefa475079e9613085b14a0f05037518fed:

  sparc: perf: fix updated event period in response to PERF_EVENT_IOC_PERIOD (2019-06-02 22:16:33 -0700)

----------------------------------------------------------------
Gen Zhang (1):
      mdesc: fix a missing-check bug in get_vdev_port_node_info()

James Clarke (1):
      sparc64: Fix regression in non-hypervisor TLB flush xcall

Young Xiao (1):
      sparc: perf: fix updated event period in response to PERF_EVENT_IOC_PERIOD

 arch/sparc/kernel/mdesc.c      | 2 ++
 arch/sparc/kernel/perf_event.c | 4 ++++
 arch/sparc/mm/ultra.S          | 4 ++--
 3 files changed, 8 insertions(+), 2 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] Sparc
  2019-06-03  5:21 ` David Miller
  (?)
@ 2019-06-03 17:35 ` pr-tracker-bot
  -1 siblings, 0 replies; 548+ messages in thread
From: pr-tracker-bot @ 2019-06-03 17:35 UTC (permalink / raw)
  To: David Miller; +Cc: torvalds, akpm, sparclinux, linux-kernel

The pull request you sent on Sun, 02 Jun 2019 22:21:07 -0700 (PDT):

> git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git refs/heads/master

has been merged into torvalds/linux.git:
https://git.kernel.org/torvalds/c/01e7a841b4346836f19b40677e1fef4657cc0d0d

Thank you!

-- 
Deet-doot-dot, I am a bot.
https://korg.wiki.kernel.org/userdoc/prtracker

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2019-07-13  6:17 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2019-07-13  6:17 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Just a few small changes:

1) Fix console naming inconsistency with hypervisor consoles, from
   John Paul Adrian Glaubitz

2) Fix userland compilation due to use of u_int, from Masahiro Yamada.

Please pull, thanks a lot.

The following changes since commit 30d1d92a888d03681b927c76a35181b4eed7071f:

  Merge tag 'nds32-for-linux-5.2-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/greentime/linux (2019-06-03 10:23:41 -0700)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git 

for you to fetch changes up to 61daf52c4ddd433924687850fa04ed85c0d806dd:

  sparc64: Add missing newline at end of file (2019-07-09 14:53:57 -0700)

----------------------------------------------------------------
Geert Uytterhoeven (1):
      sparc64: Add missing newline at end of file

John Paul Adrian Glaubitz (1):
      sunhv: Fix device naming inconsistency between sunhv_console and sunhv_reg

Krzysztof Kozlowski (1):
      sparc: configs: Remove useless UEVENT_HELPER_PATH

Masahiro Yamada (1):
      sparc: fix unknown type name u_int in uapi header

Thomas Huth (1):
      sparc: Remove redundant copy of the LGPL-2.0

 arch/sparc/configs/sparc32_defconfig     |   1 -
 arch/sparc/configs/sparc64_defconfig     |   1 -
 arch/sparc/include/uapi/asm/openpromio.h |   3 +-
 arch/sparc/lib/COPYING.LIB               | 481 -----------------------------------------------------------------------------
 arch/sparc/lib/NG4clear_page.S           |   2 +-
 drivers/tty/serial/sunhv.c               |   2 +-
 6 files changed, 3 insertions(+), 487 deletions(-)
 delete mode 100644 arch/sparc/lib/COPYING.LIB

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2019-07-13  6:17 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2019-07-13  6:17 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Just a few small changes:

1) Fix console naming inconsistency with hypervisor consoles, from
   John Paul Adrian Glaubitz

2) Fix userland compilation due to use of u_int, from Masahiro Yamada.

Please pull, thanks a lot.

The following changes since commit 30d1d92a888d03681b927c76a35181b4eed7071f:

  Merge tag 'nds32-for-linux-5.2-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/greentime/linux (2019-06-03 10:23:41 -0700)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git 

for you to fetch changes up to 61daf52c4ddd433924687850fa04ed85c0d806dd:

  sparc64: Add missing newline at end of file (2019-07-09 14:53:57 -0700)

----------------------------------------------------------------
Geert Uytterhoeven (1):
      sparc64: Add missing newline at end of file

John Paul Adrian Glaubitz (1):
      sunhv: Fix device naming inconsistency between sunhv_console and sunhv_reg

Krzysztof Kozlowski (1):
      sparc: configs: Remove useless UEVENT_HELPER_PATH

Masahiro Yamada (1):
      sparc: fix unknown type name u_int in uapi header

Thomas Huth (1):
      sparc: Remove redundant copy of the LGPL-2.0

 arch/sparc/configs/sparc32_defconfig     |   1 -
 arch/sparc/configs/sparc64_defconfig     |   1 -
 arch/sparc/include/uapi/asm/openpromio.h |   3 +-
 arch/sparc/lib/COPYING.LIB               | 481 -----------------------------------------------------------------------------
 arch/sparc/lib/NG4clear_page.S           |   2 +-
 drivers/tty/serial/sunhv.c               |   2 +-
 6 files changed, 3 insertions(+), 487 deletions(-)
 delete mode 100644 arch/sparc/lib/COPYING.LIB

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] Sparc
  2019-07-13  6:17 ` David Miller
  (?)
@ 2019-07-13 23:15 ` pr-tracker-bot
  -1 siblings, 0 replies; 548+ messages in thread
From: pr-tracker-bot @ 2019-07-13 23:15 UTC (permalink / raw)
  To: David Miller; +Cc: torvalds, akpm, sparclinux, linux-kernel

The pull request you sent on Fri, 12 Jul 2019 23:17:42 -0700 (PDT):

> git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git refs/heads/master

has been merged into torvalds/linux.git:
https://git.kernel.org/torvalds/c/ec9249752465b87b5b26d03f476eebaf872ebd12

Thank you!

-- 
Deet-doot-dot, I am a bot.
https://korg.wiki.kernel.org/userdoc/prtracker

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2020-01-30 10:19 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2020-01-30 10:19 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


1) Add a proper .exit.data section.

2) Fix ipc64_perm type definition, from Arnd Bergmann.

3) Support folded p4d page tables on sparc64, from Mike Rapport.

4) Remove uses of struct timex, also from Arnd Bergmann.

Please pull, thanks a lot!

The following changes since commit 7b5cf701ea9c395c792e2a7e3b7caf4c68b87721:

  Merge branch 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip (2019-07-22 09:30:34 -0700)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git 

for you to fetch changes up to d68712ee35069455ea4043d443c8d4fb9a1ee956:

  y2038: sparc: remove use of struct timex (2020-01-30 11:14:28 +0100)

----------------------------------------------------------------
Andreas Larsson (1):
      sparc32, leon: Stop adding vendor and device id to prom ambapp path components

Arnd Bergmann (2):
      sparc32: fix struct ipc64_perm type definition
      y2038: sparc: remove use of struct timex

Arvind Sankar (1):
      sparc/console: kill off obsolete declarations

David S. Miller (1):
      sparc: Add .exit.data section.

Masahiro Yamada (1):
      sparc: remove unneeded uapi/asm/statfs.h

Mike Rapoport (1):
      sparc64: add support for folded p4d page tables

 arch/sparc/include/asm/pgalloc_64.h  |  6 +++---
 arch/sparc/include/asm/pgtable_64.h  | 24 ++++++++++++------------
 arch/sparc/include/uapi/asm/ipcbuf.h | 22 +++++++++++-----------
 arch/sparc/include/uapi/asm/statfs.h |  7 -------
 arch/sparc/kernel/prom_32.c          | 18 ++++--------------
 arch/sparc/kernel/signal32.c         |  6 +++++-
 arch/sparc/kernel/smp_64.c           | 13 ++++++++++++-
 arch/sparc/kernel/sys_sparc_64.c     | 33 +++++++++++++++++----------------
 arch/sparc/kernel/vmlinux.lds.S      |  6 ++++--
 arch/sparc/mm/fault_64.c             |  6 +++++-
 arch/sparc/mm/hugetlbpage.c          | 28 ++++++++++++++++++----------
 arch/sparc/mm/init_64.c              | 33 +++++++++++++++++++++++++++++----
 include/linux/console.h              |  2 --
 include/uapi/linux/timex.h           |  2 ++
 14 files changed, 122 insertions(+), 84 deletions(-)
 delete mode 100644 arch/sparc/include/uapi/asm/statfs.h

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2020-01-30 10:19 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2020-01-30 10:19 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


1) Add a proper .exit.data section.

2) Fix ipc64_perm type definition, from Arnd Bergmann.

3) Support folded p4d page tables on sparc64, from Mike Rapport.

4) Remove uses of struct timex, also from Arnd Bergmann.

Please pull, thanks a lot!

The following changes since commit 7b5cf701ea9c395c792e2a7e3b7caf4c68b87721:

  Merge branch 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip (2019-07-22 09:30:34 -0700)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git 

for you to fetch changes up to d68712ee35069455ea4043d443c8d4fb9a1ee956:

  y2038: sparc: remove use of struct timex (2020-01-30 11:14:28 +0100)

----------------------------------------------------------------
Andreas Larsson (1):
      sparc32, leon: Stop adding vendor and device id to prom ambapp path components

Arnd Bergmann (2):
      sparc32: fix struct ipc64_perm type definition
      y2038: sparc: remove use of struct timex

Arvind Sankar (1):
      sparc/console: kill off obsolete declarations

David S. Miller (1):
      sparc: Add .exit.data section.

Masahiro Yamada (1):
      sparc: remove unneeded uapi/asm/statfs.h

Mike Rapoport (1):
      sparc64: add support for folded p4d page tables

 arch/sparc/include/asm/pgalloc_64.h  |  6 +++---
 arch/sparc/include/asm/pgtable_64.h  | 24 ++++++++++++------------
 arch/sparc/include/uapi/asm/ipcbuf.h | 22 +++++++++++-----------
 arch/sparc/include/uapi/asm/statfs.h |  7 -------
 arch/sparc/kernel/prom_32.c          | 18 ++++--------------
 arch/sparc/kernel/signal32.c         |  6 +++++-
 arch/sparc/kernel/smp_64.c           | 13 ++++++++++++-
 arch/sparc/kernel/sys_sparc_64.c     | 33 +++++++++++++++++----------------
 arch/sparc/kernel/vmlinux.lds.S      |  6 ++++--
 arch/sparc/mm/fault_64.c             |  6 +++++-
 arch/sparc/mm/hugetlbpage.c          | 28 ++++++++++++++++++----------
 arch/sparc/mm/init_64.c              | 33 +++++++++++++++++++++++++++++----
 include/linux/console.h              |  2 --
 include/uapi/linux/timex.h           |  2 ++
 14 files changed, 122 insertions(+), 84 deletions(-)
 delete mode 100644 arch/sparc/include/uapi/asm/statfs.h

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] Sparc
  2020-01-30 10:19 ` David Miller
  (?)
@ 2020-01-30 18:00 ` pr-tracker-bot
  -1 siblings, 0 replies; 548+ messages in thread
From: pr-tracker-bot @ 2020-01-30 18:00 UTC (permalink / raw)
  To: David Miller; +Cc: torvalds, akpm, sparclinux, linux-kernel

The pull request you sent on Thu, 30 Jan 2020 11:19:27 +0100 (CET):

> git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git refs/heads/master

has been merged into torvalds/linux.git:
https://git.kernel.org/torvalds/c/9ca4c6429f92598a84e4c3292ea7d187c9d7b033

Thank you!

-- 
Deet-doot-dot, I am a bot.
https://korg.wiki.kernel.org/userdoc/prtracker

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2020-02-02 10:57 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2020-02-02 10:57 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Please pull to get this adjtimex regression fix from Arnd.

Thank you!

The following changes since commit 94f2630b18975bb56eee5d1a36371db967643479:

  Merge tag '5.6-rc-small-smb3-fix-for-stable' of git://git.samba.org/sfrench/cifs-2.6 (2020-02-01 11:22:41 -0800)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git 

for you to fetch changes up to 11648b8339f840d4b1f4c54a1abec8025d9e077d:

  sparc64: fix adjtimex regression (2020-02-02 11:54:41 +0100)

----------------------------------------------------------------
Arnd Bergmann (1):
      sparc64: fix adjtimex regression

 arch/sparc/kernel/sys_sparc_64.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2020-02-02 10:57 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2020-02-02 10:57 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


Please pull to get this adjtimex regression fix from Arnd.

Thank you!

The following changes since commit 94f2630b18975bb56eee5d1a36371db967643479:

  Merge tag '5.6-rc-small-smb3-fix-for-stable' of git://git.samba.org/sfrench/cifs-2.6 (2020-02-01 11:22:41 -0800)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git 

for you to fetch changes up to 11648b8339f840d4b1f4c54a1abec8025d9e077d:

  sparc64: fix adjtimex regression (2020-02-02 11:54:41 +0100)

----------------------------------------------------------------
Arnd Bergmann (1):
      sparc64: fix adjtimex regression

 arch/sparc/kernel/sys_sparc_64.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] Sparc
  2020-02-02 10:57 ` David Miller
  (?)
@ 2020-02-02 20:20 ` pr-tracker-bot
  -1 siblings, 0 replies; 548+ messages in thread
From: pr-tracker-bot @ 2020-02-02 20:20 UTC (permalink / raw)
  To: David Miller; +Cc: torvalds, akpm, sparclinux, linux-kernel

The pull request you sent on Sun, 02 Feb 2020 11:57:57 +0100 (CET):

> git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git refs/heads/master

has been merged into torvalds/linux.git:
https://git.kernel.org/torvalds/c/46d6b7becb1d5a8e697db786590c19e4067a975a

Thank you!

-- 
Deet-doot-dot, I am a bot.
https://korg.wiki.kernel.org/userdoc/prtracker

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2020-04-06 18:25 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2020-04-06 18:25 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


A per-device DMA ops conversion for sparc32 by Chrstioph Hellwig.

Please pull, thanks a lot!

The following changes since commit bef7b2a7be28638770972ab2709adf11d601c11a:

  Merge tag 'devicetree-for-5.7' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux (2020-04-02 17:32:52 -0700)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git 

for you to fetch changes up to 255a69a94b8cbbcfef142137b5e7f99b5d168771:

  sparc32: use per-device dma_ops (2020-04-02 18:11:55 -0700)

----------------------------------------------------------------
Christoph Hellwig (1):
      sparc32: use per-device dma_ops

 arch/sparc/include/asm/dma-mapping.h | 15 ++-------------
 arch/sparc/kernel/ioport.c           |  3 ---
 arch/sparc/kernel/of_device_common.c |  1 +
 arch/sparc/mm/io-unit.c              |  9 ++++-----
 arch/sparc/mm/iommu.c                | 15 ++++++++-------
 arch/sparc/mm/mm_32.h                |  3 ---
 arch/sparc/mm/srmmu.c                |  4 +---
 7 files changed, 16 insertions(+), 34 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2020-04-06 18:25 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2020-04-06 18:25 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


A per-device DMA ops conversion for sparc32 by Chrstioph Hellwig.

Please pull, thanks a lot!

The following changes since commit bef7b2a7be28638770972ab2709adf11d601c11a:

  Merge tag 'devicetree-for-5.7' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux (2020-04-02 17:32:52 -0700)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git 

for you to fetch changes up to 255a69a94b8cbbcfef142137b5e7f99b5d168771:

  sparc32: use per-device dma_ops (2020-04-02 18:11:55 -0700)

----------------------------------------------------------------
Christoph Hellwig (1):
      sparc32: use per-device dma_ops

 arch/sparc/include/asm/dma-mapping.h | 15 ++-------------
 arch/sparc/kernel/ioport.c           |  3 ---
 arch/sparc/kernel/of_device_common.c |  1 +
 arch/sparc/mm/io-unit.c              |  9 ++++-----
 arch/sparc/mm/iommu.c                | 15 ++++++++-------
 arch/sparc/mm/mm_32.h                |  3 ---
 arch/sparc/mm/srmmu.c                |  4 +---
 7 files changed, 16 insertions(+), 34 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] Sparc
  2020-04-06 18:25 ` David Miller
  (?)
@ 2020-04-07 19:55 ` pr-tracker-bot
  -1 siblings, 0 replies; 548+ messages in thread
From: pr-tracker-bot @ 2020-04-07 19:55 UTC (permalink / raw)
  To: David Miller; +Cc: torvalds, akpm, sparclinux, linux-kernel

The pull request you sent on Mon, 06 Apr 2020 11:25:28 -0700 (PDT):

> git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git refs/heads/master

has been merged into torvalds/linux.git:
https://git.kernel.org/torvalds/c/12782fbe0f77dcc36c48de8b0ab36d336620a3e7

Thank you!

-- 
Deet-doot-dot, I am a bot.
https://korg.wiki.kernel.org/userdoc/prtracker

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2020-06-08  0:16 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2020-06-08  0:16 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


1) Rework the sparc32 page tables so that READ_ONCE(*pmd), as done by
   generic code, operates on a word sized element.  From Will Deacon.

2) Some scnprintf() conversions, from Chen Zhou.

3) A pin_user_pages() conversion from John Hubbard.

4) Several 32-bit ptrace register handling fixes and such from Al Viro.

Please pull, thanks a lot!

The following changes since commit 24085f70a6e1b0cb647ec92623284641d8270637:

  Merge tag 'trace-v5.7-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace (2020-05-12 11:06:26 -0700)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-next 

for you to fetch changes up to 4f8ad73898171cea2dce9ecf5bd4337c9dfcddc1:

  Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc (2020-06-07 17:11:41 -0700)

----------------------------------------------------------------
Al Viro (3):
      sparc64: fix misuses of access_process_vm() in genregs32_[sg]et()
      sparc32: fix register window handling in genregs32_[gs]et()
      fix a braino in "sparc32: fix register window handling in genregs32_[gs]et()"

Anupam Aggarwal (1):
      sparc: remove unused header file nfs_fs.h

Chen Zhou (2):
      sparc: use scnprintf() in show_pciobppath_attr() in pci.c
      sparc: use scnprintf() in show_pciobppath_attr() in vio.c

David S. Miller (6):
      Merge branch 'Rework-sparc32-page-table-layout'
      Merge branch 'sparc-scnprintf'
      Merge branch 'sparc32-SRMMU-fixes-for-SMP'
      Merge branch 'for-davem' of git://git.kernel.org/.../viro/vfs
      Merge branch 'for-davem' of git://git.kernel.org/.../viro/vfs
      Merge git://git.kernel.org/.../davem/sparc

Gustavo A. R. Silva (1):
      sparc64: Replace zero-length array with flexible-array

Jason Yan (1):
      sparc: mm: return true,false in kern_addr_valid()

John Hubbard (1):
      oradax: convert get_user_pages() --> pin_user_pages()

Mike Rapoport (1):
      sparc32: register memory occupied by kernel as memblock.memory

Wei Yongjun (1):
      tty: vcc: Fix error return code in vcc_probe()

Will Deacon (7):
      sparc32: mm: Fix argument checking in __srmmu_get_nocache()
      sparc32: mm: Restructure sparc32 MMU page-table layout
      sparc32: mm: Change pgtable_t type to pte_t * instead of struct page *
      sparc32: mm: Reduce allocation size for PMD and PTE tables
      sparc32: mm: Don't try to free page-table pages if ctor() fails
      sparc32: mm: Disable SPLIT_PTLOCK_CPUS
      sparc32: mm: Only call ctor()/dtor() functions for first and last user

 arch/sparc/include/asm/page_32.h    |  12 ++---
 arch/sparc/include/asm/pgalloc_32.h |  11 +++--
 arch/sparc/include/asm/pgtable_32.h |  40 ++++++++++------
 arch/sparc/include/asm/pgtsrmmu.h   |  36 ++-------------
 arch/sparc/include/asm/viking.h     |   5 +-
 arch/sparc/kernel/cpumap.c          |   2 +-
 arch/sparc/kernel/ds.c              |   8 ++--
 arch/sparc/kernel/head_32.S         |   8 ++--
 arch/sparc/kernel/pci.c             |   2 +-
 arch/sparc/kernel/ptrace_32.c       | 233 ++++++++++++++++++++++++++++++++++++++++++----------------------------------------------------
 arch/sparc/kernel/ptrace_64.c       |  17 ++-----
 arch/sparc/kernel/sys_sparc32.c     |   1 -
 arch/sparc/kernel/vio.c             |   2 +-
 arch/sparc/mm/hypersparc.S          |   3 +-
 arch/sparc/mm/init_32.c             |   1 +
 arch/sparc/mm/init_64.c             |  10 ++--
 arch/sparc/mm/srmmu.c               | 106 +++++++++++++++++--------------------------
 arch/sparc/mm/viking.S              |   5 +-
 drivers/sbus/char/oradax.c          |   8 ++--
 drivers/tty/vcc.c                   |   1 +
 mm/Kconfig                          |   4 ++
 21 files changed, 221 insertions(+), 294 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2020-06-08  0:16 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2020-06-08  0:16 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, sparclinux, linux-kernel


1) Rework the sparc32 page tables so that READ_ONCE(*pmd), as done by
   generic code, operates on a word sized element.  From Will Deacon.

2) Some scnprintf() conversions, from Chen Zhou.

3) A pin_user_pages() conversion from John Hubbard.

4) Several 32-bit ptrace register handling fixes and such from Al Viro.

Please pull, thanks a lot!

The following changes since commit 24085f70a6e1b0cb647ec92623284641d8270637:

  Merge tag 'trace-v5.7-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace (2020-05-12 11:06:26 -0700)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-next 

for you to fetch changes up to 4f8ad73898171cea2dce9ecf5bd4337c9dfcddc1:

  Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc (2020-06-07 17:11:41 -0700)

----------------------------------------------------------------
Al Viro (3):
      sparc64: fix misuses of access_process_vm() in genregs32_[sg]et()
      sparc32: fix register window handling in genregs32_[gs]et()
      fix a braino in "sparc32: fix register window handling in genregs32_[gs]et()"

Anupam Aggarwal (1):
      sparc: remove unused header file nfs_fs.h

Chen Zhou (2):
      sparc: use scnprintf() in show_pciobppath_attr() in pci.c
      sparc: use scnprintf() in show_pciobppath_attr() in vio.c

David S. Miller (6):
      Merge branch 'Rework-sparc32-page-table-layout'
      Merge branch 'sparc-scnprintf'
      Merge branch 'sparc32-SRMMU-fixes-for-SMP'
      Merge branch 'for-davem' of git://git.kernel.org/.../viro/vfs
      Merge branch 'for-davem' of git://git.kernel.org/.../viro/vfs
      Merge git://git.kernel.org/.../davem/sparc

Gustavo A. R. Silva (1):
      sparc64: Replace zero-length array with flexible-array

Jason Yan (1):
      sparc: mm: return true,false in kern_addr_valid()

John Hubbard (1):
      oradax: convert get_user_pages() --> pin_user_pages()

Mike Rapoport (1):
      sparc32: register memory occupied by kernel as memblock.memory

Wei Yongjun (1):
      tty: vcc: Fix error return code in vcc_probe()

Will Deacon (7):
      sparc32: mm: Fix argument checking in __srmmu_get_nocache()
      sparc32: mm: Restructure sparc32 MMU page-table layout
      sparc32: mm: Change pgtable_t type to pte_t * instead of struct page *
      sparc32: mm: Reduce allocation size for PMD and PTE tables
      sparc32: mm: Don't try to free page-table pages if ctor() fails
      sparc32: mm: Disable SPLIT_PTLOCK_CPUS
      sparc32: mm: Only call ctor()/dtor() functions for first and last user

 arch/sparc/include/asm/page_32.h    |  12 ++---
 arch/sparc/include/asm/pgalloc_32.h |  11 +++--
 arch/sparc/include/asm/pgtable_32.h |  40 ++++++++++------
 arch/sparc/include/asm/pgtsrmmu.h   |  36 ++-------------
 arch/sparc/include/asm/viking.h     |   5 +-
 arch/sparc/kernel/cpumap.c          |   2 +-
 arch/sparc/kernel/ds.c              |   8 ++--
 arch/sparc/kernel/head_32.S         |   8 ++--
 arch/sparc/kernel/pci.c             |   2 +-
 arch/sparc/kernel/ptrace_32.c       | 233 ++++++++++++++++++++++++++++++++++++++++++----------------------------------------------------
 arch/sparc/kernel/ptrace_64.c       |  17 ++-----
 arch/sparc/kernel/sys_sparc32.c     |   1 -
 arch/sparc/kernel/vio.c             |   2 +-
 arch/sparc/mm/hypersparc.S          |   3 +-
 arch/sparc/mm/init_32.c             |   1 +
 arch/sparc/mm/init_64.c             |  10 ++--
 arch/sparc/mm/srmmu.c               | 106 +++++++++++++++++--------------------------
 arch/sparc/mm/viking.S              |   5 +-
 drivers/sbus/char/oradax.c          |   8 ++--
 drivers/tty/vcc.c                   |   1 +
 mm/Kconfig                          |   4 ++
 21 files changed, 221 insertions(+), 294 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] Sparc
  2020-06-08  0:16 ` David Miller
  (?)
@ 2020-06-08  0:35 ` pr-tracker-bot
  -1 siblings, 0 replies; 548+ messages in thread
From: pr-tracker-bot @ 2020-06-08  0:35 UTC (permalink / raw)
  To: David Miller; +Cc: torvalds, akpm, sparclinux, linux-kernel

The pull request you sent on Sun, 07 Jun 2020 17:16:18 -0700 (PDT):

> git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-next refs/heads/master

has been merged into torvalds/linux.git:
https://git.kernel.org/torvalds/c/52e0ad262cd76696e8cd8510944b0bfdc0c140a9

Thank you!

-- 
Deet-doot-dot, I am a bot.
https://korg.wiki.kernel.org/userdoc/prtracker

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
  2010-03-29 20:11 ` David Miller
@ 2021-02-23 21:21 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2021-02-23 21:21 UTC (permalink / raw)
  To: torvalds; +Cc: sparclinux, linux-kernel


A host of mall cleanups and adjustments that have accumulated while
I was away, nothing major.

Please pull, thanks a lot!

The following changes since commit dd0d718152e4c65b173070d48ea9dfc06894c3e5:

  Merge tag 'spi-fix-v5.8-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi (2020-06-22 09:49:59 -0700)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git 

for you to fetch changes up to 356184fb6d67770d7788f316226be810a430937b:

  sparc: make xchg() into a statement expression (2021-02-18 16:40:22 -0800)

----------------------------------------------------------------
Al Viro (1):
      sparc32: fix a user-triggerable oops in clear_user()

Alexander A. Klimov (1):
      arch/sparc: Replace HTTP links with HTTPS ones

Andreas Larsson (2):
      sparc32: Limit memblock allocation to low memory
      sparc32: Preserve clone syscall flags argument for restarts due to signals

Ben Hutchings (1):
      sparc32: signal: Fix stack trampoline for RT signals

Christoph Hellwig (1):
      sparc64: switch defconfig from the legacy ide driver to libata

Corentin Labbe (2):
      sparc: piggyback: handle invalid image
      sparc: sparc64_defconfig: add necessary configs for qemu

David S. Miller (1):
      Merge branch 'sparc32-srmmu-improve-type-safety-of-__nocache_fix'

Gustavo A. R. Silva (2):
      sparc64: viohs: Use struct_size() helper
      sparc: Use fallthrough pseudo-keyword

Jing Xiangfeng (1):
      sbus: char: Remove meaningless jump label out_free

Kaixu Xia (1):
      sparc32: Fix comparing pointer to 0 coccicheck warning

Khalid Aziz (1):
      sparc64: Use arch_validate_flags() to validate ADI flag

Matthew Wilcox (Oracle) (1):
      sparc: Fix handling of page table constructor failure

Mike Rapoport (2):
      sparc32: use PUD rather than PGD to get PMD in srmmu_inherit_prom_mappings()
      sparc32: srmmu: improve type safety of __nocache_fix()

Peter Collingbourne (1):
      sparc: remove SA_STATIC_ALLOC macro definition

Qinglang Miao (1):
      sparc: use for_each_child_of_node() macro

Randy Dunlap (4):
      SPARC: backoff.h: delete a duplicated word
      sparc64: only select COMPAT_BINFMT_ELF if BINFMT_ELF is set
      sparc: fix led.c driver when PROC_FS is not enabled
      sparc: make xchg() into a statement expression

Tiezhu Yang (1):
      sparc: Replace test_ti_thread_flag() with test_tsk_thread_flag()

Uwe Kleine-König (3):
      tty: vcc: Drop impossible to hit WARN_ON
      tty: vcc: Drop unnecessary if block
      tty: hvcs: Drop unnecessary if block

 arch/sparc/Kconfig                   |  4 ++--
 arch/sparc/boot/piggyback.c          |  4 ++++
 arch/sparc/configs/sparc64_defconfig | 11 ++++++++---
 arch/sparc/include/asm/backoff.h     |  2 +-
 arch/sparc/include/asm/cmpxchg_32.h  |  2 +-
 arch/sparc/include/asm/mman.h        | 54 +++++++++++++++++++++++++++++-------------------------
 arch/sparc/include/asm/pgtsrmmu.h    |  2 +-
 arch/sparc/include/asm/signal.h      | 12 ------------
 arch/sparc/kernel/auxio_64.c         |  1 -
 arch/sparc/kernel/central.c          |  2 +-
 arch/sparc/kernel/entry.S            |  8 +++-----
 arch/sparc/kernel/kgdb_32.c          |  2 +-
 arch/sparc/kernel/kgdb_64.c          |  2 +-
 arch/sparc/kernel/led.c              |  2 ++
 arch/sparc/kernel/pci.c              |  3 +--
 arch/sparc/kernel/pcr.c              |  2 +-
 arch/sparc/kernel/process_32.c       |  2 +-
 arch/sparc/kernel/prom_32.c          |  2 +-
 arch/sparc/kernel/rtrap_32.S         |  2 +-
 arch/sparc/kernel/signal32.c         |  4 ++--
 arch/sparc/kernel/signal_32.c        |  8 ++++----
 arch/sparc/kernel/signal_64.c        |  4 ++--
 arch/sparc/kernel/viohs.c            |  6 ++----
 arch/sparc/lib/memset.S              |  1 +
 arch/sparc/math-emu/math_32.c        |  8 ++++----
 arch/sparc/mm/init_32.c              |  3 +++
 arch/sparc/mm/init_64.c              |  2 +-
 arch/sparc/mm/srmmu.c                | 20 ++++++++++----------
 drivers/sbus/char/display7seg.c      |  4 +---
 drivers/tty/hvc/hvcs.c               |  3 ---
 drivers/tty/vcc.c                    | 10 ++--------
 31 files changed, 91 insertions(+), 101 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] Sparc
@ 2021-02-23 21:21 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2021-02-23 21:21 UTC (permalink / raw)
  To: torvalds; +Cc: sparclinux, linux-kernel


A host of mall cleanups and adjustments that have accumulated while
I was away, nothing major.

Please pull, thanks a lot!

The following changes since commit dd0d718152e4c65b173070d48ea9dfc06894c3e5:

  Merge tag 'spi-fix-v5.8-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi (2020-06-22 09:49:59 -0700)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git 

for you to fetch changes up to 356184fb6d67770d7788f316226be810a430937b:

  sparc: make xchg() into a statement expression (2021-02-18 16:40:22 -0800)

----------------------------------------------------------------
Al Viro (1):
      sparc32: fix a user-triggerable oops in clear_user()

Alexander A. Klimov (1):
      arch/sparc: Replace HTTP links with HTTPS ones

Andreas Larsson (2):
      sparc32: Limit memblock allocation to low memory
      sparc32: Preserve clone syscall flags argument for restarts due to signals

Ben Hutchings (1):
      sparc32: signal: Fix stack trampoline for RT signals

Christoph Hellwig (1):
      sparc64: switch defconfig from the legacy ide driver to libata

Corentin Labbe (2):
      sparc: piggyback: handle invalid image
      sparc: sparc64_defconfig: add necessary configs for qemu

David S. Miller (1):
      Merge branch 'sparc32-srmmu-improve-type-safety-of-__nocache_fix'

Gustavo A. R. Silva (2):
      sparc64: viohs: Use struct_size() helper
      sparc: Use fallthrough pseudo-keyword

Jing Xiangfeng (1):
      sbus: char: Remove meaningless jump label out_free

Kaixu Xia (1):
      sparc32: Fix comparing pointer to 0 coccicheck warning

Khalid Aziz (1):
      sparc64: Use arch_validate_flags() to validate ADI flag

Matthew Wilcox (Oracle) (1):
      sparc: Fix handling of page table constructor failure

Mike Rapoport (2):
      sparc32: use PUD rather than PGD to get PMD in srmmu_inherit_prom_mappings()
      sparc32: srmmu: improve type safety of __nocache_fix()

Peter Collingbourne (1):
      sparc: remove SA_STATIC_ALLOC macro definition

Qinglang Miao (1):
      sparc: use for_each_child_of_node() macro

Randy Dunlap (4):
      SPARC: backoff.h: delete a duplicated word
      sparc64: only select COMPAT_BINFMT_ELF if BINFMT_ELF is set
      sparc: fix led.c driver when PROC_FS is not enabled
      sparc: make xchg() into a statement expression

Tiezhu Yang (1):
      sparc: Replace test_ti_thread_flag() with test_tsk_thread_flag()

Uwe Kleine-König (3):
      tty: vcc: Drop impossible to hit WARN_ON
      tty: vcc: Drop unnecessary if block
      tty: hvcs: Drop unnecessary if block

 arch/sparc/Kconfig                   |  4 ++--
 arch/sparc/boot/piggyback.c          |  4 ++++
 arch/sparc/configs/sparc64_defconfig | 11 ++++++++---
 arch/sparc/include/asm/backoff.h     |  2 +-
 arch/sparc/include/asm/cmpxchg_32.h  |  2 +-
 arch/sparc/include/asm/mman.h        | 54 +++++++++++++++++++++++++++++-------------------------
 arch/sparc/include/asm/pgtsrmmu.h    |  2 +-
 arch/sparc/include/asm/signal.h      | 12 ------------
 arch/sparc/kernel/auxio_64.c         |  1 -
 arch/sparc/kernel/central.c          |  2 +-
 arch/sparc/kernel/entry.S            |  8 +++-----
 arch/sparc/kernel/kgdb_32.c          |  2 +-
 arch/sparc/kernel/kgdb_64.c          |  2 +-
 arch/sparc/kernel/led.c              |  2 ++
 arch/sparc/kernel/pci.c              |  3 +--
 arch/sparc/kernel/pcr.c              |  2 +-
 arch/sparc/kernel/process_32.c       |  2 +-
 arch/sparc/kernel/prom_32.c          |  2 +-
 arch/sparc/kernel/rtrap_32.S         |  2 +-
 arch/sparc/kernel/signal32.c         |  4 ++--
 arch/sparc/kernel/signal_32.c        |  8 ++++----
 arch/sparc/kernel/signal_64.c        |  4 ++--
 arch/sparc/kernel/viohs.c            |  6 ++----
 arch/sparc/lib/memset.S              |  1 +
 arch/sparc/math-emu/math_32.c        |  8 ++++----
 arch/sparc/mm/init_32.c              |  3 +++
 arch/sparc/mm/init_64.c              |  2 +-
 arch/sparc/mm/srmmu.c                | 20 ++++++++++----------
 drivers/sbus/char/display7seg.c      |  4 +---
 drivers/tty/hvc/hvcs.c               |  3 ---
 drivers/tty/vcc.c                    | 10 ++--------
 31 files changed, 91 insertions(+), 101 deletions(-)

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] Sparc
  2021-02-23 21:21 ` David Miller
  (?)
@ 2021-02-23 23:36 ` pr-tracker-bot
  -1 siblings, 0 replies; 548+ messages in thread
From: pr-tracker-bot @ 2021-02-23 23:36 UTC (permalink / raw)
  To: David Miller; +Cc: torvalds, sparclinux, linux-kernel

The pull request you sent on Tue, 23 Feb 2021 13:21:26 -0800 (PST):

> git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git refs/heads/master

has been merged into torvalds/linux.git:
https://git.kernel.org/torvalds/c/6dd580b93da8de5cab4ac1f24f343086318b664e

Thank you!

-- 
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/prtracker.html

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] SPARC
  2010-03-29 20:11 ` David Miller
@ 2021-03-08 23:46 ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2021-03-08 23:46 UTC (permalink / raw)
  To: torvalds; +Cc: sparclinux, linux-kernel


Just some more random bits from Al,  including a conversion over to generic exytables.

Please pull, thanks a lot!

The following changes since commit 062c84fccc4444805738d76a2699c4d3c95184ec:

  Merge tag 'rproc-v5.12' of git://git.kernel.org/pub/scm/linux/kernel/git/andersson/remoteproc (2021-02-24 11:30:13 -0800)

are available in the Git repository at:

  git://git.kernel.org:/pub/scm/linux/kernel/git/davem/sparc.git 

for you to fetch changes up to cf64c2a905e0dabcc473ca70baf275fb3a61fac4:

  Merge branch 'work.sparc32' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs (2021-02-26 16:16:24 -0800)

----------------------------------------------------------------
Al Viro (10):
      sparc32: don't bother with lookup_fault() in __bzero()
      sparc32: kill lookup_fault()
      sparc32: switch __bzero() away from range exception table entries
      sparc32: get rid of range exception table entries in checksum_32.S
      sparc32: switch copy_user.S away from range exception table entries
      sparc32: switch to generic extables
      Merge remote-tracking branch 'sparc/master' into work.sparc32
      sparc64: get rid of fake_swapper_regs
      sparc32: get rid of fake_swapper_regs
      sparc32: take ->thread.flags out

David S. Miller (2):
      Merge branch 'work.sparc' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
      Merge branch 'work.sparc32' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs

 arch/sparc/include/asm/elf_64.h                    |   1 -
 arch/sparc/include/asm/{extable_64.h => extable.h} |   4 +-
 arch/sparc/include/asm/processor_32.h              |   6 +-
 arch/sparc/include/asm/thread_info_64.h            |   1 +
 arch/sparc/include/asm/uaccess.h                   |   3 +
 arch/sparc/include/asm/uaccess_32.h                |  38 ----------
 arch/sparc/include/asm/uaccess_64.h                |   1 -
 arch/sparc/kernel/head_32.S                        |   2 +-
 arch/sparc/kernel/head_64.S                        |   2 +-
 arch/sparc/kernel/process_32.c                     |  12 ----
 arch/sparc/kernel/setup_32.c                       |   3 -
 arch/sparc/kernel/setup_64.c                       |   4 --
 arch/sparc/kernel/unaligned_32.c                   | 106 ++-------------------------
 arch/sparc/lib/checksum_32.S                       |  64 +++++++----------
 arch/sparc/lib/copy_user.S                         | 315 +++++++++++++++++++++++++++++----------------------------------------------------
 arch/sparc/lib/memset.S                            |  87 +++++++++--------------
 arch/sparc/mm/Makefile                             |   2 +-
 arch/sparc/mm/extable.c                            | 107 ----------------------------
 arch/sparc/mm/fault_32.c                           |  80 +++------------------
 arch/sparc/mm/mm_32.h                              |   2 -
 lib/extable.c                                      |   5 --
 21 files changed, 198 insertions(+), 647 deletions(-)
 rename arch/sparc/include/asm/{extable_64.h => extable.h} (92%)
 delete mode 100644 arch/sparc/mm/extable.c

^ permalink raw reply	[flat|nested] 548+ messages in thread

* [GIT] SPARC
@ 2021-03-08 23:46 ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2021-03-08 23:46 UTC (permalink / raw)
  To: torvalds; +Cc: sparclinux, linux-kernel


Just some more random bits from Al,  including a conversion over to generic exytables.

Please pull, thanks a lot!

The following changes since commit 062c84fccc4444805738d76a2699c4d3c95184ec:

  Merge tag 'rproc-v5.12' of git://git.kernel.org/pub/scm/linux/kernel/git/andersson/remoteproc (2021-02-24 11:30:13 -0800)

are available in the Git repository at:

  git://git.kernel.org:/pub/scm/linux/kernel/git/davem/sparc.git 

for you to fetch changes up to cf64c2a905e0dabcc473ca70baf275fb3a61fac4:

  Merge branch 'work.sparc32' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs (2021-02-26 16:16:24 -0800)

----------------------------------------------------------------
Al Viro (10):
      sparc32: don't bother with lookup_fault() in __bzero()
      sparc32: kill lookup_fault()
      sparc32: switch __bzero() away from range exception table entries
      sparc32: get rid of range exception table entries in checksum_32.S
      sparc32: switch copy_user.S away from range exception table entries
      sparc32: switch to generic extables
      Merge remote-tracking branch 'sparc/master' into work.sparc32
      sparc64: get rid of fake_swapper_regs
      sparc32: get rid of fake_swapper_regs
      sparc32: take ->thread.flags out

David S. Miller (2):
      Merge branch 'work.sparc' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
      Merge branch 'work.sparc32' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs

 arch/sparc/include/asm/elf_64.h                    |   1 -
 arch/sparc/include/asm/{extable_64.h => extable.h} |   4 +-
 arch/sparc/include/asm/processor_32.h              |   6 +-
 arch/sparc/include/asm/thread_info_64.h            |   1 +
 arch/sparc/include/asm/uaccess.h                   |   3 +
 arch/sparc/include/asm/uaccess_32.h                |  38 ----------
 arch/sparc/include/asm/uaccess_64.h                |   1 -
 arch/sparc/kernel/head_32.S                        |   2 +-
 arch/sparc/kernel/head_64.S                        |   2 +-
 arch/sparc/kernel/process_32.c                     |  12 ----
 arch/sparc/kernel/setup_32.c                       |   3 -
 arch/sparc/kernel/setup_64.c                       |   4 --
 arch/sparc/kernel/unaligned_32.c                   | 106 ++-------------------------
 arch/sparc/lib/checksum_32.S                       |  64 +++++++----------
 arch/sparc/lib/copy_user.S                         | 315 +++++++++++++++++++++++++++++----------------------------------------------------
 arch/sparc/lib/memset.S                            |  87 +++++++++--------------
 arch/sparc/mm/Makefile                             |   2 +-
 arch/sparc/mm/extable.c                            | 107 ----------------------------
 arch/sparc/mm/fault_32.c                           |  80 +++------------------
 arch/sparc/mm/mm_32.h                              |   2 -
 lib/extable.c                                      |   5 --
 21 files changed, 198 insertions(+), 647 deletions(-)
 rename arch/sparc/include/asm/{extable_64.h => extable.h} (92%)
 delete mode 100644 arch/sparc/mm/extable.c

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] SPARC
  2021-03-08 23:46 ` David Miller
@ 2021-03-09  0:19   ` John Paul Adrian Glaubitz
  -1 siblings, 0 replies; 548+ messages in thread
From: John Paul Adrian Glaubitz @ 2021-03-09  0:19 UTC (permalink / raw)
  To: David Miller, torvalds; +Cc: sparclinux, linux-kernel

Hi Dave!

On 3/9/21 12:46 AM, David Miller wrote:
> Just some more random bits from Al,  including a conversion over to generic exytables.

Is there a chance we could include this important fix by Rob Gardner for 5.12 as well?

> https://marc.info/?l=linux-sparc&m=161457847223456&w=2

It fixes a hard kernel crash under certain loads which we have seen in Debian quite frequently.

Thanks,
Adrian

-- 
 .''`.  John Paul Adrian Glaubitz
: :' :  Debian Developer - glaubitz@debian.org
`. `'   Freie Universitaet Berlin - glaubitz@physik.fu-berlin.de
  `-    GPG: 62FF 8A75 84E0 2956 9546  0006 7426 3B37 F5B5 F913


^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] SPARC
@ 2021-03-09  0:19   ` John Paul Adrian Glaubitz
  0 siblings, 0 replies; 548+ messages in thread
From: John Paul Adrian Glaubitz @ 2021-03-09  0:19 UTC (permalink / raw)
  To: David Miller, torvalds; +Cc: sparclinux, linux-kernel

Hi Dave!

On 3/9/21 12:46 AM, David Miller wrote:
> Just some more random bits from Al,  including a conversion over to generic exytables.

Is there a chance we could include this important fix by Rob Gardner for 5.12 as well?

> https://marc.info/?l=linux-sparc&m\x161457847223456&w=2

It fixes a hard kernel crash under certain loads which we have seen in Debian quite frequently.

Thanks,
Adrian

-- 
 .''`.  John Paul Adrian Glaubitz
: :' :  Debian Developer - glaubitz@debian.org
`. `'   Freie Universitaet Berlin - glaubitz@physik.fu-berlin.de
  `-    GPG: 62FF 8A75 84E0 2956 9546  0006 7426 3B37 F5B5 F913

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] SPARC
  2021-03-09  0:19   ` John Paul Adrian Glaubitz
@ 2021-03-09 19:08     ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2021-03-09 19:08 UTC (permalink / raw)
  To: glaubitz; +Cc: torvalds, sparclinux, linux-kernel

From: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
Date: Tue, 9 Mar 2021 01:19:05 +0100

> Hi Dave!
> 
> On 3/9/21 12:46 AM, David Miller wrote:
>> Just some more random bits from Al,  including a conversion over to generic exytables.
> 
> Is there a chance we could include this important fix by Rob Gardner for 5.12 as well?
> 
>> https://marc.info/?l=linux-sparc&m=161457847223456&w=2
> 
> It fixes a hard kernel crash under certain loads which we have seen in Debian quite frequently.

I'll ake sure that gets into my next pull req, thanks.

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] SPARC
@ 2021-03-09 19:08     ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2021-03-09 19:08 UTC (permalink / raw)
  To: glaubitz; +Cc: torvalds, sparclinux, linux-kernel

From: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
Date: Tue, 9 Mar 2021 01:19:05 +0100

> Hi Dave!
> 
> On 3/9/21 12:46 AM, David Miller wrote:
>> Just some more random bits from Al,  including a conversion over to generic exytables.
> 
> Is there a chance we could include this important fix by Rob Gardner for 5.12 as well?
> 
>> https://marc.info/?l=linux-sparc&m\x161457847223456&w=2
> 
> It fixes a hard kernel crash under certain loads which we have seen in Debian quite frequently.

I'll ake sure that gets into my next pull req, thanks.

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] SPARC
  2021-03-09 19:08     ` David Miller
@ 2021-03-09 19:27       ` Linus Torvalds
  -1 siblings, 0 replies; 548+ messages in thread
From: Linus Torvalds @ 2021-03-09 19:27 UTC (permalink / raw)
  To: David Miller
  Cc: John Paul Adrian Glaubitz, linux-sparc, Linux Kernel Mailing List

On Tue, Mar 9, 2021 at 11:08 AM David Miller <davem@davemloft.net> wrote:
>
> I'll make sure that gets into my next pull req, thanks.

Note that it's obviously always easiest for me to just ignore
something like sparc entirely, but on the other hand, particularly for
low-volume trees it's also ok to just say "I don't have anything
pending, here's the link to lore.kernel.org, can you apply that one
patch directly".

(And yes, I prefer lore.kernel.org over marc, although for single
patches it doesn't make much of a difference. For patch series, I find
'b4' so convenient that I definitely want the patch to show up on
lore.kernel.org).

I'll await your pull request or 'I have nothing else, take it from
xyz', this thread is otherwise archived for me as "done".

              Linus

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] SPARC
@ 2021-03-09 19:27       ` Linus Torvalds
  0 siblings, 0 replies; 548+ messages in thread
From: Linus Torvalds @ 2021-03-09 19:27 UTC (permalink / raw)
  To: David Miller
  Cc: John Paul Adrian Glaubitz, linux-sparc, Linux Kernel Mailing List

On Tue, Mar 9, 2021 at 11:08 AM David Miller <davem@davemloft.net> wrote:
>
> I'll make sure that gets into my next pull req, thanks.

Note that it's obviously always easiest for me to just ignore
something like sparc entirely, but on the other hand, particularly for
low-volume trees it's also ok to just say "I don't have anything
pending, here's the link to lore.kernel.org, can you apply that one
patch directly".

(And yes, I prefer lore.kernel.org over marc, although for single
patches it doesn't make much of a difference. For patch series, I find
'b4' so convenient that I definitely want the patch to show up on
lore.kernel.org).

I'll await your pull request or 'I have nothing else, take it from
xyz', this thread is otherwise archived for me as "done".

              Linus

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] SPARC
  2021-03-09 19:27       ` Linus Torvalds
@ 2021-03-10  0:24         ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2021-03-10  0:24 UTC (permalink / raw)
  To: torvalds; +Cc: glaubitz, sparclinux, linux-kernel

From: Linus Torvalds <torvalds@linux-foundation.org>
Date: Tue, 9 Mar 2021 11:27:41 -0800

> On Tue, Mar 9, 2021 at 11:08 AM David Miller <davem@davemloft.net> wrote:
> 
> (And yes, I prefer lore.kernel.org over marc, although for single
> patches it doesn't make much of a difference. For patch series, I find
> 'b4' so convenient that I definitely want the patch to show up on
> lore.kernel.org).

Sadly, lore does not archive sparclinux@vger.kernel.org, so there
isn't much choice in this case.
> 
> I'll await your pull request or 'I have nothing else, take it from
> xyz', this thread is otherwise archived for me as "done".

I added Rob's fix to the tree, here is a new pull request, thanks!

The following changes since commit 062c84fccc4444805738d76a2699c4d3c95184ec:

  Merge tag 'rproc-v5.12' of git://git.kernel.org/pub/scm/linux/kernel/git/andersson/remoteproc (2021-02-24 11:30:13 -0800)

are available in the Git repository at:

  git://git.kernel.org:/pub/scm/linux/kernel/git/davem/sparc.git 

for you to fetch changes up to 69264b4a43aff7307283e2bae29e9305ab6b7d47:

  sparc: sparc64_defconfig: remove duplicate CONFIGs (2021-03-09 16:22:40 -0800)

----------------------------------------------------------------
Al Viro (10):
      sparc32: don't bother with lookup_fault() in __bzero()
      sparc32: kill lookup_fault()
      sparc32: switch __bzero() away from range exception table entries
      sparc32: get rid of range exception table entries in checksum_32.S
      sparc32: switch copy_user.S away from range exception table entries
      sparc32: switch to generic extables
      Merge remote-tracking branch 'sparc/master' into work.sparc32
      sparc64: get rid of fake_swapper_regs
      sparc32: get rid of fake_swapper_regs
      sparc32: take ->thread.flags out

Corentin Labbe (1):
      sparc: sparc64_defconfig: remove duplicate CONFIGs

David S. Miller (2):
      Merge branch 'work.sparc' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
      Merge branch 'work.sparc32' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs

Rob Gardner (1):
      sparc64: Fix opcode filtering in handling of no fault loads

 arch/sparc/configs/sparc64_defconfig               |   4 +-
 arch/sparc/include/asm/elf_64.h                    |   1 -
 arch/sparc/include/asm/{extable_64.h => extable.h} |   4 +-
 arch/sparc/include/asm/processor_32.h              |   6 +-
 arch/sparc/include/asm/thread_info_64.h            |   1 +
 arch/sparc/include/asm/uaccess.h                   |   3 +
 arch/sparc/include/asm/uaccess_32.h                |  38 ----------
 arch/sparc/include/asm/uaccess_64.h                |   1 -
 arch/sparc/kernel/head_32.S                        |   2 +-
 arch/sparc/kernel/head_64.S                        |   2 +-
 arch/sparc/kernel/process_32.c                     |  12 ----
 arch/sparc/kernel/setup_32.c                       |   3 -
 arch/sparc/kernel/setup_64.c                       |   4 --
 arch/sparc/kernel/traps_64.c                       |  13 ++--
 arch/sparc/kernel/unaligned_32.c                   | 106 ++-------------------------
 arch/sparc/lib/checksum_32.S                       |  64 +++++++----------
 arch/sparc/lib/copy_user.S                         | 315 +++++++++++++++++++++++++++++----------------------------------------------------
 arch/sparc/lib/memset.S                            |  87 +++++++++--------------
 arch/sparc/mm/Makefile                             |   2 +-
 arch/sparc/mm/extable.c                            | 107 ----------------------------
 arch/sparc/mm/fault_32.c                           |  80 +++------------------
 arch/sparc/mm/mm_32.h                              |   2 -
 lib/extable.c                                      |   5 --
 23 files changed, 205 insertions(+), 657 deletions(-)
 rename arch/sparc/include/asm/{extable_64.h => extable.h} (92%)
 delete mode 100644 arch/sparc/mm/extable.c

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] SPARC
@ 2021-03-10  0:24         ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2021-03-10  0:24 UTC (permalink / raw)
  To: torvalds; +Cc: glaubitz, sparclinux, linux-kernel

From: Linus Torvalds <torvalds@linux-foundation.org>
Date: Tue, 9 Mar 2021 11:27:41 -0800

> On Tue, Mar 9, 2021 at 11:08 AM David Miller <davem@davemloft.net> wrote:
> 
> (And yes, I prefer lore.kernel.org over marc, although for single
> patches it doesn't make much of a difference. For patch series, I find
> 'b4' so convenient that I definitely want the patch to show up on
> lore.kernel.org).

Sadly, lore does not archive sparclinux@vger.kernel.org, so there
isn't much choice in this case.
> 
> I'll await your pull request or 'I have nothing else, take it from
> xyz', this thread is otherwise archived for me as "done".

I added Rob's fix to the tree, here is a new pull request, thanks!

The following changes since commit 062c84fccc4444805738d76a2699c4d3c95184ec:

  Merge tag 'rproc-v5.12' of git://git.kernel.org/pub/scm/linux/kernel/git/andersson/remoteproc (2021-02-24 11:30:13 -0800)

are available in the Git repository at:

  git://git.kernel.org:/pub/scm/linux/kernel/git/davem/sparc.git 

for you to fetch changes up to 69264b4a43aff7307283e2bae29e9305ab6b7d47:

  sparc: sparc64_defconfig: remove duplicate CONFIGs (2021-03-09 16:22:40 -0800)

----------------------------------------------------------------
Al Viro (10):
      sparc32: don't bother with lookup_fault() in __bzero()
      sparc32: kill lookup_fault()
      sparc32: switch __bzero() away from range exception table entries
      sparc32: get rid of range exception table entries in checksum_32.S
      sparc32: switch copy_user.S away from range exception table entries
      sparc32: switch to generic extables
      Merge remote-tracking branch 'sparc/master' into work.sparc32
      sparc64: get rid of fake_swapper_regs
      sparc32: get rid of fake_swapper_regs
      sparc32: take ->thread.flags out

Corentin Labbe (1):
      sparc: sparc64_defconfig: remove duplicate CONFIGs

David S. Miller (2):
      Merge branch 'work.sparc' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
      Merge branch 'work.sparc32' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs

Rob Gardner (1):
      sparc64: Fix opcode filtering in handling of no fault loads

 arch/sparc/configs/sparc64_defconfig               |   4 +-
 arch/sparc/include/asm/elf_64.h                    |   1 -
 arch/sparc/include/asm/{extable_64.h => extable.h} |   4 +-
 arch/sparc/include/asm/processor_32.h              |   6 +-
 arch/sparc/include/asm/thread_info_64.h            |   1 +
 arch/sparc/include/asm/uaccess.h                   |   3 +
 arch/sparc/include/asm/uaccess_32.h                |  38 ----------
 arch/sparc/include/asm/uaccess_64.h                |   1 -
 arch/sparc/kernel/head_32.S                        |   2 +-
 arch/sparc/kernel/head_64.S                        |   2 +-
 arch/sparc/kernel/process_32.c                     |  12 ----
 arch/sparc/kernel/setup_32.c                       |   3 -
 arch/sparc/kernel/setup_64.c                       |   4 --
 arch/sparc/kernel/traps_64.c                       |  13 ++--
 arch/sparc/kernel/unaligned_32.c                   | 106 ++-------------------------
 arch/sparc/lib/checksum_32.S                       |  64 +++++++----------
 arch/sparc/lib/copy_user.S                         | 315 +++++++++++++++++++++++++++++----------------------------------------------------
 arch/sparc/lib/memset.S                            |  87 +++++++++--------------
 arch/sparc/mm/Makefile                             |   2 +-
 arch/sparc/mm/extable.c                            | 107 ----------------------------
 arch/sparc/mm/fault_32.c                           |  80 +++------------------
 arch/sparc/mm/mm_32.h                              |   2 -
 lib/extable.c                                      |   5 --
 23 files changed, 205 insertions(+), 657 deletions(-)
 rename arch/sparc/include/asm/{extable_64.h => extable.h} (92%)
 delete mode 100644 arch/sparc/mm/extable.c

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] SPARC
  2021-03-10  0:24         ` David Miller
@ 2021-03-10  1:15           ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2021-03-10  1:15 UTC (permalink / raw)
  To: torvalds; +Cc: glaubitz, sparclinux, linux-kernel

From: David Miller <davem@davemloft.net>
Date: Tue, 09 Mar 2021 16:24:54 -0800 (PST)

> From: Linus Torvalds <torvalds@linux-foundation.org>
> Date: Tue, 9 Mar 2021 11:27:41 -0800
> 
>> On Tue, Mar 9, 2021 at 11:08 AM David Miller <davem@davemloft.net> wrote:
>> 
>> (And yes, I prefer lore.kernel.org over marc, although for single
>> patches it doesn't make much of a difference. For patch series, I find
>> 'b4' so convenient that I definitely want the patch to show up on
>> lore.kernel.org).
> 
> Sadly, lore does not archive sparclinux@vger.kernel.org, so there
> isn't much choice in this case.
>> 
>> I'll await your pull request or 'I have nothing else, take it from
>> xyz', this thread is otherwise archived for me as "done".
> 
> I added Rob's fix to the tree, here is a new pull request, thanks!
> 
> The following changes since commit 062c84fccc4444805738d76a2699c4d3c95184ec:
> 
>   Merge tag 'rproc-v5.12' of git://git.kernel.org/pub/scm/linux/kernel/git/andersson/remoteproc (2021-02-24 11:30:13 -0800)
> 
> are available in the Git repository at:
> 
>   git://git.kernel.org:/pub/scm/linux/kernel/git/davem/sparc.git 
> 

Somehow you pull didn't get commits:

commit 69264b4a43aff7307283e2bae29e9305ab6b7d47 (HEAD -> master, origin/master, origin/HEAD)
Author: Corentin Labbe <clabbe@baylibre.com>
Date:   Mon Mar 8 09:51:26 2021 +0000

    sparc: sparc64_defconfig: remove duplicate CONFIGs
    
    After my patch there is CONFIG_ATA defined twice.
    Remove the duplicate one.
    Same problem for CONFIG_HAPPYMEAL, except I added as builtin for boot
    test with NFS.
    
    Reported-by: Stephen Rothwell <sfr@canb.auug.org.au>
    Fixes: a57cdeb369ef ("sparc: sparc64_defconfig: add necessary configs for qemu")
    Signed-off-by: Corentin Labbe <clabbe@baylibre.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit e5e8b80d352ec999d2bba3ea584f541c83f4ca3f
Author: Rob Gardner <rob.gardner@oracle.com>
Date:   Sun Feb 28 22:48:16 2021 -0700

    sparc64: Fix opcode filtering in handling of no fault loads
    
    is_no_fault_exception() has two bugs which were discovered via random
    opcode testing with stress-ng. Both are caused by improper filtering
    of opcodes.
    
    The first bug can be triggered by a floating point store with a no-fault
    ASI, for instance "sta %f0, [%g0] #ASI_PNF", opcode C1A01040.
    
    The code first tests op3[5] (0x1000000), which denotes a floating
    point instruction, and then tests op3[2] (0x200000), which denotes a
    store instruction. But these bits are not mutually exclusive, and the
    above mentioned opcode has both bits set. The intent is to filter out
    stores, so the test for stores must be done first in order to have
    any effect.
    
    The second bug can be triggered by a floating point load with one of
    the invalid ASI values 0x8e or 0x8f, which pass this check in
    is_no_fault_exception():
         if ((asi & 0xf2) == ASI_PNF)
    
    An example instruction is "ldqa [%l7 + %o7] #ASI 0x8f, %f38",
    opcode CF95D1EF. Asi values greater than 0x8b (ASI_SNFL) are fatal
    in handle_ldf_stq(), and is_no_fault_exception() must not allow these
    invalid asi values to make it that far.
    
    In both of these cases, handle_ldf_stq() reacts by calling
    sun4v_data_access_exception() or spitfire_data_access_exception(),
    which call is_no_fault_exception() and results in an infinite
    recursion.
    
    Signed-off-by: Rob Gardner <rob.gardner@oracle.com>
    Tested-by: Anatoly Pugachev <matorola@gmail.com>

Can you repull to get them, thanks.


^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] SPARC
@ 2021-03-10  1:15           ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2021-03-10  1:15 UTC (permalink / raw)
  To: torvalds; +Cc: glaubitz, sparclinux, linux-kernel

From: David Miller <davem@davemloft.net>
Date: Tue, 09 Mar 2021 16:24:54 -0800 (PST)

> From: Linus Torvalds <torvalds@linux-foundation.org>
> Date: Tue, 9 Mar 2021 11:27:41 -0800
> 
>> On Tue, Mar 9, 2021 at 11:08 AM David Miller <davem@davemloft.net> wrote:
>> 
>> (And yes, I prefer lore.kernel.org over marc, although for single
>> patches it doesn't make much of a difference. For patch series, I find
>> 'b4' so convenient that I definitely want the patch to show up on
>> lore.kernel.org).
> 
> Sadly, lore does not archive sparclinux@vger.kernel.org, so there
> isn't much choice in this case.
>> 
>> I'll await your pull request or 'I have nothing else, take it from
>> xyz', this thread is otherwise archived for me as "done".
> 
> I added Rob's fix to the tree, here is a new pull request, thanks!
> 
> The following changes since commit 062c84fccc4444805738d76a2699c4d3c95184ec:
> 
>   Merge tag 'rproc-v5.12' of git://git.kernel.org/pub/scm/linux/kernel/git/andersson/remoteproc (2021-02-24 11:30:13 -0800)
> 
> are available in the Git repository at:
> 
>   git://git.kernel.org:/pub/scm/linux/kernel/git/davem/sparc.git 
> 

Somehow you pull didn't get commits:

commit 69264b4a43aff7307283e2bae29e9305ab6b7d47 (HEAD -> master, origin/master, origin/HEAD)
Author: Corentin Labbe <clabbe@baylibre.com>
Date:   Mon Mar 8 09:51:26 2021 +0000

    sparc: sparc64_defconfig: remove duplicate CONFIGs
    
    After my patch there is CONFIG_ATA defined twice.
    Remove the duplicate one.
    Same problem for CONFIG_HAPPYMEAL, except I added as builtin for boot
    test with NFS.
    
    Reported-by: Stephen Rothwell <sfr@canb.auug.org.au>
    Fixes: a57cdeb369ef ("sparc: sparc64_defconfig: add necessary configs for qemu")
    Signed-off-by: Corentin Labbe <clabbe@baylibre.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit e5e8b80d352ec999d2bba3ea584f541c83f4ca3f
Author: Rob Gardner <rob.gardner@oracle.com>
Date:   Sun Feb 28 22:48:16 2021 -0700

    sparc64: Fix opcode filtering in handling of no fault loads
    
    is_no_fault_exception() has two bugs which were discovered via random
    opcode testing with stress-ng. Both are caused by improper filtering
    of opcodes.
    
    The first bug can be triggered by a floating point store with a no-fault
    ASI, for instance "sta %f0, [%g0] #ASI_PNF", opcode C1A01040.
    
    The code first tests op3[5] (0x1000000), which denotes a floating
    point instruction, and then tests op3[2] (0x200000), which denotes a
    store instruction. But these bits are not mutually exclusive, and the
    above mentioned opcode has both bits set. The intent is to filter out
    stores, so the test for stores must be done first in order to have
    any effect.
    
    The second bug can be triggered by a floating point load with one of
    the invalid ASI values 0x8e or 0x8f, which pass this check in
    is_no_fault_exception():
         if ((asi & 0xf2) = ASI_PNF)
    
    An example instruction is "ldqa [%l7 + %o7] #ASI 0x8f, %f38",
    opcode CF95D1EF. Asi values greater than 0x8b (ASI_SNFL) are fatal
    in handle_ldf_stq(), and is_no_fault_exception() must not allow these
    invalid asi values to make it that far.
    
    In both of these cases, handle_ldf_stq() reacts by calling
    sun4v_data_access_exception() or spitfire_data_access_exception(),
    which call is_no_fault_exception() and results in an infinite
    recursion.
    
    Signed-off-by: Rob Gardner <rob.gardner@oracle.com>
    Tested-by: Anatoly Pugachev <matorola@gmail.com>

Can you repull to get them, thanks.

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] SPARC
  2021-03-10  1:15           ` David Miller
@ 2021-03-10  1:17             ` Linus Torvalds
  -1 siblings, 0 replies; 548+ messages in thread
From: Linus Torvalds @ 2021-03-10  1:17 UTC (permalink / raw)
  To: David Miller
  Cc: John Paul Adrian Glaubitz, linux-sparc, Linux Kernel Mailing List

On Tue, Mar 9, 2021 at 5:15 PM David Miller <davem@davemloft.net> wrote:
>
> Somehow you pull didn't get commits:

Look closer at the pull date. That was before you had updated your branch.

I did a second pull just moments ago, I'll push it out (along with the
networking one), after all my tests have passed.

            Linus

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] SPARC
@ 2021-03-10  1:17             ` Linus Torvalds
  0 siblings, 0 replies; 548+ messages in thread
From: Linus Torvalds @ 2021-03-10  1:17 UTC (permalink / raw)
  To: David Miller
  Cc: John Paul Adrian Glaubitz, linux-sparc, Linux Kernel Mailing List

On Tue, Mar 9, 2021 at 5:15 PM David Miller <davem@davemloft.net> wrote:
>
> Somehow you pull didn't get commits:

Look closer at the pull date. That was before you had updated your branch.

I did a second pull just moments ago, I'll push it out (along with the
networking one), after all my tests have passed.

            Linus

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] SPARC
  2021-03-10  1:17             ` Linus Torvalds
@ 2021-03-10  1:18               ` David Miller
  -1 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2021-03-10  1:18 UTC (permalink / raw)
  To: torvalds; +Cc: glaubitz, sparclinux, linux-kernel

From: Linus Torvalds <torvalds@linux-foundation.org>
Date: Tue, 9 Mar 2021 17:17:24 -0800

> On Tue, Mar 9, 2021 at 5:15 PM David Miller <davem@davemloft.net> wrote:
>>
>> Somehow you pull didn't get commits:
> 
> Look closer at the pull date. That was before you had updated your branch.
> 
> I did a second pull just moments ago, I'll push it out (along with the
> networking one), after all my tests have passed.

Thank you.

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] SPARC
@ 2021-03-10  1:18               ` David Miller
  0 siblings, 0 replies; 548+ messages in thread
From: David Miller @ 2021-03-10  1:18 UTC (permalink / raw)
  To: torvalds; +Cc: glaubitz, sparclinux, linux-kernel

From: Linus Torvalds <torvalds@linux-foundation.org>
Date: Tue, 9 Mar 2021 17:17:24 -0800

> On Tue, Mar 9, 2021 at 5:15 PM David Miller <davem@davemloft.net> wrote:
>>
>> Somehow you pull didn't get commits:
> 
> Look closer at the pull date. That was before you had updated your branch.
> 
> I did a second pull just moments ago, I'll push it out (along with the
> networking one), after all my tests have passed.

Thank you.

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] SPARC
  2021-03-10  0:24         ` David Miller
@ 2021-03-10 10:40           ` Geert Uytterhoeven
  -1 siblings, 0 replies; 548+ messages in thread
From: Geert Uytterhoeven @ 2021-03-10 10:40 UTC (permalink / raw)
  To: David Miller
  Cc: torvalds, John Paul Adrian Glaubitz, sparclinux,
	Linux Kernel Mailing List, Konstantin Ryabitsev

Hi David,

Good to see you're back!

On Wed, Mar 10, 2021 at 1:27 AM David Miller <davem@davemloft.net> wrote:
> From: Linus Torvalds <torvalds@linux-foundation.org>
> Date: Tue, 9 Mar 2021 11:27:41 -0800
> > On Tue, Mar 9, 2021 at 11:08 AM David Miller <davem@davemloft.net> wrote:
> > (And yes, I prefer lore.kernel.org over marc, although for single
> > patches it doesn't make much of a difference. For patch series, I find
> > 'b4' so convenient that I definitely want the patch to show up on
> > lore.kernel.org).
>
> Sadly, lore does not archive sparclinux@vger.kernel.org, so there
> isn't much choice in this case.

Which is only an "ask Konstantin" (CCed) away, isn't it?

Gr{oetje,eeting}s,

                        Geert

-- 
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] SPARC
@ 2021-03-10 10:40           ` Geert Uytterhoeven
  0 siblings, 0 replies; 548+ messages in thread
From: Geert Uytterhoeven @ 2021-03-10 10:40 UTC (permalink / raw)
  To: David Miller
  Cc: torvalds, John Paul Adrian Glaubitz, sparclinux,
	Linux Kernel Mailing List, Konstantin Ryabitsev

Hi David,

Good to see you're back!

On Wed, Mar 10, 2021 at 1:27 AM David Miller <davem@davemloft.net> wrote:
> From: Linus Torvalds <torvalds@linux-foundation.org>
> Date: Tue, 9 Mar 2021 11:27:41 -0800
> > On Tue, Mar 9, 2021 at 11:08 AM David Miller <davem@davemloft.net> wrote:
> > (And yes, I prefer lore.kernel.org over marc, although for single
> > patches it doesn't make much of a difference. For patch series, I find
> > 'b4' so convenient that I definitely want the patch to show up on
> > lore.kernel.org).
>
> Sadly, lore does not archive sparclinux@vger.kernel.org, so there
> isn't much choice in this case.

Which is only an "ask Konstantin" (CCed) away, isn't it?

Gr{oetje,eeting}s,

                        Geert

-- 
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] SPARC
  2021-03-10 10:40           ` Geert Uytterhoeven
@ 2021-03-10 13:14             ` Konstantin Ryabitsev
  -1 siblings, 0 replies; 548+ messages in thread
From: Konstantin Ryabitsev @ 2021-03-10 13:14 UTC (permalink / raw)
  To: Geert Uytterhoeven
  Cc: David Miller, torvalds, John Paul Adrian Glaubitz, sparclinux,
	Linux Kernel Mailing List

On Wed, Mar 10, 2021 at 11:40:47AM +0100, Geert Uytterhoeven wrote:
> > > (And yes, I prefer lore.kernel.org over marc, although for single
> > > patches it doesn't make much of a difference. For patch series, I find
> > > 'b4' so convenient that I definitely want the patch to show up on
> > > lore.kernel.org).
> >
> > Sadly, lore does not archive sparclinux@vger.kernel.org, so there
> > isn't much choice in this case.
> 
> Which is only an "ask Konstantin" (CCed) away, isn't it?

I'm in the process of creating the remainder of vger archives on lore, so it
would have happened anyway, but I'll bump sparclinux up in the queue.

Best,
-K

^ permalink raw reply	[flat|nested] 548+ messages in thread

* Re: [GIT] SPARC
@ 2021-03-10 13:14             ` Konstantin Ryabitsev
  0 siblings, 0 replies; 548+ messages in thread
From: Konstantin Ryabitsev @ 2021-03-10 13:14 UTC (permalink / raw)
  To: Geert Uytterhoeven
  Cc: David Miller, torvalds, John Paul Adrian Glaubitz, sparclinux,
	Linux Kernel Mailing List

On Wed, Mar 10, 2021 at 11:40:47AM +0100, Geert Uytterhoeven wrote:
> > > (And yes, I prefer lore.kernel.org over marc, although for single
> > > patches it doesn't make much of a difference. For patch series, I find
> > > 'b4' so convenient that I definitely want the patch to show up on
> > > lore.kernel.org).
> >
> > Sadly, lore does not archive sparclinux@vger.kernel.org, so there
> > isn't much choice in this case.
> 
> Which is only an "ask Konstantin" (CCed) away, isn't it?

I'm in the process of creating the remainder of vger archives on lore, so it
would have happened anyway, but I'll bump sparclinux up in the queue.

Best,
-K

^ permalink raw reply	[flat|nested] 548+ messages in thread

end of thread, other threads:[~2021-03-10 13:15 UTC | newest]

Thread overview: 548+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-08-18  1:03 [GIT] Sparc David Miller
2010-08-18  1:03 ` David Miller
2010-08-18  1:31 ` Linus Torvalds
2010-08-18  1:31   ` Linus Torvalds
2010-08-18  1:59   ` Linus Torvalds
2010-08-18  1:59     ` Linus Torvalds
2010-08-18  2:14     ` David Miller
2010-08-18  2:14       ` David Miller
2010-08-18  4:38       ` 64-bit ppc rwsem (was: Re: [GIT] Sparc) Benjamin Herrenschmidt
2010-08-18  4:38         ` Benjamin Herrenschmidt
2010-08-18  4:38         ` Benjamin Herrenschmidt
2010-08-18  5:03         ` Benjamin Herrenschmidt
2010-08-18  5:03           ` Benjamin Herrenschmidt
2010-08-18  5:03           ` Benjamin Herrenschmidt
2010-08-18  5:28           ` 64-bit ppc rwsem David Miller
2010-08-18  5:28             ` David Miller
2010-08-18  5:28             ` David Miller
2010-08-18  5:39             ` Sam Ravnborg
2010-08-18  5:39               ` Sam Ravnborg
2010-08-18  5:39               ` Sam Ravnborg
2010-08-18  5:48               ` David Miller
2010-08-18  5:48                 ` David Miller
2010-08-18  5:48                 ` David Miller
2010-08-19  5:23             ` Benjamin Herrenschmidt
2010-08-19  5:23               ` Benjamin Herrenschmidt
2010-08-19  5:23               ` Benjamin Herrenschmidt
2010-08-19  5:29               ` David Miller
2010-08-19  5:29                 ` David Miller
2010-08-19  5:29                 ` David Miller
2010-08-19 10:24                 ` Benjamin Herrenschmidt
2010-08-19 10:24                   ` Benjamin Herrenschmidt
2010-08-19 10:24                   ` Benjamin Herrenschmidt
2010-08-20  5:14                 ` [PATCH 1/2] powerpc: Make rwsem use "long" type Benjamin Herrenschmidt
2010-08-20  5:14                   ` Benjamin Herrenschmidt
2010-08-20  5:14                   ` Benjamin Herrenschmidt
2010-08-24  1:37                   ` Timur Tabi
2010-08-24  1:37                     ` Timur Tabi
2010-08-24  1:37                     ` Timur Tabi
2010-08-20  5:14                 ` [PATCH 2/2] rwsem: Move powerpc atomic-long based implementation to asm-generic Benjamin Herrenschmidt
2010-08-20  5:14                   ` Benjamin Herrenschmidt
2010-08-20  5:14                   ` [PATCH 2/2] rwsem: Move powerpc atomic-long based implementation Benjamin Herrenschmidt
2010-08-20  6:43                   ` [PATCH 2/2] rwsem: Move powerpc atomic-long based implementation to asm-generic Sam Ravnborg
2010-08-20  6:43                     ` Sam Ravnborg
2010-08-20  6:43                     ` [PATCH 2/2] rwsem: Move powerpc atomic-long based Sam Ravnborg
2010-08-24  1:32                     ` [PATCH 2/2] rwsem: Move powerpc atomic-long based implementation to asm-generic Benjamin Herrenschmidt
2010-08-24  1:32                       ` Benjamin Herrenschmidt
2010-08-24  1:32                       ` [PATCH 2/2] rwsem: Move powerpc atomic-long based Benjamin Herrenschmidt
2010-08-23  4:39                   ` [PATCH 2/2] rwsem: Move powerpc atomic-long based implementation to asm-generic David Miller
2010-08-23  4:39                     ` David Miller
2010-08-23  4:39                     ` [PATCH 2/2] rwsem: Move powerpc atomic-long based David Miller
2010-08-23 13:44                 ` 64-bit ppc rwsem Arnd Bergmann
2010-08-23 13:44                   ` Arnd Bergmann
2010-08-23 13:44                   ` Arnd Bergmann
2010-08-23 22:01                   ` Benjamin Herrenschmidt
2010-08-23 22:01                     ` Benjamin Herrenschmidt
2010-08-23 22:01                     ` Benjamin Herrenschmidt
2010-08-23 22:18                     ` David Miller
2010-08-23 22:18                       ` David Miller
2010-08-23 22:18                       ` David Miller
2010-08-24  1:31                       ` Benjamin Herrenschmidt
2010-08-24  1:31                         ` Benjamin Herrenschmidt
2010-08-24  1:31                         ` Benjamin Herrenschmidt
2010-08-24 12:06                         ` Arnd Bergmann
2010-08-24 12:06                           ` Arnd Bergmann
2010-08-24 12:06                           ` Arnd Bergmann
2010-08-18  2:12   ` [GIT] Sparc David Miller
2010-08-18  2:12     ` David Miller
2010-08-18  2:50     ` Al Viro
2010-08-18  2:50       ` Al Viro
  -- strict thread matches above, loose matches on Subject: below --
2021-03-08 23:46 [GIT] SPARC David Miller
2021-03-08 23:46 ` David Miller
2021-03-09  0:19 ` John Paul Adrian Glaubitz
2021-03-09  0:19   ` John Paul Adrian Glaubitz
2021-03-09 19:08   ` David Miller
2021-03-09 19:08     ` David Miller
2021-03-09 19:27     ` Linus Torvalds
2021-03-09 19:27       ` Linus Torvalds
2021-03-10  0:24       ` David Miller
2021-03-10  0:24         ` David Miller
2021-03-10  1:15         ` David Miller
2021-03-10  1:15           ` David Miller
2021-03-10  1:17           ` Linus Torvalds
2021-03-10  1:17             ` Linus Torvalds
2021-03-10  1:18             ` David Miller
2021-03-10  1:18               ` David Miller
2021-03-10 10:40         ` Geert Uytterhoeven
2021-03-10 10:40           ` Geert Uytterhoeven
2021-03-10 13:14           ` Konstantin Ryabitsev
2021-03-10 13:14             ` Konstantin Ryabitsev
2021-02-23 21:21 [GIT] Sparc David Miller
2021-02-23 21:21 ` David Miller
2021-02-23 23:36 ` pr-tracker-bot
2020-06-08  0:16 David Miller
2020-06-08  0:16 ` David Miller
2020-06-08  0:35 ` pr-tracker-bot
2020-04-06 18:25 David Miller
2020-04-06 18:25 ` David Miller
2020-04-07 19:55 ` pr-tracker-bot
2020-02-02 10:57 David Miller
2020-02-02 10:57 ` David Miller
2020-02-02 20:20 ` pr-tracker-bot
2020-01-30 10:19 David Miller
2020-01-30 10:19 ` David Miller
2020-01-30 18:00 ` pr-tracker-bot
2019-07-13  6:17 David Miller
2019-07-13  6:17 ` David Miller
2019-07-13 23:15 ` pr-tracker-bot
2019-06-03  5:21 David Miller
2019-06-03  5:21 ` David Miller
2019-06-03 17:35 ` pr-tracker-bot
2019-05-09 21:35 David Miller
2019-05-09 21:35 ` David Miller
2019-05-09 22:15 ` pr-tracker-bot
2018-12-22 23:46 David Miller
2018-12-22 23:46 ` David Miller
2018-12-26 19:20 ` pr-tracker-bot
2018-12-21 20:42 David Miller
2018-12-21 20:42 ` David Miller
2018-12-21 22:30 ` pr-tracker-bot
2018-12-03  5:33 David Miller
2018-12-03  5:33 ` David Miller
2018-12-03 17:55 ` pr-tracker-bot
2018-11-01  1:44 David Miller
2018-11-01  1:44 ` David Miller
2018-11-01 16:15 ` Linus Torvalds
2018-11-01 16:15   ` Linus Torvalds
2018-10-26 23:08 David Miller
2018-10-26 23:08 ` David Miller
2018-10-27  0:17 ` Linus Torvalds
2018-10-27  0:17   ` Linus Torvalds
2018-10-25 18:28 David Miller
2018-10-25 18:28 ` David Miller
2018-10-26  1:30 ` Linus Torvalds
2018-10-26  1:30   ` Linus Torvalds
2018-10-24  3:31 David Miller
2018-10-24  3:31 ` David Miller
2018-10-24  5:43 ` Linus Torvalds
2018-10-24  5:43   ` Linus Torvalds
2018-10-18 23:33 David Miller
2018-10-18 23:33 ` David Miller
2018-10-19  7:16 ` Greg KH
2018-10-19  7:16   ` Greg KH
2018-10-16  2:39 David Miller
2018-10-16  2:39 ` David Miller
2018-10-16 16:55 ` Greg KH
2018-10-16 16:55   ` Greg KH
2018-10-08  6:48 David Miller
2018-10-08  6:48 ` David Miller
2018-10-08 14:26 ` Greg KH
2018-10-08 14:26   ` Greg KH
2018-08-22  5:16 David Miller
2018-08-22  5:16 ` David Miller
2018-06-09 14:21 David Miller
2018-06-09 14:21 ` David Miller
2018-04-30 20:12 David Miller
2018-04-30 20:12 ` David Miller
2018-04-03 15:31 David Miller
2018-04-03 15:31 ` David Miller
2018-03-15 21:20 David Miller
2018-03-15 21:20 ` David Miller
2018-02-01 15:20 David Miller
2018-02-01 15:20 ` David Miller
2018-01-24 23:23 David Miller
2018-01-24 23:23 ` David Miller
2017-12-31  4:17 David Miller
2017-12-31  4:17 ` David Miller
2017-11-29 20:17 David Miller
2017-11-29 20:17 ` David Miller
2017-11-18  3:15 David Miller
2017-11-18  3:15 ` David Miller
2017-09-10  3:24 David Miller
2017-09-10  3:24 ` David Miller
2017-08-21 21:01 David Miller
2017-08-21 21:01 ` David Miller
2017-08-10  5:26 David Miller
2017-08-10  5:26 ` David Miller
2017-08-04 17:11 David Miller
2017-08-04 17:11 ` David Miller
2017-07-17 20:57 David Miller
2017-07-17 20:57 ` David Miller
2017-07-12  4:05 David Miller
2017-07-12  4:05 ` David Miller
2017-07-08 10:40 David Miller
2017-07-08 10:40 ` David Miller
2017-06-06 20:57 David Miller
2017-06-06 20:57 ` David Miller
2017-05-18 18:03 David Miller
2017-05-18 18:03 ` David Miller
2017-05-09 20:04 David Miller
2017-05-09 20:04 ` David Miller
2017-04-26 19:22 David Miller
2017-04-26 19:22 ` David Miller
2017-04-18 20:20 David Miller
2017-04-18 20:20 ` David Miller
2017-04-07 21:21 David Miller
2017-04-07 21:21 ` David Miller
2017-02-24 16:34 David Miller
2017-02-24 16:34 ` David Miller
2017-01-30 22:37 David Miller
2017-01-30 22:37 ` David Miller
2016-12-12 15:10 David Miller
2016-12-12 15:10 ` David Miller
2016-12-06 17:19 David Miller
2016-12-06 17:19 ` David Miller
2016-11-28 21:03 David Miller
2016-11-28 21:03 ` David Miller
2016-11-21 18:41 David Miller
2016-11-21 18:41 ` David Miller
2016-10-31  1:04 David Miller
2016-10-31  1:04 ` David Miller
2016-10-06  7:57 David Miller
2016-10-06  7:57 ` David Miller
2016-10-02 13:02 David Miller
2016-10-02 13:02 ` David Miller
2016-07-29 18:15 David Miller
2016-07-29 18:15 ` David Miller
2016-06-01  4:17 David Miller
2016-06-01  4:17 ` David Miller
2016-05-22  6:03 David Miller
2016-05-22  6:03 ` David Miller
2016-05-02  5:10 David Miller
2016-05-02  5:10 ` David Miller
2016-03-28 19:45 David Miller
2016-03-28 19:45 ` David Miller
2016-03-01  5:47 David Miller
2016-03-01  5:47 ` David Miller
2016-01-15 21:04 David Miller
2016-01-15 21:04 ` David Miller
2015-12-31 20:30 David Miller
2015-12-31 20:30 ` David Miller
2015-12-24 17:16 David Miller
2015-12-24 17:16 ` David Miller
2015-11-05 21:39 David Miller
2015-11-05 21:39 ` David Miller
2015-11-06  0:43 ` Linus Torvalds
2015-11-06  0:43   ` Linus Torvalds
2015-11-06  0:56   ` Linus Torvalds
2015-11-06  0:56     ` Linus Torvalds
2015-11-06  1:05     ` Julian Calaby
2015-11-06  1:05       ` Julian Calaby
2015-11-06  6:44       ` Julia Lawall
2015-11-06  6:44         ` Julia Lawall
2015-11-07  3:31         ` Julian Calaby
2015-11-07  3:31           ` Julian Calaby
2015-11-07  6:04           ` Julia Lawall
2015-11-07  6:04             ` Julia Lawall
2015-11-06 18:32     ` [PATCH] checkpatch: Warn when casting constants to c90 int or longer types Joe Perches
2015-11-06 18:32       ` Joe Perches
2015-11-06  5:14   ` [GIT] Sparc David Miller
2015-11-06  5:14     ` David Miller
2015-08-07  2:19 David Miller
2015-08-07  2:19 ` David Miller
2015-06-25 13:27 David Miller
2015-06-25 13:27 ` David Miller
2015-06-02  0:17 David Miller
2015-06-02  0:17 ` David Miller
2015-04-22  2:58 David Miller
2015-04-22  2:58 ` David Miller
2015-04-18 21:58 David Miller
2015-04-18 21:58 ` David Miller
2015-04-17 20:14 David Miller
2015-04-17 20:14 ` David Miller
2015-03-23 16:55 David Miller
2015-03-23 16:55 ` David Miller
2015-03-23 17:05 ` Linus Torvalds
2015-03-23 17:05   ` Linus Torvalds
2015-03-23 17:12   ` Linus Torvalds
2015-03-23 17:12     ` Linus Torvalds
2015-03-23 19:14     ` David Miller
2015-03-23 19:14       ` David Miller
2015-03-23 19:10   ` David Miller
2015-03-23 19:10     ` David Miller
2015-03-19  4:59 David Miller
2015-03-19  4:59 ` David Miller
2014-12-18 21:39 David Miller
2014-12-18 21:39 ` David Miller
2014-12-12 20:58 David Miller
2014-12-12 20:58 ` David Miller
2014-11-26 21:42 David Miller
2014-11-26 21:42 ` David Miller
2014-11-16 21:43 David Miller
2014-11-16 21:43 ` David Miller
2014-10-31 20:44 David Miller
2014-10-31 20:44 ` David Miller
2014-10-24 17:32 David Miller
2014-10-24 17:32 ` David Miller
2014-10-24 19:47 ` Linus Torvalds
2014-10-24 19:47   ` Linus Torvalds
2014-10-27 21:09   ` Andrew Morton
2014-10-27 21:09     ` Andrew Morton
2014-10-27 22:43     ` David Miller
2014-10-27 22:43       ` David Miller
2014-10-28 10:49       ` Steve Capper
2014-10-19 17:26 David Miller
2014-10-19 17:26 ` David Miller
2014-10-15 18:45 David Miller
2014-10-15 18:45 ` David Miller
2014-10-10 20:01 David Miller
2014-10-10 20:01 ` David Miller
2014-08-14 23:17 David Miller
2014-08-14 23:17 ` David Miller
2014-08-12  4:01 David Miller
2014-08-12  4:01 ` David Miller
2014-08-06  5:03 David Miller
2014-08-06  5:03 ` David Miller
2014-07-22  5:38 David Miller
2014-07-22  5:38 ` David Miller
2014-06-16  6:45 David Miller
2014-06-16  6:45 ` David Miller
2014-05-22 21:53 David Miller
2014-05-22 21:53 ` David Miller
2014-05-06 15:30 David Miller
2014-05-06 15:30 ` David Miller
2014-05-06 16:29 ` Dave Jones
2014-05-06 16:29   ` Dave Jones
2014-05-06 17:13   ` David Miller
2014-05-06 17:13     ` David Miller
2014-03-24 19:18 David Miller
2014-03-24 19:18 ` David Miller
2014-02-21 17:42 David Miller
2014-02-21 17:42 ` David Miller
2014-01-29  8:51 David Miller
2014-01-29  8:51 ` David Miller
2014-01-05  2:04 David Miller
2014-01-05  2:04 ` David Miller
2013-11-19 22:18 David Miller
2013-11-19 22:18 ` David Miller
2013-11-14 23:19 David Miller
2013-11-14 23:19 ` David Miller
2013-10-03  3:52 David Miller
2013-10-03  3:52 ` David Miller
2013-10-01 17:57 David Miller
2013-10-01 17:57 ` David Miller
2013-07-10 21:00 David Miller
2013-07-10 21:00 ` David Miller
2013-06-19  9:28 David Miller
2013-06-19  9:28 ` David Miller
2013-05-05  2:42 David Miller
2013-05-05  2:42 ` David Miller
2013-04-25  0:08 David Miller
2013-04-25  0:08 ` David Miller
2013-04-21  1:16 David Miller
2013-04-21  1:16 ` David Miller
2013-03-19 21:18 David Miller
2013-03-19 21:18 ` David Miller
2013-02-14 20:14 David Miller
2013-02-14 20:14 ` David Miller
2012-12-20  0:15 David Miller
2012-12-20  0:15 ` David Miller
2012-12-13 20:11 David Miller
2012-12-13 20:11 ` David Miller
2012-12-03 20:33 David Miller
2012-12-03 20:33 ` David Miller
2012-11-23 19:48 David Miller
2012-11-23 19:48 ` David Miller
2012-11-10 19:21 David Miller
2012-11-10 19:21 ` David Miller
2012-10-17  5:05 David Miller
2012-10-17  5:05 ` David Miller
2012-10-12 19:26 David Miller
2012-10-12 19:26 ` David Miller
2012-10-10  1:26 David Miller
2012-10-10  1:26 ` David Miller
2012-10-08 20:18 David Miller
2012-10-08 20:18 ` David Miller
2012-10-10  5:11 ` Al Viro
2012-10-10  5:11   ` Al Viro
2012-10-11  0:34   ` David Miller
2012-10-11  0:34     ` David Miller
2012-10-03  6:14 David Miller
2012-10-03  6:14 ` David Miller
2012-10-02 18:13 David Miller
2012-10-02 18:13 ` David Miller
2012-09-21 19:48 David Miller
2012-09-21 19:48 ` David Miller
2012-07-26 23:58 David Miller
2012-07-26 23:58 ` David Miller
2012-06-15 22:41 David Miller
2012-06-15 22:41 ` David Miller
2012-05-30 22:38 David Miller
2012-05-30 22:38 ` David Miller
2012-05-24 21:32 David Miller
2012-05-24 21:32 ` David Miller
2012-05-24 21:32 ` David Miller
2012-05-21  9:03 David Miller
2012-05-21  9:03 ` David Miller
2012-05-21 17:37 ` Linus Torvalds
2012-05-21 17:37   ` Linus Torvalds
2012-05-21 18:24   ` Sam Ravnborg
2012-05-21 18:24     ` Sam Ravnborg
2012-05-21 18:28     ` Linus Torvalds
2012-05-21 18:28       ` Linus Torvalds
2012-05-21 18:33       ` Linus Torvalds
2012-05-21 18:33         ` Linus Torvalds
2012-05-21 18:52         ` [PATCH] net: drop NET dependency from HAVE_BPF_JIT Sam Ravnborg
2012-05-21 18:52           ` Sam Ravnborg
2012-05-21 18:54           ` Linus Torvalds
2012-05-21 18:54             ` Linus Torvalds
2012-05-21 19:48             ` David Miller
2012-05-21 19:48               ` David Miller
2012-05-21 18:38       ` [GIT] Sparc Sam Ravnborg
2012-05-21 18:38         ` Sam Ravnborg
2012-05-10 20:52 David Miller
2012-05-10 20:52 ` David Miller
2012-04-21 20:58 David Miller
2012-04-21 20:58 ` David Miller
2012-04-13 19:24 David Miller
2012-04-13 19:24 ` David Miller
2012-04-13 19:46 ` Linus Torvalds
2012-04-13 19:46   ` Linus Torvalds
2012-04-13 20:12   ` David Miller
2012-04-13 20:12     ` David Miller
2012-04-13 21:50   ` Sam Ravnborg
2012-04-13 21:50     ` Sam Ravnborg
2012-04-14  9:13     ` Ingo Molnar
2012-04-14  9:13       ` Ingo Molnar
2012-04-14 10:23       ` Sam Ravnborg
2012-04-14 10:23         ` Sam Ravnborg
2012-04-14 10:50         ` Ingo Molnar
2012-04-14 10:50           ` Ingo Molnar
2012-04-04  8:03 David Miller
2012-04-04  8:03 ` David Miller
2012-03-31  1:37 David Miller
2012-03-31  1:37 ` David Miller
2012-03-30  7:39 David Miller
2012-03-30  7:39 ` David Miller
2012-03-30 10:02 ` Sam Ravnborg
2012-03-30 10:02   ` Sam Ravnborg
2012-01-26 21:55 David Miller
2012-01-26 21:55 ` David Miller
2012-01-09 22:22 David Miller
2012-01-09 22:22 ` David Miller
2011-12-23 22:11 David Miller
2011-12-23 22:11 ` David Miller
2011-12-16 20:22 David Miller
2011-12-16 20:22 ` David Miller
2011-11-18 19:22 David Miller
2011-11-18 19:22 ` David Miller
2011-11-08 20:07 David Miller
2011-11-08 20:07 ` David Miller
2011-10-31  8:32 David Miller
2011-10-31  8:32 ` David Miller
2011-10-20  9:48 David Miller
2011-10-20  9:48 ` David Miller
2011-09-29 19:31 David Miller
2011-09-29 19:31 ` David Miller
2011-08-30 18:13 David Miller
2011-08-30 18:13 ` David Miller
2011-08-29 16:50 David Miller
2011-08-29 16:50 ` David Miller
2011-08-24  6:34 David Miller
2011-08-24  6:34 ` David Miller
2011-08-19  4:54 David Miller
2011-08-19  4:54 ` David Miller
2011-08-15 22:47 David Miller
2011-08-15 22:47 ` David Miller
2011-08-12  1:08 David Miller
2011-08-12  1:08 ` David Miller
2011-08-07 22:48 David Miller
2011-08-07 22:48 ` David Miller
2011-08-05 11:25 David Miller
2011-08-05 11:25 ` David Miller
2011-07-28  8:46 David Miller
2011-07-28  8:46 ` David Miller
2011-07-28 10:08 ` Anca Emanuel
2011-07-28 10:08   ` Anca Emanuel
2011-07-16 17:48 David Miller
2011-07-16 17:48 ` David Miller
2011-06-09 23:14 David Miller
2011-06-09 23:14 ` David Miller
2011-05-23  4:52 David Miller
2011-05-23  4:52 ` David Miller
2011-05-12  4:42 David Miller
2011-05-12  4:42 ` David Miller
2011-04-01  6:33 David Miller
2011-04-01  6:33 ` David Miller
2011-03-25 21:05 David Miller
2011-03-25 21:05 ` David Miller
2011-03-21  2:51 David Miller
2011-03-21  2:51 ` David Miller
2011-03-17  3:06 David Miller
2011-03-17  3:06 ` David Miller
2011-02-17 21:34 David Miller
2011-02-17 21:34 ` David Miller
2011-01-12  0:26 David Miller
2011-01-12  0:26 ` David Miller
2011-01-06 22:48 David Miller
2011-01-06 22:48 ` David Miller
2010-12-14 20:11 David Miller
2010-12-14 20:11 ` David Miller
2010-10-29  3:46 David Miller
2010-10-29  3:46 ` David Miller
2010-09-22 18:10 David Miller
2010-09-22 18:10 ` David Miller
2010-09-22 18:32 ` Al Viro
2010-09-22 18:32   ` Al Viro
2010-09-22 18:46   ` Linus Torvalds
2010-09-22 18:46     ` Linus Torvalds
2010-09-22 18:53     ` Al Viro
2010-09-22 18:53       ` Al Viro
2010-09-22 19:04       ` Al Viro
2010-09-22 19:04         ` Al Viro
2010-09-22 19:08       ` Linus Torvalds
2010-09-22 19:08         ` Linus Torvalds
2010-09-22 19:53         ` Al Viro
2010-09-22 19:53           ` Al Viro
2010-09-22 20:43           ` Al Viro
2010-09-22 20:43             ` Al Viro
2010-09-22 21:15             ` David Miller
2010-09-22 21:15               ` David Miller
2010-09-22 23:12               ` Al Viro
2010-09-22 23:12                 ` Al Viro
2010-09-24  4:48                 ` David Miller
2010-09-24  4:48                   ` David Miller
2010-09-23  0:27               ` Al Viro
2010-09-23  0:27                 ` Al Viro
2010-09-24  4:53                 ` David Miller
2010-09-24  4:53                   ` David Miller
2010-09-23  4:59         ` Al Viro
2010-09-23  4:59           ` Al Viro
2010-09-24  5:01           ` David Miller
2010-09-24  5:01             ` David Miller
2010-09-11  4:25 David Miller
2010-09-11  4:25 ` David Miller
2010-08-24  9:02 David Miller
2010-08-24  9:02 ` David Miller
2010-08-09 10:28 David Miller
2010-08-09 10:28 ` David Miller
2010-08-05  0:21 David Miller
2010-08-05  0:21 ` David Miller
2010-07-21  4:25 [GIT] SPARC David Miller
2010-07-21  4:25 ` David Miller
2010-05-19 19:50 [GIT] Sparc David Miller
2010-05-19 19:50 ` David Miller
2010-04-13 11:43 David Miller
2010-04-13 11:43 ` David Miller
2010-04-04  8:15 David Miller
2010-04-04  8:15 ` David Miller
2010-03-29 20:11 David Miller
2010-03-29 20:11 ` David Miller
2012-04-10 14:28 ` David Miller
2013-01-12 23:56 ` David Miller
2013-09-05 20:45 ` Fw: " David Miller
2018-10-08 18:42 ` John Paul Adrian Glaubitz
2018-10-25 23:39 ` David Miller
2018-10-26  3:29 ` David Miller
2018-10-26 12:41 ` John Paul Adrian Glaubitz
2018-10-26 18:30 ` David Miller

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.