Makes the output slightly less useful, in that objects with the same
class handle can't be distinguished from each other now.
Upcoming commits will name objects with user-readable strings to fix
this problem.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
gpuobj has a condition of (bar && bar->alloc) around usage to avoid
some nasty ordering issues (which, i've now been reminded to add a
todo about fixing...) between bar and vm.
The bar->alloc part of the condition isn't currently necessary (it
used to be, another change made bar always NULL where it matters),
so we got lucky. That won't be the case for much longer.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Makes things a bit more readable. This is specially important now as
upcoming commits are going to be gradually removing the use of macros
for down-casts, in favour of compile-time checking.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Has additional safeties for one. For two, needed for an upcoming
commit that removes abuse of nouveau_object.engine.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
refs is better than ref_count to record a struct's ref count.
Signed-off-by: Zhao Lei <zhaolei@cn.fujitsu.com>
Suggested-by: David Sterba <dsterba@suse.cz>
Signed-off-by: Chris Mason <clm@fb.com>
So we can check raid56 with:
(map->type & BTRFS_BLOCK_GROUP_RAID56_MASK)
instead of long:
(map->type & (BTRFS_BLOCK_GROUP_RAID5 | BTRFS_BLOCK_GROUP_RAID6))
Signed-off-by: Zhao Lei <zhaolei@cn.fujitsu.com>
Signed-off-by: Miao Xie <miaox@cn.fujitsu.com>
Signed-off-by: Chris Mason <clm@fb.com>
Corrent code use many kinds of "clever" way to determine operation
target's raid type, as:
raid_map != NULL
or
raid_map[MAX_NR] == RAID[56]_Q_STRIPE
To make code easy to maintenance, this patch put raid type into
bbio, and we can always get raid type from bbio with a "stupid"
way.
Signed-off-by: Zhao Lei <zhaolei@cn.fujitsu.com>
Signed-off-by: Miao Xie <miaox@cn.fujitsu.com>
Signed-off-by: Chris Mason <clm@fb.com>
scrub_setup_recheck_block() have many arguments but most of them
can be get from one of them, we can remove them to make code clean.
Some other cleanup for that function also included in this patch.
Signed-off-by: Zhao Lei <zhaolei@cn.fujitsu.com>
Signed-off-by: Miao Xie <miaox@cn.fujitsu.com>
Signed-off-by: Chris Mason <clm@fb.com>
The code are similar, combine them to make code clean and easy to maintenance.
Some lost condition are also completed with benefit of this combination.
Signed-off-by: Zhao Lei <zhaolei@cn.fujitsu.com>
Signed-off-by: Miao Xie <miaox@cn.fujitsu.com>
Signed-off-by: Chris Mason <clm@fb.com>
In corrent code, code of finding-right-mirror and writing-to-target
are mixed in logic, if we find a right mirror but failed in writing
to target, it will treat as "hadn't found right block", and fill the
target with sblock_bad.
Actually, "failed in writing to target" does not mean "source
block is wrong", this patch separate above two condition in logic,
and do some cleanup to make code clean.
Signed-off-by: Zhao Lei <zhaolei@cn.fujitsu.com>
Signed-off-by: Miao Xie <miaox@cn.fujitsu.com>
Signed-off-by: Chris Mason <clm@fb.com>
Use break instead of useless loop should be more suitable in this
case.
Signed-off-by: Zhao Lei <zhaolei@cn.fujitsu.com>
Signed-off-by: Miao Xie <miaox@cn.fujitsu.com>
Signed-off-by: Chris Mason <clm@fb.com>
1: Remove no-need DEFINE_WAIT(wait)
2: Add likely() for BTRFS_FS_STATE_DEV_REPLACING condition
3: Use while loop instead of goto
Signed-off-by: Zhao Lei <zhaolei@cn.fujitsu.com>
Signed-off-by: Miao Xie <miaox@cn.fujitsu.com>
Signed-off-by: Chris Mason <clm@fb.com>
It is always 1 in this place, because !1 case was already jumped
out in previous code.
Signed-off-by: Zhao Lei <zhaolei@cn.fujitsu.com>
Signed-off-by: Miao Xie <miaox@cn.fujitsu.com>
Signed-off-by: Chris Mason <clm@fb.com>
if (sctx->is_dev_replace && !is_metadata && !have_csum) {
...
goto nodatasum_case;
}
...
nodatasum_case:
WARN_ON(sctx->is_dev_replace);
In above code, nodatasum_case marker should be moved after
WARN_ON().
Signed-off-by: Zhao Lei <zhaolei@cn.fujitsu.com>
Signed-off-by: Miao Xie <miaox@cn.fujitsu.com>
Signed-off-by: Chris Mason <clm@fb.com>
1: ref_count is simple than current RBIO_HOLD_BBIO_MAP_BIT flag
to keep btrfs_bio's memory in raid56 recovery implement.
2: free function for bbio will make code clean and flexible, plus
forced data type checking in compile.
Changelog v1->v2:
Rename following by David Sterba's suggestion:
put_btrfs_bio() -> btrfs_put_bio()
get_btrfs_bio() -> btrfs_get_bio()
bbio->ref_count -> bbio->refs
Signed-off-by: Zhao Lei <zhaolei@cn.fujitsu.com>
Signed-off-by: Miao Xie <miaox@cn.fujitsu.com>
Signed-off-by: Chris Mason <clm@fb.com>
It can make code more simple and clear, we need not care about
free bbio and raid_map together.
Signed-off-by: Miao Xie <miaox@cn.fujitsu.com>
Signed-off-by: Zhao Lei <zhaolei@cn.fujitsu.com>
Signed-off-by: Chris Mason <clm@fb.com>
It can avoid complex calculation of real stripes in sort,
moreover, we can clean up code of sorting tgtdev_map because it
will be in order initially.
Signed-off-by: Zhao Lei <zhaolei@cn.fujitsu.com>
Signed-off-by: Miao Xie <miaox@cn.fujitsu.com>
Signed-off-by: Chris Mason <clm@fb.com>
We add the number of stripes on target devices into bbio->num_stripes
if we are under device replacement, and we just sort the raid_map of
those stripes that not on the target devices, so if when we need
real raid_map, we need skip the stripes on the target devices.
Signed-off-by: Zhao Lei <zhaolei@cn.fujitsu.com>
Signed-off-by: Miao Xie <miaox@cn.fujitsu.com>
Signed-off-by: Chris Mason <clm@fb.com>
If we have an inode with a large number of hard links, some of which may
be extrefs, turn a regular ref into an extref, fsync the inode and then
replay the fsync log (after a crash/reboot), we can endup with an fsync
log that makes the replay code always fail with -EOVERFLOW when processing
the inode's references.
This is easy to reproduce with the test case I made for xfstests. Its steps
are the following:
_scratch_mkfs "-O extref" >> $seqres.full 2>&1
_init_flakey
_mount_flakey
# Create a test file with 3001 hard links. This number is large enough to
# make btrfs start using extrefs at some point even if the fs has the maximum
# possible leaf/node size (64Kb).
echo "hello world" > $SCRATCH_MNT/foo
for i in `seq 1 3000`; do
ln $SCRATCH_MNT/foo $SCRATCH_MNT/foo_link_`printf "%04d" $i`
done
# Make sure all metadata and data are durably persisted.
sync
# Now remove one link, add a new one with a new name, add another new one with
# the same name as the one we just removed and fsync the inode.
rm -f $SCRATCH_MNT/foo_link_0001
ln $SCRATCH_MNT/foo $SCRATCH_MNT/foo_link_3001
ln $SCRATCH_MNT/foo $SCRATCH_MNT/foo_link_0001
rm -f $SCRATCH_MNT/foo_link_0002
ln $SCRATCH_MNT/foo $SCRATCH_MNT/foo_link_3002
ln $SCRATCH_MNT/foo $SCRATCH_MNT/foo_link_3003
$XFS_IO_PROG -c "fsync" $SCRATCH_MNT/foo
# Simulate a crash/power loss. This makes sure the next mount
# will see an fsync log and will replay that log.
_load_flakey_table $FLAKEY_DROP_WRITES
_unmount_flakey
_load_flakey_table $FLAKEY_ALLOW_WRITES
_mount_flakey
# Check that the number of hard links is correct, we are able to remove all
# the hard links and read the file's data. This is just to verify we don't
# get stale file handle errors (due to dangling directory index entries that
# point to inodes that no longer exist).
echo "Link count: $(stat --format=%h $SCRATCH_MNT/foo)"
[ -f $SCRATCH_MNT/foo ] || echo "Link foo is missing"
for ((i = 1; i <= 3003; i++)); do
name=foo_link_`printf "%04d" $i`
if [ $i -eq 2 ]; then
[ -f $SCRATCH_MNT/$name ] && echo "Link $name found"
else
[ -f $SCRATCH_MNT/$name ] || echo "Link $name is missing"
fi
done
rm -f $SCRATCH_MNT/foo_link_*
cat $SCRATCH_MNT/foo
rm -f $SCRATCH_MNT/foo
status=0
exit
The fix is simply to correct the overflow condition when overwriting a
reference item because it was wrong, trying to increase the item in the
fs/subvol tree by an impossible amount. Also ensure that we don't insert
one normal ref and one ext ref for the same dentry - this happened because
processing a dir index entry from the parent in the log happened when
the normal ref item was full, which made the logic insert an extref and
later when the normal ref had enough room, it would be inserted again
when processing the ref item from the child inode in the log.
This issue has been present since the introduction of the extrefs feature
(2012).
A test case for xfstests follows soon. This test only passes if the previous
patch titled "Btrfs: fix fsync when extend references are added to an inode"
is applied too.
Signed-off-by: Filipe Manana <fdmanana@suse.com>
Signed-off-by: Chris Mason <clm@fb.com>
If we added an extended reference to an inode and fsync'ed it, the log
replay code would make our inode have an incorrect link count, which
was lower then the expected/correct count.
This resulted in stale directory index entries after deleting some of
the hard links, and any access to the dangling directory entries resulted
in -ESTALE errors because the entries pointed to inode items that don't
exist anymore.
This is easy to reproduce with the test case I made for xfstests, and
the bulk of that test is:
_scratch_mkfs "-O extref" >> $seqres.full 2>&1
_init_flakey
_mount_flakey
# Create a test file with 3001 hard links. This number is large enough to
# make btrfs start using extrefs at some point even if the fs has the maximum
# possible leaf/node size (64Kb).
echo "hello world" > $SCRATCH_MNT/foo
for i in `seq 1 3000`; do
ln $SCRATCH_MNT/foo $SCRATCH_MNT/foo_link_`printf "%04d" $i`
done
# Make sure all metadata and data are durably persisted.
sync
# Add one more link to the inode that ends up being a btrfs extref and fsync
# the inode.
ln $SCRATCH_MNT/foo $SCRATCH_MNT/foo_link_3001
$XFS_IO_PROG -c "fsync" $SCRATCH_MNT/foo
# Simulate a crash/power loss. This makes sure the next mount
# will see an fsync log and will replay that log.
_load_flakey_table $FLAKEY_DROP_WRITES
_unmount_flakey
_load_flakey_table $FLAKEY_ALLOW_WRITES
_mount_flakey
# Now after the fsync log replay btrfs left our inode with a wrong link count N,
# which was smaller than the correct link count M (N < M).
# So after removing N hard links, the remaining M - N directory entries were
# still visible to user space but it was impossible to do anything with them
# because they pointed to an inode that didn't exist anymore. This resulted in
# stale file handle errors (-ESTALE) when accessing those dentries for example.
#
# So remove all hard links except the first one and then attempt to read the
# file, to verify we don't get an -ESTALE error when accessing the inodel
#
# The btrfs fsck tool also detected the incorrect inode link count and it
# reported an error message like the following:
#
# root 5 inode 257 errors 2001, no inode item, link count wrong
# unresolved ref dir 256 index 2978 namelen 13 name foo_link_2976 filetype 1 errors 4, no inode ref
#
# The fstests framework automatically calls fsck after a test is run, so we
# don't need to call fsck explicitly here.
rm -f $SCRATCH_MNT/foo_link_*
cat $SCRATCH_MNT/foo
status=0
exit
So make sure an fsync always flushes the delayed inode item, so that the
fsync log contains it (needed in order to trigger the link count fixup
code) and fix the extref counting function, which always return -ENOENT
to its caller (and made it assume there were always 0 extrefs).
This issue has been present since the introduction of the extrefs feature
(2012).
A test case for xfstests follows soon.
Signed-off-by: Filipe Manana <fdmanana@suse.com>
Signed-off-by: Chris Mason <clm@fb.com>
If we have an inode (file) with a link count greater than 1, remove
one of its hard links, fsync the inode, power fail/crash and then
replay the fsync log on the next mount, we end up getting the parent
directory's metadata inconsistent - its i_size still reflects the
deleted hard link and has dangling index entries (with no matching
inode reference entries). This prevents the directory from ever being
deletable, as its i_size can never decrease to BTRFS_EMPTY_DIR_SIZE
even if all of its children inodes are deleted, and the dangling index
entries can never be removed (as they point to an inode that does not
exist anymore).
This is easy to reproduce with the following excerpt from the test case
for xfstests that I just made:
_scratch_mkfs >> $seqres.full 2>&1
_init_flakey
_mount_flakey
# Create a test file with 2 hard links in the same directory.
mkdir -p $SCRATCH_MNT/a/b
echo "hello world" > $SCRATCH_MNT/a/b/foo
ln $SCRATCH_MNT/a/b/foo $SCRATCH_MNT/a/b/bar
# Make sure all metadata and data are durably persisted.
sync
# Now remove one of the hard links and fsync the inode.
rm -f $SCRATCH_MNT/a/b/bar
$XFS_IO_PROG -c "fsync" $SCRATCH_MNT/a/b/foo
# Simulate a crash/power loss. This makes sure the next mount
# will see an fsync log and will replay that log.
_load_flakey_table $FLAKEY_DROP_WRITES
_unmount_flakey
_load_flakey_table $FLAKEY_ALLOW_WRITES
_mount_flakey
# Remove the last hard link of the file and attempt to remove its parent
# directory - this failed in btrfs because the fsync log and replay code
# didn't decrement the parent directory's i_size and left dangling directory
# index entries - this made the btrfs rmdir implementation always fail with
# the error -ENOTEMPTY.
#
# The dangling directory index entries were visible to user space, but it was
# impossible to do anything on them (unlink, open, read, write, stat, etc)
# because the inode they pointed to did not exist anymore.
#
# The parent directory's metadata inconsistency (stale index entries) was
# also detected by btrfs' fsck tool, which is run automatically by the fstests
# framework when the test finishes. The error message reported by fsck was:
#
# root 5 inode 259 errors 2001, no inode item, link count wrong
# unresolved ref dir 258 index 3 namelen 3 name bar filetype 1 errors 4, no inode ref
#
rm -f $SCRATCH_MNT/a/b/*
rmdir $SCRATCH_MNT/a/b
rmdir $SCRATCH_MNT/a
To fix this just make sure that after an unlink, if the inode is fsync'ed,
he parent inode is fully logged in the fsync log.
A test case for xfstests follows soon.
Signed-off-by: Filipe Manana <fdmanana@suse.com>
Signed-off-by: Chris Mason <clm@fb.com>
Very often our extent buffer's header generation doesn't match the current
transaction's id or it is also referenced by other trees (snapshots), so
we don't need the corresponding block group cache object. Therefore only
search for it if we are going to use it, so we avoid an unnecessary search
in the block groups rbtree (and acquiring and releasing its spinlock).
Freeing a tree block is performed when COWing or deleting a node/leaf,
which implies we are holding the node/leaf's parent node lock, therefore
reducing the amount of time spent when freeing a tree block helps reducing
the amount of time we are holding the parent node's lock.
For example, for a run of xfstests/generic/083, the block group cache
object was needed only 682 times for a total of 226691 calls to free
a tree block.
Signed-off-by: Filipe Manana <fdmanana@suse.com>
Signed-off-by: Chris Mason <clm@fb.com>
Currently there's a 4B hole in the structure between refs and state and there
are only 16 bits used so we can make it unsigned. This will get a better
packing and may save some stack space for local variables.
The size of extent_state gets reduced by 8B and there are usually a lot
of slab objects.
struct extent_state {
u64 start; /* 0 8 */
u64 end; /* 8 8 */
struct rb_node rb_node; /* 16 24 */
wait_queue_head_t wq; /* 40 24 */
/* --- cacheline 1 boundary (64 bytes) --- */
atomic_t refs; /* 64 4 */
/* XXX 4 bytes hole, try to pack */
long unsigned int state; /* 72 8 */
u64 private; /* 80 8 */
/* size: 88, cachelines: 2, members: 7 */
/* sum members: 84, holes: 1, sum holes: 4 */
/* last cacheline: 24 bytes */
};
Signed-off-by: David Sterba <dsterba@suse.cz>
Signed-off-by: Chris Mason <clm@fb.com>
This has been confusing people for too long, the message is really just
informative.
CC: <stable@vger.kernel.org> # 3.10+
Signed-off-by: David Sterba <dsterba@suse.cz>
Signed-off-by: Chris Mason <clm@fb.com>
The errors are worth noting and might get missed with INFO level.
Signed-off-by: David Sterba <dsterba@suse.cz>
Signed-off-by: Chris Mason <clm@fb.com>
All error conditions from open_ctree shall be ERR. Warning would
suggest that something's wrong and we can continue.
Signed-off-by: David Sterba <dsterba@suse.cz>
Signed-off-by: Chris Mason <clm@fb.com>
Several messages that point to some internal problem, level INFO is
wrong here.
Signed-off-by: David Sterba <dsterba@suse.cz>
Signed-off-by: Chris Mason <clm@fb.com>
We were incorrectly detecting when the target key didn't exist anymore
after releasing the path and re-searching the tree. This could make
us split or duplicate (btrfs_split_item() and btrfs_duplicate_item()
are its only callers at the moment) an item when we should not.
For the case of duplicating an item, we currently only duplicate
checksum items (csum tree) and file extent items (fs/subvol trees).
For the checksum items we end up overriding the item completely,
but for file extent items we update only some of their fields in
the copy (done in __btrfs_drop_extents), which means we can end up
having a logical corruption for some values.
Also for the case where we duplicate a file extent item it will make
us produce a leaf with a wrong key order, as btrfs_duplicate_item()
advances us to the next slot and then its caller sets a smaller key
on the new item at that slot (like in __btrfs_drop_extents() e.g.).
Alternatively if the tree search in setup_leaf_for_split() leaves
with path->slots[0] == btrfs_header_nritems(path->nodes[0]), we end
up accessing beyond the leaf's end (when we check if the item's size
has changed) and make our caller insert an item at the invalid slot
btrfs_header_nritems(path->nodes[0]) + 1, causing an invalid memory
access if the leaf is full or nearly full.
This issue has been present since the introduction of this function
in 2009:
Btrfs: Add btrfs_duplicate_item
commit ad48fd7546
Signed-off-by: Filipe Manana <fdmanana@suse.com>
Signed-off-by: Chris Mason <clm@fb.com>
support for CDCE949 clock generator.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (GNU/Linux)
iQIcBAABAgAGBQJUvmoxAAoJEGFBu2jqvgRNKmIP+QFtkW4TgW1Sexvm4j07Xzd/
7moYcD3Nv1xrVUg3hD+oVkR17YeaFb7S1tZ/G64XHV3nXPodwbkF19LnsVRID4Bn
ohiQJMZ8gKd3ISqp+gsMbZribG6YldlITK9Zqv8FxRc41hZwoAnzdOnDZwpQdz4S
PwP6pxu9KPEnKTeofDh602YE+M0DcQ1g9P43Gv/5NIGRJxC+usgseZkhkNIQwpGQ
kh4OcPQDxb+oD/fncVaNj2ipUEAu4/4vUPlxdGKGwnMgZw3e7uuiwB6TOaWEKHk7
Zdcri+h1eaKVEZTAMw682Zbb0afjjEujeKc85wywALm44BdyB/T8UKFHgIRgyDaC
aO1us1rh9bNqNEN5+CQVhWoip7u2CgY3Jj58oTqp2aIckPViuggupe3k2wl+w0va
VQpVkbeR6zztW4YkzufY01iICb5fH0qVareJDXHiNPjxIj5DAVGeQBEKIkmvy0Lv
hDIwX/0Pv2kAJoZ5uqDI7wiwRFNn/C4cF0Y1NFrg5gQn++QBL5/DWXozRGYI869a
0h0pVo6OmoXYRvRTCTq9HA+nUzvSJ8ScHSnsy9KPfYC3GHLPZycAyn36AVu68Dlb
t+h2brpsYA/acavJxyEdUDalU0v/llC9/rSVnnwGOfGzPu6GFSJ7EOsHonX7ydVF
oniAlKgXc2m3tmDBTS90
=mzqp
-----END PGP SIGNATURE-----
Merge tag 'davinci-for-v3.20/cleanup' of git://git.kernel.org/pub/scm/linux/kernel/git/nsekhar/linux-davinci into next/cleanup
Merge "DaVinci cleanups for v3.20" from Sekhar Nori:
Removes an unused function and the unused
support for CDCE949 clock generator.
* tag 'davinci-for-v3.20/cleanup' of git://git.kernel.org/pub/scm/linux/kernel/git/nsekhar/linux-davinci:
ARM: davinci: Remove CDCE949 driver
ARM: davinci: serial.c: remove unused serial_read_reg()
Signed-off-by: Olof Johansson <olof@lixom.net>
Currently any time we try to update the block groups on disk we will walk _all_
block groups and check for the ->dirty flag to see if it is set. This function
can get called several times during a commit. So if you have several terabytes
of data you will be a very sad panda as we will loop through _all_ of the block
groups several times, which makes the commit take a while which slows down the
rest of the file system operations.
This patch introduces a dirty list for the block groups that we get added to
when we dirty the block group for the first time. Then we simply update any
block groups that have been dirtied since the last time we called
btrfs_write_dirty_block_groups. This allows us to clean up how we write the
free space cache out so it is much cleaner. Thanks,
Signed-off-by: Josef Bacik <jbacik@fb.com>
Signed-off-by: Chris Mason <clm@fb.com>
I've been overloading root->dirty_list to keep track of dirty roots and which
roots need to have their commit roots switched at transaction commit time. This
could cause us to lose an update to the root which could corrupt the file
system. To fix this use a state bit to know if the root is dirty, and if it
isn't set we go ahead and move the root to the dirty list. This way if we
re-dirty the root after adding it to the switch_commit list we make sure to
update it. This also makes it so that the extent root is always the last root
on the dirty list to try and keep the amount of churn down at this point in the
commit. Thanks,
Signed-off-by: Josef Bacik <jbacik@fb.com>
Signed-off-by: Chris Mason <clm@fb.com>
The register bit fields are a little different, so add an entry and a
compatible string to accommodate them.
Signed-off-by: Kevin Cernekee <cernekee@gmail.com>
Signed-off-by: Sebastian Reichel <sre@kernel.org>
Some of the older chips used different bits to arm and trigger the reset.
Add the infrastructure needed to specify this through the "compatible"
string.
Signed-off-by: Kevin Cernekee <cernekee@gmail.com>
Signed-off-by: Sebastian Reichel <sre@kernel.org>
Now that the driver doesn't use any ARM-specific headers, it is safe
to build on MIPS or with COMPILE_TEST.
Signed-off-by: Kevin Cernekee <cernekee@gmail.com>
Signed-off-by: Sebastian Reichel <sre@kernel.org>
* Instantiate GIC from C board code in legacy builds on r8a7778 and r8a7779
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
iQIcBAABAgAGBQJUvax/AAoJENfPZGlqN0++7d4P/ic/OC82lPZuhmqCzdE03ptb
8wvQNiQdHHA1q1hVZPC4cVGDqIymv9Si5q8AliPT5hqT2iSZIUjlTPe4WO350zSl
qZZoAM4Qk6DzxFNw6I/+j7HcR9NEzCBpfCEkNH7peXzmrlGnAdBPKY0Lw9wf47a/
uh4xwaKsi7583AN2m1NB9jYESUNXyP/lWEsA+goUqIZTudJLpcvML6y96nHJ9JEv
5MXFAwVVDJ+huz6Q8hG3ImviUihiIWX25oQ2pmhFczPIf+RDHWDMhQd5Xp/5VBVn
+3ckUFjXgzhYp5BvPvFhrU46nHolGALDbEIOGgMZwM8GRIA9ffAttK3j4Du1ixa3
XDrNCbfOCeXfRAr+HcTHdwUtKcJxVz9oVZmlOMzc6yZfrAR0Y5dz3M8iUa2tqFqK
+DUGstqm26rSwDVGkY7vElRz5nnQhb0/yWpUrO2Augsh04e28V5SkFiIHRFWJ/uT
53h8qbqyDChw9ZVqg0Na01N0aVRa5a1XpYqtAEs+ta+y3/A35NVBToXhVh3aOQUt
qAdFrwykyR32bMR0vUg8XVLm2rcaV87D6MDKGElKlkTxPoDK9+RPzfiu0sK4fmfV
TULb9izepRRfJLDWTeDJm3uxbt1qaOVc1ry24R4HvDsC48BmfuZEVedIn9+Mp+SW
xhrHiW1bUa3NL/p2BuPX
=Mb4f
-----END PGP SIGNATURE-----
Merge tag 'renesas-soc-fixes2-for-v3.19' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas into fixes
Merge "Second Round of Renesas ARM Based SoC Fixes for v3.19" from Simon
Horman:
* Instantiate GIC from C board code in legacy builds on r8a7778 and r8a7779
* tag 'renesas-soc-fixes2-for-v3.19' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas:
ARM: shmobile: r8a7779: Instantiate GIC from C board code in legacy builds
ARM: shmobile: r8a7778: Instantiate GIC from C board code in legacy builds
Signed-off-by: Olof Johansson <olof@lixom.net>
* Add DT support for PM domains
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
iQIcBAABAgAGBQJUuIP9AAoJENfPZGlqN0++1YgP/jvxSCgTr9incpvoEeXsG7Pd
/EK0N15UBfJFlhy5oiTrjyCnrPqfqlT1cz39GTUy6s/4UpgjuXRr8lhbpaJrSH2g
N62EOv89rAChiGtxHwS4sXPvQPjcOIeQEsaq1C9W3IBx88bKpUQU9nbJtbuCbwUX
eSmsk9mJH+mZapNd+xo7Ksnq7Fjovx/ja+ZNu+1V8IIXOXKnnuv7SiV1ATU9pE+a
Bkrgjjw7zLof78xbtx2FInWj6vLGayqu3vAWt0zncXZBdoOuigavUjY275XYZ9eK
zdZwBW/UFecsopVDw653OnRAewuv+iWGKutJbEgK+Y5uT2wg4Q59/sp8E3fyKDwv
DNaopIJx9NhVNQZNMTT4/y3cV2xSNZqgBXfYt1EFDu01c1UIOXX+RGmI0RHgGoRL
eD8DZmT6z0iCF0Fn6rSZouFrUqghnUXWtrm4IkzNKTpsSoB+o5FfwG6b/wF0JHfw
til1Tx//lAChLMbUpNSIG88ng/4yF+UugRK0xoUVGyCMXLQaXhPRCd9EUb0rr5aN
Ac9rRrqU4anQsTSQewUkT7hyuBUfZSRZBk6eZ5ZBR+JvPZl637vUPHdfJauBr2/h
zv4uFjHdSUgoJCSVz35t65dYtDIvwKd9CcoCcuw+piYvq5K5ZmaSDnWl0f2YemdC
D38+hZiXwERwd+Vtad1N
=MA/A
-----END PGP SIGNATURE-----
Merge tag 'renesas-soc2-for-v3.20' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas into next/soc
Merge "Second Round of Renesas ARM Based SoC Updates for v3.20" from Simon
Horman:
* Add DT support for PM domains
* tag 'renesas-soc2-for-v3.20' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas:
ARM: shmobile: R-Mobile: Add DT support for PM domains
ARM: shmobile: R-Mobile: Store SYSC base address in rmobile_pm_domain
ARM: shmobile: R-Mobile: Use generic_pm_domain.attach_dev() for pm_clk setup
Signed-off-by: Olof Johansson <olof@lixom.net>
First set of OMAP2+ hwmod patches for Linux v3.20. These are mostly
fixes for warnings, although there's one DRA7xx patch that fixes
CONFIG_DEBUG_LL for AM572x/DRA7xx SoCs that use UART3 for console,
such as the BeagleBoard-X15.
These patches entered Linux-next starting with the next-20150121 tag.
Basic build, boot, and PM test results can be found here:
http://www.pwsan.com/omap/testlogs/omap-hwmod-a-for-v3.20/20150121142621/
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
iQIcBAABAgAGBQJUwDfAAAoJEMePsQ0LvSpLrdMP/3pVEhLffTOlIv9e1GizIier
r0BrT/A4hv46OWBKiHEnhdnds2UWv4TamHxNxFv4I4k9hr2p2xkcafTkcNOZJGiP
+ORy4GztzY3ECow+EJoMayE3AXqQzflr8fqWt6J8GxV3ipw1F9gPidJa52LP67OJ
3Fv4uLtiZgTQQ2TEEOkX3NaiJGcj8KyExiVHB0SZ8WvDyx8E/sFoVkq8BSI7xo0F
TJP5Yg8BjLeeVmC0omXMpugvOv2P+WCZyvLTiYjddcru5A/rsblcct8ziX9c7KOS
w8h0ze+AHYgp/BCkHfSD9bszCcwtSJhTsbBDco2ke+oHahTCys1s2QHl0KWwINjh
R0IqRxSjPYHR5Fm3YckqyB90FYMcNjJLazk7GelVPb+JR9HbqZNf1pKE3TAoJWcC
f+QpU/DaVL7zuOZAVrBym1lVcV+dF7yJjSvNSMtS9Ckznk7ViueQ4EJyYKko1N+B
44kiz37/An94S4XZ+5GrrGE8K5dVBaMx1H9KYWcQqi4jZn4pEbxMe/fF2dq0GEHA
qwO9ar0dXvmGSTONv2/QaaJoQb+vyLuoN1GKyk6AULKc6YCeNHhlGPMVFWmunWkF
v1LiqOaY0sZC9++4MkTnoWt6oEmVIlqNVDTgsYORSgFkc69Hws6anA0r7qNGyX0x
Z1ptjTIjYgApxTp+A7Xx
=Hn9I
-----END PGP SIGNATURE-----
Merge tag 'for-v3.20/omap-hwmod-a' of git://git.kernel.org/pub/scm/linux/kernel/git/pjw/omap-pending into omap-for-v3.20/fixes-not-urgent
ARM: OMAP2+: hwmod: first set of patches for v3.20
First set of OMAP2+ hwmod patches for Linux v3.20. These are mostly
fixes for warnings, although there's one DRA7xx patch that fixes
CONFIG_DEBUG_LL for AM572x/DRA7xx SoCs that use UART3 for console,
such as the BeagleBoard-X15.
These patches entered Linux-next starting with the next-20150121 tag.
Basic build, boot, and PM test results can be found here:
http://www.pwsan.com/omap/testlogs/omap-hwmod-a-for-v3.20/20150121142621/
am437x-idk and update am437x-sk boards. Also enabling new
devices for multiple boards.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
iQIcBAABAgAGBQJUuZwkAAoJEBvUPslcq6VzHkMP/1Q1jQxiwUTpXLDxLZRjIGrh
g6b3sHoGJT9U0zcRydH6dv/BlYelmu2xUZ0s1Gvz1xjwA00jwPqccgeybul3z+pZ
bc3CUpRBIOJNR0SD1BxBRs5HsBviEuHlysNOgsGyXyr1S6AtfrA9tkDB4XBw3ukz
uBmudWhvgHKUzZQfoMJxi2R4aNYUUp5Ibew4m9Hl8I3ftwn1eYQqrSy+zQhq1uXl
QWw2kixgCDcP/yRPIcKXKz5pbbxiBL2WqVnNxKOuUjOhikV8+79QOpwjQibxKNou
ID9CWvE9+qGmylhrEforrnVgr73KYcSXsjgLTtzb/3ZV2/OP2rY7oeemOvto9AI5
N/FRjTeJWk5vdiavu44rT+SwIZE/Uf32rCpQWLdvJRG9B24LtHp9oZohfqyjOF8/
7IkbrwEE1sxwJXUTkCXKKjTTu1+CQ87426QZErLeLj0kP3DbO87GOoGXC5m8LudO
CfnuWS9O6FkIga/JXorPvYJkw57SJWtWBgDcnBXnyWx7OVWzHTqAcZuHuQyAd1AP
AdbB45MjgJIzi7tZ9jV4yGkxfCwst5ZuXUix8Lzy4YdfmctjFgNeqHULtkgSJZCq
icOHYJakrdtX/miap/op8qov6B/AlUwZid7cd+Vh5jxDvJwSRG7ReEi/1AU3E/h8
9hAihXZ0Ukt2ED2dpRo9
=LFft
-----END PGP SIGNATURE-----
Merge tag 'omap-for-v3.20/dt-pt1' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into next/dt
Merge "omap device tree changes for v3.20" from Tony Lindgren:
Device tree changes for omaps. Mostly to add support for new
am437x-idk and update am437x-sk boards. Also enabling new
devices for multiple boards.
* tag 'omap-for-v3.20/dt-pt1' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap: (21 commits)
ARM: dts: omap3-gta04: Add handling for tv output
ARM: dts: cm-t3x: add NAND support
ARM: dts: am57xx-beagle-x15: Add GPIO controlled fan node
ARM: dts: am437x-idk: add gpio-based power key
ARM: dts: N950/N9: add twl_power
ARM: dts: am437x-sk: add power button binding
ARM: dts: add support for AM437x IDK
ARM: dts: am437x-gp-evm: add VPFE device tree data
ARM: dts: am437x-sk-evm: add VPFE device tree data
ARM: dts: am43x-epos-evm: add VPFE device tree data
ARM: dts: am4372: add VPFE DT node entries
ARM: dts: DRA7X: drop id property in pcie_phy
ARM: dts: omap3-n900: cleanup english
ARM: dts: am57xx-beagle-x15: Add dual ethernet
ARM: dts: am437x-sk: remove DSS pulls
ARM: dts: am437x-sk: remove internal i2c pullups
ARM: dts: am437x-sk: add explicit pinmux for both USB instances
ARM: dts: am437x-sk: remove ethernet pulls
ARM: dts: am437x-sk: add explicit MMC0 pinmux
ARM: dts: am437x-sk: remove internal pulls from QSPI
...
Signed-off-by: Olof Johansson <olof@lixom.net>
we've made several SoCs to boot in device tree only mode.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
iQIcBAABAgAGBQJUuZsuAAoJEBvUPslcq6Vz2egP/0Ms8650abNeSvKycfuYzUrf
+iVpCPaMr2IooMvtBc4L6xsKZjm7KD+dZAoRokpHQYbmkv22N3bpM8L9rWNTQAkh
ouwjSdQs8bla8IB9WjVDvb6f5R52rkEvs13LxVm3AgvXWI4VG2fDXF5ETuyerFl+
BUR8WExDyqGST4GK0nCt5+/oyPnHTqdnYLrLOcMNwCHN4ZOSKMkLPmGYeFGDc3az
v/22cQa8dJB35kYEoXjbbdvjGculCu2g/ec+pLPU1rH6v/sslwK36CRPUNh8m8oZ
cqHrIKlSctrl/P7VvV9N/7nOqKUYBrb8bKmoCs6QAPA/xGWOFH5Q8CCheOF9zV78
EyOM0ofgN5Qem5odHN4aDV6b/eIuoPwrqfnQbAPN4e1h5SNij4ZiTinUgOxV5vEq
LI6iajkcdSPpaR/FT1DxOGPkowBW2RLHp6/MtvvUbFv52JNrVXE9zAfsGQevZLto
hupeoDpjs+Tmez7sRybEkOrsFZDSANTzCZmSIomev2N5aYVp1A6itSJYg1m/x43G
/emjIfDaVoqwsvUdwSKmDaYsC6FJ1sKTjwK/ZquMXdVG+aNoW0LXXfCfBzUtq8x5
vLmULfG5YNLJAjGb8M+ALNBv0n7Bxpj8O1rWpbPvA6RM3T3f8lQuU7lv6xObKSDf
39ztgfT3BtRikXr1ctRL
=udgd
-----END PGP SIGNATURE-----
Merge tag 'omap-for-v3.20/cleanup-pt1' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into next/cleanup
Merge "omap clean-up for v3.20" from Tony Lindgren:
Clean-up for omaps to remove dead code found with cppcheck after
we've made several SoCs to boot in device tree only mode.
* tag 'omap-for-v3.20/cleanup-pt1' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap:
ARM: OMAP2+: Remove unused ti81xx platform init code
ARM: OMAP3+: PRM: remove prm_get_reset_sources declaration from headers
ARM: OMAP2: CM: remove unused PLL functions
ARM: OMAP2: clock: remove unused apll code
ARM: OMAP: dma.c: Remove unused function
ARM: OMAP1: timer32k.c: Remove unused function
ARM: OMAP1: irq.c: Remove unused function
ARM: OMAP2+: omap-pm-noop.c: Remove some unused functions
ARM: OMAP2+: voltage: Remove some unused functions
ARM: OMAP2+: powerdomain.c: Remove some unused functions
ARM: OMAP2+: omap_hwmod.c: Remove some unused functions
ARM: OMAP2+: dpll44xx.c: Remove unused function
ARM: OMAP2+: cm33xx.c: Remove some unused functions
ARM: OMAP2+: clkt2xxx_apll.c: Remove some unused functions
Signed-off-by: Olof Johansson <olof@lixom.net>