* Re: [PATCH/RFC] gitopt - command-line parsing enhancements
From: Junio C Hamano @ 2006-05-09 20:28 UTC (permalink / raw)
To: Eric Wong; +Cc: git
In-Reply-To: <20060509194825.GC3676@localdomain>
Eric Wong <normalperson@yhbt.net> writes:
>> And scary, especially the "eat" macros are very scary.
>
> They look weird at first, but I think they help readability and
> maintainability once you get used to them. They let you focus on the
> important part of the function while hiding the boring parts from you.
> Quite elegant, imho.
Sorry, there is no elegance to it as far as I can see. A macro
invocation that creates a private function while it does not
look like a function definition is already bad, you cannot have
a comma in the stmt part, and the bare semicolons in the
parenthesised text look insane.
If your patch were like this, it would have been a bit easier
for me to understand what was going on during my first pass:
static struct exec_args *ui_optparse
(struct opt_spec *s, int ac, char **av, int *ac_p, int what)
{
struct exec_args *ea = one_arg(s, ac, av, ac_p);
if (!ea) return NULL;
switch (what) {
case IGNORE_MISSING:
not_new = 1; break;
case VERBOSE:
verbose = 1; break;
case HELP:
usage(update_index_usage); break;
}
return nil_exec_args(ea);
}
instead of
gitopt_eat(opt_ignore_missing, not_new = 1;)
gitopt_eat(opt_verbose, verbose = 1;)
gitopt_eat(opt_h, usage(update_index_usage);)
Then, you would give an extra element in the table, and your
argument parsing/splitting routine passes that one to the
handler function:
static const struct opt_spec update_index_ost[] = {
...
{ "ignore-missing", 0, 0, 0, ui_optparse, IGNORE_MISSING },
{ "verbose", 0, 0, 0, ui_optparse, VERBOSE },
{ "help", 'h', 0, 0, ui_optparse, HELP },
{ 0, 0 }
Another thing is I do not think we would want to make the
argument parsing into callback style interface like you did. It
actively encourages the option variables to be global (you could
make it file scoped static but they are global nevertheless).
If you can make it an iterator style, it would be a lot easier
to see what is going on, I suspect. Then you would not even
need the callback function pointers and small functions created
by magic eat() macros.
^ permalink raw reply
* Re: r8169+NAPI soft lockup
From: Francois Romieu @ 2006-05-09 20:26 UTC (permalink / raw)
To: Richard Gregory; +Cc: netdev
In-Reply-To: <4460B8DC.9080105@liv.ac.uk>
Richard Gregory <R.Gregory@liverpool.ac.uk> :
[...]
Can you send me your drivers/ide/ide-io.o ?
--
Ueimor
^ permalink raw reply
* [PATCH resend] smbfs chroot issue (CVE-2006-1864)
From: Chris Wright @ 2006-05-09 20:29 UTC (permalink / raw)
To: torvalds, akpm
Cc: Olaf Kirch, Greg KH, linux-kernel, stable, Steven French, shaggy,
Mark Moseley, Marcel Holtmann
From: Olaf Kirch <okir@suse.de>
Mark Moseley reported that a chroot environment on a SMB share can be
left via "cd ..\\". Similar to CVE-2006-1863 issue with cifs, this fix
is for smbfs.
Steven French <sfrench@us.ibm.com> wrote:
Looks fine to me. This should catch the slash on lookup or equivalent,
which will be all obvious paths of interest.
Signed-off-by: Chris Wright <chrisw@sous-sol.org>
---
This fix is in -stable, but doesn't appear to be in your tree yet.
fs/smbfs/dir.c | 5 +++++
1 file changed, 5 insertions(+)
--- linus-2.6.orig/fs/smbfs/dir.c
+++ linus-2.6/fs/smbfs/dir.c
@@ -434,6 +434,11 @@ smb_lookup(struct inode *dir, struct den
if (dentry->d_name.len > SMB_MAXNAMELEN)
goto out;
+ /* Do not allow lookup of names with backslashes in */
+ error = -EINVAL;
+ if (memchr(dentry->d_name.name, '\\', dentry->d_name.len))
+ goto out;
+
lock_kernel();
error = smb_proc_getattr(dentry, &finfo);
#ifdef SMBFS_PARANOIA
_______________________________________________
stable mailing list
stable@linux.kernel.org
http://linux.kernel.org/mailman/listinfo/stable
^ permalink raw reply
* Re: Linux 2.6.16.15
From: Chris Wright @ 2006-05-09 20:29 UTC (permalink / raw)
To: Chris Wright; +Cc: linux-kernel, stable, torvalds
In-Reply-To: <20060509202850.GQ24291@moss.sous-sol.org>
diff --git a/Makefile b/Makefile
index 3c03fb9..cdd3ce7 100644
--- a/Makefile
+++ b/Makefile
@@ -1,7 +1,7 @@
VERSION = 2
PATCHLEVEL = 6
SUBLEVEL = 16
-EXTRAVERSION = .14
+EXTRAVERSION = .15
NAME=Sliding Snow Leopard
# *DOCUMENTATION*
diff --git a/include/net/sctp/structs.h b/include/net/sctp/structs.h
index 072f407..acb2ce1 100644
--- a/include/net/sctp/structs.h
+++ b/include/net/sctp/structs.h
@@ -702,6 +702,7 @@ struct sctp_chunk {
__u8 tsn_gap_acked; /* Is this chunk acked by a GAP ACK? */
__s8 fast_retransmit; /* Is this chunk fast retransmitted? */
__u8 tsn_missing_report; /* Data chunk missing counter. */
+ __u8 data_accepted; /* At least 1 chunk in this packet accepted */
};
void sctp_chunk_hold(struct sctp_chunk *);
diff --git a/net/sctp/inqueue.c b/net/sctp/inqueue.c
index 297b895..cf0c767 100644
--- a/net/sctp/inqueue.c
+++ b/net/sctp/inqueue.c
@@ -149,6 +149,7 @@ struct sctp_chunk *sctp_inq_pop(struct s
/* This is the first chunk in the packet. */
chunk->singleton = 1;
ch = (sctp_chunkhdr_t *) chunk->skb->data;
+ chunk->data_accepted = 0;
}
chunk->chunk_hdr = ch;
diff --git a/net/sctp/sm_statefuns.c b/net/sctp/sm_statefuns.c
index 2b9a832..8cdba51 100644
--- a/net/sctp/sm_statefuns.c
+++ b/net/sctp/sm_statefuns.c
@@ -636,8 +636,9 @@ sctp_disposition_t sctp_sf_do_5_1D_ce(co
*/
chunk->subh.cookie_hdr =
(struct sctp_signed_cookie *)chunk->skb->data;
- skb_pull(chunk->skb,
- ntohs(chunk->chunk_hdr->length) - sizeof(sctp_chunkhdr_t));
+ if (!pskb_pull(chunk->skb, ntohs(chunk->chunk_hdr->length) -
+ sizeof(sctp_chunkhdr_t)))
+ goto nomem;
/* 5.1 D) Upon reception of the COOKIE ECHO chunk, Endpoint
* "Z" will reply with a COOKIE ACK chunk after building a TCB
@@ -965,7 +966,8 @@ sctp_disposition_t sctp_sf_beat_8_3(cons
*/
chunk->subh.hb_hdr = (sctp_heartbeathdr_t *) chunk->skb->data;
paylen = ntohs(chunk->chunk_hdr->length) - sizeof(sctp_chunkhdr_t);
- skb_pull(chunk->skb, paylen);
+ if (!pskb_pull(chunk->skb, paylen))
+ goto nomem;
reply = sctp_make_heartbeat_ack(asoc, chunk,
chunk->subh.hb_hdr, paylen);
@@ -1860,8 +1862,9 @@ sctp_disposition_t sctp_sf_do_5_2_4_dupc
* are in good shape.
*/
chunk->subh.cookie_hdr = (struct sctp_signed_cookie *)chunk->skb->data;
- skb_pull(chunk->skb, ntohs(chunk->chunk_hdr->length) -
- sizeof(sctp_chunkhdr_t));
+ if (!pskb_pull(chunk->skb, ntohs(chunk->chunk_hdr->length) -
+ sizeof(sctp_chunkhdr_t)))
+ goto nomem;
/* In RFC 2960 5.2.4 3, if both Verification Tags in the State Cookie
* of a duplicate COOKIE ECHO match the Verification Tags of the
@@ -5151,7 +5154,9 @@ static int sctp_eat_data(const struct sc
int tmp;
__u32 tsn;
int account_value;
+ struct sctp_tsnmap *map = (struct sctp_tsnmap *)&asoc->peer.tsn_map;
struct sock *sk = asoc->base.sk;
+ int rcvbuf_over = 0;
data_hdr = chunk->subh.data_hdr = (sctp_datahdr_t *)chunk->skb->data;
skb_pull(chunk->skb, sizeof(sctp_datahdr_t));
@@ -5162,10 +5167,16 @@ static int sctp_eat_data(const struct sc
/* ASSERT: Now skb->data is really the user data. */
/*
- * if we are established, and we have used up our receive
- * buffer memory, drop the frame
- */
- if (asoc->state == SCTP_STATE_ESTABLISHED) {
+ * If we are established, and we have used up our receive buffer
+ * memory, think about droping the frame.
+ * Note that we have an opportunity to improve performance here.
+ * If we accept one chunk from an skbuff, we have to keep all the
+ * memory of that skbuff around until the chunk is read into user
+ * space. Therefore, once we accept 1 chunk we may as well accept all
+ * remaining chunks in the skbuff. The data_accepted flag helps us do
+ * that.
+ */
+ if ((asoc->state == SCTP_STATE_ESTABLISHED) && (!chunk->data_accepted)) {
/*
* If the receive buffer policy is 1, then each
* association can allocate up to sk_rcvbuf bytes
@@ -5176,9 +5187,25 @@ static int sctp_eat_data(const struct sc
account_value = atomic_read(&asoc->rmem_alloc);
else
account_value = atomic_read(&sk->sk_rmem_alloc);
-
- if (account_value > sk->sk_rcvbuf)
- return SCTP_IERROR_IGNORE_TSN;
+ if (account_value > sk->sk_rcvbuf) {
+ /*
+ * We need to make forward progress, even when we are
+ * under memory pressure, so we always allow the
+ * next tsn after the ctsn ack point to be accepted.
+ * This lets us avoid deadlocks in which we have to
+ * drop frames that would otherwise let us drain the
+ * receive queue.
+ */
+ if ((sctp_tsnmap_get_ctsn(map) + 1) != tsn)
+ return SCTP_IERROR_IGNORE_TSN;
+
+ /*
+ * We're going to accept the frame but we should renege
+ * to make space for it. This will send us down that
+ * path later in this function.
+ */
+ rcvbuf_over = 1;
+ }
}
/* Process ECN based congestion.
@@ -5226,6 +5253,7 @@ static int sctp_eat_data(const struct sc
datalen -= sizeof(sctp_data_chunk_t);
deliver = SCTP_CMD_CHUNK_ULP;
+ chunk->data_accepted = 1;
/* Think about partial delivery. */
if ((datalen >= asoc->rwnd) && (!asoc->ulpq.pd_mode)) {
@@ -5242,7 +5270,8 @@ static int sctp_eat_data(const struct sc
* large spill over.
*/
if (!asoc->rwnd || asoc->rwnd_over ||
- (datalen > asoc->rwnd + asoc->frag_point)) {
+ (datalen > asoc->rwnd + asoc->frag_point) ||
+ rcvbuf_over) {
/* If this is the next TSN, consider reneging to make
* room. Note: Playing nice with a confused sender. A
@@ -5250,8 +5279,8 @@ static int sctp_eat_data(const struct sc
* space and in the future we may want to detect and
* do more drastic reneging.
*/
- if (sctp_tsnmap_has_gap(&asoc->peer.tsn_map) &&
- (sctp_tsnmap_get_ctsn(&asoc->peer.tsn_map) + 1) == tsn) {
+ if (sctp_tsnmap_has_gap(map) &&
+ (sctp_tsnmap_get_ctsn(map) + 1) == tsn) {
SCTP_DEBUG_PRINTK("Reneging for tsn:%u\n", tsn);
deliver = SCTP_CMD_RENEGE;
} else {
diff --git a/net/sctp/sm_statetable.c b/net/sctp/sm_statetable.c
index 75ef104..8bcca56 100644
--- a/net/sctp/sm_statetable.c
+++ b/net/sctp/sm_statetable.c
@@ -366,9 +366,9 @@ #define TYPE_SCTP_ECN_ECNE { \
/* SCTP_STATE_EMPTY */ \
{.fn = sctp_sf_ootb, .name = "sctp_sf_ootb"}, \
/* SCTP_STATE_CLOSED */ \
- {.fn = sctp_sf_bug, .name = "sctp_sf_bug"}, \
+ {.fn = sctp_sf_discard_chunk, .name = "sctp_sf_discard_chunk"}, \
/* SCTP_STATE_COOKIE_WAIT */ \
- {.fn = sctp_sf_bug, .name = "sctp_sf_bug"}, \
+ {.fn = sctp_sf_discard_chunk, .name = "sctp_sf_discard_chunk"}, \
/* SCTP_STATE_COOKIE_ECHOED */ \
{.fn = sctp_sf_do_ecne, .name = "sctp_sf_do_ecne"}, \
/* SCTP_STATE_ESTABLISHED */ \
@@ -380,7 +380,7 @@ #define TYPE_SCTP_ECN_ECNE { \
/* SCTP_STATE_SHUTDOWN_RECEIVED */ \
{.fn = sctp_sf_do_ecne, .name = "sctp_sf_do_ecne"}, \
/* SCTP_STATE_SHUTDOWN_ACK_SENT */ \
- {.fn = sctp_sf_bug, .name = "sctp_sf_bug"}, \
+ {.fn = sctp_sf_discard_chunk, .name = "sctp_sf_discard_chunk"}, \
} /* TYPE_SCTP_ECN_ECNE */
#define TYPE_SCTP_ECN_CWR { \
@@ -401,7 +401,7 @@ #define TYPE_SCTP_ECN_CWR { \
/* SCTP_STATE_SHUTDOWN_RECEIVED */ \
{.fn = sctp_sf_discard_chunk, .name = "sctp_sf_discard_chunk"}, \
/* SCTP_STATE_SHUTDOWN_ACK_SENT */ \
- {.fn = sctp_sf_bug, .name = "sctp_sf_bug"}, \
+ {.fn = sctp_sf_discard_chunk, .name = "sctp_sf_discard_chunk"}, \
} /* TYPE_SCTP_ECN_CWR */
#define TYPE_SCTP_SHUTDOWN_COMPLETE { \
@@ -647,7 +647,7 @@ #define TYPE_SCTP_PRIMITIVE_REQUESTHEART
/* SCTP_STATE_EMPTY */ \
{.fn = sctp_sf_bug, .name = "sctp_sf_bug"}, \
/* SCTP_STATE_CLOSED */ \
- {.fn = sctp_sf_bug, .name = "sctp_sf_bug"}, \
+ {.fn = sctp_sf_error_closed, .name = "sctp_sf_error_closed"}, \
/* SCTP_STATE_COOKIE_WAIT */ \
{.fn = sctp_sf_do_prm_requestheartbeat, \
.name = "sctp_sf_do_prm_requestheartbeat"}, \
diff --git a/net/sctp/ulpqueue.c b/net/sctp/ulpqueue.c
index 2080b2d..575e556 100644
--- a/net/sctp/ulpqueue.c
+++ b/net/sctp/ulpqueue.c
@@ -279,6 +279,7 @@ static inline void sctp_ulpq_store_reasm
static struct sctp_ulpevent *sctp_make_reassembled_event(struct sk_buff_head *queue, struct sk_buff *f_frag, struct sk_buff *l_frag)
{
struct sk_buff *pos;
+ struct sk_buff *new = NULL;
struct sctp_ulpevent *event;
struct sk_buff *pnext, *last;
struct sk_buff *list = skb_shinfo(f_frag)->frag_list;
@@ -297,11 +298,33 @@ static struct sctp_ulpevent *sctp_make_r
*/
if (last)
last->next = pos;
- else
- skb_shinfo(f_frag)->frag_list = pos;
+ else {
+ if (skb_cloned(f_frag)) {
+ /* This is a cloned skb, we can't just modify
+ * the frag_list. We need a new skb to do that.
+ * Instead of calling skb_unshare(), we'll do it
+ * ourselves since we need to delay the free.
+ */
+ new = skb_copy(f_frag, GFP_ATOMIC);
+ if (!new)
+ return NULL; /* try again later */
+
+ new->sk = f_frag->sk;
+
+ skb_shinfo(new)->frag_list = pos;
+ } else
+ skb_shinfo(f_frag)->frag_list = pos;
+ }
/* Remove the first fragment from the reassembly queue. */
__skb_unlink(f_frag, queue);
+
+ /* if we did unshare, then free the old skb and re-assign */
+ if (new) {
+ kfree_skb(f_frag);
+ f_frag = new;
+ }
+
while (pos) {
pnext = pos->next;
^ permalink raw reply related
* Re: [PATCH] paging_enabled and non-HVM guests
From: Ryan Harper @ 2006-05-09 20:26 UTC (permalink / raw)
To: Anthony Liguori; +Cc: Simon Kagstrom, xen-devel list, Hollis Blanchard
In-Reply-To: <4460F832.4060808@us.ibm.com>
[-- Attachment #1: Type: text/plain, Size: 1884 bytes --]
* Anthony Liguori <aliguori@us.ibm.com> [2006-05-09 15:15]:
> Hollis Blanchard wrote:
> >On Tue, 2006-05-09 at 13:31 +0200, Simon Kagstrom wrote:
> >
> >>I had a problem with the GDB-server crashing on connections in
> >>xen_ptrace.c:map_domain_va(). paging_enabled() should only be checked
> >>for HVM guests, and the patch adds a check for that.
> >>
> >>Signed-off-by: Simon Kagstrom <ska@bth.se>
> >>
> >>diff -r 4501d60d6add tools/libxc/xc_ptrace.c
> >>--- a/tools/libxc/xc_ptrace.c Tue May 9 09:57:05 2006
> >>+++ b/tools/libxc/xc_ptrace.c Tue May 9 13:26:14 2006
> >>@@ -374,7 +374,7 @@
> >> if (fetch_regs(xc_handle, cpu, NULL))
> >> return NULL;
> >>
> >>- if (!paging_enabled(&ctxt[cpu])) {
> >>+ if ( (ctxt[cpu].flags & VGCF_HVM_GUEST) &&
> >>!paging_enabled(&ctxt[cpu])) { static void * v;
> >> unsigned long page;
> >>
> >
> >I looked at this a couple weeks ago, and I think the real problem is
> >that the CR registers are never updated in Xen's vcpu structure, and so
> >xc_vcpu_getcontext() doesn't get them either. So Xen should be fixed; we
> >shouldn't add workarounds to userland.
> >
>
> I think that the CR registers are never changed during the life of a PV
> domain. I think all that's needed is for some sane values to be set
> during domain creation and things start working. I believe Ryan had a
> patch that did this?
Well, I only hacked up enough to get things functional. I didn't know
what cr4 should look like so I skipped that check. Here are the two
patches I needed to debug paravirt 64-bit domUs via gdb. I was going to
look into abstracting out the index into the page_array (it is only
needed on domains with shadow paging; non-shadow page tables
already have mfns).
--
Ryan Harper
Software Engineer; Linux Technology Center
IBM Corp., Austin, Tx
(512) 838-9253 T/L: 678-9253
ryanh@us.ibm.com
[-- Attachment #2: fix_ptrace_paravirt64.patch --]
[-- Type: text/plain, Size: 1673 bytes --]
diff -r c4eead8a925b tools/libxc/xc_ptrace.c
--- a/tools/libxc/xc_ptrace.c Sun Apr 16 14:41:31 2006
+++ b/tools/libxc/xc_ptrace.c Thu Apr 20 22:44:35 2006
@@ -281,8 +281,10 @@
uint64_t *l4, *l3, *l2, *l1;
static void *v;
+#if 0
if ((ctxt[cpu].ctrlreg[4] & 0x20) == 0 ) /* legacy ia32 mode */
return map_domain_va_32(xc_handle, cpu, guest_va, perm);
+#endif
l4 = xc_map_foreign_range( xc_handle, current_domid, PAGE_SIZE,
PROT_READ, ctxt[cpu].ctrlreg[3] >> PAGE_SHIFT);
@@ -290,14 +292,14 @@
return NULL;
l3p = l4[l4_table_offset(va)] >> PAGE_SHIFT;
- l3p = page_array[l3p];
+ //l3p = page_array[l3p];
l3 = xc_map_foreign_range(xc_handle, current_domid, PAGE_SIZE, PROT_READ, l3p);
munmap(l4, PAGE_SIZE);
if ( l3 == NULL )
return NULL;
l2p = l3[l3_table_offset(va)] >> PAGE_SHIFT;
- l2p = page_array[l2p];
+ //l2p = page_array[l2p];
l2 = xc_map_foreign_range(xc_handle, current_domid, PAGE_SIZE, PROT_READ, l2p);
munmap(l3, PAGE_SIZE);
if ( l2 == NULL )
@@ -309,7 +311,7 @@
if (l1e & 0x80) { /* 2M pages */
p = (l1p + l1_table_offset(va));
} else { /* 4K pages */
- l1p = page_array[l1p];
+ //l1p = page_array[l1p];
l1 = xc_map_foreign_range(xc_handle, current_domid, PAGE_SIZE, perm, l1p);
munmap(l2, PAGE_SIZE);
if ( l1 == NULL )
@@ -317,7 +319,7 @@
p = l1[l1_table_offset(va)] >> PAGE_SHIFT;
}
- p = page_array[p];
+ //p = page_array[p];
if ( v != NULL )
munmap(v, PAGE_SIZE);
v = xc_map_foreign_range(xc_handle, current_domid, PAGE_SIZE, perm, p);
[-- Attachment #3: setup_sane_cr0.patch --]
[-- Type: text/plain, Size: 1290 bytes --]
diff -r c4eead8a925b tools/libxc/xc_linux_build.c
--- a/tools/libxc/xc_linux_build.c Sun Apr 16 14:41:31 2006
+++ b/tools/libxc/xc_linux_build.c Thu Apr 20 22:45:21 2006
@@ -45,6 +45,11 @@
#ifdef __ia64__
#define probe_aout9(image,image_size,load_funcs) 1
#endif
+
+/* from xc_ptrace.h */
+#define X86_CR0_PE 0x00000001 /* Enable Protected Mode (RW) */
+#define X86_CR0_PG 0x80000000 /* Paging (RW) */
+
struct initrd_info {
enum { INITRD_none, INITRD_file, INITRD_mem } type;
@@ -1174,6 +1179,8 @@
ctxt->failsafe_callback_eip = 0;
ctxt->syscall_callback_eip = 0;
#endif
+ /* set sane cr0 bits, protected and paging enabled */
+ ctxt->ctrlreg[0] = X86_CR0_PE|X86_CR0_PG;
#endif /* x86 */
memset( &launch_op, 0, sizeof(launch_op) );
diff -r c4eead8a925b linux-2.6-xen-sparse/drivers/xen/core/smpboot.c
--- a/linux-2.6-xen-sparse/drivers/xen/core/smpboot.c Sun Apr 16 14:41:31 2006
+++ b/linux-2.6-xen-sparse/drivers/xen/core/smpboot.c Thu Apr 20 22:45:36 2006
@@ -216,6 +216,8 @@
ctxt.gs_base_kernel = (unsigned long)(cpu_pda(vcpu));
#endif
+ /* set sane cr0 bits, protected and paging enabled */
+ ctxt.ctrlreg[0] = 0x80000001;
BUG_ON(HYPERVISOR_vcpu_op(VCPUOP_initialise, vcpu, &ctxt));
}
[-- Attachment #4: Type: text/plain, Size: 138 bytes --]
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xensource.com
http://lists.xensource.com/xen-devel
^ permalink raw reply
* Re: [RFC PATCH 34/35] Add the Xen virtual network device driver.
From: Keir Fraser @ 2006-05-09 20:26 UTC (permalink / raw)
To: Stephen Hemminger
Cc: xen-devel, Ian Pratt, netdev, linux-kernel, Chris Wright,
virtualization
In-Reply-To: <20060509132556.76deaa91@localhost.localdomain>
On 9 May 2006, at 21:25, Stephen Hemminger wrote:
>> + memcpy(netdev->dev_addr, info->mac, ETH_ALEN);
>> + network_connect(netdev);
>> + info->irq = bind_evtchn_to_irqhandler(
>> + info->evtchn, netif_int, SA_SAMPLE_RANDOM,
>> netdev->name,
>>
>
> This doesn't look like a real random entropy source. packets
> arriving from another domain are easily timed.
Where should we get our entropy from in a VM environment? Leaving the
pool empty can cause processes to hang.
-- Keir
^ permalink raw reply
* Linux 2.6.16.15
From: Chris Wright @ 2006-05-09 20:28 UTC (permalink / raw)
To: linux-kernel, stable; +Cc: torvalds
We (the -stable team) are announcing the release of the 2.6.16.15
kernel. Fixes for SCTP security issues.
The diffstat and short summary of the fixes are below.
I'll also be replying to this message with a copy of the patch between
2.6.16.14 and 2.6.16.15, as it is small enough to do so.
The updated 2.6.16.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-2.6.16.y.git
and can be browsed at the normal kernel.org git web browser:
www.kernel.org/git/
thanks,
-chris
--------
Makefile | 2 -
include/net/sctp/structs.h | 1
net/sctp/inqueue.c | 1
net/sctp/sm_statefuns.c | 59 +++++++++++++++++++++++++++++++++------------
net/sctp/sm_statetable.c | 10 +++----
net/sctp/ulpqueue.c | 27 +++++++++++++++++++-
6 files changed, 77 insertions(+), 23 deletions(-)
Summary of changes from v2.6.16.14 to v2.6.16.15
================================================
Chris Wright:
Linux 2.6.16.15
Neil Horman:
SCTP: Allow spillover of receive buffer to avoid deadlock. (CVE-2006-2275)
Sridhar Samudrala:
SCTP: Fix panic's when receiving fragmented SCTP control chunks. (CVE-2006-2272)
SCTP: Fix state table entries for chunks received in CLOSED state. (CVE-2006-2271)
Vladislav Yasevich:
SCTP: Prevent possible infinite recursion with multiple bundled DATA. (CVE-2006-2274)
^ permalink raw reply
* Re: [RFC PATCH 34/35] Add the Xen virtual network device driver.
From: Stephen Hemminger @ 2006-05-09 20:25 UTC (permalink / raw)
To: Chris Wright
Cc: linux-kernel, virtualization, xen-devel, Ian Pratt,
Christian Limpach, netdev
In-Reply-To: <20060509085201.446830000@sous-sol.org>
> +static int setup_device(struct xenbus_device *dev, struct
> netfront_info *info) +{
> + struct netif_tx_sring *txs;
> + struct netif_rx_sring *rxs;
> + int err;
> + struct net_device *netdev = info->netdev;
> +
> + info->tx_ring_ref = GRANT_INVALID_REF;
> + info->rx_ring_ref = GRANT_INVALID_REF;
> + info->rx.sring = NULL;
> + info->tx.sring = NULL;
> + info->irq = 0;
> +
> + txs = (struct netif_tx_sring *)get_zeroed_page(GFP_KERNEL);
> + if (!txs) {
> + err = -ENOMEM;
> + xenbus_dev_fatal(dev, err, "allocating tx ring
> page");
> + goto fail;
> + }
> + rxs = (struct netif_rx_sring *)get_zeroed_page(GFP_KERNEL);
> + if (!rxs) {
> + err = -ENOMEM;
> + xenbus_dev_fatal(dev, err, "allocating rx ring
> page");
> + free_page((unsigned long)txs);
> + goto fail;
> + }
> + info->backend_state = BEST_DISCONNECTED;
> +
> + SHARED_RING_INIT(txs);
> + FRONT_RING_INIT(&info->tx, txs, PAGE_SIZE);
> +
> + SHARED_RING_INIT(rxs);
> + FRONT_RING_INIT(&info->rx, rxs, PAGE_SIZE);
> +
> + err = xenbus_grant_ring(dev, virt_to_mfn(txs));
> + if (err < 0)
> + goto fail;
> + info->tx_ring_ref = err;
> +
> + err = xenbus_grant_ring(dev, virt_to_mfn(rxs));
> + if (err < 0)
> + goto fail;
> + info->rx_ring_ref = err;
> +
> + err = xenbus_alloc_evtchn(dev, &info->evtchn);
> + if (err)
> + goto fail;
> +
> + memcpy(netdev->dev_addr, info->mac, ETH_ALEN);
> + network_connect(netdev);
> + info->irq = bind_evtchn_to_irqhandler(
> + info->evtchn, netif_int, SA_SAMPLE_RANDOM,
> netdev->name,
>
This doesn't look like a real random entropy source. packets
arriving from another domain are easily timed.
^ permalink raw reply
* Re: [RFC PATCH 34/35] Add the Xen virtual network device driver.
From: Stephen Hemminger @ 2006-05-09 20:25 UTC (permalink / raw)
To: Chris Wright
Cc: xen-devel, Ian Pratt, netdev, linux-kernel, virtualization,
Christian Limpach
In-Reply-To: <20060509085201.446830000@sous-sol.org>
> +static int setup_device(struct xenbus_device *dev, struct
> netfront_info *info) +{
> + struct netif_tx_sring *txs;
> + struct netif_rx_sring *rxs;
> + int err;
> + struct net_device *netdev = info->netdev;
> +
> + info->tx_ring_ref = GRANT_INVALID_REF;
> + info->rx_ring_ref = GRANT_INVALID_REF;
> + info->rx.sring = NULL;
> + info->tx.sring = NULL;
> + info->irq = 0;
> +
> + txs = (struct netif_tx_sring *)get_zeroed_page(GFP_KERNEL);
> + if (!txs) {
> + err = -ENOMEM;
> + xenbus_dev_fatal(dev, err, "allocating tx ring
> page");
> + goto fail;
> + }
> + rxs = (struct netif_rx_sring *)get_zeroed_page(GFP_KERNEL);
> + if (!rxs) {
> + err = -ENOMEM;
> + xenbus_dev_fatal(dev, err, "allocating rx ring
> page");
> + free_page((unsigned long)txs);
> + goto fail;
> + }
> + info->backend_state = BEST_DISCONNECTED;
> +
> + SHARED_RING_INIT(txs);
> + FRONT_RING_INIT(&info->tx, txs, PAGE_SIZE);
> +
> + SHARED_RING_INIT(rxs);
> + FRONT_RING_INIT(&info->rx, rxs, PAGE_SIZE);
> +
> + err = xenbus_grant_ring(dev, virt_to_mfn(txs));
> + if (err < 0)
> + goto fail;
> + info->tx_ring_ref = err;
> +
> + err = xenbus_grant_ring(dev, virt_to_mfn(rxs));
> + if (err < 0)
> + goto fail;
> + info->rx_ring_ref = err;
> +
> + err = xenbus_alloc_evtchn(dev, &info->evtchn);
> + if (err)
> + goto fail;
> +
> + memcpy(netdev->dev_addr, info->mac, ETH_ALEN);
> + network_connect(netdev);
> + info->irq = bind_evtchn_to_irqhandler(
> + info->evtchn, netif_int, SA_SAMPLE_RANDOM,
> netdev->name,
>
This doesn't look like a real random entropy source. packets
arriving from another domain are easily timed.
^ permalink raw reply
* Re: [PATCH] VIA quirk fixup, additional PCI IDs
From: Chris Wedgwood @ 2006-05-09 20:24 UTC (permalink / raw)
To: Andrew Morton; +Cc: linux-kernel, masouds, jeff, gregkh
In-Reply-To: <20060509125916.03c96efe.akpm@osdl.org>
On Tue, May 09, 2006 at 12:59:16PM -0700, Andrew Morton wrote:
> This looks like a 2.6.17-worthy fix, but it's not clear. Help.
> What happens if 2.6.17 doesn't have this??
Some machines with this hardware stop working.
> Wanna buy an "f"?
Sure. How much?
^ permalink raw reply
* Re: IMAP_ADDR on PPC 8xx
From: Wolfgang Denk @ 2006-05-09 20:22 UTC (permalink / raw)
To: Walter L. Wimer III; +Cc: linuxppc-embedded
In-Reply-To: <1147194879.2200.41.camel@excalibur.timesys.com>
In message <1147194879.2200.41.camel@excalibur.timesys.com> you wrote:
>
> Thanks again for the advice. Interestingly, I gave the wrong address
> above. It wasn't 0x22000000, it was 0x02200000 (i.e. even lower!). And
> yet with the "io_remap()'ed global variable" patch, 2.6.11.7 does indeed
> work on this board with this U-Boot.... Perhaps this works because this
> particular board only has 8MiB of RAM....
It does not work. It will certainly crash as soon as you start a few
user space applications.
> Bottom line: I'm wondering what the Linux PPC community thinks is the
> correct long term solution to these discrepancies. Should we the
> community declare "Freescale U-Boots are considered harmful; never use
> them; always use the official U-Boot sources" ???
Indeed it would be nice if Freescale worked more directly with the
community.
> Or should we create a kernel mechanism to automatically adapt to the
> different U-Boot flavors?
No, of course not. U-Boot is just one boot loader, there are many
others, and the kernel hast to stay independent.
And it is definitely not the kernel's fault if the boot loader sets
up a braindamaged memory map.
Best regards,
Wolfgang Denk
--
Software Engineering: Embedded and Realtime Systems, Embedded Linux
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd@denx.de
As in certain cults it is possible to kill a process if you know its
true name. -- Ken Thompson and Dennis M. Ritchie
^ permalink raw reply
* [PATCH] Fixes for the Summagraphics emulation
From: Donald D. Dugger @ 2006-05-09 20:22 UTC (permalink / raw)
To: xen-devel
This patch enhances the Summagraphics emulation by adding 2 features:
1) Move the tablet to the second serial port. This way the tablet will
not interfere with people who want to use a serial console on the guest.
2) Enhance the Summagraphics emulation so that the Windows XP driver
works. Turns out the Windows driver was using capabilities the X driver
didn't care about and it wouldn't recognize the tablet without these
capabilities.
Signed-off-by: donald.d.dugger@intel.com
PS: You can get the Windows XP driver at:
http://www.cad-plan.com/files/download/tw2k.exe
To install this Windows driver:
1) Run the program in your Windows XP guest.
2) When the program asks for `model', scroll down and select
`SummaSketch (MM Compatible)'.
3) When the program asks for `COM Port' specify
`com2'.
4) When the program asks for `Cursor Type' specify
`4 button cursor/puck'.
5) The guest will be rebooted and, when it comes back up, the mouse/cursor
should be working properly under VNC.
Note that these instructions only apply if you are using VNC, the
Summagraphics emulation is disabled if you are using SDL.
--
Don Dugger
"Censeo Toto nos in Kansa esse decisse." - D. Gale
Donald.D.Dugger@intel.com
Ph: (303)440-1368
diff -r 1e3977e029fd tools/ioemu/hw/pc.c
--- a/tools/ioemu/hw/pc.c Mon May 8 19:21:41 2006 +0100
+++ b/tools/ioemu/hw/pc.c Tue May 9 10:45:58 2006 -0600
@@ -381,6 +381,7 @@ void pc_init(uint64_t ram_size, int vga_
const char *kernel_filename, const char *kernel_cmdline,
const char *initrd_filename)
{
+ SerialState *sp;
char buf[1024];
int ret, linux_boot, initrd_size, i, nb_nics1;
PCIBus *pci_bus;
@@ -533,7 +534,9 @@ void pc_init(uint64_t ram_size, int vga_
for(i = 0; i < MAX_SERIAL_PORTS; i++) {
if (serial_hds[i]) {
- serial_init(serial_io[i], serial_irq[i], serial_hds[i]);
+ sp = serial_init(serial_io[i], serial_irq[i], serial_hds[i]);
+ if (i == SUMMA_PORT)
+ summa_init(sp, serial_hds[i]);
}
}
diff -r 1e3977e029fd tools/ioemu/hw/pckbd.c
--- a/tools/ioemu/hw/pckbd.c Mon May 8 19:21:41 2006 +0100
+++ b/tools/ioemu/hw/pckbd.c Tue May 9 10:45:58 2006 -0600
@@ -156,10 +156,23 @@ typedef struct KBDState {
int mouse_dz;
uint8_t mouse_buttons;
CharDriverState *chr;
- void *cookie;
+ SerialState *serial;
} KBDState;
KBDState kbd_state;
+
+#define MODE_STREAM_SWITCH 0
+#define MODE_STREAM 1
+#define MODE_REMOTE 2
+#define MODE_POINT 3
+
+#define ORIGIN_LOWER_LEFT 0
+#define ORIGIN_UPPER_LEFT 1
+
+struct SummaState {
+ int report_mode;
+ int origin;
+} SummaState;
int summa_ok; /* Allow Summagraphics emulation if true */
@@ -420,15 +433,19 @@ static int kbd_mouse_send_packet(KBDStat
switch(s->mouse_type) {
case TABLET: /* Summagraphics pen tablet */
- dx1 = s->mouse_x;
- dy1 = s->mouse_y;
- dx1 = ((dx1 * SUMMA_MAXX) / mouse_maxx) + SUMMA_BORDER;
- dy1 = ((dy1 * SUMMA_MAXY) / mouse_maxy) + SUMMA_BORDER;
- ser_queue(s->cookie, 0x80 | (s->mouse_buttons & 7));
- ser_queue(s->cookie, dx1 & 0x7f);
- ser_queue(s->cookie, dx1 >> 7);
- ser_queue(s->cookie, dy1 & 0x7f);
- ser_queue(s->cookie, dy1 >> 7);
+ if (SummaState.report_mode == MODE_STREAM) {
+ dx1 = s->mouse_x;
+ dy1 = s->mouse_y;
+ if (SummaState.origin == ORIGIN_LOWER_LEFT)
+ dy1 = mouse_maxy - dy1;
+ dx1 = ((dx1 * SUMMA_MAXX) / mouse_maxx) + SUMMA_BORDER;
+ dy1 = ((dy1 * SUMMA_MAXY) / mouse_maxy) + SUMMA_BORDER;
+ ser_queue(s->serial, 0x80 | (s->mouse_buttons & 7));
+ ser_queue(s->serial, dx1 & 0x7f);
+ ser_queue(s->serial, dx1 >> 7);
+ ser_queue(s->serial, dy1 & 0x7f);
+ ser_queue(s->serial, dy1 >> 7);
+ }
s->mouse_dx = 0;
s->mouse_dy = 0;
s->mouse_dz = 0;
@@ -509,43 +526,101 @@ static void pc_kbd_mouse_event(void *opa
}
}
-static void summa(KBDState *s, int val)
-{
- static int summa = 0;
-
- if (s->mouse_type == TABLET) {
+static void summa(KBDState *s, uint8_t val)
+{
+ static int zflg = 0;
+
+ if (zflg) {
+ zflg = 0;
switch (val) {
- case '?': /* read firmware ID */
- ser_queue(s->cookie, '0');
+ case 'b': /* binary report mode */
break;
- case 'a': /* read config */
- /*
- * Config looks like a movement packet but, because of scaling
- * issues we can't use `kbd_send_packet' to do this.
- */
- ser_queue(s->cookie, 0);
- ser_queue(s->cookie, (SUMMA_MAXX & 0x7f));
- ser_queue(s->cookie, (SUMMA_MAXX >> 7));
- ser_queue(s->cookie, (SUMMA_MAXY & 0x7f));
- ser_queue(s->cookie, (SUMMA_MAXY >> 7));
- break;
-
- default: /* ignore all others */
+ case 't': /* stylus type - we do 4 button cursor */
+ ser_queue(s->serial, 'C');
+ ser_queue(s->serial, 'S');
+ ser_queue(s->serial, 'R');
+ ser_queue(s->serial, '4');
+ ser_queue(s->serial, '\r');
break;
}
return;
}
- if (val == 'B') {
- summa++;
- return;
- } else if (summa && val == 'z') {
+ zflg = 0;
+
+ switch (val) {
+
+ case 'B': /* point mode */
+ /* This is supposed to be `set to point mode' but the Linux driver
+ * is broken and incorrectly sends a reset command (somebody
+ * needs to learn that the address 0 does not necessarily contain
+ * a zero). This is the first valid command that Linux sends
+ * out so we'll treat it as a reset
+ */
+ case '\0': /* reset */
s->mouse_type = TABLET;
- return;
- }
- summa = 0;
+ s->mouse_status |= MOUSE_STATUS_ENABLED;
+ SummaState.origin = ORIGIN_LOWER_LEFT;
+ SummaState.report_mode = (val == 'B') ? MODE_POINT : MODE_STREAM_SWITCH;
+ break;
+
+ case 'z': /* start of 2 byte command */
+ zflg++;
+ break;
+
+ case 'x': /* code check */
+ /*
+ * Return checksum
+ */
+ ser_queue(s->serial, '.');
+ ser_queue(s->serial, '#');
+ ser_queue(s->serial, '1');
+ ser_queue(s->serial, '2');
+ ser_queue(s->serial, '3');
+ ser_queue(s->serial, '4');
+ break;
+
+ case '?': /* read firmware ID */
+ ser_queue(s->serial, '0');
+ break;
+
+ case 'a': /* read config */
+ /*
+ * Config looks like a movement packet but, because of scaling
+ * issues we can't use `kbd_send_packet' to do this.
+ */
+ ser_queue(s->serial, 0x94);
+ ser_queue(s->serial, (SUMMA_MAXX & 0x7f));
+ ser_queue(s->serial, (SUMMA_MAXX >> 7));
+ ser_queue(s->serial, (SUMMA_MAXY & 0x7f));
+ ser_queue(s->serial, (SUMMA_MAXY >> 7));
+ break;
+
+ case 'b': /* origin at upper left */
+ SummaState.origin = ORIGIN_UPPER_LEFT;
+ break;
+
+ case 'c': /* origin at lower left */
+ SummaState.origin = ORIGIN_LOWER_LEFT;
+ break;
+
+ case '@': /* stream mode */
+ SummaState.report_mode = MODE_STREAM;
+ break;
+
+ case 'D': /* remote request mode */
+ SummaState.report_mode = MODE_REMOTE;
+ break;
+
+ case 'P': /* trigger, e.g. send report now */
+ case 'R': /* report rate = max/2 */
+ default: /* ignore all others */
+ break;
+
+ }
+
return;
}
@@ -560,13 +635,13 @@ int summa_write(CharDriverState *chr, co
return len;
}
-void summa_init(void *cookie, CharDriverState *chr)
+void summa_init(SerialState *serial, CharDriverState *chr)
{
if (summa_ok == 0)
return;
kbd_state.chr = chr;
- kbd_state.cookie = (void *)cookie;
+ kbd_state.serial = serial;
chr->chr_write = summa_write;
chr->opaque = (void *)&kbd_state;
return;
diff -r 1e3977e029fd tools/ioemu/hw/serial.c
--- a/tools/ioemu/hw/serial.c Mon May 8 19:21:41 2006 +0100
+++ b/tools/ioemu/hw/serial.c Tue May 9 10:45:58 2006 -0600
@@ -310,7 +310,6 @@ SerialState *serial_init(int base, int i
register_ioport_write(base, 8, 1, serial_ioport_write, s);
register_ioport_read(base, 8, 1, serial_ioport_read, s);
s->chr = chr;
- summa_init(s, chr);
qemu_chr_add_read_handler(chr, serial_can_receive1, serial_receive1, s);
qemu_chr_add_event_handler(chr, serial_event);
return s;
diff -r 1e3977e029fd tools/ioemu/vl.c
--- a/tools/ioemu/vl.c Mon May 8 19:21:41 2006 +0100
+++ b/tools/ioemu/vl.c Tue May 9 10:45:58 2006 -0600
@@ -2707,7 +2707,8 @@ int main(int argc, char **argv)
pstrcpy(monitor_device, sizeof(monitor_device), "vc");
pstrcpy(serial_devices[0], sizeof(serial_devices[0]), "vc");
- for(i = 1; i < MAX_SERIAL_PORTS; i++)
+ pstrcpy(serial_devices[1], sizeof(serial_devices[1]), "null");
+ for(i = 2; i < MAX_SERIAL_PORTS; i++)
serial_devices[i][0] = '\0';
serial_device_index = 0;
diff -r 1e3977e029fd tools/ioemu/vl.h
--- a/tools/ioemu/vl.h Mon May 8 19:21:41 2006 +0100
+++ b/tools/ioemu/vl.h Tue May 9 10:45:58 2006 -0600
@@ -223,6 +223,7 @@ void console_select(unsigned int index);
/* serial ports */
#define MAX_SERIAL_PORTS 4
+#define SUMMA_PORT 1
extern CharDriverState *serial_hds[MAX_SERIAL_PORTS];
@@ -618,12 +619,6 @@ extern const char* keyboard_layout;
extern const char* keyboard_layout;
extern int repeat_key;
-/* Mice */
-
-void summa_init(void *cookie, CharDriverState *chr);
-
-extern int summa_ok;
-
/* mc146818rtc.c */
typedef struct RTCState RTCState;
@@ -637,6 +632,12 @@ typedef struct SerialState SerialState;
typedef struct SerialState SerialState;
SerialState *serial_init(int base, int irq, CharDriverState *chr);
void ser_queue(SerialState *s, unsigned char c);
+
+/* Mice */
+
+void summa_init(SerialState *serial, CharDriverState *chr);
+
+extern int summa_ok;
/* i8259.c */
^ permalink raw reply
* [ALSA - driver 0002110]: idAudioHardwareALSA::Write: 4096 frames overflowed and dropped
From: bugtrack @ 2006-05-09 20:22 UTC (permalink / raw)
To: alsa-devel
A NOTE has been added to this issue.
======================================================================
<https://bugtrack.alsa-project.org/alsa-bug/view.php?id=2110>
======================================================================
Reported By: kratz00
Assigned To: tiwai
======================================================================
Project: ALSA - driver
Issue ID: 2110
Category: PCI - hda-intel
Reproducibility: always
Severity: major
Priority: normal
Status: assigned
Distribution:
Kernel Version:
======================================================================
Date Submitted: 05-09-2006 21:48 CEST
Last Modified: 05-09-2006 22:22 CEST
======================================================================
Summary: idAudioHardwareALSA::Write: 4096 frames overflowed
and dropped
Description:
Id's Quake IV and Doom III have Alsa support.
But the music sounds horrible and I see a lot of following message in the
console:
snd_pcm_writei short write: 3760 out of 4096
snd_pcm_writei short write: 3760 out of 4096
snd_pcm_writei short write: 3760 out of 4096
snd_pcm_writei short write: 3760 out of 4096
snd_pcm_writei short write: 1880 out of 2048
snd_pcm_writei short write: 940 out of 1024
idAudioHardwareALSA::Write: 4096 frames overflowed and dropped
The sound initalization output is:
------ Alsa Sound Initialization -----
dlopen(libasound.so.2)
asoundlib version: 1.0.11
opened Alsa PCM device default for playback
device buffer size: 5644 frames ( 22576 bytes )
allocated a mix buffer of 16384 bytes
--------------------------------------
if i pass '+set s_driver oss' to the startscript the client uses OSS
emulation and the sound is like expected
so whats wrong using alsa directly instead of the oss emu
======================================================================
----------------------------------------------------------------------
rlrevell - 05-09-06 22:22
----------------------------------------------------------------------
Sounds like those apps' ALSA support is buggy. Nothing we can do about it,
unless you can reproduce the problem with an open source app.
Issue History
Date Modified Username Field Change
======================================================================
05-09-06 21:48 kratz00 New Issue
05-09-06 21:48 kratz00 File Added: codec#0
05-09-06 22:22 rlrevell Note Added: 0009692
======================================================================
-------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
^ permalink raw reply
* Linux kernel 2.6.16.15 released
From: Linux Kernel Distribution System @ 2006-05-09 20:21 UTC (permalink / raw)
To: linux-kernel-announce
Linux kernel version 2.6.16.15 has been released. It is available from:
Patch: ftp://ftp.kernel.org/pub/linux/kernel/v2.6/patch-2.6.16.15.bz2
Full source: ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-2.6.16.15.tar.bz2
Sizes in bytes Compressed Uncompressed
------------------------------------------------------------
Patch 44209 163672
Full source 40837359 233953280
-----------------------------------------------------------------------------
This is an automatically generated message. To unsubscribe from this list,
please send a message to majordomo@vger.kernel.org containing
the line:
unsubscribe linux-kernel-announce <your_email_address>
... where <your_email_address> is the email address you are receiving
this message at.
-----------------------------------------------------------------------------
The following files were changed in this release:
arch/m32r/lib/getuser.S | 88 -------
arch/m32r/lib/putuser.S | 84 -------
b/Documentation/dvb/get_dvb_firmware | 8
b/Makefile | 2
b/arch/alpha/kernel/setup.c | 17 +
b/arch/alpha/kernel/smp.c | 8
b/arch/alpha/lib/strncpy.S | 8
b/arch/i386/kernel/apm.c | 2
b/arch/i386/kernel/cpu/amd.c | 2
b/arch/i386/kernel/cpu/cpufreq/Kconfig | 1
b/arch/i386/kernel/cpu/cpufreq/p4-clockmod.c | 2
b/arch/i386/kernel/cpu/cpufreq/speedstep-smi.c | 4
b/arch/i386/kernel/dmi_scan.c | 2
b/arch/i386/kernel/vm86.c | 12 -
b/arch/m32r/kernel/m32r_ksyms.c | 4
b/arch/m32r/kernel/setup.c | 12 -
b/arch/m32r/kernel/smpboot.c | 19 -
b/arch/m32r/lib/Makefile | 4
b/arch/mips/kernel/branch.c | 2
b/arch/mips/mm/c-r4k.c | 3
b/arch/powerpc/kernel/pci_64.c | 1
b/arch/powerpc/kernel/setup_64.c | 10
b/arch/powerpc/kernel/signal_64.c | 2
b/arch/x86_64/ia32/Makefile | 4
b/arch/x86_64/kernel/entry.S | 28 --
b/arch/x86_64/kernel/pci-gart.c | 4
b/arch/x86_64/kernel/process.c | 8
b/arch/x86_64/kernel/setup.c | 4
b/block/genhd.c | 103 ---------
b/drivers/base/cpu.c | 2
b/drivers/base/firmware_class.c | 6
b/drivers/base/node.c | 2
b/drivers/block/cciss.c | 98 ++++----
b/drivers/char/Kconfig | 1
b/drivers/char/agp/efficeon-agp.c | 8
b/drivers/char/cs5535_gpio.c | 5
b/drivers/char/ipmi/ipmi_bt_sm.c | 2
b/drivers/char/snsc.c | 3
b/drivers/char/sonypi.c | 3
b/drivers/char/tipar.c | 2
b/drivers/char/tlclk.c | 37 +--
b/drivers/char/tty_io.c | 8
b/drivers/edac/Kconfig | 2
b/drivers/i2c/busses/i2c-i801.c | 5
b/drivers/i2c/chips/m41t00.c | 8
b/drivers/ide/pci/alim15x3.c | 2
b/drivers/ieee1394/sbp2.c | 32 +-
b/drivers/macintosh/therm_adt746x.c | 4
b/drivers/md/dm-snap.c | 6
b/drivers/md/dm.c | 48 ++--
b/drivers/md/kcopyd.c | 17 +
b/drivers/media/dvb/dvb-usb/cxusb.c | 17 +
b/drivers/media/video/Kconfig | 1
b/drivers/media/video/saa7127.c | 1
b/drivers/media/video/tuner-types.c | 4
b/drivers/mtd/nand/Kconfig | 17 -
b/drivers/net/e1000/e1000_main.c | 1
b/drivers/net/irda/irda-usb.c | 5
b/drivers/net/sky2.c | 4
b/drivers/net/sky2.h | 1
b/drivers/net/wireless/Kconfig | 5
b/drivers/net/wireless/hostap/hostap_80211_tx.c | 2
b/drivers/net/wireless/ipw2200.c | 5
b/drivers/pcmcia/ds.c | 2
b/drivers/scsi/3w-9xxx.c | 8
b/drivers/scsi/3w-xxxx.c | 3
b/drivers/scsi/sata_mv.c | 7
b/drivers/usb/core/message.c | 12 -
b/drivers/usb/host/ehci-sched.c | 11
b/drivers/usb/serial/console.c | 2
b/drivers/usb/serial/option.c | 4
b/drivers/usb/storage/Kconfig | 3
b/drivers/video/cfbimgblt.c | 2
b/drivers/video/fbmem.c | 14 -
b/drivers/video/i810/i810_main.c | 2
b/fs/9p/vfs_inode.c | 3
b/fs/char_dev.c | 87 -------
b/fs/cifs/cifsencrypt.c | 36 ++-
b/fs/cifs/dir.c | 14 +
b/fs/compat.c | 4
b/fs/ext3/resize.c | 1
b/fs/fuse/file.c | 8
b/fs/locks.c | 9
b/fs/nfsd/nfs3proc.c | 2
b/fs/nfsd/nfs4proc.c | 2
b/fs/nfsd/nfsproc.c | 2
b/fs/open.c | 24 +-
b/fs/partitions/check.c | 5
b/fs/proc/base.c | 21 +
b/fs/proc/proc_misc.c | 163 +++-----------
b/fs/proc/vmcore.c | 4
b/fs/reiserfs/xattr_acl.c | 5
b/fs/smbfs/dir.c | 5
b/fs/sysfs/dir.c | 1
b/fs/sysfs/file.c | 2
b/fs/sysfs/inode.c | 6
b/fs/sysfs/symlink.c | 1
b/fs/xfs/linux-2.6/xfs_aops.c | 2
b/fs/xfs/linux-2.6/xfs_iops.c | 3
b/include/asm-i386/cpufeature.h | 1
b/include/asm-i386/i387.h | 30 ++
b/include/asm-i386/pgtable-2level.h | 3
b/include/asm-i386/pgtable-3level.h | 20 +
b/include/asm-i386/pgtable.h | 4
b/include/asm-m32r/smp.h | 3
b/include/asm-m32r/uaccess.h | 266 ++++++++++--------------
b/include/asm-mips/bitops.h | 14 +
b/include/asm-mips/byteorder.h | 4
b/include/asm-mips/interrupt.h | 8
b/include/asm-mips/r4kcache.h | 2
b/include/asm-powerpc/floppy.h | 5
b/include/asm-x86_64/cpufeature.h | 1
b/include/asm-x86_64/i387.h | 20 +
b/include/linux/cpu.h | 2
b/include/linux/cpumask.h | 1
b/include/linux/fb.h | 2
b/include/linux/fs.h | 15 -
b/include/linux/mm.h | 5
b/include/linux/page-flags.h | 8
b/include/linux/proc_fs.h | 2
b/include/linux/raid/raid1.h | 2
b/include/linux/rtc.h | 4
b/include/net/ip.h | 1
b/include/net/sctp/structs.h | 1
b/ipc/shm.c | 2
b/ipc/util.c | 3
b/kernel/auditsc.c | 5
b/kernel/exec_domain.c | 1
b/kernel/fork.c | 2
b/kernel/power/process.c | 3
b/kernel/ptrace.c | 7
b/kernel/sched.c | 9
b/kernel/signal.c | 6
b/kernel/sys.c | 14 +
b/kernel/uid16.c | 59 ++++-
b/mm/madvise.c | 3
b/mm/page_alloc.c | 31 +-
b/net/atm/clip.c | 42 ++-
b/net/bridge/br_netfilter.c | 13 -
b/net/core/dev.c | 2
b/net/core/sock.c | 5
b/net/ipv4/fib_trie.c | 12 -
b/net/ipv4/ip_output.c | 12 -
b/net/ipv4/netfilter/ip_conntrack_netlink.c | 2
b/net/ipv4/netfilter/ip_conntrack_proto_sctp.c | 11
b/net/ipv4/route.c | 5
b/net/ipv4/tcp_output.c | 4
b/net/ipv6/exthdrs.c | 12 +
b/net/ipv6/xfrm6_policy.c | 8
b/net/netfilter/nf_conntrack_netlink.c | 2
b/net/netfilter/nf_conntrack_proto_sctp.c | 11
b/net/sctp/inqueue.c | 1
b/net/sctp/sm_statefuns.c | 59 +++--
b/net/sctp/sm_statetable.c | 10
b/net/sctp/ulpqueue.c | 27 ++
b/security/keys/key.c | 4
b/security/keys/keyring.c | 1
b/security/selinux/ss/mls.c | 2
b/sound/isa/opti9xx/opti92x-ad1848.c | 6
b/sound/oss/dmasound/tas_common.c | 4
b/sound/pci/hda/patch_realtek.c | 2
b/sound/ppc/daca.c | 2
b/sound/ppc/tumbler.c | 2
163 files changed, 1054 insertions(+), 1068 deletions(-)
^ permalink raw reply
* Re: [openib-general] Re: [PATCH 07/16] ehca: interrupt handling routines
From: Michael S. Tsirkin @ 2006-05-09 20:20 UTC (permalink / raw)
To: Shirley Ma
Cc: Heiko J Schick, Hoang-Nam Nguyen, linux-kernel, linuxppc-dev,
Marcus Eder, openib-general, openib-general-bounces,
Christoph Raisch, Roland Dreier
In-Reply-To: <OF6CAB9865.804CAFBB-ON87257169.006C3DBC-88257169.00718277@us.ibm.com>
Quoting r. Shirley Ma <xma@us.ibm.com>:
> My understanding is NAPI handle interrutps CQ callbacks on the same CPU.
My understanding is NAPI disables interrupts under high RX load. No?
--
MST
^ permalink raw reply
* Re: [openib-general] Re: [PATCH 07/16] ehca: interrupt handling routines
From: Michael S. Tsirkin @ 2006-05-09 20:20 UTC (permalink / raw)
To: Shirley Ma
Cc: Roland Dreier, linux-kernel, openib-general, linuxppc-dev,
Christoph Raisch, Hoang-Nam Nguyen, Marcus Eder,
openib-general-bounces
In-Reply-To: <OF6CAB9865.804CAFBB-ON87257169.006C3DBC-88257169.00718277@us.ibm.com>
Quoting r. Shirley Ma <xma@us.ibm.com>:
> My understanding is NAPI handle interrutps CQ callbacks on the same CPU.
My understanding is NAPI disables interrupts under high RX load. No?
--
MST
^ permalink raw reply
* Re: [PATCH] VIA quirk fixup, additional PCI IDs
From: Dave Jones @ 2006-05-09 20:14 UTC (permalink / raw)
To: Andrew Morton; +Cc: Chris Wedgwood, linux-kernel, masouds, jeff, gregkh
In-Reply-To: <20060509125916.03c96efe.akpm@osdl.org>
On Tue, May 09, 2006 at 12:59:16PM -0700, Andrew Morton wrote:
> Chris Wedgwood <cw@f00f.org> wrote:
> >
> > An earlier commit (75cf7456dd87335f574dcd53c4ae616a2ad71a11) changed
> > an overly-zealous PCI quirk to only poke those VIA devices that need
> > it. However, some PCI devices were not included in what I hope is now
> > the full list.
> >
> > This should I hope correct this.
> >
> > Thanks to Masoud Sharbiani <masouds@masoud.ir> for pointing this out
> > and testing the fix.
>
> This looks like a 2.6.17-worthy fix, but it's not clear. Help. What
> happens if 2.6.17 doesn't have this??
We won't run the quirk on machines that used to have it run,
so we get buggered up irq routing.
Dave
--
http://www.codemonkey.org.uk
^ permalink raw reply
* Re: [PATCH] paging_enabled and non-HVM guests
From: Anthony Liguori @ 2006-05-09 20:14 UTC (permalink / raw)
To: Hollis Blanchard; +Cc: Simon Kagstrom, xen-devel list, Ryan Harper
In-Reply-To: <1147204426.19485.67.camel@basalt.austin.ibm.com>
Hollis Blanchard wrote:
> On Tue, 2006-05-09 at 13:31 +0200, Simon Kagstrom wrote:
>
>> I had a problem with the GDB-server crashing on connections in
>> xen_ptrace.c:map_domain_va(). paging_enabled() should only be checked
>> for HVM guests, and the patch adds a check for that.
>>
>> Signed-off-by: Simon Kagstrom <ska@bth.se>
>>
>> diff -r 4501d60d6add tools/libxc/xc_ptrace.c
>> --- a/tools/libxc/xc_ptrace.c Tue May 9 09:57:05 2006
>> +++ b/tools/libxc/xc_ptrace.c Tue May 9 13:26:14 2006
>> @@ -374,7 +374,7 @@
>> if (fetch_regs(xc_handle, cpu, NULL))
>> return NULL;
>>
>> - if (!paging_enabled(&ctxt[cpu])) {
>> + if ( (ctxt[cpu].flags & VGCF_HVM_GUEST) && !paging_enabled(&ctxt[cpu])) {
>> static void * v;
>> unsigned long page;
>>
>
> I looked at this a couple weeks ago, and I think the real problem is
> that the CR registers are never updated in Xen's vcpu structure, and so
> xc_vcpu_getcontext() doesn't get them either. So Xen should be fixed; we
> shouldn't add workarounds to userland.
>
I think that the CR registers are never changed during the life of a PV
domain. I think all that's needed is for some sane values to be set
during domain creation and things start working. I believe Ryan had a
patch that did this?
Regards,
Anthony Liguori
^ permalink raw reply
* Re: Udev plus keyboard and mouse (fedora core 5)
From: Greg KH @ 2006-05-09 20:14 UTC (permalink / raw)
To: linux-hotplug
In-Reply-To: <web-20955891@cgp8.sentechsa.net>
A: Because it messes up the order in which people normally read text.
Q: Why is top-posting such a bad thing?
A: Top-posting.
Q: What is the most annoying thing on usenet and in e-mail?
A: No.
Q: Should I include quotations after my reply?
On Tue, May 09, 2006 at 08:53:05AM +0200, Nkwebi Peace wrote:
> Greg, It seems when I am not in X, but I an using the
> keyboard and mouse, the /sys/class/input/mouseX and
> /sys/class/input/eventX files do not get updated..
What do you mean "not get updated"? Why would X have anything to do
with that?
> So I was thinking the solution will be to check the console as well,
> and that brings me back to the first question of locating
> the device file names for console..
/dev/console?
Again, it all depends on what you are looking for. Look at the Debian
persistant naming rules for input devices and see if that solves it for
you or not.
Good luck,
greg k-h
-------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid\x120709&bid&3057&dat\x121642
_______________________________________________
Linux-hotplug-devel mailing list http://linux-hotplug.sourceforge.net
Linux-hotplug-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-hotplug-devel
^ permalink raw reply
* Re: Implementing branch attributes in git config
From: sean @ 2006-05-09 19:44 UTC (permalink / raw)
To: Linus Torvalds; +Cc: junkio, Johannes.Schindelin, git
In-Reply-To: <Pine.LNX.4.64.0605091215340.3718@g5.osdl.org>
On Tue, 9 May 2006 12:24:02 -0700 (PDT)
Linus Torvalds <torvalds@osdl.org> wrote:
> NOTE! This patch could be applied right now, and to all the branches (to
> make 1.x, 1.2.x and 1.3.x all support the _syntax_). Even if nothing
> actually uses it.
>
> It just makes the syntax be
>
> [section<space>+"<randomstring>"]
>
> where the only rule for "randomstring" is that it can't contain a newline,
> and if you really want to insert a double-quote, you do it with \".
Lightly tested here. Looks good.
Sean
^ permalink raw reply
* Re: [PATCH] IPC_SET_PERM cleanup
From: Klaus Weidner @ 2006-05-09 20:10 UTC (permalink / raw)
To: Steve Grubb; +Cc: linux-audit
In-Reply-To: <200605091511.25780.sgrubb@redhat.com>
On Tue, May 09, 2006 at 03:11:25PM -0400, Steve Grubb wrote:
> Bottom line, for the search API, I want all similar types to have a common
> field name. They can have a modifier adjacent to them.
If that's the way you want to do it, there needs to be a way to get the
modifier to disambiguate them.
Is adding "new " modifiers the best way to do that? You could also
keep the field names the same and look at the syscall record type to find
out which context they get used in.
> On Tuesday 09 May 2006 14:27, Linda Knippers wrote:
> >Maybe I should use a5, a6, ...,
> Please no. Let's keep it as iuid or ouid.
Naming them "a5" etc. would be terrible. The chown way of doing it wasn't
intended as a role model, the point was just that since the information
was present (even though obfuscated) there was no requirement to add
special case logic to audit that call. A userspace reporting tool could
fix this up if it wanted to. If you need new code to get the information,
you may as well make it less obfuscated.
> I'd personally prefer to drop iuid so we can consolidate field types.
> ouid means "owner's uid".
A consolidated field type "ouid" for the object owner makes sense
(assuming that since the IPC records are changing anyway, we might as
well make this additional change).
This still leaves the independent problem that you have a single syscall
which wants to report both the current ouid and the proposed new ouid
it's trying to set it to.
-Klaus
^ permalink raw reply
* Re: [PATCH 1/6] gitopt: a new command-line option parser for git
From: Timo Hirvonen @ 2006-05-09 20:10 UTC (permalink / raw)
To: Eric Wong; +Cc: git
In-Reply-To: <20060509191803.GA3676@localdomain>
Eric Wong <normalperson@yhbt.net> wrote:
> I'm striving for backwards compatibility with existing usage. That
> means as a diff option, -C alone works, as does -C20. I've made -C 20
> _not_ work because it breaks existing usage (where 20 could be a
> filename, or a tree-ish). -C=20 would mean something
> else,
I think optional arguments are still confusing. We could support both
-C (no args) and -C=20 syntax.
> since I wanted to make pickaxe work exactly as it did before:
> -S=var would search for '=var', not 'var'.
Some other options use -x=y syntax so this would be confusing. Pickaxe's
-Stext syntax is a bit strange. I think -S text or -S=text would be
more logical.
--
http://onion.dynserv.net/~timo/
^ permalink raw reply
* [GIT PATCH] I2C bugfixes for 2.6.17-rc3
From: Greg KH @ 2006-05-09 20:07 UTC (permalink / raw)
To: Linus Torvalds, Andrew Morton; +Cc: linux-kernel, lm-sensors
Here are some i2c bug fixes for a single driver against your current git
tree. They all have been in the -mm tree for a few weeks.
Please pull from:
rsync://rsync.kernel.org/pub/scm/linux/kernel/git/gregkh/i2c-2.6.git/
or from:
master.kernel.org:/pub/scm/linux/kernel/git/gregkh/i2c-2.6.git/
if it isn't synced up yet.
The full patch series will sent to the sensors mailing list, if anyone
wants to see them.
thanks,
greg k-h
drivers/i2c/busses/scx200_acb.c | 16 +++++++++++-----
1 file changed, 11 insertions(+), 5 deletions(-)
---------------
Jean Delvare:
scx200_acb: Fix return on init error
scx200_acb: Fix resource name use after free
Jordan Crouse:
scx200_acb: Fix for the CS5535 errata
^ permalink raw reply
* [lm-sensors] [PATCH 3/3] scx200_acb: Fix for the CS5535 errata
From: Greg KH @ 2006-05-09 20:08 UTC (permalink / raw)
To: lm-sensors
From: Jordan Crouse <jordan.crouse at amd.com>
This is a fix for the CS5535 errata 111:
When the SMBus controller tries to access a non-existing device, it sets
the NEGACK bit, SMBus I/O offset 01h[4], to 1 after it detects no
acknowledge at the ninth clock. The specification states that the bit
can be cleared by writing a 1 to it, but under certain circumstances it
is possible for this bit to not clear.
Writing a 0 to the bit resets the internal state machine and clears the
issue.
Since all writable bits in ACBST are W1C bits (write-one-to-clear) the
second write doesn't affect any other logic except the buggy NEGACK
state machine. The second write clears an internal register which is
responsible for "overwriting" the NEGACK bit in ACBST.
Signed-off-by: Jordan Crouse <jordan.crouse at amd.com>
Signed-off-by: Andrew Morton <akpm at osdl.org>
Signed-off-by: Jean Delvare <khali at linux-fr.org>
Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
---
drivers/i2c/busses/scx200_acb.c | 7 +++++++
1 files changed, 7 insertions(+), 0 deletions(-)
95563d343fec8d3e2f667c95230ac4ab7674b757
diff --git a/drivers/i2c/busses/scx200_acb.c b/drivers/i2c/busses/scx200_acb.c
index 42e4e00..a140e45 100644
--- a/drivers/i2c/busses/scx200_acb.c
+++ b/drivers/i2c/busses/scx200_acb.c
@@ -133,6 +133,9 @@ static void scx200_acb_machine(struct sc
outb(inb(ACBCTL1) | ACBCTL1_STOP, ACBCTL1);
outb(ACBST_STASTR | ACBST_NEGACK, ACBST);
+
+ /* Reset the status register */
+ outb(0, ACBST);
return;
}
@@ -228,6 +231,10 @@ static void scx200_acb_poll(struct scx20
timeout = jiffies + POLL_TIMEOUT;
while (time_before(jiffies, timeout)) {
status = inb(ACBST);
+
+ /* Reset the status register to avoid the hang */
+ outb(0, ACBST);
+
if ((status & (ACBST_SDAST|ACBST_BER|ACBST_NEGACK)) != 0) {
scx200_acb_machine(iface, status);
return;
--
1.3.2
^ permalink raw reply related
* [lm-sensors] [PATCH 2/3] scx200_acb: Fix resource name use after
From: Greg KH @ 2006-05-09 20:08 UTC (permalink / raw)
To: lm-sensors
From: Jean Delvare <khali at linux-fr.org>
We can't pass a string on the stack to request_region. As soon as we
leave the function that stack is gone and the string is lost. Let's
use the same string we identify the i2c_adapter with instead, it's
more simple, more consistent, and just works.
This is the second half of fix to bug #6445.
Signed-off-by: Jean Delvare <khali at linux-fr.org>
Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
---
drivers/i2c/busses/scx200_acb.c | 6 +-----
1 files changed, 1 insertions(+), 5 deletions(-)
b33d0798e6cfae1fcee75afc808fe5690a48a814
diff --git a/drivers/i2c/busses/scx200_acb.c b/drivers/i2c/busses/scx200_acb.c
index f2dae68..42e4e00 100644
--- a/drivers/i2c/busses/scx200_acb.c
+++ b/drivers/i2c/busses/scx200_acb.c
@@ -415,7 +415,6 @@ static int __init scx200_acb_create(con
struct scx200_acb_iface *iface;
struct i2c_adapter *adapter;
int rc;
- char description[64];
iface = kzalloc(sizeof(*iface), GFP_KERNEL);
if (!iface) {
@@ -434,10 +433,7 @@ static int __init scx200_acb_create(con
mutex_init(&iface->mutex);
- snprintf(description, sizeof(description), "%s ACCESS.bus [%s]",
- text, adapter->name);
-
- if (request_region(base, 8, description) = 0) {
+ if (!request_region(base, 8, adapter->name)) {
printk(KERN_ERR NAME ": can't allocate io 0x%x-0x%x\n",
base, base + 8-1);
rc = -EBUSY;
--
1.3.2
^ permalink raw reply related
page: next (older) | prev (newer) | latest
- recent:[subjects (threaded)|topics (new)|topics (active)]
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.