1. 18 4月, 2011 3 次提交
  2. 31 3月, 2011 1 次提交
  3. 18 2月, 2011 3 次提交
  4. 20 11月, 2010 1 次提交
    • E
      filter: optimize sk_run_filter · 93aaae2e
      Eric Dumazet 提交于
      Remove pc variable to avoid arithmetic to compute fentry at each filter
      instruction. Jumps directly manipulate fentry pointer.
      
      As the last instruction of filter[] is guaranteed to be a RETURN, and
      all jumps are before the last instruction, we dont need to check filter
      bounds (number of instructions in filter array) at each iteration, so we
      remove it from sk_run_filter() params.
      
      On x86_32 remove f_k var introduced in commit 57fe93b3
      (filter: make sure filters dont read uninitialized memory)
      
      Note : We could use a CONFIG_ARCH_HAS_{FEW|MANY}_REGISTERS in order to
      avoid too many ifdefs in this code.
      
      This helps compiler to use cpu registers to hold fentry and A
      accumulator.
      
      On x86_32, this saves 401 bytes, and more important, sk_run_filter()
      runs much faster because less register pressure (One less conditional
      branch per BPF instruction)
      
      # size net/core/filter.o net/core/filter_pre.o
         text    data     bss     dec     hex filename
         2948       0       0    2948     b84 net/core/filter.o
         3349       0       0    3349     d15 net/core/filter_pre.o
      
      on x86_64 :
      # size net/core/filter.o net/core/filter_pre.o
         text    data     bss     dec     hex filename
         5173       0       0    5173    1435 net/core/filter.o
         5224       0       0    5224    1468 net/core/filter_pre.o
      Signed-off-by: NEric Dumazet <eric.dumazet@gmail.com>
      Acked-by: NChangli Gao <xiaosuo@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      93aaae2e
  5. 18 11月, 2010 1 次提交
  6. 18 10月, 2010 1 次提交
  7. 16 9月, 2010 1 次提交
    • A
      i4l: kill big kernel lock · 72250d44
      Arnd Bergmann 提交于
      The isdn4linux driver uses the big kernel lock only
      to serialize access to a few fields in its own
      modem_info structure.
      
      The easiest replacement is a driver-wide mutex.
      More fine-grained locking would be more appropriate
      here, but likely harder to implement.
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      Cc: Karsten Keil <isdn@linux-pingi.de>
      Cc: netdev@vger.kernel.org
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      72250d44
  8. 07 9月, 2010 1 次提交
  9. 13 7月, 2010 3 次提交
    • J
      54cbb1ca
    • A
      isdn: autoconvert trivial BKL users to private mutex · 76a64921
      Arnd Bergmann 提交于
      All these files use the big kernel lock in a trivial
      way to serialize their private file operations,
      typically resulting from an earlier semi-automatic
      pushdown from VFS.
      
      None of these drivers appears to want to lock against
      other code, and they all use the BKL as the top-level
      lock in their file operations, meaning that there
      is no lock-order inversion problem.
      
      Consequently, we can remove the BKL completely,
      replacing it with a per-file mutex in every case.
      Using a scripted approach means we can avoid
      typos.
      
      file=$1
      name=$2
      if grep -q lock_kernel ${file} ; then
          if grep -q 'include.*linux.mutex.h' ${file} ; then
                  sed -i '/include.*<linux\/smp_lock.h>/d' ${file}
          else
                  sed -i 's/include.*<linux\/smp_lock.h>.*$/include <linux\/mutex.h>/g' ${file}
          fi
          sed -i ${file} \
              -e "/^#include.*linux.mutex.h/,$ {
                      1,/^\(static\|int\|long\)/ {
                           /^\(static\|int\|long\)/istatic DEFINE_MUTEX(${name}_mutex);
      
      } }"  \
          -e "s/\(un\)*lock_kernel\>[ ]*()/mutex_\1lock(\&${name}_mutex)/g" \
          -e '/[      ]*cycle_kernel_lock();/d'
      else
          sed -i -e '/include.*\<smp_lock.h\>/d' ${file}  \
                      -e '/cycle_kernel_lock()/d'
      fi
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      Cc: Karsten Keil <isdn@linux-pingi.de>
      Cc: netdev@vger.kernel.org
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      76a64921
    • D
      isdn: fix strlen() usage · 84ce981a
      Dan Carpenter 提交于
      There was a missing "else" statement so the original code overflowed if
      ->master->name was too long.  Also the ->slave and ->master buffers can
      hold names with 9 characters and a NULL so I cleaned it up to allow
      another character.
      Signed-off-by: NDan Carpenter <error27@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      84ce981a
  10. 06 7月, 2010 1 次提交
  11. 31 5月, 2010 1 次提交
    • J
      drivers/isdn: Use memdup_user · 024cb8a6
      Julia Lawall 提交于
      Use memdup_user when user data is immediately copied into the
      allocated region.
      
      The semantic patch that makes this change is as follows:
      (http://coccinelle.lip6.fr/)
      
      // <smpl>
      @@
      expression from,to,size,flag;
      position p;
      identifier l1,l2;
      @@
      
      -  to = \(kmalloc@p\|kzalloc@p\)(size,flag);
      +  to = memdup_user(from,size);
         if (
      -      to==NULL
      +      IS_ERR(to)
                       || ...) {
         <+... when != goto l1;
      -  -ENOMEM
      +  PTR_ERR(to)
         ...+>
         }
      -  if (copy_from_user(to, from, size) != 0) {
      -    <+... when != goto l2;
      -    -EFAULT
      -    ...+>
      -  }
      // </smpl>
      Signed-off-by: NJulia Lawall <julia@diku.dk>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      024cb8a6
  12. 17 5月, 2010 1 次提交
  13. 23 4月, 2010 1 次提交
  14. 30 3月, 2010 1 次提交
    • T
      include cleanup: Update gfp.h and slab.h includes to prepare for breaking... · 5a0e3ad6
      Tejun Heo 提交于
      include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h
      
      percpu.h is included by sched.h and module.h and thus ends up being
      included when building most .c files.  percpu.h includes slab.h which
      in turn includes gfp.h making everything defined by the two files
      universally available and complicating inclusion dependencies.
      
      percpu.h -> slab.h dependency is about to be removed.  Prepare for
      this change by updating users of gfp and slab facilities include those
      headers directly instead of assuming availability.  As this conversion
      needs to touch large number of source files, the following script is
      used as the basis of conversion.
      
        http://userweb.kernel.org/~tj/misc/slabh-sweep.py
      
      The script does the followings.
      
      * Scan files for gfp and slab usages and update includes such that
        only the necessary includes are there.  ie. if only gfp is used,
        gfp.h, if slab is used, slab.h.
      
      * When the script inserts a new include, it looks at the include
        blocks and try to put the new include such that its order conforms
        to its surrounding.  It's put in the include block which contains
        core kernel includes, in the same order that the rest are ordered -
        alphabetical, Christmas tree, rev-Xmas-tree or at the end if there
        doesn't seem to be any matching order.
      
      * If the script can't find a place to put a new include (mostly
        because the file doesn't have fitting include block), it prints out
        an error message indicating which .h file needs to be added to the
        file.
      
      The conversion was done in the following steps.
      
      1. The initial automatic conversion of all .c files updated slightly
         over 4000 files, deleting around 700 includes and adding ~480 gfp.h
         and ~3000 slab.h inclusions.  The script emitted errors for ~400
         files.
      
      2. Each error was manually checked.  Some didn't need the inclusion,
         some needed manual addition while adding it to implementation .h or
         embedding .c file was more appropriate for others.  This step added
         inclusions to around 150 files.
      
      3. The script was run again and the output was compared to the edits
         from #2 to make sure no file was left behind.
      
      4. Several build tests were done and a couple of problems were fixed.
         e.g. lib/decompress_*.c used malloc/free() wrappers around slab
         APIs requiring slab.h to be added manually.
      
      5. The script was run on all .h files but without automatically
         editing them as sprinkling gfp.h and slab.h inclusions around .h
         files could easily lead to inclusion dependency hell.  Most gfp.h
         inclusion directives were ignored as stuff from gfp.h was usually
         wildly available and often used in preprocessor macros.  Each
         slab.h inclusion directive was examined and added manually as
         necessary.
      
      6. percpu.h was updated not to include slab.h.
      
      7. Build test were done on the following configurations and failures
         were fixed.  CONFIG_GCOV_KERNEL was turned off for all tests (as my
         distributed build env didn't work with gcov compiles) and a few
         more options had to be turned off depending on archs to make things
         build (like ipr on powerpc/64 which failed due to missing writeq).
      
         * x86 and x86_64 UP and SMP allmodconfig and a custom test config.
         * powerpc and powerpc64 SMP allmodconfig
         * sparc and sparc64 SMP allmodconfig
         * ia64 SMP allmodconfig
         * s390 SMP allmodconfig
         * alpha SMP allmodconfig
         * um on x86_64 SMP allmodconfig
      
      8. percpu.h modifications were reverted so that it could be applied as
         a separate patch and serve as bisection point.
      
      Given the fact that I had only a couple of failures from tests on step
      6, I'm fairly confident about the coverage of this conversion patch.
      If there is a breakage, it's likely to be something in one of the arch
      headers which should be easily discoverable easily on most builds of
      the specific arch.
      Signed-off-by: NTejun Heo <tj@kernel.org>
      Guess-its-ok-by: NChristoph Lameter <cl@linux-foundation.org>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: Lee Schermerhorn <Lee.Schermerhorn@hp.com>
      5a0e3ad6
  15. 23 2月, 2010 1 次提交
    • T
      isdn: fix a few Kconfig imperfections · e5f8d9ac
      Tilman Schmidt 提交于
      1. Rewrite the outdated help texts for config options ISDN and ISDN_CAPI.
      2. The MISDN config option appeared between ISDN_I4L and the I4L hardware
         driver options; move it to a less irritating place.
      3. HYSDN is not in fact an I4L driver, and needn't depend on ISDN_I4L, so
         move it from the I4L section to the general section.
      4. ISDN_HDLC is now also used by drivers outside I4L.  Move it from the
         I4L section to the general section, too.
      Signed-off-by: NTilman Schmidt <tilman@imap.cc>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      e5f8d9ac
  16. 09 2月, 2010 1 次提交
  17. 04 12月, 2009 1 次提交
  18. 16 11月, 2009 1 次提交
  19. 09 11月, 2009 1 次提交
  20. 23 10月, 2009 1 次提交
    • X
      isdn: fix possible circular locking dependency · 2bd9af04
      Xiaotian Feng 提交于
      There's a circular locking dependency:
      
      ---> isdn_net_get_locked_lp
          --->lock &nd->queue_lock
          --->lock &nd->queue->xmit_lock
          .....................
          ---->unlock &nd->queue_lock
      
      ---> isdn_net_writebuf_skb (called with &nd->queue->xmit_lock locked)
          ---->isdn_net_inc_frame_cnt
               ---->isdn_net_device_busy
                    ----> lock &nd->queue_lock
      
      This will trigger lockdep warnings:
      
       =======================================================
       [ INFO: possible circular locking dependency detected ]
       2.6.32-rc4-testing #7
       -------------------------------------------------------
       ipppd/28379 is trying to acquire lock:
       (&netdev->queue_lock){......}, at: [<e62ad0fd>] isdn_net_device_busy+0x2c/0x74 [isdn]
      
       but task is already holding lock:
       (&netdev->local->xmit_lock){+.....}, at: [<e62aefc2>] isdn_net_write_super+0x3f/0x6e [isdn]
      
       which lock already depends on the new lock.
       .......
      
       We don't need to lock nd->queue->xmit_lock to protect single
      isdn_net_lp_busy(). This can fix above lockdep warnings.
      Reported-and-tested-by: NTilman Schmidt <tilman@imap.cc>
      Signed-off-by: NXiaotian Feng <xtfeng@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      2bd9af04
  21. 29 9月, 2009 1 次提交
    • R
      isdn: fix netjet/isdnhdlc build errors · 8823ad31
      Randy Dunlap 提交于
      Commit cb3824ba didn't fix this problem.
      
      Fix build errors in netjet, using isdnhdlc module:
      
      drivers/built-in.o: In function `mode_tiger':
      netjet.c:(.text+0x1ca0c7): undefined reference to `isdnhdlc_rcv_init'
      netjet.c:(.text+0x1ca0d4): undefined reference to `isdnhdlc_out_init'
      drivers/built-in.o: In function `fill_dma':
      netjet.c:(.text+0x1ca2bd): undefined reference to `isdnhdlc_encode'
      drivers/built-in.o: In function `read_dma':
      netjet.c:(.text+0x1ca614): undefined reference to `isdnhdlc_decode'
      drivers/built-in.o: In function `nj_irq':
      netjet.c:(.text+0x1cb07a): undefined reference to `isdnhdlc_encode'
      
      drivers/built-in.o: In function `isdnhdlc_decode':
      (.text+0x1c2088): undefined reference to `crc_ccitt_table'
      drivers/built-in.o: In function `isdnhdlc_encode':
      (.text+0x1c2339): undefined reference to `crc_ccitt_table'
      Signed-off-by: NRandy Dunlap <randy.dunlap@oracle.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      8823ad31
  22. 21 9月, 2009 1 次提交
  23. 01 9月, 2009 1 次提交
  24. 26 7月, 2009 4 次提交
  25. 13 7月, 2009 1 次提交
  26. 06 7月, 2009 2 次提交
  27. 17 6月, 2009 1 次提交
  28. 13 6月, 2009 1 次提交
  29. 12 6月, 2009 1 次提交
  30. 18 5月, 2009 1 次提交