linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Linux 3.7-rc8
@ 2012-12-03 20:36 Linus Torvalds
  2012-12-03 20:55 ` Stephen Rothwell
                   ` (2 more replies)
  0 siblings, 3 replies; 13+ messages in thread
From: Linus Torvalds @ 2012-12-03 20:36 UTC (permalink / raw)
  To: Linux Kernel Mailing List

I really didn't want it to come to this, but I was uncomfortable doing
the 3.7 release yesterday due to last-minute issues, and decided to
sleep on it.

And today, I ended up even *less* comfortable about it due to the
resurrection of a kswapd issue, so I decided that I'm going to do
another -rc after all.

Which is not very nice timing-wise, since that means that the next
merge window will run up very close to christmas, but hey, maybe that
will at least convince people to not leave things to the final days of
the merge window, and send me pull requests *early*. That would be
nice.

And because I'm dragging it out for another week, I'm going to be
*very* bitter if anybody sends me pull requests this late in the game
that aren't for major issues. If you send me small irrelevant stuff
that doesn't fix major issues (oopses, security, things like that),
I'm going to curse at you and ignore your pull request. So don't do
it.

The only things I want to see are fixes that people care deeply about.
If it's not critical, or you don't have an actual problem report from
an actual user, just put it in the queue under the christmas tree, and
let it got for 3.8.

(Ok, while writing this I got another pull request that made me go "We
don't really need this". I'll pull that, because technically it came
in before I'd given people this warning, but ...)

                Linus

---

Al Viro (12):
      um: get_safe_registers() should be done in flush_thread(), not
start_thread()
      openrisk: fix altstack switching on sigreturn
      sh64: fix altstack switching on sigreturn
      score: do_sigaltstack() expects a userland pointer...
      microblaze: rt_sigreturn is too trigger-happy about sigaltstack errors
      don't do blind d_drop() in nfs_prime_dcache()
      nfs_lookup_revalidate(): fix a leak
      cifs: get rid of blind d_drop() in readdir
      lookup_one_len: don't accept . and ..
      fix off-by-one in argument passed by iterate_fd() to callbacks
      open*(2) compat fixes (s390, arm64)
      [parisc] open(2) compat bug

Amir Vadai (1):
      net/mlx4_en: Can set maxrate only for TC0

Anatolij Gustschin (1):
      [media] mt9v022: fix the V4L2_CID_EXPOSURE control

Andrew Karpow (1):
      [media] rtl28xxu: 0ccd:00d7 TerraTec Cinergy T Stick+

Andrew Morton (1):
      revert "Revert "mm: remove __GFP_NO_KSWAPD""

Antti Palosaari (3):
      [media] dvb_usb_v2: fix pid_filter callback error logging
      [media] dvb_usb_v2: switch interruptible mutex to normal
      [media] rtl28xxu: 1d19:1102 Dexatek DK mini DVB-T Dongle

Arnd Bergmann (1):
      IXP4xx: use __iomem for MMIO

Arun Kumar K (2):
      [media] s5p-mfc: Bug fix of timestamp/timecode copy mechanism
      [media] s5p-mfc: Handle multi-frame input buffer

Bjørn Mork (1):
      net: qmi_wwan: add Huawei E173

Charles Keepax (3):
      mfd: arizona: Use correct array for ARRAY_SIZE in mfd_add_devices call
      mfd: arizona: Correctly report when AIF2/AIF1 is underclocked
      mfd: arizona: Sync regcache after reset

Chris Wilson (1):
      Revert "drm/i915: enable rc6 on ilk again"

Chuansheng Liu (1):
      watchdog: using u64 in get_sample_period()

Dan Carpenter (1):
      atm: forever loop loading ambassador firmware

Daniel Vetter (1):
      drm/i915: disable cloning on sdvo

Darren Hart (1):
      futex: avoid wake_futex() for a PI futex_q

Dave Martin (1):
      ARM: 7583/1: decompressor: Enable unaligned memory access for v6 and above

David Howells (6):
      x86: Export asm/{svm.h,vmx.h,perf_regs.h}
      tools: Define a Makefile function to do subdir processing
      tools: Honour the O= flag when tool build called from a higher Makefile
      tools: Pass the target in descend
      perf: Make perf build for x86 with UAPI disintegration applied
      UAPI: strip the _UAPI prefix from header guards during header installation

Emmanuel Grumbach (1):
      iwlwifi: fix the basic CCK rates calculation

Eric Dumazet (2):
      net: ipmr: limit MRT_TABLE identifiers
      tcp: fix crashes in do_tcp_sendpages()

Florian Westphal (1):
      netfilter: ipset: fix netiface set name overflow

Frederic Weisbecker (1):
      rcu: Fix unrecovered RCU user mode in syscall_trace_leave()

Guennadi Liakhovetski (7):
      [media] media: sh_vou: fix const cropping related warnings
      [media] media: sh_mobile_ceu_camera: fix const cropping related warnings
      [media] media: pxa_camera: fix const cropping related warnings
      [media] media: mx3_camera: fix const cropping related warnings
      [media] media: mx2_camera: fix const cropping related warnings
      [media] media: mx1_camera: use the default .set_crop() implementation
      [media] media: omap1_camera: fix const cropping related warnings

H. Peter Anvin (2):
      x86, kvm: Remove incorrect redundant assembly constraint
      x86-32: Unbreak booting on some 486 clones

Hans Verkuil (4):
      [media] adv7604: cleanup references
      [media] adv7604: Replace prim_mode by mode
      [media] adv7604: use presets where possible
      [media] adv7604: restart STDI once if format is not found

Inki Dae (3):
      drm/exynos: fix linux framebuffer address setting.
      drm/exynos: remove unnecessary code.
      drm/exynos: fix overlay updating issue

Jan Kara (2):
      jbd: Fix lock ordering bug in journal_unmap_buffer()
      writeback: put unused inodes to LRU after writeback completion

Jani Nikula (1):
      drm/i915: do not default to 18 bpp for eDP if missing from VBT

Jason Gunthorpe (1):
      ARM: Kirkwood: Update PCI-E fixup

Jean Delvare (1):
      i7300_edac: Fix error flag testing

Jean-François Moine (1):
      tty vt: Fix a regression in command line edition

Jeff Layton (1):
      cifs: fix writeback race with file that is growing

Jerome Glisse (1):
      radeon: fix pll/ctrc mapping on dce2 and dce3 hardware

Jesse Gross (1):
      openvswitch: Print device when warning about over MTU packets.

Jianguo Wu (1):
      mm/vmemmap: fix wrong use of virt_to_page

Jiri Pirko (1):
      team: fix hw_features setup

Johannes Berg (1):
      mac80211: fix remain-on-channel (non-)cancelling

Johannes Weiner (1):
      mm: vmscan: fix endless loop in kswapd balancing

Josh Cartwright (1):
      ARM: 7570/1: quiet down the non make -s output

Kalle Jokiniemi (1):
      mfd: twl4030: Fix chained irq handling on resume from suspend

Kim, Milo (1):
      drivers/rtc/rtc-tps65910.c: fix invalid pointer access on _remove()

Krzysztof Hałasa (9):
      IXP4xx: Fix Goramo MultiLink platform compilation.
      IXP4xx: Fix off-by-one bug in Goramo MultiLink platform.
      IXP4xx: HW pseudo-random generator is available on IXP45x/46x only.
      IXP4xx: ixp4xx_crypto driver requires Queue Manager and NPE drivers.
      IXP4xx: Remove time limit for PCI TRDY to enable use of slow devices.
      WAN: Remove redundant HDLC info printed by IXP4xx HSS driver.
      IXP4xx crypto: MOD_AES{128,192,256} already include key size.
      IXP4xx: Always ioremap() Queue Manager MMIO region at boot.
      IXP4xx: map CPU config registers within VMALLOC region.

Laurent Pinchart (2):
      [media] omap3isp: video: Fix warning caused by bad vidioc_s_crop prototype
      [media] omap3isp: Fix warning caused by bad subdev events
operations prototypes

Linus Torvalds (5):
      fs/buffer.c: make block-size be per-page and protected by the page lock
      blockdev: remove bd_block_size_semaphore again
      direct-io: don't read inode->i_blkbits multiple times
      blkdev_max_block: make private to fs/buffer.c
      Linux 3.7-rc8

Mark Brown (2):
      mfd: wm5102: Update register patch for latest evaluation
      mfd: wm5110: Disable control interface error report for WM5110 rev B

Mark Salter (4):
      c6x: run do_notify_resume with interrupts enabled
      c6x: fix misleading comment
      c6x: remove internal kernel symbols from exported setup.h
      c6x: use generic kvm_para.h

Mauro Carvalho Chehab (2):
      i82975x_edac: Fix dimm label initialization
      edac: Fix the dimm filling for csrows-based layouts

Mehak Mahajan (1):
      openvswitch: Store flow key len if ARP opcode is not request or reply.

Mel Gorman (4):
      Revert "mm: remove __GFP_NO_KSWAPD"
      mm: vmscan: check for fatal signals iff the process was throttled
      mm: compaction: fix return value of capture_free_page()
      mm: avoid waking kswapd for THP allocations when compaction is
deferred or contended

Michael Neuling (1):
      perf, powerpc: Fix hw breakpoints returning -ENOSPC

Michael S. Tsirkin (1):
      vhost: fix length for cross region descriptor

Mike Galbraith (2):
      workqueue: exit rescuer_thread() as TASK_RUNNING
      Revert "sched, autogroup: Stop going ahead if autogroup is disabled"

Mikulas Patocka (1):
      percpu-rwsem: use synchronize_sched_expedited

Namhyung Kim (2):
      perf header: Fix numa topology printing
      perf tools: Fix strbuf_addf() when the buffer needs to grow

Naoya Horiguchi (1):
      mm: soft offline: split thp at the beginning of soft_offline_page()

Neal Cardwell (1):
      ipv4: avoid passing NULL to inet_putpeer() in icmpv4_xrlim_allow()

NeilBrown (1):
      md/raid1{,0}: fix deadlock in bitmap_unplug.

Nicolas Pitre (1):
      ARM: 7572/1: proc-v6.S: fix comment

Ohad Ben-Cohen (1):
      remoteproc: fix error path of ->find_vqs

Oliver Hartkopp (2):
      can: peak_usb: fix hwtstamp assignment
      can: bcm: initialize ifindex for timeouts without previous frame reception

Pavel Shilovsky (1):
      CIFS: Fix wrong buffer pointer usage in smb_set_file_info

Peter Ujfalusi (1):
      mfd: twl-core: Fix chip ID for the twl6030-pwm module

Prarit Bhargava (1):
      i7core_edac: fix panic when accessing sysfs files

Roland Dreier (1):
      target: Fix handling of aborted commands

Russell King - ARM Linux (2):
      Dove: Attempt to fix PMU/RTC interrupts
      Dove: Fix irq_to_pmu()

Sachin Kamat (4):
      [media] s5p-fimc: Fix potential NULL pointer dereference
      ARM: S3C24XX: Fix potential NULL pointer dereference error
      drm/exynos: Make exynos4/5_fimd_driver_data static
      drm/exynos: Fix potential NULL pointer dereference in exynos_drm_encoder.c

Schoch Christian (1):
      sctp: Error in calculation of RTTvar

Shaik Ameer Basha (2):
      [media] exynos-gsc: change driver compatible string
      [media] exynos-gsc: Fix settings for input and output image RGB type

Stanislav Kinsbursky (1):
      proc: check vma->vm_file before dereferencing

Sukadev Bhattiprolu (1):
      perf powerpc: Use uapi/unistd.h to fix build error

Sylwester Nawrocki (8):
      [media] s5p-fimc: Don't ignore return value of vb2_queue_init()
      [media] s5p-csis: Select S5P_SETUP_MIPIPHY
      [media] s5p-fimc: Fix platform entities registration
      [media] s5p-fimc: Prevent race conditions during subdevs registration
      [media] s5p-fimc: Don't use mutex_lock_interruptible() in device release()
      [media] fimc-lite: Don't use mutex_lock_interruptible() in
device release()
      [media] exynos-gsc: Don't use mutex_lock_interruptible() in
device release()
      [media] exynos-gsc: Add missing video device vfl_dir flag initialization

Tejun Heo (1):
      workqueue: mod_delayed_work_on() shouldn't queue timer on 0 delay

Tim Gardner (1):
      ixp4xx: Declare MODULE_FIRMWARE usage

Tommi Rantala (3):
      sctp: fix memory leak in sctp_datamsg_from_user() when copy from
user space fails
      sctp: fix -ENOMEM result with invalid user space pointer in
sendto() syscall
      irda: irttp: fix memory leak in irttp_open_tsap() error path

Tushar Behera (1):
      include/linux/bug.h: fix sparse warning related to BUILD_BUG_ON_INVALID

Vincent Palatin (1):
      x86, fpu: Avoid FPU lazy restore after suspend

Wei Yongjun (2):
      [media] dvb-frontends: fix potential NULL pointer dereference in
stv0900_set_mclk()
      [media] mx2_camera: fix missing unlock on error in mx2_start_streaming()

Will Deacon (1):
      ARM: 7586/1: sp804: set cpumask to cpu_possible_mask for clock
event device

Xiao Guangrong (2):
      perf kvm: Rename perf_kvm to perf_kvm_stat
      perf kvm: Fix building perf kvm on non x86 arches

françois romieu (1):
      8139cp: fix coherent mapping leak in error path.

nikolay@redhat.com (3):
      bonding: fix miimon and arp_interval delayed work race conditions
      bonding: make arp_ip_target parameter checks consistent with sysfs
      bonding: fix race condition in bonding_store_slaves_active

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: Linux 3.7-rc8
  2012-12-03 20:36 Linux 3.7-rc8 Linus Torvalds
@ 2012-12-03 20:55 ` Stephen Rothwell
  2012-12-03 22:20 ` Romain Francoise
  2012-12-03 22:44 ` Stephen Rothwell
  2 siblings, 0 replies; 13+ messages in thread
From: Stephen Rothwell @ 2012-12-03 20:55 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: Linux Kernel Mailing List

[-- Attachment #1: Type: text/plain, Size: 413 bytes --]

On Mon, 3 Dec 2012 12:36:26 -0800 Linus Torvalds <torvalds@linux-foundation.org> wrote:
>
> (Ok, while writing this I got another pull request that made me go "We
> don't really need this". I'll pull that, because technically it came
> in before I'd given people this warning, but ...)

You really are an old softie, aren't you ;-)

-- 
Cheers,
Stephen Rothwell                    sfr@canb.auug.org.au

[-- Attachment #2: Type: application/pgp-signature, Size: 836 bytes --]

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: Linux 3.7-rc8
  2012-12-03 20:36 Linux 3.7-rc8 Linus Torvalds
  2012-12-03 20:55 ` Stephen Rothwell
@ 2012-12-03 22:20 ` Romain Francoise
       [not found]   ` <CA+8MBbLv9SxeW2sbOoQxeNHbwrpqXnpFjJoHgQAk7VyfbCpn4g@mail.gmail.com>
  2012-12-03 22:34   ` Linus Torvalds
  2012-12-03 22:44 ` Stephen Rothwell
  2 siblings, 2 replies; 13+ messages in thread
From: Romain Francoise @ 2012-12-03 22:20 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: Linux Kernel Mailing List

Hi Linus,

Linus Torvalds <torvalds@linux-foundation.org> writes:

> Linus Torvalds (5):
>       fs/buffer.c: make block-size be per-page and protected by the page lock
>       blockdev: remove bd_block_size_semaphore again
>       direct-io: don't read inode->i_blkbits multiple times
>       blkdev_max_block: make private to fs/buffer.c

Could these changes be the reason for the following suddenly appearing in
one of my VMs with rc8 (no such messages with rc7)? Pretty standard virtio
setup in KVM.

[   11.832295] attempt to access beyond end of device
[   11.832298] vda1: rw=0, want=4192904, limit=4192902
[   11.832299] Buffer I/O error on device vda1, logical block 524112
[   11.832394] attempt to access beyond end of device
[   11.832395] vda1: rw=0, want=4192904, limit=4192902
[   11.832396] Buffer I/O error on device vda1, logical block 524112

Thanks.

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: Linux 3.7-rc8
       [not found]   ` <CA+8MBbLv9SxeW2sbOoQxeNHbwrpqXnpFjJoHgQAk7VyfbCpn4g@mail.gmail.com>
@ 2012-12-03 22:32     ` Tony Luck
  0 siblings, 0 replies; 13+ messages in thread
From: Tony Luck @ 2012-12-03 22:32 UTC (permalink / raw)
  To: Romain Francoise; +Cc: Linus Torvalds, Linux Kernel Mailing List

On Mon, Dec 3, 2012 at 2:29 PM, Tony Luck <tony.luck@intel.com> wrote:
>
>
>
> On Mon, Dec 3, 2012 at 2:20 PM, Romain Francoise <romain@orebokech.com>
> wrote:
>>
>> Hi Linus,
>>
>> Linus Torvalds <torvalds@linux-foundation.org> writes:
>>
>> > Linus Torvalds (5):
>> >       fs/buffer.c: make block-size be per-page and protected by the
>> > page lock
>> >       blockdev: remove bd_block_size_semaphore again
>> >       direct-io: don't read inode->i_blkbits multiple times
>> >       blkdev_max_block: make private to fs/buffer.c
>>
>> Could these changes be the reason for the following suddenly appearing in
>> one of my VMs with rc8 (no such messages with rc7)? Pretty standard
>> virtio
>> setup in KVM.
>>
>> [   11.832295] attempt to access beyond end of device
>> [   11.832298] vda1: rw=0, want=4192904, limit=4192902
>> [   11.832299] Buffer I/O error on device vda1, logical block 524112
>> [   11.832394] attempt to access beyond end of device
>> [   11.832395] vda1: rw=0, want=4192904, limit=4192902
>> [   11.832396] Buffer I/O error on device vda1, logical block 524112
>>
> I'm seeing similar stuff in -rc8 too (on ia64, native no VMM):
>
>
> attempt to access beyond end of device
> sda3: rw=0, want=268317424, limit=268317421
> Buffer I/O error on device sda3, logical block 33539677
>
> attempt to access beyond end of device
> sda3: rw=0, want=268317424, limit=268317421
> Buffer I/O error on device sda3, logical block 33539677
>
> -rc7 didn't do this.
>
> -Tony

Resend ... to go to the list (Oh gmail, why did you decide to reply in HTML???)

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: Linux 3.7-rc8
  2012-12-03 22:20 ` Romain Francoise
       [not found]   ` <CA+8MBbLv9SxeW2sbOoQxeNHbwrpqXnpFjJoHgQAk7VyfbCpn4g@mail.gmail.com>
@ 2012-12-03 22:34   ` Linus Torvalds
  2012-12-03 22:44     ` Tony Luck
  1 sibling, 1 reply; 13+ messages in thread
From: Linus Torvalds @ 2012-12-03 22:34 UTC (permalink / raw)
  To: Romain Francoise; +Cc: Linux Kernel Mailing List

On Mon, Dec 3, 2012 at 2:20 PM, Romain Francoise <romain@orebokech.com> wrote:
>
> Could these changes be the reason for the following suddenly appearing in
> one of my VMs with rc8 (no such messages with rc7)? Pretty standard virtio
> setup in KVM.
>
> [   11.832295] attempt to access beyond end of device
> [   11.832298] vda1: rw=0, want=4192904, limit=4192902
> [   11.832299] Buffer I/O error on device vda1, logical block 524112
> [   11.832394] attempt to access beyond end of device
> [   11.832395] vda1: rw=0, want=4192904, limit=4192902
> [   11.832396] Buffer I/O error on device vda1, logical block 524112

Yup.

I'm currently debating whether I should just remove the printk (for
3.8) or actually do the iovec truncation by hand. The "remove the
printk" is a bit cheesy, but I suspect it's the simpler/safer
alternative.

Just for info, can you add a "WARN_ON_ONCE()" to handle_bad_sector()
just so that I see which particular path your kvm load triggers.

          Linus

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: Linux 3.7-rc8
  2012-12-03 22:34   ` Linus Torvalds
@ 2012-12-03 22:44     ` Tony Luck
  2012-12-03 23:07       ` Linus Torvalds
  0 siblings, 1 reply; 13+ messages in thread
From: Tony Luck @ 2012-12-03 22:44 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: Romain Francoise, Linux Kernel Mailing List

> Just for info, can you add a "WARN_ON_ONCE()" to handle_bad_sector()
> just so that I see which particular path your kvm load triggers.

On native ia64 (with SLES11 userspace) I see:

WARNING: at block/blk-core.c:1557 generic_make_request_checks+0x680/0xa40()
Hardware name: I8QBH
Modules linked in: usb_storage sg container button usbhid uhci_hcd
ehci_hcd usbcore usb_common fan processor thermal thermal_sys

Call Trace:
 [<a000000100016280>] show_stack+0x80/0xa0
                                sp=e0000003153cf670 bsp=e0000003153c1638
 [<a000000100af0310>] dump_stack+0x30/0x50
                                sp=e0000003153cf840 bsp=e0000003153c1620
 [<a00000010007eba0>] warn_slowpath_common+0xc0/0x100
                                sp=e0000003153cf840 bsp=e0000003153c15d8
 [<a00000010007ec20>] warn_slowpath_null+0x40/0x60
                                sp=e0000003153cf840 bsp=e0000003153c15b0
 [<a00000010050dd20>] generic_make_request_checks+0x680/0xa40
                                sp=e0000003153cf840 bsp=e0000003153c1570
 [<a00000010050e110>] generic_make_request+0x30/0x280
                                sp=e0000003153cf880 bsp=e0000003153c1550
 [<a00000010050e4d0>] submit_bio+0x170/0x3c0
                                sp=e0000003153cf890 bsp=e0000003153c1500
 [<a000000100277570>] submit_bh+0x310/0x4e0
                                sp=e0000003153cf8b0 bsp=e0000003153c14d0
 [<a000000100281b80>] block_read_full_page+0x720/0x820
                                sp=e0000003153cf8b0 bsp=e0000003153c1430
 [<a000000100288e10>] blkdev_readpage+0x30/0x60
                                sp=e0000003153cfcb0 bsp=e0000003153c1408
 [<a00000010017a7e0>] read_pages+0x220/0x260
                                sp=e0000003153cfcb0 bsp=e0000003153c13a0
 [<a00000010017a950>] __do_page_cache_readahead+0x130/0x320
                                sp=e0000003153cfce0 bsp=e0000003153c1310
 [<a00000010017ab80>] ra_submit+0x40/0x60
                                sp=e0000003153cfcf0 bsp=e0000003153c12e0
 [<a00000010017b1b0>] ondemand_readahead+0x210/0x580
                                sp=e0000003153cfcf0 bsp=e0000003153c1278
 [<a00000010017b730>] page_cache_sync_readahead+0x90/0x100
                                sp=e0000003153cfcf0 bsp=e0000003153c1238
 [<a000000100162070>] do_generic_file_read+0x770/0xce0
                                sp=e0000003153cfcf0 bsp=e0000003153c1140
 [<a000000100163c40>] generic_file_aio_read+0x260/0x5c0
                                sp=e0000003153cfcf0 bsp=e0000003153c10d0
 [<a00000010020d470>] do_sync_read+0x130/0x240
                                sp=e0000003153cfd30 bsp=e0000003153c1078
 [<a00000010020f070>] vfs_read+0x1b0/0x340
                                sp=e0000003153cfe20 bsp=e0000003153c1030
 [<a00000010020f390>] sys_read+0x90/0xe0
                                sp=e0000003153cfe20 bsp=e0000003153c0fb0
 [<a00000010000bc40>] ia64_ret_from_syscall+0x0/0x20
                                sp=e0000003153cfe30 bsp=e0000003153c0fb0
 [<a000000000040720>] __kernel_syscall_via_break+0x0/0x20
                                sp=e0000003153d0000 bsp=e0000003153c0fb0

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: Linux 3.7-rc8
  2012-12-03 20:36 Linux 3.7-rc8 Linus Torvalds
  2012-12-03 20:55 ` Stephen Rothwell
  2012-12-03 22:20 ` Romain Francoise
@ 2012-12-03 22:44 ` Stephen Rothwell
  2 siblings, 0 replies; 13+ messages in thread
From: Stephen Rothwell @ 2012-12-03 22:44 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: Linux Kernel Mailing List

[-- Attachment #1: Type: text/plain, Size: 495 bytes --]

On Mon, 3 Dec 2012 12:36:26 -0800 Linus Torvalds <torvalds@linux-foundation.org> wrote:
> 
> The only things I want to see are fixes that people care deeply about.
> If it's not critical, or you don't have an actual problem report from
> an actual user, just put it in the queue under the christmas tree, and
> let it got for 3.8.

And lets see if we can resist rebasing everything onto -rc8 for no good
reason.

-- 
Cheers,
Stephen Rothwell                    sfr@canb.auug.org.au

[-- Attachment #2: Type: application/pgp-signature, Size: 836 bytes --]

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: Linux 3.7-rc8
  2012-12-03 22:44     ` Tony Luck
@ 2012-12-03 23:07       ` Linus Torvalds
  2012-12-03 23:14         ` Linus Torvalds
  2012-12-03 23:40         ` Linus Torvalds
  0 siblings, 2 replies; 13+ messages in thread
From: Linus Torvalds @ 2012-12-03 23:07 UTC (permalink / raw)
  To: Tony Luck; +Cc: Romain Francoise, Linux Kernel Mailing List

On Mon, Dec 3, 2012 at 2:44 PM, Tony Luck <tony.luck@intel.com> wrote:
>> Just for info, can you add a "WARN_ON_ONCE()" to handle_bad_sector()
>> just so that I see which particular path your kvm load triggers.
>
> On native ia64 (with SLES11 userspace) I see:

Interesting. I knew about the possibility of this, and had actually
*tried* to trigger this with the regular read() system call. But
couldn't, so I had assumed that it was some special path (ie
O_DIRECT). But it's just the regular read-ahead.

I guess I need to try harder. I'm guessing that there's a 4kB
filesystem there, and the block device size isn't 4kB-aligned or
something.

              Linus

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: Linux 3.7-rc8
  2012-12-03 23:07       ` Linus Torvalds
@ 2012-12-03 23:14         ` Linus Torvalds
  2012-12-03 23:40         ` Linus Torvalds
  1 sibling, 0 replies; 13+ messages in thread
From: Linus Torvalds @ 2012-12-03 23:14 UTC (permalink / raw)
  To: Tony Luck; +Cc: Romain Francoise, Linux Kernel Mailing List

On Mon, Dec 3, 2012 at 3:07 PM, Linus Torvalds
<torvalds@linux-foundation.org> wrote:
>
> I guess I need to try harder. I'm guessing that there's a 4kB
> filesystem there, and the block device size isn't 4kB-aligned or
> something.

Anyway, to clarify: the printk's are harmless, since the IO past the
end of the device is just error'ed out, and always has been.  Which is
why I was considering just removing them.

At the same time, those printk's have historically been useful for
finding unrelated bugs (ie filesystem corruption etc that causes
insane accesses) and there is the issue of the difference between EOF
and EIO return values, so I've been trying to trigger this for normal
read/writes to make sure that there wasn't anything going on there.
All of the paths I've looked at seem to look at the inode size, but
clearly I missed some.

I bet it's read-ahead together with something particular that allows
you to trigger it.

              Linus

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: Linux 3.7-rc8
  2012-12-03 23:07       ` Linus Torvalds
  2012-12-03 23:14         ` Linus Torvalds
@ 2012-12-03 23:40         ` Linus Torvalds
  2012-12-04  2:02           ` Linus Torvalds
  1 sibling, 1 reply; 13+ messages in thread
From: Linus Torvalds @ 2012-12-03 23:40 UTC (permalink / raw)
  To: Tony Luck; +Cc: Romain Francoise, Linux Kernel Mailing List

On Mon, Dec 3, 2012 at 3:07 PM, Linus Torvalds
<torvalds@linux-foundation.org> wrote:
>
> I guess I need to try harder. I'm guessing that there's a 4kB
> filesystem there, and the block device size isn't 4kB-aligned or
> something.

Yup, I can reproduce it with that.

I'll shut the printk up some way. In the meantime, you can ignore it.

             Linus

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: Linux 3.7-rc8
  2012-12-03 23:40         ` Linus Torvalds
@ 2012-12-04  2:02           ` Linus Torvalds
  2012-12-04  7:10             ` Romain Francoise
  0 siblings, 1 reply; 13+ messages in thread
From: Linus Torvalds @ 2012-12-04  2:02 UTC (permalink / raw)
  To: Tony Luck; +Cc: Romain Francoise, Linux Kernel Mailing List

[-- Attachment #1: Type: text/plain, Size: 569 bytes --]

On Mon, Dec 3, 2012 at 3:40 PM, Linus Torvalds
<torvalds@linux-foundation.org> wrote:
>
> Yup, I can reproduce it with that.
>
> I'll shut the printk up some way. In the meantime, you can ignore it.

Here's a patch to handle the "buffer head crosses the end of the disk" case.

It works for me, and in fact it should allow us to basically always
set the default block size to the PAGE_CACHE_SIZE (see bd_set_size()).
But it doesn't do that part yet, this is just the "guard against
crossing bh" part.

Does that fix the printk's for you too?

                    Linus

[-- Attachment #2: patch.diff --]
[-- Type: application/octet-stream, Size: 1987 bytes --]

 fs/buffer.c | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 52 insertions(+)

diff --git a/fs/buffer.c b/fs/buffer.c
index 3586fb05c8ce..c4e11390a44c 100644
--- a/fs/buffer.c
+++ b/fs/buffer.c
@@ -2893,6 +2893,55 @@ static void end_bio_bh_io_sync(struct bio *bio, int err)
 	bio_put(bio);
 }
 
+/*
+ * This allows us to do IO even on the odd last sectors
+ * of a device, even if the bh block size is some multiple
+ * of the physical sector size.
+ *
+ * We'll just truncate the bio to the size of the device,
+ * and clear the end of the buffer head manually.
+ *
+ * Truly out-of-range accesses will turn into actual IO
+ * errors, this only handles the "we need to be able to
+ * do IO at the final sector" case.
+ */
+static void guard_bh_eod(int rw, struct bio *bio, struct buffer_head *bh)
+{
+	sector_t maxsector;
+	unsigned bytes;
+
+	maxsector = i_size_read(bio->bi_bdev->bd_inode) >> 9;
+	if (!maxsector)
+		return;
+
+	/*
+	 * If the *whole* IO is past the end of the device,
+	 * let it through, and the IO layer will turn it into
+	 * an EIO.
+	 */
+	if (unlikely(bio->bi_sector >= maxsector))
+		return;
+
+	maxsector -= bio->bi_sector;
+	bytes = bio->bi_size;
+	if (likely((bytes >> 9) <= maxsector))
+		return;
+
+	/* Uhhuh. We've got a bh that straddles the device size! */
+	bytes = maxsector << 9;
+
+	/* Truncate the bio.. */
+	bio->bi_size = bytes;
+	bio->bi_io_vec[0].bv_len = bytes;
+
+	/* ..and clear the end of the buffer for reads */
+	if (rw & READ) {
+		void *kaddr = kmap_atomic(bh->b_page);
+		memset(kaddr + bh_offset(bh) + bytes, 0, bh->b_size - bytes);
+		kunmap_atomic(kaddr);
+	}
+}
+
 int submit_bh(int rw, struct buffer_head * bh)
 {
 	struct bio *bio;
@@ -2929,6 +2978,9 @@ int submit_bh(int rw, struct buffer_head * bh)
 	bio->bi_end_io = end_bio_bh_io_sync;
 	bio->bi_private = bh;
 
+	/* Take care of bh's that straddle the end of the device */
+	guard_bh_eod(rw, bio, bh);
+
 	bio_get(bio);
 	submit_bio(rw, bio);
 

^ permalink raw reply related	[flat|nested] 13+ messages in thread

* Re: Linux 3.7-rc8
  2012-12-04  2:02           ` Linus Torvalds
@ 2012-12-04  7:10             ` Romain Francoise
  2012-12-04 18:30               ` Tony Luck
  0 siblings, 1 reply; 13+ messages in thread
From: Romain Francoise @ 2012-12-04  7:10 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: Tony Luck, Linux Kernel Mailing List

Hi,

Linus Torvalds <torvalds@linux-foundation.org> writes:

> Does that fix the printk's for you too?

Yep, works for me, thanks!

Tested-by: Romain Francoise <romain@orebokech.com>

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: Linux 3.7-rc8
  2012-12-04  7:10             ` Romain Francoise
@ 2012-12-04 18:30               ` Tony Luck
  0 siblings, 0 replies; 13+ messages in thread
From: Tony Luck @ 2012-12-04 18:30 UTC (permalink / raw)
  To: Romain Francoise; +Cc: Linus Torvalds, Linux Kernel Mailing List

> Linus Torvalds <torvalds@linux-foundation.org> writes:
>
>> Does that fix the printk's for you too?
>
> Yep, works for me, thanks!

Belated "works for me too" (just in case you were worrying that ia64
was still broken).

-Tony

^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2012-12-04 18:30 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-12-03 20:36 Linux 3.7-rc8 Linus Torvalds
2012-12-03 20:55 ` Stephen Rothwell
2012-12-03 22:20 ` Romain Francoise
     [not found]   ` <CA+8MBbLv9SxeW2sbOoQxeNHbwrpqXnpFjJoHgQAk7VyfbCpn4g@mail.gmail.com>
2012-12-03 22:32     ` Tony Luck
2012-12-03 22:34   ` Linus Torvalds
2012-12-03 22:44     ` Tony Luck
2012-12-03 23:07       ` Linus Torvalds
2012-12-03 23:14         ` Linus Torvalds
2012-12-03 23:40         ` Linus Torvalds
2012-12-04  2:02           ` Linus Torvalds
2012-12-04  7:10             ` Romain Francoise
2012-12-04 18:30               ` Tony Luck
2012-12-03 22:44 ` Stephen Rothwell

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).