From: Linus Torvalds Date: Tue, 16 Dec 2014 02:06:13 +0000 (-0800) Subject: Merge tag 'staging-3.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh... X-Git-Tag: v3.19-rc1~66 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=dab363f938a53ddaee60bfecc1aebdbb3d3af5f0;p=thirdparty%2Fkernel%2Flinux.git Merge tag 'staging-3.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging Pull staging driver updates from Greg KH: "Here's the big staging tree pull request for 3.19-rc1. We continued to delete more lines than were added, always a good thing, but not at a huge rate this release, only about 70k lines removed overall mostly from removing the horrid bcm driver. Lots of normal staging driver cleanups and fixes all over the place, well over a thousand of them, the shortlog shows all the horrid details. The "contentious" thing here is the movement of the Android binder code out of staging into the "real" part of the kernel. This is code that has been stable for a few years now and is working as-is in the tens of millions of devices with no issues. Yes, the code is horrid, and the userspace api leaves a lot to be desired, but it's not going to change due to legacy issues that we have no control over. Because so many devices and companies rely on this, and the code is stable, might as well promote it out of staging. This was all discussed at the Linux Plumbers conference, and everyone participating agreed that this was the best way forward. There is work happening to replace the binder code with something new that is happening right now, but I don't expect to see the results of that work for another year at the earliest. If that ever happens, and Android switches over to it, I'll gladly remove this version. As for maintainers, I'll be glad to maintain this code, I've been doing it for the past few years with no problems. I'll send a MAINTAINERS entry for it before 3.19-final is out, still need to talk to the Google developers about if they are willing to help with it or not, last I checked they were, which was good. All of these patches have been in linux-next for a while with no reported issues" * tag 'staging-3.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging: (1382 commits) Staging: slicoss: Fix long line issues in slicoss.c staging: rtl8712: remove unnecessary else after return staging: comedi: change some printk calls to pr_err staging: rtl8723au: hal: Removed the extra semicolon lustre: Deletion of unnecessary checks before three function calls staging: lustre: fix sparse warnings: static function declaration staging: lustre: fixed sparse warnings related to static declarations staging: unisys: remove duplicate header staging: unisys: remove unneeded structure staging: ft1000 : replace __attribute ((__packed__) with __packed drivers: staging: rtl8192e: Include "asm/unaligned.h" instead of "access_ok.h" in "rtl819x_BAProc.c" Drivers:staging:rtl8192e: Fixed checkpatch warning Drivers:staging:clocking-wizard: Added a newline staging: clocking-wizard: check for a valid clk_name pointer staging: rtl8723au: Hal_InitPGData() avoid unnecessary typecasts staging: rtl8723au: _DisableAnalog(): Avoid zero-init variables unnecessarily staging: rtl8723au: Remove unnecessary wrapper _ResetDigitalProcedure1() staging: rtl8723au: _ResetDigitalProcedure1_92C() reduce code obfuscation staging: rtl8723au: Remove unnecessary wrapper _DisableRFAFEAndResetBB() staging: rtl8723au: _DisableRFAFEAndResetBB8192C(): Reduce code obfuscation ... --- dab363f938a53ddaee60bfecc1aebdbb3d3af5f0 diff --cc drivers/Makefile index 628b512b625bf,60d19820a4d42..67d2334dc41ec --- a/drivers/Makefile +++ b/drivers/Makefile @@@ -161,4 -161,4 +161,5 @@@ obj-$(CONFIG_POWERCAP) += powercap obj-$(CONFIG_MCB) += mcb/ obj-$(CONFIG_RAS) += ras/ obj-$(CONFIG_THUNDERBOLT) += thunderbolt/ +obj-$(CONFIG_CORESIGHT) += coresight/ + obj-$(CONFIG_ANDROID) += android/ diff --cc drivers/staging/lustre/lustre/llite/dcache.c index f692261e9b5c0,5f03c5fbb0983..5bb9c85cec813 --- a/drivers/staging/lustre/lustre/llite/dcache.c +++ b/drivers/staging/lustre/lustre/llite/dcache.c @@@ -258,9 -258,10 +258,9 @@@ void ll_invalidate_aliases(struct inod inode->i_ino, inode->i_generation, inode); ll_lock_dcache(inode); - ll_d_hlist_for_each_entry(dentry, p, &inode->i_dentry, d_alias) { - CDEBUG(D_DENTRY, "dentry in drop %.*s (%p) parent %p inode %p flags %d\n", - dentry->d_name.len, dentry->d_name.name, - dentry, dentry->d_parent, + ll_d_hlist_for_each_entry(dentry, p, &inode->i_dentry, d_u.d_alias) { - CDEBUG(D_DENTRY, "dentry in drop %pd (%p) parent %p " - "inode %p flags %d\n", dentry, dentry, dentry->d_parent, ++ CDEBUG(D_DENTRY, "dentry in drop %pd (%p) parent %p inode %p flags %d\n", ++ dentry, dentry, dentry->d_parent, dentry->d_inode, dentry->d_flags); if (unlikely(dentry == dentry->d_sb->s_root)) { diff --cc drivers/staging/lustre/lustre/llite/llite_internal.h index 77d1c12704b43,79fc29b3710ca..37306e0c7aadd --- a/drivers/staging/lustre/lustre/llite/llite_internal.h +++ b/drivers/staging/lustre/lustre/llite/llite_internal.h @@@ -1489,8 -1489,8 +1489,8 @@@ static inline void __d_lustre_invalidat */ static inline void d_lustre_invalidate(struct dentry *dentry, int nested) { - CDEBUG(D_DENTRY, "invalidate dentry %pd (%p) parent %p inode %p " - "refc %d\n", dentry, dentry, - CDEBUG(D_DENTRY, "invalidate dentry %.*s (%p) parent %p inode %p refc %d\n", - dentry->d_name.len, dentry->d_name.name, dentry, ++ CDEBUG(D_DENTRY, "invalidate dentry %pd (%p) parent %p inode %p refc %d\n", ++ dentry, dentry, dentry->d_parent, dentry->d_inode, d_count(dentry)); spin_lock_nested(&dentry->d_lock, diff --cc drivers/staging/lustre/lustre/llite/llite_lib.c index 7b6b9e2e01020,3b0336029da37..6e423aa6a6e48 --- a/drivers/staging/lustre/lustre/llite/llite_lib.c +++ b/drivers/staging/lustre/lustre/llite/llite_lib.c @@@ -698,9 -690,11 +690,9 @@@ void lustre_dump_dentry(struct dentry * list_for_each(tmp, &dentry->d_subdirs) subdirs++; - CERROR("dentry %p dump: name=%pd parent=%p, inode=%p, count=%u," - " flags=0x%x, fsdata=%p, %d subdirs\n", dentry, dentry, - CERROR("dentry %p dump: name=%.*s parent=%.*s (%p), inode=%p, count=%u, flags=0x%x, fsdata=%p, %d subdirs\n", - dentry, - dentry->d_name.len, dentry->d_name.name, - dentry->d_parent->d_name.len, dentry->d_parent->d_name.name, -- dentry->d_parent, dentry->d_inode, d_count(dentry), ++ CERROR("dentry %p dump: name=%pd parent=%pd (%p), inode=%p, count=%u, flags=0x%x, fsdata=%p, %d subdirs\n", ++ dentry, dentry, dentry->d_parent, dentry->d_parent, ++ dentry->d_inode, d_count(dentry), dentry->d_flags, dentry->d_fsdata, subdirs); if (dentry->d_inode != NULL) ll_dump_inode(dentry->d_inode); @@@ -709,7 -703,8 +701,8 @@@ return; list_for_each(tmp, &dentry->d_subdirs) { - struct dentry *d = list_entry(tmp, struct dentry, d_u.d_child); + struct dentry *d = list_entry(tmp, struct dentry, d_child); + lustre_dump_dentry(d, recur - 1); } } diff --cc drivers/staging/lustre/lustre/llite/llite_mmap.c index ba1c047ae927d,e72b14daccefe..479bf428780ce --- a/drivers/staging/lustre/lustre/llite/llite_mmap.c +++ b/drivers/staging/lustre/lustre/llite/llite_mmap.c @@@ -393,10 -391,9 +391,9 @@@ static int ll_page_mkwrite(struct vm_ar result = ll_page_mkwrite0(vma, vmf->page, &retry); if (!printed && ++count > 16) { - CWARN("app(%s): the page %lu of file %lu is under heavy" - " contention.\n", + CWARN("app(%s): the page %lu of file %lu is under heavy contention.\n", current->comm, vmf->pgoff, - vma->vm_file->f_dentry->d_inode->i_ino); + file_inode(vma->vm_file)->i_ino); printed = true; } } while (retry); diff --cc drivers/staging/lustre/lustre/llite/namei.c index 8e926b385a604,671d0cd2a6a2a..1bf891bd321aa --- a/drivers/staging/lustre/lustre/llite/namei.c +++ b/drivers/staging/lustre/lustre/llite/namei.c @@@ -598,9 -619,8 +598,8 @@@ static int ll_atomic_open(struct inode long long lookup_flags = LOOKUP_OPEN; int rc = 0; - CDEBUG(D_VFSTRACE, "VFS Op:name=%pd,dir=%lu/%u(%p),file %p," - "open_flags %x,mode %x opened %d\n", - CDEBUG(D_VFSTRACE, "VFS Op:name=%.*s,dir=%lu/%u(%p),file %p,open_flags %x,mode %x opened %d\n", - dentry->d_name.len, dentry->d_name.name, dir->i_ino, ++ CDEBUG(D_VFSTRACE, "VFS Op:name=%pd,dir=%lu/%u(%p),file %p,open_flags %x,mode %x opened %d\n", + dentry, dir->i_ino, dir->i_generation, dir, file, open_flags, mode, *opened); it = kzalloc(sizeof(*it), GFP_NOFS); @@@ -843,12 -862,11 +842,11 @@@ static int ll_create_nd(struct inode *d { int rc; - CDEBUG(D_VFSTRACE, "VFS Op:name=%pd,dir=%lu/%u(%p)," - "flags=%u, excl=%d\n", - CDEBUG(D_VFSTRACE, "VFS Op:name=%.*s,dir=%lu/%u(%p),flags=%u, excl=%d\n", - dentry->d_name.len, dentry->d_name.name, dir->i_ino, ++ CDEBUG(D_VFSTRACE, "VFS Op:name=%pd,dir=%lu/%u(%p),flags=%u, excl=%d\n", + dentry, dir->i_ino, dir->i_generation, dir, mode, want_excl); - rc = ll_mknod_generic(dir, &dentry->d_name, mode, 0, dentry); + rc = ll_mknod(dir, dentry, mode, 0); ll_stats_ops_tally(ll_i2sbi(dir), LPROC_LL_CREATE, 1); diff --cc drivers/staging/lustre/lustre/llite/statahead.c index 09d965e768425,db2bb44cdce5e..6ad9dd0fe2b3d --- a/drivers/staging/lustre/lustre/llite/statahead.c +++ b/drivers/staging/lustre/lustre/llite/statahead.c @@@ -1612,9 -1608,9 +1608,8 @@@ int do_statahead_enter(struct inode *di } else if ((*dentryp)->d_inode != inode) { /* revalidate, but inode is recreated */ CDEBUG(D_READA, - "stale dentry %pd inode %lu/%u, " - "statahead inode %lu/%u\n", - "stale dentry %.*s inode %lu/%u, statahead inode %lu/%u\n", - (*dentryp)->d_name.len, - (*dentryp)->d_name.name, ++ "stale dentry %pd inode %lu/%u, statahead inode %lu/%u\n", + *dentryp, (*dentryp)->d_inode->i_ino, (*dentryp)->d_inode->i_generation, inode->i_ino, @@@ -1665,9 -1661,8 +1660,8 @@@ if (unlikely(sai->sai_inode != parent->d_inode)) { struct ll_inode_info *nlli = ll_i2info(parent->d_inode); - CWARN("Race condition, someone changed %pd just now: " - "old parent "DFID", new parent "DFID"\n", - CWARN("Race condition, someone changed %.*s just now: old parent " DFID ", new parent " DFID "\n", - (*dentryp)->d_name.len, (*dentryp)->d_name.name, ++ CWARN("Race condition, someone changed %pd just now: old parent "DFID", new parent "DFID"\n", + *dentryp, PFID(&lli->lli_fid), PFID(&nlli->lli_fid)); dput(parent); iput(sai->sai_inode);