Open main menu

OpenVZ Virtuozzo Containers Wiki β

Changes

Download/kernel/2.6.8/022stab050.1/changes

18,752 bytes added, 20:48, 21 March 2008
created (not yet fixed)
== Changes ==
* Security/mainstream fixes
* gcc4 compilation fixes
* Scheduler improvements
* Area-check patch
* Code cleanups
<includeonly>[[{{PAGENAME}}/changes#Configs|{{Long changelog message}}]]</includeonly><noinclude>
=== Configs ===
The same as {{kernel link|2.6.8|022stab045.1}}, plus:
* +<code>CONFIG_HOTPLUG=y</code>
* +<code>CONFIG_PCMCIA_PROBE=y</code>
* +<code>CONFIG_HOTPLUG_PCI=y</code>
* +<code>CONFIG_HOTPLUG_PCI_COMPAQ=m</code>
* +<code>CONFIG_HOTPLUG_PCI_IBM=m</code>
* +<code>CONFIG_HOTPLUG_PCI_ACPI=m</code>
* +<code>CONFIG_HOTPLUG_PCI_PCIE=m</code>
* +<code>CONFIG_HOTPLUG_PCI_SHPC=m</code>
* +<code>CONFIG_FW_LOADER=y</code>
* +<code>CONFIG_PDC202XX_BURST=y</code>
* +<code>CONFIG_PDC202XX_FORCE=y</code>
* +<code>CONFIG_AIC79XX_ENABLE_RD_STRM=y</code>
* +<code>CONFIG_FUSION_LAN=m</code>
* +<code>CONFIG_USB=m</code>
* +<code>CONFIG_USB_DEVICEFS=y</code>
* +<code>CONFIG_USB_EHCI_HCD=m</code>
* +<code>CONFIG_USB_OHCI_HCD=m</code>
* +<code>CONFIG_USB_UHCI_HCD=m</code>
* +<code>CONFIG_USB_ACM=m</code>
* +<code>CONFIG_USB_PRINTER=m</code>
* +<code>CONFIG_USB_STORAGE=m</code>
* +<code>CONFIG_USB_STORAGE_DATAFAB=y</code>
* +<code>CONFIG_USB_STORAGE_FREECOM=y</code>
* +<code>CONFIG_USB_STORAGE_ISD200=y</code>
* +<code>CONFIG_USB_STORAGE_DPCM=y</code>
* +<code>CONFIG_USB_STORAGE_HP8200</code>e=y
* +<code>CONFIG_USB_STORAGE_SDDR09=y</code>
* +<code>CONFIG_USB_STORAGE_JUMPSHOT=y</code>
* +<code>CONFIG_USB_HID=m</code>
* +<code>CONFIG_USB_HIDINPUT=y</code>
* +<code>CONFIG_USB_KBD=m</code>
* +<code>CONFIG_USB_MOUSE=m</code>
* +<code>CONFIG_USB_WACOM=m</code>
* +<code>CONFIG_LBD=y</code>
=== Driver updates ===
* cciss driver v2.6.8
=== Patches ===

==== diff-fairsched-gcc4-20051110 ====
<div class="change">Patch from Kir, fixed by Kirill:<br/>
This patches fixes sched.c compilation with gcc4
</div>

==== diff-ms-gcc4-emt64-fakestack-20051107 ====
<div class="change">Patch from mainstream:<br/>
fixes gcc4 compilation of arch/x86_64/kernel/entry.S
http://linux.bkbits.net:8080/linux-2.6/cset@1.1938.500.73
</div>

==== diff-ms-gcc4-tss-20051101 ====
<div class="change">Patch from Kir, fixes compilation issue with gcc4:<br/>
tss_struct should be declared before ref.
</div>

==== diff-fairsched-balance-fix-20051110 ====
<div class="change">Patch from Pavel:<br/>
On UP machines scheduler does not perform active load balancing
and sched domains manupulations.
</div>

==== diff-ms-gcc4-framebuf-20051103 ====
<div class="change">Patch from mainstream, ported by Kir:<br/>
fixing compilation issue with gcc4.
http://linux.bkbits.net:8080/linux-2.6/cset@1.1982.90.1
</div>

==== diff-security-ptrace-thread-20051110 ====
<div class="change">Patch from mainstream:<br/>
[Security] [BUG] trivially triggered BUG_ON() in do_notify_parent()
</div>

==== diff-ms-gcc4-prio-tree-20051101 ====
<div class="change">
Patch from mainstream, fixing compilation issue with gcc4:<br/>
[PATCH] prio-tree: remove function prototype inside function
http://linux.bkbits.net:8080/linux-2.6/cset@1.1832.54.5
</div>

==== diff-ms-gcc4-sendipi-20051101 ====
<div class="change">
Patch from mainstream, fixing compilation issue with gcc4:<br/>
send_IPI_mask_bitmask can't be inlined by gcc4
</div>

==== diff-ms-gcc4-mtrr-20051101 ====
<div class="change">
Patch from mainstream, fixing compilation issue with gcc4.
http://linux.bkbits.net:8080/linux-2.6/cset@1.1803.144.88
</div>

==== diff-ms-gcc4-oldconfig-20051101 ====
<div class="change">Patch from Kir:<br/>
Patch fixing make oldconfig to not fail with gcc-3.5/gcc-4.

http://linux.bkbits.net:8080/linux-2.6/cset@1.1803.144.201
</div>

==== diff-CVE-2005-2709-sysctl-unreg ====
<div class="change">Patch from mainstream:<br/>
[PATCH] CVE-2005-2709 sysctl unregistration oops

You could open the /proc/sys/net/ipv4/conf/&lt;if&gt;/&lt;whatever&gt; file,
then wait for interface to go away, try to grab as much memory as possible in
hope to hit the (kfreed) ctl_table. Then fill it with pointers to your
function. Then do read from file you've opened and if you are lucky, you'll get
it called as -&gt;proc_handler() in kernel mode. So this is at least an Oops and
possibly more. It does depend on an interface going away though, so less of a
security risk than it would otherwise be.

http://www.kernel.org/git/?p=linux/kernel/git/chrisw/linux-2.6.14.y.git;a=commitdiff;h=e4e0411221c7d4f2bd82fa5e21745f927a1bff28
</div>

==== diff-ms-stopmachine-ipi-deadlock ====
<div class="change">Patch from Kirill:<br/>
This patch fixes deadlock of stop_machine() vs. synchronous IPI send.
The problem is that stop_machine() disables interrupts before disabling
preemption on other CPUs. So if another CPU is preempted and then calls
something like flush_tlb_all() it will deadlock with CPU doing stop_machine()
and which can't process IPI due to disabled IRQs.<br/>

I changed stop_machine() to do the same things exactly as it does on
other CPUs, i.e. it should disable preemption first on _all_ CPUs
including itself and only after that disable IRQs.
</div>

==== diff-ubc-oom-fix-20051102 ====
<div class="change">Patch from Pavel:<br/>
<ul>
* shrinked slabs counting during try_to_free_pages() (lost from 2.4);
* do not call yield() in oom_kill() if suicide hapened (lost from 2.4);
<li>oom_kill_counter correct calculations
when task is set to be PF_MEMDIE-d oom_kill_counter must be
incremented, when this task calls do_exit() - oom_kill_counter
decrements. this logic was broken before;</li>
* code cleanups.
</ul>
</div>

==== diff-ms-pagealloc-nofail-20051108 ====
<div class="change">Patch from Kirill and Pavel:<br/>
When PF_MEMALLOC is set __alloc_pages() does it best
to allocate a page. If even this try fails it is not
good to immediately return NULL - try to wait longer.
<br/>Bug 44254.
</div>

==== diff-ve-ia64-fsyscalls-20051103 ====
<div class="change">Patch from Pavel:<br/>
<ul>
* fsys_getpid needs new offset for tgid;
* fsys_getppid must not be called via fsys (locking);
* fsys_set_tid_address needs new offset for pid.
</ul>
</div>

==== diff-ve-ia64-printk-20051010 ====
<div class="change">Patch from Pavel:<br/>
Some info-printk can be triggered by userspace process. No need to
spoil main logbuf.
</div>

==== diff-ubc-ia64-pgfaultoom-20051108 ====
<div class="change">Patch from Pavel:<br/>
Ported i386 page fault OOM logic to ia64
</div>

==== diff-ubc-emt64-pgfaultoom-20051108 ====
<div class="change">Patch from Pavel:<br/>
Ported i386 OOM logic in page fault to x86-64.
</div>

==== diff-ms-amderrata-20051108 ====
<div class="change">Patch from mainstream, prepared by Pavel:<br/>
This is a merge of
<br/>[http://linux.bkbits.net:8080/linux-2.6/cset@1.3845.24.52 http://linux.bkbits.net:8080/linux-2.6/cset@1.3845.24.52]
<br/>[http://linux.bkbits.net:8080/linux-2.6/cset@1.3895.1.53 http://linux.bkbits.net:8080/linux-2.6/cset@1.3895.1.53]
<br/>[http://linux.bkbits.net:8080/linux-2.6/cset@1.3974 http://linux.bkbits.net:8080/linux-2.6/cset@1.3974]
</div>

==== diff-ms-emt64-iounmap-20051031 ====
<div class="change">Patch from mainstream, ported by Pavel:<br/>
Collected ioremap fixes:
<ul>
* Call change_page_attr correctly
* Fix a race during iounmap
* Handle mmio holes without mem_map correctly (needed for SRAT patch)
* Some cleanups
</ul>

Plus fix of DoS (CAN-2005-3108).<br/>

This is the merge (and port) of these patches:

<br/>[http://linux.bkbits.net:8080/linux-2.6/cset@428a06d1t7yny15TW1vsHxmsfP9YPg http://linux.bkbits.net:8080/linux-2.6/cset@428a06d1t7yny15TW1vsHxmsfP9YPg]
<br/>[http://linux.bkbits.net:8080/linux-2.6/cset@1.1938.500.76 http://linux.bkbits.net:8080/linux-2.6/cset@1.1938.500.76]
</div>

==== diff-fairsched-sleepavg-20051107 ====
<div class="change">Patch from Pavel:<br/>
task-&gt;sleep_avg should be updated under rq-&gt;lock.
<br/>Bug 53273.
</div>

==== diff-ubc-dowppage-20051107 ====
<div class="change">Patch from Dmitry:<br/>
fix of page counting on do_wp_page() error path
</div>

==== diff-ubc-hardsoft-cleanup-20051103 ====
<div class="change">Patch from Pavel:<br/>
Use predefined constants for ub_memory_charge() to specify
severity of charging.
</div>

==== diff-ms-ext3writepage-20051031 ====
<div class="change">Patch from Denis:<br/>
This patch fixes lost reference on ext3 current handle in
ext3_journalled_writepage
</div>

==== diff-ms-exittimeslice-20051107 ====
<div class="change">Patch from Oleg Nesterov (oleg@tv-sign.ru):<br/>
sched_exit race fix from mainstream</div>

==== diff-ubc-compile-20051107 ====
<div class="change">Patch from Kir:<br/>
fix of ub_misc.c compilation in case CONFIG_UBC_DEBUG_KMEM is
not set.
</div>

==== diff-ubc-resnames-20051107 ====
<div class="change">Patch from Pavel:<br/>
Print ubc resource name, not just number in
__charge_beancounter_locked() when resource
is run out.
</div>

==== diff-ve-ia64-printk-20051103 ====
<div class="change">Patch from Pavel:<br/>
Unaligned accesses in userspace are handled with kernel exception
handler and appropriate printk() occurs. This printk must go to
VE's log.
</div>

==== diff-ve-ip-conntrack-natmodrefs-20051031 ====
<div class="change">Patch from Dmitry:<br/>
fixed iptable_nat module reference counting
<br/>[http://bugzilla.openvz.org/show_bug.cgi?id=64 OpenVZ Bug 64].
</div>

==== diff-ve-ip-conntrack-modrefs-20051031 ====
<div class="change">Patch from Dmitry:<br/>
If we have custom iptables entries inside VPS, than on VPS stop related
iptable_* modules counts decrements aren't performed. Fixed.
</div>

==== diff-ve-ia64-vpids-20051103 ====
<div class="change">Patch from Pavel:<br/>
<ul>
* sys32_ptrace searches task by pid (must by vpid);
* signal handling functions send signal by pid (must by vpid).
</ul>
</div>

==== diff-ve-emt64-kernelthread-20051103 ====
==== diff-ve-ia64-kernelthread-20051103 ====
==== diff-schedule-taskstopped-20050919 ====
<div class="change">Patches from Pavel and Alexander:<br/>
Do not alow stopped tasks sleep if they have pending SIGKILL
<br/>Bug 50052.
</div>

==== diff-ms-setmempolicy-20051031 ====
<div class="change">Patch from mainstream:<br/>
A kernel BUG() is triggered by a call to set_mempolicy()
with a negative first argument.
This is because the mode is declared as an int, and the
validity check doesnt check &lt; 0 values. Alternatively, mode could be
declared as unsigned int or unsigned long.

<br/>[http://linux.bkbits.net:8080/linux-2.6/cset@42eef8b09C5r6iI0LuMe5Uy3k05c5g http://linux.bkbits.net:8080/linux-2.6/cset@42eef8b09C5r6iI0LuMe5Uy3k05c5g]
<br/>[http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2005-3053 http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2005-3053]
</div>

==== diff-rh-irq-stack-apic-context2 ====
<div class="change">Patch from Alexander:<br/>
make kernel compilable without CONFIG_4KSTACKS
<br/>[http://bugzilla.openvz.org/show_bug.cgi?id=65 OpenVZ Bug 65].
</div>

==== diff-ia64-headers-20051101 ====
<div class="change">Patch from Andrey Mirkin:<br/>
This patch makes ia64 kernel compile.
</div>

==== diff-fairsched-balance-20051102 ====
<div class="change">Patch from Andrey, fixed/splitted/corrected by Kirill:<br/>
This patch adds passive/active balancing in CPU scheduler.
Additionally:
<ul>
* doesn't drop rq-&gt;lock in schedule_vcpu() on fast path (same VCPU)
* introduced 5ms VCPU to PCPU affinity
* fixed initialization of VCPUs and scheduler domains
</ul>
</div>

==== diff-ms-flock-hotplug-fix-20051114 ====
<div class="change">Patch from mainstream:<br/>
The patch below fixes an interesting oddity we're seeing with fedora core
development (where we recently started using udev heavily); basically right
now filelock_init() is a module_init(), eg runs late. However that breaks
down because there are earlier /sbin/hotplug callouts, which with udev, do
locking operations. When that happens the kernel oopses because the slabs
for file locks aren't initialized yet.
Solution: initialize this way early. It's only a kmem_cache_create after
all, so can happen early.
Signed-off-by: Andrew Morton &lt;akpm@osdl.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@osdl.org&gt;

<br/>[http://linux.bkbits.net:8080/linux-2.6/cset@1.1832.6.179 http://linux.bkbits.net:8080/linux-2.6/cset@1.1832.6.179]
<br/>Bug 54025.
</div>

==== diff-ve-vpid-alloc-20051118 ====
<div class="change">Patch from Alexey, modified by Kirill:<br/>
[PATCH] vpid allocator was broken<br/>

alloc_pidmap sometimes returned 65536. I understood its logic incorreclty,
apparently pid_max does not mean a strict limit on pid value,
it just prescribes to allocate pid &lt; pid_max, if there is at least one
free value in this range.<br/>

Plus, it was suboptimal because nr_free never reached 0, so if we have
all low pids allocated, it always will scan bitmap.
</div>

==== diff-proc-locks-fix-20051111 ====
<div class="change">Patch from Pavel:<br/>
unregister_sysctl_table held sysctl_lock (spinlock) and called
remove_proc_entry, which in turn tried to down_write some
semaphore...<br/>
fixes bad interaction of:<br/>
diff-CVE-2005-2709-sysctl-unreg<br/>
diff-proc-locks-20050930
</div>

==== diff-fairsched-gcc4-20051114 ====
<div class="change">Patch from Kir:<br/>
fixing compilation issue of kernel/sched.c using gcc4.
</div>

==== diff-ubc-ia64-include-20051111 ====
<div class="change">Patch from Andrey:<br/>
This patch adds forgotten by Pavel ub include in arch/ia64/mm/fault.c.
This issue appears after applying diff-ubc-hardsoft-cleanup-20051103 patch.
</div>

==== diff-ms-emt64-usercopy-20041020 ====
<div class="change">Patch from mainstream:<br/>
[PATCH] x86_64: correct copy_user_generic return value when exception
happens<br/>

Fix a bug that arch/x86_64/lib/copy_user:copy_user_generic will return a
wrong value when exception happens.<br/>

In the case the address is not 8-byte aligned (i.e. go into
Lbad_alignment), if exception happens in Ls11, %rdx will be wrong number of
copied bytes, then copy_user_generic returns wrong value. It also fixed a
bug of zeroing wrong number of bytes of destination at this situation. (In
Lzero_rest)<br/>

Signed-off-by: Yanmin Zhang &lt;yanmin.zhang@intel.com&gt;<br/>
Signed-off-by: Nanhai Zou &lt;nanhai.zou@intel.com&gt;<br/>
Signed-off-by: Gordon Jin &lt;gordon.jin@intel.com&gt;<br/>
Signed-off-by: Suresh Siddha &lt;suresh.b.siddha@intel.com&gt;<br/>
Signed-off-by: Andrew Morton &lt;akpm@osdl.org&gt;<br/>
Signed-off-by: Linus Torvalds &lt;torvalds@osdl.org&gt;

<br/>[http://linux.bkbits.net:8080/linux-2.6/cset@1.1938.185.9 http://linux.bkbits.net:8080/linux-2.6/cset@1.1938.185.9]
<br/>Bug 54154.
</div>

==== diff-ve-legacyptys-20051111 ====
<div class="change">Patch from Dmitry:<br/>
fixed VPS operations when CONFIG_LEGACY_PTYS is not set
</div>

==== diff-ms-dethread-20051117 ====
<div class="change">Patch from mainstream:<br/>
[PATCH] fix de_thread() vs send_group_sigqueue() race<br/>
When non-leader thread does exec, de_thread calls release_task(leader) before
calling exit_itimers(). If local timer interrupt happens in between, it can oops
in send_group_sigqueue() while taking -&gt;sighand-&gt;siglock == NULL.<br/>

However, we can't change send_group_sigqueue() to check p-&gt;signal != NULL,
because sys_timer_create() does get_task_struct() only in SIGEV_THREAD_ID
case. So it is possible that this task_struct was already freed and we can't
trust p-&gt;signal.<br/>

This patch changes de_thread() so that leader released after exit_itimers()
call.<br/>

X-Git-Tag: v2.6.14.2
<br/><a
href="http://www.kernel.org/git/?p=linux/kernel/git/gregkh/linux-2.6.14.y.git;a=commitdiff;h=6b85cfab9d15c70392cd79896ae1a11d88498e9f">X-Git-Url</a>
</div>

==== diff-vzdq-debug-20051117 ====
<div class="change">Patch from Dmitry:<br/>
print "VZDQ: unexpected creation context" debug messages only if
timeout is more than 3 seconds
<br/>Bug 49285.
</div>

==== diff-ubc-tcpfragment-20051111 ====
<div class="change">Patch from Denis pointed out by Alexey:<br/>
This patch fixes incorrect UB handling in tcp_fragment.
<br/>Bug 53926.
</div>

==== diff-ve-sched-rr-20051115 ====
<div class="change">Patch from Dmitry, based on Solar Designer idea:<br/>
disable SCHED_FIFO and SCHED_RR in VPS (CAP_SYS_ADMIN)
<br/>Bug 53938.
</div>

==== diff-ms-notifyparent-20051120 ====
<div class="change">Patch from mainstream:<br/>
[PATCH] Don't auto-reap traced children<br/>
If a task is being traced we never auto-reap it even if it might look
like its parent doesn't care. The tracer obviously _does_ care.<br/>

X-Git-Tag: v2.6.15-rc1
<br/><a
href="http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=7ed0175a462c4c30f6df6fac1cccac058f997739">X-Git-Url</a>
<br/>Bug 54815.
</div>

==== diff-ms-posix-lock-race ====
<div class="change">Patch from mainstream:<br/>
Fix close() vs posix lock race
A threaded app that posix-locks and closes the same file
in two threads concurrently may result in a posix lock
that was never visible to the closer, and that thus needs
cleanup on the final fput.
Handle it together with the regular flocks.
<br/>[http://linux.bkbits.net:8080/linux-2.6/cset@1.1938.63.25 http://linux.bkbits.net:8080/linux-2.6/cset@1.1938.63.25]
<br/><a href="https://bugzilla.redhat.com/bugzilla/attachment.cgi?id=115031">
https://bugzilla.redhat.com/bugzilla/attachment.cgi?id=115031</a>
<br/>Bug 54772.
</div>

==== diff-simfs-statfs-20051123 ====
<div class="change">Patch from Vasiliy:<br/>
Fixes -EIO with sim_statfs and sim_statfs64,
when quota is disabled.
<br/>[http://bugzilla.openvz.org/show_bug.cgi?id=70 OpenVZ Bug 70].
</div>

==== diff-ubc-hugetlb-compile-20051122 ====
<div class="change">Patch from Kirill:<br/>
This patch fixes two typos found by a gentoo user
(http://bugs.gentoo.org/show_bug.cgi?id=113214)
when he tried compiling 022stab045 kernel with
CONFIG_HUGETLBFS and CONFIG_HUGETLB_PAGE options turned on.
</div>

==== diff-ve-cmdline-20051121 ====
<div class="change">Patch from Vasiliy Tarasov:<br/>
There is now /proc/cmdline file inside VPS. It's empty.
<br/>Bug 54370.
</div>

==== diff-ve-devpts-conf-20051121 ====
<div class="change">Patch from Dmitry, issue mentioned by Alexey:<br/>
default devpts entries uid/gid are virtualized
<br/>Bug 54489.
</div>

==== diff-vzdq-readdir-fix-20051123 ====
<div class="change">Patch from Pavel:<br/>
Due to wrong calculations of file position
`ls /proc/vz/vzaquota` could show last entry 3 times.
Found during testing of multiple quota partitions.
</div>

==== diff-ms-types-20051122 ====
<div class="change">Patch from Pavel:<br/>
Adds necessary typed for aacraid and cciss drivers.
Cut from diff-aacraid-addon-20051021
</div>

==== diff-ve-ttys-fix-20051124 ====
<div class="change">Patch from Dmitry, issue found by Solar Designer:<br/>
fixed bug in VPS pty_driver initialization
leading to node crashes
<br/>Bug 54874.
</div>

</noinclude>