aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/iommu
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2013-02-26 23:16:07 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2013-02-26 23:16:07 -0500
commitd895cb1af15c04c522a25c79cc429076987c089b (patch)
tree895dc9157e28f603d937a58be664e4e440d5530c /drivers/iommu
parent9626357371b519f2b955fef399647181034a77fe (diff)
parentd3d009cb965eae7e002ea5badf603ea8f4c34915 (diff)
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
Pull vfs pile (part one) from Al Viro: "Assorted stuff - cleaning namei.c up a bit, fixing ->d_name/->d_parent locking violations, etc. The most visible changes here are death of FS_REVAL_DOT (replaced with "has ->d_weak_revalidate()") and a new helper getting from struct file to inode. Some bits of preparation to xattr method interface changes. Misc patches by various people sent this cycle *and* ocfs2 fixes from several cycles ago that should've been upstream right then. PS: the next vfs pile will be xattr stuff." * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (46 commits) saner proc_get_inode() calling conventions proc: avoid extra pde_put() in proc_fill_super() fs: change return values from -EACCES to -EPERM fs/exec.c: make bprm_mm_init() static ocfs2/dlm: use GFP_ATOMIC inside a spin_lock ocfs2: fix possible use-after-free with AIO ocfs2: Fix oops in ocfs2_fast_symlink_readpage() code path get_empty_filp()/alloc_file() leave both ->f_pos and ->f_version zero target: writev() on single-element vector is pointless export kernel_write(), convert open-coded instances fs: encode_fh: return FILEID_INVALID if invalid fid_type kill f_vfsmnt vfs: kill FS_REVAL_DOT by adding a d_weak_revalidate dentry op nfsd: handle vfs_getattr errors in acl protocol switch vfs_getattr() to struct path default SET_PERSONALITY() in linux/elf.h ceph: prepopulate inodes only when request is aborted d_hash_and_lookup(): export, switch open-coded instances 9p: switch v9fs_set_create_acl() to inode+fid, do it before d_instantiate() 9p: split dropping the acls from v9fs_set_create_acl() ...
Diffstat (limited to 'drivers/iommu')
-rw-r--r--drivers/iommu/tegra-smmu.c16
1 files changed, 4 insertions, 12 deletions
diff --git a/drivers/iommu/tegra-smmu.c b/drivers/iommu/tegra-smmu.c
index eb0109f98946..b34e5fd7fd9e 100644
--- a/drivers/iommu/tegra-smmu.c
+++ b/drivers/iommu/tegra-smmu.c
@@ -968,7 +968,6 @@ static ssize_t smmu_debugfs_stats_write(struct file *file,
968{ 968{
969 struct smmu_debugfs_info *info; 969 struct smmu_debugfs_info *info;
970 struct smmu_device *smmu; 970 struct smmu_device *smmu;
971 struct dentry *dent;
972 int i; 971 int i;
973 enum { 972 enum {
974 _OFF = 0, 973 _OFF = 0,
@@ -996,8 +995,7 @@ static ssize_t smmu_debugfs_stats_write(struct file *file,
996 if (i == ARRAY_SIZE(command)) 995 if (i == ARRAY_SIZE(command))
997 return -EINVAL; 996 return -EINVAL;
998 997
999 dent = file->f_dentry; 998 info = file_inode(file)->i_private;
1000 info = dent->d_inode->i_private;
1001 smmu = info->smmu; 999 smmu = info->smmu;
1002 1000
1003 offs = SMMU_CACHE_CONFIG(info->cache); 1001 offs = SMMU_CACHE_CONFIG(info->cache);
@@ -1032,15 +1030,11 @@ static ssize_t smmu_debugfs_stats_write(struct file *file,
1032 1030
1033static int smmu_debugfs_stats_show(struct seq_file *s, void *v) 1031static int smmu_debugfs_stats_show(struct seq_file *s, void *v)
1034{ 1032{
1035 struct smmu_debugfs_info *info; 1033 struct smmu_debugfs_info *info = s->private;
1036 struct smmu_device *smmu; 1034 struct smmu_device *smmu = info->smmu;
1037 struct dentry *dent;
1038 int i; 1035 int i;
1039 const char * const stats[] = { "hit", "miss", }; 1036 const char * const stats[] = { "hit", "miss", };
1040 1037
1041 dent = d_find_alias(s->private);
1042 info = dent->d_inode->i_private;
1043 smmu = info->smmu;
1044 1038
1045 for (i = 0; i < ARRAY_SIZE(stats); i++) { 1039 for (i = 0; i < ARRAY_SIZE(stats); i++) {
1046 u32 val; 1040 u32 val;
@@ -1054,14 +1048,12 @@ static int smmu_debugfs_stats_show(struct seq_file *s, void *v)
1054 stats[i], val, offs); 1048 stats[i], val, offs);
1055 } 1049 }
1056 seq_printf(s, "\n"); 1050 seq_printf(s, "\n");
1057 dput(dent);
1058
1059 return 0; 1051 return 0;
1060} 1052}
1061 1053
1062static int smmu_debugfs_stats_open(struct inode *inode, struct file *file) 1054static int smmu_debugfs_stats_open(struct inode *inode, struct file *file)
1063{ 1055{
1064 return single_open(file, smmu_debugfs_stats_show, inode); 1056 return single_open(file, smmu_debugfs_stats_show, inode->i_private);
1065} 1057}
1066 1058
1067static const struct file_operations smmu_debugfs_stats_fops = { 1059static const struct file_operations smmu_debugfs_stats_fops = {