* 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).