1. 30 10月, 2008 13 次提交
  2. 29 10月, 2008 8 次提交
  3. 28 10月, 2008 19 次提交
    • S
      ftrace: fix current_tracer error return · 60063a66
      Steven Rostedt 提交于
      The commit (in linux-tip) c2931e05
       ( ftrace: return an error when setting a nonexistent tracer )
      added useful code that would error when a bad tracer was written into
      the current_tracer file.
      
      But this had a bug if the amount written was more than the amount read by
      that code. The first iteration would set the tracer correctly, but since
      it did not consume the rest of what was written (usually whitespace), the
      userspace utility would continue to write what was not consumed. This
      second iteration would fail to find a tracer and return -EINVAL. Funny
      thing is that the tracer would have already been set.
      
      This patch just consumes all the data that is written to the file.
      Signed-off-by: NSteven Rostedt <srostedt@redhat.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      60063a66
    • X
      KVM: ia64: Makefile fix for forcing to re-generate asm-offsets.h · e45948b0
      Xiantao Zhang 提交于
      To avoid using stale asm-offsets.h.
      Signed-off-by: NXiantao Zhang <xiantao.zhang@intel.com>
      Signed-off-by: NAvi Kivity <avi@redhat.com>
      e45948b0
    • A
      KVM: Future-proof device assignment ABI · bb45e202
      Avi Kivity 提交于
      Reserve some space so we can add more data.
      Signed-off-by: NAvi Kivity <avi@qumranet.com>
      bb45e202
    • X
      KVM: ia64: Fix halt emulation logic · decc9016
      Xiantao Zhang 提交于
      Common halt logic was changed by x86 and did not update ia64.  This patch
      updates halt for ia64.
      
      Fixes a regression causing guests to hang with more than 2 vcpus.
      Signed-off-by: NXiantao Zhang <xiantao.zhang@intel.com>
      Signed-off-by: NAvi Kivity <avi@redhat.com>
      decc9016
    • S
      KVM: Fix guest shared interrupt with in-kernel irqchip · 5550af4d
      Sheng Yang 提交于
      Every call of kvm_set_irq() should offer an irq_source_id, which is
      allocated by kvm_request_irq_source_id(). Based on irq_source_id, we
      identify the irq source and implement logical OR for shared level
      interrupts.
      
      The allocated irq_source_id can be freed by kvm_free_irq_source_id().
      
      Currently, we support at most sizeof(unsigned long) different irq sources.
      
      [Amit: - rebase to kvm.git HEAD
             - move definition of KVM_USERSPACE_IRQ_SOURCE_ID to common file
             - move kvm_request_irq_source_id to the update_irq ioctl]
      
      [Xiantao: - Add kvm/ia64 stuff and make it work for kvm/ia64 guests]
      Signed-off-by: NSheng Yang <sheng@linux.intel.com>
      Signed-off-by: NAmit Shah <amit.shah@redhat.com>
      Signed-off-by: NXiantao Zhang <xiantao.zhang@intel.com>
      Signed-off-by: NAvi Kivity <avi@redhat.com>
      5550af4d
    • M
      KVM: MMU: sync root on paravirt TLB flush · 6ad9f15c
      Marcelo Tosatti 提交于
      The pvmmu TLB flush handler should request a root sync, similarly to
      a native read-write CR3.
      Signed-off-by: NMarcelo Tosatti <mtosatti@redhat.com>
      Signed-off-by: NAvi Kivity <avi@redhat.com>
      6ad9f15c
    • H
      lockdep: fix irqs on/off ip tracing · 6afe40b4
      Heiko Carstens 提交于
      Impact: fix lockdep lock-api-caller output when irqsoff tracing is enabled
      
      81d68a96 "ftrace: trace irq disabled critical timings" added wrappers around
      trace_hardirqs_on/off_caller. However these functions use
      __builtin_return_address(0) to figure out which function actually disabled
      or enabled irqs. The result is that we save the ips of trace_hardirqs_on/off
      instead of the real caller. Not very helpful.
      
      However since the patch from Steven the ip already gets passed. So use that
      and get rid of __builtin_return_address(0) in these two functions.
      Signed-off-by: NHeiko Carstens <heiko.carstens@de.ibm.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      6afe40b4
    • C
      [S390] s390: Fix build for !CONFIG_S390_GUEST + CONFIG_VIRTIO_CONSOLE · ea4bfdf5
      Christian Borntraeger 提交于
      The s390 kernel does not compile if virtio console is enabled, but guest
      support is disabled:
      
        LD      .tmp_vmlinux1
      arch/s390/kernel/built-in.o: In function `setup_arch':
      /space/linux-2.5/arch/s390/kernel/setup.c:773: undefined reference to
      `s390_virtio_console_init'
      
      The fix is related to
      commit 99e65c92
      Author: Christian Borntraeger <borntraeger@de.ibm.com>
      Date:   Fri Jul 25 15:50:04 2008 +0200
          KVM: s390: Fix guest kconfig
      
      Which changed the build process to build kvm_virtio.c only if CONFIG_S390_GUEST
      is set. We must ifdef the prototype in the header file accordingly.
      Reported-by: NHeiko Carstens <heiko.carstens@de.ibm.com>
      Signed-off-by: NChristian Borntraeger <borntraeger@de.ibm.com>
      Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      ea4bfdf5
    • H
      [S390] No more 4kb stacks. · 7f5a8ba6
      Heiko Carstens 提交于
      We got a stack overflow with a small stack configuration on a 32 bit
      system. It just looks like as 4kb isn't enough and too dangerous.
      So lets get rid of 4kb stacks on 32 bit.
      
      But one thing I completely dislike about the call trace below is that
      just for debugging or tracing purposes sprintf gets called (cio_start_key):
      
      	/* process condition code */
      	sprintf(dbf_txt, "ccode:%d", ccode);
      	CIO_TRACE_EVENT(4, dbf_txt);
      
      But maybe its just me who thinks that this could be done better.
      
          <4>Kernel stack overflow.
          <4>Modules linked in: dm_multipath sunrpc bonding qeth_l2 dm_mod qeth ccwgroup vmur
          <4>CPU: 1 Not tainted 2.6.27-30.x.20081015-s390default #1
          <4>Process httpd (pid: 3807, task: 20ae2df8, ksp: 1666fb78)
          <4>Krnl PSW : 040c0000 8027098a (number+0xe/0x348)
          <4>           R:0 T:1 IO:0 EX:0 Key:0 M:1 W:0 P:0 AS:0 CC:0 PM:0
          <4>Krnl GPRS: 00d43318 0027097c 1666f277 9666f270
          <4>           00000000 00000000 0000000a ffffffff
          <4>           9666f270 1666f228 1666f277 1666f098
          <4>           00000002 80270982 80271016 1666f098
          <4>Krnl Code: 8027097e: f0340dd0a7f1	srp	3536(4,%r0),2033(%r10),4
          <4>           80270984: 0f00		clcl	%r0,%r0
          <4>           80270986: a7840001		brc	8,80270988
          <4>          >8027098a: 18ef		lr	%r14,%r15
          <4>           8027098c: a7faff68		ahi	%r15,-152
          <4>           80270990: 18bf		lr	%r11,%r15
          <4>           80270992: 18a2		lr	%r10,%r2
          <4>           80270994: 1893		lr	%r9,%r3
      
      Modified calltrace with annotated stackframe size of each function:
      
      stackframe size
          |
       0 304 vsnprintf+850 [0x271016]
       1  72 sprintf+74 [0x271522]
       2  56 cio_start_key+262 [0x2d4c16]
       3  56 ccw_device_start_key+222 [0x2dfe92]
       4  56 ccw_device_start+40 [0x2dff28]
       5  48 raw3215_start_io+104 [0x30b0f8]
       6  56 raw3215_write+494 [0x30ba0a]
       7  40 con3215_write+68 [0x30bafc]
       8  40 __call_console_drivers+146 [0x12b0fa]
       9  32 _call_console_drivers+102 [0x12b192]
      10  64 release_console_sem+268 [0x12b614]
      11 168 vprintk+462 [0x12bca6]
      12  72 printk+68 [0x12bfd0]
      13 256 __print_symbol+50 [0x15a882]
      14  56 __show_trace+162 [0x103d06]
      15  32 show_trace+224 [0x103e70]
      16  48 show_stack+152 [0x103f20]
      17  56 dump_stack+126 [0x104612]
      18  96 __alloc_pages_internal+592 [0x175004]
      19  80 cache_alloc_refill+776 [0x196f3c]
      20  40 __kmalloc+258 [0x1972ae]
      21  40 __alloc_skb+94 [0x328086]
      22  32 pskb_copy+50 [0x328252]
      23  32 skb_realloc_headroom+110 [0x328a72]
      24 104 qeth_l2_hard_start_xmit+378 [0x7803bfde]
      25  56 dev_hard_start_xmit+450 [0x32ef6e]
      26  56 __qdisc_run+390 [0x3425d6]
      27  48 dev_queue_xmit+410 [0x331e06]
      28  40 ip_finish_output+308 [0x354ac8]
      29  56 ip_output+218 [0x355b6e]
      30  24 ip_local_out+56 [0x354584]
      31 120 ip_queue_xmit+300 [0x355cec]
      32  96 tcp_transmit_skb+812 [0x367da8]
      33  40 tcp_push_one+158 [0x369fda]
      34 112 tcp_sendmsg+852 [0x35d5a0]
      35 240 sock_sendmsg+164 [0x32035c]
      36  56 kernel_sendmsg+86 [0x32064a]
      37  88 sock_no_sendpage+98 [0x322b22]
      38 104 tcp_sendpage+70 [0x35cc1e]
      39  48 sock_sendpage+74 [0x31eb66]
      40  64 pipe_to_sendpage+102 [0x1c4b2e]
      41  64 __splice_from_pipe+120 [0x1c5340]
      42  72 splice_from_pipe+90 [0x1c57e6]
      43  56 generic_splice_sendpage+38 [0x1c5832]
      44  48 do_splice_from+104 [0x1c4c38]
      45  48 direct_splice_actor+52 [0x1c4c88]
      46  80 splice_direct_to_actor+180 [0x1c4f80]
      47  72 do_splice_direct+70 [0x1c5112]
      48  64 do_sendfile+360 [0x19de18]
      49  72 sys_sendfile64+126 [0x19df32]
      50 336 sysc_do_restart+18 [0x111a1a]
      Signed-off-by: NHeiko Carstens <heiko.carstens@de.ibm.com>
      Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      7f5a8ba6
    • H
      [S390] Change default IPL method to IPL_VM. · 46e7951f
      Heiko Carstens 提交于
      allyesconfig and allmodconfig built kernels have a tape IPL record.
      A the vmreader record makes much more sense, since hardly anybody will
      ever IPL a kernel from tape. So change the default.
      As I side effect I can test these kernels without fiddling around with
      the kernel config ;)
      Signed-off-by: NHeiko Carstens <heiko.carstens@de.ibm.com>
      Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      46e7951f
    • F
      [S390] tape: disable interrupts in tape_open and tape_release · b3c21e49
      Frank Munzert 提交于
      Get tape device lock with interrupts disabled. Otherwise lockdep will issue a
      warning similar to:
      
      =================================
      [ INFO: inconsistent lock state ]
      2.6.27 #1
      ---------------------------------
      inconsistent {in-hardirq-W} -> {hardirq-on-W} usage.
      vol_id/2903 [HC0[0]:SC0[0]:HE1:SE1] takes:
       (sch->lock){++..}, at: [<000003e00004c7a2>] tape_open+0x42/0x1a4 [tape]
      {in-hardirq-W} state was registered at:
        [<000000000007ce5c>] __lock_acquire+0x894/0xa74
        [<000000000007d0ce>] lock_acquire+0x92/0xb8
        [<0000000000345154>] _spin_lock+0x5c/0x9c
        [<0000000000202264>] do_IRQ+0x124/0x1f0
        [<0000000000026610>] io_return+0x0/0x8
      
      irq event stamp: 847
      hardirqs last  enabled at (847): [<000000000007aca6>] trace_hardirqs_on+0x2a/0x38
      hardirqs last disabled at (846): [<0000000000076ca2>] trace_hardirqs_off+0x2a/0x38
      softirqs last  enabled at (0): [<000000000004909e>] copy_process+0x43e/0x11f4
      softirqs last disabled at (0): [<0000000000000000>] 0x0
      
      other info that might help us debug this:
      1 lock held by vol_id/2903:
       #0:  (&bdev->bd_mutex){--..}, at: [<000000000010e0f4>] do_open+0x78/0x358
      
      stack backtrace:
      CPU: 1 Not tainted 2.6.27 #1},
      Process vol_id (pid: 2903, task: 000000003d4c0000, ksp: 000000003d4e3b10)
      0400000000000000 000000003d4e3830 0000000000000002 0000000000000000
             000000003d4e38d0 000000003d4e3848 000000003d4e3848 00000000000168a8
             0000000000000000 000000003d4e3b10 0000000000000000 0000000000000000
             000000003d4e3830 000000000000000c 000000003d4e3830 000000003d4e38a0
             000000000034aa98 00000000000168a8 000000003d4e3830 000000003d4e3880
      Call Trace:
      ([<000000000001681c>] show_trace+0x138/0x158)
       [<0000000000016902>] show_stack+0xc6/0xf8
       [<00000000000170d4>] dump_stack+0xb0/0xc0
       [<0000000000078810>] print_usage_bug+0x1e8/0x228
       [<000000000007a71c>] mark_lock+0xb14/0xd24
       [<000000000007cd5a>] __lock_acquire+0x792/0xa74
       [<000000000007d0ce>] lock_acquire+0x92/0xb8
       [<0000000000345154>] _spin_lock+0x5c/0x9c
       [<000003e00004c7a2>] tape_open+0x42/0x1a4 [tape]
       [<000003e00005185c>] tapeblock_open+0x98/0xd0 [tape]
      Signed-off-by: NFrank Munzert <munzert@de.ibm.com>
      Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      b3c21e49
    • R
      [S390] appldata: unsigned ops->size cannot be negative · 13f8b7c5
      Roel Kluin 提交于
      unsigned ops->size cannot be negative
      Signed-off-by: NRoel Kluin <roel.kluin@gmail.com>
      Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      13f8b7c5
    • F
      [S390] tape block: complete request with correct locking · 7a4a1ccd
      Frank Munzert 提交于
      __blk_end_request must be called with request queue lock held. We need to use
      blk_end_request rather than  __blk_end_request.
      Signed-off-by: NFrank Munzert <munzert@de.ibm.com>
      Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      7a4a1ccd
    • H
      [S390] Fix sysdev class file creation. · da5aae70
      Heiko Carstens 提交于
      Use sysdev_class_create_file() to create create sysdev class attributes
      instead of sysfs_create_file(). Using sysfs_create_file() wasn't a very
      good idea since the show and store functions have a different amount of
      parameters for sysfs files and sysdev class files.
      In particular the pointer to the buffer is the last argument and
      therefore accesses to random memory regions happened.
      Still worked surprisingly well until we got a kernel panic.
      
      Cc: stable@kernel.org
      Signed-off-by: NHeiko Carstens <heiko.carstens@de.ibm.com>
      Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      da5aae70
    • C
      [S390] pgtables: Fix race in enable_sie vs. page table ops · 250cf776
      Christian Borntraeger 提交于
      The current enable_sie code sets the mm->context.pgstes bit to tell
      dup_mm that the new mm should have extended page tables. This bit is also
      used by the s390 specific page table primitives to decide about the page
      table layout - which means context.pgstes has two meanings. This can cause
      any kind of bugs. For example  - e.g. shrink_zone can call
      ptep_clear_flush_young while enable_sie is running. ptep_clear_flush_young
      will test for context.pgstes. Since enable_sie changed that value of the old
      struct mm without changing the page table layout ptep_clear_flush_young will
      do the wrong thing.
      The solution is to split pgstes into two bits
      - one for the allocation
      - one for the current state
      Signed-off-by: NChristian Borntraeger <borntraeger@de.ibm.com>
      Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      250cf776
    • J
      [S390] qdio: remove incorrect memset · 2c780914
      Jan Glauber 提交于
      Remove the memset since zeroing the string is not needed and use
      snprintf instead of sprintf.
      Signed-off-by: NJan Glauber <jang@linux.vnet.ibm.com>
      Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      2c780914
    • J
      [S390] qdio: prevent double qdio shutdown in case of I/O errors · 7c045aa2
      Jan Glauber 提交于
      In case of I/O errors on a qdio subchannel qdio_shutdown may be
      called twice by the qdio driver and by zfcp. Remove the
      superfluous shutdown from qdio and let the upper layer driver
      handle the error condition.
      Signed-off-by: NJan Glauber <jang@linux.vnet.ibm.com>
      Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      7c045aa2
    • Q
      lockdep: minor fix for debug_show_all_locks() · 46fec7ac
      qinghuang feng 提交于
      When we failed to get tasklist_lock eventually (count equals 0),
      we should only print " ignoring it.\n", and not print
      " locked it.\n" needlessly.
      Signed-off-by: NQinghuang Feng <qhfeng.kernel@gmail.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      46fec7ac
    • F
      tracing: fix a build error on alpha · 21798a84
      Frederic Weisbecker 提交于
      Impact: build fix on Alpha
      
      When tracing is enabled, some arch have included <linux/irqflags.h>
      on their <asm/system.h> but others like alpha or m68k don't.
      
      Build error on alpha:
      
      kernel/trace/trace.c: In function 'tracing_cpumask_write':
      kernel/trace/trace.c:2145: error: implicit declaration of function 'raw_local_irq_disable'
      kernel/trace/trace.c:2162: error: implicit declaration of function 'raw_local_irq_enable'
      
      Tested on Alpha through a cross-compiler (should correct a similar issue on m68k).
      Reported-by: NAlexey Dobriyan <adobriyan@gmail.com>
      Signed-off-by: NFrederic Weisbecker <fweisbec@gmail.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      21798a84