1. 30 3月, 2015 5 次提交
  2. 13 3月, 2015 7 次提交
  3. 11 3月, 2015 4 次提交
  4. 08 3月, 2015 1 次提交
    • S
      irqchip: vf610-mscm-ir: Add support for Vybrid MSCM interrupt router · 0494e11a
      Stefan Agner 提交于
      This adds support for Vybrid's interrupt router. On VF6xx models,
      almost all peripherals can be used by either of the two CPU's,
      the Cortex-A5 or the Cortex-M4. The interrupt router routes the
      peripheral interrupts to the configured CPU.
      
      This IRQ chip driver configures the interrupt router to route
      the requested interrupt to the CPU the kernel is running on.
      The driver makes use of the irqdomain hierarchy support. The
      parent is given by the device tree. This should be one of the
      two possible parents either ARM GIC or the ARM NVIC interrupt
      controller. The latter is currently not yet supported.
      
      Note that there is no resource control mechnism implemented to
      avoid concurrent access of the same peripheral. The user needs
      to make sure to use device trees which assign the peripherals
      orthogonally. However, this driver warns the user in case the
      interrupt is already configured for the other CPU. This provides
      a poor man's resource controller.
      Acked-by: NMarc Zyngier <marc.zyngier@arm.com>
      Signed-off-by: NStefan Agner <stefan@agner.ch>
      Link: https://lkml.kernel.org/r/1425249689-32354-2-git-send-email-stefan@agner.chSigned-off-by: NJason Cooper <jason@lakedaemon.net>
      0494e11a
  5. 06 3月, 2015 1 次提交
  6. 03 3月, 2015 3 次提交
  7. 02 3月, 2015 5 次提交
  8. 26 2月, 2015 1 次提交
  9. 23 2月, 2015 1 次提交
    • D
      VFS: (Scripted) Convert S_ISLNK/DIR/REG(dentry->d_inode) to d_is_*(dentry) · e36cb0b8
      David Howells 提交于
      Convert the following where appropriate:
      
       (1) S_ISLNK(dentry->d_inode) to d_is_symlink(dentry).
      
       (2) S_ISREG(dentry->d_inode) to d_is_reg(dentry).
      
       (3) S_ISDIR(dentry->d_inode) to d_is_dir(dentry).  This is actually more
           complicated than it appears as some calls should be converted to
           d_can_lookup() instead.  The difference is whether the directory in
           question is a real dir with a ->lookup op or whether it's a fake dir with
           a ->d_automount op.
      
      In some circumstances, we can subsume checks for dentry->d_inode not being
      NULL into this, provided we the code isn't in a filesystem that expects
      d_inode to be NULL if the dirent really *is* negative (ie. if we're going to
      use d_inode() rather than d_backing_inode() to get the inode pointer).
      
      Note that the dentry type field may be set to something other than
      DCACHE_MISS_TYPE when d_inode is NULL in the case of unionmount, where the VFS
      manages the fall-through from a negative dentry to a lower layer.  In such a
      case, the dentry type of the negative union dentry is set to the same as the
      type of the lower dentry.
      
      However, if you know d_inode is not NULL at the call site, then you can use
      the d_is_xxx() functions even in a filesystem.
      
      There is one further complication: a 0,0 chardev dentry may be labelled
      DCACHE_WHITEOUT_TYPE rather than DCACHE_SPECIAL_TYPE.  Strictly, this was
      intended for special directory entry types that don't have attached inodes.
      
      The following perl+coccinelle script was used:
      
      use strict;
      
      my @callers;
      open($fd, 'git grep -l \'S_IS[A-Z].*->d_inode\' |') ||
          die "Can't grep for S_ISDIR and co. callers";
      @callers = <$fd>;
      close($fd);
      unless (@callers) {
          print "No matches\n";
          exit(0);
      }
      
      my @cocci = (
          '@@',
          'expression E;',
          '@@',
          '',
          '- S_ISLNK(E->d_inode->i_mode)',
          '+ d_is_symlink(E)',
          '',
          '@@',
          'expression E;',
          '@@',
          '',
          '- S_ISDIR(E->d_inode->i_mode)',
          '+ d_is_dir(E)',
          '',
          '@@',
          'expression E;',
          '@@',
          '',
          '- S_ISREG(E->d_inode->i_mode)',
          '+ d_is_reg(E)' );
      
      my $coccifile = "tmp.sp.cocci";
      open($fd, ">$coccifile") || die $coccifile;
      print($fd "$_\n") || die $coccifile foreach (@cocci);
      close($fd);
      
      foreach my $file (@callers) {
          chomp $file;
          print "Processing ", $file, "\n";
          system("spatch", "--sp-file", $coccifile, $file, "--in-place", "--no-show-diff") == 0 ||
      	die "spatch failed";
      }
      
      [AV: overlayfs parts skipped]
      Signed-off-by: NDavid Howells <dhowells@redhat.com>
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      e36cb0b8
  10. 21 2月, 2015 2 次提交
  11. 20 2月, 2015 10 次提交