https://github.com/torvalds/linux
Revision 1fb00cbca05ba13f386e75aa1f6d801895cfed29 authored by Linus Torvalds on 27 August 2014, 16:14:17 UTC, committed by Linus Torvalds on 27 August 2014, 16:14:17 UTC
Pull btrfs fixes from Chris Mason:
 "The biggest of these comes from Liu Bo, who tracked down a hang we've
  been hitting since moving to kernel workqueues (it's a btrfs bug, not
  in the generic code).  His patch needs backporting to 3.16 and 3.15
  stable, which I'll send once this is in.

  Otherwise these are assorted fixes.  Most were integrated last week
  during KS, but I wanted to give everyone the chance to test the
  result, so I waited for rc2 to come out before sending"

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs: (24 commits)
  Btrfs: fix task hang under heavy compressed write
  Btrfs: fix filemap_flush call in btrfs_file_release
  Btrfs: fix crash on endio of reading corrupted block
  btrfs: fix leak in qgroup_subtree_accounting() error path
  btrfs: Use right extent length when inserting overlap extent map.
  Btrfs: clone, don't create invalid hole extent map
  Btrfs: don't monopolize a core when evicting inode
  Btrfs: fix hole detection during file fsync
  Btrfs: ensure tmpfile inode is always persisted with link count of 0
  Btrfs: race free update of commit root for ro snapshots
  Btrfs: fix regression of btrfs device replace
  Btrfs: don't consider the missing device when allocating new chunks
  Btrfs: Fix wrong device size when we are resizing the device
  Btrfs: don't write any data into a readonly device when scrub
  Btrfs: Fix the problem that the replace destroys the seed filesystem
  btrfs: Return right extent when fiemap gives unaligned offset and len.
  Btrfs: fix wrong extent mapping for DirectIO
  Btrfs: fix wrong write range for filemap_fdatawrite_range()
  Btrfs: fix wrong missing device counter decrease
  Btrfs: fix unzeroed members in fs_devices when creating a fs from seed fs
  ...
2 parent s c0fe5dc + 9e0af23
Raw File
Tip revision: 1fb00cbca05ba13f386e75aa1f6d801895cfed29 authored by Linus Torvalds on 27 August 2014, 16:14:17 UTC
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs
Tip revision: 1fb00cb
register-banks.txt
	Notes on register bank usage in the kernel
	==========================================

Introduction
------------

The SH-3 and SH-4 CPU families traditionally include a single partial register
bank (selected by SR.RB, only r0 ... r7 are banked), whereas other families
may have more full-featured banking or simply no such capabilities at all.

SR.RB banking
-------------

In the case of this type of banking, banked registers are mapped directly to
r0 ... r7 if SR.RB is set to the bank we are interested in, otherwise ldc/stc
can still be used to reference the banked registers (as r0_bank ... r7_bank)
when in the context of another bank. The developer must keep the SR.RB value
in mind when writing code that utilizes these banked registers, for obvious
reasons. Userspace is also not able to poke at the bank1 values, so these can
be used rather effectively as scratch registers by the kernel.

Presently the kernel uses several of these registers.

	- r0_bank, r1_bank (referenced as k0 and k1, used for scratch
	  registers when doing exception handling).
	- r2_bank (used to track the EXPEVT/INTEVT code)
		- Used by do_IRQ() and friends for doing irq mapping based off
		  of the interrupt exception vector jump table offset
	- r6_bank (global interrupt mask)
		- The SR.IMASK interrupt handler makes use of this to set the
		  interrupt priority level (used by local_irq_enable())
	- r7_bank (current)

back to top