03 Feb, 2012
4 commits
-
This fixes the race in process_vm_core found by Oleg (see
http://article.gmane.org/gmane.linux.kernel/1235667/
for details).
This has been updated since I last sent it as the creation of the new
mm_access() function did almost exactly the same thing as parts of the
previous version of this patch did.In order to use mm_access() even when /proc isn't enabled, we move it to
kernel/fork.c where other related process mm access functions already
are.Signed-off-by: Chris Yeoh
Signed-off-by: Linus Torvalds -
* 'drm-fixes' of git://people.freedesktop.org/~airlied/linux:
drm/radeon/kms/blit: fix blit copy for very large buffers
drm/radeon/kms: fix TRAVIS panel setup
drm/radeon: fix use after free in ATRM bios reading code.
drm/radeon/kms: Fix device tree linkage of DP i2c buses too
drm/radeon: Set DESKTOP_HEIGHT register to the framebuffer (not mode) height.
drm/radeon/kms: disable output polling when suspended
drm/nv50/pm: signedness bug in nv50_pm_clocks_pre()
drm/nouveau/gem: fix fence_sync race / oops
drm/nouveau: fix typo on mxmdcb option
drm/nouveau/mxm: pretend to succeed, even if we can't shadow the MXM-SIS
drm/nouveau/disp: check that panel power gpio is enabled at init time -
* 'next' of git://git.monstr.eu/linux-2.6-microblaze:
Revert "microblaze: Add topology init" -
…or-linus' and 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
* 'core-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
bugs, x86: Fix printk levels for panic, softlockups and stack dumps* 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
perf top: Fix number of samples displayed
perf tools: Fix strlen() bug in perf_event__synthesize_event_type()
perf tools: Fix broken build by defining _GNU_SOURCE in Makefile
x86/dumpstack: Remove unneeded check in dump_trace()
perf: Fix broken interrupt rate throttling* 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
sched/rt: Fix task stack corruption under __ARCH_WANT_INTERRUPTS_ON_CTXSW
sched: Fix ancient race in do_exit()
sched/nohz: Fix nohz cpu idle load balancing state with cpu hotplug
sched/s390: Fix compile error in sched/core.c
sched: Fix rq->nr_uninterruptible update race* 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
x86/reboot: Remove VersaLogic Menlow reboot quirk
x86/reboot: Skip DMI checks if reboot set by user
x86: Properly parenthesize cmpxchg() macro arguments
02 Feb, 2012
15 commits
-
Evergreen and NI blit copy was broken if the buffer maps to a rectangle
whose one dimension is 16384 (max dimension allowed by these chips).
In the mainline kernel, the problem is exposed only when buffers are
very large (1G), but it's still a problem. The problem could be exposed
for smaller buffers if anyone modifies the algorithm for rectangle
construction in r600_blit_create_rect() (the reason why someone would
modify that algorithm is to tune the performance of buffer moves).The root cause was in i2f() function which only operated on range between
0 and 16383. Fix this by extending the range of i2f() function to 0 to
32767.While at it improve the function so that the range can be easily
extended in the future (if it becomes necessary), cleanup lines
over 80 characters, and replace in-line comments with one strategic
comment that explains the crux of the function.Credits to michel@daenzer.net for pointing out the root cause of
the bug.v2: Fix I2F_MAX_INPUT constant definition goof and warn only once
if input argument is out of range. Edit the comment a little
bit to avoid some linguistic confusion and make it look better
in general.Signed-off-by: Ilija Hadzic
Reviewed-by: Alex Deucher
Reviewed-by: Michel Dänzer
Signed-off-by: Dave Airlie -
Different versions of the DP to LVDS bridge chip
need different panel mode settings depending on
the chip version used.Fixes:
https://bugs.freedesktop.org/show_bug.cgi?id=41569Signed-off-by: Alex Deucher
Cc: stable@vger.kernel.org
Signed-off-by: Dave Airlie -
Fixes:
https://bugs.freedesktop.org/show_bug.cgi?id=45503Reported-and-Debugged-by: mlambda@gmail.com
Signed-off-by: Dave Airlie -
firewire fixes post v3.3-rc1
Add workarounds table entries for hardware bugs in
- FireWire part of Sound Blaster Audigy cards,
- Ricoh PCIe 1394 controllers.
Without these, several protocols, e.g. AV/C, do not work on the
Audigy, and the Ricoh PCIe controllers wouldn't work at all.
This does not concern the older Ricoh PCI controllers.* tag 'firewire-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394:
firewire: ohci: disable MSI on Ricoh controllers
firewire: ohci: add reset packet quirk for SB Audigy -
Add MODULE_LICENSE() as per the license in the comment at the top of the
file for this source module to fix build warning:WARNING: modpost: missing MODULE_LICENSE() in drivers/staging/media/go7007/go7007-usb.o
see include/linux/module.h for more informationSigned-off-by: Randy Dunlap
Cc: Ross Cohen
Signed-off-by: Linus Torvalds -
Fix 2 fatal errors in the device-drivers docbook.
Also add some missing files from drivers/base/; since several
of these are DMA-related, add a section for DMA Management.docproc: drivers/base/sys.c: No such file or directory
docproc: drivers/tty/serial/8250.c: No such file or directorySigned-off-by: Randy Dunlap
Signed-off-by: Linus Torvalds -
* 'for-linus2' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security:
lib: Fix 32-bit sparc udiv_qrnnd() definition in mpilib's longlong.h
lib: Fix multiple definitions of clz_tab
lib/digsig: checks for NULL return value
lib/mpi: added missing NULL check
lib/mpi: added comment on divide by 0 case
lib/mpi: check for possible zero length
lib/digsig: pkcs_1_v1_5_decode_emsa cleanup
lib/digsig: additional sanity checks against badly formated key payload
lib/mpi: removed unused functions
lib/mpi: checks for zero divisor length
lib/mpi: return error code on dividing by zero
lib/mpi: replaced MPI_NULL with normal NULL
lib/mpi: added missing NULL check -
This copy of longlong.h is extremely dated and results in compile
errors on sparc32 when MPILIB is enabled, copy over the more uptodate
implementation from arch/sparc/math/sfp-util_32.hReported-by: Al Viro
Signed-off-by: David S. Miller
Signed-off-by: James Morris -
Both sparc 32-bit's software divide assembler and MPILIB provide
clz_tab[] with identical contents.Break it out into a seperate object file and select it when
SPARC32 or MPILIB is set.Reported-by: Al Viro
Signed-off-by: David S. Miller
Signed-off-by: James Morris -
InfiniBand/RDMA fixes for 3.3:
- Fix a crash due to a regression (uninitialized refcnt) introduced in
3.2 with XRC support.
- Close race in how ucma reports events when connect fails.
- Process vendor-specific MADs in mlx4 so that eg FDR-10 data rate works.
- Fix regression in qib caused by over-aggressive PCIe tuning.
- Other small fixes for hardware drivers (ipath, nes, qib).* tag 'rdma-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband:
RDMA/nes: Copyright update
IB/mlx4: pass SMP vendor-specific attribute MADs to firmware
RDMA/nes: Fix fast memory registration opcode
RDMA/nes: Fix fast memory registration length
RDMA/ucma: Discard all events for new connections until accepted
IB/qib: Roll back PCIe tuning change
IB/qib: Use GFP_ATOMIC when locks are held
RDMA/nes: Add missing rcu_read_unlock() in nes_addr_resolve_neigh()
RDMA/nes: Fix for sending MPA reject frame
IB/ipath: Calling PTR_ERR() on right variable in create_file()
RDMA/core: Fix kernel panic by always initializing qp->usecnt -
Once /proc/pid/mem is opened, the memory can't be released until
mem_release() even if its owner exits.Change mem_open() to do atomic_inc(mm_count) + mmput(), this only
pins mm_struct. Change mem_rw() to do atomic_inc_not_zero(mm_count)
before access_remote_vm(), this verifies that this mm is still alive.I am not sure what should mem_rw() return if atomic_inc_not_zero()
fails. With this patch it returns zero to match the "mm == NULL" case,
may be it should return -EINVAL like it did before e268337d.Perhaps it makes sense to add the additional fatal_signal_pending()
check into the main loop, to ensure we do not hold this memory if
the target task was oom-killed.Cc: stable@kernel.org
Signed-off-by: Oleg Nesterov
Signed-off-by: Linus Torvalds -
No functional changes, cleanup and preparation.
mem_read() and mem_write() are very similar. Move this code into the
new common helper, mem_rw(), which takes the additional "int write"
argument.Cc: stable@kernel.org
Signed-off-by: Oleg Nesterov
Signed-off-by: Linus Torvalds -
mem_release() can hit mm == NULL, add the necessary check.
Cc: stable@kernel.org
Signed-off-by: Oleg Nesterov
Signed-off-by: Linus Torvalds -
My email address has changed, the suse.de one is now dead, so update all
of my MAINTAINER entries with the correct one so that patches don't get
lost.Also change the status of some of my entries as I'm supposed to be doing
this stuff now for real.Signed-off-by: Greg Kroah-Hartman
Signed-off-by: Linus Torvalds -
This patch fixes merge conflict resolution breakage introduced by merge
d3712b9dfcf4 ("Merge tag 'for-linus' of git://github.com/prasad-joshi/logfs_upstream").The commit changed 'mtd_can_have_bb()' function and made it always
return zero, which is incorrect. Instead, we need it to return whether
the underlying flash device can have bad eraseblocks or not. UBI needs
this information because it affects how it handles the underlying flash.
E.g., if the underlying flash is NOR, it cannot have bad blocks and any
write or erase error is fatal, and all we can do is to switch to R/O
mode. We do not need to reserve a pool of good eraseblocks for bad
eraseblocks handling, and so on.This patch also removes 'mtd_can_have_bb()' invocations from Logfs to
ensure correct Logfs behavior.I've tested that with this patch UBI works on top of NOR and NAND
flashes emulated by mtdram and nandsim correspondingly.This patch is based on patch from Linus Torvalds.
Signed-off-by: Artem Bityutskiy
Acked-by: Jörn Engel
Acked-by: Prasad Joshi
Acked-by: Brian Norris
Signed-off-by: Linus Torvalds
01 Feb, 2012
21 commits
-
Properly set the parent device of DP i2c buses before registering them
too.Signed-off-by: Jean Delvare
Reviewed-by: Alex Deucher
Signed-off-by: Dave Airlie -
The value of this register is transferred to the V_COUNTER register at the
beginning of vertical blank. V_COUNTER is the reference for VLINE waits and
goes from VIEWPORT_Y_START to VIEWPORT_Y_START+VIEWPORT_HEIGHT during scanout,
so if VIEWPORT_Y_START is not 0, V_COUNTER actually went backwards at the
beginning of vertical blank, and VLINE waits excluding the whole scanout area
could never finish (possibly only if VIEWPORT_Y_START is larger than the length
of vertical blank in scanlines). Setting DESKTOP_HEIGHT to the framebuffer
height should prevent this for any kind of VLINE wait.Fixes https://bugs.freedesktop.org/show_bug.cgi?id=45329 .
CC: stable@vger.kernel.org
Signed-off-by: Michel Dänzer
Reviewed-by: Alex Deucher
Signed-off-by: Dave Airlie -
Polling the outputs when the device is suspended can result in erroneous
status updates. Disable output polling during suspend to prevent this
from happening.Signed-off-by: Seth Forshee
Reviewed-by: Alex Deucher
Cc: stable@vger.kernel.org
Signed-off-by: Dave Airlie -
mpi_read_from_buffer() return value must not be NULL.
Signed-off-by: Dmitry Kasatkin
Reviewed-by: Tetsuo Handa
Signed-off-by: James Morris -
Added missing NULL check after mpi_alloc_limb_space().
Signed-off-by: Dmitry Kasatkin
Reviewed-by: Tetsuo Handa
Signed-off-by: James Morris -
Comment explains that existing clients do not call this function
with dsize == 0, which means that 1/0 should not happen.Signed-off-by: Dmitry Kasatkin
Reviewed-by: Tetsuo Handa
Signed-off-by: James Morris -
Buggy client might pass zero nlimbs which is meaningless.
Added check for zero length.Signed-off-by: Dmitry Kasatkin
Reviewed-by: Tetsuo Handa
Signed-off-by: James Morris -
Removed useless 'is_valid' variable in pkcs_1_v1_5_decode_emsa(),
which was inhereted from original code. Client now uses return value
to check for an error.Signed-off-by: Dmitry Kasatkin
Reviewed-by: Tetsuo Handa
Signed-off-by: James Morris -
Added sanity checks for possible wrongly formatted key payload data:
- minimum key payload size
- zero modulus length
- corrected upper key payload boundary.Signed-off-by: Dmitry Kasatkin
Reviewed-by: Tetsuo Handa
Signed-off-by: James Morris -
do_encode_md() and mpi_get_keyid() are not parts of mpi library.
They were used early versions of gnupg and in digsig project,
but they are not used neither here nor there anymore.Signed-off-by: Dmitry Kasatkin
Reviewed-by: Tetsuo Handa
Signed-off-by: James Morris -
Divisor length should not be 0.
Signed-off-by: Dmitry Kasatkin
Reviewed-by: Tetsuo Handa
Signed-off-by: James Morris -
Definitely better to return error code than to divide by zero.
Signed-off-by: Dmitry Kasatkin
Reviewed-by: Tetsuo Handa
Signed-off-by: James Morris -
MPI_NULL is replaced with normal NULL.
Signed-off-by: Dmitry Kasatkin
Reviewed-by: Tetsuo Handa
Signed-off-by: James Morris -
Added missing NULL check after mpi_alloc().
Signed-off-by: Dmitry Kasatkin
Reviewed-by: Tetsuo Handa
Signed-off-by: James Morris -
…nux-2.6 into drm-fixes
* 'drm-nouveau-fixes' of git://anongit.freedesktop.org/git/nouveau/linux-2.6:
drm/nv50/pm: signedness bug in nv50_pm_clocks_pre()
drm/nouveau/gem: fix fence_sync race / oops
drm/nouveau: fix typo on mxmdcb option
drm/nouveau/mxm: pretend to succeed, even if we can't shadow the MXM-SIS
drm/nouveau/disp: check that panel power gpio is enabled at init time -
calc_mclk() returns zero on success and negative on failure but clk is
a u32.v2: Martin Peres:
- clk should be an int, not a u32Signed-off-by: Martin Peres
Signed-off-by: Dan Carpenter
Signed-off-by: Ben Skeggs -
Due to a race it was possible for a fence to be destroyed while another
thread was trying to synchronise with it. If this happened in the fallback
non-semaphore path, it lead to the following oops due to fence->channel
being NULL.BUG: unable to handle kernel NULL pointer dereference at (null)
IP: [] nouveau_fence_update+0xe/0xe0 [nouveau]
*pde = a649c067
SMP
Modules linked in: fuse nouveau(O) ttm(O) drm_kms_helper(O) drm(O) mxm_wmi video wmi netconsole configfs lockd bnep bluetooth rfkill ip6t_REJECT nf_conntrack_ipv6 nf_defrag_ipv6 nf_conntrack_ipv4 nf_defrag_ipv4 xt_state nf_conntrack ip6table_filter ip6_tables snd_hda_codec_realtek snd_hda_intel snd_hda_cobinfmt_misc uinput ata_generic pata_acpi pata_aet2c_algo_bit i2c_core [last unloaded: wmi]Pid: 2255, comm: gnome-shell Tainted: G O 3.2.0-0.rc5.git0.1.fc17.i686 #1 System manufacturer System Product Name/M2A-VM
EIP: 0060:[] EFLAGS: 00010296 CPU: 1
EIP is at nouveau_fence_update+0xe/0xe0 [nouveau]
EAX: 00000000 EBX: ddfc6dd0 ECX: dd111580 EDX: 00000000
ESI: 00003e80 EDI: dd111580 EBP: dd121d00 ESP: dd121ce8
DS: 007b ES: 007b FS: 00d8 GS: 00e0 SS: 0068
Process gnome-shell (pid: 2255, ti=dd120000 task=dd111580 task.ti=dd120000)
Stack:
7dc86c76 00000000 00003e80 ddfc6dd0 00003e80 dd111580 dd121d0c fa96371f
00000000 dd121d3c fa963773 dd111580 01000246 000ec53d 00000000 ddfc6dd0
00001f40 00000000 ddfc6dd0 00000010 dc7df840 dd121d6c fa9639a0 00000000
Call Trace:
[] __nouveau_fence_signalled+0x1f/0x30 [nouveau]
[] __nouveau_fence_wait+0x43/0xd0 [nouveau]
[] nouveau_fence_sync+0x1a0/0x1c0 [nouveau]
[] validate_list+0x176/0x300 [nouveau]
[] ? ttm_bo_mem_put+0x30/0x30 [ttm]
[] nouveau_gem_ioctl_pushbuf+0x48a/0xfd0 [nouveau]
[] ? die+0x31/0x80
[] drm_ioctl+0x388/0x490 [drm]
[] ? die+0x31/0x80
[] ? nouveau_gem_ioctl_new+0x150/0x150 [nouveau]
[] ? file_has_perm+0xcb/0xe0
[] ? drm_copy_field+0x80/0x80 [drm]
[] do_vfs_ioctl+0x86/0x5b0
[] ? die+0x31/0x80
[] ? selinux_file_ioctl+0x62/0x130
[] ? fget_light+0x30/0x340
[] sys_ioctl+0x6f/0x80
[] syscall_call+0x7/0xb
[] ? die+0x31/0x80
[] ? die+0x31/0x80Signed-off-by: Ben Skeggs
Cc: stable@vger.kernel.org -
Signed-off-by: Ben Skeggs
-
There's at least one known case where our shadowing code is buggy, and we
fail init. Until we can be confident we're doing all this correctly, lets
succeed and risk crazy bios tables rather than failing for perfectly valid
configs too.Signed-off-by: Ben Skeggs
-
Reported-by: Yuriy Khomchik
Signed-off-by: Ben Skeggs