1. 07 7月, 2009 37 次提交
    • H
      [S390] add generic atomic64 support for 31 bit · 25ca1251
      Heiko Carstens 提交于
      Performance counters need 64 bit atomic operations.
      To keep the patch small we use the simple generic atomic64_t implementation.
      The native implementation follows with the next kernel.
      
      Fixes this build bug:
      
      In file included from kernel/sched.c:42:
      include/linux/perf_counter.h:427: error: expected specifier-qualifier-list before 'atomic64_t'
      Signed-off-by: NHeiko Carstens <heiko.carstens@de.ibm.com>
      Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      25ca1251
    • C
      [S390] improve suspend/resume error messages · 2c48c4d6
      Christian Borntraeger 提交于
      From: Michael Holzheu <holzheu@linux.vnet.ibm.com>
      Signed-off-by: NMichael Holzheu <holzheu@linux.vnet.ibm.com>
      Signed-off-by: NChristian Borntraeger <borntraeger@de.ibm.com>
      Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      2c48c4d6
    • M
      [S390] set SCHED_OMIT_FRAME_POINTER for s390 · fca3e357
      Martin Schwidefsky 提交于
      The frame pointer is useless for s390 in the sched.c code.
      Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      fca3e357
    • H
      [S390] add __ucmpdi2() helper function · 5075baca
      Heiko Carstens 提交于
      Provide __ucmpdi2() helper function on 31 bit so we don't run
      again and again in compile errors like this one:
      
      kernel/built-in.o: In function `T.689':
      perf_counter.c:(.text+0x56c86): undefined reference to `__ucmpdi2'
      Signed-off-by: NHeiko Carstens <heiko.carstens@de.ibm.com>
      Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      5075baca
    • H
      [S390] perf_counter build fix · 2651fa2b
      Heiko Carstens 提交于
      Add PERF_COUNTER_INDEX_OFFSET define to fix this build bug:
      
      kernel/perf_counter.c: In function 'perf_counter_index':
      kernel/perf_counter.c:1889: error: 'PERF_COUNTER_INDEX_OFFSET' undeclared
      
      Same fix as for FRV since s390 doesn't support hw counters.
      Signed-off-by: NHeiko Carstens <heiko.carstens@de.ibm.com>
      Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      2651fa2b
    • F
      [S390] shutdown actions: save/return rc from init function · 81088819
      Frank Munzert 提交于
      We always returned -EINVAL when setting of a shutdown action failed. This was
      misleading, if for example the hardware did not support the shutdown action.
      Now we save each shutdown action's init return code and return it when the
      action is being set.
      Signed-off-by: NFrank Munzert <munzert@de.ibm.com>
      Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      81088819
    • S
      [S390] dasd: correct debugfeature sense dump · aeec92ca
      Stefan Haberland 提交于
      remove loop, add some debug data and use get_sense function
      Signed-off-by: NStefan Haberland <stefan.haberland@de.ibm.com>
      Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      aeec92ca
    • H
      [S390] udelay: disable lockdep to avoid false positives · bb8c29ca
      Heiko Carstens 提交于
      Our udelay implementation enables interrupts to receive a special timer
      interrupt regardless of the context it is called from.
      This might lead to false positive lockdep reports. Since lockdep isn't
      aware of the fact that only a single interrupt source is enabled it
      warns about possible deadlocks that in reality won't happen, like
      the one below.
      To fix this disable lockdep before enabling interrupts.
      
      [ 254.040888] =================================
      [ 254.040904] [ INFO: inconsistent lock state ]
      [ 254.040910] 2.6.30 #9
      [ 254.040914] ---------------------------------
      [ 254.040920] inconsistent {IN-HARDIRQ-W} -> {HARDIRQ-ON-W} usage.
      [ 254.040927] swapper/0 [HC0[0]:SC1[1]:HE1:SE0] takes:
      [ 254.040934] (sch->lock){?.-...}, at: [<00000000002e4778>] ccw_device_timeout+0x48/0x2f0
      [ 254.040961] {IN-HARDIRQ-W} state was registered at:
      [ 254.040969] [<0000000000096f74>] __lock_acquire+0x9d4/0x188c
      [ 254.040985] [<0000000000097f68>] lock_acquire+0x13c/0x16c
      [ 254.040998] [<00000000004527e0>] _spin_lock+0x74/0xb8
      [ 254.041016] [<0000000000457eb2>] do_IRQ+0xde/0x208
      [ 254.041031] [<000000000002d190>] io_return+0x0/0x8
      [ 254.041049] [<0000000000029faa>] vtime_stop_cpu+0xbe/0x114
      [ 254.041066] irq event stamp: 259629
      [ 254.041076] hardirqs last enabled at (259628): [<000000000045238e>] _spin_unlock_irq+0x5e/0x9c
      [ 254.041095] hardirqs last disabled at (259629): [<000000000045292e>] _spin_lock_irq+0x4a/0xc4
      [ 254.041126] softirqs last enabled at (259614): [<000000000006500e>] __do_softirq+0x296/0x2b0
      [ 254.041137] softirqs last disabled at (259619): [<0000000000024cf6>] do_softirq+0x102/0x108
      [ 254.041147]
      [ 254.041148] other info that might help us debug this:
      [ 254.041153] 2 locks held by swapper/0:
      [ 254.041157] #0: (&priv->timer){+.-...}, at: [<000000000006bf9a>] run_timer_softirq+0x19a/0x340
      [ 254.041170] #1: (sch->lock){?.-...}, at: [<00000000002e4778>] ccw_device_timeout+0x48/0x2f0
      [ 254.041182]
      [ 254.041310] Call Trace:
      [ 254.041313] ([<00000000000174fc>] show_trace+0x16c/0x170)
      [ 254.041321] [<0000000000017578>] show_stack+0x78/0x104
      [ 254.041327] [<000000000044d0ca>] dump_stack+0xc6/0xd4
      [ 254.041342] [<00000000000949b4>] print_usage_bug+0x1c8/0x1fc
      [ 254.041353] [<0000000000094e8a>] mark_lock+0x4a2/0x670
      [ 254.041364] [<00000000000950e2>] mark_held_locks+0x8a/0xb4
      [ 254.041375] [<0000000000095398>] trace_hardirqs_on_caller+0x74/0x1ac
      [ 254.041388] [<00000000000954fa>] trace_hardirqs_on+0x2a/0x38
      [ 254.041402] [<000000000025f1ec>] __udelay_disabled+0xac/0xfc
      [ 254.041419] [<000000000025f432>] __udelay+0x12a/0x148
      [ 254.041433] [<00000000002d64d8>] cio_commit_config+0x170/0x290
      [ 254.041451] [<00000000002d6978>] cio_disable_subchannel+0x120/0x1cc
      [ 254.041468] [<00000000002e32a4>] ccw_device_recog_done+0x54/0x2f4
      [ 254.041485] [<00000000002e3638>] ccw_device_sense_id_done+0x50/0x90
      [ 254.041508] [<00000000002e615a>] snsid_callback+0xfa/0x3a8
      [ 254.041515] [<00000000002dd96c>] ccwreq_stop+0x80/0x90
      [ 254.041523] [<00000000002dda8e>] ccw_request_timeout+0xc2/0xd0
      [ 254.041530] [<00000000002e2f70>] ccw_device_request_event+0x58/0x90
      [ 254.041537] [<00000000002e47ae>] ccw_device_timeout+0x7e/0x2f0
      [ 254.041555] [<000000000006c02a>] run_timer_softirq+0x22a/0x340
      [ 254.041566] [<0000000000064eb0>] __do_softirq+0x138/0x2b0
      [ 254.041578] [<0000000000024cf6>] do_softirq+0x102/0x108
      [ 254.041590] [<00000000000647ce>] irq_exit+0xee/0x114
      [ 254.041603] [<0000000000457d88>] do_extint+0x130/0x17c
      [ 254.041617] [<000000000002d41e>] ext_no_vtime+0x1e/0x22
      [ 254.041631] [<0000000000029faa>] vtime_stop_cpu+0xbe/0x114
      [ 254.041646] ([<0000000000029f58>] vtime_stop_cpu+0x6c/0x114)
      [ 254.041662] [<000000000001d842>] cpu_idle+0x122/0x1c0
      [ 254.041679] [<00000000004482c6>] start_secondary+0xce/0xe0
      [ 254.041696] [<0000000000000000>] 0x0
      [ 254.041715] [<0000000000000000>] 0x0
      [ 254.041745] INFO: lockdep is turned off.
      Signed-off-by: NHeiko Carstens <heiko.carstens@de.ibm.com>
      Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      bb8c29ca
    • H
      [S390] monreader: fix dev_set_drvdata conversion · 99357742
      Heiko Carstens 提交于
      Fix this:
      
      drivers/s390/char/monreader.c: In function 'mon_open':
      drivers/s390/char/monreader.c:323: warning: passing argument 1 of 'dev_set_drvdata' from incompatible pointer type
      include/linux/device.h:457: note: expected 'struct device *' but argument is of type 'struct device **'
      drivers/s390/char/monreader.c: In function 'monreader_freeze':
      drivers/s390/char/monreader.c:466: warning: passing argument 1 of 'dev_get_drvdata' from incompatible pointer type
      include/linux/device.h:452: note: expected 'const struct device *' but argument is of type 'struct device **'
      Signed-off-by: NHeiko Carstens <heiko.carstens@de.ibm.com>
      Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      99357742
    • H
      [S390] sclp: fix compile error for !SCLP_CONSOLE · c9568fdd
      Heiko Carstens 提交于
      Define an empty static inline version of sclp_console_pm_event()
      to fix the build error below for !SCLP_CONSOLE.
      
      drivers/s390/built-in.o: In function `sclp_rw_pm_event':
      sclp_rw.c:(.text+0x12f68): undefined reference to `sclp_console_pm_event'
      Signed-off-by: NHeiko Carstens <heiko.carstens@de.ibm.com>
      Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      c9568fdd
    • L
      Merge branch 'x86-fixes-for-linus' of... · faf80d62
      Linus Torvalds 提交于
      Merge branch 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
      
      * 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
        x86: fix usage of bios intcall()
        x86: Remove unused function lapic_watchdog_ok()
        x86: Remove unused variable disable_x2apic
        x86, kvm: Fix section mismatches in kvm.c
        x86: Add missing annotation to arch/x86/lib/copy_user_64.S::copy_to_user
        x86: Fix fixmap page order for FIX_TEXT_POKE0,1
        amd-iommu: set evt_buf_size correctly
        amd-iommu: handle alias entries correctly in init code
        x86: Fix printk call in print_local_apic()
        x86: Declare check_efer() before it gets used
        x86: Mark device_nb as static and fix NULL noise
        x86: Remove double declaration of MSR_P6_EVNTSEL0 and MSR_P6_EVNTSEL1
        xen: Use kcalloc() in xen_init_IRQ()
        x86: Fix fixmap ordering
        x86: Fix symbol annotation for arch/x86/lib/clear_page_64.S::clear_page_c
      faf80d62
    • L
      Merge master.kernel.org:/home/rmk/linux-2.6-arm · eca4ee0d
      Linus Torvalds 提交于
      * master.kernel.org:/home/rmk/linux-2.6-arm:
        [ARM] amba: fix amba device resources
        [ARM] pgtable: file pte layout documentation
        [ARM] pgtable: swp pte layout documentation, definitions, and check
        [ARM] export __cpu_flush_dcache_page
        [ARM] 5576/1: Update kb9202_defconfig
        [ARM] 5581/1: U300 clock updates
        [ARM] 5579/1: Updated U300 defconfig
      eca4ee0d
    • L
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/ide-2.6 · e5a7675d
      Linus Torvalds 提交于
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/ide-2.6:
        Revert "ide: improve handling of Power Management requests"
      e5a7675d
    • L
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6 · eeaecb86
      Linus Torvalds 提交于
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (39 commits)
        Revert "p54: Use SKB list handling helpers instead of by-hand code."
        sctp: fix warning at inet_sock_destruct() while release sctp socket
        tun/tap: Fix crashes if open() /dev/net/tun and then poll() it.
        dsa: fix 88e6xxx statistics counter snapshotting
        forcedeth: Fix NAPI race.
        drivers/net/smsc911x.c: Fix resource size off by 1 error
        pcnet_cs: add new id
        bnx2x: Fix the maximal values of coalescing timeouts.
        bnx2x: Disable HC coalescing when setting timeout to zero.
        tun: Fix device unregister race
        be2net: fix spurious interrupt handling in intx mode
        e1000e: disable K1 at 1000Mbps for 82577/82578
        e1000e: delay second read of PHY_STATUS register on failure of first read
        e1000e: prevent NVM corruption on sectors larger than 4K
        e1000e: do not write SmartSpeed register bits on parts without support
        e1000e: delay after LCD reset and proper checks for PHY configuration done
        e1000e: PHY loopback broken on 82578
        ixgbe: Not allow 8259x unsupported wol options change from ethtool
        ixgbe: fix inconsistent SFP/SFP+ failure results.
        ixgbe: fix regression on some 82598 adapters
        ...
      eeaecb86
    • L
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6 · dc53fffc
      Linus Torvalds 提交于
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6:
        PCI: Fix IRQ swizzling for ARI-enabled devices
        ia64/PCI: adjust section annotation for pcibios_setup()
        x86/PCI: get root CRS before scanning children
        x86/PCI: fix boundary checking when using root CRS
        PCI MSI: Fix restoration of MSI/MSI-X mask states in suspend/resume
        PCI MSI: Unmask MSI if setup failed
        PCI MSI: shorten PCI_MSIX_ENTRY_* symbol names
        PCI: make pci_name() take const argument
        PCI: More PATA quirks for not entering D3
        PCI: fix kernel-doc warnings
        PCI: check if bus has a proper bridge device before triggering SBR
        PCI: remove pci_dac_dma_... APIs on mn10300
        PCI ECRC: Remove unnecessary semicolons
        PCI MSI: Return if alloc_msi_entry for MSI-X failed
      dc53fffc
    • L
      Merge branch 'fixes-for-linus' of git://git.monstr.eu/linux-2.6-microblaze · f560902c
      Linus Torvalds 提交于
      * 'fixes-for-linus' of git://git.monstr.eu/linux-2.6-microblaze:
        microblaze: Fix cast warning for init.c
        microblaze: Wire up new syscalls
        microblaze: use generic syscalls.h
        microblaze: clean up signal handling
        microblaze: convert all simple headers to use asm-generic
        microblaze: use the generic lib/checksum.c
        microblaze: fall back on generic header files for the ABI
      f560902c
    • L
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/penberg/slab-2.6 · 9861df15
      Linus Torvalds 提交于
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/penberg/slab-2.6:
        SLAB: Fix lockdep annotations
        fix RCU-callback-after-kmem_cache_destroy problem in sl[aou]b
      9861df15
    • L
      Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6 · 8871b201
      Linus Torvalds 提交于
      * 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6: (25 commits)
        V4L/DVB (12206): get_dvb_firmware: Correct errors in MPC718 firmware extraction logic
        V4L/DVB (12203): radio-si470x: fix lock imbalance
        V4L/DVB (12202): em28xx, fix lock imbalance
        V4L/DVB (12172): em28xx: Add autodetection code for Silvercrest 1.3 mpix
        V4L/DVB (12171): em28xx: fix webcam usage with different output formats
        V4L/DVB (12169): em28xx-video: fix VIDIOC_G_FMT and VIDIOC_ENUMFMT with webcams
        V4L/DVB (12156): em28xx: Fix tuning for Terratec Cinergy T XS USB (zl10353 version)
        V4L/DVB (12139): em28xx: add other video formats
        V4L/DVB (12138): em28xx: add support for Silvercrest Webcam
        V4L/DVB (12174): mt9v011: let's stick with datasheet values where it works
        V4L/DVB (12173): mt9v011: properly calculate image resolution registers
        V4L/DVB (12137): mt9v011: CodingStyle fixes
        V4L/DVB (12136): mt9v011: Some fixes at the register initialization table
        V4L/DVB (12135): Add a driver for mt9v011 sensor
        V4L/DVB (12166): cx23885: add FIXME comment above set_frontend override
        V4L/DVB (12165): cx23885: override set_frontend to allow rf input path switching on the HVR1275
        V4L/DVB (12148): move V4L2_PIX_FMT_SGRBG8 to the proper place
        V4L/DVB (12182): cx18: Add DVB-T support for Yuan MPC-718 cards with an MT352 or ZL10353
        V4L/DVB (12181): get_dvb_firmware: Add Yuan MPC718 MT352 DVB-T "firmware" extraction
        V4L/DVB (12180): cx18: Update Yuan MPC-718 card entry with better information and guesses
        ...
      8871b201
    • L
      Merge git://git.infradead.org/iommu-2.6 · 085ff82c
      Linus Torvalds 提交于
      * git://git.infradead.org/iommu-2.6:
        intel-iommu: Don't use identity mapping for PCI devices behind bridges
        intel-iommu: Use iommu_should_identity_map() at startup time too.
        intel-iommu: No mapping for non-PCI devices
        intel-iommu: Restore DMAR_BROKEN_GFX_WA option for broken graphics drivers
        intel-iommu: Add iommu_should_identity_map() function
        intel-iommu: Fix reattaching of devices to identity mapping domain
        intel-iommu: Don't set identity mapping for bypassed graphics devices
        intel-iommu: Fix dma vs. mm page confusion with aligned_nrpages()
      085ff82c
    • L
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6 · f63bafe5
      Linus Torvalds 提交于
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6:
        ieee1394: sbp2: add support for disks >2 TB (and 16 bytes long CDBs)
        firewire: sbp2: add support for disks >2 TB (and 16 bytes long CDBs)
        firewire: core: do not DMA-map stack addresses
      f63bafe5
    • P
      fb: Initialize fb_info mutexes in framebuffer_alloc() · 4148df9b
      Paul Mundt 提交于
      This way they'll be properly initialized early enough for users that may
      touch them before the framebuffer has been registered.
      
      Drivers that allocate their fb_info structure some other way (like
      matrocfb's broken static allocation) need to be fixed up appropriately.
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      4148df9b
    • O
      cred_guard_mutex: do not return -EINTR to user-space · 793285fc
      Oleg Nesterov 提交于
      do_execve() and ptrace_attach() return -EINTR if
      mutex_lock_interruptible(->cred_guard_mutex) fails.
      
      This is not right, change the code to return ERESTARTNOINTR.
      
      Perhaps we should also change proc_pid_attr_write().
      Signed-off-by: NOleg Nesterov <oleg@redhat.com>
      Cc: David Howells <dhowells@redhat.com>
      Acked-by: NRoland McGrath <roland@redhat.com>
      Cc: James Morris <jmorris@namei.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      793285fc
    • T
      linux/sysrq.h needs linux/errno.h · 82e3310a
      Tobias Doerffel 提交于
      In include/linux/sysrq.h the constant EINVAL is being used but is undefined
      if include/linux/errno.h is not included before.
      
      Fix this by adding #include <linux/errno.h> at the beginning.
      Signed-off-by: NTobias Doerffel <tobias.doerffel@gmail.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      82e3310a
    • I
      drivers/video/s3c-fb.c: fix clock setting for Samsung SoC Framebuffer · 600ce1a0
      InKi Dae 提交于
      Correct the CLKVAL_F field value of VIDEO MAIN CONTROLLER 0 REGITSTER.
      
      Frame Rate is 1 / [ { (VSPW+1) + (VBPD+1) + (LIINEVAL + 1) + (VFPD+1)
      } x {(HSPW+1) + (HBPD +1)
      + (HFPD+1) + (HOZVAL + 1) } x { ( CLKVAL+1 ) / ( Frequency of Clock
      source ) } ] and VCLK = Video Clock Source / (CLKVAL +1).
      
      therefore CLKVAL_F should be "CLKVAL_F = Frequency of Clock source / pixel
      clock * refresh".
      
      for this, I added refresh value in platform data like below.
      
      static struct s3c_fb_pd_win xxx_fb_win0 = {
      	/* this is to ensure we use win0 */
      	.win_mode = {
      		.refresh	= 60,
      		.pixclock	= (66+4+2+480)*(15+5+3+800),
      		.left_margin	= 66,
      		.right_margin	= 2,
      		.upper_margin	= 15,
      		.lower_margin	= 3,
      		.hsync_len	= 4,
      		.vsync_len	= 5,
      		.xres		= 480,
      		.yres		= 800,
      	},
      	.max_bpp	= 32,
      	.default_bpp	= 24,
      };
      
      static struct s3c_fb_platdata xxx_lcd_pdata __initdata = {
      	.win[0]		= &xxx_fb_win0,
      	.vidcon0	= VIDCON0_VIDOUT_RGB | VIDCON0_PNRMODE_RGB,
      	.vidcon1	= VIDCON1_INV_HSYNC | VIDCON1_INV_VSYNC
      			| VIDCON1_INV_VCLK | VIDCON1_INV_VDEN,
      	.setup_gpio	= s5pc1xx_fb_gpio_setup_24bpp,
      };
      
      xxx_machine_init()
      {
                         .
                         .
                         .
                     s3c_fb_set_platdata(&xxx_lcd_pdata);
      }
      
      platform data defined in machine code should be setting using
      s3c_fb_set_platdata().
      Signed-off-by: NInKi Dae <inki.dae@samsung.com>
      Cc: Kyungmin Park <kmpark@infradead.org>
      Cc: Krzysztof Helt <krzysztof.h1@poczta.fm>
      Cc: Marek Szyprowski <m.szyprowski@samsung.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      600ce1a0
    • K
      Fix virt_to_phys() warnings · 5bfd7560
      Kevin Cernekee 提交于
      These warnings were observed on MIPS32 using 2.6.31-rc1 and gcc-4.2.0:
      
      mm/page_alloc.c: In function 'alloc_pages_exact':
      mm/page_alloc.c:1986: warning: passing argument 1 of 'virt_to_phys' makes pointer from integer without a cast
      
      drivers/usb/mon/mon_bin.c: In function 'mon_alloc_buff':
      drivers/usb/mon/mon_bin.c:1264: warning: passing argument 1 of 'virt_to_phys' makes pointer from integer without a cast
      
      [akpm@linux-foundation.org: fix kernel/perf_counter.c too]
      Signed-off-by: NKevin Cernekee <cernekee@gmail.com>
      Cc: Andi Kleen <andi@firstfloor.org>
      Cc: Ralf Baechle <ralf@linux-mips.org>
      Cc: Ingo Molnar <mingo@elte.hu>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      5bfd7560
    • J
      mm: mark page accessed before we write_end() · c8236db9
      Josef Bacik 提交于
      In testing a backport of the write_begin/write_end AOPs, a 10% re-read
      regression was noticed when running iozone.  This regression was
      introduced because the old AOPs would always do a mark_page_accessed(page)
      after the commit_write, but when the new AOPs where introduced, the only
      place this was kept was in pagecache_write_end().
      
      This patch does the same thing in the generic case as what is done in
      pagecache_write_end(), which is just to mark the page accessed before we
      do write_end().
      Signed-off-by: NJosef Bacik <jbacik@redhat.com>
      Acked-by: NNick Piggin <npiggin@suse.de>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      c8236db9
    • H
      elf: fix multithreaded program core dumping on arm · a65e7bfc
      Hui Zhu 提交于
      Fix the multithread program core thread message error.
      
      This issue affects arches with neither has CORE_DUMP_USE_REGSET nor
      ELF_CORE_COPY_TASK_REGS, ARM is one of them.
      
      The thread message of core file is generated in elf_dump_thread_status.
      The register values is set by elf_core_copy_task_regs in this function.
      
      If an arch doesn't define ELF_CORE_COPY_TASK_REGS,
      elf_core_copy_task_regs() will do nothing.  Then the core file will not
      have the register message of thread.
      
      So add elf_core_copy_regs to set regiser values if ELF_CORE_COPY_TASK_REGS
      doesn't define.
      
      The following is how to reproduce this issue:
      
      cat 1.c
      #include <stdio.h>
      #include <pthread.h>
      #include <assert.h>
      
      void td1(void * i)
      {
             while (1)
             {
                     printf ("1\n");
                     sleep (1);
             }
      
             return;
      }
      
      void td2(void * i)
      {
             while (1)
             {
                     printf ("2\n");
                     sleep (1);
             }
      
             return;
      }
      
      int
      main(int argc,char *argv[],char *envp[])
      {
             pthread_t       t1,t2;
      
             pthread_create(&t1, NULL, (void*)td1, NULL);
             pthread_create(&t2, NULL, (void*)td2, NULL);
      
             sleep (10);
      
             assert(0);
      
             return (0);
      }
      arm-xxx-gcc -g -lpthread 1.c -o 1
      copy 1.c and 1 to a arm board.
      Goto this board.
      ulimit -c 1800000
      ./1
      # ./1
      1
      2
      1
      ...
      ...
      1
      1: 1.c:37: main: Assertion `0' failed.
      Aborted (core dumped)
      Then you can get a core file.
      gdb 1 core.xxx
      Without the patch:
      (gdb) info threads
       3 process 909  0x00000000 in ?? ()
       2 process 908  0x00000000 in ?? ()
      * 1 process 907  0x4a6e2238 in raise () from /lib/libc.so.6
      You can found that the pc of 909 and 908 is 0x00000000.
      With the patch:
      (gdb) info threads
       3 process 885  0x4a749974 in nanosleep () from /lib/libc.so.6
       2 process 884  0x4a749974 in nanosleep () from /lib/libc.so.6
      * 1 process 883  0x4a6e2238 in raise () from /lib/libc.so.6
      The pc of 885 and 884 is right.
      Signed-off-by: NHui Zhu <teawater@gmail.com>
      Cc: Amerigo Wang <xiyou.wangcong@gmail.com>
      Cc: Al Viro <viro@zeniv.linux.org.uk>
      Cc: David Howells <dhowells@redhat.com>
      Cc: Roland McGrath <roland@redhat.com>
      Cc: Jakub Jelinek <jakub@redhat.com>
      Cc: Russell King <rmk@arm.linux.org.uk>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      a65e7bfc
    • Z
      sys_sync(): fix 16% performance regression in ffsb create_4k test · 3beab0b4
      Zhang, Yanmin 提交于
      I run many ffsb test cases on JBODs (typically 13/12 disks).  Comparing
      with kernel 2.6.30, 2.6.31-rc1 has about 16% regression with
      ffsb_create_4k.  The sub test case creates files continuously for 10
      minitues and every file is 1MB.
      
      Bisect located below patch.
      
      5cee5815 is first bad commit
      commit 5cee5815
      Author: Jan Kara <jack@suse.cz>
      Date:   Mon Apr 27 16:43:51 2009 +0200
      
          vfs: Make sys_sync() use fsync_super() (version 4)
      
          It is unnecessarily fragile to have two places (fsync_super() and do_sync())
          doing data integrity sync of the filesystem. Alter __fsync_super() to
          accommodate needs of both callers and use it. So after this patch
          __fsync_super() is the only place where we gather all the calls needed to
          properly send all data on a filesystem to disk.
      
      As a matter of fact, ffsb calls sys_sync in the end to make sure all data
      is flushed to disks and the flushing is counted into the result.  vmstat
      shows ffsb is blocked when syncing for a long time.  With 2.6.30, ffsb is
      blocked for a short time.
      
      I checked the patch and did experiments to recover the original methods.
      Eventually, the root cause is the patch deletes the calling to
      wakeup_pdflush when syncing, so only ffsb is blocked on disk I/O.
      wakeup_pdflush could ask pdflush to write back pages with ffsb at the
      same time.
      
      [akpm@linux-foundation.org: restore comment too]
      Signed-off-by: NZhang Yanmin <yanmin_zhang@linux.intel.com>
      Cc: Jan Kara <jack@suse.cz>
      Cc: Al Viro <viro@zeniv.linux.org.uk>
      Acked-by: NJens Axboe <jens.axboe@oracle.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      3beab0b4
    • P
      gcov: exclude code operating in userspace from profiling · f386c61f
      Peter Oberparleiter 提交于
      Fix for this issue on x86_64:
      
      rostedt@goodmis.org wrote:
      > On bootup of the latest kernel my init segfaults. Debugging it,
      > I found  that vread_tsc (a vsyscall) increments some strange
      > kernel memory:
      >
      > 0000000000000000 <vread_tsc>:
      >    0:   55                      push   %rbp
      >    1:   48 ff 05 00 00 00 00    incq   0(%rip)
      >                         # 8 <vread_tsc+0x8>
      >                         4: R_X86_64_PC32        .bss+0x3c
      >    8:   48 89 e5                mov    %rsp,%rbp
      >    b:   66 66 90                xchg   %ax,%ax
      >    e:   48 ff 05 00 00 00 00    incq   0(%rip)
      >                         # 15 <vread_tsc+0x15>
      >                         11: R_X86_64_PC32       .bss+0x44
      >   15:   66 66 90                xchg   %ax,%ax
      >   18:   48 ff 05 00 00 00 00    incq   0(%rip)
      >                         # 1f <vread_tsc+0x1f>
      >                         1b: R_X86_64_PC32       .bss+0x4c
      >   1f:   0f 31                   rdtsc
      >
      >
      > Those "incq" is very bad to happen in vsyscall memory, since
      > userspace can not modify it. You need to make something prevent
      > profiling of vsyscall  memory (like I do with ftrace).
      Signed-off-by: NPeter Oberparleiter <oberpar@linux.vnet.ibm.com>
      Cc: Ingo Molnar <mingo@elte.hu>
      Reported-by: NSteven Rostedt <rostedt@goodmis.org>
      Tested-by: NSteven Rostedt <rostedt@goodmis.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      f386c61f
    • J
      rtc: ds1374, fix lock imbalance · 28df30e6
      Jiri Slaby 提交于
      When i2c_smbus_read_byte_data fails in ds1374_work, we forgot to unlock
      the held lock.  Fix that.
      Signed-off-by: NJiri Slaby <jirislaby@gmail.com>
      Cc: Alessandro Zummo <a.zummo@towertech.it>
      Cc: Scott Wood <scottwood@freescale.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      28df30e6
    • F
      vlynq: fix typo in Kconfig to enable debugging · efc0cfa6
      Florian Fainelli 提交于
      Fix a typo in the VLYNQ bus driver Kconfig which prevented to turn on
      VLYNQ bus debugging.
      Signed-off-by: NFlorian Fainelli <florian@openwrt.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      efc0cfa6
    • R
      vlynq: correct typo of missing "CONFIG_" prefix in ifdef · 9e2db5c9
      Robert P. J. Day 提交于
      Fix a typo in the vlynq bus driver which was missing the CONFIG_ prefix to
      turn on debugging code.
      Signed-off-by: NRobert P. J. Day <rpjday@crashcourse.ca>
      Signed-off-by: NFlorian Fainelli <florian@openwrt.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      9e2db5c9
    • K
      sisfb: fix regression with uninitalized fb_info->mm_lock mutex · cbad1cbb
      Krzysztof Helt 提交于
      Remove redundant call to the sisfb_get_fix() before sis frambuffer is
      registered.
      
      This fixes a problem with uninitialized the fb_info->mm_lock mutex
      introduced by the commit 537a1bf0 " fbdev: add mutex for fb_mmap
      locking"
      Signed-off-by: NKrzysztof Helt <krzysztof.h1@wp.pl>
      Tested-by: NWu Zhangjin <wuzhangjin@gmail.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      cbad1cbb
    • D
      Revert "p54: Use SKB list handling helpers instead of by-hand code." · 0ca1b08e
      David S. Miller 提交于
      This reverts commit a1091aae.
      0ca1b08e
    • W
      sctp: fix warning at inet_sock_destruct() while release sctp socket · 1bc4ee40
      Wei Yongjun 提交于
      Commit 'net: Move rx skb_orphan call to where needed' broken sctp protocol
      with warning at inet_sock_destruct(). Actually, sctp can do this right with
      sctp_sock_rfree_frag() and sctp_skb_set_owner_r_frag() pair.
      
          sctp_sock_rfree_frag(skb);
          sctp_skb_set_owner_r_frag(skb, newsk);
      
      This patch not revert the commit d55d87fd,
      instead remove the sctp_sock_rfree_frag() function.
      
      ------------[ cut here ]------------
      WARNING: at net/ipv4/af_inet.c:151 inet_sock_destruct+0xe0/0x142()
      Modules linked in: sctp ipv6 dm_mirror dm_region_hash dm_log dm_multipath
      scsi_mod ext3 jbd uhci_hcd ohci_hcd ehci_hcd [last unloaded: scsi_wait_scan]
      Pid: 1808, comm: sctp_test Not tainted 2.6.31-rc2 #40
      Call Trace:
       [<c042dd06>] warn_slowpath_common+0x6a/0x81
       [<c064a39a>] ? inet_sock_destruct+0xe0/0x142
       [<c042dd2f>] warn_slowpath_null+0x12/0x15
       [<c064a39a>] inet_sock_destruct+0xe0/0x142
       [<c05fde44>] __sk_free+0x19/0xcc
       [<c05fdf50>] sk_free+0x18/0x1a
       [<ca0d14ad>] sctp_close+0x192/0x1a1 [sctp]
       [<c0649f7f>] inet_release+0x47/0x4d
       [<c05fba4d>] sock_release+0x19/0x5e
       [<c05fbab3>] sock_close+0x21/0x25
       [<c049c31b>] __fput+0xde/0x189
       [<c049c3de>] fput+0x18/0x1a
       [<c049988f>] filp_close+0x56/0x60
       [<c042f422>] put_files_struct+0x5d/0xa1
       [<c042f49f>] exit_files+0x39/0x3d
       [<c043086a>] do_exit+0x1a5/0x5dd
       [<c04a86c2>] ? d_kill+0x35/0x3b
       [<c0438fa4>] ? dequeue_signal+0xa6/0x115
       [<c0430d05>] do_group_exit+0x63/0x8a
       [<c0439504>] get_signal_to_deliver+0x2e1/0x2f9
       [<c0401d9e>] do_notify_resume+0x7c/0x6b5
       [<c043f601>] ? autoremove_wake_function+0x0/0x34
       [<c04a864e>] ? __d_free+0x3d/0x40
       [<c04a867b>] ? d_free+0x2a/0x3c
       [<c049ba7e>] ? vfs_write+0x103/0x117
       [<c05fc8fa>] ? sys_socketcall+0x178/0x182
       [<c0402a56>] work_notifysig+0x13/0x19
      ---[ end trace 9db92c463e789fba ]---
      Signed-off-by: NWei Yongjun <yjwei@cn.fujitsu.com>
      Acked-by: NHerbert Xu <herbert@gondor.apana.org.au>
      Acked-by: NVlad Yasevich <vladislav.yasevich@hp.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      1bc4ee40
    • M
      tun/tap: Fix crashes if open() /dev/net/tun and then poll() it. · 3c8a9c63
      Mariusz Kozlowski 提交于
      Fix NULL pointer dereference in tun_chr_pool() introduced by commit
      33dccbb0 ("tun: Limit amount of queued
      packets per device") and triggered by this code:
      
      	int fd;
      	struct pollfd pfd;
      	fd = open("/dev/net/tun", O_RDWR);
      	pfd.fd = fd;
      	pfd.events = POLLIN | POLLOUT;
      	poll(&pfd, 1, 0);
      Reported-by: NEugene Kapun <abacabadabacaba@gmail.com>
      Signed-off-by: NMariusz Kozlowski <m.kozlowski@tuxland.pl>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      3c8a9c63
    • D
      Revert "ide: improve handling of Power Management requests" · 3503e0ac
      David S. Miller 提交于
      This reverts commit a1317f71.
      3503e0ac
  2. 06 7月, 2009 3 次提交