css_sets are synchronized through css_set_rwsem but the locking scheme
is kinda bizarre. The hot paths - fork and exit - have to write lock
the rwsem making the rw part pointless; furthermore, many readers
already hold cgroup_mutex.
One of the readers is css task iteration. It read locks the rwsem
over the entire duration of iteration. This leads to silly locking
behavior. When cpuset tries to migrate processes of a cgroup to a
different NUMA node, css_set_rwsem is held across the entire migration
attempt which can take a long time locking out forking, exiting and
other cgroup operations.
This patch updates css task iteration so that it locks css_set_rwsem
only while the iterator is being advanced. css task iteration
involves two levels - css_set and task iteration. As css_sets in use
are practically immutable, simply pinning the current one is enough
for resuming iteration afterwards. Task iteration is tricky as tasks
may leave their css_set while iteration is in progress. This is
solved by keeping track of active iterators and advancing them if
their next task leaves its css_set.
v2: put_task_struct() in css_task_iter_next() moved outside
css_set_rwsem. A later patch will add cgroup operations to
task_struct free path which may grab the same lock and this avoids
deadlock possibilities.
css_set_move_task() updated to use list_for_each_entry_safe() when
walking task_iters and advancing them. This is necessary as
advancing an iter may remove it from the list.
Signed-off-by: Tejun Heo <tj@kernel.org>
* Rename css_advance_task_iter() to css_task_iter_advance_css_set()
and make it clear it->task_pos too at the end of the iteration.
* Factor out css_task_iter_advance() from css_task_iter_next(). The
new function whines if called on a terminated iterator.
Except for the termination check, this is pure reorganization and
doesn't introduce any behavior changes. This will help the planned
locking update for css_task_iter.
Signed-off-by: Tejun Heo <tj@kernel.org>
A task is associated and disassociated with its css_set in three
places - during migration, after a new task is created and when a task
exits. The first is handled by cgroup_task_migrate() and the latter
two are open-coded.
These are similar operations and spreading them over multiple places
makes it harder to follow and update. This patch collects all task
css_set [dis]association operations into css_set_move_task().
While css_set_move_task() may check whether populated state needs to
be updated when not strictly necessary, the behavior is essentially
equivalent before and after this patch.
Signed-off-by: Tejun Heo <tj@kernel.org>
css task iteration will be updated to not leak cgroup internal locking
to iterator users. In preparation, update css_set and task lists to
be in chronological order.
For tasks, as migration path is already using list_splice_tail_init(),
only cgroup_enable_task_cg_lists() and cgroup_post_fork() need
updating. For css_sets, link_css_set() is the only place which needs
to be updated.
Signed-off-by: Tejun Heo <tj@kernel.org>
cgroup_destroy_locked() currently tests whether any css_sets are
associated to reject removal if the cgroup contains tasks. This works
because a css_set's refcnt converges with the number of tasks linked
to it and thus there's no css_set linked to a cgroup if it doesn't
have any live tasks.
To help tracking resource usage of zombie tasks, putting the ref of
css_set will be separated from disassociating the task from the
css_set which means that a cgroup may have css_sets linked to it even
when it doesn't have any live tasks.
This patch updates cgroup_destroy_locked() so that it tests
cgroup_is_populated(), which counts the number of populated css_sets,
instead of whether cgrp->cset_links is empty to determine whether the
cgroup is populated or not. This ensures that rmdirs won't be
incorrectly rejected for cgroups which only contain zombie tasks.
Signed-off-by: Tejun Heo <tj@kernel.org>
Currently, css_sets don't pin the associated cgroups. This is okay as
a cgroup with css_sets associated are not allowed to be removed;
however, to help resource tracking for zombie tasks, this is scheduled
to change such that a cgroup can be removed even when it has css_sets
associated as long as none of them are populated.
To ensure that a cgroup doesn't go away while css_sets are still
associated with it, make each associated css_set hold a reference on
the cgroup if non-root.
v2: Root cgroups are special and shouldn't be ref'd by css_sets.
Signed-off-by: Tejun Heo <tj@kernel.org>
Relocate cgroup_get(), cgroup_tryget() and cgroup_put() upwards. This
is pure code reorganization to prepare for future changes.
Signed-off-by: Tejun Heo <tj@kernel.org>
To trigger release agent when the last task leaves the cgroup,
check_for_release() is called from put_css_set_locked(); however,
css_set being unlinked is being decoupled from task leaving the cgroup
and the correct condition to test is cgroup->nr_populated dropping to
zero which check_for_release() is already updated to test.
This patch moves check_for_release() invocation from
put_css_set_locked() to cgroup_update_populated().
Signed-off-by: Tejun Heo <tj@kernel.org>
Currently, cgroup_has_tasks() tests whether the target cgroup has any
css_set linked to it. This works because a css_set's refcnt converges
with the number of tasks linked to it and thus there's no css_set
linked to a cgroup if it doesn't have any live tasks.
To help tracking resource usage of zombie tasks, putting the ref of
css_set will be separated from disassociating the task from the
css_set which means that a cgroup may have css_sets linked to it even
when it doesn't have any live tasks.
This patch replaces cgroup_has_tasks() with cgroup_is_populated()
which tests cgroup->nr_populated instead which locally counts the
number of populated css_sets. Unlike cgroup_has_tasks(),
cgroup_is_populated() is recursive - if any of the descendants is
populated, the cgroup is populated too. While this changes the
meaning of the test, all the existing users are okay with the change.
While at it, replace the open-coded ->populated_cnt test in
cgroup_events_show() with cgroup_is_populated().
Signed-off-by: Tejun Heo <tj@kernel.org>
Cc: Li Zefan <lizefan@huawei.com>
Cc: Johannes Weiner <hannes@cmpxchg.org>
Cc: Michal Hocko <mhocko@kernel.org>
Currently, cgroup->nr_populated counts whether the cgroup has any
css_sets linked to it and the number of children which has non-zero
->nr_populated. This works because a css_set's refcnt converges with
the number of tasks linked to it and thus there's no css_set linked to
a cgroup if it doesn't have any live tasks.
To help tracking resource usage of zombie tasks, putting the ref of
css_set will be separated from disassociating the task from the
css_set which means that a cgroup may have css_sets linked to it even
when it doesn't have any live tasks.
This patch updates cgroup->nr_populated so that for the cgroup itself
it counts the number of css_sets which have tasks associated with them
so that empty css_sets don't skew the populated test.
Signed-off-by: Tejun Heo <tj@kernel.org>
CONFIG_FIXED_PHY is needed to have Ethernet working on STi boards.
Select it as built-in since RootFS is accessible from NFS on these boards.
Signed-off-by: Maxime Coquelin <maxime.coquelin@st.com>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
1. SRAM, MHU mailbox and SCPI support
2. CPU topology using cpu-map
3. Clock support for all the cpus
4. Support for SoC sensors
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
iQIcBAABCAAGBQJWF7sKAAoJEABBurwxfuKYrEAP/2EqYNykediW8cxct7xyMls3
L6KEOl29HfOJueYT0xY3/9rRuL+a+3rXe/MxnlL/E5FO88080b/ITJFP19DcLW5e
/NmV9O4t9S7ZDYiQiGsTjbwaqYXxQA3xcnO25g3oACiMoBety/Axw/FTzEQEpQWL
8UhWbiaONiwlvbe/rOq9VL2gdsN9wpS9W0I+SnCJcHv/UvCRTfalT5wP1azy/liq
E+Z8SCinH2Pj0SCVuNg/4YzM0UXDIt2b4fqqp6Yb+lKiUnkACYqK+VsCtT/f+qmY
ICMDLDoapq/96SwCCUf0pmvMErx270r8WJeC+Mv4EtkMYnbzGdHIR70yHWCcDbW7
6umapM/QcDfazj2wkPh4dYSTLe1bkijKGEaiMWG5dmn0HtC8dq/mUw1Midgo0z9e
n0Mr9dGyMj0oxT0+d1NhuL/XtValCfGxJQu1D3p22KYDliN2Bs8Oa3q0ERArytbe
KYhHXJ36AvP66ZjYWTv/Cs3s5RfsW3+ZzDtlB6tl6nh8QgsrUxKcVrCrw15w5qWN
1z00v2Iw5zFe3i5YbPCvGtarYMvGJEyIdv7+D3mIsIU1BA2iff2iB4lq77G7ZoNA
UbbeFTZqV8pKtbejDjHkPN4r+Ws5i8A2E3k+kIviqQO46AB8gRyzIUOXj8Di8h0S
gMgyo8NkC+6CBlXfPfrC
=wBcv
-----END PGP SIGNATURE-----
Merge tag 'juno-scpi-for-v4.4' of git://git.kernel.org/pub/scm/linux/kernel/git/sudeep.holla/linux into next/dt
Merge "SCPI support on ARM64 Juno Development Platform" from Sudeep Holla:
1. SRAM, MHU mailbox and SCPI support
2. CPU topology using cpu-map
3. Clock support for all the cpus
4. Support for SoC sensors
* tag 'juno-scpi-for-v4.4' of git://git.kernel.org/pub/scm/linux/kernel/git/sudeep.holla/linux:
arm64: dts: Add sensor node to Juno dt
arm64: dts: add clock support for all the cpus
arm64: dts: add CPU topology on Juno
arm64: dts: add SRAM, MHU mailbox and SCPI support on Juno
- DCAN sleep pins for am437x-gp-evm
- A series of changes to add audio support for dra7
- Add support for gpio keys and LEDs on dra7
- Regulator clean-up for am335x-wega
- A series of changes to enable IOMMUs and mailboxes for dra7
accelerators
- Add support for am335x-bonegreen
- Fix up GPIO flags where 0 was used instead of GPIO_ACTIVE_HIGH
- Fix omap3-lilly-am33x IRQ level flag
- Remove duplicate uart2 pinmux for igep and fix indentation and
update igep to use pinctrl macros for the register offsets
- Fix MMC cd-gpios usage
Note that this branch is against v4.3-rc4 as that contains critical
MMC related fixes to boot with MMC working on most omaps.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
iQIcBAABAgAGBQJWHr4GAAoJEBvUPslcq6Vzhr8QAMAH0SNDea4C48F7vPkjA31V
D0x1hGnLkeXbInR9H+pDjULuLdY8bQubCi0gdpH0OAxUarga2WneTC9A0IaNs3gm
YR3fS3RnusrPdderNJ00fkJaz1taaQmEdbKAxgPG2XabOZtUDqRhE4JafUnMN2QI
jOde4CS3XDbzEfsDLxrxzsw8x1wHnPRQ4LWHVxuUYIPVRsbwbU+Ur23NPxUU7JtQ
g+Lf86PR5B3AtXqh+1x0cdpoybyCpKSqFnvFBEQS997B+7DQYKXwVWRZctBtSsV0
66BccG/dN3YSG+WdRno4R8ikrebuhhdVTn8bOUIFN83o5BjDAuWKBsYXYkVHsusk
wLRnFkLwkNoil8C4DWY9+RfdX7uLwcCPppBB4PF6P541rbPGpV8O19/D5v1qBCVQ
p4GxNarygJdXWEzYb22x9KEwVBHz8waPNfuRz82TrgcttTyDWUtiUbRnxRtI137a
V8g5/TrR8p1WwRFlp4X7UFhZACqn1CSoNW9J1eax7VpGm5I8DEECAOzSHUId98k5
eRhfC5r/tLWDl3IkSnKrGnQ2hVu6dcazFj3nMJacYkpmRghoHvp+7ElepxffZCae
+V8TXFP6ehEajkvrExPRL8Ey9UdMJEXeof5t/o2Vt0b2w+XeLOpuoDrKbcJsYPMb
RWisiAUU/KWk6UQYOPj5
=Sbup
-----END PGP SIGNATURE-----
Merge tag 'omap-for-v4.4/dt-pt1' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into next/dt
Merge "Device tree changes for omaps for v4.4 merge window:" from Tony Lindgren:
- DCAN sleep pins for am437x-gp-evm
- A series of changes to add audio support for dra7
- Add support for gpio keys and LEDs on dra7
- Regulator clean-up for am335x-wega
- A series of changes to enable IOMMUs and mailboxes for dra7
accelerators
- Add support for am335x-bonegreen
- Fix up GPIO flags where 0 was used instead of GPIO_ACTIVE_HIGH
- Fix omap3-lilly-am33x IRQ level flag
- Remove duplicate uart2 pinmux for igep and fix indentation and
update igep to use pinctrl macros for the register offsets
- Fix MMC cd-gpios usage
Note that this branch is against v4.3-rc4 as that contains critical
MMC related fixes to boot with MMC working on most omaps.
* tag 'omap-for-v4.4/dt-pt1' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap: (33 commits)
ARM: dts: omap3-igep: Use OMAP3_CORE1_IOPAD pinmux macro
ARM: dts: dra7xx: am57xx: fix cd-gpios definition as per hardware design and dt binding docs
ARM: dts: am43xx: fix cd-gpios definition as per hardware design and dt binding docs
ARM: dts: am335x: fix cd-gpios definition as per hardware design and dt binding docs
ARM: dts: omap3-igep0020: Remove duplicate uart2 pinmux
ARM: dts: omap3-igep: Fix indentation
ARM: dts: omap3-lilly-a83x: Don't use IRQ level flag for a GPIO
ARM: dts: DRA74x: Add IOMMU nodes for DSP2
ARM: dts: DRA7: Add common IOMMU nodes
ARM: dts: DRA74x: Add dsp2_system syscon node
ARM: dts: DRA7: Add dsp1_system syscon node
ARM: dts: Use defined GPIO constants in flags cell for OMAP2+ boards
ARM: dts: Add am335x-bonegreen
ARM: dts: beagle-x15: Enable the system mailboxes 5 and 6
ARM: dts: dra72-evm: Enable the system mailboxes 5 and 6
ARM: dts: dra7-evm: Enable the system mailboxes 5 and 6
ARM: dts: DRA72x: Add IPC sub-mailbox nodes for IPU1, IPU2 & DSP1
ARM: dts: DRA74x: Add IPC sub-mailbox nodes for all IPUs & DSPs
ARM: dts: am335x-wega: Clean up regulators
ARM: dts: dra7-evm: add gpio key support
...
Pull ext4 Kconfig description fixup from Jan Kara:
"A small fixup in description of EXT4_USE_FOR_EXT2 config option"
* 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs:
ext4: Update EXT4_USE_FOR_EXT2 description
the bindings documentation to reflect this from Vladimir Zapolskiy.
"The change adds support of ARM PrimeCell PL175 MPMC and PL176 MPMC,
the static memory controllers on devices are similar to one found on
ARM PrimeCell PL172, add support to the existing driver."
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2
iQEcBAABCAAGBQJWFtaVAAoJEF5zSH4+/j/ajj4H/1Yi5EZXpfSnSrLzETEkJbXF
VH0RLMA2ODgAgZEJt1y2mS0OW2ImDz2UIUDK86BbPP6cvyTxJft56nAMm8JHRrNU
M6PkOVIgkcSflqIW3LwJlW/TsXYvuaZQ+JJREZeeZT82IxQYAWyfnrKEyypfRTp2
1HTwTJv3E0RR0oefRF4kXnfHuRUlRcFbRjm4NyjH/mIj4HGIK+Vwjirkjq9U6xYn
7dGYj89soxVtlaSH/TTG9F4LnmGk/vOsvXlLBxgvYUWfOHvQDxgxPErVrj7GE2vv
tZ0iLs2tv4dbVo6D/YdQfLP576fKoVbjN3iKvlhP22w67b/QxVPXSgFxier5HK0=
=/iBk
-----END PGP SIGNATURE-----
Merge tag 'drivers_pl172_for_4.4' of https://github.com/manabian/linux-lpc into next/drivers
Merge "PL172 driver updates for v4.4" from Joachim Eastwood:
Support for additional ARM MPMCs to the PL172 driver and an update to
the bindings documentation to reflect this from Vladimir Zapolskiy.
"The change adds support of ARM PrimeCell PL175 MPMC and PL176 MPMC,
the static memory controllers on devices are similar to one found on
ARM PrimeCell PL172, add support to the existing driver."
* tag 'drivers_pl172_for_4.4' of https://github.com/manabian/linux-lpc:
doc: dt: arm,pl172: add description of PL175 and PL176 controllers
memory: pl172: add ARM PrimeCell PL176 MPMC support
memory: pl172: add ARM PrimeCell PL175 MPMC support
memory: pl172: correct MPMC peripheral ID register bits
- Enable SPIFI Flash and JFFS2 to support rootfs on Flash memory
- Enable USB Phy, mass storage and SCSI to support USB memory
- Enable PCF857x and JC42 I2C devices found on Hitex board
- Enable PL172 to support memory mapped NOR Flash
- New LPC18xx drivers: I2C, Watchdog, SCT PWM and RTC
Signed-off-by: Joachim Eastwood <manabian@gmail.com>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Add explicit entries for drivers used by the lpc18xx that is
not caught by the "lpc18xx" regex pattern.
Signed-off-by: Joachim Eastwood <manabian@gmail.com>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Documentation and support to be able to load the PDSP
firmware necessary for accumulator operation.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
iQIcBAABAgAGBQJWHW8iAAoJEHJsHOdBp5c/9ywP/3Qpvy+kcnwMvwrnq/jxLlGk
qc+gQTAMMguenYGZmIqnyLVHG9B4UUNZ6e/uiukzCxMP1SWx8KmgKNFSQonJuFVV
wLufo+wYBTH4P8VIM5OJNkJVPqZ8YXwtVJ09LhVxYNh1vF/l6aOEQ/kaEC22f5sD
jycgKdKx3yRn67VrWiuXS1MGXIDkGR3ABCxv6iJHSKyP15HArQ6fAhyrkfP/mNkr
9YXIrX+vmMdsICfXG19R2z/lCuM+JadXz9Rjo9yMQwvUw+3QAHYy8m4JXb9cZFZq
jNZnzWQj5azuxaGnLVS1UNggsEXuxmd0S1PJvdF1N2ISHVYqwCtFuLjQ2r+z4WQm
uzo9DyPTaYtASO6iSq9MQVzKKW0r0a5dPlAJIYTJHR11xi8kOpu04KUkJUR4c1ly
X5I9zJ7ishV1VxFUZaMJtl/nX7B18WiKZyHhtO4MqRLPFA1fjH1psA/s8vRk6l6e
unawCOM5oT8KvuSyijTNq2sQlxgRJJW7S4F1P1iUxsA6nocaPdTV+Oi/aECt8mFQ
Q9gFVgCTEMWBYPuVqVisfU/mmZFPRDiotknMAeM+mUF6D/DkA0NSPvNWH0LP4rrA
kIGRHQWtJMBTdxdBhjKoCsEEk1DR0wOCTUqow77SR/H3wl1FL1EYDB2J15JD7vzM
lVTrZzd1wRXSsHINdnY6
=T5UX
-----END PGP SIGNATURE-----
Merge tag 'keystone-driver-soc_v2' of git://git.kernel.org/pub/scm/linux/kernel/git/ssantosh/linux-keystone into next/soc
Merge "ARM Keystone SOC driver updates for 4.4" from Santosh Shilimkar:
Documentation and support to be able to load the PDSP
firmware necessary for accumulator operation.
* tag 'keystone-driver-soc_v2' of git://git.kernel.org/pub/scm/linux/kernel/git/ssantosh/linux-keystone:
soc: ti: qmss: make acc queue support optional in the driver
soc: ti: add firmware file name as part of the driver
Documentation: dt: soc: Add description for knav qmss driver
The "req->addr" variable is a bit field declared as "u64 addr:52;".
The "address" variable is a u64. We need to cast "req->addr" to a u64
before the shift or the result is truncated to 52 bits.
Fixes: a222a7f0bb ('iommu/vt-d: Implement page request handling')
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
Dan Carpenter pointed out an error path which could lead to us
dereferencing the 'svm' pointer after we know it to be NULL because the
PASID lookup failed. Fix that, and make it less likely to happen again.
Fixes: a222a7f0bb ('iommu/vt-d: Implement page request handling')
Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
Merge "Broadcom soc changes for v4.4 (try 2)" from Florian Fainelli:
This pull request contains the following Broadcom SoC platform and driver changes:
- Brian Norris create a drivers/soc/brcmstb/ stub as a place holder for SoC-specific
code which is coming next
- Florian Fainelli adds support for configuring the BCM7xxx SoCs Bus Interface Unit
with their specific write-pairing setting, which must be saved and restored during
system-wide suspend/resume, and consequently updates the brcmstb machine code to
initialize the BIU
- Jon Mason adds support for the Northstar Plus SoCs by introducing a custom machine
descriptor matching their compatible string and setting up the PL310 L2 cache and
enabling the relevant ARM errata for their Cortex-A9
* tag 'arm-soc/for-4.4/soc' of http://github.com/Broadcom/stblinux:
ARM: brcmstb: Setup BIU control registers during boot
soc: brcmstb: Add Bus Interface Unit control setup
soc: add stubs for brcmstb SoC's
ARM: NSP: Add basic support for Broadcom Northstar Plus SoC
It follows btrfs BTRFS_IOC_CLONE_RANGE lead on ioctl number and
arguments.
Signed-off-by: Peng Tao <tao.peng@primarydata.com>
Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
draft-ietf-nfsv4-minorversion2-38.txt says:
Both cl_src_offset and
cl_dst_offset must be aligned to the clone block size Section 12.2.1.
The number of bytes to be cloned must be a multiple of the clone
block size, except in the case in which cl_src_offset plus the number
of bytes to be cloned is equal to the source file size.
Signed-off-by: Peng Tao <tao.peng@primarydata.com>
Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
NFSv42 CLONE operation is supposed to respect it.
Signed-off-by: Peng Tao <tao.peng@primarydata.com>
Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
It can be called by user space to CLONE two files.
Follow btrfs lead and define NFS_IOC_CLONE same as BTRFS_IOC_CLONE.
Thus we don't mess up userspace with too many ioctls.
Signed-off-by: Peng Tao <tao.peng@primarydata.com>
Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
L2 caches optimization for Armada XP
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
iEYEABECAAYFAlYX5kYACgkQCwYYjhRyO9XRAACgh9ZuCj/Bxgsql5tHL2fLPhMw
OzwAn3RJqjzRRMLcZ/TmgTPNbNwz3hEB
=bO2O
-----END PGP SIGNATURE-----
Merge tag 'mvebu-soc-4.4-1' of git://git.infradead.org/linux-mvebu into next/soc
Merge "mvebu soc for 4.4 (part 1)" from Gregory CLEMENT:
L2 caches optimization for Armada XP
* tag 'mvebu-soc-4.4-1' of git://git.infradead.org/linux-mvebu:
ARM: mvebu: add support to clear shared L2 bit on Armada XP
The vmstat code uses "schedule_delayed_work_on()" to do the initial
startup of the delayed work on the right CPU, but then once it was
started it would use the non-cpu-specific "schedule_delayed_work()" to
re-schedule it on that CPU.
That just happened to schedule it on the same CPU historically (well, in
almost all situations), but the code _requires_ this work to be per-cpu,
and should say so explicitly rather than depend on the non-cpu-specific
scheduling to schedule on the current CPU.
The timer code is being changed to not be as single-minded in always
running things on the calling CPU.
See also commit 874bbfe600 ("workqueue: make sure delayed work run in
local cpu") that for now maintains the local CPU guarantees just in case
there are other broken users that depended on the accidental behavior.
Cc: Christoph Lameter <cl@linux.com>
Cc: Tejun Heo <tj@kernel.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
- Remove legacy omap3 ISP code as the driver is DT only
- Remove VoiceBlue board support as it's been unused over
10 years now
- Remove unused polarity control macros for TWL
- Remove two unneeded semicolons
- Remove unused core dpll code for reprogramming the rates
Note that this branch is against v4.3-rc4 as that contains critical
MMC related fixes to boot with MMC working on most omaps.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
iQIcBAABAgAGBQJWHrwcAAoJEBvUPslcq6Vzv+EP/joH02GVQmwJKREznkp1L+Jg
eaJ3P9Os7p2cHkz68XEq79Cq/O4Zh3yupS4O9OeGn6XhqcG+MnXFETVYKIV3WJ7s
QvSuRxJrc6dStbPKAcsmgczJNNE+8mgFkI4rrJ75d17SZ+ybaQVQRziuRLMq9YX5
GIQDayYKlBYs5gb21h7qU9O4zHzkNIga/yKydOZJQ0GZ8ZJhQ68KZtfXPCrZUquD
x2DVecGsPe+CfoDjGppjngD7suTQteIALno/VoIXPhtewwDKuYXW82hfNL9/WXF3
OSVWkxp/mcldJJzwJhoCv2kN4Dmp0GaDVqTNn2tpxMUpEeDGjRnrDc3al4z2k87f
9A2qs4CRSSnDcTpVqNBUSSF6BOBpacHrUZVtlm9YF5e+UyIzI+MCwOM6Sn5EusNg
ENyPgV1HGkUhyRPEeBJsPzRF4NOMDyyLiPeIpwcTXATl6udBHTV1L9yM7yhPEtJg
9ftCz9JGVO1EjD90By9YZcCK37LV1MaFRliWfnXjodGraWY7x3WlYsdLV4Cv3t+t
yp6HFufciHrthfoSERnb2nEK6g2N9nITeaiBhknrTN/spfs+0uwkjumwa7AIdfNl
4kvJpdge+UmhrNiFktvbhjtqEP5Nq3LUGDdvMr2rvppP8HCiss6+K51otzSeo8ny
BTrFLhEU8GEzVplgg7Er
=d5vJ
-----END PGP SIGNATURE-----
Merge tag 'omap-for-v4.4/cleanup-pt1' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into next/cleanup
Merge "Clean-up for omaps for v4.4 merge window" from Tony Lindgren:
- Remove legacy omap3 ISP code as the driver is DT only
- Remove VoiceBlue board support as it's been unused over
10 years now
- Remove unused polarity control macros for TWL
- Remove two unneeded semicolons
- Remove unused core dpll code for reprogramming the rates
Note that this branch is against v4.3-rc4 as that contains critical
MMC related fixes to boot with MMC working on most omaps.
* tag 'omap-for-v4.4/cleanup-pt1' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap:
ARM: OMAP3: clock: remove un-used core dpll re-program code
ARM: OMAP2+: Remove unneeded semicolons
ARM: OMAP3: vc: Remove unused macros
ARM: OMAP1: Remove board support for VoiceBlue board
ARM: OMAP2+: Remove legacy OMAP3 ISP instantiation
Pull workqueue fixlet from Tejun Heo:
"Single patch to make delayed work always be queued on the local CPU"
This is not actually something we should guarantee, but it's something
we by accident have historically done, and at least one call site has
grown to depend on it.
I'm going to fix that known broken callsite, but in the meantime this
makes the accidental behavior be explicit, just in case there are other
cases that might depend on it.
* 'for-4.3-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq:
workqueue: make sure delayed work run in local cpu
use the CR_C define instead of a literal value
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
iEYEABECAAYFAlYX5PQACgkQCwYYjhRyO9WE/wCdHL0jkJKufbzUMo3P1ZTfGvKR
iHUAn2hB1f1k3xKFV8HP6XLO7jhc29LJ
=NZow
-----END PGP SIGNATURE-----
Merge tag 'mvebu-cleanup-4.4-1' of git://git.infradead.org/linux-mvebu into next/cleanup
Merge "mvebu cleanup for 4.4 (part 1)" from Gregory CLEMENT:
use the CR_C define instead of a literal value
* tag 'mvebu-cleanup-4.4-1' of git://git.infradead.org/linux-mvebu:
ARM: mvebu: Use a CR_C constant instead of a hard-coded one
Resources are reallocated for requeued commands, so unmap and release
the iod for the failed command.
It's a pretty bad memory leak and causes a kernel hang if you remove a
drive because of a busy dma pool. You'll get messages spewing like this:
nvme 0000:xx:xx.x: dma_pool_destroy prp list 256, ffff880420dec000 busy
and lock up pci and the driver since removal never completes while
holding a lock.
Cc: stable@vger.kernel.org
Cc: <stable@vger.kernel.org> # 4.0.x-
Signed-off-by: Keith Busch <keith.busch@intel.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Jens Axboe <axboe@fb.com>
Add cpu hotplug support for berlin SoCs such as BG2 and BG2Q. These SoC
don't support power off cpu independently, but we also want cpu hotplug
support in these SoCs. We achieve this goal by putting the dying CPU in
WFI state after the coherency is disabled, then asserting the dying CPU
reset bit to put the CPU in reset state.
Signed-off-by: Jisheng Zhang <jszhang@marvell.com>
Signed-off-by: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
In Berlin SoCs, there are two kinds of cpu reset control registers: the
first one's corresponding bits will be self-cleared after some cycles,
while the second one's bits won't. Previously the first kind of reset
control register is used, this patch uses the second kind one to prepare
for the next hotplug commit.
Signed-off-by: Jisheng Zhang <jszhang@marvell.com>
Signed-off-by: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
Add cpuclk in the Berlin BG2Q clock driver. This clk has a divider
fixed to 1.
Signed-off-by: Antoine Tenart <antoine.tenart@free-electrons.com>
Acked-by: Stephen Boyd <sboyd@codeaurora.org>
Signed-off-by: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
- add missing CLKID_CPU for Berlin BG2Q
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
iQIcBAABAgAGBQJWH/JEAAoJEN2kpao7fSL4bvMQAK8ps1rMEEywSRXvEjBBBSYr
OSiIinSOEycUDzWqaLJQOvzPWxDGVn0a5xdPvOt2/kDY70UriY1YQ/GouFymumEl
v7CqrUgX73D5/NbqlM4UTWivRsHFaQQyCKdfdiBVKH0bWv2Q4FW7EzO4RGPZQG03
tZIV+KbxtTkyTw3PJyt5WzmBVlr1Ll8whWhYpHHlyku1FgzQGGLEuL/M7/fEpWvP
ynBpDQpTVyA4WtGwk/mJ+IzqO+ohRohQHWo1k8FoicSIngejbl89KVNd+WzHJaq+
1b3LiDrPdM7KYjxqUNuf4vuD2Izo31DJuXOxlSK4rgofF+dh3JrTtsrqgRw1m6Wj
8RwJfN94F3S/qEbw8wY6dsAGcOzhg+pLl4Q0lyDwXW625TX7izHFifRJbrC8NJnH
XSoPJkUQphYpBS+1ZKTKZhumhCDafCF1YYUXBDvkd61Eq2TZ2NwoSbxOfjytItrB
aS/9vf1S24Bjs2ZG1PicVTIz1G9SEu+GwCbCHEjLWIcYmKWz3m8ej4N5I5rVUsVf
0IEvAPzoihbYIQUhVjny00dH+6rEvds6aoBiVC/DX9LwwDKk0DPiFOhuVAUl2j6f
xbMu2HsIMlP51f0Jkod3XG1lV7dRF1hyb+kTCgBWSdsPNTN/2AHA3vaM92qIOINp
qlm+cyIgU045c40XDjJl
=JoAi
-----END PGP SIGNATURE-----
Merge tag 'berlin-dt-cpuclk-for-4.4-1' of git://git.infradead.org/users/hesselba/linux-berlin into next/dt
Pull "Marvell Berlin DT CPU clock for 4.4" from Sebastian Hesselbarth:
- add missing CLKID_CPU for Berlin BG2Q
* tag 'berlin-dt-cpuclk-for-4.4-1' of git://git.infradead.org/users/hesselba/linux-berlin:
ARM: berlin: dts: add CLKID_CPU for BG2Q
Marvell Berlin BG2Q SoC also has a clock for the CPU, add a
corresponding CLKID to the dt-binding include.
Signed-off-by: Antoine Tenart <antoine.tenart@free-electrons.com>
Signed-off-by: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
irqbalance uses sysfs attributes to populate its internal database, which
is then used to bind the IRQ to the appropriate NUMA node.
On a device accepting multiple MSIs and with interrupt remapping enabled,
only the first IRQ entry is exported in the "msi_irqs" directory. This
results in irqbalance having no clue of the NUMA affinity for the extra
IRQs, so it can't bind them to the correct node.
Export all MSI interrupts as sysfs attributes when relevant.
[bhelgaas: changelog]
Signed-off-by: Romain Bezut <rbezut@gmail.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Acked-by: Thomas Gleixner <tglx@linutronix.de>
We still had one lingering RMW in ivb_sprite_disable(), all the other
RMWs were killed off from the sprite code some time ago. Kill the
straggler too.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>