1. 02 12月, 2006 25 次提交
  2. 01 12月, 2006 3 次提交
  3. 30 11月, 2006 6 次提交
  4. 29 11月, 2006 1 次提交
    • D
      [NET]: Fix MAX_HEADER setting. · e81c7359
      David S. Miller 提交于
      MAX_HEADER is either set to LL_MAX_HEADER or LL_MAX_HEADER + 48, and
      this is controlled by a set of CONFIG_* ifdef tests.
      
      It is trying to use LL_MAX_HEADER + 48 when any of the tunnels are
      enabled which set hard_header_len like this:
      
      dev->hard_header_len = LL_MAX_HEADER + sizeof(struct xxx);
      
      The correct set of tunnel drivers which do this are:
      
      ipip
      ip_gre
      ip6_tunnel
      sit
      
      so make the ifdef test match.
      
      Noticed by Patrick McHardy and with help from Herbert Xu.
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      e81c7359
  5. 27 11月, 2006 2 次提交
    • L
      Fix 'ALIGN()' macro, take 2 · 2ea58144
      Linus Torvalds 提交于
      You wouldn't think that doing an ALIGN() macro that aligns something up
      to a power-of-two boundary would be likely to have bugs, would you?
      
      But hey, in the wonderful world of mixing integer types, you have to be
      careful.  This just makes sure that the alignment is interpreted in the
      same type as the thing to be aligned.
      
      Thanks to Roland Dreier, who noticed that the amso1100 driver got broken
      by the previous fix (that just extended the mask to "unsigned long", but
      was still broken in "unsigned long long" - it just happened to be the
      same on 64-bit architectures).
      
      See commit 4c8bd7ee for the history of
      bugs here...
      Acked-by: NRoland Dreier <rdreier@cisco.com>
      Cc: Andrew Morton <akpm@osdl.org>
      Cc: David Miller <davem@davemloft.net>
      Cc: Al Viro <viro@zeniv.linux.org.uk>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      2ea58144
    • L
      Revert "[PATCH] Enforce "unsigned long flags;" when spinlocking" · b8e6ec86
      Linus Torvalds 提交于
      This reverts commit ee3ce191, since it
      broke on at least ARM, MIPS and PA-RISC due to complicated header file
      dependencies.
      
      Conflicts in include/linux/spinlock.h (due to the "nested" variety
      fixes) fixed up by hand.
      
      Cc: Alexey Dobriyan <adobriyan@gmail.com>
      Cc: Ralf Baechle <ralf@linux-mips.org>
      Cc: Kyle McMartin <kyle@parisc-linux.org>
      Cc: Russell King <rmk+lkml@arm.linux.org.uk>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      b8e6ec86
  6. 26 11月, 2006 3 次提交
    • A
      [PATCH] lockdep: spin_lock_irqsave_nested() · cfd3ef23
      Arjan van de Ven 提交于
      Introduce spin_lock_irqsave_nested(); implementation from:
       http://lkml.org/lkml/2006/6/1/122
      Patch from:
       http://lkml.org/lkml/2006/9/13/258
      
      [akpm@osdl.org: two compile fixes]
      Signed-off-by: NArjan van de Ven <arjan@linux.intel.com>
      Signed-off-by: NJiri Kosina <jikos@jikos.cz>
      Signed-off-by: NPeter Zijlstra <a.p.zijlstra@chello.nl>
      Acked-by: NIngo Molnar <mingo@elte.hu>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      cfd3ef23
    • A
      [PATCH] Enforce "unsigned long flags;" when spinlocking · ee3ce191
      Alexey Dobriyan 提交于
      Make it break or warn if you pass to spin_lock_irqsave() and friends
      something different from "unsigned long flags;".  Suprisingly large amount
      of these was caught by recent commit
      c53421b1 and others.
      
      Idea is largely from FRV typechecking. Suggestions from Andrew Morton.
      All stupid typos in first version fixed.
      
      Passes allmodconfig on i386, x86_64, alpha, arm as well as my usual config.
      
      Note #1: checking with sparse is still needed, because a driver can save
      	 and pass around flags or something. So far patch is very intrusive.
      Note #2: techically, we should break only if
      		sizeof(flags) < sizeof(unsigned long),
      	 however, the more pain for getting suspicious code into kernel,
      	 the better.
      Signed-off-by: NAlexey Dobriyan <adobriyan@gmail.com>
      Cc: Ingo Molnar <mingo@elte.hu>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      ee3ce191
    • V
      [PATCH] mounstats NULL pointer dereference · 701e054e
      Vasily Tarasov 提交于
      OpenVZ developers team has encountered the following problem in 2.6.19-rc6
      kernel. After some seconds of running script
      
      while [[ 1 ]]
      do
      	find  /proc -name mountstats | xargs cat
      done
      
      this Oops appears:
      
      BUG: unable to handle kernel NULL pointer dereference at virtual address
      00000010
       printing eip:
      c01a6b70
      *pde = 00000000
      Oops: 0000 [#1]
      SMP
      Modules linked in: xt_length ipt_ttl xt_tcpmss ipt_TCPMSS iptable_mangle
      iptable_filter xt_multiport xt_limit ipt_tos ipt_REJECT ip_tables x_tables
      parport_pc lp parport sunrpc af_packet thermal processor fan button battery
      asus_acpi ac ohci_hcd ehci_hcd usbcore i2c_nforce2 i2c_core tg3 floppy
      pata_amd
      ide_cd cdrom sata_nv libata
      CPU:    1
      EIP:    0060:[<c01a6b70>]    Not tainted VLI
      EFLAGS: 00010246   (2.6.19-rc6 #2)
      EIP is at mountstats_open+0x70/0xf0
      eax: 00000000   ebx: e6247030   ecx: e62470f8   edx: 00000000
      esi: 00000000   edi: c01a6b00   ebp: c33b83c0   esp: f4105eb4
      ds: 007b   es: 007b   ss: 0068
      Process cat (pid: 6044, ti=f4105000 task=f4104a70 task.ti=f4105000)
      Stack: c33b83c0 c04ee940 f46a4a80 c33b83c0 e4df31b4 c01a6b00 f4105000 c0169231
             e4df31b4 c33b83c0 c33b83c0 f4105f20 00000003 f4105000 c0169445 f2503cf0
             f7f8c4c0 00008000 c33b83c0 00000000 00008000 c0169350 f4105f20 00008000
      Call Trace:
       [<c01a6b00>] mountstats_open+0x0/0xf0
       [<c0169231>] __dentry_open+0x181/0x250
       [<c0169445>] nameidata_to_filp+0x35/0x50
       [<c0169350>] do_filp_open+0x50/0x60
       [<c01873d6>] seq_read+0xc6/0x300
       [<c0169511>] get_unused_fd+0x31/0xc0
       [<c01696d3>] do_sys_open+0x63/0x110
       [<c01697a7>] sys_open+0x27/0x30
       [<c01030bd>] sysenter_past_esp+0x56/0x79
       =======================
      Code: 45 74 8b 54 24 20 89 44 24 08 8b 42 f0 31 d2 e8 47 cb f8 ff 85 c0 89 c3
      74 51 8d 80 a0 04 00 00 e8 46 06 2c 00 8b 83 48 04 00 00 <8b> 78 10 85 ff 74
      03
      f0 ff 07 b0 01 86 83 a0 04 00 00 f0 ff 4b
      EIP: [<c01a6b70>] mountstats_open+0x70/0xf0 SS:ESP 0068:f4105eb4
      
      The problem is that task->nsproxy can be equal NULL for some time during
      task exit. This patch fixes the BUG.
      Signed-off-by: NVasily Tarasov <vtaras@openvz.org>
      Cc: Herbert Poetzl <herbert@13thfloor.at>
      Cc: "Serge E. Hallyn" <serue@us.ibm.com>
      Cc: "Eric W. Biederman" <ebiederm@xmission.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      701e054e