25 Aug, 2008
3 commits
-
The following part of commit 9ef621d3be56e1188300476a8102ff54f7b6793f
(KVM: Support mixed endian machines) changed on the size of a struct
that is exported to userspace:include/linux/kvm.h:
@@ -318,14 +318,14 @@ struct kvm_trace_rec {
__u32 vcpu_id;
union {
struct {
- __u32 cycle_lo, cycle_hi;
+ __u64 cycle_u64;
__u32 extra_u32[KVM_TRC_EXTRA_MAX];
} cycle;
struct {
__u32 extra_u32[KVM_TRC_EXTRA_MAX];
} nocycle;
} u;
-};
+} __attribute__((packed));Packing a struct was the correct idea, but it packed the wrong struct.
Signed-off-by: Adrian Bunk
Signed-off-by: Avi Kivity -
The shadow code assigns a pte directly in one place, which is nonatomic on
i386 can can cause random memory references. Fix by using an atomic setter.Signed-off-by: Avi Kivity
-
vmlinux.lds expects the fixup code to be on a section named .fixup. The
.text.fixup section is not mentioned on vmlinux.lds, and is included on
the resulting vmlinux (just after .text) only because of ld heuristics on
placing orphan sections.However, placing .text.fixup outside .text breaks the definition of
_etext, making it exclude the .text.fixup contents. That makes .text.fixup
be ignored by the kernel initialization code that needs to know about
section locations, such as the code setting page protection bits.Signed-off-by: Eduardo Habkost
Signed-off-by: Avi Kivity
24 Aug, 2008
3 commits
-
The acer_wmi driver does a DMI scan for quirks, and then sets flags into the
"interface" datastructure for some cases. However, the quirks happen real early
before "interface" is per se initialized from NULL.The patch below 1) adds a NULL pointer check and 2) (re)runs the quirks at the
end, when "interface" has it's final value.Reported-by: kerneloops.org
Acked-by: Carlos Corbacho
CC: stable@vger.kernel.org
Signed-off-by: Arjan van de Ven
Signed-off-by: Linus Torvalds -
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6:
ipv6: protocol for address routes
icmp: icmp_sk() should not use smp_processor_id() in preemptible code
pkt_sched: Fix qdisc list locking
pkt_sched: Fix qdisc_watchdog() vs. dev_deactivate() race
sctp: fix potential panics in the SCTP-AUTH API. -
This patch lets the files using linux/version.h match the files that
#include it.Signed-off-by: Adrian Bunk
Signed-off-by: Linus Torvalds
23 Aug, 2008
2 commits
-
This fixes a problem spotted with zebra, but not sure if it is
necessary a kernel problem. With IPV6 when an address is added to an
interface, Zebra creates a duplicate RIB entry, one as a connected
route, and other as a kernel route.When an address is added to an interface the RTN_NEWADDR message
causes Zebra to create a connected route. In IPV4 when an address is
added to an interface a RTN_NEWROUTE message is set to user space with
the protocol RTPROT_KERNEL. Zebra ignores these messages, because it
already has the connected route.The problem is that route created in IPV6 has route protocol ==
RTPROT_BOOT. Was this a design decision or a bug? This fixes it. Same
patch applies to both net-2.6 and stable.Signed-off-by: Stephen Hemminger
Signed-off-by: David S. Miller -
Pass namespace into icmp_xmit_lock, obtain socket inside and return
it as a result for caller.Thanks Alexey Dobryan for this report:
Steps to reproduce:
CONFIG_PREEMPT=y
CONFIG_DEBUG_PREEMPT=y
tracepathBUG: using smp_processor_id() in preemptible [00000000] code: tracepath/3205
caller is icmp_sk+0x15/0x30
Pid: 3205, comm: tracepath Not tainted 2.6.27-rc4 #1Call Trace:
[] debug_smp_processor_id+0xe4/0xf0
[] icmp_sk+0x15/0x30
[] icmp_send+0x4b/0x3f0
[] ? trace_hardirqs_on_caller+0xd5/0x160
[] ? trace_hardirqs_on+0xd/0x10
[] ? local_bh_enable_ip+0x95/0x110
[] ? _spin_unlock_bh+0x39/0x40
[] ? mark_held_locks+0x4c/0x90
[] ? trace_hardirqs_on+0xd/0x10
[] ? trace_hardirqs_on_caller+0xd5/0x160
[] ip_fragment+0x8d4/0x900
[] ? ip_finish_output2+0x0/0x290
[] ? ip_finish_output+0x0/0x60
[] ? dst_output+0x0/0x10
[] ip_finish_output+0x4c/0x60
[] ip_output+0xa3/0xf0
[] ip_local_out+0x20/0x30
[] ip_push_pending_frames+0x27f/0x400
[] udp_push_pending_frames+0x233/0x3d0
[] udp_sendmsg+0x321/0x6f0
[] inet_sendmsg+0x45/0x80
[] sock_sendmsg+0xdf/0x110
[] ? autoremove_wake_function+0x0/0x40
[] ? validate_chain+0x415/0x1010
[] ? __do_fault+0x140/0x450
[] ? __lock_acquire+0x260/0x590
[] ? sockfd_lookup_light+0x45/0x80
[] sys_sendto+0xea/0x120
[] ? _spin_unlock_irqrestore+0x42/0x80
[] ? __up_read+0x4c/0xb0
[] ? up_read+0x26/0x30
[] system_call_fastpath+0x16/0x1bicmp6_sk() is similar.
Signed-off-by: Denis V. Lunev
Signed-off-by: David S. Miller
22 Aug, 2008
32 commits
-
* git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6:
crypto: authenc - Avoid using clobbered request pointer -
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6:
ALSA: hda - Fix call of alc888_coef_init()
ALSA: hda_intel: enable snoop for nvidia HDA controller -
* 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4:
ext4: Update documentation to remind users to update mke2fs.conf
ext4: Fix small file fragmentation
ext4: Initialize writeback_index to 0 when allocating a new inode
ext4: make sure ext4_has_free_blocks returns 0 for ENOSPC
ext4: journal credit fix for the delayed allocation's writepages() function
ext4: Rework the ext4_da_writepages() function
ext4: journal credits reservation fixes for DIO, fallocate
ext4: journal credits reservation fixes for extent file writepage
ext4: journal credits calulation cleanup and fix for non-extent writepage
ext4: Fix bug where we return ENOSPC even though we have plenty of inodes
ext4: don't try to resize if there are no reserved gdt blocks left
ext4: Use ext4_discard_reservations instead of mballoc-specific call
ext4: Fix ext4_dx_readdir hash collision handling
ext4: Fix delalloc release block reservation for truncate
ext4: Fix potential truncate BUG due to i_prealloc_list being non-empty
ext4: Handle unwritten extent properly with delayed allocation -
…l/git/tip/linux-2.6-tip
* 'sched-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
sched: enable LB_BIAS by default -
…/git/tip/linux-2.6-tip
* 'core-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
rcu: fix synchronize_rcu() so that kernel-doc works -
…el/git/tip/linux-2.6-tip
* 'timers-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
nohz: fix wrong event handler after online an offlined cpu -
…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: work around MTRR mask setting, v2
x86: fix section mismatch warning - uv_cpu_init
x86: fix VMI for early params
x86: fix two modpost warnings in mm/init_64.c
x86: fix 1:1 mapping init on 64-bit (memory hotplug case)
x86: work around MTRR mask setting
x86: PAT Update validate_pat_support for intel CPUs
devmem, x86: PAT Change /dev/mem mmap with O_SYNC to use UC_MINUS
x86: PAT proper tracking of set_memory_uc and friends
x86: fix BUG: unable to handle kernel paging request (numaq_tsc_disable)
x86: export pv_lock_ops non-GPL
x86, mmiotrace: silence section mismatch warning - leave_uniprocessor
x86: use WARN() in arch/x86/kernel
x86: use WARN() in arch/x86/mm/ioremap.c
werror: fix pci calgary
x86: fix oprofile + hibernation badness
x86, SGI UV: hardcode the TLB flush interrupt system vector
x86: fix Xorg startup/shutdown slowdown with PAT
x86: fix "kernel won't boot on a Cyrix MediaGXm (Geode)"
x86 iommu: remove unneeded parenthesis -
* 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev:
[libata] pata_it821x: fix warning
libata: Fix a large collection of DMA mode mismatches
ahci: sis controllers actually can do PMP
pata_via: clean up recent tf_load changes
libata: restore SControl on detach
libata: use ata_link_printk() when printing SError
libata: always do follow-up SRST if hardreset returned -EAGAIN
libata: fix EH action overwriting in ata_eh_reset()
sata_mv: add the Gen IIE flag to the SoC devices.
ata_piix: IDE Mode SATA patch for Intel Ibex Peak DeviceIDs
ahci: RAID mode SATA patch for Intel Ibex Peak DeviceIDs
sata_mv: don't issue two DMA commands concurrently
libata: implement no[hs]rst force params -
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband:
IPoIB: Fix deadlock on RTNL in ipoib_stop()
IB/ipath: Fix incorrect check for max physical address in TID
IB/ipath: Fix lost UD send work request -
Authenc works in two stages for encryption, it first encrypts and
then computes an ICV. The context memory of the request is used
by both operations. The problem is that when an asynchronous
encryption completes, we will compute the ICV and then reread the
context memory of the encryption to get the original request.It just happens that we have a buffer of 16 bytes in front of the
request pointer, so ICVs of 16 bytes (such as SHA1) do not trigger
the bug. However, any attempt to uses a larger ICV instantly kills
the machine when the first asynchronous encryption is completed.This patch fixes this by saving the request pointer before we start
the ICV computation.Signed-off-by: Herbert Xu
-
Using init_hook to call alc888_coef_init() is problematic for configurations
that already set another init_hook. Better to put it in alc_init() as is
(although it looks a bit hackish).Signed-off-by: Takashi Iwai
-
improve the debug printout:
- make it actually display something
- print it only oncewould be nice to have a WARN_ONCE() facility, to feed such things to
kerneloops.org.Signed-off-by: Ingo Molnar
-
WARNING: vmlinux.o(.cpuinit.text+0x3cc4): Section mismatch in reference from the function uv_cpu_init() to the function .init.text:uv_system_init()
The function __cpuinit uv_cpu_init() references
a function __init uv_system_init().
If uv_system_init is only used by uv_cpu_init then
annotate uv_system_init with a matching annotation.uv_system_init was ment to be called only once, so do it from codepath
(native_smp_prepare_cpus) which is called once, right before activation
of other cpus (smp_init).Note: old code relied on uv_node_to_blade being initialized to 0,
but it'a not initialized from anywhere.Signed-off-by: Marcin Slusarz
Acked-by: Jack Steiner
Signed-off-by: Ingo Molnar -
Since some qdiscs call qdisc_tree_decrease_qlen() (so qdisc_lookup())
without rtnl_lock(), adding and deleting from a qdisc list needs
additional locking. This patch adds global spinlock qdisc_list_lock
and wrapper functions for modifying the list. It is considered as a
temporary solution until hfsc_dequeue(), netem_dequeue() and
tbf_dequeue() (or qdisc_tree_decrease_qlen()) are redone.With feedback from Herbert Xu and David S. Miller.
Signed-off-by: Jarek Poplawski
Acked-by: Herbert Xu
Signed-off-by: David S. Miller -
Reported by Andrew Morton:
drivers/ata/pata_it821x.c: In function 'it821x_port_start':
drivers/ata/pata_it821x.c:609: warning: 'mtype' may be used uninitialized in
this functionPretty horrid fix, but so's a warning..
Signed-off-by: Jeff Garzik
-
Dave Müller sent a diff for the pata_oldpiix that highlighted a problem
where a lot of the ATA drivers assume dma_mode == 0 means "no DMA" while
the core code uses 0xFF.This turns out to have other consequences such as code doing >= XFER_UDMA_0
also catching 0xFF as UDMAlots. Fortunately it doesn't generally affect
set_dma_mode, although some drivers call back into their own set mode code
from other points.Having been through the drivers I've added helpers for using_udma/using_mwdma
dma_enabled so that people don't open code ranges that may change (eg if UDMA8
appears somewhere)Thanks to David for the initial bits
[and added fix for pata_oldpiix from and signed-off-by Dave Mueller
-jg]Signed-off-by: Alan Cox
Signed-off-by: Jeff Garzik -
SIS controllers were blacklisted for PMP as enabling it made device
detection fail whether the device was PMP or not - the natural
conclusion was the controller chokes on SRST w/ pmp==15. However, it
turned out that the controller just didn't like issuing SRST after
hardreset w/o clearing SError first. Interestingly, the SRST itself
succeeds but the following commands fail.If SError is cleared between hardreset and SRST, which is the default
behavior now, everything works fine and SIS controllers work with PMPs
happily.Remove PMP blacklisting for SIS AHCIs.
Signed-off-by: Tejun Heo
Cc: Piter PUNK
Signed-off-by: Jeff Garzik -
Commit bfce5e0179ad059035df28558724ff60af708e09 implemented custom
tf_load for pata_via. This patch cleans it up a bit.* Instead of duplicating whole body, copy tf and set ATA_TFLAG_DEVICE
when necessary.* Rename via_ata_tf_load() to via_tf_load().
* No need to set .tf_load in via_port_ops_noirq as it inherits from
via_port_ops.* Clean up indentation.
Signed-off-by: Tejun Heo
Cc: Joseph Chan
Signed-off-by: Jeff Garzik -
Save SControl during probing and restore it on detach. This prevents
adjustments made by libata drivers to seep into the next driver which
gets attached (be it a libata one or not).It's not clear whether SControl also needs to be restored on suspend.
The next system to have control (ACPI or kexec'd kernel) would
probably like to see the original SControl value but there's no
guarantee that a link is gonna keep working after SControl is adjusted
without a reset and adding a reset and modified recovery cycle soley
for this is an overkill. For now, do it only for detach.Signed-off-by: Tejun Heo
Signed-off-by: Jeff Garzik -
SError belongs to link not port. Use ata_link_printk() to print it.
Signed-off-by: Tejun Heo
Signed-off-by: Jeff Garzik -
As an optimization, follow-up SRST used to be skipped if
classification wasn't requested even when hardreset requested it via
-EAGAIN. However, some hardresets can't wait for device readiness and
skipping SRST can cause timeout or other failures during revalidation.
Always perform follow-up SRST if hardreset returns -EAGAIN. This
makes reset paths more predictable and thus less error-prone.While at it, move hardreset error checking such that it's done right
after hardreset is finished. This simplifies followup SRST condition
check a bit and makes the reset path easier to modify.Signed-off-by: Tejun Heo
Signed-off-by: Jeff Garzik -
ehc->i.action got accidentally overwritten to ATA_EH_HARD/SOFTRESET in
ata_eh_reset(). The original intention was to clear reset action
which wasn't selected. This can cause unexpected behavior when other
EH actions are scheduled together with reset. Fix it.Signed-off-by: Tejun Heo
Signed-off-by: Jeff Garzik -
The SoC sata port is based on the 7042/6042 devices (Gen IIE). This patch
will fix various issues when working with PMP and/or NCQ.Signed-off-by: Saeed Bishara
Signed-off-by: Jeff Garzik -
This patch adds the Intel Ibex Peak (PCH) IDE mode SATA Controller DeviceIDs.
Signed-off-by: Seth Heasley
Signed-off-by: Jeff Garzik -
Resend with proper whitespace.
This patch adds the Intel Ibex Peak (PCH) SATA RAID Controller DeviceIDs.
Signed-off-by: Seth Heasley
Signed-off-by: Jeff Garzik -
sata_mv allowed issuing two DMA commands concurrently which the
hardware allows. Unfortunately, libata core layer isn't ready for
this yet and spews ugly warning message and malfunctions on this.
Don't allow concurrent DMA commands for now.Signed-off-by: Tejun Heo
Signed-off-by: Jeff Garzik -
Implement force params nohrst, nosrst and norst. This is to work
around reset related problems and ease debugging.Signed-off-by: Tejun Heo
Signed-off-by: Jeff Garzik -
while fixing a different bug i moved the call to vmi_init before
early params could be parsed.This broke the vmi specific commandline parameters.
Fix that, by moving vmi initialization after kernel has got a chance to
parse early parameters.Signed-off-by: Alok N Kataria
Signed-off-by: Ingo Molnar -
early_io{re,un}map() are __init and hence can't be called from __meminit
functions.Signed-off-by: Jan Beulich
Signed-off-by: Ingo Molnar -
While I don't have a hotplug capable system at hand, I think two issues need
fixing:- pud_phys (in kernel_physical_ampping_init()) would remain uninitialized in
the after_bootmem case- the locking done just around phys_pmd_{init,update}() would leave out pgd
updates, and it was needlessly covering code portions that do allocations
(perhaps using a more friendly gfp value in alloc_low_page() would then be
possible)Signed-off-by: Jan Beulich
Signed-off-by: Ingo Molnar -
Joshua Hoblitt reported that only 3 GB of his 16 GB of RAM is
usable. Booting with mtrr_show showed us the BIOS-initialized
MTRR settings - which are all wrong.So the root cause is that the BIOS has not set the mask correctly:
> [ 0.429971] MSR00000200: 00000000d0000000
> [ 0.433305] MSR00000201: 0000000ff0000800
> should be ==> [ 0.433305] MSR00000201: 0000003ff0000800
>
> [ 0.436638] MSR00000202: 00000000e0000000
> [ 0.439971] MSR00000203: 0000000fe0000800
> should be ==> [ 0.439971] MSR00000203: 0000003fe0000800
>
> [ 0.443304] MSR00000204: 0000000000000006
> [ 0.446637] MSR00000205: 0000000c00000800
> should be ==> [ 0.446637] MSR00000205: 0000003c00000800
>
> [ 0.449970] MSR00000206: 0000000400000006
> [ 0.453303] MSR00000207: 0000000fe0000800
> should be ==> [ 0.453303] MSR00000207: 0000003fe0000800
>
> [ 0.456636] MSR00000208: 0000000420000006
> [ 0.459970] MSR00000209: 0000000ff0000800
> should be ==> [ 0.459970] MSR00000209: 0000003ff0000800So detect this borkage and add the prefix 111.
Signed-off-by: Yinghai Lu
Cc:
Signed-off-by: Ingo Molnar -
* master.kernel.org:/home/rmk/linux-2.6-arm:
[ARM] 5212/1: pxa: fix build error when CPU_PXA310 is not defined
[ARM] 5208/1: fsg-setup.c fixes
[ARM] fix impd1.c build warning
[ARM] e400 config use MFP
[ARM] e740 config use MFP
[ARM] Fix eseries IRQ limit
[ARM] clocklib: Update users of aliases to new API
[ARM] clocklib: Allow dynamic alias creation
[ARM] eseries: whitespace fixes and cleanup